@praxisui/rich-content 10.0.0-rc.38 → 10.0.0-rc.39
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.
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "1.0.0",
|
|
3
|
-
"generatedAt": "2026-10-
|
|
3
|
+
"generatedAt": "2026-10-26T17:40:14.409Z",
|
|
4
4
|
"packageName": "@praxisui/rich-content",
|
|
5
|
-
"packageVersion": "10.0.0-rc.
|
|
5
|
+
"packageVersion": "10.0.0-rc.39",
|
|
6
6
|
"sourceRegistry": "praxis-component-registry-ingestion",
|
|
7
7
|
"sourceRegistryVersion": "1.0.0",
|
|
8
8
|
"componentCount": 1,
|
|
@@ -4249,6 +4249,7 @@
|
|
|
4249
4249
|
"icon",
|
|
4250
4250
|
"image",
|
|
4251
4251
|
"link",
|
|
4252
|
+
"recordReference",
|
|
4252
4253
|
"badge",
|
|
4253
4254
|
"avatar",
|
|
4254
4255
|
"metric",
|
|
@@ -4317,6 +4318,7 @@
|
|
|
4317
4318
|
"icon",
|
|
4318
4319
|
"image",
|
|
4319
4320
|
"link",
|
|
4321
|
+
"recordReference",
|
|
4320
4322
|
"badge",
|
|
4321
4323
|
"avatar",
|
|
4322
4324
|
"metric",
|
|
@@ -4812,6 +4814,9 @@
|
|
|
4812
4814
|
"action": {
|
|
4813
4815
|
"type": "object"
|
|
4814
4816
|
},
|
|
4817
|
+
"quickView": {
|
|
4818
|
+
"type": "object"
|
|
4819
|
+
},
|
|
4815
4820
|
"actions": {
|
|
4816
4821
|
"type": "array",
|
|
4817
4822
|
"items": {
|
|
@@ -5360,6 +5365,7 @@
|
|
|
5360
5365
|
"document.nodes[].columns",
|
|
5361
5366
|
"document.nodes[].layout",
|
|
5362
5367
|
"document.nodes[].action",
|
|
5368
|
+
"document.nodes[].quickView",
|
|
5363
5369
|
"document.nodes[].actions",
|
|
5364
5370
|
"document.nodes[].primaryAction",
|
|
5365
5371
|
"document.nodes[].secondaryActions",
|
|
@@ -8056,9 +8062,9 @@
|
|
|
8056
8062
|
{
|
|
8057
8063
|
"chunkIndex": 2,
|
|
8058
8064
|
"chunkKind": "authoring_manifest",
|
|
8059
|
-
"content": "{\"operationId\":\"block.add\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-rich-content\",\"ownerPackage\":\"@praxisui/rich-content\",\"configSchemaId\":\"RichContentDocument\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Add rich content block Effects: compile-domain-patch. Add a text block saying Welcome.\",\"scope\":\"templating\",\"target\":{\"kind\":\"block\",\"resolver\":\"document-nodes-array\",\"required\":false},\"inputContract\":{\"required\":[\"type\"],\"properties\":[\"type\",\"node\",\"afterBlockId\",\"beforeBlockId\"],\"semanticTerms\":[\"type\",\"node\",\"afterBlockId\",\"beforeBlockId\",\"text\",\"icon\",\"image\",\"link\",\"badge\",\"avatar\",\"metric\",\"progress\",\"actionButton\",\"compose\",\"card\",\"pageHeader\",\"callout\",\"ctaGroup\",\"keyValueList\",\"emptyState\",\"propertySheet\",\"dynamicForm\",\"statGroup\",\"tabs\",\"recordSummary\",\"lookupResult\",\"lookupCard\",\"relatedRecord\",\"actionCard\",\"decisionPackage\",\"collapsibleCard\",\"disclosure\",\"accordion\",\"formLauncher\",\"mediaBlock\",\"timeline\",\"preset\"]},\"effects\":[\"compile-domain-patch\"],\"affectedPaths\":[\"document.nodes[]\"],\"validators\":[{\"validatorId\":\"node-types-supported\",\"level\":\"error\",\"code\":\"PRC003\",\"description\":\"Nodes must use supported rich-content node types, including link as a structured node rather than arbitrary HTML.\"},{\"validatorId\":\"block-id-unique\",\"level\":\"warning\",\"code\":\"PRC004\",\"description\":\"Stable block ids should be unique when present; operations should prefer ids over array indexes.\"},{\"validatorId\":\"document-shape-canonical\",\"level\":\"error\",\"code\":\"PRC001\",\"description\":\"Documents must satisfy RichContentDocument with kind praxis.rich-content, version 1.0.0 and a nodes array.\"},{\"validatorId\":\"unsafe-url-rejected\",\"level\":\"error\",\"code\":\"PRC014\",\"description\":\"Image, avatar and link URL fields must reject unsafe protocols and null bytes.\"},{\"validatorId\":\"unsafe-style-rejected\",\"level\":\"error\",\"code\":\"PRC015\",\"description\":\"Inline style values must reject script, import, binding and data URL expressions.\"},{\"validatorId\":\"editor-runtime-round-trip\",\"level\":\"error\",\"code\":\"PRC024\",\"description\":\"Config editor, Settings Panel payload and runtime renderer must preserve document structure, layout and rootClassName.\"}],\"preconditions\":[\"config-initialized\"],\"submissionImpact\":\"config-only\",\"presentationAffordances\":[],\"positiveExamples\":[{\"id\":\"add-text-block\",\"request\":\"Add a text block saying Welcome.\",\"operationId\":\"block.add\",\"params\":{\"type\":\"text\",\"node\":{\"id\":\"welcome\",\"type\":\"text\",\"text\":\"Welcome\"}},\"isPositive\":true}],\"negativeExamples\":[]}",
|
|
8065
|
+
"content": "{\"operationId\":\"block.add\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-rich-content\",\"ownerPackage\":\"@praxisui/rich-content\",\"configSchemaId\":\"RichContentDocument\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Add rich content block Effects: compile-domain-patch. Add a text block saying Welcome.\",\"scope\":\"templating\",\"target\":{\"kind\":\"block\",\"resolver\":\"document-nodes-array\",\"required\":false},\"inputContract\":{\"required\":[\"type\"],\"properties\":[\"type\",\"node\",\"afterBlockId\",\"beforeBlockId\"],\"semanticTerms\":[\"type\",\"node\",\"afterBlockId\",\"beforeBlockId\",\"text\",\"icon\",\"image\",\"link\",\"recordReference\",\"badge\",\"avatar\",\"metric\",\"progress\",\"actionButton\",\"compose\",\"card\",\"pageHeader\",\"callout\",\"ctaGroup\",\"keyValueList\",\"emptyState\",\"propertySheet\",\"dynamicForm\",\"statGroup\",\"tabs\",\"recordSummary\",\"lookupResult\",\"lookupCard\",\"relatedRecord\",\"actionCard\",\"decisionPackage\",\"collapsibleCard\",\"disclosure\",\"accordion\",\"formLauncher\",\"mediaBlock\",\"timeline\",\"preset\"]},\"effects\":[\"compile-domain-patch\"],\"affectedPaths\":[\"document.nodes[]\"],\"validators\":[{\"validatorId\":\"node-types-supported\",\"level\":\"error\",\"code\":\"PRC003\",\"description\":\"Nodes must use supported rich-content node types, including link as a structured node rather than arbitrary HTML.\"},{\"validatorId\":\"block-id-unique\",\"level\":\"warning\",\"code\":\"PRC004\",\"description\":\"Stable block ids should be unique when present; operations should prefer ids over array indexes.\"},{\"validatorId\":\"document-shape-canonical\",\"level\":\"error\",\"code\":\"PRC001\",\"description\":\"Documents must satisfy RichContentDocument with kind praxis.rich-content, version 1.0.0 and a nodes array.\"},{\"validatorId\":\"unsafe-url-rejected\",\"level\":\"error\",\"code\":\"PRC014\",\"description\":\"Image, avatar and link URL fields must reject unsafe protocols and null bytes.\"},{\"validatorId\":\"unsafe-style-rejected\",\"level\":\"error\",\"code\":\"PRC015\",\"description\":\"Inline style values must reject script, import, binding and data URL expressions.\"},{\"validatorId\":\"editor-runtime-round-trip\",\"level\":\"error\",\"code\":\"PRC024\",\"description\":\"Config editor, Settings Panel payload and runtime renderer must preserve document structure, layout and rootClassName.\"}],\"preconditions\":[\"config-initialized\"],\"submissionImpact\":\"config-only\",\"presentationAffordances\":[],\"positiveExamples\":[{\"id\":\"add-text-block\",\"request\":\"Add a text block saying Welcome.\",\"operationId\":\"block.add\",\"params\":{\"type\":\"text\",\"node\":{\"id\":\"welcome\",\"type\":\"text\",\"text\":\"Welcome\"}},\"isPositive\":true}],\"negativeExamples\":[]}",
|
|
8060
8066
|
"sourcePointer": "projects/praxis-rich-content/src/lib/ai/praxis-rich-content-authoring-manifest.ts",
|
|
8061
|
-
"contentHash": "
|
|
8067
|
+
"contentHash": "484fb99816f473fba4bc893d72be748e2572125260cda06f14241809a6d61a93",
|
|
8062
8068
|
"sourceKind": "component_definition",
|
|
8063
8069
|
"sourceId": "praxis-rich-content",
|
|
8064
8070
|
"corpusVersion": "1.0.0"
|
|
@@ -8066,9 +8072,9 @@
|
|
|
8066
8072
|
{
|
|
8067
8073
|
"chunkIndex": 3,
|
|
8068
8074
|
"chunkKind": "authoring_manifest",
|
|
8069
|
-
"content": "{\"operationId\":\"block.update\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-rich-content\",\"ownerPackage\":\"@praxisui/rich-content\",\"configSchemaId\":\"RichContentDocument\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Update rich content block fields Effects: merge-by-key.\",\"scope\":\"templating\",\"target\":{\"kind\":\"block\",\"resolver\":\"rich-block-node-by-id-or-path\",\"required\":true},\"inputContract\":{\"required\":[],\"properties\":[\"id\",\"testId\",\"className\",\"style\",\"visibleWhen\",\"disabledWhen\",\"loadWhen\",\"classWhen\",\"styleWhen\",\"requiresCapabilities\",\"capabilityMode\",\"text\",\"textExpr\",\"label\",\"labelExpr\",\"href\",\"target\",\"rel\",\"src\",\"alt\",\"title\",\"titleExpr\",\"subtitle\",\"subtitleExpr\",\"relationLabel\",\"message\",\"summary\",\"summaryExpr\",\"description\",\"ctaLabel\",\"caption\",\"emptyText\",\"errorText\",\"status\",\"statusExpr\",\"owner\",\"ownerExpr\",\"policySource\",\"policySourceExpr\",\"version\",\"versionExpr\",\"confidence\",\"confidenceExpr\",\"risk\",\"riskExpr\",\"lastReviewed\",\"lastReviewedExpr\",\"supersedes\",\"supersedesExpr\",\"evidence\",\"appearance\",\"variant\",\"tone\",\"size\",\"density\",\"orientation\",\"loading\",\"loadingExpr\",\"active\",\"activeExpr\",\"defaultTabId\",\"order\",\"position\",\"itemLayout\",\"connectorVariant\",\"connectorColor\",\"markerVariant\",\"markerColor\",\"markerStyle\",\"emphasis\",\"textAppearance\",\"initialLimit\",\"icon\",\"formId\",\"columns\",\"minColumnWidth\",\"alignItems\",\"layout\",\"ctaPlacement\",\"ctaVariant\",\"action\",\"actions\",\"primaryAction\",\"secondaryActions\",\"media\",\"headerAction\",\"headingLevel\",\"identity\",\"breadcrumbs\",\"overflowActions\",\"relatedLinks\",\"interaction\",\"accessibility\",\"fields\",\"itemsExpr\",\"itemTemplate\",\"items\",\"header\",\"body\",\"footer\",\"aside\"],\"semanticTerms\":[\"id\",\"testId\",\"className\",\"style\",\"visibleWhen\",\"disabledWhen\",\"loadWhen\",\"classWhen\",\"styleWhen\",\"requiresCapabilities\",\"capabilityMode\",\"text\",\"textExpr\",\"label\",\"labelExpr\",\"href\",\"target\",\"rel\",\"src\",\"alt\",\"title\",\"titleExpr\",\"subtitle\",\"subtitleExpr\",\"relationLabel\",\"message\",\"summary\",\"summaryExpr\",\"description\",\"ctaLabel\",\"caption\",\"emptyText\",\"errorText\",\"status\",\"statusExpr\",\"owner\",\"ownerExpr\",\"policySource\",\"policySourceExpr\",\"version\",\"versionExpr\",\"confidence\",\"confidenceExpr\",\"risk\",\"riskExpr\",\"lastReviewed\",\"lastReviewedExpr\",\"supersedes\",\"supersedesExpr\",\"evidence\",\"appearance\",\"variant\",\"tone\",\"size\",\"density\",\"orientation\",\"loading\",\"loadingExpr\",\"active\",\"activeExpr\",\"defaultTabId\",\"order\",\"position\",\"itemLayout\",\"connectorVariant\",\"connectorColor\",\"markerVariant\",\"markerColor\",\"markerStyle\",\"emphasis\",\"textAppearance\",\"initialLimit\",\"icon\",\"formId\",\"columns\",\"minColumnWidth\",\"alignItems\",\"layout\",\"ctaPlacement\",\"ctaVariant\"]},\"effects\":[\"merge-by-key\"],\"affectedPaths\":[\"document.nodes[]\",\"document.nodes[].id\",\"document.nodes[].testId\",\"document.nodes[].className\",\"document.nodes[].style\",\"document.nodes[].visibleWhen\",\"document.nodes[].disabledWhen\",\"document.nodes[].loadWhen\",\"document.nodes[].classWhen\",\"document.nodes[].styleWhen\",\"document.nodes[].requiresCapabilities\",\"document.nodes[].capabilityMode\",\"document.nodes[].text\",\"document.nodes[].textExpr\",\"document.nodes[].label\",\"document.nodes[].labelExpr\",\"document.nodes[].href\",\"document.nodes[].target\",\"document.nodes[].rel\",\"document.nodes[].src\",\"document.nodes[].alt\",\"document.nodes[].title\",\"document.nodes[].titleExpr\",\"document.nodes[].subtitle\",\"document.nodes[].subtitleExpr\",\"document.nodes[].relationLabel\",\"document.nodes[].message\",\"document.nodes[].summary\",\"document.nodes[].summaryExpr\",\"document.nodes[].description\",\"document.nodes[].ctaLabel\",\"document.nodes[].caption\",\"document.nodes[].emptyText\",\"document.nodes[].errorText\",\"document.nodes[].status\",\"document.nodes[].statusExpr\",\"document.nodes[].owner\",\"document.nodes[].ownerExpr\",\"document.nodes[].policySource\",\"document.nodes[].policySourceExpr\",\"document.nodes[].version\",\"document.nodes[].versionExpr\",\"document.nodes[].confidence\",\"document.nodes[].confidenceExpr\",\"document.nodes[].risk\",\"document.nodes[].riskExpr\",\"document.nodes[].lastReviewed\",\"document.nodes[].lastReviewedExpr\",\"document.nodes[].supersedes\",\"document.nodes[].supersedesExpr\",\"document.nodes[].evidence\",\"document.nodes[].appearance\",\"document.nodes[].variant\",\"document.nodes[].tone\",\"document.nodes[].size\",\"document.nodes[].density\",\"document.nodes[].orientation\",\"document.nodes[].loading\",\"document.nodes[].loadingExpr\",\"document.nodes[].active\",\"document.nodes[].activeExpr\",\"document.nodes[].defaultTabId\",\"document.nodes[].order\",\"document.nodes[].position\",\"document.nodes[].itemLayout\",\"document.nodes[].connectorVariant\",\"document.nodes[].connectorColor\",\"document.nodes[].markerVariant\",\"document.nodes[].markerColor\",\"document.nodes[].markerStyle\",\"document.nodes[].emphasis\",\"document.nodes[].textAppearance\",\"document.nodes[].initialLimit\",\"document.nodes[].icon\",\"document.nodes[].formId\",\"document.nodes[].columns\",\"document.nodes[].layout\",\"document.nodes[].action\",\"document.nodes[].actions\",\"document.nodes[].primaryAction\",\"document.nodes[].secondaryActions\",\"document.nodes[].media\",\"document.nodes[].headerAction\",\"document.nodes[].headingLevel\",\"document.nodes[].identity\",\"document.nodes[].breadcrumbs\",\"document.nodes[].overflowActions\",\"document.nodes[].relatedLinks\",\"document.nodes[].interaction\",\"document.nodes[].accessibility\",\"document.nodes[].fields\",\"document.nodes[].itemsExpr\",\"document.nodes[].itemTemplate\",\"document.nodes[].items[]\",\"document.nodes[].header\",\"document.nodes[].body\",\"document.nodes[].footer\",\"document.nodes[].aside\"],\"validators\":[{\"validatorId\":\"block-exists\",\"level\":\"error\",\"code\":\"PRC005\",\"description\":\"Target block must exist before patching, reordering or removing it.\"},{\"validatorId\":\"node-types-supported\",\"level\":\"error\",\"code\":\"PRC003\",\"description\":\"Nodes must use supported rich-content node types, including link as a structured node rather than arbitrary HTML.\"},{\"validatorId\":\"unsafe-url-rejected\",\"level\":\"error\",\"code\":\"PRC014\",\"description\":\"Image, avatar and link URL fields must reject unsafe protocols and null bytes.\"},{\"validatorId\":\"unsafe-style-rejected\",\"level\":\"error\",\"code\":\"PRC015\",\"description\":\"Inline style values must reject script, import, binding and data URL expressions.\"},{\"validatorId\":\"expression-path-safe\",\"level\":\"warning\",\"code\":\"PRC010\",\"description\":\"Expression paths must remain simple context/state paths (optionally chained with CSP-safe declarative value pipes such as default, round, number, percent, currency, uppercase, lowercase) or Json Logic expressions, not arbitrary JS string DSL code.\"},{\"validatorId\":\"document-shape-canonical\",\"level\":\"error\",\"code\":\"PRC001\",\"description\":\"Documents must satisfy RichContentDocument with kind praxis.rich-content, version 1.0.0 and a nodes array.\"},{\"validatorId\":\"editor-runtime-round-trip\",\"level\":\"error\",\"code\":\"PRC024\",\"description\":\"Config editor, Settings Panel payload and runtime renderer must preserve document structure, layout and rootClassName.\"}],\"preconditions\":[\"config-initialized\",\"target-block-exists\"],\"submissionImpact\":\"config-only\",\"presentationAffordances\":[],\"positiveExamples\":[],\"negativeExamples\":[]}",
|
|
8075
|
+
"content": "{\"operationId\":\"block.update\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-rich-content\",\"ownerPackage\":\"@praxisui/rich-content\",\"configSchemaId\":\"RichContentDocument\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Update rich content block fields Effects: merge-by-key.\",\"scope\":\"templating\",\"target\":{\"kind\":\"block\",\"resolver\":\"rich-block-node-by-id-or-path\",\"required\":true},\"inputContract\":{\"required\":[],\"properties\":[\"id\",\"testId\",\"className\",\"style\",\"visibleWhen\",\"disabledWhen\",\"loadWhen\",\"classWhen\",\"styleWhen\",\"requiresCapabilities\",\"capabilityMode\",\"text\",\"textExpr\",\"label\",\"labelExpr\",\"href\",\"target\",\"rel\",\"src\",\"alt\",\"title\",\"titleExpr\",\"subtitle\",\"subtitleExpr\",\"relationLabel\",\"message\",\"summary\",\"summaryExpr\",\"description\",\"ctaLabel\",\"caption\",\"emptyText\",\"errorText\",\"status\",\"statusExpr\",\"owner\",\"ownerExpr\",\"policySource\",\"policySourceExpr\",\"version\",\"versionExpr\",\"confidence\",\"confidenceExpr\",\"risk\",\"riskExpr\",\"lastReviewed\",\"lastReviewedExpr\",\"supersedes\",\"supersedesExpr\",\"evidence\",\"appearance\",\"variant\",\"tone\",\"size\",\"density\",\"orientation\",\"loading\",\"loadingExpr\",\"active\",\"activeExpr\",\"defaultTabId\",\"order\",\"position\",\"itemLayout\",\"connectorVariant\",\"connectorColor\",\"markerVariant\",\"markerColor\",\"markerStyle\",\"emphasis\",\"textAppearance\",\"initialLimit\",\"icon\",\"formId\",\"columns\",\"minColumnWidth\",\"alignItems\",\"layout\",\"ctaPlacement\",\"ctaVariant\",\"action\",\"quickView\",\"actions\",\"primaryAction\",\"secondaryActions\",\"media\",\"headerAction\",\"headingLevel\",\"identity\",\"breadcrumbs\",\"overflowActions\",\"relatedLinks\",\"interaction\",\"accessibility\",\"fields\",\"itemsExpr\",\"itemTemplate\",\"items\",\"header\",\"body\",\"footer\",\"aside\"],\"semanticTerms\":[\"id\",\"testId\",\"className\",\"style\",\"visibleWhen\",\"disabledWhen\",\"loadWhen\",\"classWhen\",\"styleWhen\",\"requiresCapabilities\",\"capabilityMode\",\"text\",\"textExpr\",\"label\",\"labelExpr\",\"href\",\"target\",\"rel\",\"src\",\"alt\",\"title\",\"titleExpr\",\"subtitle\",\"subtitleExpr\",\"relationLabel\",\"message\",\"summary\",\"summaryExpr\",\"description\",\"ctaLabel\",\"caption\",\"emptyText\",\"errorText\",\"status\",\"statusExpr\",\"owner\",\"ownerExpr\",\"policySource\",\"policySourceExpr\",\"version\",\"versionExpr\",\"confidence\",\"confidenceExpr\",\"risk\",\"riskExpr\",\"lastReviewed\",\"lastReviewedExpr\",\"supersedes\",\"supersedesExpr\",\"evidence\",\"appearance\",\"variant\",\"tone\",\"size\",\"density\",\"orientation\",\"loading\",\"loadingExpr\",\"active\",\"activeExpr\",\"defaultTabId\",\"order\",\"position\",\"itemLayout\",\"connectorVariant\",\"connectorColor\",\"markerVariant\",\"markerColor\",\"markerStyle\",\"emphasis\",\"textAppearance\",\"initialLimit\",\"icon\",\"formId\",\"columns\",\"minColumnWidth\",\"alignItems\",\"layout\",\"ctaPlacement\",\"ctaVariant\"]},\"effects\":[\"merge-by-key\"],\"affectedPaths\":[\"document.nodes[]\",\"document.nodes[].id\",\"document.nodes[].testId\",\"document.nodes[].className\",\"document.nodes[].style\",\"document.nodes[].visibleWhen\",\"document.nodes[].disabledWhen\",\"document.nodes[].loadWhen\",\"document.nodes[].classWhen\",\"document.nodes[].styleWhen\",\"document.nodes[].requiresCapabilities\",\"document.nodes[].capabilityMode\",\"document.nodes[].text\",\"document.nodes[].textExpr\",\"document.nodes[].label\",\"document.nodes[].labelExpr\",\"document.nodes[].href\",\"document.nodes[].target\",\"document.nodes[].rel\",\"document.nodes[].src\",\"document.nodes[].alt\",\"document.nodes[].title\",\"document.nodes[].titleExpr\",\"document.nodes[].subtitle\",\"document.nodes[].subtitleExpr\",\"document.nodes[].relationLabel\",\"document.nodes[].message\",\"document.nodes[].summary\",\"document.nodes[].summaryExpr\",\"document.nodes[].description\",\"document.nodes[].ctaLabel\",\"document.nodes[].caption\",\"document.nodes[].emptyText\",\"document.nodes[].errorText\",\"document.nodes[].status\",\"document.nodes[].statusExpr\",\"document.nodes[].owner\",\"document.nodes[].ownerExpr\",\"document.nodes[].policySource\",\"document.nodes[].policySourceExpr\",\"document.nodes[].version\",\"document.nodes[].versionExpr\",\"document.nodes[].confidence\",\"document.nodes[].confidenceExpr\",\"document.nodes[].risk\",\"document.nodes[].riskExpr\",\"document.nodes[].lastReviewed\",\"document.nodes[].lastReviewedExpr\",\"document.nodes[].supersedes\",\"document.nodes[].supersedesExpr\",\"document.nodes[].evidence\",\"document.nodes[].appearance\",\"document.nodes[].variant\",\"document.nodes[].tone\",\"document.nodes[].size\",\"document.nodes[].density\",\"document.nodes[].orientation\",\"document.nodes[].loading\",\"document.nodes[].loadingExpr\",\"document.nodes[].active\",\"document.nodes[].activeExpr\",\"document.nodes[].defaultTabId\",\"document.nodes[].order\",\"document.nodes[].position\",\"document.nodes[].itemLayout\",\"document.nodes[].connectorVariant\",\"document.nodes[].connectorColor\",\"document.nodes[].markerVariant\",\"document.nodes[].markerColor\",\"document.nodes[].markerStyle\",\"document.nodes[].emphasis\",\"document.nodes[].textAppearance\",\"document.nodes[].initialLimit\",\"document.nodes[].icon\",\"document.nodes[].formId\",\"document.nodes[].columns\",\"document.nodes[].layout\",\"document.nodes[].action\",\"document.nodes[].quickView\",\"document.nodes[].actions\",\"document.nodes[].primaryAction\",\"document.nodes[].secondaryActions\",\"document.nodes[].media\",\"document.nodes[].headerAction\",\"document.nodes[].headingLevel\",\"document.nodes[].identity\",\"document.nodes[].breadcrumbs\",\"document.nodes[].overflowActions\",\"document.nodes[].relatedLinks\",\"document.nodes[].interaction\",\"document.nodes[].accessibility\",\"document.nodes[].fields\",\"document.nodes[].itemsExpr\",\"document.nodes[].itemTemplate\",\"document.nodes[].items[]\",\"document.nodes[].header\",\"document.nodes[].body\",\"document.nodes[].footer\",\"document.nodes[].aside\"],\"validators\":[{\"validatorId\":\"block-exists\",\"level\":\"error\",\"code\":\"PRC005\",\"description\":\"Target block must exist before patching, reordering or removing it.\"},{\"validatorId\":\"node-types-supported\",\"level\":\"error\",\"code\":\"PRC003\",\"description\":\"Nodes must use supported rich-content node types, including link as a structured node rather than arbitrary HTML.\"},{\"validatorId\":\"unsafe-url-rejected\",\"level\":\"error\",\"code\":\"PRC014\",\"description\":\"Image, avatar and link URL fields must reject unsafe protocols and null bytes.\"},{\"validatorId\":\"unsafe-style-rejected\",\"level\":\"error\",\"code\":\"PRC015\",\"description\":\"Inline style values must reject script, import, binding and data URL expressions.\"},{\"validatorId\":\"expression-path-safe\",\"level\":\"warning\",\"code\":\"PRC010\",\"description\":\"Expression paths must remain simple context/state paths (optionally chained with CSP-safe declarative value pipes such as default, round, number, percent, currency, uppercase, lowercase) or Json Logic expressions, not arbitrary JS string DSL code.\"},{\"validatorId\":\"document-shape-canonical\",\"level\":\"error\",\"code\":\"PRC001\",\"description\":\"Documents must satisfy RichContentDocument with kind praxis.rich-content, version 1.0.0 and a nodes array.\"},{\"validatorId\":\"editor-runtime-round-trip\",\"level\":\"error\",\"code\":\"PRC024\",\"description\":\"Config editor, Settings Panel payload and runtime renderer must preserve document structure, layout and rootClassName.\"}],\"preconditions\":[\"config-initialized\",\"target-block-exists\"],\"submissionImpact\":\"config-only\",\"presentationAffordances\":[],\"positiveExamples\":[],\"negativeExamples\":[]}",
|
|
8070
8076
|
"sourcePointer": "projects/praxis-rich-content/src/lib/ai/praxis-rich-content-authoring-manifest.ts",
|
|
8071
|
-
"contentHash": "
|
|
8077
|
+
"contentHash": "24e2d6bc19454f3ff07279944a153415e80de4fa3b9110c5cb64741c0b8d13d9",
|
|
8072
8078
|
"sourceKind": "component_definition",
|
|
8073
8079
|
"sourceId": "praxis-rich-content",
|
|
8074
8080
|
"corpusVersion": "1.0.0"
|
|
@@ -8246,9 +8252,9 @@
|
|
|
8246
8252
|
{
|
|
8247
8253
|
"chunkIndex": 21,
|
|
8248
8254
|
"chunkKind": "authoring_manifest",
|
|
8249
|
-
"content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-rich-content\",\"ownerPackage\":\"@praxisui/rich-content\",\"configSchemaId\":\"RichContentDocument\",\"chunkSection\":\"operations\",\"operations\":[{\"operationId\":\"document.set\",\"title\":\"Set rich content document\",\"scope\":\"global\",\"targetKind\":\"document\",\"target\":{\"kind\":\"document\",\"resolver\":\"rich-content-document-root\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"required\":[\"kind\",\"version\",\"nodes\"],\"properties\":{\"kind\":{\"const\":\"praxis.rich-content\"},\"version\":{\"const\":\"1.0.0\"},\"context\":{\"type\":\"object\"},\"nodes\":{\"type\":\"array\",\"items\":{\"type\":\"object\"}}}},\"effects\":[{\"kind\":\"set-value\",\"path\":\"document\"}],\"destructive\":false,\"requiresConfirmation\":false,\"validators\":[\"document-shape-canonical\",\"document-version-supported\",\"node-types-supported\",\"unsafe-url-rejected\",\"unsafe-style-rejected\",\"editor-runtime-round-trip\"],\"affectedPaths\":[\"document\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"block.add\",\"title\":\"Add rich content block\",\"scope\":\"templating\",\"targetKind\":\"block\",\"target\":{\"kind\":\"block\",\"resolver\":\"document-nodes-array\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"required\":[\"type\"],\"properties\":{\"type\":{\"enum\":[\"text\",\"icon\",\"image\",\"link\",\"badge\",\"avatar\",\"metric\",\"progress\",\"actionButton\",\"compose\",\"card\",\"pageHeader\",\"callout\",\"ctaGroup\",\"keyValueList\",\"emptyState\",\"propertySheet\",\"dynamicForm\",\"statGroup\",\"tabs\",\"recordSummary\",\"lookupResult\",\"lookupCard\",\"relatedRecord\",\"actionCard\",\"decisionPackage\",\"collapsibleCard\",\"disclosure\",\"accordion\",\"formLauncher\",\"mediaBlock\",\"timeline\",\"preset\"]},\"node\":{\"type\":\"object\"},\"afterBlockId\":{\"type\":\"string\"},\"beforeBlockId\":{\"type\":\"string\"}}},\"effects\":[{\"kind\":\"compile-domain-patch\",\"handler\":\"rich-content-block-add\",\"handlerContract\":{\"reads\":[\"document.nodes[]\"],\"writes\":[\"document.nodes[]\"],\"identityKeys\":[\"document.nodes[].id\"],\"inputSchema\":{\"type\":\"object\",\"required\":[\"type\"],\"properties\":{\"type\":{\"enum\":[\"text\",\"icon\",\"image\",\"link\",\"badge\",\"avatar\",\"metric\",\"progress\",\"actionButton\",\"compose\",\"card\",\"pageHeader\",\"callout\",\"ctaGroup\",\"keyValueList\",\"emptyState\",\"propertySheet\",\"dynamicForm\",\"statGroup\",\"tabs\",\"recordSummary\",\"lookupResult\",\"lookupCard\",\"relatedRecord\",\"actionCard\",\"decisionPackage\",\"collapsibleCard\",\"disclosure\",\"accordion\",\"formLauncher\",\"mediaBlock\",\"timeline\",\"preset\"]},\"node\":{\"type\":\"object\"},\"afterBlockId\":{\"type\":\"string\"},\"beforeBlockId\":{\"type\":\"string\"}}},\"failureModes\":[\"unsupported-node-type\",\"duplicate-node-id\",\"invalid-node-shape\",\"unsafe-url\",\"unsafe-style\"],\"description\":\"Creates a supported RichBlockNode, validates it with validateRichContentDocument semantics and inserts it by stable neighbor id when provided.\"}}],\"destructive\":false,\"requiresConfirmation\":false,\"validators\":[\"node-types-supported\",\"block-id-unique\",\"document-shape-canonical\",\"unsafe-url-rejected\",\"unsafe-style-rejected\",\"editor-runtime-round-trip\"],\"affectedPaths\":[\"document.nodes[]\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\"]}]}",
|
|
8255
|
+
"content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-rich-content\",\"ownerPackage\":\"@praxisui/rich-content\",\"configSchemaId\":\"RichContentDocument\",\"chunkSection\":\"operations\",\"operations\":[{\"operationId\":\"document.set\",\"title\":\"Set rich content document\",\"scope\":\"global\",\"targetKind\":\"document\",\"target\":{\"kind\":\"document\",\"resolver\":\"rich-content-document-root\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"required\":[\"kind\",\"version\",\"nodes\"],\"properties\":{\"kind\":{\"const\":\"praxis.rich-content\"},\"version\":{\"const\":\"1.0.0\"},\"context\":{\"type\":\"object\"},\"nodes\":{\"type\":\"array\",\"items\":{\"type\":\"object\"}}}},\"effects\":[{\"kind\":\"set-value\",\"path\":\"document\"}],\"destructive\":false,\"requiresConfirmation\":false,\"validators\":[\"document-shape-canonical\",\"document-version-supported\",\"node-types-supported\",\"unsafe-url-rejected\",\"unsafe-style-rejected\",\"editor-runtime-round-trip\"],\"affectedPaths\":[\"document\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"block.add\",\"title\":\"Add rich content block\",\"scope\":\"templating\",\"targetKind\":\"block\",\"target\":{\"kind\":\"block\",\"resolver\":\"document-nodes-array\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"required\":[\"type\"],\"properties\":{\"type\":{\"enum\":[\"text\",\"icon\",\"image\",\"link\",\"recordReference\",\"badge\",\"avatar\",\"metric\",\"progress\",\"actionButton\",\"compose\",\"card\",\"pageHeader\",\"callout\",\"ctaGroup\",\"keyValueList\",\"emptyState\",\"propertySheet\",\"dynamicForm\",\"statGroup\",\"tabs\",\"recordSummary\",\"lookupResult\",\"lookupCard\",\"relatedRecord\",\"actionCard\",\"decisionPackage\",\"collapsibleCard\",\"disclosure\",\"accordion\",\"formLauncher\",\"mediaBlock\",\"timeline\",\"preset\"]},\"node\":{\"type\":\"object\"},\"afterBlockId\":{\"type\":\"string\"},\"beforeBlockId\":{\"type\":\"string\"}}},\"effects\":[{\"kind\":\"compile-domain-patch\",\"handler\":\"rich-content-block-add\",\"handlerContract\":{\"reads\":[\"document.nodes[]\"],\"writes\":[\"document.nodes[]\"],\"identityKeys\":[\"document.nodes[].id\"],\"inputSchema\":{\"type\":\"object\",\"required\":[\"type\"],\"properties\":{\"type\":{\"enum\":[\"text\",\"icon\",\"image\",\"link\",\"recordReference\",\"badge\",\"avatar\",\"metric\",\"progress\",\"actionButton\",\"compose\",\"card\",\"pageHeader\",\"callout\",\"ctaGroup\",\"keyValueList\",\"emptyState\",\"propertySheet\",\"dynamicForm\",\"statGroup\",\"tabs\",\"recordSummary\",\"lookupResult\",\"lookupCard\",\"relatedRecord\",\"actionCard\",\"decisionPackage\",\"collapsibleCard\",\"disclosure\",\"accordion\",\"formLauncher\",\"mediaBlock\",\"timeline\",\"preset\"]},\"node\":{\"type\":\"object\"},\"afterBlockId\":{\"type\":\"string\"},\"beforeBlockId\":{\"type\":\"string\"}}},\"failureModes\":[\"unsupported-node-type\",\"duplicate-node-id\",\"invalid-node-shape\",\"unsafe-url\",\"unsafe-style\"],\"description\":\"Creates a supported RichBlockNode, validates it with validateRichContentDocument semantics and inserts it by stable neighbor id when provided.\"}}],\"destructive\":false,\"requiresConfirmation\":false,\"validators\":[\"node-types-supported\",\"block-id-unique\",\"document-shape-canonical\",\"unsafe-url-rejected\",\"unsafe-style-rejected\",\"editor-runtime-round-trip\"],\"affectedPaths\":[\"document.nodes[]\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\"]}]}",
|
|
8250
8256
|
"sourcePointer": "projects/praxis-rich-content/src/lib/ai/praxis-rich-content-authoring-manifest.ts",
|
|
8251
|
-
"contentHash": "
|
|
8257
|
+
"contentHash": "75d47de852f90ee0cf3f6e00197f9b7b36194a624fa91b296561927a2fcbf4fc",
|
|
8252
8258
|
"sourceKind": "component_definition",
|
|
8253
8259
|
"sourceId": "praxis-rich-content",
|
|
8254
8260
|
"corpusVersion": "1.0.0"
|
|
@@ -8256,9 +8262,9 @@
|
|
|
8256
8262
|
{
|
|
8257
8263
|
"chunkIndex": 22,
|
|
8258
8264
|
"chunkKind": "authoring_manifest",
|
|
8259
|
-
"content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-rich-content\",\"ownerPackage\":\"@praxisui/rich-content\",\"configSchemaId\":\"RichContentDocument\",\"chunkSection\":\"operations[2]\",\"fragmentPath\":\"operations[2]\",\"fragmentIdentity\":{\"operationId\":\"block.update\"},\"fragment\":{\"operationId\":\"block.update\",\"title\":\"Update rich content block fields\",\"scope\":\"templating\",\"targetKind\":\"block\",\"target\":{\"kind\":\"block\",\"resolver\":\"rich-block-node-by-id-or-path\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"id\":{\"type\":\"string\"},\"testId\":{\"type\":\"string\"},\"className\":{\"type\":\"string\"},\"style\":{\"type\":\"object\"},\"visibleWhen\":{\"oneOf\":[{\"type\":\"boolean\"},{\"type\":\"object\"}]},\"disabledWhen\":{\"oneOf\":[{\"type\":\"boolean\"},{\"type\":\"object\"}]},\"loadWhen\":{\"oneOf\":[{\"type\":\"boolean\"},{\"type\":\"object\"}]},\"classWhen\":{\"type\":\"array\",\"items\":{\"type\":\"object\"}},\"styleWhen\":{\"type\":\"array\",\"items\":{\"type\":\"object\"}},\"requiresCapabilities\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"capabilityMode\":{\"enum\":[\"all\",\"any\"]},\"text\":{\"type\":\"string\"},\"textExpr\":{\"type\":\"string\"},\"label\":{\"type\":\"string\"},\"labelExpr\":{\"type\":\"string\"},\"href\":{\"type\":\"string\"},\"target\":{\"enum\":[\"_self\",\"_blank\"]},\"rel\":{\"type\":\"string\"},\"src\":{\"type\":\"string\"},\"alt\":{\"type\":\"string\"},\"title\":{\"type\":\"string\"},\"titleExpr\":{\"type\":\"string\"},\"subtitle\":{\"type\":\"string\"},\"subtitleExpr\":{\"type\":\"string\"},\"relationLabel\":{\"type\":\"string\"},\"message\":{\"type\":\"string\"},\"summary\":{\"type\":\"string\"},\"summaryExpr\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"ctaLabel\":{\"type\":\"string\"},\"caption\":{\"type\":\"string\"},\"emptyText\":{\"type\":\"string\"},\"errorText\":{\"type\":\"string\"},\"status\":{\"enum\":[\"idle\",\"resolved\",\"empty\",\"error\",\"draft\",\"simulated\",\"approved\",\"published\",\"superseded\",\"reverted\"]},\"statusExpr\":{\"type\":\"string\"},\"owner\":{\"type\":\"string\"},\"ownerExpr\":{\"type\":\"string\"},\"policySource\":{\"type\":\"string\"},\"policySourceExpr\":{\"type\":\"string\"},\"version\":{\"type\":\"string\"},\"versionExpr\":{\"type\":\"string\"},\"confidence\":{\"type\":\"number\"},\"confidenceExpr\":{\"type\":\"string\"},\"risk\":{\"enum\":[\"low\",\"medium\",\"high\",\"critical\"]},\"riskExpr\":{\"type\":\"string\"},\"lastReviewed\":{\"type\":\"string\"},\"lastReviewedExpr\":{\"type\":\"string\"},\"supersedes\":{\"type\":\"string\"},\"supersedesExpr\":{\"type\":\"string\"},\"evidence\":{\"type\":\"array\",\"items\":{\"type\":\"object\"}},\"appearance\":{\"enum\":[\"plain\",\"card\",\"underline\",\"pills\"]},\"variant\":{\"enum\":[\"basic\",\"raised\",\"stroked\",\"flat\",\"plain\",\"outlined\",\"elevated\",\"filled\",\"transparent\",\"unstyled\"]},\"tone\":{\"enum\":[\"neutral\",\"primary\",\"secondary\",\"tertiary\",\"info\",\"success\",\"warning\",\"danger\",\"error\"]},\"size\":{\"enum\":[\"sm\",\"md\",\"lg\"]},\"density\":{},\"orientation\":{},\"loading\":{\"type\":\"boolean\"},\"loadingExpr\":{\"type\":\"string\"},\"active\":{\"type\":\"boolean\"},\"activeExpr\":{\"type\":\"string\"},\"defaultTabId\":{\"type\":\"string\"},\"order\":{\"enum\":[\"normal\",\"reverse\"]},\"position\":{\"enum\":[\"left\",\"right\",\"alternate\",\"alternate-reverse\"]},\"itemLayout\":{\"enum\":[\"stacked\",\"split\"]},\"connectorVariant\":{\"enum\":[\"solid\",\"dashed\",\"none\"]},\"connectorColor\":{\"enum\":[\"primary\",\"secondary\",\"tertiary\",\"success\",\"warning\",\"error\",\"danger\",\"info\",\"neutral\"]},\"markerVariant\":{\"enum\":[\"dot\",\"icon\",\"number\"]},\"markerColor\":{\"enum\":[\"primary\",\"secondary\",\"tertiary\",\"success\",\"warning\",\"error\",\"danger\",\"info\",\"neutral\"]},\"markerStyle\":{\"enum\":[\"filled\",\"outlined\",\"soft\"]},\"emphasis\":{\"enum\":[\"subtle\",\"standard\",\"strong\",\"hero\"]},\"textAppearance\":{\"enum\":[\"default\",\"prominent\",\"eyebrow\",\"label\"]},\"initialLimit\":{\"type\":\"number\",\"minimum\":1},\"icon\":{\"type\":\"string\"},\"formId\":{\"type\":\"string\"},\"columns\":{\"oneOf\":[{\"type\":\"number\"},{\"enum\":[\"auto-fit\",\"auto-fill\"]}]},\"minColumnWidth\":{\"type\":\"string\"},\"alignItems\":{\"enum\":[\"stretch\",\"start\",\"center\",\"end\"]},\"layout\":{\"enum\":[\"stacked\",\"inline\",\"split\",\"grid\",\"flex\"]},\"ctaPlacement\":{\"enum\":[\"bottom\",\"inline\",\"trailing\"]},\"ctaVariant\":{\"enum\":[\"elevated\",\"stroked\",\"flat\",\"tonal\",\"raised\"]},\"action\":{\"type\":\"object\"},\"actions\":{\"type\":\"array\",\"items\":{\"type\":\"object\"}},\"primaryAction\":{\"type\":\"object\"},\"secondaryActions\":{\"type\":\"array\",\"items\":{\"type\":\"object\"}},\"media\":{\"type\":\"object\",\"properties\":{\"kind\":{\"enum\":[\"image\",\"video\",\"icon\",\"avatar\",\"telemetry\",\"lottie\",\"component\"]},\"src\":{\"type\":\"string\"},\"srcExpr\":{\"type\":\"string\"},\"alt\":{\"type\":\"string\"},\"altExpr\":{\"type\":\"string\"},\"icon\":{\"type\":\"string\"},\"label\":{\"type\":\"string\"},\"labelExpr\":{\"type\":\"string\"},\"placement\":{\"enum\":[\"top\",\"leading\",\"trailing\",\"background\"]},\"aspectRatio\":{\"type\":\"string\"},\"width\":{\"type\":\"string\"},\"height\":{\"type\":\"string\"},\"verticalAlign\":{\"enum\":[\"center\",\"top\",\"bottom\",\"stretch\"]},\"objectFit\":{\"enum\":[\"cover\",\"contain\",\"fill\",\"none\",\"scale-down\"]},\"animationSrc\":{\"type\":\"string\"},\"animationSrcExpr\":{\"type\":\"string\"},\"componentId\":{\"type\":\"string\"},\"componentInputs\":{\"type\":\"object\"},\"telemetry\":{\"type\":\"object\",\"properties\":{\"variant\":{\"enum\":[\"radar\",\"pulse\",\"wave\",\"signal\"]},\"speed\":{\"enum\":[\"slow\",\"normal\",\"fast\"]},\"color\":{\"type\":\"string\"},\"interactive\":{\"type\":\"boolean\"}}}}},\"headerAction\":{\"type\":\"object\"},\"headingLevel\":{\"enum\":[1,2,3,4,5,6]},\"identity\":{\"type\":\"object\"},\"breadcrumbs\":{\"type\":\"array\",\"items\":{\"type\":\"object\"}},\"overflowActions\":{\"type\":\"array\",\"items\":{\"type\":\"object\"}},\"relatedLinks\":{\"type\":\"array\",\"items\":{\"type\":\"object\"}},\"interaction\":{\"type\":\"object\",\"properties\":{\"mode\":{\"enum\":[\"none\",\"action\",\"selectable\"]},\"action\":{\"type\":\"object\"},\"selected\":{\"type\":\"boolean\"},\"selectedExpr\":{\"type\":\"string\"}}},\"accessibility\":{\"type\":\"object\",\"properties\":{\"role\":{\"enum\":[\"article\",\"group\",\"button\"]},\"ariaLabel\":{\"type\":\"string\"},\"ariaLabelExpr\":{\"type\":\"string\"},\"ariaLabelledBy\":{\"type\":\"string\"},\"ariaDescribedBy\":{\"type\":\"string\"}}},\"fields\":{\"type\":\"array\",\"items\":{\"type\":\"object\"}},\"itemsExpr\":{\"type\":\"string\"},\"itemTemplate\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"id\":{\"type\":\"string\"},\"title\":{\"type\":\"string\"},\"titleExpr\":{\"type\":\"string\"},\"subtitle\":{\"type\":\"string\"},\"subtitleExpr\":{\"type\":\"string\"},\"meta\":{\"type\":\"string\"},\"metaExpr\":{\"type\":\"string\"},\"opposite\":{\"type\":\"string\"},\"oppositeExpr\":{\"type\":\"string\"},\"icon\":{\"type\":\"string\"},\"iconExpr\":{\"type\":\"string\"},\"badge\":{\"type\":\"string\"},\"badgeExpr\":{\"type\":\"string\"},\"badgeTone\":{\"enum\":[\"primary\",\"secondary\",\"tertiary\",\"success\",\"warning\",\"error\",\"danger\",\"info\",\"neutral\"]},\"itemLayout\":{\"enum\":[\"stacked\",\"split\"]},\"markerColor\":{\"enum\":[\"primary\",\"secondary\",\"tertiary\",\"success\",\"warning\",\"error\",\"danger\",\"info\",\"neutral\"]},\"markerStyle\":{\"enum\":[\"filled\",\"outlined\",\"soft\"]},\"connectorColor\":{\"enum\":[\"primary\",\"secondary\",\"tertiary\",\"success\",\"warning\",\"error\",\"danger\",\"info\",\"neutral\"]},\"connectorVariant\":{\"enum\":[\"solid\",\"dashed\",\"none\"]},\"avatar\":{\"type\":\"object\"},\"action\":{\"type\":\"object\"},\"children\":{\"type\":\"array\",\"items\":{\"type\":\"object\"}}}},\"items\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"label\":{\"type\":\"string\"},\"labelExpr\":{\"type\":\"string\"},\"value\":{\"type\":\"string\"},\"valueExpr\":{\"type\":\"string\"},\"caption\":{\"type\":\"string\"},\"captionExpr\":{\"type\":\"string\"},\"hint\":{\"type\":\"string\"},\"hintExpr\":{\"type\":\"string\"},\"icon\":{\"type\":\"string\"},\"tone\":{\"enum\":[\"neutral\",\"primary\",\"secondary\",\"tertiary\",\"info\",\"success\",\"warning\",\"danger\",\"error\"]},\"tileLayout\":{\"enum\":[\"classic\",\"tile\",\"split\"]},\"action\":{\"type\":\"object\"},\"progress\":{\"type\":\"object\",\"properties\":{\"value\":{\"type\":\"number\"},\"valueExpr\":{\"type\":\"string\"},\"max\":{\"type\":\"number\"},\"showPercent\":{\"type\":\"boolean\"},\"variant\":{\"enum\":[\"bar\",\"ring\"]},\"tone\":{\"enum\":[\"neutral\",\"primary\",\"secondary\",\"tertiary\",\"info\",\"success\",\"warning\",\"danger\",\"error\"]}}}}}},\"header\":{\"type\":\"array\",\"items\":{\"type\":\"object\"}},\"body\":{\"type\":\"array\",\"items\":{\"type\":\"object\"}},\"footer\":{\"type\":\"array\",\"items\":{\"type\":\"object\"}},\"aside\":{\"type\":\"array\",\"items\":{\"type\":\"object\"}}}}
|
|
8265
|
+
"content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-rich-content\",\"ownerPackage\":\"@praxisui/rich-content\",\"configSchemaId\":\"RichContentDocument\",\"chunkSection\":\"operations[2]\",\"fragmentPath\":\"operations[2]\",\"fragmentIdentity\":{\"operationId\":\"block.update\"},\"fragment\":{\"operationId\":\"block.update\",\"title\":\"Update rich content block fields\",\"scope\":\"templating\",\"targetKind\":\"block\",\"target\":{\"kind\":\"block\",\"resolver\":\"rich-block-node-by-id-or-path\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"id\":{\"type\":\"string\"},\"testId\":{\"type\":\"string\"},\"className\":{\"type\":\"string\"},\"style\":{\"type\":\"object\"},\"visibleWhen\":{\"oneOf\":[{\"type\":\"boolean\"},{\"type\":\"object\"}]},\"disabledWhen\":{\"oneOf\":[{\"type\":\"boolean\"},{\"type\":\"object\"}]},\"loadWhen\":{\"oneOf\":[{\"type\":\"boolean\"},{\"type\":\"object\"}]},\"classWhen\":{\"type\":\"array\",\"items\":{\"type\":\"object\"}},\"styleWhen\":{\"type\":\"array\",\"items\":{\"type\":\"object\"}},\"requiresCapabilities\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"capabilityMode\":{\"enum\":[\"all\",\"any\"]},\"text\":{\"type\":\"string\"},\"textExpr\":{\"type\":\"string\"},\"label\":{\"type\":\"string\"},\"labelExpr\":{\"type\":\"string\"},\"href\":{\"type\":\"string\"},\"target\":{\"enum\":[\"_self\",\"_blank\"]},\"rel\":{\"type\":\"string\"},\"src\":{\"type\":\"string\"},\"alt\":{\"type\":\"string\"},\"title\":{\"type\":\"string\"},\"titleExpr\":{\"type\":\"string\"},\"subtitle\":{\"type\":\"string\"},\"subtitleExpr\":{\"type\":\"string\"},\"relationLabel\":{\"type\":\"string\"},\"message\":{\"type\":\"string\"},\"summary\":{\"type\":\"string\"},\"summaryExpr\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"ctaLabel\":{\"type\":\"string\"},\"caption\":{\"type\":\"string\"},\"emptyText\":{\"type\":\"string\"},\"errorText\":{\"type\":\"string\"},\"status\":{\"enum\":[\"idle\",\"resolved\",\"empty\",\"error\",\"draft\",\"simulated\",\"approved\",\"published\",\"superseded\",\"reverted\"]},\"statusExpr\":{\"type\":\"string\"},\"owner\":{\"type\":\"string\"},\"ownerExpr\":{\"type\":\"string\"},\"policySource\":{\"type\":\"string\"},\"policySourceExpr\":{\"type\":\"string\"},\"version\":{\"type\":\"string\"},\"versionExpr\":{\"type\":\"string\"},\"confidence\":{\"type\":\"number\"},\"confidenceExpr\":{\"type\":\"string\"},\"risk\":{\"enum\":[\"low\",\"medium\",\"high\",\"critical\"]},\"riskExpr\":{\"type\":\"string\"},\"lastReviewed\":{\"type\":\"string\"},\"lastReviewedExpr\":{\"type\":\"string\"},\"supersedes\":{\"type\":\"string\"},\"supersedesExpr\":{\"type\":\"string\"},\"evidence\":{\"type\":\"array\",\"items\":{\"type\":\"object\"}},\"appearance\":{\"enum\":[\"plain\",\"card\",\"underline\",\"pills\"]},\"variant\":{\"enum\":[\"basic\",\"raised\",\"stroked\",\"flat\",\"plain\",\"outlined\",\"elevated\",\"filled\",\"transparent\",\"unstyled\"]},\"tone\":{\"enum\":[\"neutral\",\"primary\",\"secondary\",\"tertiary\",\"info\",\"success\",\"warning\",\"danger\",\"error\"]},\"size\":{\"enum\":[\"sm\",\"md\",\"lg\"]},\"density\":{},\"orientation\":{},\"loading\":{\"type\":\"boolean\"},\"loadingExpr\":{\"type\":\"string\"},\"active\":{\"type\":\"boolean\"},\"activeExpr\":{\"type\":\"string\"},\"defaultTabId\":{\"type\":\"string\"},\"order\":{\"enum\":[\"normal\",\"reverse\"]},\"position\":{\"enum\":[\"left\",\"right\",\"alternate\",\"alternate-reverse\"]},\"itemLayout\":{\"enum\":[\"stacked\",\"split\"]},\"connectorVariant\":{\"enum\":[\"solid\",\"dashed\",\"none\"]},\"connectorColor\":{\"enum\":[\"primary\",\"secondary\",\"tertiary\",\"success\",\"warning\",\"error\",\"danger\",\"info\",\"neutral\"]},\"markerVariant\":{\"enum\":[\"dot\",\"icon\",\"number\"]},\"markerColor\":{\"enum\":[\"primary\",\"secondary\",\"tertiary\",\"success\",\"warning\",\"error\",\"danger\",\"info\",\"neutral\"]},\"markerStyle\":{\"enum\":[\"filled\",\"outlined\",\"soft\"]},\"emphasis\":{\"enum\":[\"subtle\",\"standard\",\"strong\",\"hero\"]},\"textAppearance\":{\"enum\":[\"default\",\"prominent\",\"eyebrow\",\"label\"]},\"initialLimit\":{\"type\":\"number\",\"minimum\":1},\"icon\":{\"type\":\"string\"},\"formId\":{\"type\":\"string\"},\"columns\":{\"oneOf\":[{\"type\":\"number\"},{\"enum\":[\"auto-fit\",\"auto-fill\"]}]},\"minColumnWidth\":{\"type\":\"string\"},\"alignItems\":{\"enum\":[\"stretch\",\"start\",\"center\",\"end\"]},\"layout\":{\"enum\":[\"stacked\",\"inline\",\"split\",\"grid\",\"flex\"]},\"ctaPlacement\":{\"enum\":[\"bottom\",\"inline\",\"trailing\"]},\"ctaVariant\":{\"enum\":[\"elevated\",\"stroked\",\"flat\",\"tonal\",\"raised\"]},\"action\":{\"type\":\"object\"},\"quickView\":{\"type\":\"object\"},\"actions\":{\"type\":\"array\",\"items\":{\"type\":\"object\"}},\"primaryAction\":{\"type\":\"object\"},\"secondaryActions\":{\"type\":\"array\",\"items\":{\"type\":\"object\"}},\"media\":{\"type\":\"object\",\"properties\":{\"kind\":{\"enum\":[\"image\",\"video\",\"icon\",\"avatar\",\"telemetry\",\"lottie\",\"component\"]},\"src\":{\"type\":\"string\"},\"srcExpr\":{\"type\":\"string\"},\"alt\":{\"type\":\"string\"},\"altExpr\":{\"type\":\"string\"},\"icon\":{\"type\":\"string\"},\"label\":{\"type\":\"string\"},\"labelExpr\":{\"type\":\"string\"},\"placement\":{\"enum\":[\"top\",\"leading\",\"trailing\",\"background\"]},\"aspectRatio\":{\"type\":\"string\"},\"width\":{\"type\":\"string\"},\"height\":{\"type\":\"string\"},\"verticalAlign\":{\"enum\":[\"center\",\"top\",\"bottom\",\"stretch\"]},\"objectFit\":{\"enum\":[\"cover\",\"contain\",\"fill\",\"none\",\"scale-down\"]},\"animationSrc\":{\"type\":\"string\"},\"animationSrcExpr\":{\"type\":\"string\"},\"componentId\":{\"type\":\"string\"},\"componentInputs\":{\"type\":\"object\"},\"telemetry\":{\"type\":\"object\",\"properties\":{\"variant\":{\"enum\":[\"radar\",\"pulse\",\"wave\",\"signal\"]},\"speed\":{\"enum\":[\"slow\",\"normal\",\"fast\"]},\"color\":{\"type\":\"string\"},\"interactive\":{\"type\":\"boolean\"}}}}},\"headerAction\":{\"type\":\"object\"},\"headingLevel\":{\"enum\":[1,2,3,4,5,6]},\"identity\":{\"type\":\"object\"},\"breadcrumbs\":{\"type\":\"array\",\"items\":{\"type\":\"object\"}},\"overflowActions\":{\"type\":\"array\",\"items\":{\"type\":\"object\"}},\"relatedLinks\":{\"type\":\"array\",\"items\":{\"type\":\"object\"}},\"interaction\":{\"type\":\"object\",\"properties\":{\"mode\":{\"enum\":[\"none\",\"action\",\"selectable\"]},\"action\":{\"type\":\"object\"},\"selected\":{\"type\":\"boolean\"},\"selectedExpr\":{\"type\":\"string\"}}},\"accessibility\":{\"type\":\"object\",\"properties\":{\"role\":{\"enum\":[\"article\",\"group\",\"button\"]},\"ariaLabel\":{\"type\":\"string\"},\"ariaLabelExpr\":{\"type\":\"string\"},\"ariaLabelledBy\":{\"type\":\"string\"},\"ariaDescribedBy\":{\"type\":\"string\"}}},\"fields\":{\"type\":\"array\",\"items\":{\"type\":\"object\"}},\"itemsExpr\":{\"type\":\"string\"},\"itemTemplate\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"id\":{\"type\":\"string\"},\"title\":{\"type\":\"string\"},\"titleExpr\":{\"type\":\"string\"},\"subtitle\":{\"type\":\"string\"},\"subtitleExpr\":{\"type\":\"string\"},\"meta\":{\"type\":\"string\"},\"metaExpr\":{\"type\":\"string\"},\"opposite\":{\"type\":\"string\"},\"oppositeExpr\":{\"type\":\"string\"},\"icon\":{\"type\":\"string\"},\"iconExpr\":{\"type\":\"string\"},\"badge\":{\"type\":\"string\"},\"badgeExpr\":{\"type\":\"string\"},\"badgeTone\":{\"enum\":[\"primary\",\"secondary\",\"tertiary\",\"success\",\"warning\",\"error\",\"danger\",\"info\",\"neutral\"]},\"itemLayout\":{\"enum\":[\"stacked\",\"split\"]},\"markerColor\":{\"enum\":[\"primary\",\"secondary\",\"tertiary\",\"success\",\"warning\",\"error\",\"danger\",\"info\",\"neutral\"]},\"markerStyle\":{\"enum\":[\"filled\",\"outlined\",\"soft\"]},\"connectorColor\":{\"enum\":[\"primary\",\"secondary\",\"tertiary\",\"success\",\"warning\",\"error\",\"danger\",\"info\",\"neutral\"]},\"connectorVariant\":{\"enum\":[\"solid\",\"dashed\",\"none\"]},\"avatar\":{\"type\":\"object\"},\"action\":{\"type\":\"object\"},\"children\":{\"type\":\"array\",\"items\":{\"type\":\"object\"}}}},\"items\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"label\":{\"type\":\"string\"},\"labelExpr\":{\"type\":\"string\"},\"value\":{\"type\":\"string\"},\"valueExpr\":{\"type\":\"string\"},\"caption\":{\"type\":\"string\"},\"captionExpr\":{\"type\":\"string\"},\"hint\":{\"type\":\"string\"},\"hintExpr\":{\"type\":\"string\"},\"icon\":{\"type\":\"string\"},\"tone\":{\"enum\":[\"neutral\",\"primary\",\"secondary\",\"tertiary\",\"info\",\"success\",\"warning\",\"danger\",\"error\"]},\"tileLayout\":{\"enum\":[\"classic\",\"tile\",\"split\"]},\"action\":{\"type\":\"object\"},\"progress\":{\"type\":\"object\",\"properties\":{\"value\":{\"type\":\"number\"},\"valueExpr\":{\"type\":\"string\"},\"max\":{\"type\":\"number\"},\"showPercent\":{\"type\":\"boolean\"},\"variant\":{\"enum\":[\"bar\",\"ring\"]},\"tone\":{\"enum\":[\"neutral\",\"primary\",\"secondary\",\"tertiary\",\"info\",\"success\",\"warning\",\"danger\",\"error\"]}}}}}},\"header\":{\"type\":\"array\",\"items\":{\"type\":\"object\"}},\"body\":{\"type\":\"array\",\"items\":{\"type\":\"object\"}},\"footer\":{\"type\":\"array\",\"items\":{\"type\":\"object\"}},\"aside\":{\"type\":\"array\",\"items\":{\"type\":\"object\"}}}}}}",
|
|
8260
8266
|
"sourcePointer": "projects/praxis-rich-content/src/lib/ai/praxis-rich-content-authoring-manifest.ts",
|
|
8261
|
-
"contentHash": "
|
|
8267
|
+
"contentHash": "ed9e1e4484350bd89ba873022d0403ab120a8913956292caa9f83bcdbc6e0e8d",
|
|
8262
8268
|
"sourceKind": "component_definition",
|
|
8263
8269
|
"sourceId": "praxis-rich-content",
|
|
8264
8270
|
"corpusVersion": "1.0.0"
|
|
@@ -8266,9 +8272,9 @@
|
|
|
8266
8272
|
{
|
|
8267
8273
|
"chunkIndex": 23,
|
|
8268
8274
|
"chunkKind": "authoring_manifest",
|
|
8269
|
-
"content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-rich-content\",\"ownerPackage\":\"@praxisui/rich-content\",\"configSchemaId\":\"RichContentDocument\",\"chunkSection\":\"operations[2]\",\"fragmentPath\":\"operations[2]\",\"fragmentIdentity\":{\"operationId\":\"block.update\"},\"fragment\":{\"destructive\":false,\"requiresConfirmation\":false,\"validators\":[\"block-exists\",\"node-types-supported\",\"unsafe-url-rejected\",\"unsafe-style-rejected\",\"expression-path-safe\",\"document-shape-canonical\",\"editor-runtime-round-trip\"],\"affectedPaths\":[\"document.nodes[]\",\"document.nodes[].id\",\"document.nodes[].testId\",\"document.nodes[].className\",\"document.nodes[].style\",\"document.nodes[].visibleWhen\",\"document.nodes[].disabledWhen\",\"document.nodes[].loadWhen\",\"document.nodes[].classWhen\",\"document.nodes[].styleWhen\",\"document.nodes[].requiresCapabilities\",\"document.nodes[].capabilityMode\",\"document.nodes[].text\",\"document.nodes[].textExpr\",\"document.nodes[].label\",\"document.nodes[].labelExpr\",\"document.nodes[].href\",\"document.nodes[].target\",\"document.nodes[].rel\",\"document.nodes[].src\",\"document.nodes[].alt\",\"document.nodes[].title\",\"document.nodes[].titleExpr\",\"document.nodes[].subtitle\",\"document.nodes[].subtitleExpr\",\"document.nodes[].relationLabel\",\"document.nodes[].message\",\"document.nodes[].summary\",\"document.nodes[].summaryExpr\",\"document.nodes[].description\",\"document.nodes[].ctaLabel\",\"document.nodes[].caption\",\"document.nodes[].emptyText\",\"document.nodes[].errorText\",\"document.nodes[].status\",\"document.nodes[].statusExpr\",\"document.nodes[].owner\",\"document.nodes[].ownerExpr\",\"document.nodes[].policySource\",\"document.nodes[].policySourceExpr\",\"document.nodes[].version\",\"document.nodes[].versionExpr\",\"document.nodes[].confidence\",\"document.nodes[].confidenceExpr\",\"document.nodes[].risk\",\"document.nodes[].riskExpr\",\"document.nodes[].lastReviewed\",\"document.nodes[].lastReviewedExpr\",\"document.nodes[].supersedes\",\"document.nodes[].supersedesExpr\",\"document.nodes[].evidence\",\"document.nodes[].appearance\",\"document.nodes[].variant\",\"document.nodes[].tone\",\"document.nodes[].size\",\"document.nodes[].density\",\"document.nodes[].orientation\",\"document.nodes[].loading\",\"document.nodes[].loadingExpr\",\"document.nodes[].active\",\"document.nodes[].activeExpr\",\"document.nodes[].defaultTabId\",\"document.nodes[].order\",\"document.nodes[].position\",\"document.nodes[].itemLayout\",\"document.nodes[].connectorVariant\",\"document.nodes[].connectorColor\",\"document.nodes[].markerVariant\",\"document.nodes[].markerColor\",\"document.nodes[].markerStyle\",\"document.nodes[].emphasis\",\"document.nodes[].textAppearance\",\"document.nodes[].initialLimit\",\"document.nodes[].icon\",\"document.nodes[].formId\",\"document.nodes[].columns\",\"document.nodes[].layout\",\"document.nodes[].action\",\"document.nodes[].actions\",\"document.nodes[].primaryAction\",\"document.nodes[].secondaryActions\",\"document.nodes[].media\",\"document.nodes[].headerAction\",\"document.nodes[].headingLevel\",\"document.nodes[].identity\",\"document.nodes[].breadcrumbs\",\"document.nodes[].overflowActions\",\"document.nodes[].relatedLinks\",\"document.nodes[].interaction\",\"document.nodes[].accessibility\",\"document.nodes[].fields\",\"document.nodes[].itemsExpr\",\"document.nodes[].itemTemplate\",\"document.nodes[].items[]\",\"document.nodes[].header\",\"document.nodes[].body\",\"document.nodes[].footer\",\"document.nodes[].aside\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\",\"target-block-exists\"]}}",
|
|
8275
|
+
"content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-rich-content\",\"ownerPackage\":\"@praxisui/rich-content\",\"configSchemaId\":\"RichContentDocument\",\"chunkSection\":\"operations[2]\",\"fragmentPath\":\"operations[2]\",\"fragmentIdentity\":{\"operationId\":\"block.update\"},\"fragment\":{\"effects\":[{\"kind\":\"merge-by-key\",\"path\":\"document.nodes[]\",\"key\":\"id\"}],\"destructive\":false,\"requiresConfirmation\":false,\"validators\":[\"block-exists\",\"node-types-supported\",\"unsafe-url-rejected\",\"unsafe-style-rejected\",\"expression-path-safe\",\"document-shape-canonical\",\"editor-runtime-round-trip\"],\"affectedPaths\":[\"document.nodes[]\",\"document.nodes[].id\",\"document.nodes[].testId\",\"document.nodes[].className\",\"document.nodes[].style\",\"document.nodes[].visibleWhen\",\"document.nodes[].disabledWhen\",\"document.nodes[].loadWhen\",\"document.nodes[].classWhen\",\"document.nodes[].styleWhen\",\"document.nodes[].requiresCapabilities\",\"document.nodes[].capabilityMode\",\"document.nodes[].text\",\"document.nodes[].textExpr\",\"document.nodes[].label\",\"document.nodes[].labelExpr\",\"document.nodes[].href\",\"document.nodes[].target\",\"document.nodes[].rel\",\"document.nodes[].src\",\"document.nodes[].alt\",\"document.nodes[].title\",\"document.nodes[].titleExpr\",\"document.nodes[].subtitle\",\"document.nodes[].subtitleExpr\",\"document.nodes[].relationLabel\",\"document.nodes[].message\",\"document.nodes[].summary\",\"document.nodes[].summaryExpr\",\"document.nodes[].description\",\"document.nodes[].ctaLabel\",\"document.nodes[].caption\",\"document.nodes[].emptyText\",\"document.nodes[].errorText\",\"document.nodes[].status\",\"document.nodes[].statusExpr\",\"document.nodes[].owner\",\"document.nodes[].ownerExpr\",\"document.nodes[].policySource\",\"document.nodes[].policySourceExpr\",\"document.nodes[].version\",\"document.nodes[].versionExpr\",\"document.nodes[].confidence\",\"document.nodes[].confidenceExpr\",\"document.nodes[].risk\",\"document.nodes[].riskExpr\",\"document.nodes[].lastReviewed\",\"document.nodes[].lastReviewedExpr\",\"document.nodes[].supersedes\",\"document.nodes[].supersedesExpr\",\"document.nodes[].evidence\",\"document.nodes[].appearance\",\"document.nodes[].variant\",\"document.nodes[].tone\",\"document.nodes[].size\",\"document.nodes[].density\",\"document.nodes[].orientation\",\"document.nodes[].loading\",\"document.nodes[].loadingExpr\",\"document.nodes[].active\",\"document.nodes[].activeExpr\",\"document.nodes[].defaultTabId\",\"document.nodes[].order\",\"document.nodes[].position\",\"document.nodes[].itemLayout\",\"document.nodes[].connectorVariant\",\"document.nodes[].connectorColor\",\"document.nodes[].markerVariant\",\"document.nodes[].markerColor\",\"document.nodes[].markerStyle\",\"document.nodes[].emphasis\",\"document.nodes[].textAppearance\",\"document.nodes[].initialLimit\",\"document.nodes[].icon\",\"document.nodes[].formId\",\"document.nodes[].columns\",\"document.nodes[].layout\",\"document.nodes[].action\",\"document.nodes[].quickView\",\"document.nodes[].actions\",\"document.nodes[].primaryAction\",\"document.nodes[].secondaryActions\",\"document.nodes[].media\",\"document.nodes[].headerAction\",\"document.nodes[].headingLevel\",\"document.nodes[].identity\",\"document.nodes[].breadcrumbs\",\"document.nodes[].overflowActions\",\"document.nodes[].relatedLinks\",\"document.nodes[].interaction\",\"document.nodes[].accessibility\",\"document.nodes[].fields\",\"document.nodes[].itemsExpr\",\"document.nodes[].itemTemplate\",\"document.nodes[].items[]\",\"document.nodes[].header\",\"document.nodes[].body\",\"document.nodes[].footer\",\"document.nodes[].aside\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\",\"target-block-exists\"]}}",
|
|
8270
8276
|
"sourcePointer": "projects/praxis-rich-content/src/lib/ai/praxis-rich-content-authoring-manifest.ts",
|
|
8271
|
-
"contentHash": "
|
|
8277
|
+
"contentHash": "f5b46b56ec43bfc60c3d837e191d3c5e321d474a9619c336930d1d8dfb826139",
|
|
8272
8278
|
"sourceKind": "component_definition",
|
|
8273
8279
|
"sourceId": "praxis-rich-content",
|
|
8274
8280
|
"corpusVersion": "1.0.0"
|
|
@@ -8356,9 +8362,49 @@
|
|
|
8356
8362
|
{
|
|
8357
8363
|
"chunkIndex": 32,
|
|
8358
8364
|
"chunkKind": "recipe",
|
|
8359
|
-
"content": "{\"
|
|
8365
|
+
"content": "{\"componentId\":\"praxis-rich-content\",\"chunkSection\":\"_comment\",\"_comment\":\"Recipe for @praxisui/rich-content. Use RichContentDocument for governed presentation, policy notes, operational summaries, host-mediated action cards, timelines and AI-readable explanations.\"}",
|
|
8366
|
+
"sourcePointer": "examples/ai-recipes/praxis-rich-content.json",
|
|
8367
|
+
"contentHash": "c50a350373357b1ac133850d575f47262b9c4aa5cec58d2cbcd3a1ca629898d1",
|
|
8368
|
+
"sourceKind": "component_definition",
|
|
8369
|
+
"sourceId": "praxis-rich-content",
|
|
8370
|
+
"corpusVersion": "1.0.0"
|
|
8371
|
+
},
|
|
8372
|
+
{
|
|
8373
|
+
"chunkIndex": 33,
|
|
8374
|
+
"chunkKind": "recipe",
|
|
8375
|
+
"content": "{\"componentId\":\"praxis-rich-content\",\"chunkSection\":\"templateMeta\",\"templateMeta\":{\"registryKey\":\"praxis-rich-content\",\"variantId\":\"knowledge-surface\",\"description\":\"Cria superfícies editoriais portáveis com RichContentDocument, incluindo blocos governados como actionCard, lookupCard e formLauncher.\",\"useWhen\":\"Create reusable rich presentation surfaces and governed editorial action surfaces that can be embedded in Dynamic Page, Tabs, Dialog, Stepper, List expansion or Page Builder.\",\"examplePrompts\":[\"create a rich content policy card\",\"show operational notes with metrics and timeline\",\"generate a reusable knowledge surface for agents\",\"create a governed action card for a host-mediated workflow\",\"show a related record summary with governed action\"]}}",
|
|
8376
|
+
"sourcePointer": "examples/ai-recipes/praxis-rich-content.json",
|
|
8377
|
+
"contentHash": "85560d49cb356103521f4a6f3c6f6ad49d4ce161b9671e3fbed8f4d6754c09e0",
|
|
8378
|
+
"sourceKind": "component_definition",
|
|
8379
|
+
"sourceId": "praxis-rich-content",
|
|
8380
|
+
"corpusVersion": "1.0.0"
|
|
8381
|
+
},
|
|
8382
|
+
{
|
|
8383
|
+
"chunkIndex": 34,
|
|
8384
|
+
"chunkKind": "recipe",
|
|
8385
|
+
"content": "{\"componentId\":\"praxis-rich-content\",\"chunkSection\":\"authoringGuidance\",\"authoringGuidance\":[\"Use document.kind \\\"praxis.rich-content\\\" and version \\\"1.0.0\\\".\",\"Use document.nodes for block layout surfaces and nodes for inline compact status surfaces.\",\"Use context plus *Expr properties when text, badges, metrics or progress should resolve from host state.\",\"Use actionButton, lookupCard, relatedRecord, formLauncher or actionCard when the host must mediate an action instead of embedding handlers in the document.\",\"Use action.confirmMessage when the workflow requires confirmation; the host must provide hostCapabilities.confirmAction and the runtime fails closed without dispatch if confirmation is rejected or unavailable.\",\"Use card variant/tone/size/orientation/media/interaction when the authoring intent is a semantic surface, not a host-authored wrapper. Card tone supports all 9 semantic values (\\\"neutral\\\", \\\"primary\\\", \\\"secondary\\\", \\\"tertiary\\\", \\\"info\\\", \\\"success\\\", \\\"warning\\\", \\\"danger\\\", \\\"error\\\") and variant supports \\\"elevated\\\", \\\"outlined\\\", \\\"filled\\\", \\\"subtle\\\", and \\\"unstyled\\\".\",\"Use statGroup and keyValueList items with label/labelExpr, value/valueExpr, caption/captionExpr, hint/hintExpr, icon, tone, and tileLayout (\\\"inline\\\" | \\\"stacked\\\") for executive KPI tiles and structured metadata pairs.\",\"Use card.media.kind \\\"component\\\" with componentId, componentInputs, width, height and verticalAlign when embedding a host-registered widget (ComponentMetadataRegistry) in the card media slot; the active RichContent context is forwarded automatically to resolve ${...} bindings in componentInputs.\",\"Use rich-content for presentation and explanation only; use table, list or dynamic-form for editable business data.\",\"Prefer portable nodes such as card, callout, recordSummary, relatedRecord, actionCard, compose, text, icon, badge, metric, progress, mediaBlock, avatar and timeline.\",\"For vertical enterprise activity or workflow feeds, use timeline with orientation \\\"vertical\\\", position \\\"right\\\", itemLayout \\\"split\\\", markerVariant \\\"icon\\\", markerStyle \\\"soft\\\", and optional initialLimit (e.g. 5) for progressive disclosure; use itemsExpr + itemTemplate when events come dynamically from context arrays (e.g. context.row.timelineEvents).\",\"Use pageHeader for a semantic functionality opening: headingLevel independent of size, optional identity, ancestor breadcrumbs, host-mediated primaryAction/secondaryActions/overflowActions, and relatedLinks with real destinations. Omit empty regions and do not duplicate table actions.\",\"Use quickView ({ recordOpen: { sourceIdentityField, target: { resourceKey, surfaceId } }, detailPresentation?: \\\"drawer\\\" | \\\"modal\\\", contentRef?: { kind: \\\"rich-block\\\", namespace, presetId, version } }) on recordSummary, relatedRecord, or lookupCard nodes when referencing another governed resource record; the runtime resolves identity, read-only summary, and non-destructive actions via ResourceQuickViewService.\"]}",
|
|
8386
|
+
"sourcePointer": "examples/ai-recipes/praxis-rich-content.json",
|
|
8387
|
+
"contentHash": "842b8810f1033d8987258f6746a907e08b6dc95d928c4351580d398105754eb6",
|
|
8388
|
+
"sourceKind": "component_definition",
|
|
8389
|
+
"sourceId": "praxis-rich-content",
|
|
8390
|
+
"corpusVersion": "1.0.0"
|
|
8391
|
+
},
|
|
8392
|
+
{
|
|
8393
|
+
"chunkIndex": 35,
|
|
8394
|
+
"chunkKind": "recipe",
|
|
8395
|
+
"content": "{\"componentId\":\"praxis-rich-content\",\"chunkSection\":\"inputs\",\"inputs\":{\"layout\":\"block\",\"rootClassName\":\"mission-knowledge-surface\",\"context\":{\"mission\":{\"name\":\"Operation Dawn Gate\",\"owner\":\"Ariadne Ops\",\"readiness\":82,\"risk\":\"Elevated\",\"region\":\"South Atlantic\"},\"policy\":{\"ownerId\":42,\"owner\":\"Platform Governance\",\"version\":\"2026.04\",\"source\":\"Quickstart reference contract\"}},\"document\":{\"kind\":\"praxis.rich-content\",\"version\":\"1.0.0\",\"nodes\":[{\"type\":\"card\",\"titleExpr\":\"${mission.name}\",\"subtitleExpr\":\"${policy.source}\",\"variant\":\"elevated\",\"tone\":\"info\",\"size\":\"lg\",\"orientation\":\"horizontal\",\"media\":{\"kind\":\"icon\",\"icon\":\"psychology\",\"label\":\"AI-authored semantic decision surface\",\"placement\":\"leading\"},\"accessibility\":{\"role\":\"article\",\"ariaLabel\":\"Mission knowledge surface\"},\"content\":[{\"type\":\"compose\",\"wrap\":true,\"gap\":\"sm\",\"items\":[{\"type\":\"badge\",\"labelExpr\":\"${mission.region}\"},{\"type\":\"badge\",\"labelExpr\":\"${mission.risk}\"},{\"type\":\"badge\",\"labelExpr\":\"${policy.version}\"}]},{\"type\":\"text\",\"text\":\"Use rich content when the page needs governed explanation, operational notes or agent-readable context without inventing a one-off Angular template.\"},{\"type\":\"compose\",\"wrap\":true,\"gap\":\"lg\",\"items\":[{\"type\":\"metric\",\"label\":\"Readiness\",\"valueExpr\":\"${mission.readiness}\",\"captionExpr\":\"${mission.owner}\"},{\"type\":\"progress\",\"label\":\"Execution confidence\",\"valueExpr\":\"${mission.readiness}\",\"max\":100}]}]},{\"type\":\"mediaBlock\",\"avatar\":{\"type\":\"avatar\",\"initials\":\"AI\",\"name\":\"AI recipe\"},\"title\":{\"type\":\"text\",\"text\":\"Agent authoring note\"},\"subtitle\":{\"type\":\"text\",\"text\":\"Rich content is presentation metadata. Use it for policy, summaries, timelines and explanations; use forms and tables for editable business data.\"},\"meta\":{\"type\":\"badge\",\"label\":\"copyable JSON\"},\"trailing\":[{\"type\":\"icon\",\"icon\":\"psychology\",\"ariaLabel\":\"AI ready\"}]},{\"type\":\"relatedRecord\",\"title\":\"Related approval owner\",\"subtitleExpr\":\"${policy.owner}\",\"relationLabel\":\"Policy owner\",\"metaExpr\":\"${policy.version}\",\"ctaLabel\":\"Open related owner\",\"variant\":\"raised\",\"color\":\"primary\",\"quickView\":{\"recordOpen\":{\"sourceIdentityField\":\"policy.ownerId\",\"target\":{\"resourceKey\":\"governance.owners\",\"surfaceId\":\"view\"}},\"detailPresentation\":\"drawer\"},\"action\":{\"actionId\":\"briefing.inspect\",\"confirmMessage\":\"Confirm opening the governed briefing package?\"},\"fields\":[{\"label\":\"Source\",\"valueExpr\":\"${policy.source}\",\"hint\":\"Resolved from the same portable document context.\"}],\"secondaryActions\":[{\"type\":\"actionButton\",\"label\":\"Escalate owner review\",\"variant\":\"stroked\",\"action\":{\"actionId\":\"briefing.escalate\"}}]},{\"type\":\"actionCard\",\"title\":\"Open governed briefing\",\"subtitleExpr\":\"${policy.owner}\",\"message\":\"Use actionCard when the host must run a governed workflow from a portable editorial document.\",\"metaExpr\":\"${policy.version}\",\"ctaLabel\":\"Inspect briefing\",\"variant\":\"raised\",\"color\":\"primary\",\"action\":{\"actionId\":\"briefing.inspect\",\"confirmMessage\":\"Confirm opening the governed briefing package?\"},\"secondaryActions\":[{\"type\":\"actionButton\",\"label\":\"Escalate review\",\"variant\":\"stroked\",\"action\":{\"actionId\":\"briefing.escalate\"}}]},{\"type\":\"timeline\",\"title\":\"Knowledge lifecycle\",\"orientation\":\"horizontal\",\"order\":\"reverse\",\"position\":\"alternate\",\"connectorVariant\":\"dashed\",\"markerVariant\":\"number\",\"items\":[{\"icon\":\"schema\",\"title\":\"Contract discovered\",\"subtitle\":\"Read source metadata and decide whether the surface is data, action or explanation.\",\"meta\":\"schemas.filtered + recipes\",\"opposite\":\"1. Discover\",\"badge\":\"source\"},{\"icon\":\"article\",\"title\":\"Briefing authored\",\"subtitle\":\"Render cards, metrics, progress and guidance with one RichContentDocument.\",\"meta\":\"praxis-rich-content\",\"opposite\":\"2. Author\",\"badge\":\"runtime\"},{\"icon\":\"open_in_new\",\"title\":\"Surface reused\",\"subtitle\":\"Embed the same document in a tab, dialog, stepper, list expansion or dashboard cell.\",\"meta\":\"Dynamic Page composition\",\"opposite\":\"3. Reuse\",\"badge\":\"portable\"}]}]}}}",
|
|
8396
|
+
"sourcePointer": "examples/ai-recipes/praxis-rich-content.json",
|
|
8397
|
+
"contentHash": "af90c5bc4ba1fe517da51aaf1830987ad531bf31219c03805d415d7695d93b6a",
|
|
8398
|
+
"sourceKind": "component_definition",
|
|
8399
|
+
"sourceId": "praxis-rich-content",
|
|
8400
|
+
"corpusVersion": "1.0.0"
|
|
8401
|
+
},
|
|
8402
|
+
{
|
|
8403
|
+
"chunkIndex": 36,
|
|
8404
|
+
"chunkKind": "recipe",
|
|
8405
|
+
"content": "{\"componentId\":\"praxis-rich-content\",\"chunkSection\":\"inlineExample\",\"inlineExample\":{\"layout\":\"inline\",\"context\":{\"status\":{\"label\":\"Governed knowledge surface\",\"phase\":\"Reusable\"}},\"nodes\":[{\"type\":\"icon\",\"icon\":\"verified\",\"ariaLabel\":\"Verified\"},{\"type\":\"text\",\"textExpr\":\"${status.label}\"},{\"type\":\"badge\",\"labelExpr\":\"${status.phase}\"}]}}",
|
|
8360
8406
|
"sourcePointer": "examples/ai-recipes/praxis-rich-content.json",
|
|
8361
|
-
"contentHash": "
|
|
8407
|
+
"contentHash": "9a911f43e995479a0f0431b9f612cd5ef380e78b1bebad64ee2c58ee550e79b0",
|
|
8362
8408
|
"sourceKind": "component_definition",
|
|
8363
8409
|
"sourceId": "praxis-rich-content",
|
|
8364
8410
|
"corpusVersion": "1.0.0"
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { validateResourceQuickViewBinding } from '@praxisui/core';
|
|
2
|
+
|
|
1
3
|
const RICH_CONTENT_CLASS_NAME_PATTERN = /^[a-zA-Z_][a-zA-Z0-9_-]*(\s+[a-zA-Z_][a-zA-Z0-9_-]*)*$/;
|
|
2
4
|
function isSafeRichContentClassName(value) {
|
|
3
5
|
if (value === undefined || value === null) {
|
|
@@ -19,6 +21,7 @@ const SUPPORTED_NODE_TYPES = new Set([
|
|
|
19
21
|
'icon',
|
|
20
22
|
'image',
|
|
21
23
|
'link',
|
|
24
|
+
'recordReference',
|
|
22
25
|
'badge',
|
|
23
26
|
'avatar',
|
|
24
27
|
'metric',
|
|
@@ -145,12 +148,37 @@ function validateNode(value, path, issues, state, depth) {
|
|
|
145
148
|
validateRequiredUrl(value, 'href', path, issues, 'link');
|
|
146
149
|
validateEnum(value, 'target', ['_blank', '_self'], path, issues, false);
|
|
147
150
|
validateOptionalString(value, 'rel', path, issues);
|
|
151
|
+
if (value['quickView'] !== undefined) {
|
|
152
|
+
const qvValidation = validateResourceQuickViewBinding(value['quickView']);
|
|
153
|
+
if (!qvValidation.valid) {
|
|
154
|
+
addIssue(issues, `${path}.quickView`, 'editor.validation.quickViewBinding', qvValidation.diagnostics.join(' ') || 'Quick View binding is invalid.');
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
break;
|
|
158
|
+
case 'recordReference':
|
|
159
|
+
validateOptionalString(value, 'label', path, issues);
|
|
160
|
+
validateOptionalExpressionPath(value, 'labelExpr', path, issues);
|
|
161
|
+
validateOptionalString(value, 'icon', path, issues);
|
|
162
|
+
validateEnum(value, 'tone', RICH_SEMANTIC_TONES, path, issues, false);
|
|
163
|
+
validateEnum(value, 'variant', ['inline', 'badge', 'chip'], path, issues, false);
|
|
164
|
+
{
|
|
165
|
+
const qvValidation = validateResourceQuickViewBinding(value['quickView']);
|
|
166
|
+
if (!qvValidation.valid) {
|
|
167
|
+
addIssue(issues, `${path}.quickView`, 'editor.validation.quickViewBinding', qvValidation.diagnostics.join(' ') || 'recordReference requires a valid Quick View binding.');
|
|
168
|
+
}
|
|
169
|
+
}
|
|
148
170
|
break;
|
|
149
171
|
case 'badge':
|
|
150
172
|
validateOptionalString(value, 'label', path, issues);
|
|
151
173
|
validateOptionalExpressionPath(value, 'labelExpr', path, issues);
|
|
152
174
|
validateOptionalString(value, 'icon', path, issues);
|
|
153
175
|
validateEnum(value, 'tone', RICH_SEMANTIC_TONES, path, issues, false);
|
|
176
|
+
if (value['quickView'] !== undefined) {
|
|
177
|
+
const qvValidation = validateResourceQuickViewBinding(value['quickView']);
|
|
178
|
+
if (!qvValidation.valid) {
|
|
179
|
+
addIssue(issues, `${path}.quickView`, 'editor.validation.quickViewBinding', qvValidation.diagnostics.join(' ') || 'Quick View binding is invalid.');
|
|
180
|
+
}
|
|
181
|
+
}
|
|
154
182
|
break;
|
|
155
183
|
case 'avatar':
|
|
156
184
|
validateOptionalString(value, 'name', path, issues);
|
|
@@ -347,6 +375,12 @@ function validateNode(value, path, issues, state, depth) {
|
|
|
347
375
|
validateOptionalExpressionPath(value, 'metaExpr', path, issues);
|
|
348
376
|
validateRecordSummaryFields(value['fields'], `${path}.fields`, issues);
|
|
349
377
|
validateOptionalActionButtonArray(value, 'actions', path, issues, state, depth + 1);
|
|
378
|
+
if (value['quickView'] !== undefined) {
|
|
379
|
+
const qvValidation = validateResourceQuickViewBinding(value['quickView']);
|
|
380
|
+
if (!qvValidation.valid) {
|
|
381
|
+
addIssue(issues, `${path}.quickView`, 'editor.validation.quickViewBinding', qvValidation.diagnostics.join(' ') || 'Quick View binding is invalid.');
|
|
382
|
+
}
|
|
383
|
+
}
|
|
350
384
|
break;
|
|
351
385
|
case 'lookupResult':
|
|
352
386
|
validateOptionalString(value, 'title', path, issues);
|
|
@@ -383,7 +417,20 @@ function validateNode(value, path, issues, state, depth) {
|
|
|
383
417
|
validateOptionalString(value, 'ctaIcon', path, issues);
|
|
384
418
|
validateEnum(value, 'variant', ['basic', 'raised', 'stroked', 'flat'], path, issues, false);
|
|
385
419
|
validateEnum(value, 'color', ['basic', 'primary', 'accent', 'warn'], path, issues, false);
|
|
386
|
-
|
|
420
|
+
if (value['action'] === undefined && value['quickView'] === undefined) {
|
|
421
|
+
validateActionRef(value['action'], `${path}.action`, issues);
|
|
422
|
+
}
|
|
423
|
+
else {
|
|
424
|
+
if (value['action'] !== undefined) {
|
|
425
|
+
validateActionRef(value['action'], `${path}.action`, issues);
|
|
426
|
+
}
|
|
427
|
+
if (value['quickView'] !== undefined) {
|
|
428
|
+
const qvValidation = validateResourceQuickViewBinding(value['quickView']);
|
|
429
|
+
if (!qvValidation.valid) {
|
|
430
|
+
addIssue(issues, `${path}.quickView`, 'editor.validation.quickViewBinding', qvValidation.diagnostics.join(' ') || 'Quick View binding is invalid.');
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
}
|
|
387
434
|
validateLookupResultFields(value['fields'], `${path}.fields`, issues);
|
|
388
435
|
validateOptionalActionButtonArray(value, 'secondaryActions', path, issues, state, depth + 1);
|
|
389
436
|
break;
|
|
@@ -405,6 +452,12 @@ function validateNode(value, path, issues, state, depth) {
|
|
|
405
452
|
if (value['action'] !== undefined) {
|
|
406
453
|
validateActionRef(value['action'], `${path}.action`, issues);
|
|
407
454
|
}
|
|
455
|
+
if (value['quickView'] !== undefined) {
|
|
456
|
+
const qvValidation = validateResourceQuickViewBinding(value['quickView']);
|
|
457
|
+
if (!qvValidation.valid) {
|
|
458
|
+
addIssue(issues, `${path}.quickView`, 'editor.validation.quickViewBinding', qvValidation.diagnostics.join(' ') || 'Quick View binding is invalid.');
|
|
459
|
+
}
|
|
460
|
+
}
|
|
408
461
|
validateLookupResultFields(value['fields'], `${path}.fields`, issues);
|
|
409
462
|
validateOptionalActionButtonArray(value, 'secondaryActions', path, issues, state, depth + 1);
|
|
410
463
|
break;
|