@praxisui/rich-content 10.0.0-rc.35 → 10.0.0-rc.37
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
CHANGED
|
@@ -156,7 +156,8 @@ Timeline nodes (`type: 'timeline'`) support both horizontal lifecycle milestone
|
|
|
156
156
|
- **Layout & single-sided vertical collapse**: `itemLayout` (`'stacked' | 'split'`, node-level default or per-item override) places `title`, `avatar` and `subtitle` on the leading side while aligning `badge` and `meta` (such as timestamps or SLA counters) on the trailing edge when set to `'split'`. When `orientation` is `'vertical'` (`position: 'right' | 'left'`) and no item defines `opposite`/`oppositeExpr`, the renderer automatically collapses the unused opposite column (`prx-rich-timeline--single-sided-right` / `prx-rich-timeline--single-sided-left`).
|
|
157
157
|
- **Markers & semantic badges**: `markerStyle` (`'filled' | 'outlined' | 'soft'`) supports rounded soft-tinted squircle icon/number containers (`'soft'`) and halo dots. Items and sub-steps support `badgeTone` (`'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'error' | 'danger' | 'info' | 'neutral'`) for semantic status pills.
|
|
158
158
|
- **Actor avatars & hierarchical sub-steps**: Each item and sub-step can include an inline `avatar` (`RichAvatarNode` with automatic initials fallback if `imageSrc` fails to load) and nested `children` (`RichTimelineItem[]`) rendered with curved branch connectors (`.prx-rich-timeline__subitem-branch`).
|
|
159
|
-
- **Dynamic collection binding (`itemsExpr` & `itemTemplate`)**: Bind `itemsExpr` to an array in `[context]` (e.g. `"row.timelineEvents"`). If the array already contains `RichTimelineItem`-shaped objects, they render directly; when `itemTemplate` is also provided, each raw domain record is evaluated against `itemTemplate` with `item` and `
|
|
159
|
+
- **Dynamic collection binding (`itemsExpr` & `itemTemplate`)**: Bind `itemsExpr` to an array in `[context]` (e.g. `"row.timelineEvents"`). When `itemsExpr` is provided, static `items` may be omitted. If the array already contains `RichTimelineItem`-shaped objects, they render directly; when `itemTemplate` is also provided, each raw domain record is evaluated against `itemTemplate` with `item`, `index`/`$index`, and merged `row` injected into the item's local expression scope (e.g. `titleExpr: "item.stepName"`, `metaExpr: "item.occurredAt"`, `action.availabilityExpr: "item.status == 'pending'"`).
|
|
160
|
+
- **Progressive disclosure (`initialLimit`)**: Set `initialLimit` (positive integer, e.g. `5`) on long audit/workflow timelines to render only the first `N` events initially along with an accessible `"Show all (total) / Show less"` (`aria-expanded`, `aria-controls`) toggle button.
|
|
160
161
|
- **Insertion presets**: Component metadata provides both `timeline-surface` (horizontal milestone lifecycle) and `activity-timeline-surface` (vertical activity & fulfillment feed with `itemLayout: 'split'`, `markerStyle: 'soft'`, actor avatar and branch sub-steps).
|
|
161
162
|
|
|
162
163
|
```json
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "1.0.0",
|
|
3
|
-
"generatedAt": "2026-10-
|
|
3
|
+
"generatedAt": "2026-10-21T22:13:30.176Z",
|
|
4
4
|
"packageName": "@praxisui/rich-content",
|
|
5
|
-
"packageVersion": "10.0.0-rc.
|
|
5
|
+
"packageVersion": "10.0.0-rc.37",
|
|
6
6
|
"sourceRegistry": "praxis-component-registry-ingestion",
|
|
7
7
|
"sourceRegistryVersion": "1.0.0",
|
|
8
8
|
"componentCount": 1,
|
|
@@ -4681,6 +4681,12 @@
|
|
|
4681
4681
|
"alternate-reverse"
|
|
4682
4682
|
]
|
|
4683
4683
|
},
|
|
4684
|
+
"itemLayout": {
|
|
4685
|
+
"enum": [
|
|
4686
|
+
"stacked",
|
|
4687
|
+
"split"
|
|
4688
|
+
]
|
|
4689
|
+
},
|
|
4684
4690
|
"connectorVariant": {
|
|
4685
4691
|
"enum": [
|
|
4686
4692
|
"solid",
|
|
@@ -4744,6 +4750,10 @@
|
|
|
4744
4750
|
"label"
|
|
4745
4751
|
]
|
|
4746
4752
|
},
|
|
4753
|
+
"initialLimit": {
|
|
4754
|
+
"type": "number",
|
|
4755
|
+
"minimum": 1
|
|
4756
|
+
},
|
|
4747
4757
|
"icon": {
|
|
4748
4758
|
"type": "string"
|
|
4749
4759
|
},
|
|
@@ -5334,12 +5344,17 @@
|
|
|
5334
5344
|
"document.nodes[].active",
|
|
5335
5345
|
"document.nodes[].activeExpr",
|
|
5336
5346
|
"document.nodes[].defaultTabId",
|
|
5347
|
+
"document.nodes[].order",
|
|
5337
5348
|
"document.nodes[].position",
|
|
5349
|
+
"document.nodes[].itemLayout",
|
|
5338
5350
|
"document.nodes[].connectorVariant",
|
|
5339
5351
|
"document.nodes[].connectorColor",
|
|
5340
5352
|
"document.nodes[].markerVariant",
|
|
5341
5353
|
"document.nodes[].markerColor",
|
|
5342
5354
|
"document.nodes[].markerStyle",
|
|
5355
|
+
"document.nodes[].emphasis",
|
|
5356
|
+
"document.nodes[].textAppearance",
|
|
5357
|
+
"document.nodes[].initialLimit",
|
|
5343
5358
|
"document.nodes[].icon",
|
|
5344
5359
|
"document.nodes[].formId",
|
|
5345
5360
|
"document.nodes[].columns",
|
|
@@ -6136,6 +6151,10 @@
|
|
|
6136
6151
|
"titleExpr": {
|
|
6137
6152
|
"type": "string"
|
|
6138
6153
|
},
|
|
6154
|
+
"initialLimit": {
|
|
6155
|
+
"type": "number",
|
|
6156
|
+
"minimum": 1
|
|
6157
|
+
},
|
|
6139
6158
|
"itemsExpr": {
|
|
6140
6159
|
"type": "string"
|
|
6141
6160
|
},
|
|
@@ -6285,6 +6304,7 @@
|
|
|
6285
6304
|
"document.nodes[].textAppearance",
|
|
6286
6305
|
"document.nodes[].title",
|
|
6287
6306
|
"document.nodes[].titleExpr",
|
|
6307
|
+
"document.nodes[].initialLimit",
|
|
6288
6308
|
"document.nodes[].itemsExpr",
|
|
6289
6309
|
"document.nodes[].itemTemplate",
|
|
6290
6310
|
"document.nodes[].emptyText"
|
|
@@ -6404,6 +6424,10 @@
|
|
|
6404
6424
|
"titleExpr": {
|
|
6405
6425
|
"type": "string"
|
|
6406
6426
|
},
|
|
6427
|
+
"initialLimit": {
|
|
6428
|
+
"type": "number",
|
|
6429
|
+
"minimum": 1
|
|
6430
|
+
},
|
|
6407
6431
|
"itemsExpr": {
|
|
6408
6432
|
"type": "string"
|
|
6409
6433
|
},
|
|
@@ -6561,6 +6585,7 @@
|
|
|
6561
6585
|
"document.nodes[].textAppearance",
|
|
6562
6586
|
"document.nodes[].title",
|
|
6563
6587
|
"document.nodes[].titleExpr",
|
|
6588
|
+
"document.nodes[].initialLimit",
|
|
6564
6589
|
"document.nodes[].itemsExpr",
|
|
6565
6590
|
"document.nodes[].itemTemplate",
|
|
6566
6591
|
"document.nodes[].emptyText"
|
|
@@ -8041,9 +8066,9 @@
|
|
|
8041
8066
|
{
|
|
8042
8067
|
"chunkIndex": 3,
|
|
8043
8068
|
"chunkKind": "authoring_manifest",
|
|
8044
|
-
"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\",\"connectorVariant\",\"connectorColor\",\"markerVariant\",\"markerColor\",\"markerStyle\",\"emphasis\",\"textAppearance\",\"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\",\"connectorVariant\",\"connectorColor\",\"markerVariant\",\"markerColor\",\"markerStyle\",\"emphasis\",\"textAppearance\",\"icon\",\"formId\",\"columns\",\"minColumnWidth\",\"alignItems\",\"layout\",\"ctaPlacement\",\"ctaVariant\"
|
|
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\":[]}",
|
|
8045
8070
|
"sourcePointer": "projects/praxis-rich-content/src/lib/ai/praxis-rich-content-authoring-manifest.ts",
|
|
8046
|
-
"contentHash": "
|
|
8071
|
+
"contentHash": "6c694aabd879f34ac842b7c177afd09facf229426f5875737c09b07987a02f0a",
|
|
8047
8072
|
"sourceKind": "component_definition",
|
|
8048
8073
|
"sourceId": "praxis-rich-content",
|
|
8049
8074
|
"corpusVersion": "1.0.0"
|
|
@@ -8131,9 +8156,9 @@
|
|
|
8131
8156
|
{
|
|
8132
8157
|
"chunkIndex": 12,
|
|
8133
8158
|
"chunkKind": "authoring_manifest",
|
|
8134
|
-
"content": "{\"operationId\":\"timeline.node.update\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-rich-content\",\"ownerPackage\":\"@praxisui/rich-content\",\"configSchemaId\":\"RichContentDocument\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Update timeline display settings Effects: compile-domain-patch. Make the activity timeline read as a prominent hero process.\",\"scope\":\"templating\",\"target\":{\"kind\":\"timeline\",\"resolver\":\"rich-timeline-node-by-id-or-path\",\"required\":true},\"inputContract\":{\"required\":[\"timelineBlockId\"],\"properties\":[\"timelineBlockId\",\"orientation\",\"order\",\"position\",\"itemLayout\",\"connectorVariant\",\"connectorColor\",\"markerVariant\",\"markerColor\",\"markerStyle\",\"emphasis\",\"density\",\"textAppearance\",\"title\",\"titleExpr\",\"itemsExpr\",\"itemTemplate\",\"emptyText\"],\"semanticTerms\":[\"timelineBlockId\",\"orientation\",\"order\",\"position\",\"itemLayout\",\"connectorVariant\",\"connectorColor\",\"markerVariant\",\"markerColor\",\"markerStyle\",\"emphasis\",\"density\",\"textAppearance\",\"title\",\"titleExpr\",\"itemsExpr\",\"itemTemplate\",\"emptyText\",\"vertical\",\"horizontal\",\"normal\",\"reverse\",\"left\",\"right\",\"alternate\",\"alternate-reverse\",\"stacked\",\"split\",\"solid\",\"dashed\",\"none\",\"primary\",\"secondary\",\"tertiary\",\"success\",\"warning\",\"error\",\"danger\",\"info\",\"neutral\",\"dot\",\"icon\",\"number\",\"filled\",\"outlined\",\"soft\",\"subtle\",\"standard\",\"strong\",\"hero\",\"compact\",\"comfortable\",\"spacious\",\"default\",\"prominent\",\"eyebrow\",\"label\",\"itemTemplate.id\",\"itemTemplate.title\",\"itemTemplate.titleExpr\",\"itemTemplate.subtitle\",\"itemTemplate.subtitleExpr\",\"itemTemplate.meta\",\"itemTemplate.metaExpr\",\"itemTemplate.opposite\",\"itemTemplate.oppositeExpr\",\"itemTemplate.icon\",\"itemTemplate.iconExpr\",\"itemTemplate.badge\",\"itemTemplate.badgeExpr\",\"itemTemplate.badgeTone\",\"itemTemplate.itemLayout\",\"itemTemplate.markerColor\",\"itemTemplate.markerStyle\",\"itemTemplate.connectorColor\",\"itemTemplate.connectorVariant\",\"itemTemplate.avatar\",\"itemTemplate.action\",\"itemTemplate.children\"]},\"effects\":[\"compile-domain-patch\"],\"affectedPaths\":[\"document.nodes[].orientation\",\"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[].density\",\"document.nodes[].textAppearance\",\"document.nodes[].title\",\"document.nodes[].titleExpr\",\"document.nodes[].itemsExpr\",\"document.nodes[].itemTemplate\",\"document.nodes[].emptyText\"],\"validators\":[{\"validatorId\":\"block-exists\",\"level\":\"error\",\"code\":\"PRC005\",\"description\":\"Target block must exist before patching, reordering or removing it.\"},{\"validatorId\":\"timeline-target-valid\",\"level\":\"error\",\"code\":\"PRC028\",\"description\":\"Timeline item operations must target a timeline node with an items array.\"},{\"validatorId\":\"timeline-setting-supported\",\"level\":\"error\",\"code\":\"PRC033\",\"description\":\"Timeline display settings must use supported position, connector, marker, emphasis, density and text appearance enum values.\"},{\"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\":[{\"id\":\"make-timeline-prominent\",\"request\":\"Make the activity timeline read as a prominent hero process.\",\"operationId\":\"timeline.node.update\",\"target\":\"activity\",\"params\":{\"timelineBlockId\":\"activity\",\"emphasis\":\"hero\",\"density\":\"comfortable\",\"textAppearance\":\"prominent\"},\"isPositive\":true}],\"negativeExamples\":[]}",
|
|
8159
|
+
"content": "{\"operationId\":\"timeline.node.update\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-rich-content\",\"ownerPackage\":\"@praxisui/rich-content\",\"configSchemaId\":\"RichContentDocument\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Update timeline display settings Effects: compile-domain-patch. Make the activity timeline read as a prominent hero process.\",\"scope\":\"templating\",\"target\":{\"kind\":\"timeline\",\"resolver\":\"rich-timeline-node-by-id-or-path\",\"required\":true},\"inputContract\":{\"required\":[\"timelineBlockId\"],\"properties\":[\"timelineBlockId\",\"orientation\",\"order\",\"position\",\"itemLayout\",\"connectorVariant\",\"connectorColor\",\"markerVariant\",\"markerColor\",\"markerStyle\",\"emphasis\",\"density\",\"textAppearance\",\"title\",\"titleExpr\",\"initialLimit\",\"itemsExpr\",\"itemTemplate\",\"emptyText\"],\"semanticTerms\":[\"timelineBlockId\",\"orientation\",\"order\",\"position\",\"itemLayout\",\"connectorVariant\",\"connectorColor\",\"markerVariant\",\"markerColor\",\"markerStyle\",\"emphasis\",\"density\",\"textAppearance\",\"title\",\"titleExpr\",\"initialLimit\",\"itemsExpr\",\"itemTemplate\",\"emptyText\",\"vertical\",\"horizontal\",\"normal\",\"reverse\",\"left\",\"right\",\"alternate\",\"alternate-reverse\",\"stacked\",\"split\",\"solid\",\"dashed\",\"none\",\"primary\",\"secondary\",\"tertiary\",\"success\",\"warning\",\"error\",\"danger\",\"info\",\"neutral\",\"dot\",\"icon\",\"number\",\"filled\",\"outlined\",\"soft\",\"subtle\",\"standard\",\"strong\",\"hero\",\"compact\",\"comfortable\",\"spacious\",\"default\",\"prominent\",\"eyebrow\",\"label\",\"itemTemplate.id\",\"itemTemplate.title\",\"itemTemplate.titleExpr\",\"itemTemplate.subtitle\",\"itemTemplate.subtitleExpr\",\"itemTemplate.meta\",\"itemTemplate.metaExpr\",\"itemTemplate.opposite\",\"itemTemplate.oppositeExpr\",\"itemTemplate.icon\",\"itemTemplate.iconExpr\",\"itemTemplate.badge\",\"itemTemplate.badgeExpr\",\"itemTemplate.badgeTone\",\"itemTemplate.itemLayout\",\"itemTemplate.markerColor\",\"itemTemplate.markerStyle\",\"itemTemplate.connectorColor\",\"itemTemplate.connectorVariant\",\"itemTemplate.avatar\",\"itemTemplate.action\",\"itemTemplate.children\"]},\"effects\":[\"compile-domain-patch\"],\"affectedPaths\":[\"document.nodes[].orientation\",\"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[].density\",\"document.nodes[].textAppearance\",\"document.nodes[].title\",\"document.nodes[].titleExpr\",\"document.nodes[].initialLimit\",\"document.nodes[].itemsExpr\",\"document.nodes[].itemTemplate\",\"document.nodes[].emptyText\"],\"validators\":[{\"validatorId\":\"block-exists\",\"level\":\"error\",\"code\":\"PRC005\",\"description\":\"Target block must exist before patching, reordering or removing it.\"},{\"validatorId\":\"timeline-target-valid\",\"level\":\"error\",\"code\":\"PRC028\",\"description\":\"Timeline item operations must target a timeline node with an items array.\"},{\"validatorId\":\"timeline-setting-supported\",\"level\":\"error\",\"code\":\"PRC033\",\"description\":\"Timeline display settings must use supported position, connector, marker, emphasis, density and text appearance enum values.\"},{\"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\":[{\"id\":\"make-timeline-prominent\",\"request\":\"Make the activity timeline read as a prominent hero process.\",\"operationId\":\"timeline.node.update\",\"target\":\"activity\",\"params\":{\"timelineBlockId\":\"activity\",\"emphasis\":\"hero\",\"density\":\"comfortable\",\"textAppearance\":\"prominent\"},\"isPositive\":true}],\"negativeExamples\":[]}",
|
|
8135
8160
|
"sourcePointer": "projects/praxis-rich-content/src/lib/ai/praxis-rich-content-authoring-manifest.ts",
|
|
8136
|
-
"contentHash": "
|
|
8161
|
+
"contentHash": "188e36a3d9d87c9919fc40365ac632966dd4ea85fc65328223415d97c6d15879",
|
|
8137
8162
|
"sourceKind": "component_definition",
|
|
8138
8163
|
"sourceId": "praxis-rich-content",
|
|
8139
8164
|
"corpusVersion": "1.0.0"
|
|
@@ -8231,9 +8256,9 @@
|
|
|
8231
8256
|
{
|
|
8232
8257
|
"chunkIndex": 22,
|
|
8233
8258
|
"chunkKind": "authoring_manifest",
|
|
8234
|
-
"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\"]},\"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\"]},\"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\"}}}},\"effects\":[{\"kind\":\"merge-by-key\",\"path\":\"document.nodes[]\",\"key\":\"id\"}]
|
|
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\"}}}},\"effects\":[{\"kind\":\"merge-by-key\",\"path\":\"document.nodes[]\",\"key\":\"id\"}]}}",
|
|
8235
8260
|
"sourcePointer": "projects/praxis-rich-content/src/lib/ai/praxis-rich-content-authoring-manifest.ts",
|
|
8236
|
-
"contentHash": "
|
|
8261
|
+
"contentHash": "ea6b479e58e6bcc8bc3fb56331edec00ce3dbbc6157f42807e7368f0799e6a20",
|
|
8237
8262
|
"sourceKind": "component_definition",
|
|
8238
8263
|
"sourceId": "praxis-rich-content",
|
|
8239
8264
|
"corpusVersion": "1.0.0"
|
|
@@ -8241,9 +8266,9 @@
|
|
|
8241
8266
|
{
|
|
8242
8267
|
"chunkIndex": 23,
|
|
8243
8268
|
"chunkKind": "authoring_manifest",
|
|
8244
|
-
"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\":{\"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[].position\",\"document.nodes[].connectorVariant\",\"document.nodes[].connectorColor\",\"document.nodes[].markerVariant\",\"document.nodes[].markerColor\",\"document.nodes[].markerStyle\",\"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\"]}}",
|
|
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\"]}}",
|
|
8245
8270
|
"sourcePointer": "projects/praxis-rich-content/src/lib/ai/praxis-rich-content-authoring-manifest.ts",
|
|
8246
|
-
"contentHash": "
|
|
8271
|
+
"contentHash": "6954d0df30c4f0800c840c5d676ae533687a89405dc3c250732af7b7fec5eee8",
|
|
8247
8272
|
"sourceKind": "component_definition",
|
|
8248
8273
|
"sourceId": "praxis-rich-content",
|
|
8249
8274
|
"corpusVersion": "1.0.0"
|
|
@@ -8271,9 +8296,9 @@
|
|
|
8271
8296
|
{
|
|
8272
8297
|
"chunkIndex": 26,
|
|
8273
8298
|
"chunkKind": "authoring_manifest",
|
|
8274
|
-
"content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-rich-content\",\"ownerPackage\":\"@praxisui/rich-content\",\"configSchemaId\":\"RichContentDocument\",\"chunkSection\":\"operations\",\"operations\":[{\"operationId\":\"timeline.node.update\",\"title\":\"Update timeline display settings\",\"scope\":\"templating\",\"targetKind\":\"timeline\",\"target\":{\"kind\":\"timeline\",\"resolver\":\"rich-timeline-node-by-id-or-path\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"timelineBlockId\"],\"minProperties\":2,\"properties\":{\"timelineBlockId\":{\"type\":\"string\"},\"orientation\":{\"enum\":[\"vertical\",\"horizontal\"]},\"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\"]},\"density\":{\"enum\":[\"compact\",\"comfortable\",\"spacious\"]},\"textAppearance\":{\"enum\":[\"default\",\"prominent\",\"eyebrow\",\"label\"]},\"title\":{\"type\":\"string\"},\"titleExpr\":{\"type\":\"string\"},\"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\"}}}},\"emptyText\":{\"type\":\"string\"}}},\"effects\":[{\"kind\":\"compile-domain-patch\",\"handler\":\"rich-content-timeline-node-update\",\"handlerContract\":{\"reads\":[\"document.nodes[]\",\"document.nodes[].id\",\"document.nodes[].type\"],\"writes\":[\"document.nodes[].orientation\",\"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[].density\",\"document.nodes[].textAppearance\",\"document.nodes[].title\",\"document.nodes[].titleExpr\",\"document.nodes[].itemsExpr\",\"document.nodes[].itemTemplate\",\"document.nodes[].emptyText\"],\"identityKeys\":[\"document.nodes[].id\"],\"inputSchema\":{\"type\":\"object\",\"required\":[\"timelineBlockId\"],\"minProperties\":2,\"properties\":{\"timelineBlockId\":{\"type\":\"string\"},\"orientation\":{\"enum\":[\"vertical\",\"horizontal\"]},\"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\"]},\"density\":{\"enum\":[\"compact\",\"comfortable\",\"spacious\"]},\"textAppearance\":{\"enum\":[\"default\",\"prominent\",\"eyebrow\",\"label\"]},\"title\":{\"type\":\"string\"},\"titleExpr\":{\"type\":\"string\"},\"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\"}}}},\"emptyText\":{\"type\":\"string\"}}},\"failureModes\":[\"timeline-not-found\",\"unsupported-timeline-setting\",\"invalid-timeline-setting\"],\"description\":\"Updates timeline node display and semantic appearance settings while preserving timeline items and the canonical RichTimelineNode shape.\"}}],\"destructive\":false,\"requiresConfirmation\":false,\"validators\":[\"block-exists\",\"timeline-target-valid\",\"timeline-setting-supported\",\"document-shape-canonical\",\"editor-runtime-round-trip\"],\"affectedPaths\":[\"document.nodes[].orientation\",\"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[].density\",\"document.nodes[].textAppearance\",\"document.nodes[].title\",\"document.nodes[].titleExpr\",\"document.nodes[].itemsExpr\",\"document.nodes[].itemTemplate\",\"document.nodes[].emptyText\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\",\"target-block-exists\"]},{\"operationId\":\"timeline.item.add\",\"title\":\"Add timeline item\",\"scope\":\"templating\",\"targetKind\":\"timelineItem\",\"target\":{\"kind\":\"timelineItem\",\"resolver\":\"rich-timeline-node-by-id-or-path\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"timelineBlockId\",\"item\"],\"properties\":{\"timelineBlockId\":{\"type\":\"string\"},\"item\":{},\"afterItemId\":{\"type\":\"string\"},\"beforeItemId\":{\"type\":\"string\"}}},\"effects\":[{\"kind\":\"compile-domain-patch\",\"handler\":\"rich-content-timeline-item-add\",\"handlerContract\":{\"reads\":[\"document.nodes[]\",\"document.nodes[].items[]\"],\"writes\":[\"document.nodes[].items[]\"],\"identityKeys\":[\"document.nodes[].id\",\"document.nodes[].items[].id\"],\"inputSchema\":{\"type\":\"object\",\"required\":[\"timelineBlockId\",\"item\"],\"properties\":{\"timelineBlockId\":{\"type\":\"string\"},\"item\":{},\"afterItemId\":{\"type\":\"string\"},\"beforeItemId\":{\"type\":\"string\"}}},\"failureModes\":[\"timeline-not-found\",\"duplicate-timeline-item-id\",\"invalid-timeline-item\"],\"description\":\"Adds a timeline item to a timeline node using stable timeline and item ids when present; array index is a resolver fallback only.\"}}],\"destructive\":false,\"requiresConfirmation\":false,\"validators\":[\"block-exists\",\"timeline-target-valid\",\"timeline-item-valid\",\"timeline-item-id-unique\",\"document-shape-canonical\",\"editor-runtime-round-trip\"],\"affectedPaths\":[\"document.nodes[].items[]\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\",\"target-block-exists\"]}]}",
|
|
8299
|
+
"content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-rich-content\",\"ownerPackage\":\"@praxisui/rich-content\",\"configSchemaId\":\"RichContentDocument\",\"chunkSection\":\"operations\",\"operations\":[{\"operationId\":\"timeline.node.update\",\"title\":\"Update timeline display settings\",\"scope\":\"templating\",\"targetKind\":\"timeline\",\"target\":{\"kind\":\"timeline\",\"resolver\":\"rich-timeline-node-by-id-or-path\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"timelineBlockId\"],\"minProperties\":2,\"properties\":{\"timelineBlockId\":{\"type\":\"string\"},\"orientation\":{\"enum\":[\"vertical\",\"horizontal\"]},\"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\"]},\"density\":{\"enum\":[\"compact\",\"comfortable\",\"spacious\"]},\"textAppearance\":{\"enum\":[\"default\",\"prominent\",\"eyebrow\",\"label\"]},\"title\":{\"type\":\"string\"},\"titleExpr\":{\"type\":\"string\"},\"initialLimit\":{\"type\":\"number\",\"minimum\":1},\"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\"}}}},\"emptyText\":{\"type\":\"string\"}}},\"effects\":[{\"kind\":\"compile-domain-patch\",\"handler\":\"rich-content-timeline-node-update\",\"handlerContract\":{\"reads\":[\"document.nodes[]\",\"document.nodes[].id\",\"document.nodes[].type\"],\"writes\":[\"document.nodes[].orientation\",\"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[].density\",\"document.nodes[].textAppearance\",\"document.nodes[].title\",\"document.nodes[].titleExpr\",\"document.nodes[].initialLimit\",\"document.nodes[].itemsExpr\",\"document.nodes[].itemTemplate\",\"document.nodes[].emptyText\"],\"identityKeys\":[\"document.nodes[].id\"],\"inputSchema\":{\"type\":\"object\",\"required\":[\"timelineBlockId\"],\"minProperties\":2,\"properties\":{\"timelineBlockId\":{\"type\":\"string\"},\"orientation\":{\"enum\":[\"vertical\",\"horizontal\"]},\"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\"]},\"density\":{\"enum\":[\"compact\",\"comfortable\",\"spacious\"]},\"textAppearance\":{\"enum\":[\"default\",\"prominent\",\"eyebrow\",\"label\"]},\"title\":{\"type\":\"string\"},\"titleExpr\":{\"type\":\"string\"},\"initialLimit\":{\"type\":\"number\",\"minimum\":1},\"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\"}}}},\"emptyText\":{\"type\":\"string\"}}},\"failureModes\":[\"timeline-not-found\",\"unsupported-timeline-setting\",\"invalid-timeline-setting\"],\"description\":\"Updates timeline node display and semantic appearance settings while preserving timeline items and the canonical RichTimelineNode shape.\"}}],\"destructive\":false,\"requiresConfirmation\":false,\"validators\":[\"block-exists\",\"timeline-target-valid\",\"timeline-setting-supported\",\"document-shape-canonical\",\"editor-runtime-round-trip\"],\"affectedPaths\":[\"document.nodes[].orientation\",\"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[].density\",\"document.nodes[].textAppearance\",\"document.nodes[].title\",\"document.nodes[].titleExpr\",\"document.nodes[].initialLimit\",\"document.nodes[].itemsExpr\",\"document.nodes[].itemTemplate\",\"document.nodes[].emptyText\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\",\"target-block-exists\"]},{\"operationId\":\"timeline.item.add\",\"title\":\"Add timeline item\",\"scope\":\"templating\",\"targetKind\":\"timelineItem\",\"target\":{\"kind\":\"timelineItem\",\"resolver\":\"rich-timeline-node-by-id-or-path\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"timelineBlockId\",\"item\"],\"properties\":{\"timelineBlockId\":{\"type\":\"string\"},\"item\":{},\"afterItemId\":{\"type\":\"string\"},\"beforeItemId\":{\"type\":\"string\"}}},\"effects\":[{\"kind\":\"compile-domain-patch\",\"handler\":\"rich-content-timeline-item-add\",\"handlerContract\":{\"reads\":[\"document.nodes[]\",\"document.nodes[].items[]\"],\"writes\":[\"document.nodes[].items[]\"],\"identityKeys\":[\"document.nodes[].id\",\"document.nodes[].items[].id\"],\"inputSchema\":{\"type\":\"object\",\"required\":[\"timelineBlockId\",\"item\"],\"properties\":{\"timelineBlockId\":{\"type\":\"string\"},\"item\":{},\"afterItemId\":{\"type\":\"string\"},\"beforeItemId\":{\"type\":\"string\"}}},\"failureModes\":[\"timeline-not-found\",\"duplicate-timeline-item-id\",\"invalid-timeline-item\"],\"description\":\"Adds a timeline item to a timeline node using stable timeline and item ids when present; array index is a resolver fallback only.\"}}],\"destructive\":false,\"requiresConfirmation\":false,\"validators\":[\"block-exists\",\"timeline-target-valid\",\"timeline-item-valid\",\"timeline-item-id-unique\",\"document-shape-canonical\",\"editor-runtime-round-trip\"],\"affectedPaths\":[\"document.nodes[].items[]\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\",\"target-block-exists\"]}]}",
|
|
8275
8300
|
"sourcePointer": "projects/praxis-rich-content/src/lib/ai/praxis-rich-content-authoring-manifest.ts",
|
|
8276
|
-
"contentHash": "
|
|
8301
|
+
"contentHash": "4bdb31cc0860846ebe6c06a6c40bcf69d86f7a9554a6bb7c41fb2e80e4518e23",
|
|
8277
8302
|
"sourceKind": "component_definition",
|
|
8278
8303
|
"sourceId": "praxis-rich-content",
|
|
8279
8304
|
"corpusVersion": "1.0.0"
|
|
@@ -8331,9 +8356,9 @@
|
|
|
8331
8356
|
{
|
|
8332
8357
|
"chunkIndex": 32,
|
|
8333
8358
|
"chunkKind": "recipe",
|
|
8334
|
-
"content": "{\"_comment\":\"Recipe for @praxisui/rich-content. Use RichContentDocument for governed presentation, policy notes, operational summaries, host-mediated action cards, timelines and AI-readable explanations.\",\"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\"]},\"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\\\"
|
|
8359
|
+
"content": "{\"_comment\":\"Recipe for @praxisui/rich-content. Use RichContentDocument for governed presentation, policy notes, operational summaries, host-mediated action cards, timelines and AI-readable explanations.\",\"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\"]},\"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.\"],\"inputs\":{\"layout\":\"block\",\"rootClassName\":\"mission-knowledge-surface\",\"context\":{\"mission\":{\"name\":\"Operation Dawn Gate\",\"owner\":\"Ariadne Ops\",\"readiness\":82,\"risk\":\"Elevated\",\"region\":\"South Atlantic\"},\"policy\":{\"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\",\"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\"}]}]}},\"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}\"}]}}",
|
|
8335
8360
|
"sourcePointer": "examples/ai-recipes/praxis-rich-content.json",
|
|
8336
|
-
"contentHash": "
|
|
8361
|
+
"contentHash": "3e6c2bd2acea23581d362caeb24ed7f4aca8661152265a7aa2b07f72cc856d4f",
|
|
8337
8362
|
"sourceKind": "component_definition",
|
|
8338
8363
|
"sourceId": "praxis-rich-content",
|
|
8339
8364
|
"corpusVersion": "1.0.0"
|
|
@@ -522,6 +522,11 @@ function validateNode(value, path, issues, state, depth) {
|
|
|
522
522
|
validateEnum(value, 'emphasis', ['subtle', 'standard', 'strong', 'hero'], path, issues, false);
|
|
523
523
|
validateEnum(value, 'density', ['compact', 'comfortable', 'spacious'], path, issues, false);
|
|
524
524
|
validateEnum(value, 'textAppearance', ['default', 'prominent', 'eyebrow', 'label'], path, issues, false);
|
|
525
|
+
validateOptionalNumber(value, 'initialLimit', path, issues);
|
|
526
|
+
if (typeof value['initialLimit'] === 'number' &&
|
|
527
|
+
(!Number.isInteger(value['initialLimit']) || value['initialLimit'] < 1)) {
|
|
528
|
+
addIssue(issues, `${path}.initialLimit`, 'editor.validation.numberField', 'Initial limit must be a positive integer.');
|
|
529
|
+
}
|
|
525
530
|
validateOptionalExpressionPath(value, 'itemsExpr', path, issues);
|
|
526
531
|
if (value['itemTemplate'] !== undefined) {
|
|
527
532
|
validateTimelineItem(value['itemTemplate'], `${path}.itemTemplate`, issues, state, depth + 1);
|
|
@@ -921,12 +926,13 @@ function validateTimelineItem(item, itemPath, issues, state, depth = 1) {
|
|
|
921
926
|
for (const field of ['titleExpr', 'subtitleExpr', 'metaExpr', 'oppositeExpr', 'iconExpr', 'badgeExpr']) {
|
|
922
927
|
validateOptionalExpressionPath(record, field, itemPath, issues);
|
|
923
928
|
}
|
|
924
|
-
|
|
925
|
-
validateEnum(record, '
|
|
926
|
-
validateEnum(record, '
|
|
927
|
-
validateEnum(record, '
|
|
928
|
-
validateEnum(record, '
|
|
929
|
-
validateEnum(record, '
|
|
929
|
+
const allowTemplateInterpolation = itemPath.includes('.itemTemplate');
|
|
930
|
+
validateEnum(record, 'badgeTone', RICH_SEMANTIC_TONES, itemPath, issues, false, allowTemplateInterpolation);
|
|
931
|
+
validateEnum(record, 'itemLayout', ['stacked', 'split'], itemPath, issues, false, allowTemplateInterpolation);
|
|
932
|
+
validateEnum(record, 'markerColor', RICH_SEMANTIC_TONES, itemPath, issues, false, allowTemplateInterpolation);
|
|
933
|
+
validateEnum(record, 'markerStyle', ['filled', 'outlined', 'soft'], itemPath, issues, false, allowTemplateInterpolation);
|
|
934
|
+
validateEnum(record, 'connectorColor', RICH_SEMANTIC_TONES, itemPath, issues, false, allowTemplateInterpolation);
|
|
935
|
+
validateEnum(record, 'connectorVariant', ['solid', 'dashed', 'none'], itemPath, issues, false, allowTemplateInterpolation);
|
|
930
936
|
if (record['avatar'] !== undefined) {
|
|
931
937
|
const avatarPath = `${itemPath}.avatar`;
|
|
932
938
|
if (!isRecord(record['avatar']) || record['avatar']['type'] !== 'avatar') {
|
|
@@ -1135,7 +1141,7 @@ function validateOptionalNumberChoice(node, field, allowedValues, path, issues)
|
|
|
1135
1141
|
addIssue(issues, `${path}.${field}`, 'editor.validation.enumField', 'This field must use one of the supported values.');
|
|
1136
1142
|
}
|
|
1137
1143
|
}
|
|
1138
|
-
function validateEnum(node, field, allowedValues, path, issues, required) {
|
|
1144
|
+
function validateEnum(node, field, allowedValues, path, issues, required, allowInterpolation = false) {
|
|
1139
1145
|
const value = node[field];
|
|
1140
1146
|
if (value === undefined || value === null) {
|
|
1141
1147
|
if (required) {
|
|
@@ -1143,6 +1149,11 @@ function validateEnum(node, field, allowedValues, path, issues, required) {
|
|
|
1143
1149
|
}
|
|
1144
1150
|
return;
|
|
1145
1151
|
}
|
|
1152
|
+
if (allowInterpolation &&
|
|
1153
|
+
typeof value === 'string' &&
|
|
1154
|
+
/^(?:\$\{[a-zA-Z0-9_.$]+\}|\{\{\s*[a-zA-Z0-9_.$]+\s*\}\})$/.test(value.trim())) {
|
|
1155
|
+
return;
|
|
1156
|
+
}
|
|
1146
1157
|
if (typeof value !== 'string' || !allowedValues.includes(value)) {
|
|
1147
1158
|
addIssue(issues, `${path}.${field}`, 'editor.validation.enumField', 'This field must use one of the supported values.');
|
|
1148
1159
|
}
|