@cardenelabs/dragon 0.12.0 → 0.14.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.
@@ -141,14 +141,40 @@
141
141
  "tone": {
142
142
  "type": "string",
143
143
  "description": "箱の色調。 success / warning 等の別名も使える。",
144
- "enum": ["accent", "teal", "success", "error", "warning", "info", "成功", "失敗", "警告", "情報", "中立", "neutral"]
144
+ "enum": [
145
+ "accent",
146
+ "teal",
147
+ "success",
148
+ "error",
149
+ "warning",
150
+ "info",
151
+ "成功",
152
+ "失敗",
153
+ "警告",
154
+ "情報",
155
+ "中立",
156
+ "neutral"
157
+ ]
145
158
  },
146
159
  "color": {
147
160
  "type": "string",
148
161
  "description": "箱の色名、または # で始まる parts の色番号。",
149
162
  "anyOf": [
150
163
  {
151
- "enum": ["accent", "teal", "success", "error", "warning", "info", "成功", "失敗", "警告", "情報", "中立", "neutral"]
164
+ "enum": [
165
+ "accent",
166
+ "teal",
167
+ "success",
168
+ "error",
169
+ "warning",
170
+ "info",
171
+ "成功",
172
+ "失敗",
173
+ "警告",
174
+ "情報",
175
+ "中立",
176
+ "neutral"
177
+ ]
152
178
  },
153
179
  {
154
180
  "pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$"
@@ -226,6 +252,152 @@
226
252
  "type": "number"
227
253
  }
228
254
  }
255
+ },
256
+ "visibleIf": {
257
+ "type": "string",
258
+ "description": "その箱を出すかどうかの条件。 状態を差し込める文字列で、\"0\" / \"false\" / 空文字が偽、それ以外は真。"
259
+ },
260
+ "title": {
261
+ "type": "string",
262
+ "description": "箱に出す題。 書かなければ name がそのまま題になる。 name は図の中で 1 つに決まる必要があるが、題は重なってよい。"
263
+ },
264
+ "shape": {
265
+ "type": "object",
266
+ "description": "箱の中に描く図形。 水位 / 角度 / 半径を状態で動かせる。 kind ごとに書ける欄が違う (rect / circle / arc / wave / polygon)。",
267
+ "required": ["kind"],
268
+ "properties": {
269
+ "kind": {
270
+ "type": "string",
271
+ "enum": ["rect", "circle", "arc", "wave", "polygon"]
272
+ },
273
+ "source": {
274
+ "type": ["number", "string"]
275
+ },
276
+ "fillMax": {
277
+ "type": "number"
278
+ },
279
+ "orient": {
280
+ "type": "string",
281
+ "enum": ["up", "down", "left", "right"]
282
+ },
283
+ "radius": {
284
+ "type": ["number", "string"]
285
+ },
286
+ "fillProgress": {
287
+ "type": ["number", "string"]
288
+ },
289
+ "innerRadius": {
290
+ "type": "number"
291
+ },
292
+ "outerRadius": {
293
+ "type": "number"
294
+ },
295
+ "startAngle": {
296
+ "type": "number"
297
+ },
298
+ "angle": {
299
+ "type": ["number", "string"]
300
+ },
301
+ "sweepMax": {
302
+ "type": "number"
303
+ },
304
+ "level": {
305
+ "type": ["number", "string"]
306
+ },
307
+ "amplitude": {
308
+ "type": "number"
309
+ },
310
+ "frequency": {
311
+ "type": "number"
312
+ },
313
+ "waveHeight": {
314
+ "type": "number"
315
+ },
316
+ "sides": {
317
+ "type": "number"
318
+ },
319
+ "rotation": {
320
+ "type": ["number", "string"]
321
+ },
322
+ "fill": {
323
+ "type": "string"
324
+ },
325
+ "stroke": {
326
+ "type": "string"
327
+ }
328
+ },
329
+ "additionalProperties": false,
330
+ "oneOf": [
331
+ {
332
+ "properties": {
333
+ "kind": {
334
+ "enum": ["rect"]
335
+ }
336
+ },
337
+ "required": ["source", "fillMax"]
338
+ },
339
+ {
340
+ "properties": {
341
+ "kind": {
342
+ "enum": ["circle"]
343
+ }
344
+ }
345
+ },
346
+ {
347
+ "properties": {
348
+ "kind": {
349
+ "enum": ["arc"]
350
+ }
351
+ },
352
+ "required": ["angle"]
353
+ },
354
+ {
355
+ "properties": {
356
+ "kind": {
357
+ "enum": ["wave"]
358
+ }
359
+ },
360
+ "required": ["level", "amplitude"]
361
+ },
362
+ {
363
+ "properties": {
364
+ "kind": {
365
+ "enum": ["polygon"]
366
+ }
367
+ },
368
+ "required": ["sides"]
369
+ }
370
+ ]
371
+ },
372
+ "wBind": {
373
+ "type": "string",
374
+ "minLength": 1,
375
+ "pattern": "\\S",
376
+ "description": "箱の幅を値に追随させる。 状態の名前を {名前} の形で書く。 配置計算は追随前の大きさを使う"
377
+ },
378
+ "hBind": {
379
+ "type": "string",
380
+ "minLength": 1,
381
+ "pattern": "\\S",
382
+ "description": "箱の高さを値に追随させる。 wBind と同じ読み方"
383
+ },
384
+ "opacity": {
385
+ "type": ["number", "string"],
386
+ "minLength": 1,
387
+ "pattern": "\\S",
388
+ "description": "箱の濃さ。 0 から 1 の数か、状態の名前。 書かなければ完全に見える"
389
+ },
390
+ "renderOffsetX": {
391
+ "type": ["number", "string"],
392
+ "minLength": 1,
393
+ "pattern": "\\S",
394
+ "description": "描く時だけ箱を横へずらす量。 配置計算と矢印はずらす前の位置を使う"
395
+ },
396
+ "renderOffsetY": {
397
+ "type": ["number", "string"],
398
+ "minLength": 1,
399
+ "pattern": "\\S",
400
+ "description": "描く時だけ箱を縦へずらす量。 renderOffsetX と同じ読み方"
229
401
  }
