@jxsuite/schema 0.23.2 → 0.24.0

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/schema.json CHANGED
@@ -643,6 +643,9 @@
643
643
  }
644
644
  }
645
645
  ]
646
+ },
647
+ "description": {
648
+ "type": "string"
646
649
  }
647
650
  }
648
651
  },
@@ -926,70 +929,403 @@
926
929
  }
927
930
  }
928
931
  },
929
- "ElementDef": {
930
- "description": "A Jx element definition. Maps directly to a DOM element.",
932
+ "ExpressionPointer": {
933
+ "description": "A JSON Pointer $ref operand within an expression node.",
931
934
  "type": "object",
935
+ "properties": {
936
+ "$ref": {
937
+ "type": "string",
938
+ "pattern": "^(\\$map/|\\$reduce/|event#/|#/|parent#/|window#/|document#/)"
939
+ }
940
+ },
932
941
  "required": [
933
- "tagName"
942
+ "$ref"
934
943
  ],
935
- "properties": {
936
- "tagName": {
937
- "$ref": "#/$defs/TagName"
938
- },
939
- "id": {
940
- "type": "string"
941
- },
942
- "className": {
943
- "$ref": "#/$defs/StringOrRef"
944
- },
945
- "textContent": {
946
- "$ref": "#/$defs/StringOrRef"
944
+ "additionalProperties": false
945
+ },
946
+ "ExpressionLiteral": {
947
+ "description": "A non-reactive operand: scalar or array of operands.",
948
+ "anyOf": [
949
+ {
950
+ "type": "string",
951
+ "not": {
952
+ "pattern": "\\$\\{"
953
+ }
947
954
  },
948
- "innerHTML": {
949
- "$ref": "#/$defs/StringOrRef"
955
+ {
956
+ "type": "number"
950
957
  },
951
- "innerText": {
952
- "$ref": "#/$defs/StringOrRef"
958
+ {
959
+ "type": "boolean"
953
960
  },
954
- "hidden": {
955
- "$ref": "#/$defs/BoolOrRef"
961
+ {
962
+ "type": "null"
956
963
  },
957
- "tabIndex": {
958
- "$ref": "#/$defs/NumberOrRef"
964
+ {
965
+ "type": "array",
966
+ "items": {
967
+ "$ref": "#/$defs/ExpressionOperand"
968
+ }
969
+ }
970
+ ]
971
+ },
972
+ "ExpressionOperand": {
973
+ "description": "Anything that may appear in target or value: a pointer, a literal, or a nested expression node.",
974
+ "anyOf": [
975
+ {
976
+ "$ref": "#/$defs/ExpressionPointer"
959
977
  },
960
- "title": {
961
- "$ref": "#/$defs/StringOrRef"
978
+ {
979
+ "$ref": "#/$defs/ExpressionNode"
962
980
  },
963
- "lang": {
964
- "$ref": "#/$defs/StringOrRef"
981
+ {
982
+ "$ref": "#/$defs/ExpressionLiteral"
983
+ }
984
+ ]
985
+ },
986
+ "UnaryOperator": {
987
+ "enum": [
988
+ "!",
989
+ "-"
990
+ ]
991
+ },
992
+ "BinaryOperator": {
993
+ "enum": [
994
+ "+",
995
+ "-",
996
+ "*",
997
+ "/",
998
+ "%",
999
+ "===",
1000
+ "!==",
1001
+ "<",
1002
+ "<=",
1003
+ ">",
1004
+ ">=",
1005
+ "&&",
1006
+ "||"
1007
+ ]
1008
+ },
1009
+ "AssignmentOperator": {
1010
+ "enum": [
1011
+ "=",
1012
+ "+=",
1013
+ "-=",
1014
+ "*=",
1015
+ "/="
1016
+ ]
1017
+ },
1018
+ "NoArgMethod": {
1019
+ "enum": [
1020
+ "pop",
1021
+ "shift"
1022
+ ]
1023
+ },
1024
+ "OneArgMethod": {
1025
+ "enum": [
1026
+ "push",
1027
+ "unshift"
1028
+ ]
1029
+ },
1030
+ "SpliceMethod": {
1031
+ "const": "splice"
1032
+ },
1033
+ "ReduceMethod": {
1034
+ "const": "reduce"
1035
+ },
1036
+ "MapFilterMethod": {
1037
+ "enum": [
1038
+ "map",
1039
+ "filter"
1040
+ ]
1041
+ },
1042
+ "ExpressionNode": {
1043
+ "description": "The core expression node. operator + target, with value gated by arity.",
1044
+ "type": "object",
1045
+ "required": [
1046
+ "operator",
1047
+ "target"
1048
+ ],
1049
+ "additionalProperties": false,
1050
+ "properties": {
1051
+ "operator": {
1052
+ "type": "string"
965
1053
  },
966
- "dir": {
967
- "type": "string",
968
- "enum": [
969
- "ltr",
970
- "rtl",
971
- "auto"
972
- ]
1054
+ "target": {
1055
+ "$ref": "#/$defs/ExpressionOperand"
973
1056
  },
974
1057
  "value": {
975
- "$ref": "#/$defs/StringOrRef"
976
- },
977
- "checked": {
978
- "$ref": "#/$defs/BoolOrRef"
1058
+ "$ref": "#/$defs/ExpressionOperand"
979
1059
  },
980
- "disabled": {
981
- "$ref": "#/$defs/BoolOrRef"
1060
+ "initial": {
1061
+ "$ref": "#/$defs/ExpressionOperand"
1062
+ }
1063
+ },
1064
+ "oneOf": [
1065
+ {
1066
+ "title": "Unary — target only, no value",
1067
+ "properties": {
1068
+ "operator": {
1069
+ "$ref": "#/$defs/UnaryOperator"
1070
+ }
1071
+ },
1072
+ "required": [
1073
+ "operator"
1074
+ ],
1075
+ "not": {
1076
+ "anyOf": [
1077
+ {
1078
+ "required": [
1079
+ "value"
1080
+ ]
1081
+ },
1082
+ {
1083
+ "required": [
1084
+ "initial"
1085
+ ]
1086
+ }
1087
+ ]
1088
+ }
982
1089
  },
983
- "selected": {
984
- "$ref": "#/$defs/BoolOrRef"
1090
+ {
1091
+ "title": "Binary — left in target, right in value",
1092
+ "properties": {
1093
+ "operator": {
1094
+ "$ref": "#/$defs/BinaryOperator"
1095
+ }
1096
+ },
1097
+ "required": [
1098
+ "operator",
1099
+ "value"
1100
+ ],
1101
+ "not": {
1102
+ "required": [
1103
+ "initial"
1104
+ ]
1105
+ }
985
1106
  },
986
- "src": {
987
- "$ref": "#/$defs/StringOrRef"
1107
+ {
1108
+ "title": "Assignment — writable target, value required",
1109
+ "properties": {
1110
+ "operator": {
1111
+ "$ref": "#/$defs/AssignmentOperator"
1112
+ },
1113
+ "target": {
1114
+ "$ref": "#/$defs/ExpressionPointer"
1115
+ }
1116
+ },
1117
+ "required": [
1118
+ "operator",
1119
+ "value"
1120
+ ],
1121
+ "not": {
1122
+ "required": [
1123
+ "initial"
1124
+ ]
1125
+ }
988
1126
  },
989
- "href": {
990
- "$ref": "#/$defs/StringOrRef"
1127
+ {
1128
+ "title": "pop / shift — array receiver, no value",
1129
+ "properties": {
1130
+ "operator": {
1131
+ "$ref": "#/$defs/NoArgMethod"
1132
+ },
1133
+ "target": {
1134
+ "$ref": "#/$defs/ExpressionPointer"
1135
+ }
1136
+ },
1137
+ "required": [
1138
+ "operator"
1139
+ ],
1140
+ "not": {
1141
+ "anyOf": [
1142
+ {
1143
+ "required": [
1144
+ "value"
1145
+ ]
1146
+ },
1147
+ {
1148
+ "required": [
1149
+ "initial"
1150
+ ]
1151
+ }
1152
+ ]
1153
+ }
991
1154
  },
992
- "alt": {
1155
+ {
1156
+ "title": "push / unshift — array receiver, single value argument",
1157
+ "properties": {
1158
+ "operator": {
1159
+ "$ref": "#/$defs/OneArgMethod"
1160
+ },
1161
+ "target": {
1162
+ "$ref": "#/$defs/ExpressionPointer"
1163
+ }
1164
+ },
1165
+ "required": [
1166
+ "operator",
1167
+ "value"
1168
+ ],
1169
+ "not": {
1170
+ "required": [
1171
+ "initial"
1172
+ ]
1173
+ }
1174
+ },
1175
+ {
1176
+ "title": "splice — array receiver, [start, deleteCount, ...items]",
1177
+ "properties": {
1178
+ "operator": {
1179
+ "$ref": "#/$defs/SpliceMethod"
1180
+ },
1181
+ "target": {
1182
+ "$ref": "#/$defs/ExpressionPointer"
1183
+ },
1184
+ "value": {
1185
+ "type": "array",
1186
+ "items": {
1187
+ "$ref": "#/$defs/ExpressionOperand"
1188
+ },
1189
+ "minItems": 1
1190
+ }
1191
+ },
1192
+ "required": [
1193
+ "operator",
1194
+ "value"
1195
+ ],
1196
+ "not": {
1197
+ "required": [
1198
+ "initial"
1199
+ ]
1200
+ }
1201
+ },
1202
+ {
1203
+ "title": "reduce — pure fold; per-item expression in value, seed in initial",
1204
+ "properties": {
1205
+ "operator": {
1206
+ "$ref": "#/$defs/ReduceMethod"
1207
+ },
1208
+ "target": {
1209
+ "$ref": "#/$defs/ExpressionPointer"
1210
+ },
1211
+ "value": {
1212
+ "$ref": "#/$defs/ExpressionNode"
1213
+ }
1214
+ },
1215
+ "required": [
1216
+ "operator",
1217
+ "value",
1218
+ "initial"
1219
+ ]
1220
+ },
1221
+ {
1222
+ "title": "map / filter — pure; per-item expression in value, no initial",
1223
+ "properties": {
1224
+ "operator": {
1225
+ "$ref": "#/$defs/MapFilterMethod"
1226
+ },
1227
+ "target": {
1228
+ "$ref": "#/$defs/ExpressionPointer"
1229
+ },
1230
+ "value": {
1231
+ "$ref": "#/$defs/ExpressionNode"
1232
+ }
1233
+ },
1234
+ "required": [
1235
+ "operator",
1236
+ "value"
1237
+ ],
1238
+ "not": {
1239
+ "required": [
1240
+ "initial"
1241
+ ]
1242
+ }
1243
+ }
1244
+ ]
1245
+ },
1246
+ "ExpressionEntry": {
1247
+ "description": "A declarative expression entry (Shape 5). Used as a state entry or inline event handler.",
1248
+ "type": "object",
1249
+ "required": [
1250
+ "$expression"
1251
+ ],
1252
+ "properties": {
1253
+ "$expression": {
1254
+ "$ref": "#/$defs/ExpressionNode"
1255
+ },
1256
+ "$title": {
1257
+ "type": "string"
1258
+ },
1259
+ "$description": {
1260
+ "type": "string"
1261
+ }
1262
+ },
1263
+ "additionalProperties": false
1264
+ },
1265
+ "ElementDef": {
1266
+ "description": "A Jx element definition. Maps directly to a DOM element.",
1267
+ "type": "object",
1268
+ "required": [
1269
+ "tagName"
1270
+ ],
1271
+ "properties": {
1272
+ "tagName": {
1273
+ "$ref": "#/$defs/TagName"
1274
+ },
1275
+ "id": {
1276
+ "type": "string"
1277
+ },
1278
+ "className": {
1279
+ "$ref": "#/$defs/StringOrRef"
1280
+ },
1281
+ "textContent": {
1282
+ "$ref": "#/$defs/StringOrRef"
1283
+ },
1284
+ "innerHTML": {
1285
+ "$ref": "#/$defs/StringOrRef"
1286
+ },
1287
+ "innerText": {
1288
+ "$ref": "#/$defs/StringOrRef"
1289
+ },
1290
+ "hidden": {
1291
+ "$ref": "#/$defs/BoolOrRef"
1292
+ },
1293
+ "tabIndex": {
1294
+ "$ref": "#/$defs/NumberOrRef"
1295
+ },
1296
+ "title": {
1297
+ "$ref": "#/$defs/StringOrRef"
1298
+ },
1299
+ "lang": {
1300
+ "$ref": "#/$defs/StringOrRef"
1301
+ },
1302
+ "dir": {
1303
+ "type": "string",
1304
+ "enum": [
1305
+ "ltr",
1306
+ "rtl",
1307
+ "auto"
1308
+ ]
1309
+ },
1310
+ "value": {
1311
+ "$ref": "#/$defs/StringOrRef"
1312
+ },
1313
+ "checked": {
1314
+ "$ref": "#/$defs/BoolOrRef"
1315
+ },
1316
+ "disabled": {
1317
+ "$ref": "#/$defs/BoolOrRef"
1318
+ },
1319
+ "selected": {
1320
+ "$ref": "#/$defs/BoolOrRef"
1321
+ },
1322
+ "src": {
1323
+ "$ref": "#/$defs/StringOrRef"
1324
+ },
1325
+ "href": {
1326
+ "$ref": "#/$defs/StringOrRef"
1327
+ },
1328
+ "alt": {
993
1329
  "$ref": "#/$defs/StringOrRef"
994
1330
  },
995
1331
  "type": {
@@ -20748,452 +21084,119 @@
20748
21084
  {
20749
21085
  "type": "object"
20750
21086
  },
20751
- {
20752
- "$ref": "#/$defs/RefObject"
20753
- }
20754
- ]
20755
- }
20756
- },
20757
- "RefObject": {
20758
- "description": "A $ref binding. Resolves to a state entry (reactive) or plain value (static).",
20759
- "type": "object",
20760
- "required": [
20761
- "$ref"
20762
- ],
20763
- "properties": {
20764
- "$ref": {
20765
- "$ref": "#/$defs/AnyRef"
20766
- }
20767
- },
20768
- "additionalProperties": false
20769
- },
20770
- "AnyRef": {
20771
- "type": "string",
20772
- "oneOf": [
20773
- {
20774
- "$ref": "#/$defs/InternalRef"
20775
- },
20776
- {
20777
- "$ref": "#/$defs/StateRef"
20778
- },
20779
- {
20780
- "$ref": "#/$defs/ExternalRef"
20781
- },
20782
- {
20783
- "$ref": "#/$defs/GlobalRef"
20784
- },
20785
- {
20786
- "$ref": "#/$defs/ParentRef"
20787
- },
20788
- {
20789
- "$ref": "#/$defs/MapRef"
20790
- }
20791
- ]
20792
- },
20793
- "InternalRef": {
20794
- "description": "Reference to a $defs type definition in the current component.",
20795
- "type": "string",
20796
- "pattern": "^#/\\$defs/",
20797
- "examples": [
20798
- "#/$defs/Count",
20799
- "#/$defs/TodoItem",
20800
- "#/$defs/Status"
20801
- ]
20802
- },
20803
- "StateRef": {
20804
- "description": "Reference to a state entry (runtime variable) in the current component.",
20805
- "type": "string",
20806
- "pattern": "^#/state/",
20807
- "examples": [
20808
- "#/state/count",
20809
- "#/state/addTask",
20810
- "#/state/items"
20811
- ]
20812
- },
20813
- "ExternalRef": {
20814
- "description": "Reference to an external Jx component file.",
20815
- "type": "string",
20816
- "pattern": "^(\\./|\\.\\./).*\\.json$|^https?://",
20817
- "examples": [
20818
- "./card.json",
20819
- "https://cdn.example.com/button.json"
20820
- ]
20821
- },
20822
- "ExternalComponentRef": {
20823
- "type": "object",
20824
- "required": [
20825
- "$ref"
20826
- ],
20827
- "properties": {
20828
- "$ref": {
20829
- "$ref": "#/$defs/ExternalRef"
20830
- },
20831
- "$props": {
20832
- "$ref": "#/$defs/PropsObject"
20833
- }
20834
- }
20835
- },
20836
- "GlobalRef": {
20837
- "description": "Reference to a window or document global.",
20838
- "type": "string",
20839
- "pattern": "^(window|document)#/",
20840
- "examples": [
20841
- "window#/currentUser",
20842
- "document#/appConfig"
20843
- ]
20844
- },
20845
- "ParentRef": {
20846
- "description": "Reference to a named state entry passed via $props from a parent component.",
20847
- "type": "string",
20848
- "pattern": "^parent#/",
20849
- "examples": [
20850
- "parent#/sharedState",
20851
- "parent#/theme"
20852
- ]
20853
- },
20854
- "MapRef": {
20855
- "description": "Reference to the current Array map iteration context.",
20856
- "type": "string",
20857
- "pattern": "^\\$map/(item|index)(/.*)?$",
20858
- "examples": [
20859
- "$map/item",
20860
- "$map/index",
20861
- "$map/item/text",
20862
- "$map/item/done"
20863
- ]
20864
- },
20865
- "ExpressionPointer": {
20866
- "description": "A JSON Pointer $ref operand within an expression node.",
20867
- "type": "object",
20868
- "properties": {
20869
- "$ref": {
20870
- "type": "string",
20871
- "pattern": "^(\\$map/|\\$reduce/|event#/|#/|parent#/|window#/|document#/)"
20872
- }
20873
- },
20874
- "required": [
20875
- "$ref"
20876
- ],
20877
- "additionalProperties": false
20878
- },
20879
- "ExpressionLiteral": {
20880
- "description": "A non-reactive operand: scalar or array of operands.",
20881
- "anyOf": [
20882
- {
20883
- "type": "string",
20884
- "not": {
20885
- "pattern": "\\$\\{"
20886
- }
20887
- },
20888
- {
20889
- "type": "number"
20890
- },
20891
- {
20892
- "type": "boolean"
20893
- },
20894
- {
20895
- "type": "null"
20896
- },
20897
- {
20898
- "type": "array",
20899
- "items": {
20900
- "$ref": "#/$defs/ExpressionOperand"
20901
- }
20902
- }
20903
- ]
20904
- },
20905
- "ExpressionOperand": {
20906
- "description": "Anything that may appear in target or value: a pointer, a literal, or a nested expression node.",
20907
- "anyOf": [
20908
- {
20909
- "$ref": "#/$defs/ExpressionPointer"
20910
- },
20911
- {
20912
- "$ref": "#/$defs/ExpressionNode"
20913
- },
20914
- {
20915
- "$ref": "#/$defs/ExpressionLiteral"
20916
- }
20917
- ]
20918
- },
20919
- "UnaryOperator": {
20920
- "enum": [
20921
- "!",
20922
- "-"
20923
- ]
20924
- },
20925
- "BinaryOperator": {
20926
- "enum": [
20927
- "+",
20928
- "-",
20929
- "*",
20930
- "/",
20931
- "%",
20932
- "===",
20933
- "!==",
20934
- "<",
20935
- "<=",
20936
- ">",
20937
- ">=",
20938
- "&&",
20939
- "||"
20940
- ]
20941
- },
20942
- "AssignmentOperator": {
20943
- "enum": [
20944
- "=",
20945
- "+=",
20946
- "-=",
20947
- "*=",
20948
- "/="
20949
- ]
20950
- },
20951
- "NoArgMethod": {
20952
- "enum": [
20953
- "pop",
20954
- "shift"
20955
- ]
20956
- },
20957
- "OneArgMethod": {
20958
- "enum": [
20959
- "push",
20960
- "unshift"
20961
- ]
20962
- },
20963
- "SpliceMethod": {
20964
- "const": "splice"
20965
- },
20966
- "ReduceMethod": {
20967
- "const": "reduce"
20968
- },
20969
- "MapFilterMethod": {
20970
- "enum": [
20971
- "map",
20972
- "filter"
20973
- ]
20974
- },
20975
- "ExpressionNode": {
20976
- "description": "The core expression node. operator + target, with value gated by arity.",
20977
- "type": "object",
20978
- "required": [
20979
- "operator",
20980
- "target"
20981
- ],
20982
- "additionalProperties": false,
20983
- "properties": {
20984
- "operator": {
20985
- "type": "string"
20986
- },
20987
- "target": {
20988
- "$ref": "#/$defs/ExpressionOperand"
20989
- },
20990
- "value": {
20991
- "$ref": "#/$defs/ExpressionOperand"
20992
- },
20993
- "initial": {
20994
- "$ref": "#/$defs/ExpressionOperand"
20995
- }
20996
- },
20997
- "oneOf": [
20998
- {
20999
- "title": "Unary — target only, no value",
21000
- "properties": {
21001
- "operator": {
21002
- "$ref": "#/$defs/UnaryOperator"
21003
- }
21004
- },
21005
- "required": [
21006
- "operator"
21007
- ],
21008
- "not": {
21009
- "anyOf": [
21010
- {
21011
- "required": [
21012
- "value"
21013
- ]
21014
- },
21015
- {
21016
- "required": [
21017
- "initial"
21018
- ]
21019
- }
21020
- ]
21021
- }
21022
- },
21023
- {
21024
- "title": "Binary — left in target, right in value",
21025
- "properties": {
21026
- "operator": {
21027
- "$ref": "#/$defs/BinaryOperator"
21028
- }
21029
- },
21030
- "required": [
21031
- "operator",
21032
- "value"
21033
- ],
21034
- "not": {
21035
- "required": [
21036
- "initial"
21037
- ]
21038
- }
21039
- },
21040
- {
21041
- "title": "Assignment — writable target, value required",
21042
- "properties": {
21043
- "operator": {
21044
- "$ref": "#/$defs/AssignmentOperator"
21045
- },
21046
- "target": {
21047
- "$ref": "#/$defs/ExpressionPointer"
21048
- }
21049
- },
21050
- "required": [
21051
- "operator",
21052
- "value"
21053
- ],
21054
- "not": {
21055
- "required": [
21056
- "initial"
21057
- ]
21058
- }
21059
- },
21060
- {
21061
- "title": "pop / shift — array receiver, no value",
21062
- "properties": {
21063
- "operator": {
21064
- "$ref": "#/$defs/NoArgMethod"
21065
- },
21066
- "target": {
21067
- "$ref": "#/$defs/ExpressionPointer"
21068
- }
21069
- },
21070
- "required": [
21071
- "operator"
21072
- ],
21073
- "not": {
21074
- "anyOf": [
21075
- {
21076
- "required": [
21077
- "value"
21078
- ]
21079
- },
21080
- {
21081
- "required": [
21082
- "initial"
21083
- ]
21084
- }
21085
- ]
21086
- }
21087
- },
21088
- {
21089
- "title": "push / unshift — array receiver, single value argument",
21090
- "properties": {
21091
- "operator": {
21092
- "$ref": "#/$defs/OneArgMethod"
21093
- },
21094
- "target": {
21095
- "$ref": "#/$defs/ExpressionPointer"
21096
- }
21097
- },
21098
- "required": [
21099
- "operator",
21100
- "value"
21101
- ],
21102
- "not": {
21103
- "required": [
21104
- "initial"
21105
- ]
21106
- }
21107
- },
21108
- {
21109
- "title": "splice — array receiver, [start, deleteCount, ...items]",
21110
- "properties": {
21111
- "operator": {
21112
- "$ref": "#/$defs/SpliceMethod"
21113
- },
21114
- "target": {
21115
- "$ref": "#/$defs/ExpressionPointer"
21116
- },
21117
- "value": {
21118
- "type": "array",
21119
- "items": {
21120
- "$ref": "#/$defs/ExpressionOperand"
21121
- },
21122
- "minItems": 1
21123
- }
21124
- },
21125
- "required": [
21126
- "operator",
21127
- "value"
21128
- ],
21129
- "not": {
21130
- "required": [
21131
- "initial"
21132
- ]
21087
+ {
21088
+ "$ref": "#/$defs/RefObject"
21133
21089
  }
21090
+ ]
21091
+ }
21092
+ },
21093
+ "RefObject": {
21094
+ "description": "A $ref binding. Resolves to a state entry (reactive) or plain value (static).",
21095
+ "type": "object",
21096
+ "required": [
21097
+ "$ref"
21098
+ ],
21099
+ "properties": {
21100
+ "$ref": {
21101
+ "$ref": "#/$defs/AnyRef"
21102
+ }
21103
+ },
21104
+ "additionalProperties": false
21105
+ },
21106
+ "AnyRef": {
21107
+ "type": "string",
21108
+ "oneOf": [
21109
+ {
21110
+ "$ref": "#/$defs/InternalRef"
21134
21111
  },
21135
21112
  {
21136
- "title": "reduce — pure fold; per-item expression in value, seed in initial",
21137
- "properties": {
21138
- "operator": {
21139
- "$ref": "#/$defs/ReduceMethod"
21140
- },
21141
- "target": {
21142
- "$ref": "#/$defs/ExpressionPointer"
21143
- },
21144
- "value": {
21145
- "$ref": "#/$defs/ExpressionNode"
21146
- }
21147
- },
21148
- "required": [
21149
- "operator",
21150
- "value",
21151
- "initial"
21152
- ]
21113
+ "$ref": "#/$defs/StateRef"
21153
21114
  },
21154
21115
  {
21155
- "title": "map / filter — pure; per-item expression in value, no initial",
21156
- "properties": {
21157
- "operator": {
21158
- "$ref": "#/$defs/MapFilterMethod"
21159
- },
21160
- "target": {
21161
- "$ref": "#/$defs/ExpressionPointer"
21162
- },
21163
- "value": {
21164
- "$ref": "#/$defs/ExpressionNode"
21165
- }
21166
- },
21167
- "required": [
21168
- "operator",
21169
- "value"
21170
- ],
21171
- "not": {
21172
- "required": [
21173
- "initial"
21174
- ]
21175
- }
21116
+ "$ref": "#/$defs/ExternalRef"
21117
+ },
21118
+ {
21119
+ "$ref": "#/$defs/GlobalRef"
21120
+ },
21121
+ {
21122
+ "$ref": "#/$defs/ParentRef"
21123
+ },
21124
+ {
21125
+ "$ref": "#/$defs/MapRef"
21176
21126
  }
21177
21127
  ]
21178
21128
  },
21179
- "ExpressionEntry": {
21180
- "description": "A declarative expression entry (Shape 5). Used as a state entry or inline event handler.",
21129
+ "InternalRef": {
21130
+ "description": "Reference to a $defs type definition in the current component.",
21131
+ "type": "string",
21132
+ "pattern": "^#/\\$defs/",
21133
+ "examples": [
21134
+ "#/$defs/Count",
21135
+ "#/$defs/TodoItem",
21136
+ "#/$defs/Status"
21137
+ ]
21138
+ },
21139
+ "StateRef": {
21140
+ "description": "Reference to a state entry (runtime variable) in the current component.",
21141
+ "type": "string",
21142
+ "pattern": "^#/state/",
21143
+ "examples": [
21144
+ "#/state/count",
21145
+ "#/state/addTask",
21146
+ "#/state/items"
21147
+ ]
21148
+ },
21149
+ "ExternalRef": {
21150
+ "description": "Reference to an external Jx component file.",
21151
+ "type": "string",
21152
+ "pattern": "^(\\./|\\.\\./).*\\.json$|^https?://",
21153
+ "examples": [
21154
+ "./card.json",
21155
+ "https://cdn.example.com/button.json"
21156
+ ]
21157
+ },
21158
+ "ExternalComponentRef": {
21181
21159
  "type": "object",
21182
21160
  "required": [
21183
- "$expression"
21161
+ "$ref"
21184
21162
  ],
21185
21163
  "properties": {
21186
- "$expression": {
21187
- "$ref": "#/$defs/ExpressionNode"
21188
- },
21189
- "$title": {
21190
- "type": "string"
21164
+ "$ref": {
21165
+ "$ref": "#/$defs/ExternalRef"
21191
21166
  },
21192
- "$description": {
21193
- "type": "string"
21167
+ "$props": {
21168
+ "$ref": "#/$defs/PropsObject"
21194
21169
  }
21195
- },
21196
- "additionalProperties": false
21170
+ }
21171
+ },
21172
+ "GlobalRef": {
21173
+ "description": "Reference to a window or document global.",
21174
+ "type": "string",
21175
+ "pattern": "^(window|document)#/",
21176
+ "examples": [
21177
+ "window#/currentUser",
21178
+ "document#/appConfig"
21179
+ ]
21180
+ },
21181
+ "ParentRef": {
21182
+ "description": "Reference to a named state entry passed via $props from a parent component.",
21183
+ "type": "string",
21184
+ "pattern": "^parent#/",
21185
+ "examples": [
21186
+ "parent#/sharedState",
21187
+ "parent#/theme"
21188
+ ]
21189
+ },
21190
+ "MapRef": {
21191
+ "description": "Reference to the current Array map iteration context.",
21192
+ "type": "string",
21193
+ "pattern": "^\\$map/(item|index)(/.*)?$",
21194
+ "examples": [
21195
+ "$map/item",
21196
+ "$map/index",
21197
+ "$map/item/text",
21198
+ "$map/item/done"
21199
+ ]
21197
21200
  },
21198
21201
  "ElementPropertyValue": {
21199
21202
  "oneOf": [
@@ -21531,6 +21534,134 @@
21531
21534
  "object",
21532
21535
  "null"
21533
21536
  ]
21537
+ },
21538
+ "HeadEntry": {
21539
+ "description": "A page-level <head> entry. Defines meta tags, link tags, script tags, etc.",
21540
+ "type": "object",
21541
+ "required": [
21542
+ "tagName"
21543
+ ],
21544
+ "properties": {
21545
+ "tagName": {
21546
+ "type": "string"
21547
+ },
21548
+ "attributes": {
21549
+ "type": "object",
21550
+ "additionalProperties": {
21551
+ "oneOf": [
21552
+ {
21553
+ "type": "string"
21554
+ },
21555
+ {
21556
+ "type": "boolean"
21557
+ }
21558
+ ]
21559
+ }
21560
+ },
21561
+ "textContent": {
21562
+ "type": "string"
21563
+ },
21564
+ "children": {
21565
+ "type": "array",
21566
+ "items": {
21567
+ "$ref": "#/$defs/HeadEntry"
21568
+ }
21569
+ }
21570
+ },
21571
+ "additionalProperties": true
21572
+ },
21573
+ "ImageConfig": {
21574
+ "description": "Image optimization configuration for the project.",
21575
+ "type": "object",
21576
+ "properties": {
21577
+ "optimize": {
21578
+ "type": "boolean"
21579
+ },
21580
+ "widths": {
21581
+ "type": "array",
21582
+ "items": {
21583
+ "type": "number"
21584
+ }
21585
+ },
21586
+ "formats": {
21587
+ "type": "array",
21588
+ "items": {
21589
+ "type": "string"
21590
+ }
21591
+ },
21592
+ "quality": {
21593
+ "type": "object",
21594
+ "properties": {
21595
+ "webp": {
21596
+ "type": "number"
21597
+ },
21598
+ "avif": {
21599
+ "type": "number"
21600
+ },
21601
+ "jpeg": {
21602
+ "type": "number"
21603
+ },
21604
+ "png": {
21605
+ "type": "number"
21606
+ }
21607
+ }
21608
+ },
21609
+ "sizes": {
21610
+ "type": "string"
21611
+ },
21612
+ "lazyLoad": {
21613
+ "type": "boolean"
21614
+ }
21615
+ }
21616
+ },
21617
+ "ContentTypeDef": {
21618
+ "description": "Content type definition. Defines the source directory, frontmatter schema, and element dependencies.",
21619
+ "type": "object",
21620
+ "properties": {
21621
+ "source": {
21622
+ "description": "Path to the content directory relative to the project root.",
21623
+ "type": "string",
21624
+ "examples": [
21625
+ "./content/blog/",
21626
+ "./content/docs/"
21627
+ ]
21628
+ },
21629
+ "format": {
21630
+ "type": "string",
21631
+ "enum": [
21632
+ "md",
21633
+ "json",
21634
+ "csv",
21635
+ "yaml"
21636
+ ]
21637
+ },
21638
+ "schema": {
21639
+ "description": "JSON Schema for validating frontmatter of content type entries.",
21640
+ "type": "object"
21641
+ },
21642
+ "$elements": {
21643
+ "description": "Custom elements available in markdown directives for this content type.",
21644
+ "type": "array",
21645
+ "items": {
21646
+ "oneOf": [
21647
+ {
21648
+ "type": "object",
21649
+ "required": [
21650
+ "$ref"
21651
+ ],
21652
+ "properties": {
21653
+ "$ref": {
21654
+ "type": "string"
21655
+ }
21656
+ }
21657
+ },
21658
+ {
21659
+ "type": "string"
21660
+ }
21661
+ ]
21662
+ }
21663
+ }
21664
+ }
21534
21665
  }
21535
21666
  }
21536
21667
  }