@fuaran-ui/conformance 0.1.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.
Files changed (301) hide show
  1. package/LICENSE +215 -0
  2. package/README.md +85 -0
  3. package/corpus/elicitation/elc-ans-accept-full.json +1 -0
  4. package/corpus/elicitation/elc-ans-accept-int-for-float.json +1 -0
  5. package/corpus/elicitation/elc-ans-accept-minimal.json +1 -0
  6. package/corpus/elicitation/elc-ans-reject-enum.json +1 -0
  7. package/corpus/elicitation/elc-ans-reject-float-range.json +1 -0
  8. package/corpus/elicitation/elc-ans-reject-int-range.json +1 -0
  9. package/corpus/elicitation/elc-ans-reject-missing-required.json +1 -0
  10. package/corpus/elicitation/elc-ans-reject-string-len.json +1 -0
  11. package/corpus/elicitation/elc-ans-reject-type-mismatch.json +1 -0
  12. package/corpus/elicitation/elc-ans-reject-undeclared.json +1 -0
  13. package/corpus/elicitation/elc-full.json +1 -0
  14. package/corpus/elicitation/elc-minimal.json +1 -0
  15. package/corpus/elicitation/elc-out-answered.json +1 -0
  16. package/corpus/elicitation/elc-out-declined.json +1 -0
  17. package/corpus/elicitation/elc-out-reject-empty-id.json +1 -0
  18. package/corpus/elicitation/elc-out-reject-missing-answer.json +1 -0
  19. package/corpus/elicitation/elc-out-reject-stray-key.json +1 -0
  20. package/corpus/elicitation/elc-out-reject-unknown-type.json +1 -0
  21. package/corpus/elicitation/elc-out-superseded-anon.json +1 -0
  22. package/corpus/elicitation/elc-out-superseded-by.json +1 -0
  23. package/corpus/elicitation/elc-out-timedout.json +1 -0
  24. package/corpus/elicitation/elc-reject-bad-space.json +1 -0
  25. package/corpus/elicitation/elc-reject-bad-timeout.json +1 -0
  26. package/corpus/elicitation/elc-reject-bad-version.json +1 -0
  27. package/corpus/elicitation/elc-reject-default-nonconformant.json +1 -0
  28. package/corpus/elicitation/elc-reject-duplicate-field.json +1 -0
  29. package/corpus/elicitation/elc-reject-empty-contract.json +1 -0
  30. package/corpus/elicitation/elc-reject-empty-id.json +1 -0
  31. package/corpus/elicitation/elc-reject-missing-version.json +1 -0
  32. package/corpus/elicitation/elc-reject-stray-key.json +1 -0
  33. package/corpus/elicitation/elc-reject-tree-decode.json +1 -0
  34. package/corpus/elicitation/elc-reject-unknown-node.json +1 -0
  35. package/corpus/envelope/envelope-foreign-major.json +1 -0
  36. package/corpus/envelope/envelope-foreign-namespace.json +1 -0
  37. package/corpus/envelope/envelope-known-current.json +1 -0
  38. package/corpus/envelope/envelope-unknown-behind.json +1 -0
  39. package/corpus/envelope/envelope-unknown-malformed-required-profile.json +1 -0
  40. package/corpus/envelope/envelope-unknown-required-profile.json +1 -0
  41. package/corpus/lenient/legacy-upgrade-card.expected.json +1 -0
  42. package/corpus/lenient/legacy-upgrade-card.json +1 -0
  43. package/corpus/lenient/legacy-upgrade-dashboard.expected.json +1 -0
  44. package/corpus/lenient/legacy-upgrade-dashboard.json +1 -0
  45. package/corpus/lenient/legacy-upgrade-gridlayout.expected.json +1 -0
  46. package/corpus/lenient/legacy-upgrade-gridlayout.json +1 -0
  47. package/corpus/lenient/legacy-upgrade-stack.expected.json +1 -0
  48. package/corpus/lenient/legacy-upgrade-stack.json +1 -0
  49. package/corpus/lenient/legacy-upgrade-table.expected.json +1 -0
  50. package/corpus/lenient/legacy-upgrade-table.json +1 -0
  51. package/corpus/lenient/lenient-022-lvr-emphasis-loud.expected.json +1 -0
  52. package/corpus/lenient/lenient-022-lvr-emphasis-loud.json +1 -0
  53. package/corpus/lenient/lenient-022-lvr-emphasis-normal.expected.json +1 -0
  54. package/corpus/lenient/lenient-022-lvr-emphasis-normal.json +1 -0
  55. package/corpus/lenient/lenient-460-alias-emphasis-muted.expected.json +1 -0
  56. package/corpus/lenient/lenient-460-alias-emphasis-muted.json +1 -0
  57. package/corpus/lenient/lenient-460-alias-emphasis-strong.expected.json +1 -0
  58. package/corpus/lenient/lenient-460-alias-emphasis-strong.json +1 -0
  59. package/corpus/lenient/lenient-460-alias-tone-danger.expected.json +1 -0
  60. package/corpus/lenient/lenient-460-alias-tone-danger.json +1 -0
  61. package/corpus/lenient/lenient-460-alias-tone-positive.expected.json +1 -0
  62. package/corpus/lenient/lenient-460-alias-tone-positive.json +1 -0
  63. package/corpus/lenient/lenient-460-explicit-default-column.expected.json +1 -0
  64. package/corpus/lenient/lenient-460-explicit-default-column.json +1 -0
  65. package/corpus/lenient/lenient-460-explicit-default-metric.expected.json +1 -0
  66. package/corpus/lenient/lenient-460-explicit-default-metric.json +1 -0
  67. package/corpus/lenient/lenient-460-explicit-default-style.expected.json +1 -0
  68. package/corpus/lenient/lenient-460-explicit-default-style.json +1 -0
  69. package/corpus/lenient/lenient-596-form-explicit-auto-state.expected.json +1 -0
  70. package/corpus/lenient/lenient-596-form-explicit-auto-state.json +1 -0
  71. package/corpus/lenient/lenient-alias-call-url.expected.json +1 -0
  72. package/corpus/lenient/lenient-alias-call-url.json +1 -0
  73. package/corpus/lenient/lenient-alias-card-title-metric-value.expected.json +1 -0
  74. package/corpus/lenient/lenient-alias-card-title-metric-value.json +1 -0
  75. package/corpus/lenient/lenient-alias-datagrid-data-column-type.expected.json +1 -0
  76. package/corpus/lenient/lenient-alias-datagrid-data-column-type.json +1 -0
  77. package/corpus/lenient/lenient-alias-form-field-name.expected.json +1 -0
  78. package/corpus/lenient/lenient-alias-form-field-name.json +1 -0
  79. package/corpus/lenient/lenient-alias-grid-columns-row.expected.json +1 -0
  80. package/corpus/lenient/lenient-alias-grid-columns-row.json +1 -0
  81. package/corpus/lenient/lenient-alias-navigate-href.expected.json +1 -0
  82. package/corpus/lenient/lenient-alias-navigate-href.json +1 -0
  83. package/corpus/lenient/lenient-alias-select-options-query-deps.expected.json +1 -0
  84. package/corpus/lenient/lenient-alias-select-options-query-deps.json +1 -0
  85. package/corpus/lenient/lenient-bare-text-button-label.expected.json +1 -0
  86. package/corpus/lenient/lenient-bare-text-button-label.json +1 -0
  87. package/corpus/lenient/lenient-bare-text-callout.expected.json +1 -0
  88. package/corpus/lenient/lenient-bare-text-callout.json +1 -0
  89. package/corpus/lenient/lenient-bare-text-heading.expected.json +1 -0
  90. package/corpus/lenient/lenient-bare-text-heading.json +1 -0
  91. package/corpus/lenient/lenient-bare-text-markdown.expected.json +1 -0
  92. package/corpus/lenient/lenient-bare-text-markdown.json +1 -0
  93. package/corpus/lenient/lenient-binding-bound-wrapper.expected.json +1 -0
  94. package/corpus/lenient/lenient-binding-bound-wrapper.json +1 -0
  95. package/corpus/lenient/lenient-emphasis-cross-vocab.expected.json +1 -0
  96. package/corpus/lenient/lenient-emphasis-cross-vocab.json +1 -0
  97. package/corpus/lenient/lenient-fact-explicit-defaults.expected.json +1 -0
  98. package/corpus/lenient/lenient-fact-explicit-defaults.json +1 -0
  99. package/corpus/lenient/lenient-null-static-options.expected.json +1 -0
  100. package/corpus/lenient/lenient-null-static-options.json +1 -0
  101. package/corpus/lenient/lenient-opaque-static-markers.expected.json +1 -0
  102. package/corpus/lenient/lenient-opaque-static-markers.json +1 -0
  103. package/corpus/lenient/lenient-opaque-static-options.expected.json +1 -0
  104. package/corpus/lenient/lenient-opaque-static-options.json +1 -0
  105. package/corpus/lenient/lenient-opaque-static-series.expected.json +1 -0
  106. package/corpus/lenient/lenient-opaque-static-series.json +1 -0
  107. package/corpus/lenient/lenient-opaque-static-values.expected.json +1 -0
  108. package/corpus/lenient/lenient-opaque-static-values.json +1 -0
  109. package/corpus/lenient/lenient-shape-binding-scalar-fraction.expected.json +1 -0
  110. package/corpus/lenient/lenient-shape-binding-scalar-fraction.json +1 -0
  111. package/corpus/lenient/lenient-shape-grid-no-cols.expected.json +1 -0
  112. package/corpus/lenient/lenient-shape-grid-no-cols.json +1 -0
  113. package/corpus/lenient/lenient-shape-grid-template-no-cols.expected.json +1 -0
  114. package/corpus/lenient/lenient-shape-grid-template-no-cols.json +1 -0
  115. package/corpus/lenient/lenient-shape-options-bare-strings.expected.json +1 -0
  116. package/corpus/lenient/lenient-shape-options-bare-strings.json +1 -0
  117. package/corpus/lenient/lenient-shape-params-map.expected.json +1 -0
  118. package/corpus/lenient/lenient-shape-params-map.json +1 -0
  119. package/corpus/lenient/lenient-shape-segmented-orientation-omitted.expected.json +1 -0
  120. package/corpus/lenient/lenient-shape-segmented-orientation-omitted.json +1 -0
  121. package/corpus/lenient/lenient-shape-static-envelope-plain-scalars.expected.json +1 -0
  122. package/corpus/lenient/lenient-shape-static-envelope-plain-scalars.json +1 -0
  123. package/corpus/lenient/lenient-transform-bare-columns.expected.json +1 -0
  124. package/corpus/lenient/lenient-transform-bare-columns.json +1 -0
  125. package/corpus/lenient/lenient-transform-epoch-timestamps.expected.json +1 -0
  126. package/corpus/lenient/lenient-transform-epoch-timestamps.json +1 -0
  127. package/corpus/lenient/lenient-transform-expr-spellings.expected.json +1 -0
  128. package/corpus/lenient/lenient-transform-expr-spellings.json +1 -0
  129. package/corpus/lenient/lenient-transform-flat-contains.expected.json +1 -0
  130. package/corpus/lenient/lenient-transform-flat-contains.json +1 -0
  131. package/corpus/lenient/lenient-transform-flat-filter.expected.json +1 -0
  132. package/corpus/lenient/lenient-transform-flat-filter.json +1 -0
  133. package/corpus/lenient/lenient-transform-flat-or.expected.json +1 -0
  134. package/corpus/lenient/lenient-transform-flat-or.json +1 -0
  135. package/corpus/lenient/lenient-transform-flat-scalar-fn.expected.json +1 -0
  136. package/corpus/lenient/lenient-transform-flat-scalar-fn.json +1 -0
  137. package/corpus/lenient/lenient-transform-schemaless.expected.json +1 -0
  138. package/corpus/lenient/lenient-transform-schemaless.json +1 -0
  139. package/corpus/lenient/lenient-transform-step-aliases.expected.json +1 -0
  140. package/corpus/lenient/lenient-transform-step-aliases.json +1 -0
  141. package/corpus/lenient/lenient-transform-values-only-columns.expected.json +1 -0
  142. package/corpus/lenient/lenient-transform-values-only-columns.json +1 -0
  143. package/corpus/lenient/lenient-window-cumsum-legacy.expected.json +1 -0
  144. package/corpus/lenient/lenient-window-cumsum-legacy.json +1 -0
  145. package/corpus/manifest.json +2000 -0
  146. package/corpus/nodes/badge-1.json +1 -0
  147. package/corpus/nodes/boundary-1.json +1 -0
  148. package/corpus/nodes/btn-1.json +1 -0
  149. package/corpus/nodes/btn-copy-link.json +1 -0
  150. package/corpus/nodes/btn-invoke.json +1 -0
  151. package/corpus/nodes/btn-read-workbook.json +1 -0
  152. package/corpus/nodes/call-into.json +1 -0
  153. package/corpus/nodes/callout-1.json +1 -0
  154. package/corpus/nodes/card-1.json +1 -0
  155. package/corpus/nodes/chart-1.json +1 -0
  156. package/corpus/nodes/code-1.json +1 -0
  157. package/corpus/nodes/composite-root.json +1 -0
  158. package/corpus/nodes/controls-closure.json +1 -0
  159. package/corpus/nodes/controls-declarative.json +1 -0
  160. package/corpus/nodes/custom-1.json +1 -0
  161. package/corpus/nodes/custom-bounded-1.json +1 -0
  162. package/corpus/nodes/custom-bounded-advisory.json +1 -0
  163. package/corpus/nodes/dash-empty.json +1 -0
  164. package/corpus/nodes/discl-1.json +1 -0
  165. package/corpus/nodes/drawing-1.json +1 -0
  166. package/corpus/nodes/drawing-empty.json +1 -0
  167. package/corpus/nodes/fact-1.json +1 -0
  168. package/corpus/nodes/filterable-static-dashboard.json +1 -0
  169. package/corpus/nodes/filters-1.json +1 -0
  170. package/corpus/nodes/filters-declarative.json +1 -0
  171. package/corpus/nodes/filters-segmented.json +1 -0
  172. package/corpus/nodes/form-1.json +1 -0
  173. package/corpus/nodes/form-date.json +1 -0
  174. package/corpus/nodes/form-declarative-minimal.json +1 -0
  175. package/corpus/nodes/form-declarative.json +1 -0
  176. package/corpus/nodes/form-local-1.json +1 -0
  177. package/corpus/nodes/form-local-debounce.json +1 -0
  178. package/corpus/nodes/form-ranged.json +1 -0
  179. package/corpus/nodes/form-segmented.json +1 -0
  180. package/corpus/nodes/format-bindings.json +1 -0
  181. package/corpus/nodes/frag-decl-1.json +1 -0
  182. package/corpus/nodes/frag-decl-param.json +1 -0
  183. package/corpus/nodes/frag-ref-1.json +1 -0
  184. package/corpus/nodes/frag-ref-args.json +1 -0
  185. package/corpus/nodes/glayout-1.json +1 -0
  186. package/corpus/nodes/glayout-tpl-autofit.json +1 -0
  187. package/corpus/nodes/glayout-tpl-fixed.json +1 -0
  188. package/corpus/nodes/glayout-tpl-ratio.json +1 -0
  189. package/corpus/nodes/grid-1.json +1 -0
  190. package/corpus/nodes/grid-field-named.json +1 -0
  191. package/corpus/nodes/grid-transform-param.json +1 -0
  192. package/corpus/nodes/grid-transform.json +1 -0
  193. package/corpus/nodes/heading-1.json +1 -0
  194. package/corpus/nodes/image-1.json +1 -0
  195. package/corpus/nodes/link-1.json +1 -0
  196. package/corpus/nodes/list-1.json +1 -0
  197. package/corpus/nodes/lvr-1.json +1 -0
  198. package/corpus/nodes/map-1.json +1 -0
  199. package/corpus/nodes/markdown-1.json +1 -0
  200. package/corpus/nodes/master-detail-preselected.json +1 -0
  201. package/corpus/nodes/math-1.json +1 -0
  202. package/corpus/nodes/metric-1.json +1 -0
  203. package/corpus/nodes/metric-float-17sig.json +1 -0
  204. package/corpus/nodes/metric-float-bigint.json +1 -0
  205. package/corpus/nodes/metric-float-exp-neg.json +1 -0
  206. package/corpus/nodes/metric-float-exp-pos.json +1 -0
  207. package/corpus/nodes/metric-invoke.json +1 -0
  208. package/corpus/nodes/modal-1.json +1 -0
  209. package/corpus/nodes/mount-1.json +1 -0
  210. package/corpus/nodes/mount-2.json +1 -0
  211. package/corpus/nodes/multiselect-1.json +1 -0
  212. package/corpus/nodes/progress-1.json +1 -0
  213. package/corpus/nodes/query-dependson.json +1 -0
  214. package/corpus/nodes/scalar-transform-composition.json +1 -0
  215. package/corpus/nodes/scroll-1.json +1 -0
  216. package/corpus/nodes/select-1.json +1 -0
  217. package/corpus/nodes/skel-1.json +1 -0
  218. package/corpus/nodes/spark-1.json +1 -0
  219. package/corpus/nodes/split-1.json +1 -0
  220. package/corpus/nodes/stack-1.json +1 -0
  221. package/corpus/nodes/step-1.json +1 -0
  222. package/corpus/nodes/style-role-voice-1.json +1 -0
  223. package/corpus/nodes/summary-1.json +1 -0
  224. package/corpus/nodes/switch-1.json +1 -0
  225. package/corpus/nodes/table-1.json +1 -0
  226. package/corpus/nodes/tabs-1.json +1 -0
  227. package/corpus/nodes/tabs-explicit-1.json +1 -0
  228. package/corpus/nodes/toast-1.json +1 -0
  229. package/corpus/nodes/upload-1.json +1 -0
  230. package/corpus/ops/op-batch.json +1 -0
  231. package/corpus/ops/op-editnode.json +1 -0
  232. package/corpus/ops/op-insertchild.json +1 -0
  233. package/corpus/ops/op-movenode.json +1 -0
  234. package/corpus/ops/op-removenode.json +1 -0
  235. package/corpus/ops/op-reorderchildren.json +1 -0
  236. package/corpus/ops/op-replacebinding.json +1 -0
  237. package/corpus/ops/op-replaceroot.json +1 -0
  238. package/corpus/ops/op-updateprop-nested-badfield.json +1 -0
  239. package/corpus/ops/op-updateprop-nested-badindex.json +1 -0
  240. package/corpus/ops/op-updateprop-nested-column0-label.json +1 -0
  241. package/corpus/ops/op-updateprop-nested-column1-label.json +1 -0
  242. package/corpus/ops/op-updateprop-nested-field0-required.json +1 -0
  243. package/corpus/ops/op-updateprop-nested-field1-required.json +1 -0
  244. package/corpus/ops/op-updateprop-nested-malformed.json +1 -0
  245. package/corpus/ops/op-updateprop-nested-object-value.json +1 -0
  246. package/corpus/ops/op-updateprop-nested-yfield0.json +1 -0
  247. package/corpus/ops/op-updateprop-nested-yfield1.json +1 -0
  248. package/corpus/ops/op-updateprop.json +1 -0
  249. package/corpus/ops/op-updatestate.json +1 -0
  250. package/corpus/ops/op-updatestyle (phase 147 role=eyebrow + voice=structural).json +1 -0
  251. package/corpus/ops/op-updatestyle.json +1 -0
  252. package/corpus/reject/reject-emptynodeid.json +1 -0
  253. package/corpus/reject/reject-invalid-empty.json +0 -0
  254. package/corpus/reject/reject-invalid-garbage.json +1 -0
  255. package/corpus/reject/reject-invalid-truncated.json +1 -0
  256. package/corpus/reject/reject-missing-binding-type.json +1 -0
  257. package/corpus/reject/reject-missing-custom-moduleid.json +1 -0
  258. package/corpus/reject/reject-missing-markdown-text.json +1 -0
  259. package/corpus/reject/reject-missing-metric-value.json +1 -0
  260. package/corpus/reject/reject-missing-mount-scopeid.json +1 -0
  261. package/corpus/reject/reject-missing-node-id.json +1 -0
  262. package/corpus/reject/reject-missing-node-kind.json +1 -0
  263. package/corpus/reject/reject-missing-switch-cases.json +1 -0
  264. package/corpus/reject/reject-missing-switch-default.json +1 -0
  265. package/corpus/reject/reject-missing-switch-statekey.json +1 -0
  266. package/corpus/reject/reject-null-action-aitool-args.json +1 -0
  267. package/corpus/reject/reject-null-action-notify-payload.json +1 -0
  268. package/corpus/reject/reject-null-action-setstate-value.json +1 -0
  269. package/corpus/reject/reject-null-custom-prop.json +1 -0
  270. package/corpus/reject/reject-null-i18n-arg.json +1 -0
  271. package/corpus/reject/reject-null-updateprop-value.json +1 -0
  272. package/corpus/reject/reject-op-insertchild-empty-childid.json +1 -0
  273. package/corpus/reject/reject-op-insertchild-missing-parentid.json +1 -0
  274. package/corpus/reject/reject-op-missing-type.json +1 -0
  275. package/corpus/reject/reject-op-reorderchildren-wrongtype.json +1 -0
  276. package/corpus/reject/reject-op-unknown-yeet.json +1 -0
  277. package/corpus/reject/reject-op-updateprop-missing-path.json +1 -0
  278. package/corpus/reject/reject-unknown-binding.json +1 -0
  279. package/corpus/reject/reject-unknown-drawing-curve-command.json +1 -0
  280. package/corpus/reject/reject-unknown-drawing-shape.json +1 -0
  281. package/corpus/reject/reject-unknown-mount-direction.json +1 -0
  282. package/corpus/reject/reject-unknown-textsource.json +1 -0
  283. package/corpus/reject/reject-unknown-tone.json +1 -0
  284. package/corpus/reject/reject-wrongnodekind-sparkler.json +1 -0
  285. package/corpus/reject/reject-wrongnodekind-widget.json +1 -0
  286. package/corpus/reject/reject-wrongtype-dashboard-children.json +1 -0
  287. package/corpus/reject/reject-wrongtype-discriminator.json +1 -0
  288. package/corpus/reject/reject-wrongtype-heading-level.json +1 -0
  289. package/corpus/reject/reject-wrongtype-id.json +1 -0
  290. package/corpus/reject/reject-wrongtype-kind.json +1 -0
  291. package/corpus/reject/reject-wrongtype-style-tone.json +1 -0
  292. package/corpus/schema.json +4396 -0
  293. package/dist/cli.js +612 -0
  294. package/dist/cli.js.map +1 -0
  295. package/dist/index.cjs +579 -0
  296. package/dist/index.cjs.map +1 -0
  297. package/dist/index.d.cts +159 -0
  298. package/dist/index.d.ts +159 -0
  299. package/dist/index.js +570 -0
  300. package/dist/index.js.map +1 -0
  301. package/package.json +59 -0