230
402
  }
231
403
  }
@@ -258,7 +430,20 @@
258
430
  },
259
431
  "tone": {
260
432
  "type": "string",
261
- "enum": ["accent", "teal", "success", "error", "warning", "info", "成功", "失敗", "警告", "情報", "中立", "neutral"],
433
+ "enum": [
434
+ "accent",
435
+ "teal",
436
+ "success",
437
+ "error",
438
+ "warning",
439
+ "info",
440
+ "成功",
441
+ "失敗",
442
+ "警告",
443
+ "情報",
444
+ "中立",
445
+ "neutral"
446
+ ],
262
447
  "description": "矢印の色調。 success / 成功 等の別名も使える。"
263
448
  },
264
449
  "style": {
@@ -274,6 +459,11 @@
274
459
  "type": "string",
275
460
  "description": "ER の多重度 (1..N 等、 kind: er 用)"
276
461
  },
462
+ "side": {
463
+ "type": "string",
464
+ "enum": ["top", "right", "bottom", "left"],
465
+ "description": "矢印がどの辺から出るか。 書かなければ描画側が自動で選ぶ。"
466
+ },
277
467
  "labelOffsetX": {
278
468
  "type": "number",
279
469
  "description": "ラベル位置 x 調整"
@@ -299,6 +489,24 @@
299
489
  "type": "number"
300
490
  }
301
491
  }
492
+ },
493
+ "widthBind": {
494
+ "type": "string",
495
+ "minLength": 1,
496
+ "pattern": "\\S",
497
+ "description": "線の太さを値に追随させる。 状態やつまみの名前を {名前} の形で書く"
498
+ },
499
+ "strokeBind": {
500
+ "type": "string",
501
+ "minLength": 1,
502
+ "pattern": "\\S",
503
+ "description": "線の色を値に追随させる。 widthBind と同じ読み方"
504
+ },
505
+ "dashOffsetBind": {
506
+ "type": "string",
507
+ "minLength": 1,
508
+ "pattern": "\\S",
509
+ "description": "破線の位置を値に追随させる (流れているように見せる)。 widthBind と同じ読み方"
302
510
  }
303
511
  }
304
512
  }
@@ -503,6 +711,1136 @@
503
711
  }
504
712
  }
505
713
  }
