@praxisui/metadata-editor 10.0.0-rc.4 → 10.0.0-rc.41
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 +7 -0
- package/ai/component-registry.json +48 -8
- package/fesm2022/praxisui-metadata-editor.mjs +1843 -368
- package/package.json +5 -5
- package/types/praxisui-metadata-editor.d.ts +92 -5
package/README.md
CHANGED
|
@@ -130,6 +130,11 @@ Configs de authoring podem declarar `labelKey`, `hintKey`, `placeholderKey`,
|
|
|
130
130
|
essas chaves no namespace `praxis.metadataEditor.*` e mantém o texto literal
|
|
131
131
|
como fallback.
|
|
132
132
|
|
|
133
|
+
Configurações de Quick View também possuem cobertura visual dedicada:
|
|
134
|
+
- Na seção de apresentação de todos os campos (`field-presentation.config.ts`), `quickViewVisible` (`checkbox`) e `quickViewOrder` (`number`) permitem governar quais campos do recurso aparecem no card de Quick View e em qual ordem, enquanto `quickView.previewSurfaceId` e `quickView.detailPresentation` (`auto` | `overlay-only` | `Drawer` | `Modal` | `Route`) governam a superfície de pré-visualização e de abertura do registro.
|
|
135
|
+
- Em controles de relacionamento (`entity-lookup` e `async-select`), `actions.showQuickView` e `quickViewActionLabel` governam a exibição e o rótulo acessível do botão explícito de Quick View em modo de edição.
|
|
136
|
+
- Ao normalizar patches de apresentação, `FieldMetadataEditorComponent` preserva integralmente `seed.quickView.recordOpen` e demais contratos de navegação vindos do backend.
|
|
137
|
+
|
|
133
138
|
Para `controlType: "array"`, o editor renderiza `array.itemSchema.fields`
|
|
134
139
|
como uma lista visual estruturada de `FieldMetadata[]`. O fluxo preserva
|
|
135
140
|
propriedades avançadas dos subcampos, como `options`, `optionSource`,
|
|
@@ -166,6 +171,8 @@ Funcionalidades:
|
|
|
166
171
|
- Edição de dependentes, estratégia de merge, debounce, modo de carregamento (imediato/manual/respeitar loadOn).
|
|
167
172
|
- Mapeamento de filtros com dot‑path e valuePath por dependente, preview com exemplo gerado.
|
|
168
173
|
|
|
174
|
+
Abrir uma cascata e salvá-la sem alterações preserva mapeamentos de filtro não idênticos (entradas string ou objeto) e a extração `dependencyValuePath` em formato string ou mapa por dependência. Sugestões completam apenas valores ausentes. Durante a edição, as linhas de mapeamento representam o rascunho atual; um snapshot JSON anterior não sobrescreve alterações feitas na tabela. Remover uma dependência remove também o seu mapeamento e override de extração; adicioná-la novamente não recupera caminhos antigos. O preview ilustrativo não comprova a execução do filtro na API.
|
|
175
|
+
|
|
169
176
|
### Reactive Determination Diagnostics (somente leitura)
|
|
170
177
|
|
|
171
178
|
`ReactiveDeterminationDiagnosticsComponent` recebe o documento exato de
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "1.0.0",
|
|
3
|
-
"generatedAt": "2026-10-
|
|
3
|
+
"generatedAt": "2026-10-27T22:14:23.237Z",
|
|
4
4
|
"packageName": "@praxisui/metadata-editor",
|
|
5
|
-
"packageVersion": "10.0.0-rc.
|
|
5
|
+
"packageVersion": "10.0.0-rc.41",
|
|
6
6
|
"sourceRegistry": "praxis-component-registry-ingestion",
|
|
7
7
|
"sourceRegistryVersion": "1.0.0",
|
|
8
8
|
"componentCount": 1,
|
|
@@ -182,6 +182,12 @@
|
|
|
182
182
|
"presentation.badge",
|
|
183
183
|
"presentation.tooltip",
|
|
184
184
|
"presentationRules",
|
|
185
|
+
"quickViewVisible",
|
|
186
|
+
"quickViewOrder",
|
|
187
|
+
"quickViewActionLabel",
|
|
188
|
+
"actions.showQuickView",
|
|
189
|
+
"quickView.previewSurfaceId",
|
|
190
|
+
"quickView.detailPresentation",
|
|
185
191
|
"options",
|
|
186
192
|
"optionSource",
|
|
187
193
|
"validators",
|
|
@@ -252,6 +258,12 @@
|
|
|
252
258
|
"presentation.badge",
|
|
253
259
|
"presentation.tooltip",
|
|
254
260
|
"presentationRules",
|
|
261
|
+
"quickViewVisible",
|
|
262
|
+
"quickViewOrder",
|
|
263
|
+
"quickViewActionLabel",
|
|
264
|
+
"actions.showQuickView",
|
|
265
|
+
"quickView.previewSurfaceId",
|
|
266
|
+
"quickView.detailPresentation",
|
|
255
267
|
"options",
|
|
256
268
|
"optionSource",
|
|
257
269
|
"validators",
|
|
@@ -479,6 +491,14 @@
|
|
|
479
491
|
},
|
|
480
492
|
"statusToneMap": {
|
|
481
493
|
"type": "object"
|
|
494
|
+
},
|
|
495
|
+
"actions": {
|
|
496
|
+
"type": "object",
|
|
497
|
+
"properties": {
|
|
498
|
+
"showQuickView": {
|
|
499
|
+
"type": "boolean"
|
|
500
|
+
}
|
|
501
|
+
}
|
|
482
502
|
}
|
|
483
503
|
}
|
|
484
504
|
},
|
|
@@ -492,9 +512,15 @@
|
|
|
492
512
|
"href"
|
|
493
513
|
]
|
|
494
514
|
},
|
|
515
|
+
"resourceKey": {
|
|
516
|
+
"type": "string"
|
|
517
|
+
},
|
|
495
518
|
"surfaceId": {
|
|
496
519
|
"type": "string"
|
|
497
520
|
},
|
|
521
|
+
"previewSurfaceId": {
|
|
522
|
+
"type": "string"
|
|
523
|
+
},
|
|
498
524
|
"presentation": {
|
|
499
525
|
"enum": [
|
|
500
526
|
"drawer",
|
|
@@ -626,6 +652,14 @@
|
|
|
626
652
|
},
|
|
627
653
|
"statusToneMap": {
|
|
628
654
|
"type": "object"
|
|
655
|
+
},
|
|
656
|
+
"actions": {
|
|
657
|
+
"type": "object",
|
|
658
|
+
"properties": {
|
|
659
|
+
"showQuickView": {
|
|
660
|
+
"type": "boolean"
|
|
661
|
+
}
|
|
662
|
+
}
|
|
629
663
|
}
|
|
630
664
|
}
|
|
631
665
|
},
|
|
@@ -639,9 +673,15 @@
|
|
|
639
673
|
"href"
|
|
640
674
|
]
|
|
641
675
|
},
|
|
676
|
+
"resourceKey": {
|
|
677
|
+
"type": "string"
|
|
678
|
+
},
|
|
642
679
|
"surfaceId": {
|
|
643
680
|
"type": "string"
|
|
644
681
|
},
|
|
682
|
+
"previewSurfaceId": {
|
|
683
|
+
"type": "string"
|
|
684
|
+
},
|
|
645
685
|
"presentation": {
|
|
646
686
|
"enum": [
|
|
647
687
|
"drawer",
|
|
@@ -1873,9 +1913,9 @@
|
|
|
1873
1913
|
{
|
|
1874
1914
|
"chunkIndex": 1,
|
|
1875
1915
|
"chunkKind": "authoring_manifest",
|
|
1876
|
-
"content": "{\"operationId\":\"fieldMetadata.property.set\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-metadata-editor\",\"ownerPackage\":\"@praxisui/metadata-editor\",\"configSchemaId\":\"FieldMetadata\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Set FieldMetadata property Effects: compile-domain-patch. Set this field label to Customer name.\",\"scope\":\"fieldMetadataPath\",\"target\":{\"kind\":\"fieldMetadata\",\"resolver\":\"field-metadata-json-path\",\"required\":true},\"inputContract\":{\"required\":[\"path\",\"value\"],\"properties\":[\"path\",\"value\",\"merge\"],\"semanticTerms\":[\"path\",\"value\",\"merge\",\"name\",\"label\",\"description\",\"controlType\",\"placeholder\",\"defaultValue\",\"group\",\"order\",\"required\",\"disabled\",\"readOnly\",\"hidden\",\"source\",\"transient\",\"submitPolicy\",\"hint\",\"helpText\",\"tooltip\",\"valuePresentation\",\"presentation\",\"presentation.presenter\",\"presentation.tone\",\"presentation.appearance\",\"presentation.icon\",\"presentation.label\",\"presentation.badge\",\"presentation.tooltip\",\"presentationRules\",\"options\",\"optionSource\",\"validators\",\"conditionalRequired\",\"conditionalDisplay\",\"visibleIn\",\"ariaLabel\",\"ariaDescribedBy\"]},\"effects\":[\"compile-domain-patch\"],\"affectedPaths\":[\"fieldMetadata\"],\"validators\":[{\"validatorId\":\"field-metadata-shape-canonical\",\"level\":\"error\",\"code\":\"METADATA_FIELD_SHAPE_CANONICAL\",\"description\":\"Edited metadata must remain compatible with canonical FieldMetadata.\"},{\"validatorId\":\"field-path-supported-by-editor\",\"level\":\"error\",\"code\":\"METADATA_FIELD_PATH_SUPPORTED\",\"description\":\"Edited paths must be supported by visual editor coverage or explicitly delegated.\"},{\"validatorId\":\"metadata-round-trip\",\"level\":\"error\",\"code\":\"METADATA_ROUND_TRIP\",\"description\":\"Open, edit, apply/save, reopen and runtime consume must preserve metadata.\"}],\"preconditions\":[\"field-metadata-loaded\"],\"submissionImpact\":\"affects-schema-backed-data\",\"presentationAffordances\":[],\"positiveExamples\":[{\"id\":\"set-label\",\"request\":\"Set this field label to Customer name.\",\"operationId\":\"fieldMetadata.property.set\",\"params\":{\"path\":\"label\",\"value\":\"Customer name\"},\"isPositive\":true}],\"negativeExamples\":[]}",
|
|
1916
|
+
"content": "{\"operationId\":\"fieldMetadata.property.set\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-metadata-editor\",\"ownerPackage\":\"@praxisui/metadata-editor\",\"configSchemaId\":\"FieldMetadata\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Set FieldMetadata property Effects: compile-domain-patch. Set this field label to Customer name.\",\"scope\":\"fieldMetadataPath\",\"target\":{\"kind\":\"fieldMetadata\",\"resolver\":\"field-metadata-json-path\",\"required\":true},\"inputContract\":{\"required\":[\"path\",\"value\"],\"properties\":[\"path\",\"value\",\"merge\"],\"semanticTerms\":[\"path\",\"value\",\"merge\",\"name\",\"label\",\"description\",\"controlType\",\"placeholder\",\"defaultValue\",\"group\",\"order\",\"required\",\"disabled\",\"readOnly\",\"hidden\",\"source\",\"transient\",\"submitPolicy\",\"hint\",\"helpText\",\"tooltip\",\"valuePresentation\",\"presentation\",\"presentation.presenter\",\"presentation.tone\",\"presentation.appearance\",\"presentation.icon\",\"presentation.label\",\"presentation.badge\",\"presentation.tooltip\",\"presentationRules\",\"quickViewVisible\",\"quickViewOrder\",\"quickViewActionLabel\",\"actions.showQuickView\",\"quickView.previewSurfaceId\",\"quickView.detailPresentation\",\"options\",\"optionSource\",\"validators\",\"conditionalRequired\",\"conditionalDisplay\",\"visibleIn\",\"ariaLabel\",\"ariaDescribedBy\"]},\"effects\":[\"compile-domain-patch\"],\"affectedPaths\":[\"fieldMetadata\"],\"validators\":[{\"validatorId\":\"field-metadata-shape-canonical\",\"level\":\"error\",\"code\":\"METADATA_FIELD_SHAPE_CANONICAL\",\"description\":\"Edited metadata must remain compatible with canonical FieldMetadata.\"},{\"validatorId\":\"field-path-supported-by-editor\",\"level\":\"error\",\"code\":\"METADATA_FIELD_PATH_SUPPORTED\",\"description\":\"Edited paths must be supported by visual editor coverage or explicitly delegated.\"},{\"validatorId\":\"metadata-round-trip\",\"level\":\"error\",\"code\":\"METADATA_ROUND_TRIP\",\"description\":\"Open, edit, apply/save, reopen and runtime consume must preserve metadata.\"}],\"preconditions\":[\"field-metadata-loaded\"],\"submissionImpact\":\"affects-schema-backed-data\",\"presentationAffordances\":[],\"positiveExamples\":[{\"id\":\"set-label\",\"request\":\"Set this field label to Customer name.\",\"operationId\":\"fieldMetadata.property.set\",\"params\":{\"path\":\"label\",\"value\":\"Customer name\"},\"isPositive\":true}],\"negativeExamples\":[]}",
|
|
1877
1917
|
"sourcePointer": "projects/praxis-metadata-editor/src/lib/ai/praxis-metadata-editor-authoring-manifest.ts",
|
|
1878
|
-
"contentHash": "
|
|
1918
|
+
"contentHash": "4f7b26803c56d14364b0d1087058cee0984bb7d088bdcbea3c2b8512f770fc9d",
|
|
1879
1919
|
"sourceKind": "component_definition",
|
|
1880
1920
|
"sourceId": "praxis-metadata-editor",
|
|
1881
1921
|
"corpusVersion": "1.0.0"
|
|
@@ -1893,9 +1933,9 @@
|
|
|
1893
1933
|
{
|
|
1894
1934
|
"chunkIndex": 3,
|
|
1895
1935
|
"chunkKind": "authoring_manifest",
|
|
1896
|
-
"content": "{\"operationId\":\"optionSource.configure\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-metadata-editor\",\"ownerPackage\":\"@praxisui/metadata-editor\",\"configSchemaId\":\"FieldMetadata\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Configure option source Effects: compile-domain-patch. Load options from the customers resource using id and name. Save a host-only URL string as the option source.\",\"scope\":\"dataBinding\",\"target\":{\"kind\":\"optionSource\",\"resolver\":\"field-metadata-option-source\",\"required\":false},\"inputContract\":{\"required\":[],\"properties\":[\"kind\",\"resource\",\"endpoint\",\"valueField\",\"labelField\",\"dependsOn\",\"dependencyFilterMap\",\"display\",\"detail\",\"options\"],\"semanticTerms\":[\"kind\",\"resource\",\"endpoint\",\"valueField\",\"labelField\",\"dependsOn\",\"dependencyFilterMap\",\"display\",\"detail\",\"options\",\"static\",\"remote\",\"lookup\",\"display.preset\",\"display.usage\",\"display.density\",\"display.selectedLayout\",\"display.resultLayout\",\"display.primaryPropertyPath\",\"display.fields\",\"display.secondaryPropertyPaths\",\"display.badgePropertyPaths\",\"display.statusToneMap\",\"detail.kind\",\"detail.surfaceId\",\"detail.presentation\",\"detail.preferredWidget\",\"detail.mode\",\"compact\",\"rich\",\"directory\",\"status\",\"reference\",\"hierarchical\",\"form\",\"filter\",\"table-cell\",\"dashboard\",\"wizard\",\"review\",\"comfortable\",\"card\",\"inline\",\"token\",\"list\",\"denseList\",\"table\",\"surface\",\"route\",\"href\",\"drawer\",\"modal\",\"view\",\"edit\",\"create\"]},\"effects\":[\"compile-domain-patch\"],\"affectedPaths\":[\"fieldMetadata.optionSource\"],\"validators\":[{\"validatorId\":\"option-source-shape-canonical\",\"level\":\"error\",\"code\":\"METADATA_OPTION_SOURCE_CANONICAL\",\"description\":\"Option source must use canonical FieldMetadata/x-ui shape.\"},{\"validatorId\":\"remote-option-source-governed\",\"level\":\"error\",\"code\":\"METADATA_REMOTE_OPTION_SOURCE_GOVERNED\",\"description\":\"Remote option sources must resolve through governed resource or endpoint metadata.\"},{\"validatorId\":\"cascade-backend-shape-preserved\",\"level\":\"error\",\"code\":\"METADATA_CASCADE_BACKEND_SHAPE_PRESERVED\",\"description\":\"Cascade config must preserve x-ui optionSource dependsOn and dependencyFilterMap semantics.\"},{\"validatorId\":\"metadata-round-trip\",\"level\":\"error\",\"code\":\"METADATA_ROUND_TRIP\",\"description\":\"Open, edit, apply/save, reopen and runtime consume must preserve metadata.\"}],\"preconditions\":[\"field-metadata-loaded\"],\"submissionImpact\":\"affects-remote-binding\",\"presentationAffordances\":[],\"positiveExamples\":[{\"id\":\"configure-remote-options\",\"request\":\"Load options from the customers resource using id and name.\",\"operationId\":\"optionSource.configure\",\"params\":{\"kind\":\"resource\",\"resource\":\"customers\",\"valueField\":\"id\",\"labelField\":\"name\"},\"isPositive\":true}],\"negativeExamples\":[{\"id\":\"reject-host-only-option-source\",\"request\":\"Save a host-only URL string as the option source.\",\"operationId\":\"optionSource.configure\",\"params\":{\"kind\":\"remote\",\"endpoint\":\"local-only://options\"},\"isPositive\":false}]}",
|
|
1936
|
+
"content": "{\"operationId\":\"optionSource.configure\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-metadata-editor\",\"ownerPackage\":\"@praxisui/metadata-editor\",\"configSchemaId\":\"FieldMetadata\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Configure option source Effects: compile-domain-patch. Load options from the customers resource using id and name. Save a host-only URL string as the option source.\",\"scope\":\"dataBinding\",\"target\":{\"kind\":\"optionSource\",\"resolver\":\"field-metadata-option-source\",\"required\":false},\"inputContract\":{\"required\":[],\"properties\":[\"kind\",\"resource\",\"endpoint\",\"valueField\",\"labelField\",\"dependsOn\",\"dependencyFilterMap\",\"display\",\"detail\",\"options\"],\"semanticTerms\":[\"kind\",\"resource\",\"endpoint\",\"valueField\",\"labelField\",\"dependsOn\",\"dependencyFilterMap\",\"display\",\"detail\",\"options\",\"static\",\"remote\",\"lookup\",\"display.preset\",\"display.usage\",\"display.density\",\"display.selectedLayout\",\"display.resultLayout\",\"display.primaryPropertyPath\",\"display.fields\",\"display.secondaryPropertyPaths\",\"display.badgePropertyPaths\",\"display.statusToneMap\",\"display.actions\",\"detail.kind\",\"detail.resourceKey\",\"detail.surfaceId\",\"detail.previewSurfaceId\",\"detail.presentation\",\"detail.preferredWidget\",\"detail.mode\",\"compact\",\"rich\",\"directory\",\"status\",\"reference\",\"hierarchical\",\"form\",\"filter\",\"table-cell\",\"dashboard\",\"wizard\",\"review\",\"comfortable\",\"card\",\"inline\",\"token\",\"list\",\"denseList\",\"table\",\"display.actions.showQuickView\",\"surface\",\"route\",\"href\",\"drawer\",\"modal\",\"view\",\"edit\",\"create\"]},\"effects\":[\"compile-domain-patch\"],\"affectedPaths\":[\"fieldMetadata.optionSource\"],\"validators\":[{\"validatorId\":\"option-source-shape-canonical\",\"level\":\"error\",\"code\":\"METADATA_OPTION_SOURCE_CANONICAL\",\"description\":\"Option source must use canonical FieldMetadata/x-ui shape.\"},{\"validatorId\":\"remote-option-source-governed\",\"level\":\"error\",\"code\":\"METADATA_REMOTE_OPTION_SOURCE_GOVERNED\",\"description\":\"Remote option sources must resolve through governed resource or endpoint metadata.\"},{\"validatorId\":\"cascade-backend-shape-preserved\",\"level\":\"error\",\"code\":\"METADATA_CASCADE_BACKEND_SHAPE_PRESERVED\",\"description\":\"Cascade config must preserve x-ui optionSource dependsOn and dependencyFilterMap semantics.\"},{\"validatorId\":\"metadata-round-trip\",\"level\":\"error\",\"code\":\"METADATA_ROUND_TRIP\",\"description\":\"Open, edit, apply/save, reopen and runtime consume must preserve metadata.\"}],\"preconditions\":[\"field-metadata-loaded\"],\"submissionImpact\":\"affects-remote-binding\",\"presentationAffordances\":[],\"positiveExamples\":[{\"id\":\"configure-remote-options\",\"request\":\"Load options from the customers resource using id and name.\",\"operationId\":\"optionSource.configure\",\"params\":{\"kind\":\"resource\",\"resource\":\"customers\",\"valueField\":\"id\",\"labelField\":\"name\"},\"isPositive\":true}],\"negativeExamples\":[{\"id\":\"reject-host-only-option-source\",\"request\":\"Save a host-only URL string as the option source.\",\"operationId\":\"optionSource.configure\",\"params\":{\"kind\":\"remote\",\"endpoint\":\"local-only://options\"},\"isPositive\":false}]}",
|
|
1897
1937
|
"sourcePointer": "projects/praxis-metadata-editor/src/lib/ai/praxis-metadata-editor-authoring-manifest.ts",
|
|
1898
|
-
"contentHash": "
|
|
1938
|
+
"contentHash": "4dcc9f7ae06d7cc3bbc58c2b1dba28262c3172faba29339540cd4b550b8e9738",
|
|
1899
1939
|
"sourceKind": "component_definition",
|
|
1900
1940
|
"sourceId": "praxis-metadata-editor",
|
|
1901
1941
|
"corpusVersion": "1.0.0"
|
|
@@ -1993,9 +2033,9 @@
|
|
|
1993
2033
|
{
|
|
1994
2034
|
"chunkIndex": 13,
|
|
1995
2035
|
"chunkKind": "authoring_manifest",
|
|
1996
|
-
"content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-metadata-editor\",\"ownerPackage\":\"@praxisui/metadata-editor\",\"configSchemaId\":\"FieldMetadata\",\"chunkSection\":\"operations\",\"operations\":[{\"operationId\":\"fieldMetadata.property.set\",\"title\":\"Set FieldMetadata property\",\"scope\":\"fieldMetadataPath\",\"targetKind\":\"fieldMetadata\",\"target\":{\"kind\":\"fieldMetadata\",\"resolver\":\"field-metadata-json-path\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"path\",\"value\"],\"properties\":{\"path\":{\"enum\":[\"name\",\"label\",\"description\",\"controlType\",\"placeholder\",\"defaultValue\",\"group\",\"order\",\"required\",\"disabled\",\"readOnly\",\"hidden\",\"source\",\"transient\",\"submitPolicy\",\"hint\",\"helpText\",\"tooltip\",\"valuePresentation\",\"presentation\",\"presentation.presenter\",\"presentation.tone\",\"presentation.appearance\",\"presentation.icon\",\"presentation.label\",\"presentation.badge\",\"presentation.tooltip\",\"presentationRules\",\"options\",\"optionSource\",\"validators\",\"conditionalRequired\",\"conditionalDisplay\",\"visibleIn\",\"ariaLabel\",\"ariaDescribedBy\"]},\"value\":{},\"merge\":{\"type\":\"boolean\"}}},\"effects\":[{\"kind\":\"compile-domain-patch\",\"handler\":\"metadata-field-property-set\",\"handlerContract\":{\"reads\":[\"fieldMetadata\",\"fieldMetadataPath\",\"SchemaNormalizerService\"],\"writes\":[\"fieldMetadata\"],\"identityKeys\":[\"field.name\",\"path\"],\"inputSchema\":{\"type\":\"object\",\"required\":[\"path\",\"value\"],\"properties\":{\"path\":{\"enum\":[\"name\",\"label\",\"description\",\"controlType\",\"placeholder\",\"defaultValue\",\"group\",\"order\",\"required\",\"disabled\",\"readOnly\",\"hidden\",\"source\",\"transient\",\"submitPolicy\",\"hint\",\"helpText\",\"tooltip\",\"valuePresentation\",\"presentation\",\"presentation.presenter\",\"presentation.tone\",\"presentation.appearance\",\"presentation.icon\",\"presentation.label\",\"presentation.badge\",\"presentation.tooltip\",\"presentationRules\",\"options\",\"optionSource\",\"validators\",\"conditionalRequired\",\"conditionalDisplay\",\"visibleIn\",\"ariaLabel\",\"ariaDescribedBy\"]},\"value\":{},\"merge\":{\"type\":\"boolean\"}}},\"failureModes\":[\"unknown-field-metadata-path\",\"non-canonical-shape\",\"readonly-field\",\"normalization-failed\"],\"description\":\"Sets a canonical FieldMetadata property through a governed metadata path and re-runs schema normalization.\"}}],\"destructive\":false,\"requiresConfirmation\":false,\"validators\":[\"field-metadata-shape-canonical\",\"field-path-supported-by-editor\",\"metadata-round-trip\"],\"affectedPaths\":[\"fieldMetadata\"],\"submissionImpact\":\"affects-schema-backed-data\",\"preconditions\":[\"field-metadata-loaded\"]},{\"operationId\":\"controlType.set\",\"title\":\"Set control type\",\"scope\":\"controlType\",\"targetKind\":\"controlType\",\"target\":{\"kind\":\"controlType\",\"resolver\":\"dynamic-fields-control-type-discovery\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"controlType\"],\"properties\":{\"controlType\":{\"type\":\"string\"},\"preserveCompatibleProperties\":{\"type\":\"boolean\"}}},\"effects\":[{\"kind\":\"compile-domain-patch\",\"handler\":\"metadata-control-type-set\",\"handlerContract\":{\"reads\":[\"FieldControlType\",\"ConfigRegistryService\",\"dynamic-fields-discovery\",\"fieldMetadata\"],\"writes\":[\"fieldMetadata.controlType\",\"properties\",\"normalizedSeed\"],\"identityKeys\":[\"field.name\",\"controlType\"],\"inputSchema\":{\"type\":\"object\",\"required\":[\"controlType\"],\"properties\":{\"controlType\":{\"type\":\"string\"},\"preserveCompatibleProperties\":{\"type\":\"boolean\"}}},\"failureModes\":[\"control-type-not-discovered\",\"editor-coverage-missing\",\"incompatible-metadata-preservation\"],\"description\":\"Changes control type only when dynamic-fields discovery and metadata-editor config registry both expose renderer/editor coverage.\"}}],\"destructive\":false,\"requiresConfirmation\":false,\"validators\":[\"control-type-exists-in-discovery\",\"editor-coverage-exists\",\"metadata-round-trip\"],\"affectedPaths\":[\"fieldMetadata.controlType\",\"properties\",\"normalizedSeed\"],\"submissionImpact\":\"affects-schema-backed-data\",\"preconditions\":[\"dynamic-fields-discovery-loaded\"]},{\"operationId\":\"optionSource.configure\",\"title\":\"Configure option source\",\"scope\":\"dataBinding\",\"targetKind\":\"optionSource\",\"target\":{\"kind\":\"optionSource\",\"resolver\":\"field-metadata-option-source\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"kind\":{\"enum\":[\"static\",\"remote\",\"resource\",\"lookup\"]},\"resource\":{\"type\":\"string\"},\"endpoint\":{\"type\":\"string\"},\"valueField\":{\"type\":\"string\"},\"labelField\":{\"type\":\"string\"},\"dependsOn\":{\"type\":\"string\"},\"dependencyFilterMap\":{\"type\":\"object\"},\"display\":{\"type\":\"object\",\"properties\":{\"preset\":{\"enum\":[\"compact\",\"rich\",\"directory\",\"status\",\"reference\",\"hierarchical\"]},\"usage\":{\"enum\":[\"form\",\"filter\",\"table-cell\",\"dashboard\",\"wizard\",\"review\"]},\"density\":{\"enum\":[\"compact\",\"comfortable\",\"rich\"]},\"selectedLayout\":{\"enum\":[\"card\",\"inline\",\"compact\",\"token\"]},\"resultLayout\":{\"enum\":[\"list\",\"denseList\",\"table\",\"card\"]},\"primaryPropertyPath\":{\"type\":\"string\"},\"fields\":{\"type\":\"array\"},\"secondaryPropertyPaths\":{\"type\":\"array\"},\"badgePropertyPaths\":{\"type\":\"array\"},\"statusToneMap\":{\"type\":\"object\"}}},\"detail\":{\"type\":\"object\",\"properties\":{\"kind\":{\"enum\":[\"surface\",\"route\",\"href\"]},\"surfaceId\":{\"type\":\"string\"},\"presentation\":{\"enum\":[\"drawer\",\"modal\"]},\"preferredWidget\":{\"type\":\"string\"},\"mode\":{\"enum\":[\"view\",\"edit\",\"create\"]}}},\"options\":{\"type\":\"array\"}}},\"effects\":[{\"kind\":\"compile-domain-patch\",\"handler\":\"metadata-option-source-configure\",\"handlerContract\":{\"reads\":[\"fieldMetadata.optionSource\",\"backend.x-ui.optionSource\",\"SchemaNormalizerService\"],\"writes\":[\"fieldMetadata.optionSource\"],\"identityKeys\":[\"field.name\",\"optionSource.kind\",\"optionSource.resource\"],\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"kind\":{\"enum\":[\"static\",\"remote\",\"resource\",\"lookup\"]},\"resource\":{\"type\":\"string\"},\"endpoint\":{\"type\":\"string\"},\"valueField\":{\"type\":\"string\"},\"labelField\":{\"type\":\"string\"},\"dependsOn\":{\"type\":\"string\"},\"dependencyFilterMap\":{\"type\":\"object\"},\"display\":{\"type\":\"object\",\"properties\":{\"preset\":{\"enum\":[\"compact\",\"rich\",\"directory\",\"status\",\"reference\",\"hierarchical\"]},\"usage\":{\"enum\":[\"form\",\"filter\",\"table-cell\",\"dashboard\",\"wizard\",\"review\"]},\"density\":{\"enum\":[\"compact\",\"comfortable\",\"rich\"]},\"selectedLayout\":{\"enum\":[\"card\",\"inline\",\"compact\",\"token\"]},\"resultLayout\":{\"enum\":[\"list\",\"denseList\",\"table\",\"card\"]},\"primaryPropertyPath\":{\"type\":\"string\"},\"fields\":{\"type\":\"array\"},\"secondaryPropertyPaths\":{\"type\":\"array\"},\"badgePropertyPaths\":{\"type\":\"array\"},\"statusToneMap\":{\"type\":\"object\"}}},\"detail\":{\"type\":\"object\",\"properties\":{\"kind\":{\"enum\":[\"surface\",\"route\",\"href\"]},\"surfaceId\":{\"type\":\"string\"},\"presentation\":{\"enum\":[\"drawer\",\"modal\"]},\"preferredWidget\":{\"type\":\"string\"},\"mode\":{\"enum\":[\"view\",\"edit\",\"create\"]}}},\"options\":{\"type\":\"array\"}}},\"failureModes\":[\"invalid-option-source-kind\",\"remote-source-missing-governed-resource\",\"dependency-filter-map-invalid\"],\"description\":\"Configures canonical optionSource fields while preserving backend x-ui dependsOn and dependencyFilterMap semantics.\"}}],\"destructive\":false,\"requiresConfirmation\":false,\"validators\":[\"option-source-shape-canonical\",\"remote-option-source-governed\",\"cascade-backend-shape-preserved\",\"metadata-round-trip\"],\"affectedPaths\":[\"fieldMetadata.optionSource\"],\"submissionImpact\":\"affects-remote-binding\",\"preconditions\":[\"field-metadata-loaded\"]}]}",
|
|
2036
|
+
"content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-metadata-editor\",\"ownerPackage\":\"@praxisui/metadata-editor\",\"configSchemaId\":\"FieldMetadata\",\"chunkSection\":\"operations\",\"operations\":[{\"operationId\":\"fieldMetadata.property.set\",\"title\":\"Set FieldMetadata property\",\"scope\":\"fieldMetadataPath\",\"targetKind\":\"fieldMetadata\",\"target\":{\"kind\":\"fieldMetadata\",\"resolver\":\"field-metadata-json-path\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"path\",\"value\"],\"properties\":{\"path\":{\"enum\":[\"name\",\"label\",\"description\",\"controlType\",\"placeholder\",\"defaultValue\",\"group\",\"order\",\"required\",\"disabled\",\"readOnly\",\"hidden\",\"source\",\"transient\",\"submitPolicy\",\"hint\",\"helpText\",\"tooltip\",\"valuePresentation\",\"presentation\",\"presentation.presenter\",\"presentation.tone\",\"presentation.appearance\",\"presentation.icon\",\"presentation.label\",\"presentation.badge\",\"presentation.tooltip\",\"presentationRules\",\"quickViewVisible\",\"quickViewOrder\",\"quickViewActionLabel\",\"actions.showQuickView\",\"quickView.previewSurfaceId\",\"quickView.detailPresentation\",\"options\",\"optionSource\",\"validators\",\"conditionalRequired\",\"conditionalDisplay\",\"visibleIn\",\"ariaLabel\",\"ariaDescribedBy\"]},\"value\":{},\"merge\":{\"type\":\"boolean\"}}},\"effects\":[{\"kind\":\"compile-domain-patch\",\"handler\":\"metadata-field-property-set\",\"handlerContract\":{\"reads\":[\"fieldMetadata\",\"fieldMetadataPath\",\"SchemaNormalizerService\"],\"writes\":[\"fieldMetadata\"],\"identityKeys\":[\"field.name\",\"path\"],\"inputSchema\":{\"type\":\"object\",\"required\":[\"path\",\"value\"],\"properties\":{\"path\":{\"enum\":[\"name\",\"label\",\"description\",\"controlType\",\"placeholder\",\"defaultValue\",\"group\",\"order\",\"required\",\"disabled\",\"readOnly\",\"hidden\",\"source\",\"transient\",\"submitPolicy\",\"hint\",\"helpText\",\"tooltip\",\"valuePresentation\",\"presentation\",\"presentation.presenter\",\"presentation.tone\",\"presentation.appearance\",\"presentation.icon\",\"presentation.label\",\"presentation.badge\",\"presentation.tooltip\",\"presentationRules\",\"quickViewVisible\",\"quickViewOrder\",\"quickViewActionLabel\",\"actions.showQuickView\",\"quickView.previewSurfaceId\",\"quickView.detailPresentation\",\"options\",\"optionSource\",\"validators\",\"conditionalRequired\",\"conditionalDisplay\",\"visibleIn\",\"ariaLabel\",\"ariaDescribedBy\"]},\"value\":{},\"merge\":{\"type\":\"boolean\"}}},\"failureModes\":[\"unknown-field-metadata-path\",\"non-canonical-shape\",\"readonly-field\",\"normalization-failed\"],\"description\":\"Sets a canonical FieldMetadata property through a governed metadata path and re-runs schema normalization.\"}}],\"destructive\":false,\"requiresConfirmation\":false,\"validators\":[\"field-metadata-shape-canonical\",\"field-path-supported-by-editor\",\"metadata-round-trip\"],\"affectedPaths\":[\"fieldMetadata\"],\"submissionImpact\":\"affects-schema-backed-data\",\"preconditions\":[\"field-metadata-loaded\"]},{\"operationId\":\"controlType.set\",\"title\":\"Set control type\",\"scope\":\"controlType\",\"targetKind\":\"controlType\",\"target\":{\"kind\":\"controlType\",\"resolver\":\"dynamic-fields-control-type-discovery\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"controlType\"],\"properties\":{\"controlType\":{\"type\":\"string\"},\"preserveCompatibleProperties\":{\"type\":\"boolean\"}}},\"effects\":[{\"kind\":\"compile-domain-patch\",\"handler\":\"metadata-control-type-set\",\"handlerContract\":{\"reads\":[\"FieldControlType\",\"ConfigRegistryService\",\"dynamic-fields-discovery\",\"fieldMetadata\"],\"writes\":[\"fieldMetadata.controlType\",\"properties\",\"normalizedSeed\"],\"identityKeys\":[\"field.name\",\"controlType\"],\"inputSchema\":{\"type\":\"object\",\"required\":[\"controlType\"],\"properties\":{\"controlType\":{\"type\":\"string\"},\"preserveCompatibleProperties\":{\"type\":\"boolean\"}}},\"failureModes\":[\"control-type-not-discovered\",\"editor-coverage-missing\",\"incompatible-metadata-preservation\"],\"description\":\"Changes control type only when dynamic-fields discovery and metadata-editor config registry both expose renderer/editor coverage.\"}}],\"destructive\":false,\"requiresConfirmation\":false,\"validators\":[\"control-type-exists-in-discovery\",\"editor-coverage-exists\",\"metadata-round-trip\"],\"affectedPaths\":[\"fieldMetadata.controlType\",\"properties\",\"normalizedSeed\"],\"submissionImpact\":\"affects-schema-backed-data\",\"preconditions\":[\"dynamic-fields-discovery-loaded\"]},{\"operationId\":\"optionSource.configure\",\"title\":\"Configure option source\",\"scope\":\"dataBinding\",\"targetKind\":\"optionSource\",\"target\":{\"kind\":\"optionSource\",\"resolver\":\"field-metadata-option-source\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"kind\":{\"enum\":[\"static\",\"remote\",\"resource\",\"lookup\"]},\"resource\":{\"type\":\"string\"},\"endpoint\":{\"type\":\"string\"},\"valueField\":{\"type\":\"string\"},\"labelField\":{\"type\":\"string\"},\"dependsOn\":{\"type\":\"string\"},\"dependencyFilterMap\":{\"type\":\"object\"},\"display\":{\"type\":\"object\",\"properties\":{\"preset\":{\"enum\":[\"compact\",\"rich\",\"directory\",\"status\",\"reference\",\"hierarchical\"]},\"usage\":{\"enum\":[\"form\",\"filter\",\"table-cell\",\"dashboard\",\"wizard\",\"review\"]},\"density\":{\"enum\":[\"compact\",\"comfortable\",\"rich\"]},\"selectedLayout\":{\"enum\":[\"card\",\"inline\",\"compact\",\"token\"]},\"resultLayout\":{\"enum\":[\"list\",\"denseList\",\"table\",\"card\"]},\"primaryPropertyPath\":{\"type\":\"string\"},\"fields\":{\"type\":\"array\"},\"secondaryPropertyPaths\":{\"type\":\"array\"},\"badgePropertyPaths\":{\"type\":\"array\"},\"statusToneMap\":{\"type\":\"object\"},\"actions\":{\"type\":\"object\",\"properties\":{\"showQuickView\":{\"type\":\"boolean\"}}}}},\"detail\":{\"type\":\"object\",\"properties\":{\"kind\":{\"enum\":[\"surface\",\"route\",\"href\"]},\"resourceKey\":{\"type\":\"string\"},\"surfaceId\":{\"type\":\"string\"},\"previewSurfaceId\":{\"type\":\"string\"},\"presentation\":{\"enum\":[\"drawer\",\"modal\"]},\"preferredWidget\":{\"type\":\"string\"},\"mode\":{\"enum\":[\"view\",\"edit\",\"create\"]}}},\"options\":{\"type\":\"array\"}}},\"effects\":[{\"kind\":\"compile-domain-patch\",\"handler\":\"metadata-option-source-configure\",\"handlerContract\":{\"reads\":[\"fieldMetadata.optionSource\",\"backend.x-ui.optionSource\",\"SchemaNormalizerService\"],\"writes\":[\"fieldMetadata.optionSource\"],\"identityKeys\":[\"field.name\",\"optionSource.kind\",\"optionSource.resource\"],\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"kind\":{\"enum\":[\"static\",\"remote\",\"resource\",\"lookup\"]},\"resource\":{\"type\":\"string\"},\"endpoint\":{\"type\":\"string\"},\"valueField\":{\"type\":\"string\"},\"labelField\":{\"type\":\"string\"},\"dependsOn\":{\"type\":\"string\"},\"dependencyFilterMap\":{\"type\":\"object\"},\"display\":{\"type\":\"object\",\"properties\":{\"preset\":{\"enum\":[\"compact\",\"rich\",\"directory\",\"status\",\"reference\",\"hierarchical\"]},\"usage\":{\"enum\":[\"form\",\"filter\",\"table-cell\",\"dashboard\",\"wizard\",\"review\"]},\"density\":{\"enum\":[\"compact\",\"comfortable\",\"rich\"]},\"selectedLayout\":{\"enum\":[\"card\",\"inline\",\"compact\",\"token\"]},\"resultLayout\":{\"enum\":[\"list\",\"denseList\",\"table\",\"card\"]},\"primaryPropertyPath\":{\"type\":\"string\"},\"fields\":{\"type\":\"array\"},\"secondaryPropertyPaths\":{\"type\":\"array\"},\"badgePropertyPaths\":{\"type\":\"array\"},\"statusToneMap\":{\"type\":\"object\"},\"actions\":{\"type\":\"object\",\"properties\":{\"showQuickView\":{\"type\":\"boolean\"}}}}},\"detail\":{\"type\":\"object\",\"properties\":{\"kind\":{\"enum\":[\"surface\",\"route\",\"href\"]},\"resourceKey\":{\"type\":\"string\"},\"surfaceId\":{\"type\":\"string\"},\"previewSurfaceId\":{\"type\":\"string\"},\"presentation\":{\"enum\":[\"drawer\",\"modal\"]},\"preferredWidget\":{\"type\":\"string\"},\"mode\":{\"enum\":[\"view\",\"edit\",\"create\"]}}},\"options\":{\"type\":\"array\"}}},\"failureModes\":[\"invalid-option-source-kind\",\"remote-source-missing-governed-resource\",\"dependency-filter-map-invalid\"],\"description\":\"Configures canonical optionSource fields while preserving backend x-ui dependsOn and dependencyFilterMap semantics.\"}}],\"destructive\":false,\"requiresConfirmation\":false,\"validators\":[\"option-source-shape-canonical\",\"remote-option-source-governed\",\"cascade-backend-shape-preserved\",\"metadata-round-trip\"],\"affectedPaths\":[\"fieldMetadata.optionSource\"],\"submissionImpact\":\"affects-remote-binding\",\"preconditions\":[\"field-metadata-loaded\"]}]}",
|
|
1997
2037
|
"sourcePointer": "projects/praxis-metadata-editor/src/lib/ai/praxis-metadata-editor-authoring-manifest.ts",
|
|
1998
|
-
"contentHash": "
|
|
2038
|
+
"contentHash": "cc0e26b2ad9262aa2b3f9d034cafadb57ce4abcd180c565a7cdaab81cd5fc98e",
|
|
1999
2039
|
"sourceKind": "component_definition",
|
|
2000
2040
|
"sourceId": "praxis-metadata-editor",
|
|
2001
2041
|
"corpusVersion": "1.0.0"
|