@praxisui/rich-content 9.0.0-beta.85 → 9.0.0-beta.88
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/ai/component-registry.json +718 -37
- package/package.json +2 -2
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "1.0.0",
|
|
3
|
-
"generatedAt": "2026-07-
|
|
3
|
+
"generatedAt": "2026-07-23T02:50:28.389Z",
|
|
4
4
|
"packageName": "@praxisui/rich-content",
|
|
5
|
-
"packageVersion": "9.0.0-beta.
|
|
5
|
+
"packageVersion": "9.0.0-beta.88",
|
|
6
6
|
"sourceRegistry": "praxis-component-registry-ingestion",
|
|
7
7
|
"sourceRegistryVersion": "1.0.0",
|
|
8
8
|
"componentCount": 1,
|
|
@@ -4498,7 +4498,18 @@
|
|
|
4498
4498
|
"number"
|
|
4499
4499
|
]
|
|
4500
4500
|
},
|
|
4501
|
-
"markerColor": {
|
|
4501
|
+
"markerColor": {
|
|
4502
|
+
"enum": [
|
|
4503
|
+
"primary",
|
|
4504
|
+
"secondary",
|
|
4505
|
+
"tertiary",
|
|
4506
|
+
"success",
|
|
4507
|
+
"warning",
|
|
4508
|
+
"error",
|
|
4509
|
+
"info",
|
|
4510
|
+
"neutral"
|
|
4511
|
+
]
|
|
4512
|
+
},
|
|
4502
4513
|
"markerStyle": {
|
|
4503
4514
|
"enum": [
|
|
4504
4515
|
"filled",
|
|
@@ -5470,14 +5481,72 @@
|
|
|
5470
5481
|
"horizontal"
|
|
5471
5482
|
]
|
|
5472
5483
|
},
|
|
5473
|
-
"order": {
|
|
5474
|
-
|
|
5475
|
-
|
|
5476
|
-
|
|
5477
|
-
|
|
5478
|
-
|
|
5479
|
-
"
|
|
5480
|
-
|
|
5484
|
+
"order": {
|
|
5485
|
+
"enum": [
|
|
5486
|
+
"normal",
|
|
5487
|
+
"reverse"
|
|
5488
|
+
]
|
|
5489
|
+
},
|
|
5490
|
+
"position": {
|
|
5491
|
+
"enum": [
|
|
5492
|
+
"left",
|
|
5493
|
+
"right",
|
|
5494
|
+
"alternate",
|
|
5495
|
+
"alternate-reverse"
|
|
5496
|
+
]
|
|
5497
|
+
},
|
|
5498
|
+
"connectorVariant": {
|
|
5499
|
+
"enum": [
|
|
5500
|
+
"solid",
|
|
5501
|
+
"dashed",
|
|
5502
|
+
"none"
|
|
5503
|
+
]
|
|
5504
|
+
},
|
|
5505
|
+
"connectorColor": {
|
|
5506
|
+
"enum": [
|
|
5507
|
+
"primary",
|
|
5508
|
+
"secondary",
|
|
5509
|
+
"tertiary",
|
|
5510
|
+
"success",
|
|
5511
|
+
"warning",
|
|
5512
|
+
"error",
|
|
5513
|
+
"info",
|
|
5514
|
+
"neutral"
|
|
5515
|
+
]
|
|
5516
|
+
},
|
|
5517
|
+
"markerVariant": {
|
|
5518
|
+
"enum": [
|
|
5519
|
+
"dot",
|
|
5520
|
+
"icon",
|
|
5521
|
+
"number"
|
|
5522
|
+
]
|
|
5523
|
+
},
|
|
5524
|
+
"markerColor": {
|
|
5525
|
+
"enum": [
|
|
5526
|
+
"primary",
|
|
5527
|
+
"secondary",
|
|
5528
|
+
"tertiary",
|
|
5529
|
+
"success",
|
|
5530
|
+
"warning",
|
|
5531
|
+
"error",
|
|
5532
|
+
"info",
|
|
5533
|
+
"neutral"
|
|
5534
|
+
]
|
|
5535
|
+
},
|
|
5536
|
+
"markerStyle": {
|
|
5537
|
+
"enum": [
|
|
5538
|
+
"filled",
|
|
5539
|
+
"outlined"
|
|
5540
|
+
]
|
|
5541
|
+
},
|
|
5542
|
+
"emphasis": {
|
|
5543
|
+
"enum": [
|
|
5544
|
+
"subtle",
|
|
5545
|
+
"standard",
|
|
5546
|
+
"strong",
|
|
5547
|
+
"hero"
|
|
5548
|
+
]
|
|
5549
|
+
},
|
|
5481
5550
|
"density": {
|
|
5482
5551
|
"enum": [
|
|
5483
5552
|
"compact",
|
|
@@ -5485,7 +5554,14 @@
|
|
|
5485
5554
|
"spacious"
|
|
5486
5555
|
]
|
|
5487
5556
|
},
|
|
5488
|
-
"textAppearance": {
|
|
5557
|
+
"textAppearance": {
|
|
5558
|
+
"enum": [
|
|
5559
|
+
"default",
|
|
5560
|
+
"prominent",
|
|
5561
|
+
"eyebrow",
|
|
5562
|
+
"label"
|
|
5563
|
+
]
|
|
5564
|
+
},
|
|
5489
5565
|
"title": {
|
|
5490
5566
|
"type": "string"
|
|
5491
5567
|
},
|
|
@@ -5526,6 +5602,114 @@
|
|
|
5526
5602
|
"identityKeys": [
|
|
5527
5603
|
"document.nodes[].id"
|
|
5528
5604
|
],
|
|
5605
|
+
"inputSchema": {
|
|
5606
|
+
"type": "object",
|
|
5607
|
+
"required": [
|
|
5608
|
+
"timelineBlockId"
|
|
5609
|
+
],
|
|
5610
|
+
"minProperties": 2,
|
|
5611
|
+
"properties": {
|
|
5612
|
+
"timelineBlockId": {
|
|
5613
|
+
"type": "string"
|
|
5614
|
+
},
|
|
5615
|
+
"orientation": {
|
|
5616
|
+
"enum": [
|
|
5617
|
+
"vertical",
|
|
5618
|
+
"horizontal"
|
|
5619
|
+
]
|
|
5620
|
+
},
|
|
5621
|
+
"order": {
|
|
5622
|
+
"enum": [
|
|
5623
|
+
"normal",
|
|
5624
|
+
"reverse"
|
|
5625
|
+
]
|
|
5626
|
+
},
|
|
5627
|
+
"position": {
|
|
5628
|
+
"enum": [
|
|
5629
|
+
"left",
|
|
5630
|
+
"right",
|
|
5631
|
+
"alternate",
|
|
5632
|
+
"alternate-reverse"
|
|
5633
|
+
]
|
|
5634
|
+
},
|
|
5635
|
+
"connectorVariant": {
|
|
5636
|
+
"enum": [
|
|
5637
|
+
"solid",
|
|
5638
|
+
"dashed",
|
|
5639
|
+
"none"
|
|
5640
|
+
]
|
|
5641
|
+
},
|
|
5642
|
+
"connectorColor": {
|
|
5643
|
+
"enum": [
|
|
5644
|
+
"primary",
|
|
5645
|
+
"secondary",
|
|
5646
|
+
"tertiary",
|
|
5647
|
+
"success",
|
|
5648
|
+
"warning",
|
|
5649
|
+
"error",
|
|
5650
|
+
"info",
|
|
5651
|
+
"neutral"
|
|
5652
|
+
]
|
|
5653
|
+
},
|
|
5654
|
+
"markerVariant": {
|
|
5655
|
+
"enum": [
|
|
5656
|
+
"dot",
|
|
5657
|
+
"icon",
|
|
5658
|
+
"number"
|
|
5659
|
+
]
|
|
5660
|
+
},
|
|
5661
|
+
"markerColor": {
|
|
5662
|
+
"enum": [
|
|
5663
|
+
"primary",
|
|
5664
|
+
"secondary",
|
|
5665
|
+
"tertiary",
|
|
5666
|
+
"success",
|
|
5667
|
+
"warning",
|
|
5668
|
+
"error",
|
|
5669
|
+
"info",
|
|
5670
|
+
"neutral"
|
|
5671
|
+
]
|
|
5672
|
+
},
|
|
5673
|
+
"markerStyle": {
|
|
5674
|
+
"enum": [
|
|
5675
|
+
"filled",
|
|
5676
|
+
"outlined"
|
|
5677
|
+
]
|
|
5678
|
+
},
|
|
5679
|
+
"emphasis": {
|
|
5680
|
+
"enum": [
|
|
5681
|
+
"subtle",
|
|
5682
|
+
"standard",
|
|
5683
|
+
"strong",
|
|
5684
|
+
"hero"
|
|
5685
|
+
]
|
|
5686
|
+
},
|
|
5687
|
+
"density": {
|
|
5688
|
+
"enum": [
|
|
5689
|
+
"compact",
|
|
5690
|
+
"comfortable",
|
|
5691
|
+
"spacious"
|
|
5692
|
+
]
|
|
5693
|
+
},
|
|
5694
|
+
"textAppearance": {
|
|
5695
|
+
"enum": [
|
|
5696
|
+
"default",
|
|
5697
|
+
"prominent",
|
|
5698
|
+
"eyebrow",
|
|
5699
|
+
"label"
|
|
5700
|
+
]
|
|
5701
|
+
},
|
|
5702
|
+
"title": {
|
|
5703
|
+
"type": "string"
|
|
5704
|
+
},
|
|
5705
|
+
"titleExpr": {
|
|
5706
|
+
"type": "string"
|
|
5707
|
+
},
|
|
5708
|
+
"emptyText": {
|
|
5709
|
+
"type": "string"
|
|
5710
|
+
}
|
|
5711
|
+
}
|
|
5712
|
+
},
|
|
5529
5713
|
"failureModes": [
|
|
5530
5714
|
"timeline-not-found",
|
|
5531
5715
|
"unsupported-timeline-setting",
|
|
@@ -5622,6 +5806,7 @@
|
|
|
5622
5806
|
"timelineBlockId": {
|
|
5623
5807
|
"type": "string"
|
|
5624
5808
|
},
|
|
5809
|
+
"item": {},
|
|
5625
5810
|
"afterItemId": {
|
|
5626
5811
|
"type": "string"
|
|
5627
5812
|
},
|
|
@@ -5751,10 +5936,43 @@
|
|
|
5751
5936
|
"badgeExpr": {
|
|
5752
5937
|
"type": "string"
|
|
5753
5938
|
},
|
|
5754
|
-
"markerColor": {
|
|
5755
|
-
|
|
5756
|
-
|
|
5757
|
-
|
|
5939
|
+
"markerColor": {
|
|
5940
|
+
"enum": [
|
|
5941
|
+
"primary",
|
|
5942
|
+
"secondary",
|
|
5943
|
+
"tertiary",
|
|
5944
|
+
"success",
|
|
5945
|
+
"warning",
|
|
5946
|
+
"error",
|
|
5947
|
+
"info",
|
|
5948
|
+
"neutral"
|
|
5949
|
+
]
|
|
5950
|
+
},
|
|
5951
|
+
"markerStyle": {
|
|
5952
|
+
"enum": [
|
|
5953
|
+
"filled",
|
|
5954
|
+
"outlined"
|
|
5955
|
+
]
|
|
5956
|
+
},
|
|
5957
|
+
"connectorColor": {
|
|
5958
|
+
"enum": [
|
|
5959
|
+
"primary",
|
|
5960
|
+
"secondary",
|
|
5961
|
+
"tertiary",
|
|
5962
|
+
"success",
|
|
5963
|
+
"warning",
|
|
5964
|
+
"error",
|
|
5965
|
+
"info",
|
|
5966
|
+
"neutral"
|
|
5967
|
+
]
|
|
5968
|
+
},
|
|
5969
|
+
"connectorVariant": {
|
|
5970
|
+
"enum": [
|
|
5971
|
+
"solid",
|
|
5972
|
+
"dashed",
|
|
5973
|
+
"none"
|
|
5974
|
+
]
|
|
5975
|
+
}
|
|
5758
5976
|
}
|
|
5759
5977
|
}
|
|
5760
5978
|
},
|
|
@@ -5788,7 +6006,18 @@
|
|
|
5788
6006
|
},
|
|
5789
6007
|
"then": {
|
|
5790
6008
|
"properties": {
|
|
5791
|
-
"value": {
|
|
6009
|
+
"value": {
|
|
6010
|
+
"enum": [
|
|
6011
|
+
"primary",
|
|
6012
|
+
"secondary",
|
|
6013
|
+
"tertiary",
|
|
6014
|
+
"success",
|
|
6015
|
+
"warning",
|
|
6016
|
+
"error",
|
|
6017
|
+
"info",
|
|
6018
|
+
"neutral"
|
|
6019
|
+
]
|
|
6020
|
+
}
|
|
5792
6021
|
}
|
|
5793
6022
|
}
|
|
5794
6023
|
},
|
|
@@ -5805,7 +6034,12 @@
|
|
|
5805
6034
|
},
|
|
5806
6035
|
"then": {
|
|
5807
6036
|
"properties": {
|
|
5808
|
-
"value": {
|
|
6037
|
+
"value": {
|
|
6038
|
+
"enum": [
|
|
6039
|
+
"filled",
|
|
6040
|
+
"outlined"
|
|
6041
|
+
]
|
|
6042
|
+
}
|
|
5809
6043
|
}
|
|
5810
6044
|
}
|
|
5811
6045
|
},
|
|
@@ -5822,14 +6056,35 @@
|
|
|
5822
6056
|
},
|
|
5823
6057
|
"then": {
|
|
5824
6058
|
"properties": {
|
|
5825
|
-
"value": {
|
|
6059
|
+
"value": {
|
|
6060
|
+
"enum": [
|
|
6061
|
+
"solid",
|
|
6062
|
+
"dashed",
|
|
6063
|
+
"none"
|
|
6064
|
+
]
|
|
6065
|
+
}
|
|
5826
6066
|
}
|
|
5827
6067
|
}
|
|
5828
6068
|
},
|
|
5829
6069
|
{
|
|
5830
6070
|
"if": {
|
|
5831
6071
|
"properties": {
|
|
5832
|
-
"field": {
|
|
6072
|
+
"field": {
|
|
6073
|
+
"enum": [
|
|
6074
|
+
"title",
|
|
6075
|
+
"titleExpr",
|
|
6076
|
+
"subtitle",
|
|
6077
|
+
"subtitleExpr",
|
|
6078
|
+
"meta",
|
|
6079
|
+
"metaExpr",
|
|
6080
|
+
"opposite",
|
|
6081
|
+
"oppositeExpr",
|
|
6082
|
+
"icon",
|
|
6083
|
+
"iconExpr",
|
|
6084
|
+
"badge",
|
|
6085
|
+
"badgeExpr"
|
|
6086
|
+
]
|
|
6087
|
+
}
|
|
5833
6088
|
},
|
|
5834
6089
|
"required": [
|
|
5835
6090
|
"field"
|
|
@@ -5861,6 +6116,252 @@
|
|
|
5861
6116
|
"document.nodes[].id",
|
|
5862
6117
|
"document.nodes[].items[].id"
|
|
5863
6118
|
],
|
|
6119
|
+
"inputSchema": {
|
|
6120
|
+
"type": "object",
|
|
6121
|
+
"required": [
|
|
6122
|
+
"timelineBlockId"
|
|
6123
|
+
],
|
|
6124
|
+
"minProperties": 2,
|
|
6125
|
+
"properties": {
|
|
6126
|
+
"timelineBlockId": {
|
|
6127
|
+
"type": "string"
|
|
6128
|
+
},
|
|
6129
|
+
"itemId": {
|
|
6130
|
+
"type": "string"
|
|
6131
|
+
},
|
|
6132
|
+
"itemIndex": {
|
|
6133
|
+
"type": "number"
|
|
6134
|
+
},
|
|
6135
|
+
"field": {
|
|
6136
|
+
"enum": [
|
|
6137
|
+
"title",
|
|
6138
|
+
"titleExpr",
|
|
6139
|
+
"subtitle",
|
|
6140
|
+
"subtitleExpr",
|
|
6141
|
+
"meta",
|
|
6142
|
+
"metaExpr",
|
|
6143
|
+
"opposite",
|
|
6144
|
+
"oppositeExpr",
|
|
6145
|
+
"icon",
|
|
6146
|
+
"iconExpr",
|
|
6147
|
+
"badge",
|
|
6148
|
+
"badgeExpr",
|
|
6149
|
+
"markerColor",
|
|
6150
|
+
"markerStyle",
|
|
6151
|
+
"connectorColor",
|
|
6152
|
+
"connectorVariant"
|
|
6153
|
+
]
|
|
6154
|
+
},
|
|
6155
|
+
"value": {
|
|
6156
|
+
"type": "string"
|
|
6157
|
+
},
|
|
6158
|
+
"patch": {
|
|
6159
|
+
"type": "object",
|
|
6160
|
+
"minProperties": 1,
|
|
6161
|
+
"properties": {
|
|
6162
|
+
"id": {
|
|
6163
|
+
"type": "string"
|
|
6164
|
+
},
|
|
6165
|
+
"title": {
|
|
6166
|
+
"type": "string"
|
|
6167
|
+
},
|
|
6168
|
+
"titleExpr": {
|
|
6169
|
+
"type": "string"
|
|
6170
|
+
},
|
|
6171
|
+
"subtitle": {
|
|
6172
|
+
"type": "string"
|
|
6173
|
+
},
|
|
6174
|
+
"subtitleExpr": {
|
|
6175
|
+
"type": "string"
|
|
6176
|
+
},
|
|
6177
|
+
"meta": {
|
|
6178
|
+
"type": "string"
|
|
6179
|
+
},
|
|
6180
|
+
"metaExpr": {
|
|
6181
|
+
"type": "string"
|
|
6182
|
+
},
|
|
6183
|
+
"opposite": {
|
|
6184
|
+
"type": "string"
|
|
6185
|
+
},
|
|
6186
|
+
"oppositeExpr": {
|
|
6187
|
+
"type": "string"
|
|
6188
|
+
},
|
|
6189
|
+
"icon": {
|
|
6190
|
+
"type": "string"
|
|
6191
|
+
},
|
|
6192
|
+
"iconExpr": {
|
|
6193
|
+
"type": "string"
|
|
6194
|
+
},
|
|
6195
|
+
"badge": {
|
|
6196
|
+
"type": "string"
|
|
6197
|
+
},
|
|
6198
|
+
"badgeExpr": {
|
|
6199
|
+
"type": "string"
|
|
6200
|
+
},
|
|
6201
|
+
"markerColor": {
|
|
6202
|
+
"enum": [
|
|
6203
|
+
"primary",
|
|
6204
|
+
"secondary",
|
|
6205
|
+
"tertiary",
|
|
6206
|
+
"success",
|
|
6207
|
+
"warning",
|
|
6208
|
+
"error",
|
|
6209
|
+
"info",
|
|
6210
|
+
"neutral"
|
|
6211
|
+
]
|
|
6212
|
+
},
|
|
6213
|
+
"markerStyle": {
|
|
6214
|
+
"enum": [
|
|
6215
|
+
"filled",
|
|
6216
|
+
"outlined"
|
|
6217
|
+
]
|
|
6218
|
+
},
|
|
6219
|
+
"connectorColor": {
|
|
6220
|
+
"enum": [
|
|
6221
|
+
"primary",
|
|
6222
|
+
"secondary",
|
|
6223
|
+
"tertiary",
|
|
6224
|
+
"success",
|
|
6225
|
+
"warning",
|
|
6226
|
+
"error",
|
|
6227
|
+
"info",
|
|
6228
|
+
"neutral"
|
|
6229
|
+
]
|
|
6230
|
+
},
|
|
6231
|
+
"connectorVariant": {
|
|
6232
|
+
"enum": [
|
|
6233
|
+
"solid",
|
|
6234
|
+
"dashed",
|
|
6235
|
+
"none"
|
|
6236
|
+
]
|
|
6237
|
+
}
|
|
6238
|
+
}
|
|
6239
|
+
}
|
|
6240
|
+
},
|
|
6241
|
+
"anyOf": [
|
|
6242
|
+
{
|
|
6243
|
+
"required": [
|
|
6244
|
+
"field",
|
|
6245
|
+
"value"
|
|
6246
|
+
]
|
|
6247
|
+
},
|
|
6248
|
+
{
|
|
6249
|
+
"required": [
|
|
6250
|
+
"patch"
|
|
6251
|
+
]
|
|
6252
|
+
}
|
|
6253
|
+
],
|
|
6254
|
+
"allOf": [
|
|
6255
|
+
{
|
|
6256
|
+
"if": {
|
|
6257
|
+
"properties": {
|
|
6258
|
+
"field": {
|
|
6259
|
+
"enum": [
|
|
6260
|
+
"markerColor",
|
|
6261
|
+
"connectorColor"
|
|
6262
|
+
]
|
|
6263
|
+
}
|
|
6264
|
+
},
|
|
6265
|
+
"required": [
|
|
6266
|
+
"field"
|
|
6267
|
+
]
|
|
6268
|
+
},
|
|
6269
|
+
"then": {
|
|
6270
|
+
"properties": {
|
|
6271
|
+
"value": {
|
|
6272
|
+
"enum": [
|
|
6273
|
+
"primary",
|
|
6274
|
+
"secondary",
|
|
6275
|
+
"tertiary",
|
|
6276
|
+
"success",
|
|
6277
|
+
"warning",
|
|
6278
|
+
"error",
|
|
6279
|
+
"info",
|
|
6280
|
+
"neutral"
|
|
6281
|
+
]
|
|
6282
|
+
}
|
|
6283
|
+
}
|
|
6284
|
+
}
|
|
6285
|
+
},
|
|
6286
|
+
{
|
|
6287
|
+
"if": {
|
|
6288
|
+
"properties": {
|
|
6289
|
+
"field": {
|
|
6290
|
+
"const": "markerStyle"
|
|
6291
|
+
}
|
|
6292
|
+
},
|
|
6293
|
+
"required": [
|
|
6294
|
+
"field"
|
|
6295
|
+
]
|
|
6296
|
+
},
|
|
6297
|
+
"then": {
|
|
6298
|
+
"properties": {
|
|
6299
|
+
"value": {
|
|
6300
|
+
"enum": [
|
|
6301
|
+
"filled",
|
|
6302
|
+
"outlined"
|
|
6303
|
+
]
|
|
6304
|
+
}
|
|
6305
|
+
}
|
|
6306
|
+
}
|
|
6307
|
+
},
|
|
6308
|
+
{
|
|
6309
|
+
"if": {
|
|
6310
|
+
"properties": {
|
|
6311
|
+
"field": {
|
|
6312
|
+
"const": "connectorVariant"
|
|
6313
|
+
}
|
|
6314
|
+
},
|
|
6315
|
+
"required": [
|
|
6316
|
+
"field"
|
|
6317
|
+
]
|
|
6318
|
+
},
|
|
6319
|
+
"then": {
|
|
6320
|
+
"properties": {
|
|
6321
|
+
"value": {
|
|
6322
|
+
"enum": [
|
|
6323
|
+
"solid",
|
|
6324
|
+
"dashed",
|
|
6325
|
+
"none"
|
|
6326
|
+
]
|
|
6327
|
+
}
|
|
6328
|
+
}
|
|
6329
|
+
}
|
|
6330
|
+
},
|
|
6331
|
+
{
|
|
6332
|
+
"if": {
|
|
6333
|
+
"properties": {
|
|
6334
|
+
"field": {
|
|
6335
|
+
"enum": [
|
|
6336
|
+
"title",
|
|
6337
|
+
"titleExpr",
|
|
6338
|
+
"subtitle",
|
|
6339
|
+
"subtitleExpr",
|
|
6340
|
+
"meta",
|
|
6341
|
+
"metaExpr",
|
|
6342
|
+
"opposite",
|
|
6343
|
+
"oppositeExpr",
|
|
6344
|
+
"icon",
|
|
6345
|
+
"iconExpr",
|
|
6346
|
+
"badge",
|
|
6347
|
+
"badgeExpr"
|
|
6348
|
+
]
|
|
6349
|
+
}
|
|
6350
|
+
},
|
|
6351
|
+
"required": [
|
|
6352
|
+
"field"
|
|
6353
|
+
]
|
|
6354
|
+
},
|
|
6355
|
+
"then": {
|
|
6356
|
+
"properties": {
|
|
6357
|
+
"value": {
|
|
6358
|
+
"type": "string"
|
|
6359
|
+
}
|
|
6360
|
+
}
|
|
6361
|
+
}
|
|
6362
|
+
}
|
|
6363
|
+
]
|
|
6364
|
+
},
|
|
5864
6365
|
"failureModes": [
|
|
5865
6366
|
"timeline-not-found",
|
|
5866
6367
|
"timeline-item-not-found",
|
|
@@ -6566,6 +7067,176 @@
|
|
|
6566
7067
|
{
|
|
6567
7068
|
"chunkIndex": 1,
|
|
6568
7069
|
"chunkKind": "authoring_manifest",
|
|
7070
|
+
"content": "{\"operationId\":\"document.set\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-rich-content\",\"ownerPackage\":\"@praxisui/rich-content\",\"configSchemaId\":\"RichContentDocument\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Set rich content document Effects: set-value. Start with an empty rich content document.\",\"scope\":\"global\",\"target\":{\"kind\":\"document\",\"resolver\":\"rich-content-document-root\",\"required\":false},\"inputContract\":{\"required\":[\"kind\",\"version\",\"nodes\"],\"properties\":[\"kind\",\"version\",\"context\",\"nodes\"],\"semanticTerms\":[\"kind\",\"version\",\"context\",\"nodes\",\"praxis.rich-content\",\"1.0.0\"]},\"effects\":[\"set-value\"],\"affectedPaths\":[\"document\"],\"validators\":[{\"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\":\"document-version-supported\",\"level\":\"error\",\"code\":\"PRC002\",\"description\":\"Only document version 1.0.0 is supported.\"},{\"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\":\"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\":\"set-empty-document\",\"request\":\"Start with an empty rich content document.\",\"operationId\":\"document.set\",\"params\":{\"kind\":\"praxis.rich-content\",\"version\":\"1.0.0\",\"nodes\":[]},\"isPositive\":true}],\"negativeExamples\":[]}",
|
|
7071
|
+
"sourcePointer": "projects/praxis-rich-content/src/lib/ai/praxis-rich-content-authoring-manifest.ts",
|
|
7072
|
+
"contentHash": "86d4f24bd91836a91e28f837fb6ab60f1a096e6aa12d3194ce216489b380854f",
|
|
7073
|
+
"sourceKind": "component_definition",
|
|
7074
|
+
"sourceId": "praxis-rich-content",
|
|
7075
|
+
"corpusVersion": "1.0.0"
|
|
7076
|
+
},
|
|
7077
|
+
{
|
|
7078
|
+
"chunkIndex": 2,
|
|
7079
|
+
"chunkKind": "authoring_manifest",
|
|
7080
|
+
"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\",\"callout\",\"ctaGroup\",\"keyValueList\",\"emptyState\",\"propertySheet\",\"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\":[]}",
|
|
7081
|
+
"sourcePointer": "projects/praxis-rich-content/src/lib/ai/praxis-rich-content-authoring-manifest.ts",
|
|
7082
|
+
"contentHash": "6394f73cdec265d3e423099b8739dc80ad0672400a4a501e1963ba50a5536ec2",
|
|
7083
|
+
"sourceKind": "component_definition",
|
|
7084
|
+
"sourceId": "praxis-rich-content",
|
|
7085
|
+
"corpusVersion": "1.0.0"
|
|
7086
|
+
},
|
|
7087
|
+
{
|
|
7088
|
+
"chunkIndex": 3,
|
|
7089
|
+
"chunkKind": "authoring_manifest",
|
|
7090
|
+
"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\",\"layout\",\"action\",\"actions\",\"primaryAction\",\"secondaryActions\",\"media\",\"headerAction\",\"interaction\",\"accessibility\",\"fields\",\"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\",\"layout\",\"action\",\"actions\",\"primaryAction\",\"secondaryActions\",\"media\",\"headerAction\"]},\"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[].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[].interaction\",\"document.nodes[].accessibility\",\"document.nodes[].fields\",\"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 paths or Json Logic expressions, not 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\":[]}",
|
|
7091
|
+
"sourcePointer": "projects/praxis-rich-content/src/lib/ai/praxis-rich-content-authoring-manifest.ts",
|
|
7092
|
+
"contentHash": "730982b97848f50fd19e89f97e0d252d3ad518c4644b2b81a7454703402d7348",
|
|
7093
|
+
"sourceKind": "component_definition",
|
|
7094
|
+
"sourceId": "praxis-rich-content",
|
|
7095
|
+
"corpusVersion": "1.0.0"
|
|
7096
|
+
},
|
|
7097
|
+
{
|
|
7098
|
+
"chunkIndex": 4,
|
|
7099
|
+
"chunkKind": "authoring_manifest",
|
|
7100
|
+
"content": "{\"operationId\":\"block.remove\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-rich-content\",\"ownerPackage\":\"@praxisui/rich-content\",\"configSchemaId\":\"RichContentDocument\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Remove rich content block Effects: remove-by-key. Remove the obsolete block.\",\"scope\":\"templating\",\"target\":{\"kind\":\"block\",\"resolver\":\"rich-block-by-id-or-index\",\"required\":true},\"inputContract\":{\"required\":[],\"properties\":[\"blockId\",\"replacementBlockId\"],\"semanticTerms\":[\"blockId\",\"replacementBlockId\"]},\"effects\":[\"remove-by-key\"],\"affectedPaths\":[\"document.nodes[]\"],\"validators\":[{\"validatorId\":\"block-exists\",\"level\":\"error\",\"code\":\"PRC005\",\"description\":\"Target block must exist before patching, reordering or removing it.\"},{\"validatorId\":\"destructive-removal-confirmed\",\"level\":\"error\",\"code\":\"PRC007\",\"description\":\"Block and link removal are destructive and require confirmation.\"},{\"validatorId\":\"document-not-empty-when-required\",\"level\":\"warning\",\"code\":\"PRC008\",\"description\":\"Removal should not leave an empty document unless the user explicitly requested an empty rich content document.\"},{\"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\",\"confirmation-collected\"],\"submissionImpact\":\"config-only\",\"presentationAffordances\":[],\"positiveExamples\":[{\"id\":\"remove-obsolete-block\",\"request\":\"Remove the obsolete block.\",\"operationId\":\"block.remove\",\"target\":\"obsolete\",\"params\":{\"blockId\":\"obsolete\"},\"isPositive\":true}],\"negativeExamples\":[]}",
|
|
7101
|
+
"sourcePointer": "projects/praxis-rich-content/src/lib/ai/praxis-rich-content-authoring-manifest.ts",
|
|
7102
|
+
"contentHash": "ab697cf235d218c089a0d2a1e8772f1fed9b2af90b925dfaa96132433f98432f",
|
|
7103
|
+
"sourceKind": "component_definition",
|
|
7104
|
+
"sourceId": "praxis-rich-content",
|
|
7105
|
+
"corpusVersion": "1.0.0"
|
|
7106
|
+
},
|
|
7107
|
+
{
|
|
7108
|
+
"chunkIndex": 5,
|
|
7109
|
+
"chunkKind": "authoring_manifest",
|
|
7110
|
+
"content": "{\"operationId\":\"block.order.set\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-rich-content\",\"ownerPackage\":\"@praxisui/rich-content\",\"configSchemaId\":\"RichContentDocument\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Reorder rich content blocks Effects: reorder-by-key. Move summary before details.\",\"scope\":\"templating\",\"target\":{\"kind\":\"block\",\"resolver\":\"rich-block-by-id-or-index\",\"required\":true},\"inputContract\":{\"required\":[\"blockId\"],\"properties\":[\"blockId\",\"beforeBlockId\",\"afterBlockId\"],\"semanticTerms\":[\"blockId\",\"beforeBlockId\",\"afterBlockId\"]},\"effects\":[\"reorder-by-key\"],\"affectedPaths\":[\"document.nodes[]\"],\"validators\":[{\"validatorId\":\"block-exists\",\"level\":\"error\",\"code\":\"PRC005\",\"description\":\"Target block must exist before patching, reordering or removing it.\"},{\"validatorId\":\"block-order-deterministic\",\"level\":\"error\",\"code\":\"PRC006\",\"description\":\"Block ordering must use stable ids or explicit before/after placement and not rely on transient generated 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\":\"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\":\"move-summary-before-details\",\"request\":\"Move summary before details.\",\"operationId\":\"block.order.set\",\"target\":\"summary\",\"params\":{\"blockId\":\"summary\",\"beforeBlockId\":\"details\"},\"isPositive\":true}],\"negativeExamples\":[]}",
|
|
7111
|
+
"sourcePointer": "projects/praxis-rich-content/src/lib/ai/praxis-rich-content-authoring-manifest.ts",
|
|
7112
|
+
"contentHash": "368269ce1eceb9709670c63082555c6e9effdb1cbdcb91f6c37ff3b4c55e1e81",
|
|
7113
|
+
"sourceKind": "component_definition",
|
|
7114
|
+
"sourceId": "praxis-rich-content",
|
|
7115
|
+
"corpusVersion": "1.0.0"
|
|
7116
|
+
},
|
|
7117
|
+
{
|
|
7118
|
+
"chunkIndex": 6,
|
|
7119
|
+
"chunkKind": "authoring_manifest",
|
|
7120
|
+
"content": "{\"operationId\":\"text.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 text Effects: merge-by-key. Change the hero title to Customer overview.\",\"scope\":\"templating\",\"target\":{\"kind\":\"text\",\"resolver\":\"rich-text-node-by-id-or-path\",\"required\":true},\"inputContract\":{\"required\":[],\"properties\":[\"text\",\"textExpr\",\"label\",\"labelExpr\",\"title\",\"subtitle\",\"relationLabel\",\"message\",\"summary\",\"description\",\"ctaLabel\",\"emptyText\",\"errorText\"],\"semanticTerms\":[\"text\",\"textExpr\",\"label\",\"labelExpr\",\"title\",\"subtitle\",\"relationLabel\",\"message\",\"summary\",\"description\",\"ctaLabel\",\"emptyText\",\"errorText\"]},\"effects\":[\"merge-by-key\"],\"affectedPaths\":[\"document.nodes[].text\",\"document.nodes[].textExpr\",\"document.nodes[].label\",\"document.nodes[].labelExpr\",\"document.nodes[].title\",\"document.nodes[].subtitle\",\"document.nodes[].relationLabel\",\"document.nodes[].message\",\"document.nodes[].summary\",\"document.nodes[].description\",\"document.nodes[].ctaLabel\",\"document.nodes[].emptyText\",\"document.nodes[].errorText\"],\"validators\":[{\"validatorId\":\"block-exists\",\"level\":\"error\",\"code\":\"PRC005\",\"description\":\"Target block must exist before patching, reordering or removing it.\"},{\"validatorId\":\"text-target-supports-field\",\"level\":\"error\",\"code\":\"PRC009\",\"description\":\"Text updates may only target fields supported by the selected node type.\"},{\"validatorId\":\"expression-path-safe\",\"level\":\"warning\",\"code\":\"PRC010\",\"description\":\"Expression paths must remain simple context paths or Json Logic expressions, not 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\":[{\"id\":\"update-title-text\",\"request\":\"Change the hero title to Customer overview.\",\"operationId\":\"text.update\",\"target\":\"hero-title\",\"params\":{\"text\":\"Customer overview\"},\"isPositive\":true}],\"negativeExamples\":[]}",
|
|
7121
|
+
"sourcePointer": "projects/praxis-rich-content/src/lib/ai/praxis-rich-content-authoring-manifest.ts",
|
|
7122
|
+
"contentHash": "d3cbfeea0ec49dfb9876931e1e3de36c305f69c408c8f65e96d869acc82143f8",
|
|
7123
|
+
"sourceKind": "component_definition",
|
|
7124
|
+
"sourceId": "praxis-rich-content",
|
|
7125
|
+
"corpusVersion": "1.0.0"
|
|
7126
|
+
},
|
|
7127
|
+
{
|
|
7128
|
+
"chunkIndex": 7,
|
|
7129
|
+
"chunkKind": "authoring_manifest",
|
|
7130
|
+
"content": "{\"operationId\":\"link.add\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-rich-content\",\"ownerPackage\":\"@praxisui/rich-content\",\"configSchemaId\":\"RichContentDocument\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Add link block Effects: append-unique. Add a link to the documentation. Add a link to javascript:alert(1).\",\"scope\":\"templating\",\"target\":{\"kind\":\"link\",\"resolver\":\"document-nodes-array\",\"required\":false},\"inputContract\":{\"required\":[\"label\",\"href\"],\"properties\":[\"id\",\"label\",\"labelExpr\",\"href\",\"target\",\"rel\"],\"semanticTerms\":[\"id\",\"label\",\"labelExpr\",\"href\",\"target\",\"rel\",\"_self\",\"_blank\"]},\"effects\":[\"append-unique\"],\"affectedPaths\":[\"document.nodes[]\",\"document.nodes[].href\",\"document.nodes[].target\",\"document.nodes[].rel\"],\"validators\":[{\"validatorId\":\"link-url-safe\",\"level\":\"error\",\"code\":\"PRC011\",\"description\":\"Link href values must reject javascript:, vbscript:, file: and unsafe data URLs.\"},{\"validatorId\":\"link-policy-explicit\",\"level\":\"error\",\"code\":\"PRC012\",\"description\":\"Links must declare safe target/rel behavior; _blank links default to noopener noreferrer.\"},{\"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\":\"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-docs-link\",\"request\":\"Add a link to the documentation.\",\"operationId\":\"link.add\",\"params\":{\"id\":\"docs-link\",\"label\":\"Documentation\",\"href\":\"/docs\",\"target\":\"_self\"},\"isPositive\":true}],\"negativeExamples\":[{\"id\":\"reject-script-link\",\"request\":\"Add a link to javascript:alert(1).\",\"operationId\":\"link.add\",\"params\":{\"label\":\"Bad link\",\"href\":\"javascript:alert(1)\"},\"isPositive\":false}]}",
|
|
7131
|
+
"sourcePointer": "projects/praxis-rich-content/src/lib/ai/praxis-rich-content-authoring-manifest.ts",
|
|
7132
|
+
"contentHash": "df28a9fdeb41f8aeadcac0b5ff49bb17010f8e2bf81d8e55b52805a521dd11c6",
|
|
7133
|
+
"sourceKind": "component_definition",
|
|
7134
|
+
"sourceId": "praxis-rich-content",
|
|
7135
|
+
"corpusVersion": "1.0.0"
|
|
7136
|
+
},
|
|
7137
|
+
{
|
|
7138
|
+
"chunkIndex": 8,
|
|
7139
|
+
"chunkKind": "authoring_manifest",
|
|
7140
|
+
"content": "{\"operationId\":\"link.remove\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-rich-content\",\"ownerPackage\":\"@praxisui/rich-content\",\"configSchemaId\":\"RichContentDocument\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Remove link from rich content Effects: compile-domain-patch. Remove the documentation link but keep its label as text.\",\"scope\":\"templating\",\"target\":{\"kind\":\"link\",\"resolver\":\"rich-link-node-by-id-or-path\",\"required\":true},\"inputContract\":{\"required\":[],\"properties\":[\"linkId\",\"preserveLabelAsText\"],\"semanticTerms\":[\"linkId\",\"preserveLabelAsText\"]},\"effects\":[\"compile-domain-patch\"],\"affectedPaths\":[\"document.nodes[]\"],\"validators\":[{\"validatorId\":\"link-target-exists\",\"level\":\"error\",\"code\":\"PRC013\",\"description\":\"Link removal must resolve an existing link node by stable id or path.\"},{\"validatorId\":\"destructive-removal-confirmed\",\"level\":\"error\",\"code\":\"PRC007\",\"description\":\"Block and link removal are destructive and require confirmation.\"},{\"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-link-exists\",\"confirmation-collected\"],\"submissionImpact\":\"config-only\",\"presentationAffordances\":[],\"positiveExamples\":[{\"id\":\"remove-docs-link\",\"request\":\"Remove the documentation link but keep its label as text.\",\"operationId\":\"link.remove\",\"target\":\"docs-link\",\"params\":{\"linkId\":\"docs-link\",\"preserveLabelAsText\":true},\"isPositive\":true}],\"negativeExamples\":[]}",
|
|
7141
|
+
"sourcePointer": "projects/praxis-rich-content/src/lib/ai/praxis-rich-content-authoring-manifest.ts",
|
|
7142
|
+
"contentHash": "e41f2726fd8e39433f5cb7949ea48c671fac622fbc91cd275050aa3310dc77bb",
|
|
7143
|
+
"sourceKind": "component_definition",
|
|
7144
|
+
"sourceId": "praxis-rich-content",
|
|
7145
|
+
"corpusVersion": "1.0.0"
|
|
7146
|
+
},
|
|
7147
|
+
{
|
|
7148
|
+
"chunkIndex": 9,
|
|
7149
|
+
"chunkKind": "authoring_manifest",
|
|
7150
|
+
"content": "{\"operationId\":\"preset.apply\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-rich-content\",\"ownerPackage\":\"@praxisui/rich-content\",\"configSchemaId\":\"RichContentDocument\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Apply rich block preset Effects: compile-domain-patch. Apply the profile summary rich-block preset.\",\"scope\":\"templating\",\"target\":{\"kind\":\"preset\",\"resolver\":\"rich-block-preset-ref\",\"required\":false},\"inputContract\":{\"required\":[\"ref\"],\"properties\":[\"ref\",\"inputs\",\"replaceBlockId\"],\"semanticTerms\":[\"ref\",\"inputs\",\"replaceBlockId\"]},\"effects\":[\"compile-domain-patch\"],\"affectedPaths\":[\"document.nodes[]\",\"document.nodes[].ref\",\"document.nodes[].inputs\"],\"validators\":[{\"validatorId\":\"preset-ref-valid\",\"level\":\"error\",\"code\":\"PRC019\",\"description\":\"Preset refs must use kind rich-block plus namespace, presetId and optional version.\"},{\"validatorId\":\"preset-exists-or-host-mediated\",\"level\":\"error\",\"code\":\"PRC020\",\"description\":\"Preset application must resolve through PRAXIS_RICH_BLOCK_PRESETS or a host-mediated resolver.\"},{\"validatorId\":\"host-capabilities-serializable\",\"level\":\"error\",\"code\":\"PRC021\",\"description\":\"Public contracts must not serialize host capability functions; only refs and inputs are persisted.\"},{\"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\"],\"submissionImpact\":\"config-only\",\"presentationAffordances\":[],\"positiveExamples\":[{\"id\":\"apply-profile-preset\",\"request\":\"Apply the profile summary rich-block preset.\",\"operationId\":\"preset.apply\",\"params\":{\"ref\":{\"kind\":\"rich-block\",\"namespace\":\"praxis.rich-content\",\"presetId\":\"profile-summary\",\"version\":\"1.0.0\"}},\"isPositive\":true}],\"negativeExamples\":[]}",
|
|
7151
|
+
"sourcePointer": "projects/praxis-rich-content/src/lib/ai/praxis-rich-content-authoring-manifest.ts",
|
|
7152
|
+
"contentHash": "771968330d66d06a2b88ca78a2494f94139263d54081d13f5b22728523a90855",
|
|
7153
|
+
"sourceKind": "component_definition",
|
|
7154
|
+
"sourceId": "praxis-rich-content",
|
|
7155
|
+
"corpusVersion": "1.0.0"
|
|
7156
|
+
},
|
|
7157
|
+
{
|
|
7158
|
+
"chunkIndex": 10,
|
|
7159
|
+
"chunkKind": "authoring_manifest",
|
|
7160
|
+
"content": "{\"operationId\":\"metadata.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 block metadata Effects: merge-by-key. Show the status block only when row.active is true.\",\"scope\":\"templating\",\"target\":{\"kind\":\"metadata\",\"resolver\":\"rich-block-by-id-or-index\",\"required\":true},\"inputContract\":{\"required\":[],\"properties\":[\"blockId\",\"testId\",\"className\",\"visibleWhen\",\"disabledWhen\",\"loadWhen\",\"classWhen\",\"styleWhen\",\"style\",\"requiresCapabilities\",\"capabilityMode\"],\"semanticTerms\":[\"blockId\",\"testId\",\"className\",\"visibleWhen\",\"disabledWhen\",\"loadWhen\",\"classWhen\",\"styleWhen\",\"style\",\"requiresCapabilities\",\"capabilityMode\",\"all\",\"any\"]},\"effects\":[\"merge-by-key\"],\"affectedPaths\":[\"document.nodes[].testId\",\"document.nodes[].className\",\"document.nodes[].visibleWhen\",\"document.nodes[].disabledWhen\",\"document.nodes[].loadWhen\",\"document.nodes[].classWhen\",\"document.nodes[].styleWhen\",\"document.nodes[].style\",\"document.nodes[].requiresCapabilities\",\"document.nodes[].capabilityMode\"],\"validators\":[{\"validatorId\":\"block-exists\",\"level\":\"error\",\"code\":\"PRC005\",\"description\":\"Target block must exist before patching, reordering or removing it.\"},{\"validatorId\":\"class-name-safe\",\"level\":\"error\",\"code\":\"PRC025\",\"description\":\"Node className values must contain safe CSS class tokens.\"},{\"validatorId\":\"visible-when-json-logic\",\"level\":\"error\",\"code\":\"PRC026\",\"description\":\"visibleWhen must be a Json Logic expression object and not a string DSL.\"},{\"validatorId\":\"unsafe-style-rejected\",\"level\":\"error\",\"code\":\"PRC015\",\"description\":\"Inline style values must reject script, import, binding and data URL expressions.\"},{\"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\":\"show-only-active-row\",\"request\":\"Show the status block only when row.active is true.\",\"operationId\":\"metadata.update\",\"target\":\"status\",\"params\":{\"blockId\":\"status\",\"visibleWhen\":{\"===\":[{\"var\":\"row.active\"},true]}},\"isPositive\":true}],\"negativeExamples\":[]}",
|
|
7161
|
+
"sourcePointer": "projects/praxis-rich-content/src/lib/ai/praxis-rich-content-authoring-manifest.ts",
|
|
7162
|
+
"contentHash": "3689171519a5881dda7c507c11304d25730b1d39d3fd8167b3ee7a741e5d15ec",
|
|
7163
|
+
"sourceKind": "component_definition",
|
|
7164
|
+
"sourceId": "praxis-rich-content",
|
|
7165
|
+
"corpusVersion": "1.0.0"
|
|
7166
|
+
},
|
|
7167
|
+
{
|
|
7168
|
+
"chunkIndex": 11,
|
|
7169
|
+
"chunkKind": "authoring_manifest",
|
|
7170
|
+
"content": "{\"operationId\":\"mediaBlock.update\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-rich-content\",\"ownerPackage\":\"@praxisui/rich-content\",\"configSchemaId\":\"RichContentDocument\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Update media block fields Effects: compile-domain-patch. Update the profile media block title and avatar name.\",\"scope\":\"templating\",\"target\":{\"kind\":\"media\",\"resolver\":\"rich-media-node-by-id-or-path\",\"required\":true},\"inputContract\":{\"required\":[],\"properties\":[\"blockId\",\"avatarName\",\"avatarImageSrc\",\"title\",\"titleExpr\",\"subtitle\",\"subtitleExpr\"],\"semanticTerms\":[\"blockId\",\"avatarName\",\"avatarImageSrc\",\"title\",\"titleExpr\",\"subtitle\",\"subtitleExpr\"]},\"effects\":[\"compile-domain-patch\"],\"affectedPaths\":[\"document.nodes[].avatar\",\"document.nodes[].title\",\"document.nodes[].subtitle\"],\"validators\":[{\"validatorId\":\"block-exists\",\"level\":\"error\",\"code\":\"PRC005\",\"description\":\"Target block must exist before patching, reordering or removing it.\"},{\"validatorId\":\"media-block-target-valid\",\"level\":\"error\",\"code\":\"PRC027\",\"description\":\"Media operations must target a mediaBlock node and preserve structured avatar/text child nodes.\"},{\"validatorId\":\"unsafe-url-rejected\",\"level\":\"error\",\"code\":\"PRC014\",\"description\":\"Image, avatar and link URL fields must reject unsafe protocols and null bytes.\"},{\"validatorId\":\"expression-path-safe\",\"level\":\"warning\",\"code\":\"PRC010\",\"description\":\"Expression paths must remain simple context paths or Json Logic expressions, not 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\":[{\"id\":\"update-media-title\",\"request\":\"Update the profile media block title and avatar name.\",\"operationId\":\"mediaBlock.update\",\"target\":\"profile-media\",\"params\":{\"blockId\":\"profile-media\",\"avatarName\":\"Ana Silva\",\"title\":\"Profile summary\"},\"isPositive\":true}],\"negativeExamples\":[]}",
|
|
7171
|
+
"sourcePointer": "projects/praxis-rich-content/src/lib/ai/praxis-rich-content-authoring-manifest.ts",
|
|
7172
|
+
"contentHash": "81684fb5f13f87de0d3fb48e3831235d73567516080cfd122c90ec08fc2f19f3",
|
|
7173
|
+
"sourceKind": "component_definition",
|
|
7174
|
+
"sourceId": "praxis-rich-content",
|
|
7175
|
+
"corpusVersion": "1.0.0"
|
|
7176
|
+
},
|
|
7177
|
+
{
|
|
7178
|
+
"chunkIndex": 12,
|
|
7179
|
+
"chunkKind": "authoring_manifest",
|
|
7180
|
+
"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\",\"connectorVariant\",\"connectorColor\",\"markerVariant\",\"markerColor\",\"markerStyle\",\"emphasis\",\"density\",\"textAppearance\",\"title\",\"titleExpr\",\"emptyText\"],\"semanticTerms\":[\"timelineBlockId\",\"orientation\",\"order\",\"position\",\"connectorVariant\",\"connectorColor\",\"markerVariant\",\"markerColor\",\"markerStyle\",\"emphasis\",\"density\",\"textAppearance\",\"title\",\"titleExpr\",\"emptyText\",\"vertical\",\"horizontal\",\"normal\",\"reverse\",\"left\",\"right\",\"alternate\",\"alternate-reverse\",\"solid\",\"dashed\",\"none\",\"primary\",\"secondary\",\"tertiary\",\"success\",\"warning\",\"error\",\"info\",\"neutral\",\"dot\",\"icon\",\"number\",\"filled\",\"outlined\",\"subtle\",\"standard\",\"strong\",\"hero\",\"compact\",\"comfortable\",\"spacious\",\"default\",\"prominent\",\"eyebrow\",\"label\"]},\"effects\":[\"compile-domain-patch\"],\"affectedPaths\":[\"document.nodes[].orientation\",\"document.nodes[].order\",\"document.nodes[].position\",\"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[].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\":[]}",
|
|
7181
|
+
"sourcePointer": "projects/praxis-rich-content/src/lib/ai/praxis-rich-content-authoring-manifest.ts",
|
|
7182
|
+
"contentHash": "286254eb33cadf3d7a23f77d502309a6866758ffaeaf14b10e97f8aa5a35cd08",
|
|
7183
|
+
"sourceKind": "component_definition",
|
|
7184
|
+
"sourceId": "praxis-rich-content",
|
|
7185
|
+
"corpusVersion": "1.0.0"
|
|
7186
|
+
},
|
|
7187
|
+
{
|
|
7188
|
+
"chunkIndex": 13,
|
|
7189
|
+
"chunkKind": "authoring_manifest",
|
|
7190
|
+
"content": "{\"operationId\":\"timeline.item.add\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-rich-content\",\"ownerPackage\":\"@praxisui/rich-content\",\"configSchemaId\":\"RichContentDocument\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Add timeline item Effects: compile-domain-patch. Add a Created item to the activity timeline.\",\"scope\":\"templating\",\"target\":{\"kind\":\"timelineItem\",\"resolver\":\"rich-timeline-node-by-id-or-path\",\"required\":true},\"inputContract\":{\"required\":[\"timelineBlockId\",\"item\"],\"properties\":[\"timelineBlockId\",\"item\",\"afterItemId\",\"beforeItemId\"],\"semanticTerms\":[\"timelineBlockId\",\"item\",\"afterItemId\",\"beforeItemId\"]},\"effects\":[\"compile-domain-patch\"],\"affectedPaths\":[\"document.nodes[].items[]\"],\"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-item-valid\",\"level\":\"error\",\"code\":\"PRC029\",\"description\":\"Timeline items must be objects matching RichTimelineItem fields.\"},{\"validatorId\":\"timeline-item-id-unique\",\"level\":\"warning\",\"code\":\"PRC030\",\"description\":\"Timeline item ids should be unique inside a timeline node when present.\"},{\"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\":\"add-created-timeline-item\",\"request\":\"Add a Created item to the activity timeline.\",\"operationId\":\"timeline.item.add\",\"target\":\"activity\",\"params\":{\"timelineBlockId\":\"activity\",\"item\":{\"id\":\"created\",\"title\":\"Created\",\"badge\":\"Done\"}},\"isPositive\":true}],\"negativeExamples\":[]}",
|
|
7191
|
+
"sourcePointer": "projects/praxis-rich-content/src/lib/ai/praxis-rich-content-authoring-manifest.ts",
|
|
7192
|
+
"contentHash": "76e1969ea06f4e3da936da3248b87a8f369a032de7ba55a73a1aa56357ec70be",
|
|
7193
|
+
"sourceKind": "component_definition",
|
|
7194
|
+
"sourceId": "praxis-rich-content",
|
|
7195
|
+
"corpusVersion": "1.0.0"
|
|
7196
|
+
},
|
|
7197
|
+
{
|
|
7198
|
+
"chunkIndex": 14,
|
|
7199
|
+
"chunkKind": "authoring_manifest",
|
|
7200
|
+
"content": "{\"operationId\":\"timeline.item.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 item Effects: compile-domain-patch. Set a custom script field on a timeline item.\",\"scope\":\"templating\",\"target\":{\"kind\":\"timelineItem\",\"resolver\":\"rich-timeline-item-by-block-id-and-item-id\",\"required\":true},\"inputContract\":{\"required\":[\"timelineBlockId\"],\"properties\":[\"timelineBlockId\",\"itemId\",\"itemIndex\",\"field\",\"value\",\"patch\"],\"semanticTerms\":[\"timelineBlockId\",\"itemId\",\"itemIndex\",\"field\",\"value\",\"patch\",\"title\",\"titleExpr\",\"subtitle\",\"subtitleExpr\",\"meta\",\"metaExpr\",\"opposite\",\"oppositeExpr\",\"icon\",\"iconExpr\",\"badge\",\"badgeExpr\",\"markerColor\",\"markerStyle\",\"connectorColor\",\"connectorVariant\",\"patch.id\",\"patch.title\",\"patch.titleExpr\",\"patch.subtitle\",\"patch.subtitleExpr\",\"patch.meta\",\"patch.metaExpr\",\"patch.opposite\",\"patch.oppositeExpr\",\"patch.icon\",\"patch.iconExpr\",\"patch.badge\",\"patch.badgeExpr\",\"patch.markerColor\",\"patch.markerStyle\",\"patch.connectorColor\",\"patch.connectorVariant\",\"primary\",\"secondary\",\"tertiary\",\"success\",\"warning\",\"error\",\"info\",\"neutral\",\"filled\",\"outlined\",\"solid\",\"dashed\",\"none\"]},\"effects\":[\"compile-domain-patch\"],\"affectedPaths\":[\"document.nodes[].items[].title\",\"document.nodes[].items[].titleExpr\",\"document.nodes[].items[].subtitle\",\"document.nodes[].items[].subtitleExpr\",\"document.nodes[].items[].meta\",\"document.nodes[].items[].metaExpr\",\"document.nodes[].items[].opposite\",\"document.nodes[].items[].oppositeExpr\",\"document.nodes[].items[].icon\",\"document.nodes[].items[].iconExpr\",\"document.nodes[].items[].badge\",\"document.nodes[].items[].badgeExpr\",\"document.nodes[].items[].markerColor\",\"document.nodes[].items[].markerStyle\",\"document.nodes[].items[].connectorColor\",\"document.nodes[].items[].connectorVariant\"],\"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-item-exists\",\"level\":\"error\",\"code\":\"PRC031\",\"description\":\"Timeline item updates and removals must resolve an existing item by stable id or explicit fallback index.\"},{\"validatorId\":\"timeline-item-field-supported\",\"level\":\"error\",\"code\":\"PRC032\",\"description\":\"Timeline item updates may only target supported RichTimelineItem fields.\"},{\"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\",\"target-timeline-item-exists\"],\"submissionImpact\":\"config-only\",\"presentationAffordances\":[],\"positiveExamples\":[],\"negativeExamples\":[{\"id\":\"reject-unknown-timeline-field\",\"request\":\"Set a custom script field on a timeline item.\",\"operationId\":\"timeline.item.update\",\"target\":\"activity.created\",\"params\":{\"timelineBlockId\":\"activity\",\"itemId\":\"created\",\"field\":\"script\",\"value\":\"alert(1)\"},\"isPositive\":false}]}",
|
|
7201
|
+
"sourcePointer": "projects/praxis-rich-content/src/lib/ai/praxis-rich-content-authoring-manifest.ts",
|
|
7202
|
+
"contentHash": "391c06c85b4c4256c00d40d6741c70be635d836de6a292e9cf2b99110f0937b1",
|
|
7203
|
+
"sourceKind": "component_definition",
|
|
7204
|
+
"sourceId": "praxis-rich-content",
|
|
7205
|
+
"corpusVersion": "1.0.0"
|
|
7206
|
+
},
|
|
7207
|
+
{
|
|
7208
|
+
"chunkIndex": 15,
|
|
7209
|
+
"chunkKind": "authoring_manifest",
|
|
7210
|
+
"content": "{\"operationId\":\"timeline.item.remove\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-rich-content\",\"ownerPackage\":\"@praxisui/rich-content\",\"configSchemaId\":\"RichContentDocument\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Remove timeline item Effects: compile-domain-patch.\",\"scope\":\"templating\",\"target\":{\"kind\":\"timelineItem\",\"resolver\":\"rich-timeline-item-by-block-id-and-item-id\",\"required\":true},\"inputContract\":{\"required\":[\"timelineBlockId\"],\"properties\":[\"timelineBlockId\",\"itemId\",\"itemIndex\"],\"semanticTerms\":[\"timelineBlockId\",\"itemId\",\"itemIndex\"]},\"effects\":[\"compile-domain-patch\"],\"affectedPaths\":[\"document.nodes[].items[]\"],\"validators\":[{\"validatorId\":\"timeline-target-valid\",\"level\":\"error\",\"code\":\"PRC028\",\"description\":\"Timeline item operations must target a timeline node with an items array.\"},{\"validatorId\":\"timeline-item-exists\",\"level\":\"error\",\"code\":\"PRC031\",\"description\":\"Timeline item updates and removals must resolve an existing item by stable id or explicit fallback index.\"},{\"validatorId\":\"destructive-removal-confirmed\",\"level\":\"error\",\"code\":\"PRC007\",\"description\":\"Block and link removal are destructive and require confirmation.\"},{\"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-timeline-item-exists\",\"confirmation-collected\"],\"submissionImpact\":\"config-only\",\"presentationAffordances\":[],\"positiveExamples\":[],\"negativeExamples\":[]}",
|
|
7211
|
+
"sourcePointer": "projects/praxis-rich-content/src/lib/ai/praxis-rich-content-authoring-manifest.ts",
|
|
7212
|
+
"contentHash": "04b4a48be6a957b13aa8f6b73211e5c57bd4e7f993449dea69e83ccdd427cff7",
|
|
7213
|
+
"sourceKind": "component_definition",
|
|
7214
|
+
"sourceId": "praxis-rich-content",
|
|
7215
|
+
"corpusVersion": "1.0.0"
|
|
7216
|
+
},
|
|
7217
|
+
{
|
|
7218
|
+
"chunkIndex": 16,
|
|
7219
|
+
"chunkKind": "authoring_manifest",
|
|
7220
|
+
"content": "{\"operationId\":\"sanitizationPolicy.set\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-rich-content\",\"ownerPackage\":\"@praxisui/rich-content\",\"configSchemaId\":\"RichContentDocument\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Set rich content sanitization policy Effects: compile-domain-patch. Allow arbitrary HTML in this rich content document.\",\"scope\":\"global\",\"target\":{\"kind\":\"sanitizationPolicy\",\"resolver\":\"rich-content-validation-policy\",\"required\":false},\"inputContract\":{\"required\":[],\"properties\":[\"allowHtml\",\"allowedUrlProtocols\",\"allowImageDataUrls\",\"maxNodeDepth\",\"maxNodeCount\"],\"semanticTerms\":[\"allowHtml\",\"allowedUrlProtocols\",\"allowImageDataUrls\",\"maxNodeDepth\",\"maxNodeCount\",\"false\"]},\"effects\":[\"compile-domain-patch\"],\"affectedPaths\":[\"document\"],\"validators\":[{\"validatorId\":\"sanitization-policy-explicit\",\"level\":\"error\",\"code\":\"PRC017\",\"description\":\"Security policy requests must keep HTML disabled and URL/style guardrails explicit.\"},{\"validatorId\":\"unsafe-html-rejected\",\"level\":\"error\",\"code\":\"PRC016\",\"description\":\"Rich-content authoring must remain structured document JSON and must not accept arbitrary HTML/script patches.\"},{\"validatorId\":\"unsafe-url-rejected\",\"level\":\"error\",\"code\":\"PRC014\",\"description\":\"Image, avatar and link URL fields must reject unsafe protocols and null bytes.\"},{\"validatorId\":\"security-change-confirmed\",\"level\":\"error\",\"code\":\"PRC018\",\"description\":\"Sanitization policy changes require explicit confirmation.\"},{\"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\",\"confirmation-collected\"],\"submissionImpact\":\"config-only\",\"presentationAffordances\":[],\"positiveExamples\":[],\"negativeExamples\":[{\"id\":\"reject-html-policy\",\"request\":\"Allow arbitrary HTML in this rich content document.\",\"operationId\":\"sanitizationPolicy.set\",\"params\":{\"allowHtml\":true},\"isPositive\":false}]}",
|
|
7221
|
+
"sourcePointer": "projects/praxis-rich-content/src/lib/ai/praxis-rich-content-authoring-manifest.ts",
|
|
7222
|
+
"contentHash": "592ec804ff1fa8fb073e0abf2c75f32908805f0487253fcd5173f601ffeebd96",
|
|
7223
|
+
"sourceKind": "component_definition",
|
|
7224
|
+
"sourceId": "praxis-rich-content",
|
|
7225
|
+
"corpusVersion": "1.0.0"
|
|
7226
|
+
},
|
|
7227
|
+
{
|
|
7228
|
+
"chunkIndex": 17,
|
|
7229
|
+
"chunkKind": "authoring_manifest",
|
|
7230
|
+
"content": "{\"operationId\":\"display.mode.set\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-rich-content\",\"ownerPackage\":\"@praxisui/rich-content\",\"configSchemaId\":\"RichContentDocument\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Set rich content display mode Effects: set-value, set-value. Render this rich content inline with root class status-line.\",\"scope\":\"global\",\"target\":{\"kind\":\"display\",\"resolver\":\"rich-content-layout-and-root-class\",\"required\":false},\"inputContract\":{\"required\":[],\"properties\":[\"layout\",\"rootClassName\"],\"semanticTerms\":[\"layout\",\"rootClassName\",\"block\",\"inline\"]},\"effects\":[\"set-value\",\"set-value\"],\"affectedPaths\":[\"layout\",\"rootClassName\"],\"validators\":[{\"validatorId\":\"layout-valid\",\"level\":\"error\",\"code\":\"PRC022\",\"description\":\"Layout must be block or inline.\"},{\"validatorId\":\"root-class-safe\",\"level\":\"warning\",\"code\":\"PRC023\",\"description\":\"rootClassName must contain safe CSS class tokens.\"},{\"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\":\"visual-only\",\"presentationAffordances\":[],\"positiveExamples\":[{\"id\":\"compact-inline-layout\",\"request\":\"Render this rich content inline with root class status-line.\",\"operationId\":\"display.mode.set\",\"params\":{\"layout\":\"inline\",\"rootClassName\":\"status-line\"},\"isPositive\":true}],\"negativeExamples\":[]}",
|
|
7231
|
+
"sourcePointer": "projects/praxis-rich-content/src/lib/ai/praxis-rich-content-authoring-manifest.ts",
|
|
7232
|
+
"contentHash": "9aedd64332e9d6ffb950069257bb89d258175784db99780b63c4e54f59c605a7",
|
|
7233
|
+
"sourceKind": "component_definition",
|
|
7234
|
+
"sourceId": "praxis-rich-content",
|
|
7235
|
+
"corpusVersion": "1.0.0"
|
|
7236
|
+
},
|
|
7237
|
+
{
|
|
7238
|
+
"chunkIndex": 18,
|
|
7239
|
+
"chunkKind": "authoring_manifest",
|
|
6569
7240
|
"content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-rich-content\",\"ownerPackage\":\"@praxisui/rich-content\",\"configSchemaId\":\"RichContentDocument\",\"chunkSection\":\"identity\"}",
|
|
6570
7241
|
"sourcePointer": "projects/praxis-rich-content/src/lib/ai/praxis-rich-content-authoring-manifest.ts",
|
|
6571
7242
|
"contentHash": "1a9d0b8a44eb732c0bd9a954e84d8068220e6661f22cf6d83f72a237c5a2f906",
|
|
@@ -6574,7 +7245,7 @@
|
|
|
6574
7245
|
"corpusVersion": "1.0.0"
|
|
6575
7246
|
},
|
|
6576
7247
|
{
|
|
6577
|
-
"chunkIndex":
|
|
7248
|
+
"chunkIndex": 19,
|
|
6578
7249
|
"chunkKind": "authoring_manifest",
|
|
6579
7250
|
"content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-rich-content\",\"ownerPackage\":\"@praxisui/rich-content\",\"configSchemaId\":\"RichContentDocument\",\"chunkSection\":\"runtimeInputs\",\"runtimeInputs\":[{\"name\":\"document\",\"type\":\"RichContentDocument | null\",\"description\":\"Canonical praxis.rich-content document rendered by the component.\"},{\"name\":\"nodes\",\"type\":\"RichBlockNode[] | null\",\"description\":\"Direct node list used only when the host controls the document envelope.\"},{\"name\":\"context\",\"type\":\"JsonLogicDataRecord | null\",\"description\":\"External context used by expression paths and Json Logic rules.\"},{\"name\":\"hostCapabilities\",\"type\":\"RichBlockHostCapabilities | null\",\"description\":\"Host-mediated preset, action, action confirmation, data and embed capabilities; functions are not serialized in public contracts.\"},{\"name\":\"layout\",\"type\":\"'block' | 'inline'\",\"allowedValues\":[\"block\",\"inline\"],\"description\":\"Renderer layout mode.\"},{\"name\":\"rootClassName\",\"type\":\"string\",\"description\":\"CSS class applied to the renderer root.\"}]}",
|
|
6580
7251
|
"sourcePointer": "projects/praxis-rich-content/src/lib/ai/praxis-rich-content-authoring-manifest.ts",
|
|
@@ -6584,7 +7255,7 @@
|
|
|
6584
7255
|
"corpusVersion": "1.0.0"
|
|
6585
7256
|
},
|
|
6586
7257
|
{
|
|
6587
|
-
"chunkIndex":
|
|
7258
|
+
"chunkIndex": 20,
|
|
6588
7259
|
"chunkKind": "authoring_manifest",
|
|
6589
7260
|
"content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-rich-content\",\"ownerPackage\":\"@praxisui/rich-content\",\"configSchemaId\":\"RichContentDocument\",\"chunkSection\":\"editableTargets\",\"editableTargets\":[{\"kind\":\"document\",\"resolver\":\"rich-content-document-root\",\"description\":\"The canonical RichContentDocument input envelope.\"},{\"kind\":\"block\",\"resolver\":\"rich-block-by-id-or-index\",\"description\":\"A top-level document.nodes[] block with stable id preferred over index.\"},{\"kind\":\"text\",\"resolver\":\"rich-text-node-by-id-or-path\",\"description\":\"Text-bearing nodes, including text, badge, metric, progress, card and timeline labels.\"},{\"kind\":\"link\",\"resolver\":\"rich-link-node-by-id-or-path\",\"description\":\"Canonical link node with label, href, target and rel.\"},{\"kind\":\"media\",\"resolver\":\"rich-media-node-by-id-or-path\",\"description\":\"Image, avatar image and mediaBlock child nodes.\"},{\"kind\":\"timeline\",\"resolver\":\"rich-timeline-node-by-id-or-path\",\"description\":\"Timeline nodes with visual placement, connector, marker and semantic appearance settings.\"},{\"kind\":\"timelineItem\",\"resolver\":\"rich-timeline-item-by-block-id-and-item-id\",\"description\":\"Timeline items nested inside timeline nodes; stable item id is preferred over index.\"},{\"kind\":\"metadata\",\"resolver\":\"rich-block-common-metadata\",\"description\":\"Common node metadata such as testId, className, visibleWhen and safe style.\"},{\"kind\":\"preset\",\"resolver\":\"rich-block-preset-ref\",\"description\":\"Preset nodes resolved through PRAXIS_RICH_BLOCK_PRESETS or hostCapabilities.resolvePreset.\"},{\"kind\":\"sanitizationPolicy\",\"resolver\":\"rich-content-validation-policy\",\"description\":\"Document validation policy enforced by validateRichContentDocument.\"},{\"kind\":\"display\",\"resolver\":\"rich-content-layout-and-root-class\",\"description\":\"Layout and rootClassName runtime inputs.\"}]}",
|
|
6590
7261
|
"sourcePointer": "projects/praxis-rich-content/src/lib/ai/praxis-rich-content-authoring-manifest.ts",
|
|
@@ -6594,7 +7265,7 @@
|
|
|
6594
7265
|
"corpusVersion": "1.0.0"
|
|
6595
7266
|
},
|
|
6596
7267
|
{
|
|
6597
|
-
"chunkIndex":
|
|
7268
|
+
"chunkIndex": 21,
|
|
6598
7269
|
"chunkKind": "authoring_manifest",
|
|
6599
7270
|
"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\",\"callout\",\"ctaGroup\",\"keyValueList\",\"emptyState\",\"propertySheet\",\"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\",\"callout\",\"ctaGroup\",\"keyValueList\",\"emptyState\",\"propertySheet\",\"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\"]}]}",
|
|
6600
7271
|
"sourcePointer": "projects/praxis-rich-content/src/lib/ai/praxis-rich-content-authoring-manifest.ts",
|
|
@@ -6604,17 +7275,17 @@
|
|
|
6604
7275
|
"corpusVersion": "1.0.0"
|
|
6605
7276
|
},
|
|
6606
7277
|
{
|
|
6607
|
-
"chunkIndex":
|
|
7278
|
+
"chunkIndex": 22,
|
|
6608
7279
|
"chunkKind": "authoring_manifest",
|
|
6609
|
-
"content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-rich-content\",\"ownerPackage\":\"@praxisui/rich-content\",\"configSchemaId\":\"RichContentDocument\",\"chunkSection\":\"operations\",\"operations\":[{\"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\":{\"type\":\"object\"},\"disabledWhen\":{\"type\":\"object\"},\"loadWhen\":{\"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\"]},\"tone\":{\"enum\":[\"neutral\",\"info\",\"success\",\"warning\",\"danger\"]},\"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\",\"info\",\"neutral\"]},\"markerVariant\":{\"enum\":[\"dot\",\"icon\",\"number\"]},\"markerColor\":{},\"markerStyle\":{\"enum\":[\"filled\",\"outlined\"]},\"emphasis\":{\"enum\":[\"subtle\",\"standard\",\"strong\",\"hero\"]},\"textAppearance\":{\"enum\":[\"default\",\"prominent\",\"eyebrow\",\"label\"]},\"icon\":{\"type\":\"string\"},\"formId\":{\"type\":\"string\"},\"columns\":{\"enum\":[1,2]},\"layout\":{\"enum\":[\"stacked\",\"inline\",\"split\",\"grid\"]},\"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\"]},\"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\"}}},\"headerAction\":{\"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\"}},\"items\":{\"type\":\"array\",\"items\":{\"type\":\"object\"}},\"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\"}],\"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[].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[].interaction\",\"document.nodes[].accessibility\",\"document.nodes[].fields\",\"document.nodes[].items[]\",\"document.nodes[].header\",\"document.nodes[].body\",\"document.nodes[].footer\",\"document.nodes[].aside\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\",\"target-block-exists\"]}]}",
|
|
7280
|
+
"content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-rich-content\",\"ownerPackage\":\"@praxisui/rich-content\",\"configSchemaId\":\"RichContentDocument\",\"chunkSection\":\"operations\",\"operations\":[{\"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\":{\"type\":\"object\"},\"disabledWhen\":{\"type\":\"object\"},\"loadWhen\":{\"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\"]},\"tone\":{\"enum\":[\"neutral\",\"info\",\"success\",\"warning\",\"danger\"]},\"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\",\"info\",\"neutral\"]},\"markerVariant\":{\"enum\":[\"dot\",\"icon\",\"number\"]},\"markerColor\":{\"enum\":[\"primary\",\"secondary\",\"tertiary\",\"success\",\"warning\",\"error\",\"info\",\"neutral\"]},\"markerStyle\":{\"enum\":[\"filled\",\"outlined\"]},\"emphasis\":{\"enum\":[\"subtle\",\"standard\",\"strong\",\"hero\"]},\"textAppearance\":{\"enum\":[\"default\",\"prominent\",\"eyebrow\",\"label\"]},\"icon\":{\"type\":\"string\"},\"formId\":{\"type\":\"string\"},\"columns\":{\"enum\":[1,2]},\"layout\":{\"enum\":[\"stacked\",\"inline\",\"split\",\"grid\"]},\"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\"]},\"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\"}}},\"headerAction\":{\"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\"}},\"items\":{\"type\":\"array\",\"items\":{\"type\":\"object\"}},\"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\"}],\"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[].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[].interaction\",\"document.nodes[].accessibility\",\"document.nodes[].fields\",\"document.nodes[].items[]\",\"document.nodes[].header\",\"document.nodes[].body\",\"document.nodes[].footer\",\"document.nodes[].aside\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\",\"target-block-exists\"]}]}",
|
|
6610
7281
|
"sourcePointer": "projects/praxis-rich-content/src/lib/ai/praxis-rich-content-authoring-manifest.ts",
|
|
6611
|
-
"contentHash": "
|
|
7282
|
+
"contentHash": "db1981239f8451e3fa37e658f979137c9197f6fa424c04690a2b898be7f625ff",
|
|
6612
7283
|
"sourceKind": "component_definition",
|
|
6613
7284
|
"sourceId": "praxis-rich-content",
|
|
6614
7285
|
"corpusVersion": "1.0.0"
|
|
6615
7286
|
},
|
|
6616
7287
|
{
|
|
6617
|
-
"chunkIndex":
|
|
7288
|
+
"chunkIndex": 23,
|
|
6618
7289
|
"chunkKind": "authoring_manifest",
|
|
6619
7290
|
"content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-rich-content\",\"ownerPackage\":\"@praxisui/rich-content\",\"configSchemaId\":\"RichContentDocument\",\"chunkSection\":\"operations\",\"operations\":[{\"operationId\":\"block.remove\",\"title\":\"Remove rich content block\",\"scope\":\"templating\",\"targetKind\":\"block\",\"target\":{\"kind\":\"block\",\"resolver\":\"rich-block-by-id-or-index\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"properties\":{\"blockId\":{\"type\":\"string\"},\"replacementBlockId\":{\"type\":\"string\"}}},\"effects\":[{\"kind\":\"remove-by-key\",\"path\":\"document.nodes[]\",\"key\":\"id\"}],\"destructive\":true,\"requiresConfirmation\":true,\"validators\":[\"block-exists\",\"destructive-removal-confirmed\",\"document-not-empty-when-required\",\"editor-runtime-round-trip\"],\"affectedPaths\":[\"document.nodes[]\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\",\"target-block-exists\",\"confirmation-collected\"]},{\"operationId\":\"block.order.set\",\"title\":\"Reorder rich content blocks\",\"scope\":\"templating\",\"targetKind\":\"block\",\"target\":{\"kind\":\"block\",\"resolver\":\"rich-block-by-id-or-index\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"blockId\"],\"properties\":{\"blockId\":{\"type\":\"string\"},\"beforeBlockId\":{\"type\":\"string\"},\"afterBlockId\":{\"type\":\"string\"}}},\"effects\":[{\"kind\":\"reorder-by-key\",\"path\":\"document.nodes[]\",\"key\":\"id\"}],\"destructive\":false,\"requiresConfirmation\":false,\"validators\":[\"block-exists\",\"block-order-deterministic\",\"document-shape-canonical\",\"editor-runtime-round-trip\"],\"affectedPaths\":[\"document.nodes[]\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\",\"target-block-exists\"]},{\"operationId\":\"text.update\",\"title\":\"Update rich content text\",\"scope\":\"templating\",\"targetKind\":\"text\",\"target\":{\"kind\":\"text\",\"resolver\":\"rich-text-node-by-id-or-path\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"text\":{\"type\":\"string\"},\"textExpr\":{\"type\":\"string\"},\"label\":{\"type\":\"string\"},\"labelExpr\":{\"type\":\"string\"},\"title\":{\"type\":\"string\"},\"subtitle\":{\"type\":\"string\"},\"relationLabel\":{\"type\":\"string\"},\"message\":{\"type\":\"string\"},\"summary\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"ctaLabel\":{\"type\":\"string\"},\"emptyText\":{\"type\":\"string\"},\"errorText\":{\"type\":\"string\"}}},\"effects\":[{\"kind\":\"merge-by-key\",\"path\":\"document.nodes[]\",\"key\":\"id\"}],\"destructive\":false,\"requiresConfirmation\":false,\"validators\":[\"block-exists\",\"text-target-supports-field\",\"expression-path-safe\",\"document-shape-canonical\",\"editor-runtime-round-trip\"],\"affectedPaths\":[\"document.nodes[].text\",\"document.nodes[].textExpr\",\"document.nodes[].label\",\"document.nodes[].labelExpr\",\"document.nodes[].title\",\"document.nodes[].subtitle\",\"document.nodes[].relationLabel\",\"document.nodes[].message\",\"document.nodes[].summary\",\"document.nodes[].description\",\"document.nodes[].ctaLabel\",\"document.nodes[].emptyText\",\"document.nodes[].errorText\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\",\"target-block-exists\"]},{\"operationId\":\"link.add\",\"title\":\"Add link block\",\"scope\":\"templating\",\"targetKind\":\"link\",\"target\":{\"kind\":\"link\",\"resolver\":\"document-nodes-array\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"required\":[\"label\",\"href\"],\"properties\":{\"id\":{\"type\":\"string\"},\"label\":{\"type\":\"string\"},\"labelExpr\":{\"type\":\"string\"},\"href\":{\"type\":\"string\"},\"target\":{\"enum\":[\"_self\",\"_blank\"]},\"rel\":{\"type\":\"string\"}}},\"effects\":[{\"kind\":\"append-unique\",\"path\":\"document.nodes[]\",\"key\":\"id\"}],\"destructive\":false,\"requiresConfirmation\":false,\"validators\":[\"link-url-safe\",\"link-policy-explicit\",\"node-types-supported\",\"block-id-unique\",\"editor-runtime-round-trip\"],\"affectedPaths\":[\"document.nodes[]\",\"document.nodes[].href\",\"document.nodes[].target\",\"document.nodes[].rel\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"link.remove\",\"title\":\"Remove link from rich content\",\"scope\":\"templating\",\"targetKind\":\"link\",\"target\":{\"kind\":\"link\",\"resolver\":\"rich-link-node-by-id-or-path\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"properties\":{\"linkId\":{\"type\":\"string\"},\"preserveLabelAsText\":{\"type\":\"boolean\"}}},\"effects\":[{\"kind\":\"compile-domain-patch\",\"handler\":\"rich-content-link-remove\",\"handlerContract\":{\"reads\":[\"document.nodes[]\",\"document.nodes[].id\",\"document.nodes[].type\",\"document.nodes[].label\"],\"writes\":[\"document.nodes[]\"],\"identityKeys\":[\"document.nodes[].id\"],\"inputSchema\":{\"type\":\"object\",\"properties\":{\"linkId\":{\"type\":\"string\"},\"preserveLabelAsText\":{\"type\":\"boolean\"}}},\"failureModes\":[\"link-not-found\",\"ambiguous-link-target\",\"replacement-text-invalid\"],\"description\":\"Removes a link node by stable id or path and optionally replaces it with a text node containing the prior link label.\"}}],\"destructive\":true,\"requiresConfirmation\":true,\"validators\":[\"link-target-exists\",\"destructive-removal-confirmed\",\"document-shape-canonical\",\"editor-runtime-round-trip\"],\"affectedPaths\":[\"document.nodes[]\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\",\"target-link-exists\",\"confirmation-collected\"]},{\"operationId\":\"preset.apply\",\"title\":\"Apply rich block preset\",\"scope\":\"templating\",\"targetKind\":\"preset\",\"target\":{\"kind\":\"preset\",\"resolver\":\"rich-block-preset-ref\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"required\":[\"ref\"],\"properties\":{\"ref\":{\"type\":\"object\"},\"inputs\":{\"type\":\"object\"},\"replaceBlockId\":{\"type\":\"string\"}}},\"effects\":[{\"kind\":\"compile-domain-patch\",\"handler\":\"rich-content-preset-apply\",\"handlerContract\":{\"reads\":[\"PRAXIS_RICH_BLOCK_PRESETS\",\"hostCapabilities.resolvePreset\",\"document.nodes[]\"],\"writes\":[\"document.nodes[]\"],\"identityKeys\":[\"ref.kind\",\"ref.namespace\",\"ref.presetId\",\"ref.version\"],\"inputSchema\":{\"type\":\"object\",\"required\":[\"ref\"],\"properties\":{\"ref\":{\"type\":\"object\"},\"inputs\":{\"type\":\"object\"},\"replaceBlockId\":{\"type\":\"string\"}}},\"failureModes\":[\"preset-not-found\",\"preset-kind-invalid\",\"preset-document-invalid\",\"preset-cycle-detected\"],\"description\":\"Resolves a rich-block preset through the governed registry/host mediation and inserts or replaces a preset reference without serializing functions.\"}}],\"destructive\":false,\"requiresConfirmation\":false,\"validators\":[\"preset-ref-valid\",\"preset-exists-or-host-mediated\",\"host-capabilities-serializable\",\"document-shape-canonical\",\"editor-runtime-round-trip\"],\"affectedPaths\":[\"document.nodes[]\",\"document.nodes[].ref\",\"document.nodes[].inputs\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\"]}]}",
|
|
6620
7291
|
"sourcePointer": "projects/praxis-rich-content/src/lib/ai/praxis-rich-content-authoring-manifest.ts",
|
|
@@ -6624,27 +7295,37 @@
|
|
|
6624
7295
|
"corpusVersion": "1.0.0"
|
|
6625
7296
|
},
|
|
6626
7297
|
{
|
|
6627
|
-
"chunkIndex":
|
|
7298
|
+
"chunkIndex": 24,
|
|
6628
7299
|
"chunkKind": "authoring_manifest",
|
|
6629
|
-
"content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-rich-content\",\"ownerPackage\":\"@praxisui/rich-content\",\"configSchemaId\":\"RichContentDocument\",\"chunkSection\":\"operations\",\"operations\":[{\"operationId\":\"metadata.update\",\"title\":\"Update rich block metadata\",\"scope\":\"templating\",\"targetKind\":\"metadata\",\"target\":{\"kind\":\"metadata\",\"resolver\":\"rich-block-by-id-or-index\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"blockId\":{\"type\":\"string\"},\"testId\":{\"type\":\"string\"},\"className\":{\"type\":\"string\"},\"visibleWhen\":{\"type\":\"object\"},\"disabledWhen\":{\"type\":\"object\"},\"loadWhen\":{\"type\":\"object\"},\"classWhen\":{\"type\":\"array\",\"items\":{\"type\":\"object\"}},\"styleWhen\":{\"type\":\"array\",\"items\":{\"type\":\"object\"}},\"style\":{\"type\":\"object\"},\"requiresCapabilities\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"capabilityMode\":{\"enum\":[\"all\",\"any\"]}}},\"effects\":[{\"kind\":\"merge-by-key\",\"path\":\"document.nodes[]\",\"key\":\"id\"}],\"destructive\":false,\"requiresConfirmation\":false,\"validators\":[\"block-exists\",\"class-name-safe\",\"visible-when-json-logic\",\"unsafe-style-rejected\",\"document-shape-canonical\",\"editor-runtime-round-trip\"],\"affectedPaths\":[\"document.nodes[].testId\",\"document.nodes[].className\",\"document.nodes[].visibleWhen\",\"document.nodes[].disabledWhen\",\"document.nodes[].loadWhen\",\"document.nodes[].classWhen\",\"document.nodes[].styleWhen\",\"document.nodes[].style\",\"document.nodes[].requiresCapabilities\",\"document.nodes[].capabilityMode\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\",\"target-block-exists\"]},{\"operationId\":\"mediaBlock.update\",\"title\":\"Update media block fields\",\"scope\":\"templating\",\"targetKind\":\"media\",\"target\":{\"kind\":\"media\",\"resolver\":\"rich-media-node-by-id-or-path\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"blockId\":{\"type\":\"string\"},\"avatarName\":{\"type\":\"string\"},\"avatarImageSrc\":{\"type\":\"string\"},\"title\":{\"type\":\"string\"},\"titleExpr\":{\"type\":\"string\"},\"subtitle\":{\"type\":\"string\"},\"subtitleExpr\":{\"type\":\"string\"}}},\"effects\":[{\"kind\":\"compile-domain-patch\",\"handler\":\"rich-content-media-block-update\",\"handlerContract\":{\"reads\":[\"document.nodes[]\",\"document.nodes[].id\",\"document.nodes[].type\"],\"writes\":[\"document.nodes[].avatar\",\"document.nodes[].title\",\"document.nodes[].subtitle\"],\"identityKeys\":[\"document.nodes[].id\"],\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"blockId\":{\"type\":\"string\"},\"avatarName\":{\"type\":\"string\"},\"avatarImageSrc\":{\"type\":\"string\"},\"title\":{\"type\":\"string\"},\"titleExpr\":{\"type\":\"string\"},\"subtitle\":{\"type\":\"string\"},\"subtitleExpr\":{\"type\":\"string\"}}},\"failureModes\":[\"media-block-not-found\",\"target-not-media-block\",\"unsafe-url\",\"invalid-text-node\"],\"description\":\"Updates the structured mediaBlock avatar/title/subtitle fields while preserving meta and trailing content for advanced JSON authoring.\"}}],\"destructive\":false,\"requiresConfirmation\":false,\"validators\":[\"block-exists\",\"media-block-target-valid\",\"unsafe-url-rejected\",\"expression-path-safe\",\"document-shape-canonical\",\"editor-runtime-round-trip\"],\"affectedPaths\":[\"document.nodes[].avatar\",\"document.nodes[].title\",\"document.nodes[].subtitle\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\",\"target-block-exists\"]},{\"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\":{},\"position\":{},\"connectorVariant\":{},\"connectorColor\":{},\"markerVariant\":{},\"markerColor\":{},\"markerStyle\":{},\"emphasis\":{},\"density\":{\"enum\":[\"compact\",\"comfortable\",\"spacious\"]},\"textAppearance\":{},\"title\":{\"type\":\"string\"},\"titleExpr\":{\"type\":\"string\"},\"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[].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[].emptyText\"],\"identityKeys\":[\"document.nodes[].id\"],\"
|
|
7300
|
+
"content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-rich-content\",\"ownerPackage\":\"@praxisui/rich-content\",\"configSchemaId\":\"RichContentDocument\",\"chunkSection\":\"operations\",\"operations\":[{\"operationId\":\"metadata.update\",\"title\":\"Update rich block metadata\",\"scope\":\"templating\",\"targetKind\":\"metadata\",\"target\":{\"kind\":\"metadata\",\"resolver\":\"rich-block-by-id-or-index\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"blockId\":{\"type\":\"string\"},\"testId\":{\"type\":\"string\"},\"className\":{\"type\":\"string\"},\"visibleWhen\":{\"type\":\"object\"},\"disabledWhen\":{\"type\":\"object\"},\"loadWhen\":{\"type\":\"object\"},\"classWhen\":{\"type\":\"array\",\"items\":{\"type\":\"object\"}},\"styleWhen\":{\"type\":\"array\",\"items\":{\"type\":\"object\"}},\"style\":{\"type\":\"object\"},\"requiresCapabilities\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"capabilityMode\":{\"enum\":[\"all\",\"any\"]}}},\"effects\":[{\"kind\":\"merge-by-key\",\"path\":\"document.nodes[]\",\"key\":\"id\"}],\"destructive\":false,\"requiresConfirmation\":false,\"validators\":[\"block-exists\",\"class-name-safe\",\"visible-when-json-logic\",\"unsafe-style-rejected\",\"document-shape-canonical\",\"editor-runtime-round-trip\"],\"affectedPaths\":[\"document.nodes[].testId\",\"document.nodes[].className\",\"document.nodes[].visibleWhen\",\"document.nodes[].disabledWhen\",\"document.nodes[].loadWhen\",\"document.nodes[].classWhen\",\"document.nodes[].styleWhen\",\"document.nodes[].style\",\"document.nodes[].requiresCapabilities\",\"document.nodes[].capabilityMode\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\",\"target-block-exists\"]},{\"operationId\":\"mediaBlock.update\",\"title\":\"Update media block fields\",\"scope\":\"templating\",\"targetKind\":\"media\",\"target\":{\"kind\":\"media\",\"resolver\":\"rich-media-node-by-id-or-path\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"blockId\":{\"type\":\"string\"},\"avatarName\":{\"type\":\"string\"},\"avatarImageSrc\":{\"type\":\"string\"},\"title\":{\"type\":\"string\"},\"titleExpr\":{\"type\":\"string\"},\"subtitle\":{\"type\":\"string\"},\"subtitleExpr\":{\"type\":\"string\"}}},\"effects\":[{\"kind\":\"compile-domain-patch\",\"handler\":\"rich-content-media-block-update\",\"handlerContract\":{\"reads\":[\"document.nodes[]\",\"document.nodes[].id\",\"document.nodes[].type\"],\"writes\":[\"document.nodes[].avatar\",\"document.nodes[].title\",\"document.nodes[].subtitle\"],\"identityKeys\":[\"document.nodes[].id\"],\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"blockId\":{\"type\":\"string\"},\"avatarName\":{\"type\":\"string\"},\"avatarImageSrc\":{\"type\":\"string\"},\"title\":{\"type\":\"string\"},\"titleExpr\":{\"type\":\"string\"},\"subtitle\":{\"type\":\"string\"},\"subtitleExpr\":{\"type\":\"string\"}}},\"failureModes\":[\"media-block-not-found\",\"target-not-media-block\",\"unsafe-url\",\"invalid-text-node\"],\"description\":\"Updates the structured mediaBlock avatar/title/subtitle fields while preserving meta and trailing content for advanced JSON authoring.\"}}],\"destructive\":false,\"requiresConfirmation\":false,\"validators\":[\"block-exists\",\"media-block-target-valid\",\"unsafe-url-rejected\",\"expression-path-safe\",\"document-shape-canonical\",\"editor-runtime-round-trip\"],\"affectedPaths\":[\"document.nodes[].avatar\",\"document.nodes[].title\",\"document.nodes[].subtitle\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\",\"target-block-exists\"]},{\"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\"]},\"connectorVariant\":{\"enum\":[\"solid\",\"dashed\",\"none\"]},\"connectorColor\":{\"enum\":[\"primary\",\"secondary\",\"tertiary\",\"success\",\"warning\",\"error\",\"info\",\"neutral\"]},\"markerVariant\":{\"enum\":[\"dot\",\"icon\",\"number\"]},\"markerColor\":{\"enum\":[\"primary\",\"secondary\",\"tertiary\",\"success\",\"warning\",\"error\",\"info\",\"neutral\"]},\"markerStyle\":{\"enum\":[\"filled\",\"outlined\"]},\"emphasis\":{\"enum\":[\"subtle\",\"standard\",\"strong\",\"hero\"]},\"density\":{\"enum\":[\"compact\",\"comfortable\",\"spacious\"]},\"textAppearance\":{\"enum\":[\"default\",\"prominent\",\"eyebrow\",\"label\"]},\"title\":{\"type\":\"string\"},\"titleExpr\":{\"type\":\"string\"},\"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[].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[].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\"]},\"connectorVariant\":{\"enum\":[\"solid\",\"dashed\",\"none\"]},\"connectorColor\":{\"enum\":[\"primary\",\"secondary\",\"tertiary\",\"success\",\"warning\",\"error\",\"info\",\"neutral\"]},\"markerVariant\":{\"enum\":[\"dot\",\"icon\",\"number\"]},\"markerColor\":{\"enum\":[\"primary\",\"secondary\",\"tertiary\",\"success\",\"warning\",\"error\",\"info\",\"neutral\"]},\"markerStyle\":{\"enum\":[\"filled\",\"outlined\"]},\"emphasis\":{\"enum\":[\"subtle\",\"standard\",\"strong\",\"hero\"]},\"density\":{\"enum\":[\"compact\",\"comfortable\",\"spacious\"]},\"textAppearance\":{\"enum\":[\"default\",\"prominent\",\"eyebrow\",\"label\"]},\"title\":{\"type\":\"string\"},\"titleExpr\":{\"type\":\"string\"},\"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[].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[].emptyText\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\",\"target-block-exists\"]}]}",
|
|
6630
7301
|
"sourcePointer": "projects/praxis-rich-content/src/lib/ai/praxis-rich-content-authoring-manifest.ts",
|
|
6631
|
-
"contentHash": "
|
|
7302
|
+
"contentHash": "6dd3b2f3261b937ac5cc52c6150647ff9384350303a01c8daa92978f4eb8187b",
|
|
6632
7303
|
"sourceKind": "component_definition",
|
|
6633
7304
|
"sourceId": "praxis-rich-content",
|
|
6634
7305
|
"corpusVersion": "1.0.0"
|
|
6635
7306
|
},
|
|
6636
7307
|
{
|
|
6637
|
-
"chunkIndex":
|
|
7308
|
+
"chunkIndex": 25,
|
|
6638
7309
|
"chunkKind": "authoring_manifest",
|
|
6639
|
-
"content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-rich-content\",\"ownerPackage\":\"@praxisui/rich-content\",\"configSchemaId\":\"RichContentDocument\",\"chunkSection\":\"operations\",\"operations\":[{\"operationId\":\"timeline.item.update\",\"title\":\"Update timeline item\",\"scope\":\"templating\",\"targetKind\":\"timelineItem\",\"target\":{\"kind\":\"timelineItem\",\"resolver\":\"rich-timeline-item-by-block-id-and-item-id\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"timelineBlockId\"],\"minProperties\":2,\"properties\":{\"timelineBlockId\":{\"type\":\"string\"},\"itemId\":{\"type\":\"string\"},\"itemIndex\":{\"type\":\"number\"},\"field\":{\"enum\":[\"title\",\"titleExpr\",\"subtitle\",\"subtitleExpr\",\"meta\",\"metaExpr\",\"opposite\",\"oppositeExpr\",\"icon\",\"iconExpr\",\"badge\",\"badgeExpr\",\"markerColor\",\"markerStyle\",\"connectorColor\",\"connectorVariant\"]},\"value\":{\"type\":\"string\"},\"patch\":{\"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\"},\"markerColor\":{},\"markerStyle\":{},\"connectorColor\":{},\"connectorVariant\":{}}}},\"anyOf\":[{\"required\":[\"field\",\"value\"]},{\"required\":[\"patch\"]}],\"allOf\":[{\"if\":{\"properties\":{\"field\":{\"enum\":[\"markerColor\",\"connectorColor\"]}},\"required\":[\"field\"]},\"then\":{\"properties\":{\"value\":{}}}},{\"if\":{\"properties\":{\"field\":{\"const\":\"markerStyle\"}},\"required\":[\"field\"]},\"then\":{\"properties\":{\"value\":{}}}},{\"if\":{\"properties\":{\"field\":{\"const\":\"connectorVariant\"}},\"required\":[\"field\"]},\"then\":{\"properties\":{\"value\":{}}}},{\"if\":{\"properties\":{\"field\":{}},\"required\":[\"field\"]},\"then\":{\"properties\":{\"value\":{\"type\":\"string\"}}}}]},\"effects\":[{\"kind\":\"compile-domain-patch\",\"handler\":\"rich-content-timeline-item-update\",\"handlerContract\":{\"reads\":[\"document.nodes[]\",\"document.nodes[].items[]\"],\"writes\":[\"document.nodes[].items[]\"],\"identityKeys\":[\"document.nodes[].id\",\"document.nodes[].items[].id\"],\"
|
|
7310
|
+
"content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-rich-content\",\"ownerPackage\":\"@praxisui/rich-content\",\"configSchemaId\":\"RichContentDocument\",\"chunkSection\":\"operations\",\"operations\":[{\"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\"]},{\"operationId\":\"timeline.item.update\",\"title\":\"Update timeline item\",\"scope\":\"templating\",\"targetKind\":\"timelineItem\",\"target\":{\"kind\":\"timelineItem\",\"resolver\":\"rich-timeline-item-by-block-id-and-item-id\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"timelineBlockId\"],\"minProperties\":2,\"properties\":{\"timelineBlockId\":{\"type\":\"string\"},\"itemId\":{\"type\":\"string\"},\"itemIndex\":{\"type\":\"number\"},\"field\":{\"enum\":[\"title\",\"titleExpr\",\"subtitle\",\"subtitleExpr\",\"meta\",\"metaExpr\",\"opposite\",\"oppositeExpr\",\"icon\",\"iconExpr\",\"badge\",\"badgeExpr\",\"markerColor\",\"markerStyle\",\"connectorColor\",\"connectorVariant\"]},\"value\":{\"type\":\"string\"},\"patch\":{\"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\"},\"markerColor\":{\"enum\":[\"primary\",\"secondary\",\"tertiary\",\"success\",\"warning\",\"error\",\"info\",\"neutral\"]},\"markerStyle\":{\"enum\":[\"filled\",\"outlined\"]},\"connectorColor\":{\"enum\":[\"primary\",\"secondary\",\"tertiary\",\"success\",\"warning\",\"error\",\"info\",\"neutral\"]},\"connectorVariant\":{\"enum\":[\"solid\",\"dashed\",\"none\"]}}}},\"anyOf\":[{\"required\":[\"field\",\"value\"]},{\"required\":[\"patch\"]}],\"allOf\":[{\"if\":{\"properties\":{\"field\":{\"enum\":[\"markerColor\",\"connectorColor\"]}},\"required\":[\"field\"]},\"then\":{\"properties\":{\"value\":{\"enum\":[\"primary\",\"secondary\",\"tertiary\",\"success\",\"warning\",\"error\",\"info\",\"neutral\"]}}}},{\"if\":{\"properties\":{\"field\":{\"const\":\"markerStyle\"}},\"required\":[\"field\"]},\"then\":{\"properties\":{\"value\":{\"enum\":[\"filled\",\"outlined\"]}}}},{\"if\":{\"properties\":{\"field\":{\"const\":\"connectorVariant\"}},\"required\":[\"field\"]},\"then\":{\"properties\":{\"value\":{\"enum\":[\"solid\",\"dashed\",\"none\"]}}}},{\"if\":{\"properties\":{\"field\":{\"enum\":[\"title\",\"titleExpr\",\"subtitle\",\"subtitleExpr\",\"meta\",\"metaExpr\",\"opposite\",\"oppositeExpr\",\"icon\",\"iconExpr\",\"badge\",\"badgeExpr\"]}},\"required\":[\"field\"]},\"then\":{\"properties\":{\"value\":{\"type\":\"string\"}}}}]},\"effects\":[{\"kind\":\"compile-domain-patch\",\"handler\":\"rich-content-timeline-item-update\",\"handlerContract\":{\"reads\":[\"document.nodes[]\",\"document.nodes[].items[]\"],\"writes\":[\"document.nodes[].items[]\"],\"identityKeys\":[\"document.nodes[].id\",\"document.nodes[].items[].id\"],\"inputSchema\":{\"type\":\"object\",\"required\":[\"timelineBlockId\"],\"minProperties\":2,\"properties\":{\"timelineBlockId\":{\"type\":\"string\"},\"itemId\":{\"type\":\"string\"},\"itemIndex\":{\"type\":\"number\"},\"field\":{\"enum\":[\"title\",\"titleExpr\",\"subtitle\",\"subtitleExpr\",\"meta\",\"metaExpr\",\"opposite\",\"oppositeExpr\",\"icon\",\"iconExpr\",\"badge\",\"badgeExpr\",\"markerColor\",\"markerStyle\",\"connectorColor\",\"connectorVariant\"]},\"value\":{\"type\":\"string\"},\"patch\":{\"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\"},\"markerColor\":{\"enum\":[\"primary\",\"secondary\",\"tertiary\",\"success\",\"warning\",\"error\",\"info\",\"neutral\"]},\"markerStyle\":{\"enum\":[\"filled\",\"outlined\"]},\"connectorColor\":{\"enum\":[\"primary\",\"secondary\",\"tertiary\",\"success\",\"warning\",\"error\",\"info\",\"neutral\"]},\"connectorVariant\":{\"enum\":[\"solid\",\"dashed\",\"none\"]}}}},\"anyOf\":[{\"required\":[\"field\",\"value\"]},{\"required\":[\"patch\"]}],\"allOf\":[{\"if\":{\"properties\":{\"field\":{\"enum\":[\"markerColor\",\"connectorColor\"]}},\"required\":[\"field\"]},\"then\":{\"properties\":{\"value\":{\"enum\":[\"primary\",\"secondary\",\"tertiary\",\"success\",\"warning\",\"error\",\"info\",\"neutral\"]}}}},{\"if\":{\"properties\":{\"field\":{\"const\":\"markerStyle\"}},\"required\":[\"field\"]},\"then\":{\"properties\":{\"value\":{\"enum\":[\"filled\",\"outlined\"]}}}},{\"if\":{\"properties\":{\"field\":{\"const\":\"connectorVariant\"}},\"required\":[\"field\"]},\"then\":{\"properties\":{\"value\":{\"enum\":[\"solid\",\"dashed\",\"none\"]}}}},{\"if\":{\"properties\":{\"field\":{\"enum\":[\"title\",\"titleExpr\",\"subtitle\",\"subtitleExpr\",\"meta\",\"metaExpr\",\"opposite\",\"oppositeExpr\",\"icon\",\"iconExpr\",\"badge\",\"badgeExpr\"]}},\"required\":[\"field\"]},\"then\":{\"properties\":{\"value\":{\"type\":\"string\"}}}}]},\"failureModes\":[\"timeline-not-found\",\"timeline-item-not-found\",\"unsupported-timeline-field\",\"invalid-timeline-item\"],\"description\":\"Updates a timeline item by stable item id when available, preserving the item object shape accepted by RichTimelineItem.\"}}],\"destructive\":false,\"requiresConfirmation\":false,\"validators\":[\"block-exists\",\"timeline-target-valid\",\"timeline-item-exists\",\"timeline-item-field-supported\",\"document-shape-canonical\",\"editor-runtime-round-trip\"],\"affectedPaths\":[\"document.nodes[].items[].title\",\"document.nodes[].items[].titleExpr\",\"document.nodes[].items[].subtitle\",\"document.nodes[].items[].subtitleExpr\",\"document.nodes[].items[].meta\",\"document.nodes[].items[].metaExpr\",\"document.nodes[].items[].opposite\",\"document.nodes[].items[].oppositeExpr\",\"document.nodes[].items[].icon\",\"document.nodes[].items[].iconExpr\",\"document.nodes[].items[].badge\",\"document.nodes[].items[].badgeExpr\",\"document.nodes[].items[].markerColor\",\"document.nodes[].items[].markerStyle\",\"document.nodes[].items[].connectorColor\",\"document.nodes[].items[].connectorVariant\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\",\"target-block-exists\",\"target-timeline-item-exists\"]}]}",
|
|
6640
7311
|
"sourcePointer": "projects/praxis-rich-content/src/lib/ai/praxis-rich-content-authoring-manifest.ts",
|
|
6641
|
-
"contentHash": "
|
|
7312
|
+
"contentHash": "1fa9b504dfa4d93e00e232e174f15f8a620d813e07fb65a57356a420f22a0fa9",
|
|
6642
7313
|
"sourceKind": "component_definition",
|
|
6643
7314
|
"sourceId": "praxis-rich-content",
|
|
6644
7315
|
"corpusVersion": "1.0.0"
|
|
6645
7316
|
},
|
|
6646
7317
|
{
|
|
6647
|
-
"chunkIndex":
|
|
7318
|
+
"chunkIndex": 26,
|
|
7319
|
+
"chunkKind": "authoring_manifest",
|
|
7320
|
+
"content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-rich-content\",\"ownerPackage\":\"@praxisui/rich-content\",\"configSchemaId\":\"RichContentDocument\",\"chunkSection\":\"operations\",\"operations\":[{\"operationId\":\"timeline.item.remove\",\"title\":\"Remove timeline item\",\"scope\":\"templating\",\"targetKind\":\"timelineItem\",\"target\":{\"kind\":\"timelineItem\",\"resolver\":\"rich-timeline-item-by-block-id-and-item-id\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"timelineBlockId\"],\"properties\":{\"timelineBlockId\":{\"type\":\"string\"},\"itemId\":{\"type\":\"string\"},\"itemIndex\":{\"type\":\"number\"}}},\"effects\":[{\"kind\":\"compile-domain-patch\",\"handler\":\"rich-content-timeline-item-remove\",\"handlerContract\":{\"reads\":[\"document.nodes[]\",\"document.nodes[].items[]\"],\"writes\":[\"document.nodes[].items[]\"],\"identityKeys\":[\"document.nodes[].id\",\"document.nodes[].items[].id\"],\"inputSchema\":{\"type\":\"object\",\"required\":[\"timelineBlockId\"],\"properties\":{\"timelineBlockId\":{\"type\":\"string\"},\"itemId\":{\"type\":\"string\"},\"itemIndex\":{\"type\":\"number\"}}},\"failureModes\":[\"timeline-not-found\",\"timeline-item-not-found\",\"ambiguous-timeline-item\"],\"description\":\"Removes a timeline item from a timeline node after explicit confirmation; stable item id is preferred over index.\"}}],\"destructive\":true,\"requiresConfirmation\":true,\"validators\":[\"timeline-target-valid\",\"timeline-item-exists\",\"destructive-removal-confirmed\",\"document-shape-canonical\",\"editor-runtime-round-trip\"],\"affectedPaths\":[\"document.nodes[].items[]\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\",\"target-timeline-item-exists\",\"confirmation-collected\"]},{\"operationId\":\"sanitizationPolicy.set\",\"title\":\"Set rich content sanitization policy\",\"scope\":\"global\",\"targetKind\":\"sanitizationPolicy\",\"target\":{\"kind\":\"sanitizationPolicy\",\"resolver\":\"rich-content-validation-policy\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"properties\":{\"allowHtml\":{\"const\":false},\"allowedUrlProtocols\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"allowImageDataUrls\":{\"type\":\"boolean\"},\"maxNodeDepth\":{\"type\":\"number\"},\"maxNodeCount\":{\"type\":\"number\"}}},\"effects\":[{\"kind\":\"compile-domain-patch\",\"handler\":\"rich-content-sanitization-policy\",\"handlerContract\":{\"reads\":[\"document\",\"validateRichContentDocument\"],\"writes\":[\"document\"],\"identityKeys\":[\"document.kind\",\"document.version\"],\"inputSchema\":{\"type\":\"object\",\"properties\":{\"allowHtml\":{\"const\":false},\"allowedUrlProtocols\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"allowImageDataUrls\":{\"type\":\"boolean\"},\"maxNodeDepth\":{\"type\":\"number\"},\"maxNodeCount\":{\"type\":\"number\"}}},\"failureModes\":[\"html-not-supported\",\"unsafe-protocol\",\"max-depth-too-high\",\"max-node-count-too-high\"],\"description\":\"Validates requested policy against the fixed validator guardrails; rich-content authoring remains structured JSON and does not allow arbitrary HTML.\"}}],\"destructive\":true,\"requiresConfirmation\":true,\"validators\":[\"sanitization-policy-explicit\",\"unsafe-html-rejected\",\"unsafe-url-rejected\",\"security-change-confirmed\",\"editor-runtime-round-trip\"],\"affectedPaths\":[\"document\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\",\"confirmation-collected\"]},{\"operationId\":\"display.mode.set\",\"title\":\"Set rich content display mode\",\"scope\":\"global\",\"targetKind\":\"display\",\"target\":{\"kind\":\"display\",\"resolver\":\"rich-content-layout-and-root-class\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"properties\":{\"layout\":{\"enum\":[\"block\",\"inline\"]},\"rootClassName\":{\"type\":\"string\"}}},\"effects\":[{\"kind\":\"set-value\",\"path\":\"layout\"},{\"kind\":\"set-value\",\"path\":\"rootClassName\"}],\"destructive\":false,\"requiresConfirmation\":false,\"validators\":[\"layout-valid\",\"root-class-safe\",\"editor-runtime-round-trip\"],\"affectedPaths\":[\"layout\",\"rootClassName\"],\"submissionImpact\":\"visual-only\",\"preconditions\":[\"config-initialized\"]}]}",
|
|
7321
|
+
"sourcePointer": "projects/praxis-rich-content/src/lib/ai/praxis-rich-content-authoring-manifest.ts",
|
|
7322
|
+
"contentHash": "d0f36683ce7f9308771abfd01770489d88c9b53bb2d5ed21750a73d9103c471d",
|
|
7323
|
+
"sourceKind": "component_definition",
|
|
7324
|
+
"sourceId": "praxis-rich-content",
|
|
7325
|
+
"corpusVersion": "1.0.0"
|
|
7326
|
+
},
|
|
7327
|
+
{
|
|
7328
|
+
"chunkIndex": 27,
|
|
6648
7329
|
"chunkKind": "authoring_manifest",
|
|
6649
7330
|
"content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-rich-content\",\"ownerPackage\":\"@praxisui/rich-content\",\"configSchemaId\":\"RichContentDocument\",\"chunkSection\":\"validators\",\"validators\":[{\"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\":\"document-version-supported\",\"level\":\"error\",\"code\":\"PRC002\",\"description\":\"Only document version 1.0.0 is supported.\"},{\"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\":\"block-exists\",\"level\":\"error\",\"code\":\"PRC005\",\"description\":\"Target block must exist before patching, reordering or removing it.\"},{\"validatorId\":\"block-order-deterministic\",\"level\":\"error\",\"code\":\"PRC006\",\"description\":\"Block ordering must use stable ids or explicit before/after placement and not rely on transient generated indexes.\"},{\"validatorId\":\"destructive-removal-confirmed\",\"level\":\"error\",\"code\":\"PRC007\",\"description\":\"Block and link removal are destructive and require confirmation.\"},{\"validatorId\":\"document-not-empty-when-required\",\"level\":\"warning\",\"code\":\"PRC008\",\"description\":\"Removal should not leave an empty document unless the user explicitly requested an empty rich content document.\"},{\"validatorId\":\"text-target-supports-field\",\"level\":\"error\",\"code\":\"PRC009\",\"description\":\"Text updates may only target fields supported by the selected node type.\"},{\"validatorId\":\"expression-path-safe\",\"level\":\"warning\",\"code\":\"PRC010\",\"description\":\"Expression paths must remain simple context paths or Json Logic expressions, not string DSL code.\"},{\"validatorId\":\"link-url-safe\",\"level\":\"error\",\"code\":\"PRC011\",\"description\":\"Link href values must reject javascript:, vbscript:, file: and unsafe data URLs.\"},{\"validatorId\":\"link-policy-explicit\",\"level\":\"error\",\"code\":\"PRC012\",\"description\":\"Links must declare safe target/rel behavior; _blank links default to noopener noreferrer.\"},{\"validatorId\":\"link-target-exists\",\"level\":\"error\",\"code\":\"PRC013\",\"description\":\"Link removal must resolve an existing link node by stable id or path.\"},{\"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\":\"unsafe-html-rejected\",\"level\":\"error\",\"code\":\"PRC016\",\"description\":\"Rich-content authoring must remain structured document JSON and must not accept arbitrary HTML/script patches.\"},{\"validatorId\":\"sanitization-policy-explicit\",\"level\":\"error\",\"code\":\"PRC017\",\"description\":\"Security policy requests must keep HTML disabled and URL/style guardrails explicit.\"},{\"validatorId\":\"security-change-confirmed\",\"level\":\"error\",\"code\":\"PRC018\",\"description\":\"Sanitization policy changes require explicit confirmation.\"},{\"validatorId\":\"preset-ref-valid\",\"level\":\"error\",\"code\":\"PRC019\",\"description\":\"Preset refs must use kind rich-block plus namespace, presetId and optional version.\"},{\"validatorId\":\"preset-exists-or-host-mediated\",\"level\":\"error\",\"code\":\"PRC020\",\"description\":\"Preset application must resolve through PRAXIS_RICH_BLOCK_PRESETS or a host-mediated resolver.\"},{\"validatorId\":\"host-capabilities-serializable\",\"level\":\"error\",\"code\":\"PRC021\",\"description\":\"Public contracts must not serialize host capability functions; only refs and inputs are persisted.\"},{\"validatorId\":\"layout-valid\",\"level\":\"error\",\"code\":\"PRC022\",\"description\":\"Layout must be block or inline.\"},{\"validatorId\":\"root-class-safe\",\"level\":\"warning\",\"code\":\"PRC023\",\"description\":\"rootClassName must contain safe CSS class tokens.\"},{\"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.\"},{\"validatorId\":\"class-name-safe\",\"level\":\"error\",\"code\":\"PRC025\",\"description\":\"Node className values must contain safe CSS class tokens.\"},{\"validatorId\":\"visible-when-json-logic\",\"level\":\"error\",\"code\":\"PRC026\",\"description\":\"visibleWhen must be a Json Logic expression object and not a string DSL.\"},{\"validatorId\":\"media-block-target-valid\",\"level\":\"error\",\"code\":\"PRC027\",\"description\":\"Media operations must target a mediaBlock node and preserve structured avatar/text child nodes.\"},{\"validatorId\":\"timeline-target-valid\",\"level\":\"error\",\"code\":\"PRC028\",\"description\":\"Timeline item operations must target a timeline node with an items array.\"},{\"validatorId\":\"timeline-item-valid\",\"level\":\"error\",\"code\":\"PRC029\",\"description\":\"Timeline items must be objects matching RichTimelineItem fields.\"},{\"validatorId\":\"timeline-item-id-unique\",\"level\":\"warning\",\"code\":\"PRC030\",\"description\":\"Timeline item ids should be unique inside a timeline node when present.\"},{\"validatorId\":\"timeline-item-exists\",\"level\":\"error\",\"code\":\"PRC031\",\"description\":\"Timeline item updates and removals must resolve an existing item by stable id or explicit fallback index.\"},{\"validatorId\":\"timeline-item-field-supported\",\"level\":\"error\",\"code\":\"PRC032\",\"description\":\"Timeline item updates may only target supported RichTimelineItem fields.\"},{\"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.\"}]}",
|
|
6650
7331
|
"sourcePointer": "projects/praxis-rich-content/src/lib/ai/praxis-rich-content-authoring-manifest.ts",
|
|
@@ -6654,7 +7335,7 @@
|
|
|
6654
7335
|
"corpusVersion": "1.0.0"
|
|
6655
7336
|
},
|
|
6656
7337
|
{
|
|
6657
|
-
"chunkIndex":
|
|
7338
|
+
"chunkIndex": 28,
|
|
6658
7339
|
"chunkKind": "authoring_manifest",
|
|
6659
7340
|
"content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-rich-content\",\"ownerPackage\":\"@praxisui/rich-content\",\"configSchemaId\":\"RichContentDocument\",\"chunkSection\":\"roundTripRequirements\",\"roundTripRequirements\":[\"The editor must produce the same widget input envelope consumed by page-builder: inputs.document, inputs.layout and inputs.rootClassName.\",\"Rich content must remain structured RichContentDocument JSON; arbitrary HTML and script URL patches are rejected before persistence.\",\"Block identity should prefer document.nodes[].id; array index is a resolver fallback only and cannot be the canonical identity for generated patches.\",\"Link authoring uses canonical link nodes with safe href/target/rel instead of markdown or raw HTML embedded in text nodes.\",\"MediaBlock, timeline node appearance, timeline item, metadata, visibleWhen and safe style authoring use the same structured paths exposed by the visual config editor.\",\"Preset authoring persists only rich-block refs and inputs; host capability functions remain runtime-mediated and are not serialized.\"]}",
|
|
6660
7341
|
"sourcePointer": "projects/praxis-rich-content/src/lib/ai/praxis-rich-content-authoring-manifest.ts",
|
|
@@ -6664,7 +7345,7 @@
|
|
|
6664
7345
|
"corpusVersion": "1.0.0"
|
|
6665
7346
|
},
|
|
6666
7347
|
{
|
|
6667
|
-
"chunkIndex":
|
|
7348
|
+
"chunkIndex": 29,
|
|
6668
7349
|
"chunkKind": "authoring_manifest",
|
|
6669
7350
|
"content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-rich-content\",\"ownerPackage\":\"@praxisui/rich-content\",\"configSchemaId\":\"RichContentDocument\",\"chunkSection\":\"examples\",\"examples\":[{\"id\":\"set-empty-document\",\"request\":\"Start with an empty rich content document.\",\"operationId\":\"document.set\",\"params\":{\"kind\":\"praxis.rich-content\",\"version\":\"1.0.0\",\"nodes\":[]},\"isPositive\":true},{\"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},{\"id\":\"remove-obsolete-block\",\"request\":\"Remove the obsolete block.\",\"operationId\":\"block.remove\",\"target\":\"obsolete\",\"params\":{\"blockId\":\"obsolete\"},\"isPositive\":true},{\"id\":\"move-summary-before-details\",\"request\":\"Move summary before details.\",\"operationId\":\"block.order.set\",\"target\":\"summary\",\"params\":{\"blockId\":\"summary\",\"beforeBlockId\":\"details\"},\"isPositive\":true},{\"id\":\"update-title-text\",\"request\":\"Change the hero title to Customer overview.\",\"operationId\":\"text.update\",\"target\":\"hero-title\",\"params\":{\"text\":\"Customer overview\"},\"isPositive\":true},{\"id\":\"add-docs-link\",\"request\":\"Add a link to the documentation.\",\"operationId\":\"link.add\",\"params\":{\"id\":\"docs-link\",\"label\":\"Documentation\",\"href\":\"/docs\",\"target\":\"_self\"},\"isPositive\":true},{\"id\":\"reject-script-link\",\"request\":\"Add a link to javascript:alert(1).\",\"operationId\":\"link.add\",\"params\":{\"label\":\"Bad link\",\"href\":\"javascript:alert(1)\"},\"isPositive\":false},{\"id\":\"remove-docs-link\",\"request\":\"Remove the documentation link but keep its label as text.\",\"operationId\":\"link.remove\",\"target\":\"docs-link\",\"params\":{\"linkId\":\"docs-link\",\"preserveLabelAsText\":true},\"isPositive\":true},{\"id\":\"apply-profile-preset\",\"request\":\"Apply the profile summary rich-block preset.\",\"operationId\":\"preset.apply\",\"params\":{\"ref\":{\"kind\":\"rich-block\",\"namespace\":\"praxis.rich-content\",\"presetId\":\"profile-summary\",\"version\":\"1.0.0\"}},\"isPositive\":true},{\"id\":\"show-only-active-row\",\"request\":\"Show the status block only when row.active is true.\",\"operationId\":\"metadata.update\",\"target\":\"status\",\"params\":{\"blockId\":\"status\",\"visibleWhen\":{\"===\":[{\"var\":\"row.active\"},true]}},\"isPositive\":true},{\"id\":\"update-media-title\",\"request\":\"Update the profile media block title and avatar name.\",\"operationId\":\"mediaBlock.update\",\"target\":\"profile-media\",\"params\":{\"blockId\":\"profile-media\",\"avatarName\":\"Ana Silva\",\"title\":\"Profile summary\"},\"isPositive\":true},{\"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},{\"id\":\"add-created-timeline-item\",\"request\":\"Add a Created item to the activity timeline.\",\"operationId\":\"timeline.item.add\",\"target\":\"activity\",\"params\":{\"timelineBlockId\":\"activity\",\"item\":{\"id\":\"created\",\"title\":\"Created\",\"badge\":\"Done\"}},\"isPositive\":true},{\"id\":\"reject-unknown-timeline-field\",\"request\":\"Set a custom script field on a timeline item.\",\"operationId\":\"timeline.item.update\",\"target\":\"activity.created\",\"params\":{\"timelineBlockId\":\"activity\",\"itemId\":\"created\",\"field\":\"script\",\"value\":\"alert(1)\"},\"isPositive\":false},{\"id\":\"reject-html-policy\",\"request\":\"Allow arbitrary HTML in this rich content document.\",\"operationId\":\"sanitizationPolicy.set\",\"params\":{\"allowHtml\":true},\"isPositive\":false},{\"id\":\"compact-inline-layout\",\"request\":\"Render this rich content inline with root class status-line.\",\"operationId\":\"display.mode.set\",\"params\":{\"layout\":\"inline\",\"rootClassName\":\"status-line\"},\"isPositive\":true}]}",
|
|
6670
7351
|
"sourcePointer": "projects/praxis-rich-content/src/lib/ai/praxis-rich-content-authoring-manifest.ts",
|
|
@@ -6674,7 +7355,7 @@
|
|
|
6674
7355
|
"corpusVersion": "1.0.0"
|
|
6675
7356
|
},
|
|
6676
7357
|
{
|
|
6677
|
-
"chunkIndex":
|
|
7358
|
+
"chunkIndex": 30,
|
|
6678
7359
|
"chunkKind": "recipe",
|
|
6679
7360
|
"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.\",\"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.\"],\"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}\"}]}}",
|
|
6680
7361
|
"sourcePointer": "examples/ai-recipes/praxis-rich-content.json",
|