@@ -0,0 +1,4396 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://fuaran.dev/wire-format/v1/schema.json",
4
+ "title": "Fuaran UI wire format (v1)",
5
+ "description": "Canonical JSON wire format for the Fuaran UI tree (Node) and tree edits (TreeOp), wire format v1. Generated from Fuaran.UI.Types via Fuaran.UI.Ops.SchemaGen; describes the output of CanonicalJson.encode* / the input JsonDecode.decode* accepts. See fuaran/docs/WIRE_FORMAT.md.",
6
+ "oneOf": [
7
+ {
8
+ "$ref": "#/$defs/Node"
9
+ },
10
+ {
11
+ "$ref": "#/$defs/TreeOp"
12
+ }
13
+ ],
14
+ "$defs": {
15
+ "Orientation": {
16
+ "type": "string",
17
+ "enum": [
18
+ "Vertical",
19
+ "Horizontal"
20
+ ]
21
+ },
22
+ "BadgeVariant": {
23
+ "type": "string",
24
+ "enum": [
25
+ "Neutral",
26
+ "Brand",
27
+ "Success",
28
+ "Warning",
29
+ "Critical",
30
+ "Info"
31
+ ]
32
+ },
33
+ "ButtonVariant": {
34
+ "type": "string",
35
+ "enum": [
36
+ "Primary",
37
+ "Secondary",
38
+ "Tertiary",
39
+ "Destructive"
40
+ ]
41
+ },
42
+ "HeadingVariant": {
43
+ "type": "string",
44
+ "enum": [
45
+ "Standard",
46
+ "Eyebrow",
47
+ "Caption",
48
+ "Lead"
49
+ ]
50
+ },
51
+ "ImageVariant": {
52
+ "type": "string",
53
+ "enum": [
54
+ "Default",
55
+ "Avatar",
56
+ "Rounded"
57
+ ]
58
+ },
59
+ "ScrollOrientation": {
60
+ "type": "string",
61
+ "enum": [
62
+ "Vertical",
63
+ "Horizontal",
64
+ "Both"
65
+ ]
66
+ },
67
+ "DateVariant": {
68
+ "type": "string",
69
+ "enum": [
70
+ "Date",
71
+ "Time",
72
+ "DateTime"
73
+ ]
74
+ },
75
+ "MathDisplay": {
76
+ "type": "string",
77
+ "enum": [
78
+ "Inline",
79
+ "Block"
80
+ ]
81
+ },
82
+ "ToneVariant": {
83
+ "type": "string",
84
+ "enum": [
85
+ "Default",
86
+ "Subdued",
87
+ "Brand",
88
+ "Success",
89
+ "Warning",
90
+ "Critical",
91
+ "Info"
92
+ ]
93
+ },
94
+ "StyleWeight": {
95
+ "type": "string",
96
+ "enum": [
97
+ "Compact",
98
+ "Standard",
99
+ "Spacious"
100
+ ]
101
+ },
102
+ "Emphasis": {
103
+ "type": "string",
104
+ "enum": [
105
+ "Quiet",
106
+ "Normal",
107
+ "Loud"
108
+ ]
109
+ },
110
+ "StyleRole": {
111
+ "type": "string",
112
+ "enum": [
113
+ "None",
114
+ "Eyebrow",
115
+ "Data",
116
+ "Lede",
117
+ "Caption"
118
+ ]
119
+ },
120
+ "FontVoice": {
121
+ "type": "string",
122
+ "enum": [
123
+ "Default",
124
+ "Display",
125
+ "Structural"
126
+ ]
127
+ },
128
+ "ChartKind": {
129
+ "type": "string",
130
+ "enum": [
131
+ "Line",
132
+ "Bar",
133
+ "Area",
134
+ "Pie",
135
+ "Scatter",
136
+ "Heatmap"
137
+ ]
138
+ },
139
+ "LiveRegionKind": {
140
+ "type": "string",
141
+ "enum": [
142
+ "polite",
143
+ "assertive",
144
+ "off"
145
+ ]
146
+ },
147
+ "HashStrictness": {
148
+ "type": "string",
149
+ "enum": [
150
+ "StrictReplay",
151
+ "AdvisoryWarning",
152
+ "Enforced"
153
+ ]
154
+ },
155
+ "DateStyle": {
156
+ "type": "string",
157
+ "enum": [
158
+ "Short",
159
+ "Medium",
160
+ "Long",
161
+ "Full"
162
+ ]
163
+ },
164
+ "RelativeTimeUnit": {
165
+ "type": "string",
166
+ "enum": [
167
+ "Second",
168
+ "Minute",
169
+ "Hour",
170
+ "Day",
171
+ "Week",
172
+ "Month",
173
+ "Year"
174
+ ]
175
+ },
176
+ "FileReadEncoding": {
177
+ "type": "string",
178
+ "enum": [
179
+ "Text",
180
+ "Base64",
181
+ "DataUrl"
182
+ ]
183
+ },
184
+ "AriaRole": {
185
+ "type": "string"
186
+ },
187
+ "TextSource": {
188
+ "oneOf": [
189
+ {
190
+ "type": "string"
191
+ },
192
+ {
193
+ "oneOf": [
194
+ {
195
+ "type": "object",
196
+ "properties": {
197
+ "$type": {
198
+ "const": "Literal"
199
+ },
200
+ "text": {
201
+ "type": "string"
202
+ }
203
+ },
204
+ "required": [
205
+ "$type",
206
+ "text"
207
+ ]
208
+ },
209
+ {
210
+ "type": "object",
211
+ "properties": {
212
+ "$type": {
213
+ "const": "Bound"
214
+ },
215
+ "binding": {
216
+ "$ref": "#/$defs/Binding"
217
+ }
218
+ },
219
+ "required": [
220
+ "$type",
221
+ "binding"
222
+ ]
223
+ },
224
+ {
225
+ "type": "object",
226
+ "properties": {
227
+ "$type": {
228
+ "const": "I18n"
229
+ },
230
+ "args": {
231
+ "type": "object",
232
+ "additionalProperties": {
233
+ "not": {
234
+ "type": "null"
235
+ }
236
+ }
237
+ },
238
+ "key": {
239
+ "type": "string"
240
+ }
241
+ },
242
+ "required": [
243
+ "$type",
244
+ "args",
245
+ "key"
246
+ ]
247
+ }
248
+ ]
249
+ }
250
+ ]
251
+ },
252
+ "Binding": {
253
+ "oneOf": [
254
+ {
255
+ "type": "object",
256
+ "properties": {
257
+ "$type": {
258
+ "const": "Static"
259
+ },
260
+ "value": true
261
+ },
262
+ "required": [
263
+ "$type",
264
+ "value"
265
+ ]
266
+ },
267
+ {
268
+ "type": "object",
269
+ "properties": {
270
+ "$type": {
271
+ "const": "Query"
272
+ },
273
+ "dependsOn": {
274
+ "type": "array",
275
+ "items": {
276
+ "type": "string"
277
+ }
278
+ },
279
+ "name": {
280
+ "type": "string"
281
+ }
282
+ },
283
+ "required": [
284
+ "$type",
285
+ "name"
286
+ ]
287
+ },
288
+ {
289
+ "type": "object",
290
+ "properties": {
291
+ "$type": {
292
+ "const": "Filter"
293
+ },
294
+ "defaultValue": true,
295
+ "name": {
296
+ "type": "string"
297
+ }
298
+ },
299
+ "required": [
300
+ "$type",
301
+ "name"
302
+ ]
303
+ },
304
+ {
305
+ "type": "object",
306
+ "properties": {
307
+ "$type": {
308
+ "const": "Selection"
309
+ },
310
+ "defaultValue": true,
311
+ "field": {
312
+ "type": "string"
313
+ },
314
+ "nodeId": {
315
+ "type": "string"
316
+ }
317
+ },
318
+ "required": [
319
+ "$type",
320
+ "nodeId"
321
+ ]
322
+ },
323
+ {
324
+ "type": "object",
325
+ "properties": {
326
+ "$type": {
327
+ "const": "State"
328
+ },
329
+ "defaultValue": true,
330
+ "key": {
331
+ "type": "string"
332
+ }
333
+ },
334
+ "required": [
335
+ "$type",
336
+ "defaultValue",
337
+ "key"
338
+ ]
339
+ },
340
+ {
341
+ "type": "object",
342
+ "properties": {
343
+ "$type": {
344
+ "const": "Computed"
345
+ },
346
+ "fn": {
347
+ "const": "<closure>"
348
+ }
349
+ },
350
+ "required": [
351
+ "$type",
352
+ "fn"
353
+ ]
354
+ },
355
+ {
356
+ "type": "object",
357
+ "properties": {
358
+ "$type": {
359
+ "const": "I18n"
360
+ },
361
+ "args": {
362
+ "type": "object",
363
+ "additionalProperties": {
364
+ "$ref": "#/$defs/Binding"
365
+ }
366
+ },
367
+ "key": {
368
+ "type": "string"
369
+ }
370
+ },
371
+ "required": [
372
+ "$type",
373
+ "key"
374
+ ]
375
+ },
376
+ {
377
+ "type": "object",
378
+ "properties": {
379
+ "$type": {
380
+ "const": "Local"
381
+ },
382
+ "flushOn": {
383
+ "$ref": "#/$defs/LocalFlushTrigger"
384
+ },
385
+ "format": {
386
+ "const": "<closure>"
387
+ },
388
+ "initialFrom": {
389
+ "$ref": "#/$defs/Binding"
390
+ },
391
+ "onCommit": {
392
+ "const": "<closure>"
393
+ },
394
+ "parse": {
395
+ "const": "<closure>"
396
+ }
397
+ },
398
+ "required": [
399
+ "$type",
400
+ "flushOn",
401
+ "format",
402
+ "initialFrom",
403
+ "onCommit",
404
+ "parse"
405
+ ]
406
+ },
407
+ {
408
+ "type": "object",
409
+ "properties": {
410
+ "$type": {
411
+ "const": "Format"
412
+ },
413
+ "format": {
414
+ "$ref": "#/$defs/Format"
415
+ },
416
+ "locale": {
417
+ "$ref": "#/$defs/LocaleSource"
418
+ },
419
+ "source": {
420
+ "$ref": "#/$defs/Binding"
421
+ }
422
+ },
423
+ "required": [
424
+ "$type",
425
+ "format",
426
+ "locale",
427
+ "source"
428
+ ]
429
+ },
430
+ {
431
+ "type": "object",
432
+ "properties": {
433
+ "$type": {
434
+ "const": "Transform"
435
+ },
436
+ "params": {
437
+ "type": "array",
438
+ "items": {
439
+ "type": "object",
440
+ "properties": {
441
+ "from": {
442
+ "$ref": "#/$defs/Binding"
443
+ },
444
+ "name": {
445
+ "type": "string"
446
+ }
447
+ },
448
+ "required": [
449
+ "from",
450
+ "name"
451
+ ]
452
+ }
453
+ },
454
+ "pipeline": {
455
+ "type": "array",
456
+ "items": true
457
+ },
458
+ "source": {
459
+ "type": "object"
460
+ }
461
+ },
462
+ "required": [
463
+ "$type",
464
+ "pipeline",
465
+ "source"
466
+ ]
467
+ },
468
+ {
469
+ "type": "object",
470
+ "properties": {
471
+ "$type": {
472
+ "const": "Invoke"
473
+ },
474
+ "args": {
475
+ "type": "array",
476
+ "items": {
477
+ "type": "object"
478
+ }
479
+ },
480
+ "capabilityId": {
481
+ "type": "string"
482
+ }
483
+ },
484
+ "required": [
485
+ "$type",
486
+ "args",
487
+ "capabilityId"
488
+ ]
489
+ }
490
+ ]
491
+ },
492
+ "LocalFlushTrigger": {
493
+ "oneOf": [
494
+ {
495
+ "type": "object",
496
+ "properties": {
497
+ "$type": {
498
+ "const": "OnBlur"
499
+ }
500
+ },
501
+ "required": [
502
+ "$type"
503
+ ]
504
+ },
505
+ {
506
+ "type": "object",
507
+ "properties": {
508
+ "$type": {
509
+ "const": "OnSubmit"
510
+ }
511
+ },
512
+ "required": [
513
+ "$type"
514
+ ]
515
+ },
516
+ {
517
+ "type": "object",
518
+ "properties": {
519
+ "$type": {
520
+ "const": "OnCommitAction"
521
+ }
522
+ },
523
+ "required": [
524
+ "$type"
525
+ ]
526
+ },
527
+ {
528
+ "type": "object",
529
+ "properties": {
530
+ "$type": {
531
+ "const": "OnDebounce"
532
+ },
533
+ "milliseconds": {
534
+ "type": "integer"
535
+ }
536
+ },
537
+ "required": [
538
+ "$type",
539
+ "milliseconds"
540
+ ]
541
+ }
542
+ ]
543
+ },
544
+ "CallResultTarget": {
545
+ "oneOf": [
546
+ {
547
+ "type": "object",
548
+ "properties": {
549
+ "$type": {
550
+ "const": "State"
551
+ },
552
+ "key": {
553
+ "type": "string"
554
+ }
555
+ },
556
+ "required": [
557
+ "$type",
558
+ "key"
559
+ ]
560
+ },
561
+ {
562
+ "type": "object",
563
+ "properties": {
564
+ "$type": {
565
+ "const": "Query"
566
+ },
567
+ "name": {
568
+ "type": "string"
569
+ }
570
+ },
571
+ "required": [
572
+ "$type",
573
+ "name"
574
+ ]
575
+ }
576
+ ]
577
+ },
578
+ "Action": {
579
+ "oneOf": [
580
+ {
581
+ "type": "object",
582
+ "properties": {
583
+ "$type": {
584
+ "const": "Dispatch"
585
+ }
586
+ },
587
+ "required": [
588
+ "$type"
589
+ ]
590
+ },
591
+ {
592
+ "type": "object",
593
+ "properties": {
594
+ "$type": {
595
+ "const": "Call"
596
+ },
597
+ "endpoint": {
598
+ "type": "string"
599
+ },
600
+ "onResult": {
601
+ "const": "<closure>"
602
+ },
603
+ "into": {
604
+ "$ref": "#/$defs/CallResultTarget"
605
+ }
606
+ },
607
+ "required": [
608
+ "$type",
609
+ "endpoint"
610
+ ]
611
+ },
612
+ {
613
+ "type": "object",
614
+ "properties": {
615
+ "$type": {
616
+ "const": "Notify"
617
+ },
618
+ "channel": {
619
+ "type": "string"
620
+ },
621
+ "payload": {
622
+ "not": {
623
+ "type": "null"
624
+ }
625
+ }
626
+ },
627
+ "required": [
628
+ "$type",
629
+ "channel",
630
+ "payload"
631
+ ]
632
+ },
633
+ {
634
+ "type": "object",
635
+ "properties": {
636
+ "$type": {
637
+ "const": "Navigate"
638
+ },
639
+ "route": {
640
+ "type": "string"
641
+ }
642
+ },
643
+ "required": [
644
+ "$type",
645
+ "route"
646
+ ]
647
+ },
648
+ {
649
+ "type": "object",
650
+ "properties": {
651
+ "$type": {
652
+ "const": "SetState"
653
+ },
654
+ "key": {
655
+ "type": "string"
656
+ },
657
+ "value": {
658
+ "not": {
659
+ "type": "null"
660
+ }
661
+ }
662
+ },
663
+ "required": [
664
+ "$type",
665
+ "key",
666
+ "value"
667
+ ]
668
+ },
669
+ {
670
+ "type": "object",
671
+ "properties": {
672
+ "$type": {
673
+ "const": "AiTool"
674
+ },
675
+ "args": {
676
+ "not": {
677
+ "type": "null"
678
+ }
679
+ },
680
+ "toolName": {
681
+ "type": "string"
682
+ }
683
+ },
684
+ "required": [
685
+ "$type",
686
+ "args",
687
+ "toolName"
688
+ ]
689
+ },
690
+ {
691
+ "type": "object",
692
+ "properties": {
693
+ "$type": {
694
+ "const": "Chain"
695
+ },
696
+ "ops": {
697
+ "type": "array",
698
+ "items": {
699
+ "$ref": "#/$defs/Action"
700
+ }
701
+ }
702
+ },
703
+ "required": [
704
+ "$type",
705
+ "ops"
706
+ ]
707
+ },
708
+ {
709
+ "type": "object",
710
+ "properties": {
711
+ "$type": {
712
+ "const": "CommitLocal"
713
+ },
714
+ "nodeId": {
715
+ "type": "string"
716
+ }
717
+ },
718
+ "required": [
719
+ "$type",
720
+ "nodeId"
721
+ ]
722
+ },
723
+ {
724
+ "type": "object",
725
+ "properties": {
726
+ "$type": {
727
+ "const": "WriteToClipboard"
728
+ },
729
+ "text": {
730
+ "type": "string"
731
+ }
732
+ },
733
+ "required": [
734
+ "$type",
735
+ "text"
736
+ ]
737
+ },
738
+ {
739
+ "type": "object",
740
+ "properties": {
741
+ "$type": {
742
+ "const": "ReadFileBody"
743
+ },
744
+ "encoding": {
745
+ "$ref": "#/$defs/FileReadEncoding"
746
+ },
747
+ "fileRef": {
748
+ "type": "string"
749
+ },
750
+ "onRead": {
751
+ "const": "<closure>"
752
+ }
753
+ },
754
+ "required": [
755
+ "$type",
756
+ "encoding",
757
+ "fileRef",
758
+ "onRead"
759
+ ]
760
+ },
761
+ {
762
+ "type": "object",
763
+ "properties": {
764
+ "$type": {
765
+ "const": "Invoke"
766
+ },
767
+ "args": {
768
+ "type": "array",
769
+ "items": {
770
+ "type": "object"
771
+ }
772
+ },
773
+ "capabilityId": {
774
+ "type": "string"
775
+ }
776
+ },
777
+ "required": [
778
+ "$type",
779
+ "args",
780
+ "capabilityId"
781
+ ]
782
+ }
783
+ ]
784
+ },
785
+ "CellFormat": {
786
+ "oneOf": [
787
+ {
788
+ "type": "object",
789
+ "properties": {
790
+ "$type": {
791
+ "const": "None"
792
+ }
793
+ },
794
+ "required": [
795
+ "$type"
796
+ ]
797
+ },
798
+ {
799
+ "type": "object",
800
+ "properties": {
801
+ "$type": {
802
+ "const": "Number"
803
+ },
804
+ "decimals": {
805
+ "type": "integer"
806
+ }
807
+ },
808
+ "required": [
809
+ "$type"
810
+ ]
811
+ },
812
+ {
813
+ "type": "object",
814
+ "properties": {
815
+ "$type": {
816
+ "const": "Currency"
817
+ },
818
+ "code": {
819
+ "type": "string"
820
+ }
821
+ },
822
+ "required": [
823
+ "$type",
824
+ "code"
825
+ ]
826
+ },
827
+ {
828
+ "type": "object",
829
+ "properties": {
830
+ "$type": {
831
+ "const": "Percent"
832
+ },
833
+ "decimals": {
834
+ "type": "integer"
835
+ }
836
+ },
837
+ "required": [
838
+ "$type"
839
+ ]
840
+ },
841
+ {
842
+ "type": "object",
843
+ "properties": {
844
+ "$type": {
845
+ "const": "SignificantDigits"
846
+ },
847
+ "digits": {
848
+ "type": "integer"
849
+ }
850
+ },
851
+ "required": [
852
+ "$type",
853
+ "digits"
854
+ ]
855
+ },
856
+ {
857
+ "type": "object",
858
+ "properties": {
859
+ "$type": {
860
+ "const": "Date"
861
+ },
862
+ "format": {
863
+ "type": "string"
864
+ }
865
+ },
866
+ "required": [
867
+ "$type",
868
+ "format"
869
+ ]
870
+ },
871
+ {
872
+ "type": "object",
873
+ "properties": {
874
+ "$type": {
875
+ "const": "Custom"
876
+ },
877
+ "fn": {
878
+ "const": "<closure>"
879
+ }
880
+ },
881
+ "required": [
882
+ "$type",
883
+ "fn"
884
+ ]
885
+ }
886
+ ]
887
+ },
888
+ "CellValue": {
889
+ "oneOf": [
890
+ {
891
+ "type": "object",
892
+ "properties": {
893
+ "$type": {
894
+ "const": "Numeric"
895
+ },
896
+ "value": {
897
+ "type": "number"
898
+ }
899
+ },
900
+ "required": [
901
+ "$type",
902
+ "value"
903
+ ]
904
+ },
905
+ {
906
+ "type": "object",
907
+ "properties": {
908
+ "$type": {
909
+ "const": "Text"
910
+ },
911
+ "value": {
912
+ "type": "string"
913
+ }
914
+ },
915
+ "required": [
916
+ "$type",
917
+ "value"
918
+ ]
919
+ },
920
+ {
921
+ "type": "object",
922
+ "properties": {
923
+ "$type": {
924
+ "const": "Bool"
925
+ },
926
+ "value": {
927
+ "type": "boolean"
928
+ }
929
+ },
930
+ "required": [
931
+ "$type",
932
+ "value"
933
+ ]
934
+ },
935
+ {
936
+ "type": "object",
937
+ "properties": {
938
+ "$type": {
939
+ "const": "Date"
940
+ },
941
+ "unixSeconds": {
942
+ "type": "integer"
943
+ }
944
+ },
945
+ "required": [
946
+ "$type",
947
+ "unixSeconds"
948
+ ]
949
+ },
950
+ {
951
+ "type": "object",
952
+ "properties": {
953
+ "$type": {
954
+ "const": "Empty"
955
+ }
956
+ },
957
+ "required": [
958
+ "$type"
959
+ ]
960
+ }
961
+ ]
962
+ },
963
+ "ColumnWidth": {
964
+ "oneOf": [
965
+ {
966
+ "type": "object",
967
+ "properties": {
968
+ "$type": {
969
+ "const": "Auto"
970
+ }
971
+ },
972
+ "required": [
973
+ "$type"
974
+ ]
975
+ },
976
+ {
977
+ "type": "object",
978
+ "properties": {
979
+ "$type": {
980
+ "const": "Fixed"
981
+ },
982
+ "pixels": {
983
+ "type": "integer"
984
+ }
985
+ },
986
+ "required": [
987
+ "$type",
988
+ "pixels"
989
+ ]
990
+ },
991
+ {
992
+ "type": "object",
993
+ "properties": {
994
+ "$type": {
995
+ "const": "Flex"
996
+ },
997
+ "weight": {
998
+ "type": "number"
999
+ }
1000
+ },
1001
+ "required": [
1002
+ "$type",
1003
+ "weight"
1004
+ ]
1005
+ }
1006
+ ]
1007
+ },
1008
+ "Format": {
1009
+ "oneOf": [
1010
+ {
1011
+ "type": "object",
1012
+ "properties": {
1013
+ "$type": {
1014
+ "const": "Number"
1015
+ },
1016
+ "decimals": {
1017
+ "type": "integer"
1018
+ }
1019
+ },
1020
+ "required": [
1021
+ "$type"
1022
+ ]
1023
+ },
1024
+ {
1025
+ "type": "object",
1026
+ "properties": {
1027
+ "$type": {
1028
+ "const": "Currency"
1029
+ },
1030
+ "isoCode": {
1031
+ "type": "string"
1032
+ }
1033
+ },
1034
+ "required": [
1035
+ "$type",
1036
+ "isoCode"
1037
+ ]
1038
+ },
1039
+ {
1040
+ "type": "object",
1041
+ "properties": {
1042
+ "$type": {
1043
+ "const": "Percent"
1044
+ },
1045
+ "decimals": {
1046
+ "type": "integer"
1047
+ }
1048
+ },
1049
+ "required": [
1050
+ "$type"
1051
+ ]
1052
+ },
1053
+ {
1054
+ "type": "object",
1055
+ "properties": {
1056
+ "$type": {
1057
+ "const": "Date"
1058
+ },
1059
+ "dateStyle": {
1060
+ "$ref": "#/$defs/DateStyle"
1061
+ }
1062
+ },
1063
+ "required": [
1064
+ "$type",
1065
+ "dateStyle"
1066
+ ]
1067
+ },
1068
+ {
1069
+ "type": "object",
1070
+ "properties": {
1071
+ "$type": {
1072
+ "const": "RelativeTime"
1073
+ },
1074
+ "unit": {
1075
+ "$ref": "#/$defs/RelativeTimeUnit"
1076
+ }
1077
+ },
1078
+ "required": [
1079
+ "$type",
1080
+ "unit"
1081
+ ]
1082
+ }
1083
+ ]
1084
+ },
1085
+ "LocaleSource": {
1086
+ "oneOf": [
1087
+ {
1088
+ "type": "object",
1089
+ "properties": {
1090
+ "$type": {
1091
+ "const": "Ambient"
1092
+ }
1093
+ },
1094
+ "required": [
1095
+ "$type"
1096
+ ]
1097
+ },
1098
+ {
1099
+ "type": "object",
1100
+ "properties": {
1101
+ "$type": {
1102
+ "const": "Explicit"
1103
+ },
1104
+ "tag": {
1105
+ "type": "string"
1106
+ }
1107
+ },
1108
+ "required": [
1109
+ "$type",
1110
+ "tag"
1111
+ ]
1112
+ }
1113
+ ]
1114
+ },
1115
+ "FormFieldKind": {
1116
+ "oneOf": [
1117
+ {
1118
+ "type": "object",
1119
+ "properties": {
1120
+ "$type": {
1121
+ "const": "Text"
1122
+ },
1123
+ "onChange": {
1124
+ "const": "<closure>"
1125
+ },
1126
+ "value": {
1127
+ "$ref": "#/$defs/Binding"
1128
+ }
1129
+ },
1130
+ "required": [
1131
+ "$type"
1132
+ ]
1133
+ },
1134
+ {
1135
+ "type": "object",
1136
+ "properties": {
1137
+ "$type": {
1138
+ "const": "Number"
1139
+ },
1140
+ "onChange": {
1141
+ "const": "<closure>"
1142
+ },
1143
+ "value": {
1144
+ "$ref": "#/$defs/Binding"
1145
+ }
1146
+ },
1147
+ "required": [
1148
+ "$type"
1149
+ ]
1150
+ },
1151
+ {
1152
+ "type": "object",
1153
+ "properties": {
1154
+ "$type": {
1155
+ "const": "Range"
1156
+ },
1157
+ "onChange": {
1158
+ "const": "<closure>"
1159
+ },
1160
+ "value": true,
1161
+ "min": {
1162
+ "type": "number"
1163
+ },
1164
+ "max": {
1165
+ "type": "number"
1166
+ },
1167
+ "step": {
1168
+ "type": "number"
1169
+ }
1170
+ },
1171
+ "required": [
1172
+ "$type"
1173
+ ]
1174
+ },
1175
+ {
1176
+ "type": "object",
1177
+ "properties": {
1178
+ "$type": {
1179
+ "const": "Checkbox"
1180
+ },
1181
+ "onToggle": {
1182
+ "const": "<closure>"
1183
+ },
1184
+ "value": {
1185
+ "$ref": "#/$defs/Binding"
1186
+ }
1187
+ },
1188
+ "required": [
1189
+ "$type"
1190
+ ]
1191
+ },
1192
+ {
1193
+ "type": "object",
1194
+ "properties": {
1195
+ "$type": {
1196
+ "const": "Choice"
1197
+ },
1198
+ "onChange": {
1199
+ "const": "<closure>"
1200
+ },
1201
+ "options": {
1202
+ "$ref": "#/$defs/Binding"
1203
+ },
1204
+ "value": {
1205
+ "$ref": "#/$defs/Binding"
1206
+ }
1207
+ },
1208
+ "required": [
1209
+ "$type",
1210
+ "options"
1211
+ ]
1212
+ },
1213
+ {
1214
+ "type": "object",
1215
+ "properties": {
1216
+ "$type": {
1217
+ "const": "RangedNumber"
1218
+ },
1219
+ "onChange": {
1220
+ "const": "<closure>"
1221
+ },
1222
+ "value": {
1223
+ "$ref": "#/$defs/Binding"
1224
+ },
1225
+ "min": {
1226
+ "type": "number"
1227
+ },
1228
+ "max": {
1229
+ "type": "number"
1230
+ },
1231
+ "step": {
1232
+ "type": "number"
1233
+ }
1234
+ },
1235
+ "required": [
1236
+ "$type"
1237
+ ]
1238
+ },
1239
+ {
1240
+ "type": "object",
1241
+ "properties": {
1242
+ "$type": {
1243
+ "const": "SegmentedChoice"
1244
+ },
1245
+ "onChange": {
1246
+ "const": "<closure>"
1247
+ },
1248
+ "options": {
1249
+ "$ref": "#/$defs/Binding"
1250
+ },
1251
+ "orientation": {
1252
+ "$ref": "#/$defs/Orientation"
1253
+ },
1254
+ "value": {
1255
+ "$ref": "#/$defs/Binding"
1256
+ }
1257
+ },
1258
+ "required": [
1259
+ "$type",
1260
+ "options",
1261
+ "orientation"
1262
+ ]
1263
+ },
1264
+ {
1265
+ "type": "object",
1266
+ "properties": {
1267
+ "$type": {
1268
+ "const": "TextArea"
1269
+ },
1270
+ "onChange": {
1271
+ "const": "<closure>"
1272
+ },
1273
+ "rows": {
1274
+ "type": "integer"
1275
+ },
1276
+ "value": {
1277
+ "$ref": "#/$defs/Binding"
1278
+ }
1279
+ },
1280
+ "required": [
1281
+ "$type",
1282
+ "rows"
1283
+ ]
1284
+ },
1285
+ {
1286
+ "type": "object",
1287
+ "properties": {
1288
+ "$type": {
1289
+ "const": "Date"
1290
+ },
1291
+ "onChange": {
1292
+ "const": "<closure>"
1293
+ },
1294
+ "value": {
1295
+ "$ref": "#/$defs/Binding"
1296
+ },
1297
+ "variant": {
1298
+ "$ref": "#/$defs/DateVariant"
1299
+ },
1300
+ "min": {
1301
+ "type": "string"
1302
+ },
1303
+ "max": {
1304
+ "type": "string"
1305
+ },
1306
+ "step": {
1307
+ "type": "number"
1308
+ }
1309
+ },
1310
+ "required": [
1311
+ "$type",
1312
+ "variant"
1313
+ ]
1314
+ }
1315
+ ]
1316
+ },
1317
+ "CellKindErased": {
1318
+ "oneOf": [
1319
+ {
1320
+ "type": "object",
1321
+ "properties": {
1322
+ "$type": {
1323
+ "const": "Text"
1324
+ }
1325
+ },
1326
+ "required": [
1327
+ "$type"
1328
+ ]
1329
+ },
1330
+ {
1331
+ "type": "object",
1332
+ "properties": {
1333
+ "$type": {
1334
+ "const": "Numeric"
1335
+ }
1336
+ },
1337
+ "required": [
1338
+ "$type"
1339
+ ]
1340
+ },
1341
+ {
1342
+ "type": "object",
1343
+ "properties": {
1344
+ "$type": {
1345
+ "const": "Date"
1346
+ }
1347
+ },
1348
+ "required": [
1349
+ "$type"
1350
+ ]
1351
+ },
1352
+ {
1353
+ "type": "object",
1354
+ "properties": {
1355
+ "$type": {
1356
+ "const": "Editable"
1357
+ },
1358
+ "onEdit": {
1359
+ "const": "<closure>"
1360
+ }
1361
+ },
1362
+ "required": [
1363
+ "$type",
1364
+ "onEdit"
1365
+ ]
1366
+ },
1367
+ {
1368
+ "type": "object",
1369
+ "properties": {
1370
+ "$type": {
1371
+ "const": "Checkbox"
1372
+ },
1373
+ "get": {
1374
+ "const": "<closure>"
1375
+ },
1376
+ "onToggle": {
1377
+ "const": "<closure>"
1378
+ }
1379
+ },
1380
+ "required": [
1381
+ "$type",
1382
+ "get",
1383
+ "onToggle"
1384
+ ]
1385
+ },
1386
+ {
1387
+ "type": "object",
1388
+ "properties": {
1389
+ "$type": {
1390
+ "const": "Button"
1391
+ },
1392
+ "label": {
1393
+ "$ref": "#/$defs/TextSource"
1394
+ },
1395
+ "onClick": {
1396
+ "const": "<closure>"
1397
+ }
1398
+ },
1399
+ "required": [
1400
+ "$type",
1401
+ "label",
1402
+ "onClick"
1403
+ ]
1404
+ },
1405
+ {
1406
+ "type": "object",
1407
+ "properties": {
1408
+ "$type": {
1409
+ "const": "ButtonGroup"
1410
+ },
1411
+ "buttons": {
1412
+ "type": "array",
1413
+ "items": {
1414
+ "type": "object",
1415
+ "properties": {
1416
+ "label": {
1417
+ "$ref": "#/$defs/TextSource"
1418
+ },
1419
+ "onClick": {
1420
+ "const": "<closure>"
1421
+ }
1422
+ },
1423
+ "required": [
1424
+ "label",
1425
+ "onClick"
1426
+ ]
1427
+ }
1428
+ }
1429
+ },
1430
+ "required": [
1431
+ "$type",
1432
+ "buttons"
1433
+ ]
1434
+ },
1435
+ {
1436
+ "type": "object",
1437
+ "properties": {
1438
+ "$type": {
1439
+ "const": "Link"
1440
+ },
1441
+ "hrefFn": {
1442
+ "const": "<closure>"
1443
+ },
1444
+ "labelFn": {
1445
+ "const": "<closure>"
1446
+ }
1447
+ },
1448
+ "required": [
1449
+ "$type",
1450
+ "hrefFn",
1451
+ "labelFn"
1452
+ ]
1453
+ },
1454
+ {
1455
+ "type": "object",
1456
+ "properties": {
1457
+ "$type": {
1458
+ "const": "Pill"
1459
+ },
1460
+ "labelFn": {
1461
+ "const": "<closure>"
1462
+ },
1463
+ "toneFn": {
1464
+ "const": "<closure>"
1465
+ }
1466
+ },
1467
+ "required": [
1468
+ "$type",
1469
+ "labelFn",
1470
+ "toneFn"
1471
+ ]
1472
+ },
1473
+ {
1474
+ "type": "object",
1475
+ "properties": {
1476
+ "$type": {
1477
+ "const": "Progress"
1478
+ },
1479
+ "fractionFn": {
1480
+ "const": "<closure>"
1481
+ },
1482
+ "labelFn": {
1483
+ "const": "<closure>"
1484
+ }
1485
+ },
1486
+ "required": [
1487
+ "$type",
1488
+ "fractionFn",
1489
+ "labelFn"
1490
+ ]
1491
+ },
1492
+ {
1493
+ "type": "object",
1494
+ "properties": {
1495
+ "$type": {
1496
+ "const": "Custom"
1497
+ },
1498
+ "fn": {
1499
+ "const": "<closure>"
1500
+ }
1501
+ },
1502
+ "required": [
1503
+ "$type",
1504
+ "fn"
1505
+ ]
1506
+ }
1507
+ ]
1508
+ },
1509
+ "MetricSpec": {
1510
+ "type": "object",
1511
+ "properties": {
1512
+ "emphasis": {
1513
+ "$ref": "#/$defs/Emphasis"
1514
+ },
1515
+ "format": {
1516
+ "$ref": "#/$defs/CellFormat"
1517
+ },
1518
+ "label": {
1519
+ "$ref": "#/$defs/TextSource"
1520
+ },
1521
+ "value": {
1522
+ "$ref": "#/$defs/Binding"
1523
+ },
1524
+ "tone": {
1525
+ "$ref": "#/$defs/ToneVariant"
1526
+ },
1527
+ "weight": {
1528
+ "$ref": "#/$defs/StyleWeight"
1529
+ },
1530
+ "trend": {
1531
+ "$ref": "#/$defs/Binding"
1532
+ },
1533
+ "trendFormat": {
1534
+ "$ref": "#/$defs/CellFormat"
1535
+ },
1536
+ "icon": {
1537
+ "type": "string"
1538
+ },
1539
+ "subtext": {
1540
+ "$ref": "#/$defs/TextSource"
1541
+ }
1542
+ },
1543
+ "required": [
1544
+ "label",
1545
+ "value"
1546
+ ]
1547
+ },
1548
+ "HeadingSpec": {
1549
+ "type": "object",
1550
+ "properties": {
1551
+ "level": {
1552
+ "type": "integer"
1553
+ },
1554
+ "text": {
1555
+ "$ref": "#/$defs/TextSource"
1556
+ },
1557
+ "variant": {
1558
+ "$ref": "#/$defs/HeadingVariant"
1559
+ }
1560
+ },
1561
+ "required": [
1562
+ "level",
1563
+ "text",
1564
+ "variant"
1565
+ ]
1566
+ },
1567
+ "MarkdownSpec": {
1568
+ "type": "object",
1569
+ "properties": {
1570
+ "text": {
1571
+ "$ref": "#/$defs/TextSource"
1572
+ }
1573
+ },
1574
+ "required": [
1575
+ "text"
1576
+ ]
1577
+ },
1578
+ "BadgeSpec": {
1579
+ "type": "object",
1580
+ "properties": {
1581
+ "label": {
1582
+ "$ref": "#/$defs/TextSource"
1583
+ },
1584
+ "variant": {
1585
+ "$ref": "#/$defs/BadgeVariant"
1586
+ }
1587
+ },
1588
+ "required": [
1589
+ "label",
1590
+ "variant"
1591
+ ]
1592
+ },
1593
+ "LinkSpec": {
1594
+ "type": "object",
1595
+ "properties": {
1596
+ "href": {
1597
+ "$ref": "#/$defs/Binding"
1598
+ },
1599
+ "label": {
1600
+ "$ref": "#/$defs/TextSource"
1601
+ },
1602
+ "download": {
1603
+ "type": "boolean"
1604
+ },
1605
+ "rel": {
1606
+ "type": "string"
1607
+ },
1608
+ "target": {
1609
+ "type": "string"
1610
+ }
1611
+ },
1612
+ "required": [
1613
+ "download",
1614
+ "href",
1615
+ "label"
1616
+ ]
1617
+ },
1618
+ "ImageSpec": {
1619
+ "type": "object",
1620
+ "properties": {
1621
+ "alt": {
1622
+ "$ref": "#/$defs/TextSource"
1623
+ },
1624
+ "src": {
1625
+ "$ref": "#/$defs/Binding"
1626
+ },
1627
+ "variant": {
1628
+ "$ref": "#/$defs/ImageVariant"
1629
+ }
1630
+ },
1631
+ "required": [
1632
+ "alt",
1633
+ "src",
1634
+ "variant"
1635
+ ]
1636
+ },
1637
+ "ListSpec": {
1638
+ "type": "object",
1639
+ "properties": {
1640
+ "items": {
1641
+ "type": "array",
1642
+ "items": {
1643
+ "$ref": "#/$defs/TextSource"
1644
+ }
1645
+ },
1646
+ "ordered": {
1647
+ "type": "boolean"
1648
+ }
1649
+ },
1650
+ "required": [
1651
+ "items",
1652
+ "ordered"
1653
+ ]
1654
+ },
1655
+ "ToastSpec": {
1656
+ "type": "object",
1657
+ "properties": {
1658
+ "dismissable": {
1659
+ "type": "boolean"
1660
+ },
1661
+ "message": {
1662
+ "$ref": "#/$defs/TextSource"
1663
+ },
1664
+ "open": {
1665
+ "$ref": "#/$defs/Binding"
1666
+ },
1667
+ "tone": {
1668
+ "$ref": "#/$defs/ToneVariant"
1669
+ }
1670
+ },
1671
+ "required": [
1672
+ "message",
1673
+ "open"
1674
+ ]
1675
+ },
1676
+ "CodeBlockSpec": {
1677
+ "type": "object",
1678
+ "properties": {
1679
+ "code": {
1680
+ "type": "string"
1681
+ },
1682
+ "copyable": {
1683
+ "type": "boolean"
1684
+ },
1685
+ "highlightLines": {
1686
+ "type": "array",
1687
+ "items": {
1688
+ "type": "integer"
1689
+ }
1690
+ },
1691
+ "language": {
1692
+ "type": "string"
1693
+ },
1694
+ "lineNumbers": {
1695
+ "type": "boolean"
1696
+ }
1697
+ },
1698
+ "required": [
1699
+ "code",
1700
+ "copyable",
1701
+ "highlightLines",
1702
+ "language",
1703
+ "lineNumbers"
1704
+ ]
1705
+ },
1706
+ "MathSpec": {
1707
+ "type": "object",
1708
+ "properties": {
1709
+ "display": {
1710
+ "$ref": "#/$defs/MathDisplay"
1711
+ },
1712
+ "source": {
1713
+ "type": "string"
1714
+ }
1715
+ },
1716
+ "required": [
1717
+ "display",
1718
+ "source"
1719
+ ]
1720
+ },
1721
+ "SparklineSpec": {
1722
+ "type": "object",
1723
+ "properties": {
1724
+ "source": {
1725
+ "$ref": "#/$defs/Binding"
1726
+ }
1727
+ },
1728
+ "required": [
1729
+ "source"
1730
+ ]
1731
+ },
1732
+ "SkeletonSpec": {
1733
+ "type": "object",
1734
+ "properties": {
1735
+ "rows": {
1736
+ "type": "integer"
1737
+ }
1738
+ },
1739
+ "required": [
1740
+ "rows"
1741
+ ]
1742
+ },
1743
+ "CalloutSpec": {
1744
+ "type": "object",
1745
+ "properties": {
1746
+ "body": {
1747
+ "$ref": "#/$defs/TextSource"
1748
+ },
1749
+ "dismissable": {
1750
+ "type": "boolean"
1751
+ },
1752
+ "tone": {
1753
+ "$ref": "#/$defs/ToneVariant"
1754
+ },
1755
+ "heading": {
1756
+ "$ref": "#/$defs/TextSource"
1757
+ },
1758
+ "icon": {
1759
+ "type": "string"
1760
+ }
1761
+ },
1762
+ "required": [
1763
+ "body"
1764
+ ]
1765
+ },
1766
+ "ProgressSpec": {
1767
+ "type": "object",
1768
+ "properties": {
1769
+ "fraction": {
1770
+ "$ref": "#/$defs/Binding"
1771
+ },
1772
+ "indeterminate": {
1773
+ "type": "boolean"
1774
+ },
1775
+ "tone": {
1776
+ "$ref": "#/$defs/ToneVariant"
1777
+ },
1778
+ "label": {
1779
+ "$ref": "#/$defs/TextSource"
1780
+ },
1781
+ "caveat": {
1782
+ "$ref": "#/$defs/TextSource"
1783
+ }
1784
+ },
1785
+ "required": [
1786
+ "fraction"
1787
+ ]
1788
+ },
1789
+ "LabelValueRowSpec": {
1790
+ "type": "object",
1791
+ "properties": {
1792
+ "emphasis": {
1793
+ "type": "boolean"
1794
+ },
1795
+ "format": {
1796
+ "$ref": "#/$defs/CellFormat"
1797
+ },
1798
+ "label": {
1799
+ "$ref": "#/$defs/TextSource"
1800
+ },
1801
+ "value": {
1802
+ "$ref": "#/$defs/Binding"
1803
+ },
1804
+ "help": {
1805
+ "$ref": "#/$defs/TextSource"
1806
+ }
1807
+ },
1808
+ "required": [
1809
+ "label",
1810
+ "value"
1811
+ ]
1812
+ },
1813
+ "FactSpec": {
1814
+ "type": "object",
1815
+ "properties": {
1816
+ "label": {
1817
+ "$ref": "#/$defs/TextSource"
1818
+ },
1819
+ "value": {
1820
+ "$ref": "#/$defs/TextSource"
1821
+ },
1822
+ "tone": {
1823
+ "$ref": "#/$defs/ToneVariant"
1824
+ },
1825
+ "emphasis": {
1826
+ "type": "boolean"
1827
+ },
1828
+ "help": {
1829
+ "$ref": "#/$defs/TextSource"
1830
+ },
1831
+ "icon": {
1832
+ "type": "string"
1833
+ }
1834
+ },
1835
+ "required": [
1836
+ "label",
1837
+ "value"
1838
+ ]
1839
+ },
1840
+ "ViewBox": {
1841
+ "type": "object",
1842
+ "properties": {
1843
+ "height": {
1844
+ "type": "number"
1845
+ },
1846
+ "minX": {
1847
+ "type": "number"
1848
+ },
1849
+ "minY": {
1850
+ "type": "number"
1851
+ },
1852
+ "width": {
1853
+ "type": "number"
1854
+ }
1855
+ },
1856
+ "required": [
1857
+ "height",
1858
+ "minX",
1859
+ "minY",
1860
+ "width"
1861
+ ]
1862
+ },
1863
+ "DrawPoint": {
1864
+ "type": "object",
1865
+ "properties": {
1866
+ "x": {
1867
+ "type": "number"
1868
+ },
1869
+ "y": {
1870
+ "type": "number"
1871
+ }
1872
+ },
1873
+ "required": [
1874
+ "x",
1875
+ "y"
1876
+ ]
1877
+ },
1878
+ "TextAnchor": {
1879
+ "type": "string",
1880
+ "enum": [
1881
+ "Start",
1882
+ "Middle",
1883
+ "End"
1884
+ ]
1885
+ },
1886
+ "DrawStyle": {
1887
+ "type": "object",
1888
+ "properties": {
1889
+ "fill": {
1890
+ "$ref": "#/$defs/Binding"
1891
+ },
1892
+ "stroke": {
1893
+ "$ref": "#/$defs/Binding"
1894
+ },
1895
+ "strokeWidth": {
1896
+ "$ref": "#/$defs/Binding"
1897
+ },
1898
+ "opacity": {
1899
+ "$ref": "#/$defs/Binding"
1900
+ },
1901
+ "textAnchor": {
1902
+ "$ref": "#/$defs/TextAnchor"
1903
+ },
1904
+ "fontSize": {
1905
+ "type": "number"
1906
+ },
1907
+ "emphasis": {
1908
+ "$ref": "#/$defs/Emphasis"
1909
+ },
1910
+ "fontFamily": {
1911
+ "type": "string"
1912
+ },
1913
+ "markId": {
1914
+ "type": "string"
1915
+ }
1916
+ }
1917
+ },
1918
+ "CurveCommand": {
1919
+ "oneOf": [
1920
+ {
1921
+ "type": "object",
1922
+ "properties": {
1923
+ "$type": {
1924
+ "const": "MoveTo"
1925
+ },
1926
+ "to": {
1927
+ "$ref": "#/$defs/DrawPoint"
1928
+ }
1929
+ },
1930
+ "required": [
1931
+ "$type",
1932
+ "to"
1933
+ ]
1934
+ },
1935
+ {
1936
+ "type": "object",
1937
+ "properties": {
1938
+ "$type": {
1939
+ "const": "LineTo"
1940
+ },
1941
+ "to": {
1942
+ "$ref": "#/$defs/DrawPoint"
1943
+ }
1944
+ },
1945
+ "required": [
1946
+ "$type",
1947
+ "to"
1948
+ ]
1949
+ },
1950
+ {
1951
+ "type": "object",
1952
+ "properties": {
1953
+ "$type": {
1954
+ "const": "CubicTo"
1955
+ },
1956
+ "control1": {
1957
+ "$ref": "#/$defs/DrawPoint"
1958
+ },
1959
+ "control2": {
1960
+ "$ref": "#/$defs/DrawPoint"
1961
+ },
1962
+ "to": {
1963
+ "$ref": "#/$defs/DrawPoint"
1964
+ }
1965
+ },
1966
+ "required": [
1967
+ "$type",
1968
+ "control1",
1969
+ "control2",
1970
+ "to"
1971
+ ]
1972
+ },
1973
+ {
1974
+ "type": "object",
1975
+ "properties": {
1976
+ "$type": {
1977
+ "const": "QuadraticTo"
1978
+ },
1979
+ "control": {
1980
+ "$ref": "#/$defs/DrawPoint"
1981
+ },
1982
+ "to": {
1983
+ "$ref": "#/$defs/DrawPoint"
1984
+ }
1985
+ },
1986
+ "required": [
1987
+ "$type",
1988
+ "control",
1989
+ "to"
1990
+ ]
1991
+ },
1992
+ {
1993
+ "type": "object",
1994
+ "properties": {
1995
+ "$type": {
1996
+ "const": "Close"
1997
+ }
1998
+ },
1999
+ "required": [
2000
+ "$type"
2001
+ ]
2002
+ }
2003
+ ]
2004
+ },
2005
+ "Shape": {
2006
+ "oneOf": [
2007
+ {
2008
+ "type": "object",
2009
+ "properties": {
2010
+ "$type": {
2011
+ "const": "Group"
2012
+ },
2013
+ "children": {
2014
+ "type": "array",
2015
+ "items": {
2016
+ "$ref": "#/$defs/Shape"
2017
+ }
2018
+ },
2019
+ "style": {
2020
+ "$ref": "#/$defs/DrawStyle"
2021
+ }
2022
+ },
2023
+ "required": [
2024
+ "$type",
2025
+ "children",
2026
+ "style"
2027
+ ]
2028
+ },
2029
+ {
2030
+ "type": "object",
2031
+ "properties": {
2032
+ "$type": {
2033
+ "const": "Rectangle"
2034
+ },
2035
+ "height": {
2036
+ "type": "number"
2037
+ },
2038
+ "style": {
2039
+ "$ref": "#/$defs/DrawStyle"
2040
+ },
2041
+ "width": {
2042
+ "type": "number"
2043
+ },
2044
+ "x": {
2045
+ "type": "number"
2046
+ },
2047
+ "y": {
2048
+ "type": "number"
2049
+ },
2050
+ "cornerRadius": {
2051
+ "type": "number"
2052
+ }
2053
+ },
2054
+ "required": [
2055
+ "$type",
2056
+ "height",
2057
+ "style",
2058
+ "width",
2059
+ "x",
2060
+ "y"
2061
+ ]
2062
+ },
2063
+ {
2064
+ "type": "object",
2065
+ "properties": {
2066
+ "$type": {
2067
+ "const": "Line"
2068
+ },
2069
+ "style": {
2070
+ "$ref": "#/$defs/DrawStyle"
2071
+ },
2072
+ "x1": {
2073
+ "type": "number"
2074
+ },
2075
+ "x2": {
2076
+ "type": "number"
2077
+ },
2078
+ "y1": {
2079
+ "type": "number"
2080
+ },
2081
+ "y2": {
2082
+ "type": "number"
2083
+ }
2084
+ },
2085
+ "required": [
2086
+ "$type",
2087
+ "style",
2088
+ "x1",
2089
+ "x2",
2090
+ "y1",
2091
+ "y2"
2092
+ ]
2093
+ },
2094
+ {
2095
+ "type": "object",
2096
+ "properties": {
2097
+ "$type": {
2098
+ "const": "Polyline"
2099
+ },
2100
+ "points": {
2101
+ "type": "array",
2102
+ "items": {
2103
+ "$ref": "#/$defs/DrawPoint"
2104
+ }
2105
+ },
2106
+ "style": {
2107
+ "$ref": "#/$defs/DrawStyle"
2108
+ }
2109
+ },
2110
+ "required": [
2111
+ "$type",
2112
+ "points",
2113
+ "style"
2114
+ ]
2115
+ },
2116
+ {
2117
+ "type": "object",
2118
+ "properties": {
2119
+ "$type": {
2120
+ "const": "Polygon"
2121
+ },
2122
+ "points": {
2123
+ "type": "array",
2124
+ "items": {
2125
+ "$ref": "#/$defs/DrawPoint"
2126
+ }
2127
+ },
2128
+ "style": {
2129
+ "$ref": "#/$defs/DrawStyle"
2130
+ }
2131
+ },
2132
+ "required": [
2133
+ "$type",
2134
+ "points",
2135
+ "style"
2136
+ ]
2137
+ },
2138
+ {
2139
+ "type": "object",
2140
+ "properties": {
2141
+ "$type": {
2142
+ "const": "Curve"
2143
+ },
2144
+ "commands": {
2145
+ "type": "array",
2146
+ "items": {
2147
+ "$ref": "#/$defs/CurveCommand"
2148
+ }
2149
+ },
2150
+ "style": {
2151
+ "$ref": "#/$defs/DrawStyle"
2152
+ }
2153
+ },
2154
+ "required": [
2155
+ "$type",
2156
+ "commands",
2157
+ "style"
2158
+ ]
2159
+ },
2160
+ {
2161
+ "type": "object",
2162
+ "properties": {
2163
+ "$type": {
2164
+ "const": "Circle"
2165
+ },
2166
+ "cx": {
2167
+ "type": "number"
2168
+ },
2169
+ "cy": {
2170
+ "type": "number"
2171
+ },
2172
+ "r": {
2173
+ "type": "number"
2174
+ },
2175
+ "style": {
2176
+ "$ref": "#/$defs/DrawStyle"
2177
+ }
2178
+ },
2179
+ "required": [
2180
+ "$type",
2181
+ "cx",
2182
+ "cy",
2183
+ "r",
2184
+ "style"
2185
+ ]
2186
+ },
2187
+ {
2188
+ "type": "object",
2189
+ "properties": {
2190
+ "$type": {
2191
+ "const": "Ellipse"
2192
+ },
2193
+ "cx": {
2194
+ "type": "number"
2195
+ },
2196
+ "cy": {
2197
+ "type": "number"
2198
+ },
2199
+ "rx": {
2200
+ "type": "number"
2201
+ },
2202
+ "ry": {
2203
+ "type": "number"
2204
+ },
2205
+ "style": {
2206
+ "$ref": "#/$defs/DrawStyle"
2207
+ }
2208
+ },
2209
+ "required": [
2210
+ "$type",
2211
+ "cx",
2212
+ "cy",
2213
+ "rx",
2214
+ "ry",
2215
+ "style"
2216
+ ]
2217
+ },
2218
+ {
2219
+ "type": "object",
2220
+ "properties": {
2221
+ "$type": {
2222
+ "const": "Label"
2223
+ },
2224
+ "style": {
2225
+ "$ref": "#/$defs/DrawStyle"
2226
+ },
2227
+ "text": {
2228
+ "$ref": "#/$defs/TextSource"
2229
+ },
2230
+ "x": {
2231
+ "type": "number"
2232
+ },
2233
+ "y": {
2234
+ "type": "number"
2235
+ }
2236
+ },
2237
+ "required": [
2238
+ "$type",
2239
+ "style",
2240
+ "text",
2241
+ "x",
2242
+ "y"
2243
+ ]
2244
+ }
2245
+ ]
2246
+ },
2247
+ "DrawingSpec": {
2248
+ "type": "object",
2249
+ "properties": {
2250
+ "shapes": {
2251
+ "type": "array",
2252
+ "items": {
2253
+ "$ref": "#/$defs/Shape"
2254
+ }
2255
+ },
2256
+ "style": {
2257
+ "$ref": "#/$defs/DrawStyle"
2258
+ },
2259
+ "viewBox": {
2260
+ "$ref": "#/$defs/ViewBox"
2261
+ },
2262
+ "title": {
2263
+ "$ref": "#/$defs/TextSource"
2264
+ },
2265
+ "description": {
2266
+ "$ref": "#/$defs/TextSource"
2267
+ }
2268
+ },
2269
+ "required": [
2270
+ "shapes",
2271
+ "style",
2272
+ "viewBox"
2273
+ ]
2274
+ },
2275
+ "DisplayKind": {
2276
+ "oneOf": [
2277
+ {
2278
+ "allOf": [
2279
+ {
2280
+ "type": "object",
2281
+ "properties": {
2282
+ "$type": {
2283
+ "const": "Heading"
2284
+ }
2285
+ },
2286
+ "required": [
2287
+ "$type"
2288
+ ]
2289
+ },
2290
+ {
2291
+ "$ref": "#/$defs/HeadingSpec"
2292
+ }
2293
+ ]
2294
+ },
2295
+ {
2296
+ "allOf": [
2297
+ {
2298
+ "type": "object",
2299
+ "properties": {
2300
+ "$type": {
2301
+ "const": "Markdown"
2302
+ }
2303
+ },
2304
+ "required": [
2305
+ "$type"
2306
+ ]
2307
+ },
2308
+ {
2309
+ "$ref": "#/$defs/MarkdownSpec"
2310
+ }
2311
+ ]
2312
+ },
2313
+ {
2314
+ "allOf": [
2315
+ {
2316
+ "type": "object",
2317
+ "properties": {
2318
+ "$type": {
2319
+ "const": "Metric"
2320
+ }
2321
+ },
2322
+ "required": [
2323
+ "$type"
2324
+ ]
2325
+ },
2326
+ {
2327
+ "$ref": "#/$defs/MetricSpec"
2328
+ }
2329
+ ]
2330
+ },
2331
+ {
2332
+ "allOf": [
2333
+ {
2334
+ "type": "object",
2335
+ "properties": {
2336
+ "$type": {
2337
+ "const": "Badge"
2338
+ }
2339
+ },
2340
+ "required": [
2341
+ "$type"
2342
+ ]
2343
+ },
2344
+ {
2345
+ "$ref": "#/$defs/BadgeSpec"
2346
+ }
2347
+ ]
2348
+ },
2349
+ {
2350
+ "allOf": [
2351
+ {
2352
+ "type": "object",
2353
+ "properties": {
2354
+ "$type": {
2355
+ "const": "Sparkline"
2356
+ }
2357
+ },
2358
+ "required": [
2359
+ "$type"
2360
+ ]
2361
+ },
2362
+ {
2363
+ "$ref": "#/$defs/SparklineSpec"
2364
+ }
2365
+ ]
2366
+ },
2367
+ {
2368
+ "allOf": [
2369
+ {
2370
+ "type": "object",
2371
+ "properties": {
2372
+ "$type": {
2373
+ "const": "Callout"
2374
+ }
2375
+ },
2376
+ "required": [
2377
+ "$type"
2378
+ ]
2379
+ },
2380
+ {
2381
+ "$ref": "#/$defs/CalloutSpec"
2382
+ }
2383
+ ]
2384
+ },
2385
+ {
2386
+ "allOf": [
2387
+ {
2388
+ "type": "object",
2389
+ "properties": {
2390
+ "$type": {
2391
+ "const": "Progress"
2392
+ }
2393
+ },
2394
+ "required": [
2395
+ "$type"
2396
+ ]
2397
+ },
2398
+ {
2399
+ "$ref": "#/$defs/ProgressSpec"
2400
+ }
2401
+ ]
2402
+ },
2403
+ {
2404
+ "allOf": [
2405
+ {
2406
+ "type": "object",
2407
+ "properties": {
2408
+ "$type": {
2409
+ "const": "Skeleton"
2410
+ }
2411
+ },
2412
+ "required": [
2413
+ "$type"
2414
+ ]
2415
+ },
2416
+ {
2417
+ "$ref": "#/$defs/SkeletonSpec"
2418
+ }
2419
+ ]
2420
+ },
2421
+ {
2422
+ "allOf": [
2423
+ {
2424
+ "type": "object",
2425
+ "properties": {
2426
+ "$type": {
2427
+ "const": "LabelValueRow"
2428
+ }
2429
+ },
2430
+ "required": [
2431
+ "$type"
2432
+ ]
2433
+ },
2434
+ {
2435
+ "$ref": "#/$defs/LabelValueRowSpec"
2436
+ }
2437
+ ]
2438
+ },
2439
+ {
2440
+ "allOf": [
2441
+ {
2442
+ "type": "object",
2443
+ "properties": {
2444
+ "$type": {
2445
+ "const": "Fact"
2446
+ }
2447
+ },
2448
+ "required": [
2449
+ "$type"
2450
+ ]
2451
+ },
2452
+ {
2453
+ "$ref": "#/$defs/FactSpec"
2454
+ }
2455
+ ]
2456
+ },
2457
+ {
2458
+ "allOf": [
2459
+ {
2460
+ "type": "object",
2461
+ "properties": {
2462
+ "$type": {
2463
+ "const": "Link"
2464
+ }
2465
+ },
2466
+ "required": [
2467
+ "$type"
2468
+ ]
2469
+ },
2470
+ {
2471
+ "$ref": "#/$defs/LinkSpec"
2472
+ }
2473
+ ]
2474
+ },
2475
+ {
2476
+ "allOf": [
2477
+ {
2478
+ "type": "object",
2479
+ "properties": {
2480
+ "$type": {
2481
+ "const": "Image"
2482
+ }
2483
+ },
2484
+ "required": [
2485
+ "$type"
2486
+ ]
2487
+ },
2488
+ {
2489
+ "$ref": "#/$defs/ImageSpec"
2490
+ }
2491
+ ]
2492
+ },
2493
+ {
2494
+ "allOf": [
2495
+ {
2496
+ "type": "object",
2497
+ "properties": {
2498
+ "$type": {
2499
+ "const": "List"
2500
+ }
2501
+ },
2502
+ "required": [
2503
+ "$type"
2504
+ ]
2505
+ },
2506
+ {
2507
+ "$ref": "#/$defs/ListSpec"
2508
+ }
2509
+ ]
2510
+ },
2511
+ {
2512
+ "allOf": [
2513
+ {
2514
+ "type": "object",
2515
+ "properties": {
2516
+ "$type": {
2517
+ "const": "Toast"
2518
+ }
2519
+ },
2520
+ "required": [
2521
+ "$type"
2522
+ ]
2523
+ },
2524
+ {
2525
+ "$ref": "#/$defs/ToastSpec"
2526
+ }
2527
+ ]
2528
+ },
2529
+ {
2530
+ "allOf": [
2531
+ {
2532
+ "type": "object",
2533
+ "properties": {
2534
+ "$type": {
2535
+ "const": "CodeBlock"
2536
+ }
2537
+ },
2538
+ "required": [
2539
+ "$type"
2540
+ ]
2541
+ },
2542
+ {
2543
+ "$ref": "#/$defs/CodeBlockSpec"
2544
+ }
2545
+ ]
2546
+ },
2547
+ {
2548
+ "allOf": [
2549
+ {
2550
+ "type": "object",
2551
+ "properties": {
2552
+ "$type": {
2553
+ "const": "Math"
2554
+ }
2555
+ },
2556
+ "required": [
2557
+ "$type"
2558
+ ]
2559
+ },
2560
+ {
2561
+ "$ref": "#/$defs/MathSpec"
2562
+ }
2563
+ ]
2564
+ },
2565
+ {
2566
+ "allOf": [
2567
+ {
2568
+ "type": "object",
2569
+ "properties": {
2570
+ "$type": {
2571
+ "const": "Drawing"
2572
+ }
2573
+ },
2574
+ "required": [
2575
+ "$type"
2576
+ ]
2577
+ },
2578
+ {
2579
+ "$ref": "#/$defs/DrawingSpec"
2580
+ }
2581
+ ]
2582
+ }
2583
+ ]
2584
+ },
2585
+ "SelectOption": {
2586
+ "type": "object",
2587
+ "properties": {
2588
+ "label": {
2589
+ "$ref": "#/$defs/TextSource"
2590
+ },
2591
+ "value": {
2592
+ "type": "string"
2593
+ }
2594
+ },
2595
+ "required": [
2596
+ "label",
2597
+ "value"
2598
+ ]
2599
+ },
2600
+ "FormField": {
2601
+ "type": "object",
2602
+ "properties": {
2603
+ "id": {
2604
+ "type": "string"
2605
+ },
2606
+ "kind": {
2607
+ "$ref": "#/$defs/FormFieldKind"
2608
+ },
2609
+ "label": {
2610
+ "$ref": "#/$defs/TextSource"
2611
+ },
2612
+ "required": {
2613
+ "type": "boolean"
2614
+ },
2615
+ "help": {
2616
+ "$ref": "#/$defs/TextSource"
2617
+ }
2618
+ },
2619
+ "required": [
2620
+ "id",
2621
+ "kind",
2622
+ "label",
2623
+ "required"
2624
+ ]
2625
+ },
2626
+ "FormSpec": {
2627
+ "type": "object",
2628
+ "properties": {
2629
+ "fields": {
2630
+ "type": "array",
2631
+ "items": {
2632
+ "$ref": "#/$defs/FormField"
2633
+ }
2634
+ },
2635
+ "onSubmit": {
2636
+ "$ref": "#/$defs/Action"
2637
+ },
2638
+ "submitLabel": {
2639
+ "$ref": "#/$defs/TextSource"
2640
+ },
2641
+ "disabled": {
2642
+ "$ref": "#/$defs/Binding"
2643
+ }
2644
+ },
2645
+ "required": [
2646
+ "fields",
2647
+ "onSubmit",
2648
+ "submitLabel"
2649
+ ]
2650
+ },
2651
+ "FilterSpec": {
2652
+ "type": "object",
2653
+ "properties": {
2654
+ "kind": {
2655
+ "$ref": "#/$defs/FormFieldKind"
2656
+ },
2657
+ "label": {
2658
+ "$ref": "#/$defs/TextSource"
2659
+ },
2660
+ "name": {
2661
+ "type": "string"
2662
+ }
2663
+ },
2664
+ "required": [
2665
+ "kind",
2666
+ "label",
2667
+ "name"
2668
+ ]
2669
+ },
2670
+ "ButtonSpec": {
2671
+ "type": "object",
2672
+ "properties": {
2673
+ "label": {
2674
+ "$ref": "#/$defs/TextSource"
2675
+ },
2676
+ "onClick": {
2677
+ "$ref": "#/$defs/Action"
2678
+ },
2679
+ "variant": {
2680
+ "$ref": "#/$defs/ButtonVariant"
2681
+ },
2682
+ "icon": {
2683
+ "type": "string"
2684
+ },
2685
+ "disabled": {
2686
+ "$ref": "#/$defs/Binding"
2687
+ }
2688
+ },
2689
+ "required": [
2690
+ "label",
2691
+ "onClick",
2692
+ "variant"
2693
+ ]
2694
+ },
2695
+ "SelectSpec": {
2696
+ "type": "object",
2697
+ "properties": {
2698
+ "label": {
2699
+ "$ref": "#/$defs/TextSource"
2700
+ },
2701
+ "onChange": {
2702
+ "const": "<closure>"
2703
+ },
2704
+ "source": {
2705
+ "$ref": "#/$defs/Binding"
2706
+ },
2707
+ "value": {
2708
+ "$ref": "#/$defs/Binding"
2709
+ },
2710
+ "placeholder": {
2711
+ "$ref": "#/$defs/TextSource"
2712
+ },
2713
+ "disabled": {
2714
+ "$ref": "#/$defs/Binding"
2715
+ },
2716
+ "multiple": {
2717
+ "type": "boolean"
2718
+ },
2719
+ "values": {
2720
+ "$ref": "#/$defs/Binding"
2721
+ },
2722
+ "onChangeMulti": {
2723
+ "const": "<closure>"
2724
+ }
2725
+ },
2726
+ "required": [
2727
+ "label",
2728
+ "source",
2729
+ "value"
2730
+ ]
2731
+ },
2732
+ "FileUploadSpec": {
2733
+ "type": "object",
2734
+ "properties": {
2735
+ "accept": {
2736
+ "type": "array",
2737
+ "items": {
2738
+ "type": "string"
2739
+ }
2740
+ },
2741
+ "label": {
2742
+ "$ref": "#/$defs/TextSource"
2743
+ },
2744
+ "multiple": {
2745
+ "type": "boolean"
2746
+ },
2747
+ "onSelect": {
2748
+ "const": "<closure>"
2749
+ },
2750
+ "disabled": {
2751
+ "$ref": "#/$defs/Binding"
2752
+ }
2753
+ },
2754
+ "required": [
2755
+ "accept",
2756
+ "label",
2757
+ "multiple",
2758
+ "onSelect"
2759
+ ]
2760
+ },
2761
+ "InputKind": {
2762
+ "oneOf": [
2763
+ {
2764
+ "allOf": [
2765
+ {
2766
+ "type": "object",
2767
+ "properties": {
2768
+ "$type": {
2769
+ "const": "Form"
2770
+ }
2771
+ },
2772
+ "required": [
2773
+ "$type"
2774
+ ]
2775
+ },
2776
+ {
2777
+ "$ref": "#/$defs/FormSpec"
2778
+ }
2779
+ ]
2780
+ },
2781
+ {
2782
+ "type": "object",
2783
+ "properties": {
2784
+ "$type": {
2785
+ "const": "Filters"
2786
+ },
2787
+ "items": {
2788
+ "type": "array",
2789
+ "items": {
2790
+ "$ref": "#/$defs/FilterSpec"
2791
+ }
2792
+ }
2793
+ },
2794
+ "required": [
2795
+ "$type",
2796
+ "items"
2797
+ ]
2798
+ },
2799
+ {
2800
+ "allOf": [
2801
+ {
2802
+ "type": "object",
2803
+ "properties": {
2804
+ "$type": {
2805
+ "const": "Button"
2806
+ }
2807
+ },
2808
+ "required": [
2809
+ "$type"
2810
+ ]
2811
+ },
2812
+ {
2813
+ "$ref": "#/$defs/ButtonSpec"
2814
+ }
2815
+ ]
2816
+ },
2817
+ {
2818
+ "allOf": [
2819
+ {
2820
+ "type": "object",
2821
+ "properties": {
2822
+ "$type": {
2823
+ "const": "FileUpload"
2824
+ }
2825
+ },
2826
+ "required": [
2827
+ "$type"
2828
+ ]
2829
+ },
2830
+ {
2831
+ "$ref": "#/$defs/FileUploadSpec"
2832
+ }
2833
+ ]
2834
+ },
2835
+ {
2836
+ "allOf": [
2837
+ {
2838
+ "type": "object",
2839
+ "properties": {
2840
+ "$type": {
2841
+ "const": "Select"
2842
+ }
2843
+ },
2844
+ "required": [
2845
+ "$type"
2846
+ ]
2847
+ },
2848
+ {
2849
+ "$ref": "#/$defs/SelectSpec"
2850
+ }
2851
+ ]
2852
+ }
2853
+ ]
2854
+ },
2855
+ "ColumnErased": {
2856
+ "type": "object",
2857
+ "properties": {
2858
+ "format": {
2859
+ "$ref": "#/$defs/CellFormat"
2860
+ },
2861
+ "kind": {
2862
+ "$ref": "#/$defs/CellKindErased"
2863
+ },
2864
+ "label": {
2865
+ "type": "string"
2866
+ },
2867
+ "value": {
2868
+ "const": "<closure>"
2869
+ },
2870
+ "field": {
2871
+ "type": "string"
2872
+ },
2873
+ "width": {
2874
+ "$ref": "#/$defs/ColumnWidth"
2875
+ }
2876
+ },
2877
+ "required": [
2878
+ "kind",
2879
+ "label"
2880
+ ]
2881
+ },
2882
+ "GridSpec": {
2883
+ "type": "object",
2884
+ "properties": {
2885
+ "columns": {
2886
+ "type": "array",
2887
+ "items": {
2888
+ "$ref": "#/$defs/ColumnErased"
2889
+ }
2890
+ },
2891
+ "editable": {
2892
+ "type": "boolean"
2893
+ },
2894
+ "rowKey": {
2895
+ "const": "<closure>"
2896
+ },
2897
+ "rowKeyField": {
2898
+ "type": "string"
2899
+ },
2900
+ "source": {
2901
+ "$ref": "#/$defs/Binding"
2902
+ },
2903
+ "onRowClick": {
2904
+ "const": "<closure>"
2905
+ },
2906
+ "staticRows": {
2907
+ "type": "object",
2908
+ "properties": {
2909
+ "headers": {
2910
+ "type": "array",
2911
+ "items": {
2912
+ "$ref": "#/$defs/TextSource"
2913
+ }
2914
+ },
2915
+ "rows": {
2916
+ "type": "array",
2917
+ "items": {
2918
+ "type": "array",
2919
+ "items": {
2920
+ "$ref": "#/$defs/TextSource"
2921
+ }
2922
+ }
2923
+ }
2924
+ },
2925
+ "required": [
2926
+ "headers",
2927
+ "rows"
2928
+ ]
2929
+ }
2930
+ },
2931
+ "required": [
2932
+ "columns",
2933
+ "source"
2934
+ ]
2935
+ },
2936
+ "ChartSpec": {
2937
+ "type": "object",
2938
+ "properties": {
2939
+ "kind": {
2940
+ "$ref": "#/$defs/ChartKind"
2941
+ },
2942
+ "source": {
2943
+ "$ref": "#/$defs/Binding"
2944
+ },
2945
+ "xField": {
2946
+ "type": "string"
2947
+ },
2948
+ "yFields": {
2949
+ "type": "array",
2950
+ "items": {
2951
+ "type": "string"
2952
+ }
2953
+ },
2954
+ "stacked": {
2955
+ "type": "boolean"
2956
+ },
2957
+ "title": {
2958
+ "$ref": "#/$defs/TextSource"
2959
+ },
2960
+ "onPointClick": {
2961
+ "const": "<closure>"
2962
+ }
2963
+ },
2964
+ "required": [
2965
+ "kind",
2966
+ "source",
2967
+ "xField",
2968
+ "yFields"
2969
+ ]
2970
+ },
2971
+ "MapMarker": {
2972
+ "type": "object",
2973
+ "properties": {
2974
+ "label": {
2975
+ "$ref": "#/$defs/TextSource"
2976
+ },
2977
+ "latitude": {
2978
+ "type": "number"
2979
+ },
2980
+ "longitude": {
2981
+ "type": "number"
2982
+ }
2983
+ },
2984
+ "required": [
2985
+ "label",
2986
+ "latitude",
2987
+ "longitude"
2988
+ ]
2989
+ },
2990
+ "MapSpec": {
2991
+ "type": "object",
2992
+ "properties": {
2993
+ "centreLatitude": {
2994
+ "type": "number"
2995
+ },
2996
+ "centreLongitude": {
2997
+ "type": "number"
2998
+ },
2999
+ "source": {
3000
+ "$ref": "#/$defs/Binding"
3001
+ },
3002
+ "zoom": {
3003
+ "type": "integer"
3004
+ },
3005
+ "onMarkerClick": {
3006
+ "const": "<closure>"
3007
+ }
3008
+ },
3009
+ "required": [
3010
+ "centreLatitude",
3011
+ "centreLongitude",
3012
+ "source",
3013
+ "zoom"
3014
+ ]
3015
+ },
3016
+ "VisKind": {
3017
+ "oneOf": [
3018
+ {
3019
+ "allOf": [
3020
+ {
3021
+ "type": "object",
3022
+ "properties": {
3023
+ "$type": {
3024
+ "const": "DataGrid"
3025
+ }
3026
+ },
3027
+ "required": [
3028
+ "$type"
3029
+ ]
3030
+ },
3031
+ {
3032
+ "$ref": "#/$defs/GridSpec"
3033
+ }
3034
+ ]
3035
+ },
3036
+ {
3037
+ "allOf": [
3038
+ {
3039
+ "type": "object",
3040
+ "properties": {
3041
+ "$type": {
3042
+ "const": "Chart"
3043
+ }
3044
+ },
3045
+ "required": [
3046
+ "$type"
3047
+ ]
3048
+ },
3049
+ {
3050
+ "$ref": "#/$defs/ChartSpec"
3051
+ }
3052
+ ]
3053
+ },
3054
+ {
3055
+ "allOf": [
3056
+ {
3057
+ "type": "object",
3058
+ "properties": {
3059
+ "$type": {
3060
+ "const": "Map"
3061
+ }
3062
+ },
3063
+ "required": [
3064
+ "$type"
3065
+ ]
3066
+ },
3067
+ {
3068
+ "$ref": "#/$defs/MapSpec"
3069
+ }
3070
+ ]
3071
+ }
3072
+ ]
3073
+ },
3074
+ "BoxSpec": {
3075
+ "type": "object",
3076
+ "properties": {
3077
+ "children": {
3078
+ "type": "array",
3079
+ "items": {
3080
+ "$ref": "#/$defs/Node"
3081
+ }
3082
+ },
3083
+ "heading": {
3084
+ "$ref": "#/$defs/TextSource"
3085
+ },
3086
+ "layout": {
3087
+ "$ref": "#/$defs/BoxLayout"
3088
+ },
3089
+ "role": {
3090
+ "type": "string",
3091
+ "enum": [
3092
+ "Group",
3093
+ "Card",
3094
+ "Dashboard",
3095
+ "Separator"
3096
+ ]
3097
+ }
3098
+ },
3099
+ "required": [
3100
+ "children",
3101
+ "layout",
3102
+ "role"
3103
+ ]
3104
+ },
3105
+ "FlexLayout": {
3106
+ "type": "object",
3107
+ "properties": {
3108
+ "direction": {
3109
+ "$ref": "#/$defs/Orientation"
3110
+ },
3111
+ "gap": {
3112
+ "type": "integer"
3113
+ },
3114
+ "wrap": {
3115
+ "type": "boolean"
3116
+ }
3117
+ },
3118
+ "required": [
3119
+ "direction",
3120
+ "wrap"
3121
+ ]
3122
+ },
3123
+ "GridTemplate": {
3124
+ "type": "object",
3125
+ "properties": {
3126
+ "cols": {
3127
+ "type": "integer"
3128
+ },
3129
+ "gap": {
3130
+ "type": "integer"
3131
+ },
3132
+ "templateColumns": {
3133
+ "type": "string"
3134
+ }
3135
+ },
3136
+ "required": [
3137
+ "cols"
3138
+ ]
3139
+ },
3140
+ "BoxLayout": {
3141
+ "oneOf": [
3142
+ {
3143
+ "allOf": [
3144
+ {
3145
+ "type": "object",
3146
+ "properties": {
3147
+ "$type": {
3148
+ "const": "Flex"
3149
+ }
3150
+ },
3151
+ "required": [
3152
+ "$type"
3153
+ ]
3154
+ },
3155
+ {
3156
+ "$ref": "#/$defs/FlexLayout"
3157
+ }
3158
+ ]
3159
+ },
3160
+ {
3161
+ "allOf": [
3162
+ {
3163
+ "type": "object",
3164
+ "properties": {
3165
+ "$type": {
3166
+ "const": "Grid"
3167
+ }
3168
+ },
3169
+ "required": [
3170
+ "$type"
3171
+ ]
3172
+ },
3173
+ {
3174
+ "$ref": "#/$defs/GridTemplate"
3175
+ }
3176
+ ]
3177
+ },
3178
+ {
3179
+ "type": "object",
3180
+ "properties": {
3181
+ "$type": {
3182
+ "const": "Auto"
3183
+ }
3184
+ },
3185
+ "required": [
3186
+ "$type"
3187
+ ]
3188
+ }
3189
+ ]
3190
+ },
3191
+ "SplitPanelSpec": {
3192
+ "type": "object",
3193
+ "properties": {
3194
+ "children": {
3195
+ "type": "array",
3196
+ "items": {
3197
+ "$ref": "#/$defs/Node"
3198
+ }
3199
+ },
3200
+ "weight": {
3201
+ "type": "number"
3202
+ }
3203
+ },
3204
+ "required": [
3205
+ "children",
3206
+ "weight"
3207
+ ]
3208
+ },
3209
+ "TabHeader": {
3210
+ "type": "object",
3211
+ "properties": {
3212
+ "label": {
3213
+ "$ref": "#/$defs/TextSource"
3214
+ },
3215
+ "icon": {
3216
+ "type": "string"
3217
+ },
3218
+ "disabled": {
3219
+ "$ref": "#/$defs/Binding"
3220
+ }
3221
+ },
3222
+ "required": [
3223
+ "label"
3224
+ ]
3225
+ },
3226
+ "TabsSpec": {
3227
+ "type": "object",
3228
+ "properties": {
3229
+ "children": {
3230
+ "type": "array",
3231
+ "items": {
3232
+ "$ref": "#/$defs/Node"
3233
+ }
3234
+ },
3235
+ "orientation": {
3236
+ "$ref": "#/$defs/Orientation"
3237
+ },
3238
+ "activeIndex": {
3239
+ "$ref": "#/$defs/Binding"
3240
+ },
3241
+ "onSelect": {
3242
+ "const": "<closure>"
3243
+ },
3244
+ "tabHeaders": {
3245
+ "type": "array",
3246
+ "items": {
3247
+ "$ref": "#/$defs/TabHeader"
3248
+ }
3249
+ },
3250
+ "tabTags": {
3251
+ "type": "array",
3252
+ "items": {
3253
+ "type": "string"
3254
+ }
3255
+ },
3256
+ "activeTag": {
3257
+ "$ref": "#/$defs/Binding"
3258
+ },
3259
+ "onSelectTag": {
3260
+ "const": "<closure>"
3261
+ }
3262
+ },
3263
+ "required": [
3264
+ "children"
3265
+ ]
3266
+ },
3267
+ "StepperSpec": {
3268
+ "type": "object",
3269
+ "properties": {
3270
+ "activeStep": {
3271
+ "$ref": "#/$defs/Binding"
3272
+ },
3273
+ "children": {
3274
+ "type": "array",
3275
+ "items": {
3276
+ "$ref": "#/$defs/Node"
3277
+ }
3278
+ },
3279
+ "onSelect": {
3280
+ "const": "<closure>"
3281
+ }
3282
+ },
3283
+ "required": [
3284
+ "activeStep",
3285
+ "children"
3286
+ ]
3287
+ },
3288
+ "SummaryListSpec": {
3289
+ "type": "object",
3290
+ "properties": {
3291
+ "children": {
3292
+ "type": "array",
3293
+ "items": {
3294
+ "$ref": "#/$defs/Node"
3295
+ }
3296
+ },
3297
+ "heading": {
3298
+ "$ref": "#/$defs/TextSource"
3299
+ }
3300
+ },
3301
+ "required": [
3302
+ "children"
3303
+ ]
3304
+ },
3305
+ "DisclosureSpec": {
3306
+ "type": "object",
3307
+ "properties": {
3308
+ "children": {
3309
+ "type": "array",
3310
+ "items": {
3311
+ "$ref": "#/$defs/Node"
3312
+ }
3313
+ },
3314
+ "defaultOpen": {
3315
+ "type": "boolean"
3316
+ },
3317
+ "heading": {
3318
+ "$ref": "#/$defs/TextSource"
3319
+ },
3320
+ "open": {
3321
+ "$ref": "#/$defs/Binding"
3322
+ },
3323
+ "onToggle": {
3324
+ "const": "<closure>"
3325
+ }
3326
+ },
3327
+ "required": [
3328
+ "children",
3329
+ "defaultOpen",
3330
+ "heading",
3331
+ "open"
3332
+ ]
3333
+ },
3334
+ "ModalSpec": {
3335
+ "type": "object",
3336
+ "properties": {
3337
+ "children": {
3338
+ "type": "array",
3339
+ "items": {
3340
+ "$ref": "#/$defs/Node"
3341
+ }
3342
+ },
3343
+ "dismissable": {
3344
+ "type": "boolean"
3345
+ },
3346
+ "onDismiss": {
3347
+ "$ref": "#/$defs/Action"
3348
+ },
3349
+ "open": {
3350
+ "$ref": "#/$defs/Binding"
3351
+ },
3352
+ "heading": {
3353
+ "$ref": "#/$defs/TextSource"
3354
+ }
3355
+ },
3356
+ "required": [
3357
+ "children",
3358
+ "dismissable",
3359
+ "open"
3360
+ ]
3361
+ },
3362
+ "ScrollAreaSpec": {
3363
+ "type": "object",
3364
+ "properties": {
3365
+ "children": {
3366
+ "type": "array",
3367
+ "items": {
3368
+ "$ref": "#/$defs/Node"
3369
+ }
3370
+ },
3371
+ "orientation": {
3372
+ "$ref": "#/$defs/ScrollOrientation"
3373
+ },
3374
+ "maxHeight": {
3375
+ "type": "integer"
3376
+ },
3377
+ "maxWidth": {
3378
+ "type": "integer"
3379
+ }
3380
+ },
3381
+ "required": [
3382
+ "children",
3383
+ "orientation"
3384
+ ]
3385
+ },
3386
+ "LayoutKind": {
3387
+ "oneOf": [
3388
+ {
3389
+ "allOf": [
3390
+ {
3391
+ "type": "object",
3392
+ "properties": {
3393
+ "$type": {
3394
+ "const": "Box"
3395
+ }
3396
+ },
3397
+ "required": [
3398
+ "$type"
3399
+ ]
3400
+ },
3401
+ {
3402
+ "$ref": "#/$defs/BoxSpec"
3403
+ }
3404
+ ]
3405
+ },
3406
+ {
3407
+ "allOf": [
3408
+ {
3409
+ "type": "object",
3410
+ "properties": {
3411
+ "$type": {
3412
+ "const": "SplitPanel"
3413
+ }
3414
+ },
3415
+ "required": [
3416
+ "$type"
3417
+ ]
3418
+ },
3419
+ {
3420
+ "$ref": "#/$defs/SplitPanelSpec"
3421
+ }
3422
+ ]
3423
+ },
3424
+ {
3425
+ "allOf": [
3426
+ {
3427
+ "type": "object",
3428
+ "properties": {
3429
+ "$type": {
3430
+ "const": "Tabs"
3431
+ }
3432
+ },
3433
+ "required": [
3434
+ "$type"
3435
+ ]
3436
+ },
3437
+ {
3438
+ "$ref": "#/$defs/TabsSpec"
3439
+ }
3440
+ ]
3441
+ },
3442
+ {
3443
+ "allOf": [
3444
+ {
3445
+ "type": "object",
3446
+ "properties": {
3447
+ "$type": {
3448
+ "const": "Stepper"
3449
+ }
3450
+ },
3451
+ "required": [
3452
+ "$type"
3453
+ ]
3454
+ },
3455
+ {
3456
+ "$ref": "#/$defs/StepperSpec"
3457
+ }
3458
+ ]
3459
+ },
3460
+ {
3461
+ "allOf": [
3462
+ {
3463
+ "type": "object",
3464
+ "properties": {
3465
+ "$type": {
3466
+ "const": "SummaryList"
3467
+ }
3468
+ },
3469
+ "required": [
3470
+ "$type"
3471
+ ]
3472
+ },
3473
+ {
3474
+ "$ref": "#/$defs/SummaryListSpec"
3475
+ }
3476
+ ]
3477
+ },
3478
+ {
3479
+ "allOf": [
3480
+ {
3481
+ "type": "object",
3482
+ "properties": {
3483
+ "$type": {
3484
+ "const": "Disclosure"
3485
+ }
3486
+ },
3487
+ "required": [
3488
+ "$type"
3489
+ ]
3490
+ },
3491
+ {
3492
+ "$ref": "#/$defs/DisclosureSpec"
3493
+ }
3494
+ ]
3495
+ },
3496
+ {
3497
+ "allOf": [
3498
+ {
3499
+ "type": "object",
3500
+ "properties": {
3501
+ "$type": {
3502
+ "const": "Modal"
3503
+ }
3504
+ },
3505
+ "required": [
3506
+ "$type"
3507
+ ]
3508
+ },
3509
+ {
3510
+ "$ref": "#/$defs/ModalSpec"
3511
+ }
3512
+ ]
3513
+ },
3514
+ {
3515
+ "allOf": [
3516
+ {
3517
+ "type": "object",
3518
+ "properties": {
3519
+ "$type": {
3520
+ "const": "ScrollArea"
3521
+ }
3522
+ },
3523
+ "required": [
3524
+ "$type"
3525
+ ]
3526
+ },
3527
+ {
3528
+ "$ref": "#/$defs/ScrollAreaSpec"
3529
+ }
3530
+ ]
3531
+ }
3532
+ ]
3533
+ },
3534
+ "ContentHash": {
3535
+ "type": "object",
3536
+ "properties": {
3537
+ "algorithm": {
3538
+ "type": "string"
3539
+ },
3540
+ "hash": {
3541
+ "type": "string"
3542
+ },
3543
+ "strictness": {
3544
+ "$ref": "#/$defs/HashStrictness"
3545
+ }
3546
+ },
3547
+ "required": [
3548
+ "algorithm",
3549
+ "hash",
3550
+ "strictness"
3551
+ ]
3552
+ },
3553
+ "HoleValueSpace": {
3554
+ "oneOf": [
3555
+ {
3556
+ "type": "object",
3557
+ "properties": {
3558
+ "$type": {
3559
+ "const": "IntRange"
3560
+ },
3561
+ "max": {
3562
+ "type": "integer"
3563
+ },
3564
+ "min": {
3565
+ "type": "integer"
3566
+ }
3567
+ },
3568
+ "required": [
3569
+ "$type",
3570
+ "max",
3571
+ "min"
3572
+ ]
3573
+ },
3574
+ {
3575
+ "type": "object",
3576
+ "properties": {
3577
+ "$type": {
3578
+ "const": "FloatRange"
3579
+ },
3580
+ "max": {
3581
+ "type": "number"
3582
+ },
3583
+ "min": {
3584
+ "type": "number"
3585
+ }
3586
+ },
3587
+ "required": [
3588
+ "$type",
3589
+ "max",
3590
+ "min"
3591
+ ]
3592
+ },
3593
+ {
3594
+ "type": "object",
3595
+ "properties": {
3596
+ "$type": {
3597
+ "const": "StringLen"
3598
+ },
3599
+ "maxLen": {
3600
+ "type": "integer"
3601
+ },
3602
+ "minLen": {
3603
+ "type": "integer"
3604
+ }
3605
+ },
3606
+ "required": [
3607
+ "$type",
3608
+ "maxLen",
3609
+ "minLen"
3610
+ ]
3611
+ },
3612
+ {
3613
+ "type": "object",
3614
+ "properties": {
3615
+ "$type": {
3616
+ "const": "Enum"
3617
+ },
3618
+ "choices": {
3619
+ "type": "array",
3620
+ "items": {
3621
+ "type": "string"
3622
+ }
3623
+ }
3624
+ },
3625
+ "required": [
3626
+ "$type",
3627
+ "choices"
3628
+ ]
3629
+ },
3630
+ {
3631
+ "type": "object",
3632
+ "properties": {
3633
+ "$type": {
3634
+ "const": "AnyString"
3635
+ }
3636
+ },
3637
+ "required": [
3638
+ "$type"
3639
+ ]
3640
+ }
3641
+ ]
3642
+ },
3643
+ "Scalar": {
3644
+ "oneOf": [
3645
+ {
3646
+ "type": "object",
3647
+ "properties": {
3648
+ "$type": {
3649
+ "const": "Int"
3650
+ },
3651
+ "value": {
3652
+ "type": "integer"
3653
+ }
3654
+ },
3655
+ "required": [
3656
+ "$type",
3657
+ "value"
3658
+ ]
3659
+ },
3660
+ {
3661
+ "type": "object",
3662
+ "properties": {
3663
+ "$type": {
3664
+ "const": "Float"
3665
+ },
3666
+ "value": {
3667
+ "type": "number"
3668
+ }
3669
+ },
3670
+ "required": [
3671
+ "$type",
3672
+ "value"
3673
+ ]
3674
+ },
3675
+ {
3676
+ "type": "object",
3677
+ "properties": {
3678
+ "$type": {
3679
+ "const": "Bool"
3680
+ },
3681
+ "value": {
3682
+ "type": "boolean"
3683
+ }
3684
+ },
3685
+ "required": [
3686
+ "$type",
3687
+ "value"
3688
+ ]
3689
+ },
3690
+ {
3691
+ "type": "object",
3692
+ "properties": {
3693
+ "$type": {
3694
+ "const": "Str"
3695
+ },
3696
+ "value": {
3697
+ "type": "string"
3698
+ }
3699
+ },
3700
+ "required": [
3701
+ "$type",
3702
+ "value"
3703
+ ]
3704
+ }
3705
+ ]
3706
+ },
3707
+ "HoleDecl": {
3708
+ "oneOf": [
3709
+ {
3710
+ "type": "object",
3711
+ "properties": {
3712
+ "$type": {
3713
+ "const": "Value"
3714
+ },
3715
+ "name": {
3716
+ "type": "string"
3717
+ },
3718
+ "space": {
3719
+ "$ref": "#/$defs/HoleValueSpace"
3720
+ },
3721
+ "default": {
3722
+ "$ref": "#/$defs/Scalar"
3723
+ }
3724
+ },
3725
+ "required": [
3726
+ "$type",
3727
+ "name",
3728
+ "space"
3729
+ ]
3730
+ },
3731
+ {
3732
+ "type": "object",
3733
+ "properties": {
3734
+ "$type": {
3735
+ "const": "Slot"
3736
+ },
3737
+ "name": {
3738
+ "type": "string"
3739
+ },
3740
+ "kindConstraint": {
3741
+ "type": "string"
3742
+ }
3743
+ },
3744
+ "required": [
3745
+ "$type",
3746
+ "name"
3747
+ ]
3748
+ },
3749
+ {
3750
+ "type": "object",
3751
+ "properties": {
3752
+ "$type": {
3753
+ "const": "Repeat"
3754
+ },
3755
+ "countSpace": {
3756
+ "$ref": "#/$defs/HoleValueSpace"
3757
+ },
3758
+ "name": {
3759
+ "type": "string"
3760
+ }
3761
+ },
3762
+ "required": [
3763
+ "$type",
3764
+ "countSpace",
3765
+ "name"
3766
+ ]
3767
+ }
3768
+ ]
3769
+ },
3770
+ "EffectClass": {
3771
+ "type": "object",
3772
+ "properties": {
3773
+ "determinism": {
3774
+ "type": "string",
3775
+ "enum": [
3776
+ "Deterministic",
3777
+ "Clock",
3778
+ "Random",
3779
+ "Network"
3780
+ ]
3781
+ },
3782
+ "hostEffect": {
3783
+ "type": "string",
3784
+ "enum": [
3785
+ "Pure",
3786
+ "ReadsHost",
3787
+ "WritesHost"
3788
+ ]
3789
+ }
3790
+ },
3791
+ "required": [
3792
+ "determinism",
3793
+ "hostEffect"
3794
+ ]
3795
+ },
3796
+ "FragmentArg": {
3797
+ "oneOf": [
3798
+ {
3799
+ "type": "object",
3800
+ "properties": {
3801
+ "$type": {
3802
+ "const": "Int"
3803
+ },
3804
+ "value": {
3805
+ "type": "integer"
3806
+ }
3807
+ },
3808
+ "required": [
3809
+ "$type",
3810
+ "value"
3811
+ ]
3812
+ },
3813
+ {
3814
+ "type": "object",
3815
+ "properties": {
3816
+ "$type": {
3817
+ "const": "Float"
3818
+ },
3819
+ "value": {
3820
+ "type": "number"
3821
+ }
3822
+ },
3823
+ "required": [
3824
+ "$type",
3825
+ "value"
3826
+ ]
3827
+ },
3828
+ {
3829
+ "type": "object",
3830
+ "properties": {
3831
+ "$type": {
3832
+ "const": "Bool"
3833
+ },
3834
+ "value": {
3835
+ "type": "boolean"
3836
+ }
3837
+ },
3838
+ "required": [
3839
+ "$type",
3840
+ "value"
3841
+ ]
3842
+ },
3843
+ {
3844
+ "type": "object",
3845
+ "properties": {
3846
+ "$type": {
3847
+ "const": "Str"
3848
+ },
3849
+ "value": {
3850
+ "type": "string"
3851
+ }
3852
+ },
3853
+ "required": [
3854
+ "$type",
3855
+ "value"
3856
+ ]
3857
+ },
3858
+ {
3859
+ "type": "object",
3860
+ "properties": {
3861
+ "$type": {
3862
+ "const": "SlotArg"
3863
+ },
3864
+ "tree": {
3865
+ "$ref": "#/$defs/Node"
3866
+ }
3867
+ },
3868
+ "required": [
3869
+ "$type",
3870
+ "tree"
3871
+ ]
3872
+ }
3873
+ ]
3874
+ },
3875
+ "GuestChannel": {
3876
+ "type": "object",
3877
+ "properties": {
3878
+ "direction": {
3879
+ "type": "string",
3880
+ "enum": [
3881
+ "OutOnly",
3882
+ "TwoWay"
3883
+ ]
3884
+ },
3885
+ "messageShape": {
3886
+ "type": "string"
3887
+ }
3888
+ },
3889
+ "required": [
3890
+ "direction"
3891
+ ]
3892
+ },
3893
+ "NodeKind": {
3894
+ "oneOf": [
3895
+ {
3896
+ "$ref": "#/$defs/LayoutKind"
3897
+ },
3898
+ {
3899
+ "$ref": "#/$defs/DisplayKind"
3900
+ },
3901
+ {
3902
+ "$ref": "#/$defs/InputKind"
3903
+ },
3904
+ {
3905
+ "$ref": "#/$defs/VisKind"
3906
+ },
3907
+ {
3908
+ "type": "object",
3909
+ "properties": {
3910
+ "$type": {
3911
+ "const": "Custom"
3912
+ },
3913
+ "componentId": {
3914
+ "type": "string"
3915
+ },
3916
+ "moduleId": {
3917
+ "type": "string"
3918
+ },
3919
+ "props": {
3920
+ "type": "object",
3921
+ "additionalProperties": {
3922
+ "not": {
3923
+ "type": "null"
3924
+ }
3925
+ }
3926
+ },
3927
+ "contentHash": {
3928
+ "$ref": "#/$defs/ContentHash"
3929
+ },
3930
+ "exposedNodeIds": {
3931
+ "type": "array",
3932
+ "items": {
3933
+ "type": "string"
3934
+ }
3935
+ }
3936
+ },
3937
+ "required": [
3938
+ "$type",
3939
+ "componentId",
3940
+ "moduleId",
3941
+ "props"
3942
+ ]
3943
+ },
3944
+ {
3945
+ "type": "object",
3946
+ "properties": {
3947
+ "$type": {
3948
+ "const": "ErrorBoundary"
3949
+ },
3950
+ "child": {
3951
+ "$ref": "#/$defs/Node"
3952
+ },
3953
+ "fallback": {
3954
+ "$ref": "#/$defs/Node"
3955
+ }
3956
+ },
3957
+ "required": [
3958
+ "$type",
3959
+ "child",
3960
+ "fallback"
3961
+ ]
3962
+ },
3963
+ {
3964
+ "type": "object",
3965
+ "properties": {
3966
+ "$type": {
3967
+ "const": "Switch"
3968
+ },
3969
+ "cases": {
3970
+ "type": "array",
3971
+ "items": {
3972
+ "type": "object",
3973
+ "properties": {
3974
+ "child": {
3975
+ "$ref": "#/$defs/Node"
3976
+ },
3977
+ "match": {
3978
+ "type": "string"
3979
+ }
3980
+ },
3981
+ "required": [
3982
+ "child",
3983
+ "match"
3984
+ ]
3985
+ }
3986
+ },
3987
+ "default": {
3988
+ "$ref": "#/$defs/Node"
3989
+ },
3990
+ "stateKey": {
3991
+ "type": "string"
3992
+ }
3993
+ },
3994
+ "required": [
3995
+ "$type",
3996
+ "cases",
3997
+ "default",
3998
+ "stateKey"
3999
+ ]
4000
+ },
4001
+ {
4002
+ "type": "object",
4003
+ "properties": {
4004
+ "$type": {
4005
+ "const": "FragmentDecl"
4006
+ },
4007
+ "body": {
4008
+ "$ref": "#/$defs/Node"
4009
+ },
4010
+ "name": {
4011
+ "type": "string"
4012
+ },
4013
+ "holes": {
4014
+ "type": "array",
4015
+ "items": {
4016
+ "$ref": "#/$defs/HoleDecl"
4017
+ }
4018
+ },
4019
+ "effect": {
4020
+ "$ref": "#/$defs/EffectClass"
4021
+ }
4022
+ },
4023
+ "required": [
4024
+ "$type",
4025
+ "body",
4026
+ "name"
4027
+ ]
4028
+ },
4029
+ {
4030
+ "type": "object",
4031
+ "properties": {
4032
+ "$type": {
4033
+ "const": "FragmentRef"
4034
+ },
4035
+ "name": {
4036
+ "type": "string"
4037
+ },
4038
+ "args": {
4039
+ "type": "object",
4040
+ "additionalProperties": {
4041
+ "$ref": "#/$defs/FragmentArg"
4042
+ }
4043
+ }
4044
+ },
4045
+ "required": [
4046
+ "$type",
4047
+ "name"
4048
+ ]
4049
+ },
4050
+ {
4051
+ "type": "object",
4052
+ "properties": {
4053
+ "$type": {
4054
+ "const": "Mount"
4055
+ },
4056
+ "capabilities": {
4057
+ "type": "array",
4058
+ "items": {
4059
+ "type": "string"
4060
+ }
4061
+ },
4062
+ "channel": {
4063
+ "$ref": "#/$defs/GuestChannel"
4064
+ },
4065
+ "onBubble": {
4066
+ "const": "<closure>"
4067
+ },
4068
+ "scopeId": {
4069
+ "type": "string"
4070
+ },
4071
+ "inputs": {
4072
+ "type": "object",
4073
+ "additionalProperties": {
4074
+ "$ref": "#/$defs/FragmentArg"
4075
+ }
4076
+ }
4077
+ },
4078
+ "required": [
4079
+ "$type",
4080
+ "capabilities",
4081
+ "channel",
4082
+ "onBubble",
4083
+ "scopeId"
4084
+ ]
4085
+ }
4086
+ ]
4087
+ },
4088
+ "StateBehaviour": {
4089
+ "type": "object",
4090
+ "properties": {
4091
+ "onLoading": {
4092
+ "$ref": "#/$defs/Node"
4093
+ },
4094
+ "onEmpty": {
4095
+ "$ref": "#/$defs/Node"
4096
+ },
4097
+ "onError": {
4098
+ "const": "<closure>"
4099
+ }
4100
+ }
4101
+ },
4102
+ "SemanticStyle": {
4103
+ "type": "object",
4104
+ "properties": {
4105
+ "emphasis": {
4106
+ "$ref": "#/$defs/Emphasis"
4107
+ },
4108
+ "tone": {
4109
+ "$ref": "#/$defs/ToneVariant"
4110
+ },
4111
+ "weight": {
4112
+ "$ref": "#/$defs/StyleWeight"
4113
+ },
4114
+ "role": {
4115
+ "$ref": "#/$defs/StyleRole"
4116
+ },
4117
+ "voice": {
4118
+ "$ref": "#/$defs/FontVoice"
4119
+ }
4120
+ }
4121
+ },
4122
+ "Accessibility": {
4123
+ "type": "object",
4124
+ "properties": {
4125
+ "label": {
4126
+ "$ref": "#/$defs/Binding"
4127
+ },
4128
+ "labelledBy": {
4129
+ "type": "string"
4130
+ },
4131
+ "describedBy": {
4132
+ "type": "string"
4133
+ },
4134
+ "role": {
4135
+ "$ref": "#/$defs/AriaRole"
4136
+ },
4137
+ "liveRegion": {
4138
+ "$ref": "#/$defs/LiveRegionKind"
4139
+ },
4140
+ "hidden": {
4141
+ "$ref": "#/$defs/Binding"
4142
+ }
4143
+ }
4144
+ },
4145
+ "Node": {
4146
+ "type": "object",
4147
+ "properties": {
4148
+ "id": {
4149
+ "type": "string",
4150
+ "minLength": 1
4151
+ },
4152
+ "kind": {
4153
+ "$ref": "#/$defs/NodeKind"
4154
+ },
4155
+ "state": {
4156
+ "$ref": "#/$defs/StateBehaviour"
4157
+ },
4158
+ "style": {
4159
+ "$ref": "#/$defs/SemanticStyle"
4160
+ },
4161
+ "accessibility": {
4162
+ "$ref": "#/$defs/Accessibility"
4163
+ }
4164
+ },
4165
+ "required": [
4166
+ "id",
4167
+ "kind"
4168
+ ]
4169
+ },
4170
+ "TreeOp": {
4171
+ "oneOf": [
4172
+ {
4173
+ "type": "object",
4174
+ "properties": {
4175
+ "$type": {
4176
+ "const": "EditNode"
4177
+ },
4178
+ "newKind": {
4179
+ "$ref": "#/$defs/NodeKind"
4180
+ },
4181
+ "target": {
4182
+ "type": "string"
4183
+ }
4184
+ },
4185
+ "required": [
4186
+ "$type",
4187
+ "newKind",
4188
+ "target"
4189
+ ]
4190
+ },
4191
+ {
4192
+ "type": "object",
4193
+ "properties": {
4194
+ "$type": {
4195
+ "const": "UpdateProp"
4196
+ },
4197
+ "path": {
4198
+ "type": "string"
4199
+ },
4200
+ "target": {
4201
+ "type": "string"
4202
+ },
4203
+ "value": {
4204
+ "not": {
4205
+ "type": "null"
4206
+ }
4207
+ }
4208
+ },
4209
+ "required": [
4210
+ "$type",
4211
+ "path",
4212
+ "target",
4213
+ "value"
4214
+ ]
4215
+ },
4216
+ {
4217
+ "type": "object",
4218
+ "properties": {
4219
+ "$type": {
4220
+ "const": "ReplaceBinding"
4221
+ },
4222
+ "binding": {
4223
+ "$ref": "#/$defs/Binding"
4224
+ },
4225
+ "slot": {
4226
+ "type": "string"
4227
+ },
4228
+ "target": {
4229
+ "type": "string"
4230
+ }
4231
+ },
4232
+ "required": [
4233
+ "$type",
4234
+ "binding",
4235
+ "slot",
4236
+ "target"
4237
+ ]
4238
+ },
4239
+ {
4240
+ "type": "object",
4241
+ "properties": {
4242
+ "$type": {
4243
+ "const": "UpdateStyle"
4244
+ },
4245
+ "style": {
4246
+ "$ref": "#/$defs/SemanticStyle"
4247
+ },
4248
+ "target": {
4249
+ "type": "string"
4250
+ }
4251
+ },
4252
+ "required": [
4253
+ "$type",
4254
+ "style",
4255
+ "target"
4256
+ ]
4257
+ },
4258
+ {
4259
+ "type": "object",
4260
+ "properties": {
4261
+ "$type": {
4262
+ "const": "UpdateState"
4263
+ },
4264
+ "state": {
4265
+ "$ref": "#/$defs/StateBehaviour"
4266
+ },
4267
+ "target": {
4268
+ "type": "string"
4269
+ }
4270
+ },
4271
+ "required": [
4272
+ "$type",
4273
+ "state",
4274
+ "target"
4275
+ ]
4276
+ },
4277
+ {
4278
+ "type": "object",
4279
+ "properties": {
4280
+ "$type": {
4281
+ "const": "InsertChild"
4282
+ },
4283
+ "child": {
4284
+ "$ref": "#/$defs/Node"
4285
+ },
4286
+ "parentId": {
4287
+ "type": "string"
4288
+ },
4289
+ "position": {
4290
+ "type": "integer"
4291
+ }
4292
+ },
4293
+ "required": [
4294
+ "$type",
4295
+ "child",
4296
+ "parentId",
4297
+ "position"
4298
+ ]
4299
+ },
4300
+ {
4301
+ "type": "object",
4302
+ "properties": {
4303
+ "$type": {
4304
+ "const": "RemoveNode"
4305
+ },
4306
+ "target": {
4307
+ "type": "string"
4308
+ }
4309
+ },
4310
+ "required": [
4311
+ "$type",
4312
+ "target"
4313
+ ]
4314
+ },
4315
+ {
4316
+ "type": "object",
4317
+ "properties": {
4318
+ "$type": {
4319
+ "const": "MoveNode"
4320
+ },
4321
+ "newParentId": {
4322
+ "type": "string"
4323
+ },
4324
+ "newPosition": {
4325
+ "type": "integer"
4326
+ },
4327
+ "target": {
4328
+ "type": "string"
4329
+ }
4330
+ },
4331
+ "required": [
4332
+ "$type",
4333
+ "newParentId",
4334
+ "newPosition",
4335
+ "target"
4336
+ ]
4337
+ },
4338
+ {
4339
+ "type": "object",
4340
+ "properties": {
4341
+ "$type": {
4342
+ "const": "ReorderChildren"
4343
+ },
4344
+ "newOrder": {
4345
+ "type": "array",
4346
+ "items": {
4347
+ "type": "string"
4348
+ }
4349
+ },
4350
+ "parentId": {
4351
+ "type": "string"
4352
+ }
4353
+ },
4354
+ "required": [
4355
+ "$type",
4356
+ "newOrder",
4357
+ "parentId"
4358
+ ]
4359
+ },
4360
+ {
4361
+ "type": "object",
4362
+ "properties": {
4363
+ "$type": {
4364
+ "const": "ReplaceRoot"
4365
+ },
4366
+ "node": {
4367
+ "$ref": "#/$defs/Node"
4368
+ }
4369
+ },
4370
+ "required": [
4371
+ "$type",
4372
+ "node"
4373
+ ]
4374
+ },
4375
+ {
4376
+ "type": "object",
4377
+ "properties": {
4378
+ "$type": {
4379
+ "const": "Batch"
4380
+ },
4381
+ "ops": {
4382
+ "type": "array",
4383
+ "items": {
4384
+ "$ref": "#/$defs/TreeOp"
4385
+ }
4386
+ }
4387
+ },
4388
+ "required": [
4389
+ "$type",
4390
+ "ops"
4391
+ ]
4392
+ }
4393
+ ]
4394
+ }
4395
+ }
4396
+ }