714
+ },
715
+ "readouts": {
716
+ "type": "array",
717
+ "description": "値を見せる部品。 状態の値を割合の輪 / 数え上げ / 目盛りで出す。 箱ではないので縦列に載らず、図全体に 1 つの並びとして持つ。",
718
+ "items": {
719
+ "type": "object",
720
+ "required": ["id", "kind"],
721
+ "additionalProperties": false,
722
+ "properties": {
723
+ "id": {
724
+ "type": "string",
725
+ "minLength": 1
726
+ },
727
+ "kind": {
728
+ "type": "string",
729
+ "enum": [
730
+ "activity-feed",
731
+ "alert-banner",
732
+ "array-bar",
733
+ "array-list",
734
+ "article-preview",
735
+ "attendance-grid",
736
+ "avatar",
737
+ "badge",
738
+ "bar",
739
+ "breadcrumb",
740
+ "bubble-chart",
741
+ "bullet-chart",
742
+ "calendar-heatmap",
743
+ "calendar-month",
744
+ "calendar-week",
745
+ "candlestick",
746
+ "cart-summary",
747
+ "chat-bubble",
748
+ "checklist",
749
+ "chess-board",
750
+ "circular-gauge",
751
+ "commit-list",
752
+ "confidence-meter",
753
+ "countup",
754
+ "coupon-code",
755
+ "delta",
756
+ "diff-counter",
757
+ "donut",
758
+ "event-log",
759
+ "file-dropzone",
760
+ "form-summary",
761
+ "fuel-bar",
762
+ "funnel",
763
+ "gantt",
764
+ "gauge",
765
+ "grade",
766
+ "heat-cell",
767
+ "icon-tile",
768
+ "kanban-board",
769
+ "kpi-card",
770
+ "kpi-comparison",
771
+ "kpi-trend-tile",
772
+ "leaderboard",
773
+ "line-chart",
774
+ "log-stream",
775
+ "map-pin",
776
+ "matrix",
777
+ "media-player",
778
+ "metrics-grid",
779
+ "mini-map",
780
+ "notification",
781
+ "number-board",
782
+ "order-status",
783
+ "org-chart-mini",
784
+ "otp-input",
785
+ "password-strength",
786
+ "path-progress",
787
+ "percent-ring",
788
+ "pill-group",
789
+ "podium",
790
+ "polar-area",
791
+ "poll-bar",
792
+ "price-tag",
793
+ "pricing-tier",
794
+ "priority-badge",
795
+ "progress-group",
796
+ "quick-poll-emoji",
797
+ "radar",
798
+ "rating",
799
+ "rating-thumb",
800
+ "reaction-bar",
801
+ "read-receipt",
802
+ "roadmap",
803
+ "sankey",
804
+ "search-result",
805
+ "sequence-timeline",
806
+ "service-health",
807
+ "share-buttons",
808
+ "slope",
809
+ "song-queue",
810
+ "sparkline",
811
+ "spinner",
812
+ "stacked-bar",
813
+ "stat",
814
+ "status-dot",
815
+ "status-timeline",
816
+ "step-indicator",
817
+ "step-progress",
818
+ "stopwatch",
819
+ "tag-cloud",
820
+ "terminal",
821
+ "thermometer",
822
+ "thread-summary",
823
+ "timeline-vertical",
824
+ "timezone-clock",
825
+ "toc-nav",
826
+ "token-list",
827
+ "traffic-light",
828
+ "treemap",
829
+ "typewriter",
830
+ "user-presence",
831
+ "user-stack",
832
+ "venn",
833
+ "video-card",
834
+ "voice-message",
835
+ "waterfall",
836
+ "weather-forecast"
837
+ ]
838
+ },
839
+ "additionsSource": {
840
+ "type": "string"
841
+ },
842
+ "bodySource": {
843
+ "type": "string"
844
+ },
845
+ "canvasH": {
846
+ "type": "number"
847
+ },
848
+ "canvasW": {
849
+ "type": "number"
850
+ },
851
+ "caption": {
852
+ "type": "string"
853
+ },
854
+ "cellGap": {
855
+ "type": "number"
856
+ },
857
+ "cellSize": {
858
+ "type": "number"
859
+ },
860
+ "charMs": {
861
+ "type": "number"
862
+ },
863
+ "color": {
864
+ "type": "string"
865
+ },
866
+ "colorA": {
867
+ "type": "string"
868
+ },
869
+ "colorAccent": {
870
+ "type": "string"
871
+ },
872
+ "colorActive": {
873
+ "type": "string"
874
+ },
875
+ "colorActual": {
876
+ "type": "string"
877
+ },
878
+ "colorAdd": {
879
+ "type": "string"
880
+ },
881
+ "colorApplied": {
882
+ "type": "string"
883
+ },
884
+ "colorB": {
885
+ "type": "string"
886
+ },
887
+ "colorBar": {
888
+ "type": "string"
889
+ },
890
+ "colorBottom": {
891
+ "type": "string"
892
+ },
893
+ "colorDel": {
894
+ "type": "string"
895
+ },
896
+ "colorDiscount": {
897
+ "type": "string"
898
+ },
899
+ "colorDown": {
900
+ "type": "string"
901
+ },
902
+ "colorFocus": {
903
+ "type": "string"
904
+ },
905
+ "colorMap": {
906
+ "type": "array",
907
+ "minItems": 1,
908
+ "items": {
909
+ "type": "object",
910
+ "required": ["status", "color"],
911
+ "additionalProperties": false,
912
+ "properties": {
913
+ "status": {
914
+ "type": "string"
915
+ },
916
+ "color": {
917
+ "type": "string"
918
+ }
919
+ }
920
+ }
921
+ },
922
+ "colorNeg": {
923
+ "type": "string"
924
+ },
925
+ "colorNew": {
926
+ "type": "string"
927
+ },
928
+ "colorOld": {
929
+ "type": "string"
930
+ },
931
+ "colorOther": {
932
+ "type": "string"
933
+ },
934
+ "colorPending": {
935
+ "type": "string"
936
+ },
937
+ "colorPlay": {
938
+ "type": "string"
939
+ },
940
+ "colorPos": {
941
+ "type": "string"
942
+ },
943
+ "colorRead": {
944
+ "type": "string"
945
+ },
946
+ "colorSelf": {
947
+ "type": "string"
948
+ },
949
+ "colorSource": {
950
+ "type": "string"
951
+ },
952
+ "colorStrong": {
953
+ "type": "string"
954
+ },
955
+ "colorTop": {
956
+ "type": "string"
957
+ },
958
+ "colorTotal": {
959
+ "type": "string"
960
+ },
961
+ "colorUnread": {
962
+ "type": "string"
963
+ },
964
+ "colorUp": {
965
+ "type": "string"
966
+ },
967
+ "colorWeak": {
968
+ "type": "string"
969
+ },
970
+ "colorWinner": {
971
+ "type": "string"
972
+ },
973
+ "colors": {
974
+ "type": "array",
975
+ "items": {
976
+ "type": "string"
977
+ }
978
+ },
979
+ "columnWidth": {
980
+ "type": "number"
981
+ },
982
+ "comparisonSource": {
983
+ "type": "string"
984
+ },
985
+ "count": {
986
+ "type": "number"
987
+ },
988
+ "currency": {
989
+ "type": "string"
990
+ },
991
+ "currentSource": {
992
+ "type": "string"
993
+ },
994
+ "decimals": {
995
+ "type": "number"
996
+ },
997
+ "deletionsSource": {
998
+ "type": "string"
999
+ },
1000
+ "duration": {
1001
+ "type": "number"
1002
+ },
1003
+ "durationMs": {
1004
+ "type": "number"
1005
+ },
1006
+ "durationSource": {
1007
+ "type": "string"
1008
+ },
1009
+ "fill": {
1010
+ "type": "boolean"
1011
+ },
1012
+ "highThreshold": {
1013
+ "type": "number"
1014
+ },
1015
+ "history": {
1016
+ "type": "number"
1017
+ },
1018
+ "historySource": {
1019
+ "type": "string"
1020
+ },
1021
+ "innerRatio": {
1022
+ "type": "number"
1023
+ },
1024
+ "itemTemplate": {
1025
+ "type": "string"
1026
+ },
1027
+ "kindSource": {
1028
+ "type": "string"
1029
+ },
1030
+ "label": {
1031
+ "type": "string"
1032
+ },
1033
+ "labelA": {
1034
+ "type": "string"
1035
+ },
1036
+ "labelB": {
1037
+ "type": "string"
1038
+ },
1039
+ "labelSource": {
1040
+ "type": "string"
1041
+ },
1042
+ "lowThreshold": {
1043
+ "type": "number"
1044
+ },
1045
+ "map": {
1046
+ "type": "array",
1047
+ "minItems": 1,
1048
+ "items": {
1049
+ "type": "object",
1050
+ "required": ["value", "color"],
1051
+ "additionalProperties": false,
1052
+ "properties": {
1053
+ "value": {
1054
+ "type": "string"
1055
+ },
1056
+ "color": {
1057
+ "type": "string"
1058
+ },
1059
+ "label": {
1060
+ "type": "string"
1061
+ }
1062
+ }
1063
+ }
1064
+ },
1065
+ "max": {
1066
+ "type": "number"
1067
+ },
1068
+ "maxSize": {
1069
+ "type": "number"
1070
+ },
1071
+ "membersSource": {
1072
+ "type": "string"
1073
+ },
1074
+ "min": {
1075
+ "type": "number"
1076
+ },
1077
+ "minSize": {
1078
+ "type": "number"
1079
+ },
1080
+ "monthName": {
1081
+ "type": "string"
1082
+ },
1083
+ "newSource": {
1084
+ "type": "string"
1085
+ },
1086
+ "oldSource": {
1087
+ "type": "string"
1088
+ },
1089
+ "pathD": {
1090
+ "type": "string"
1091
+ },
1092
+ "playingSource": {
1093
+ "type": "string"
1094
+ },
1095
+ "prefix": {
1096
+ "type": "string"
1097
+ },
1098
+ "prevSource": {
1099
+ "type": "string"
1100
+ },
1101
+ "progressSource": {
1102
+ "type": "string"
1103
+ },
1104
+ "rMax": {
1105
+ "type": "number"
1106
+ },
1107
+ "rMin": {
1108
+ "type": "number"
1109
+ },
1110
+ "rangeAvg": {
1111
+ "type": "number"
1112
+ },
1113
+ "rangeBad": {
1114
+ "type": "number"
1115
+ },
1116
+ "runningSource": {
1117
+ "type": "string"
1118
+ },
1119
+ "segments": {
1120
+ "type": "number"
1121
+ },
1122
+ "showValue": {
1123
+ "type": "boolean"
1124
+ },
1125
+ "size": {
1126
+ "type": "number"
1127
+ },
1128
+ "source": {
1129
+ "type": "string"
1130
+ },
1131
+ "sourceA": {
1132
+ "type": "string"
1133
+ },
1134
+ "sourceB": {
1135
+ "type": "string"
1136
+ },
1137
+ "stepsSource": {
1138
+ "type": "string"
1139
+ },
1140
+ "strokeWidth": {
1141
+ "type": "number"
1142
+ },
1143
+ "suffix": {
1144
+ "type": "string"
1145
+ },
1146
+ "targetSource": {
1147
+ "type": "string"
1148
+ },
1149
+ "textSource": {
1150
+ "type": "string"
1151
+ },
1152
+ "titleSource": {
1153
+ "type": "string"
1154
+ },
1155
+ "unit": {
1156
+ "type": "string"
1157
+ },
1158
+ "viewH": {
1159
+ "type": "number"
1160
+ },
1161
+ "viewW": {
1162
+ "type": "number"
1163
+ },
1164
+ "xMax": {
1165
+ "type": "number"
1166
+ },
1167
+ "xMin": {
1168
+ "type": "number"
1169
+ },
1170
+ "yMax": {
1171
+ "type": "number"
1172
+ },
1173
+ "yMin": {
1174
+ "type": "number"
1175
+ }
1176
+ },
1177
+ "oneOf": [
1178
+ {
1179
+ "properties": {
1180
+ "kind": {
1181
+ "enum": ["bar"]
1182
+ }
1183
+ },
1184
+ "required": ["source", "min", "max"]
1185
+ },
1186
+ {
1187
+ "properties": {
1188
+ "kind": {
1189
+ "enum": ["gauge"]
1190
+ }
1191
+ },
1192
+ "required": ["source", "min", "max"]
1193
+ },
1194
+ {
1195
+ "properties": {
1196
+ "kind": {
1197
+ "enum": ["stat"]
1198
+ }
1199
+ },
1200
+ "required": ["source"]
1201
+ },
1202
+ {
1203
+ "properties": {
1204
+ "kind": {
1205
+ "enum": ["sparkline"]
1206
+ }
1207
+ },
1208
+ "required": ["source"]
1209
+ },
1210
+ {
1211
+ "properties": {
1212
+ "kind": {
1213
+ "enum": ["countup"]
1214
+ }
1215
+ },
1216
+ "required": ["source"]
1217
+ },
1218
+ {
1219
+ "properties": {
1220
+ "kind": {
1221
+ "enum": ["typewriter"]
1222
+ }
1223
+ },
1224
+ "required": ["source"]
1225
+ },
1226
+ {
1227
+ "properties": {
1228
+ "kind": {
1229
+ "enum": ["delta"]
1230
+ }
1231
+ },
1232
+ "required": ["source"]
1233
+ },
1234
+ {
1235
+ "properties": {
1236
+ "kind": {
1237
+ "enum": ["percent-ring"]
1238
+ }
1239
+ },
1240
+ "required": ["source", "max"]
1241
+ },
1242
+ {
1243
+ "properties": {
1244
+ "kind": {
1245
+ "enum": ["heat-cell"]
1246
+ }
1247
+ },
1248
+ "required": ["source", "min", "max"]
1249
+ },
1250
+ {
1251
+ "properties": {
1252
+ "kind": {
1253
+ "enum": ["donut"]
1254
+ }
1255
+ },
1256
+ "required": ["source"]
1257
+ },
1258
+ {
1259
+ "properties": {
1260
+ "kind": {
1261
+ "enum": ["radar"]
1262
+ }
1263
+ },
1264
+ "required": ["source", "max"]
1265
+ },
1266
+ {
1267
+ "properties": {
1268
+ "kind": {
1269
+ "enum": ["step-progress"]
1270
+ }
1271
+ },
1272
+ "required": ["source", "stepsSource"]
1273
+ },
1274
+ {
1275
+ "properties": {
1276
+ "kind": {
1277
+ "enum": ["status-dot"]
1278
+ }
1279
+ },
1280
+ "required": ["source", "map"]
1281
+ },
1282
+ {
1283
+ "properties": {
1284
+ "kind": {
1285
+ "enum": ["notification"]
1286
+ }
1287
+ },
1288
+ "required": ["kindSource", "titleSource"]
1289
+ },
1290
+ {
1291
+ "properties": {
1292
+ "kind": {
1293
+ "enum": ["kpi-card"]
1294
+ }
1295
+ },
1296
+ "required": ["source", "historySource", "comparisonSource"]
1297
+ },
1298
+ {
1299
+ "properties": {
1300
+ "kind": {
1301
+ "enum": ["status-timeline"]
1302
+ }
1303
+ },
1304
+ "required": ["source"]
1305
+ },
1306
+ {
1307
+ "properties": {
1308
+ "kind": {
1309
+ "enum": [
1310
+ "activity-feed",
1311
+ "alert-banner",
1312
+ "array-list",
1313
+ "article-preview",
1314
+ "avatar",
1315
+ "breadcrumb",
1316
+ "calendar-month",
1317
+ "calendar-week",
1318
+ "cart-summary",
1319
+ "chat-bubble",
1320
+ "checklist",
1321
+ "chess-board",
1322
+ "commit-list",
1323
+ "confidence-meter",
1324
+ "coupon-code",
1325
+ "event-log",
1326
+ "file-dropzone",
1327
+ "form-summary",
1328
+ "fuel-bar",
1329
+ "funnel",
1330
+ "grade",
1331
+ "icon-tile",
1332
+ "kanban-board",
1333
+ "kpi-comparison",
1334
+ "leaderboard",
1335
+ "log-stream",
1336
+ "metrics-grid",
1337
+ "number-board",
1338
+ "org-chart-mini",
1339
+ "otp-input",
1340
+ "password-strength",
1341
+ "pill-group",
1342
+ "podium",
1343
+ "poll-bar",
1344
+ "pricing-tier",
1345
+ "priority-badge",
1346
+ "quick-poll-emoji",
1347
+ "rating",
1348
+ "rating-thumb",
1349
+ "reaction-bar",
1350
+ "read-receipt",
1351
+ "roadmap",
1352
+ "sankey",
1353
+ "search-result",
1354
+ "service-health",
1355
+ "share-buttons",
1356
+ "song-queue",
1357
+ "stopwatch",
1358
+ "tag-cloud",
1359
+ "terminal",
1360
+ "thread-summary",
1361
+ "timeline-vertical",
1362
+ "timezone-clock",
1363
+ "toc-nav",
1364
+ "token-list",
1365
+ "traffic-light",
1366
+ "treemap",
1367
+ "user-presence",
1368
+ "user-stack",
1369
+ "venn",
1370
+ "video-card",
1371
+ "voice-message",
1372
+ "weather-forecast"
1373
+ ]
1374
+ }
1375
+ },
1376
+ "required": ["source"]
1377
+ },
1378
+ {
1379
+ "properties": {
1380
+ "kind": {
1381
+ "enum": ["badge"]
1382
+ },
1383
+ "map": {
1384
+ "type": "array",
1385
+ "minItems": 1,
1386
+ "items": {
1387
+ "type": "object",
1388
+ "required": ["value", "color"],
1389
+ "additionalProperties": false,
1390
+ "properties": {
1391
+ "value": {
1392
+ "type": "string"
1393
+ },
1394
+ "color": {
1395
+ "type": "string"
1396
+ }
1397
+ }
1398
+ }
1399
+ }
1400
+ },
1401
+ "required": ["source"]
1402
+ },
1403
+ {
1404
+ "properties": {
1405
+ "kind": {
1406
+ "enum": [
1407
+ "array-bar",
1408
+ "candlestick",
1409
+ "circular-gauge",
1410
+ "gantt",
1411
+ "line-chart",
1412
+ "matrix",
1413
+ "sequence-timeline",
1414
+ "slope",
1415
+ "thermometer",
1416
+ "waterfall"
1417
+ ]
1418
+ }
1419
+ },
1420
+ "required": ["source", "min", "max"]
1421
+ },
1422
+ {
1423
+ "properties": {
1424
+ "kind": {
1425
+ "enum": ["attendance-grid"]
1426
+ }
1427
+ },
1428
+ "required": ["source", "membersSource"]
1429
+ },
1430
+ {
1431
+ "properties": {
1432
+ "kind": {
1433
+ "enum": ["bubble-chart"]
1434
+ }
1435
+ },
1436
+ "required": ["source", "xMin", "xMax", "yMin", "yMax", "rMin", "rMax"]
1437
+ },
1438
+ {
1439
+ "properties": {
1440
+ "kind": {
1441
+ "enum": ["bullet-chart"]
1442
+ }
1443
+ },
1444
+ "required": ["source", "targetSource", "max"]
1445
+ },
1446
+ {
1447
+ "properties": {
1448
+ "kind": {
1449
+ "enum": ["calendar-heatmap", "polar-area", "progress-group"]
1450
+ }
1451
+ },
1452
+ "required": ["source", "max"]
1453
+ },
1454
+ {
1455
+ "properties": {
1456
+ "kind": {
1457
+ "enum": ["diff-counter"]
1458
+ }
1459
+ },
1460
+ "required": ["additionsSource", "deletionsSource"]
1461
+ },
1462
+ {
1463
+ "properties": {
1464
+ "kind": {
1465
+ "enum": ["kpi-trend-tile"]
1466
+ }
1467
+ },
1468
+ "required": ["source", "prevSource", "historySource"]
1469
+ },
1470
+ {
1471
+ "properties": {
1472
+ "kind": {
1473
+ "enum": ["map-pin"]
1474
+ }
1475
+ },
1476
+ "required": ["source", "xMin", "xMax", "yMin", "yMax"]
1477
+ },
1478
+ {
1479
+ "properties": {
1480
+ "kind": {
1481
+ "enum": ["media-player"]
1482
+ }
1483
+ },
1484
+ "required": ["source", "durationSource", "playingSource"]
1485
+ },
1486
+ {
1487
+ "properties": {
1488
+ "kind": {
1489
+ "enum": ["mini-map"]
1490
+ }
1491
+ },
1492
+ "required": ["source", "canvasW", "canvasH"]
1493
+ },
1494
+ {
1495
+ "properties": {
1496
+ "kind": {
1497
+ "enum": ["order-status", "step-indicator"]
1498
+ }
1499
+ },
1500
+ "required": ["source", "stepsSource"]
1501
+ },
1502
+ {
1503
+ "properties": {
1504
+ "kind": {
1505
+ "enum": ["path-progress"]
1506
+ }
1507
+ },
1508
+ "required": ["source", "pathD"]
1509
+ },
1510
+ {
1511
+ "properties": {
1512
+ "kind": {
1513
+ "enum": ["price-tag"]
1514
+ }
1515
+ },
1516
+ "required": ["oldSource", "newSource"]
1517
+ },
1518
+ {
1519
+ "properties": {
1520
+ "kind": {
1521
+ "enum": ["spinner"]
1522
+ }
1523
+ },
1524
+ "required": ["source", "textSource"]
1525
+ },
1526
+ {
1527
+ "properties": {
1528
+ "kind": {
1529
+ "enum": ["stacked-bar"]
1530
+ }
1531
+ },
1532
+ "required": ["sourceA", "sourceB", "min", "max"]
1533
+ }
1534
+ ]
1535
+ }
1536
+ },
1537
+ "inputs": {
1538
+ "type": "array",
1539
+ "description": "読む人が動かすつまみ。 値を握り、箱の文字や部品がその値を追いかける。 箱ではないので縦列に載らず、図全体に 1 つの並びとして持つ。",
1540
+ "items": {
1541
+ "type": "object",
1542
+ "required": ["id", "kind"],
1543
+ "additionalProperties": false,
1544
+ "properties": {
1545
+ "id": {
1546
+ "type": "string",
1547
+ "minLength": 1
1548
+ },
1549
+ "kind": {
1550
+ "type": "string",
1551
+ "enum": [
1552
+ "color",
1553
+ "datetime",
1554
+ "dropdown",
1555
+ "multi-select",
1556
+ "number",
1557
+ "radio",
1558
+ "range",
1559
+ "slider",
1560
+ "stepper",
1561
+ "tabs",
1562
+ "text",
1563
+ "timeline",
1564
+ "toggle",
1565
+ "xypad"
1566
+ ]
1567
+ },
1568
+ "autoplay": {
1569
+ "type": "boolean"
1570
+ },
1571
+ "defaultHi": {
1572
+ "type": "number"
1573
+ },
1574
+ "defaultLo": {
1575
+ "type": "number"
1576
+ },
1577
+ "defaultSpeedIdx": {
1578
+ "type": "number"
1579
+ },
1580
+ "defaultValue": {
1581
+ "type": ["boolean", "number", "string"]
1582
+ },
1583
+ "defaultValues": {
1584
+ "type": "array",
1585
+ "items": {
1586
+ "type": "string"
1587
+ }
1588
+ },
1589
+ "defaultX": {
1590
+ "type": "number"
1591
+ },
1592
+ "defaultY": {
1593
+ "type": "number"
1594
+ },
1595
+ "duration": {
1596
+ "type": "number"
1597
+ },
1598
+ "label": {
1599
+ "type": "string"
1600
+ },
1601
+ "loop": {
1602
+ "type": "boolean"
1603
+ },
1604
+ "max": {
1605
+ "type": "number"
1606
+ },
1607
+ "maxLength": {
1608
+ "type": "number"
1609
+ },
1610
+ "min": {
1611
+ "type": "number"
1612
+ },
1613
+ "options": {
1614
+ "type": "array",
1615
+ "items": {
1616
+ "type": "string"
1617
+ }
1618
+ },
1619
+ "placeholder": {
1620
+ "type": "string"
1621
+ },
1622
+ "speeds": {
1623
+ "type": "array",
1624
+ "items": {
1625
+ "type": "number"
1626
+ }
1627
+ },
1628
+ "step": {
1629
+ "type": "number"
1630
+ },
1631
+ "xMax": {
1632
+ "type": "number"
1633
+ },
1634
+ "xMin": {
1635
+ "type": "number"
1636
+ },
1637
+ "yMax": {
1638
+ "type": "number"
1639
+ },
1640
+ "yMin": {
1641
+ "type": "number"
1642
+ }
1643
+ },
1644
+ "oneOf": [
1645
+ {
1646
+ "properties": {
1647
+ "kind": {
1648
+ "enum": ["color", "datetime", "text"]
1649
+ },
1650
+ "defaultValue": {
1651
+ "type": "string"
1652
+ }
1653
+ },
1654
+ "required": ["defaultValue"]
1655
+ },
1656
+ {
1657
+ "properties": {
1658
+ "kind": {
1659
+ "enum": ["dropdown", "radio", "tabs"]
1660
+ },
1661
+ "defaultValue": {
1662
+ "type": "string"
1663
+ }
1664
+ },
1665
+ "required": ["options", "defaultValue"]
1666
+ },
1667
+ {
1668
+ "properties": {
1669
+ "kind": {
1670
+ "enum": ["multi-select"]
1671
+ }
1672
+ },
1673
+ "required": ["options", "defaultValues"]
1674
+ },
1675
+ {
1676
+ "properties": {
1677
+ "kind": {
1678
+ "enum": ["number", "stepper"]
1679
+ },
1680
+ "defaultValue": {
1681
+ "type": "number"
1682
+ }
1683
+ },
1684
+ "required": ["defaultValue"]
1685
+ },
1686
+ {
1687
+ "properties": {
1688
+ "kind": {
1689
+ "enum": ["range"]
1690
+ }
1691
+ },
1692
+ "required": ["min", "max", "defaultLo", "defaultHi"]
1693
+ },
1694
+ {
1695
+ "properties": {
1696
+ "kind": {
1697
+ "enum": ["slider"]
1698
+ },
1699
+ "defaultValue": {
1700
+ "type": "number"
1701
+ }
1702
+ },
1703
+ "required": ["min", "max", "defaultValue"]
1704
+ },
1705
+ {
1706
+ "properties": {
1707
+ "kind": {
1708
+ "enum": ["timeline"]
1709
+ }
1710
+ },
1711
+ "required": ["duration"]
1712
+ },
1713
+ {
1714
+ "properties": {
1715
+ "kind": {
1716
+ "enum": ["toggle"]
1717
+ },
1718
+ "defaultValue": {
1719
+ "type": "boolean"
1720
+ }
1721
+ },
1722
+ "required": ["defaultValue"]
1723
+ },
1724
+ {
1725
+ "properties": {
1726
+ "kind": {
1727
+ "enum": ["xypad"]
1728
+ }
1729
+ },
1730
+ "required": ["xMin", "xMax", "yMin", "yMax", "defaultX", "defaultY"]
1731
+ }
1732
+ ]
1733
+ }
1734
+ },
1735
+ "formulas": {
1736
+ "type": "object",
1737
+ "description": "つまみの値から決まる値。 名前を鍵、式を値に書く。 `values` とは経路が別で、式は名前を中括弧で囲わない (例 \"input * 2\")。",
1738
+ "additionalProperties": {
1739
+ "type": "string",
1740
+ "minLength": 1,
1741
+ "pattern": "\\S"
1742
+ },
1743
+ "propertyNames": {
1744
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
1745
+ }
1746
+ },
1747
+ "events": {
1748
+ "type": "array",
1749
+ "description": "押下などの出来事で動く仕掛け。 相手は名前で指す (box / lane / arrow / diagram のどれか 1 つ)。",
1750
+ "items": {
1751
+ "type": "object",
1752
+ "required": ["on", "handler"],
1753
+ "additionalProperties": false,
1754
+ "properties": {
1755
+ "on": {
1756
+ "type": "string",
1757
+ "enum": [
1758
+ "click",
1759
+ "hover",
1760
+ "double-click",
1761
+ "long-press",
1762
+ "drag",
1763
+ "drop",
1764
+ "keydown",
1765
+ "focus",
1766
+ "blur"
1767
+ ]
1768
+ },
1769
+ "handler": {
1770
+ "type": "string",
1771
+ "minLength": 1,
1772
+ "pattern": "\\S"
1773
+ },
1774
+ "box": {
1775
+ "type": "string",
1776
+ "minLength": 1,
1777
+ "description": "箱の名前"
1778
+ },
1779
+ "lane": {
1780
+ "type": "string",
1781
+ "minLength": 1,
1782
+ "description": "縦列の名前"
1783
+ },
1784
+ "arrow": {
1785
+ "type": "string",
1786
+ "minLength": 1,
1787
+ "pattern": "^(?!.*->.*->)\\s*\\S(?:.*\\S)?\\s*->\\s*\\S(?:.*\\S)?\\s*$",
1788
+ "description": "矢印。 `A -> B` の形で両端の名前を書く"
1789
+ },
1790
+ "diagram": {
1791
+ "const": true,
1792
+ "description": "図全体を指す"
1793
+ }
1794
+ },
1795
+ "oneOf": [
1796
+ {
1797
+ "required": ["box"]
1798
+ },
1799
+ {
1800
+ "required": ["lane"]
1801
+ },
1802
+ {
1803
+ "required": ["arrow"]
1804
+ },
1805
+ {
1806
+ "required": ["diagram"]
1807
+ }
1808
+ ]
1809
+ }
1810
+ },
1811
+ "scrolls": {
1812
+ "type": "object",
1813
+ "description": "巻き上げに応じて進む値。 画面を巻き上げた量から 0 から 1 の進み具合を作る。",
1814
+ "propertyNames": {
1815
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
1816
+ },
1817
+ "additionalProperties": {
1818
+ "type": "object",
1819
+ "additionalProperties": false,
1820
+ "properties": {
1821
+ "start": {
1822
+ "type": "number",
1823
+ "minimum": 0,
1824
+ "maximum": 1,
1825
+ "description": "進み具合が 0 になる画面上の位置 (0 が上端、1 が下端)"
1826
+ },
1827
+ "end": {
1828
+ "type": "number",
1829
+ "minimum": 0,
1830
+ "maximum": 1,
1831
+ "description": "進み具合が 1 になる画面上の位置"
1832
+ },
1833
+ "scrub": {
1834
+ "type": "number",
1835
+ "minimum": 0,
1836
+ "maximum": 1,
1837
+ "description": "巻き上げへの追随度合い (0 が段階的、1 が連続)"
1838
+ },
1839
+ "label": {
1840
+ "type": "string"
1841
+ }
1842
+ }
1843
+ }
506
1844
  }
507
1845
  }
508
1846
  }