@lynx-js/genui 0.0.2 → 0.0.4

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 (292) hide show
  1. package/README.md +5 -9
  2. package/a2ui/AGENTS.md +167 -0
  3. package/a2ui/README.md +76 -780
  4. package/a2ui/README_zh.md +103 -0
  5. package/a2ui/dist/catalog/Button/catalog.json +2 -1
  6. package/a2ui/dist/catalog/Button/index.d.ts +5 -0
  7. package/a2ui/dist/catalog/Button/index.jsx +3 -0
  8. package/a2ui/dist/catalog/Button/index.jsx.map +1 -1
  9. package/a2ui/dist/catalog/Card/catalog.json +2 -1
  10. package/a2ui/dist/catalog/Card/index.d.ts +5 -0
  11. package/a2ui/dist/catalog/Card/index.jsx +3 -0
  12. package/a2ui/dist/catalog/Card/index.jsx.map +1 -1
  13. package/a2ui/dist/catalog/CheckBox/catalog.json +2 -1
  14. package/a2ui/dist/catalog/CheckBox/index.d.ts +5 -0
  15. package/a2ui/dist/catalog/CheckBox/index.jsx +3 -0
  16. package/a2ui/dist/catalog/CheckBox/index.jsx.map +1 -1
  17. package/a2ui/dist/catalog/ChoicePicker/catalog.json +2 -1
  18. package/a2ui/dist/catalog/ChoicePicker/index.d.ts +5 -0
  19. package/a2ui/dist/catalog/ChoicePicker/index.jsx +3 -0
  20. package/a2ui/dist/catalog/ChoicePicker/index.jsx.map +1 -1
  21. package/a2ui/dist/catalog/Column/catalog.json +2 -1
  22. package/a2ui/dist/catalog/Column/index.d.ts +5 -0
  23. package/a2ui/dist/catalog/Column/index.jsx +3 -0
  24. package/a2ui/dist/catalog/Column/index.jsx.map +1 -1
  25. package/a2ui/dist/catalog/DateTimeInput/catalog.json +2 -1
  26. package/a2ui/dist/catalog/DateTimeInput/index.d.ts +5 -0
  27. package/a2ui/dist/catalog/DateTimeInput/index.jsx +4 -10
  28. package/a2ui/dist/catalog/DateTimeInput/index.jsx.map +1 -1
  29. package/a2ui/dist/catalog/DateTimeInput/utils.d.ts +0 -1
  30. package/a2ui/dist/catalog/DateTimeInput/utils.js +0 -3
  31. package/a2ui/dist/catalog/DateTimeInput/utils.js.map +1 -1
  32. package/a2ui/dist/catalog/Divider/catalog.json +2 -1
  33. package/a2ui/dist/catalog/Divider/index.d.ts +5 -0
  34. package/a2ui/dist/catalog/Divider/index.jsx +3 -0
  35. package/a2ui/dist/catalog/Divider/index.jsx.map +1 -1
  36. package/a2ui/dist/catalog/Icon/catalog.json +2 -1
  37. package/a2ui/dist/catalog/Icon/index.d.ts +5 -0
  38. package/a2ui/dist/catalog/Icon/index.jsx +3 -0
  39. package/a2ui/dist/catalog/Icon/index.jsx.map +1 -1
  40. package/a2ui/dist/catalog/Image/catalog.json +2 -1
  41. package/a2ui/dist/catalog/Image/index.d.ts +5 -0
  42. package/a2ui/dist/catalog/Image/index.jsx +3 -0
  43. package/a2ui/dist/catalog/Image/index.jsx.map +1 -1
  44. package/a2ui/dist/catalog/LazyComponent/catalog.json +37 -0
  45. package/a2ui/dist/catalog/LazyComponent/index.d.ts +27 -0
  46. package/a2ui/dist/catalog/LazyComponent/index.jsx +39 -0
  47. package/a2ui/dist/catalog/LazyComponent/index.jsx.map +1 -0
  48. package/a2ui/dist/catalog/LineChart/catalog.json +2 -1
  49. package/a2ui/dist/catalog/LineChart/index.d.ts +8 -0
  50. package/a2ui/dist/catalog/LineChart/index.jsx +3 -0
  51. package/a2ui/dist/catalog/LineChart/index.jsx.map +1 -1
  52. package/a2ui/dist/catalog/List/catalog.json +2 -1
  53. package/a2ui/dist/catalog/List/index.d.ts +5 -0
  54. package/a2ui/dist/catalog/List/index.jsx +3 -0
  55. package/a2ui/dist/catalog/List/index.jsx.map +1 -1
  56. package/a2ui/dist/catalog/Loading/catalog.json +16 -0
  57. package/a2ui/dist/catalog/Loading/index.d.ts +15 -0
  58. package/a2ui/dist/catalog/Loading/index.jsx +14 -0
  59. package/a2ui/dist/catalog/Loading/index.jsx.map +1 -0
  60. package/a2ui/dist/catalog/Modal/catalog.json +2 -1
  61. package/a2ui/dist/catalog/Modal/index.d.ts +5 -0
  62. package/a2ui/dist/catalog/Modal/index.jsx +3 -0
  63. package/a2ui/dist/catalog/Modal/index.jsx.map +1 -1
  64. package/a2ui/dist/catalog/PieChart/catalog.json +2 -1
  65. package/a2ui/dist/catalog/PieChart/index.d.ts +8 -0
  66. package/a2ui/dist/catalog/PieChart/index.jsx +3 -0
  67. package/a2ui/dist/catalog/PieChart/index.jsx.map +1 -1
  68. package/a2ui/dist/catalog/RadioGroup/catalog.json +2 -1
  69. package/a2ui/dist/catalog/RadioGroup/index.d.ts +5 -0
  70. package/a2ui/dist/catalog/RadioGroup/index.jsx +3 -0
  71. package/a2ui/dist/catalog/RadioGroup/index.jsx.map +1 -1
  72. package/a2ui/dist/catalog/Row/catalog.json +2 -1
  73. package/a2ui/dist/catalog/Row/index.d.ts +5 -0
  74. package/a2ui/dist/catalog/Row/index.jsx +3 -0
  75. package/a2ui/dist/catalog/Row/index.jsx.map +1 -1
  76. package/a2ui/dist/catalog/Slider/catalog.json +2 -1
  77. package/a2ui/dist/catalog/Slider/index.d.ts +5 -0
  78. package/a2ui/dist/catalog/Slider/index.jsx +3 -0
  79. package/a2ui/dist/catalog/Slider/index.jsx.map +1 -1
  80. package/a2ui/dist/catalog/Tabs/catalog.json +2 -1
  81. package/a2ui/dist/catalog/Tabs/index.d.ts +5 -0
  82. package/a2ui/dist/catalog/Tabs/index.jsx +3 -0
  83. package/a2ui/dist/catalog/Tabs/index.jsx.map +1 -1
  84. package/a2ui/dist/catalog/Text/catalog.json +2 -1
  85. package/a2ui/dist/catalog/Text/index.d.ts +5 -0
  86. package/a2ui/dist/catalog/Text/index.jsx +3 -0
  87. package/a2ui/dist/catalog/Text/index.jsx.map +1 -1
  88. package/a2ui/dist/catalog/TextField/catalog.json +2 -1
  89. package/a2ui/dist/catalog/TextField/index.d.ts +5 -0
  90. package/a2ui/dist/catalog/TextField/index.jsx +3 -0
  91. package/a2ui/dist/catalog/TextField/index.jsx.map +1 -1
  92. package/a2ui/dist/catalog/defineCatalog.d.ts +4 -4
  93. package/a2ui/dist/catalog/defineCatalog.js.map +1 -1
  94. package/a2ui/dist/catalog/index.d.ts +2 -0
  95. package/a2ui/dist/catalog/index.js +92 -18
  96. package/a2ui/dist/catalog/index.js.map +1 -1
  97. package/a2ui/dist/catalog.json +2603 -0
  98. package/a2ui/dist/index.d.ts +1 -1
  99. package/a2ui/dist/index.js +2 -2
  100. package/a2ui/dist/index.js.map +1 -1
  101. package/a2ui/dist/react/A2UI.d.ts +3 -0
  102. package/a2ui/dist/react/A2UI.jsx.map +1 -1
  103. package/a2ui/dist/react/A2UIRenderer.d.ts +5 -18
  104. package/a2ui/dist/react/A2UIRenderer.jsx +3 -13
  105. package/a2ui/dist/react/A2UIRenderer.jsx.map +1 -1
  106. package/a2ui/dist/react/useAction.d.ts +7 -0
  107. package/a2ui/dist/react/useAction.js +4 -0
  108. package/a2ui/dist/react/useAction.js.map +1 -1
  109. package/a2ui/dist/react/useDataBinding.d.ts +7 -5
  110. package/a2ui/dist/react/useDataBinding.js +18 -0
  111. package/a2ui/dist/react/useDataBinding.js.map +1 -1
  112. package/a2ui/dist/store/FunctionRegistry.d.ts +7 -0
  113. package/a2ui/dist/store/FunctionRegistry.js +4 -0
  114. package/a2ui/dist/store/FunctionRegistry.js.map +1 -1
  115. package/a2ui/dist/store/MessageProcessor.d.ts +7 -0
  116. package/a2ui/dist/store/MessageProcessor.js +4 -0
  117. package/a2ui/dist/store/MessageProcessor.js.map +1 -1
  118. package/a2ui/dist/store/MessageStore.d.ts +6 -0
  119. package/a2ui/dist/store/MessageStore.js +3 -0
  120. package/a2ui/dist/store/MessageStore.js.map +1 -1
  121. package/a2ui/dist/store/Resource.d.ts +8 -0
  122. package/a2ui/dist/store/Resource.js +4 -0
  123. package/a2ui/dist/store/Resource.js.map +1 -1
  124. package/a2ui/dist/store/SignalStore.d.ts +3 -2
  125. package/a2ui/dist/store/SignalStore.js +9 -0
  126. package/a2ui/dist/store/SignalStore.js.map +1 -1
  127. package/a2ui/dist/store/resolveDynamic.d.ts +4 -3
  128. package/a2ui/dist/store/resolveDynamic.js +19 -0
  129. package/a2ui/dist/store/resolveDynamic.js.map +1 -1
  130. package/a2ui/dist/store/resolveFunctionCall.d.ts +7 -0
  131. package/a2ui/dist/store/resolveFunctionCall.js +4 -0
  132. package/a2ui/dist/store/resolveFunctionCall.js.map +1 -1
  133. package/a2ui/dist/store/types.d.ts +13 -0
  134. package/a2ui/dist/store/utils.d.ts +6 -4
  135. package/a2ui/dist/store/utils.js +26 -0
  136. package/a2ui/dist/store/utils.js.map +1 -1
  137. package/a2ui/dist/tsconfig.build.tsbuildinfo +1 -1
  138. package/a2ui/docs/catalog-guide.md +407 -0
  139. package/a2ui/docs/catalog-guide_zh.md +379 -0
  140. package/a2ui/docs/overview.md +312 -0
  141. package/a2ui/docs/overview_zh.md +289 -0
  142. package/a2ui/docs/system-prompts.md +187 -0
  143. package/a2ui/docs/system-prompts_zh.md +187 -0
  144. package/a2ui/src/catalog/README.md +12 -0
  145. package/a2ui/src/catalog/index.ts +52 -0
  146. package/a2ui/src/catalog/readme_zh.md +11 -0
  147. package/a2ui/src/index.ts +116 -0
  148. package/a2ui/styles/catalog/Button.css +5 -5
  149. package/a2ui/styles/catalog/DateTimeInput.css +22 -30
  150. package/a2ui/styles/catalog/Loading.css +61 -0
  151. package/a2ui-catalog-extractor/README.md +14 -7
  152. package/a2ui-catalog-extractor/dist/cli.d.ts +1 -0
  153. package/a2ui-catalog-extractor/dist/cli.js +15 -6
  154. package/a2ui-catalog-extractor/dist/cli.js.map +1 -1
  155. package/a2ui-catalog-extractor/dist/index.d.ts +97 -2
  156. package/a2ui-catalog-extractor/dist/index.js +91 -6
  157. package/a2ui-catalog-extractor/dist/index.js.map +1 -1
  158. package/a2ui-catalog-extractor/dist/tsconfig.build.tsbuildinfo +1 -1
  159. package/a2ui-catalog-extractor/skills/a2ui-catalog-extractor/SKILL.md +1 -1
  160. package/a2ui-prompt/README.md +3 -2
  161. package/a2ui-prompt/dist/index.d.ts +41 -0
  162. package/a2ui-prompt/dist/index.js +159 -84
  163. package/cli/README.md +26 -0
  164. package/cli/bin/cli.js +7 -265
  165. package/cli/dist/a2ui/create.d.ts +5 -0
  166. package/cli/dist/a2ui/create.js +178 -0
  167. package/cli/dist/a2ui/create.js.map +1 -0
  168. package/cli/dist/a2ui/index.d.ts +5 -0
  169. package/cli/dist/a2ui/index.js +170 -0
  170. package/cli/dist/a2ui/index.js.map +1 -0
  171. package/cli/dist/cli.d.ts +4 -0
  172. package/cli/dist/cli.js +40 -0
  173. package/cli/dist/cli.js.map +1 -0
  174. package/cli/dist/openui.d.ts +1 -0
  175. package/cli/dist/openui.js +21 -0
  176. package/cli/dist/openui.js.map +1 -0
  177. package/cli/dist/tsconfig.build.tsbuildinfo +1 -0
  178. package/cli/dist/utils.d.ts +2 -0
  179. package/cli/dist/utils.js +17 -0
  180. package/cli/dist/utils.js.map +1 -0
  181. package/cli/templates/default/lynx.config.ts +13 -0
  182. package/cli/templates/default/package.json +27 -0
  183. package/cli/templates/default/src/App.css +88 -0
  184. package/cli/templates/default/src/App.tsx +100 -0
  185. package/cli/templates/default/src/index.tsx +10 -0
  186. package/cli/templates/default/src/messages.ts +158 -0
  187. package/cli/templates/default/src/rspeedy-env.d.ts +14 -0
  188. package/cli/templates/default/src/tsconfig.json +17 -0
  189. package/cli/templates/default/tsconfig.json +15 -0
  190. package/cli/templates/default/tsconfig.node.json +16 -0
  191. package/dist/index.d.ts +2 -0
  192. package/dist/index.js +1 -0
  193. package/dist/index.js.map +1 -1
  194. package/dist/tsconfig.build.tsbuildinfo +1 -1
  195. package/index.ts +12 -0
  196. package/openui/README.md +50 -46
  197. package/openui/dist/catalog/Action/{index.js → index.jsx} +1 -1
  198. package/openui/dist/catalog/Action/index.jsx.map +1 -0
  199. package/openui/dist/catalog/Button/index.d.ts +8 -8
  200. package/openui/dist/catalog/Button/{index.js → index.jsx} +28 -14
  201. package/openui/dist/catalog/Button/index.jsx.map +1 -0
  202. package/openui/dist/catalog/Card/index.d.ts +1 -1
  203. package/openui/dist/catalog/Card/{index.js → index.jsx} +5 -4
  204. package/openui/dist/catalog/Card/{index.js.map → index.jsx.map} +1 -1
  205. package/openui/dist/catalog/CardHeader/index.d.ts +1 -1
  206. package/openui/dist/catalog/CardHeader/index.jsx +20 -0
  207. package/openui/dist/catalog/CardHeader/index.jsx.map +1 -0
  208. package/openui/dist/catalog/CheckBox/index.d.ts +16 -0
  209. package/openui/dist/catalog/CheckBox/index.jsx +82 -0
  210. package/openui/dist/catalog/CheckBox/index.jsx.map +1 -0
  211. package/openui/dist/catalog/Icon/index.d.ts +44 -0
  212. package/openui/dist/catalog/Icon/index.jsx +66 -0
  213. package/openui/dist/catalog/Icon/index.jsx.map +1 -0
  214. package/openui/dist/catalog/Image/index.d.ts +19 -0
  215. package/openui/dist/catalog/Image/index.jsx +40 -0
  216. package/openui/dist/catalog/Image/index.jsx.map +1 -0
  217. package/openui/dist/catalog/Loading/index.d.ts +7 -0
  218. package/openui/dist/catalog/Loading/index.jsx +25 -0
  219. package/openui/dist/catalog/Loading/index.jsx.map +1 -0
  220. package/openui/dist/catalog/RadioGroup/index.d.ts +21 -0
  221. package/openui/dist/catalog/RadioGroup/index.jsx +99 -0
  222. package/openui/dist/catalog/RadioGroup/index.jsx.map +1 -0
  223. package/openui/dist/catalog/Separator/index.d.ts +1 -1
  224. package/openui/dist/catalog/Separator/{index.js → index.jsx} +3 -4
  225. package/openui/dist/catalog/Separator/index.jsx.map +1 -0
  226. package/openui/dist/catalog/Slider/index.d.ts +19 -0
  227. package/openui/dist/catalog/Slider/index.jsx +139 -0
  228. package/openui/dist/catalog/Slider/index.jsx.map +1 -0
  229. package/openui/dist/catalog/Stack/index.d.ts +1 -1
  230. package/openui/dist/catalog/Stack/{index.js → index.jsx} +3 -4
  231. package/openui/dist/catalog/Stack/{index.js.map → index.jsx.map} +1 -1
  232. package/openui/dist/catalog/Tag/index.d.ts +1 -1
  233. package/openui/dist/catalog/Tag/{index.js → index.jsx} +5 -4
  234. package/openui/dist/catalog/Tag/index.jsx.map +1 -0
  235. package/openui/dist/catalog/TextContent/index.d.ts +1 -1
  236. package/openui/dist/catalog/TextContent/{index.js → index.jsx} +5 -4
  237. package/openui/dist/catalog/TextContent/{index.js.map → index.jsx.map} +1 -1
  238. package/openui/dist/catalog/TextField/index.d.ts +23 -0
  239. package/openui/dist/catalog/TextField/index.jsx +132 -0
  240. package/openui/dist/catalog/TextField/index.jsx.map +1 -0
  241. package/openui/dist/catalog/index.d.ts +14 -7
  242. package/openui/dist/catalog/index.js +14 -7
  243. package/openui/dist/catalog/index.js.map +1 -1
  244. package/openui/dist/core/context.d.ts +22 -8
  245. package/openui/dist/core/{context.js → context.jsx} +10 -3
  246. package/openui/dist/core/context.jsx.map +1 -0
  247. package/openui/dist/core/createLibrary.d.ts +8 -1
  248. package/openui/dist/core/{createLibrary.js → createLibrary.jsx} +18 -3
  249. package/openui/dist/core/createLibrary.jsx.map +1 -0
  250. package/openui/dist/core/hooks/index.d.ts +1 -0
  251. package/openui/dist/core/hooks/index.js +1 -0
  252. package/openui/dist/core/hooks/index.js.map +1 -1
  253. package/openui/dist/core/hooks/useFormValidation.d.ts +9 -0
  254. package/openui/dist/core/hooks/useFormValidation.js +6 -0
  255. package/openui/dist/core/hooks/useFormValidation.js.map +1 -1
  256. package/openui/dist/core/hooks/useOpenUIState.d.ts +8 -2
  257. package/openui/dist/core/hooks/useOpenUIState.js +3 -1
  258. package/openui/dist/core/hooks/useOpenUIState.js.map +1 -1
  259. package/openui/dist/core/hooks/useStateField.d.ts +3 -0
  260. package/openui/dist/core/hooks/useStateField.js +4 -1
  261. package/openui/dist/core/hooks/useStateField.js.map +1 -1
  262. package/openui/dist/core/index.d.ts +13 -7
  263. package/openui/dist/core/index.js +7 -4
  264. package/openui/dist/core/index.js.map +1 -1
  265. package/openui/dist/core/library.d.ts +6 -1
  266. package/openui/dist/core/{library.js → library.jsx} +9 -1
  267. package/openui/dist/core/library.jsx.map +1 -0
  268. package/openui/dist/core/renderer.css +527 -0
  269. package/openui/dist/core/renderer.d.ts +41 -4
  270. package/openui/dist/core/renderer.jsx +284 -0
  271. package/openui/dist/core/renderer.jsx.map +1 -0
  272. package/openui/dist/core/runtime/index.d.ts +1 -0
  273. package/openui/dist/core/runtime/index.js +5 -0
  274. package/openui/dist/core/runtime/index.js.map +1 -0
  275. package/openui/dist/core/runtime/reactive.d.ts +7 -0
  276. package/openui/dist/core/runtime/reactive.js +10 -0
  277. package/openui/dist/core/runtime/reactive.js.map +1 -0
  278. package/openui/dist/openui-prompt/index.d.ts +47 -0
  279. package/openui/dist/openui-prompt/index.js +321 -0
  280. package/openui/dist/openui-prompt/index.js.map +1 -0
  281. package/package.json +20 -8
  282. package/openui/dist/catalog/Action/index.js.map +0 -1
  283. package/openui/dist/catalog/Button/index.js.map +0 -1
  284. package/openui/dist/catalog/CardHeader/index.js +0 -18
  285. package/openui/dist/catalog/CardHeader/index.js.map +0 -1
  286. package/openui/dist/catalog/Separator/index.js.map +0 -1
  287. package/openui/dist/catalog/Tag/index.js.map +0 -1
  288. package/openui/dist/core/context.js.map +0 -1
  289. package/openui/dist/core/createLibrary.js.map +0 -1
  290. package/openui/dist/core/library.js.map +0 -1
  291. package/openui/dist/core/renderer.js +0 -139
  292. package/openui/dist/core/renderer.js.map +0 -1
@@ -0,0 +1,2603 @@
1
+ {
2
+ "catalogId": "https://unpkg.com/@lynx-js/genui/a2ui/dist/catalog.json",
3
+ "components": {
4
+ "Button": {
5
+ "properties": {
6
+ "child": {
7
+ "type": "string"
8
+ },
9
+ "variant": {
10
+ "type": "string",
11
+ "enum": [
12
+ "primary",
13
+ "borderless"
14
+ ]
15
+ },
16
+ "isValid": {
17
+ "type": "boolean"
18
+ },
19
+ "action": {
20
+ "oneOf": [
21
+ {
22
+ "type": "object",
23
+ "properties": {
24
+ "event": {
25
+ "type": "object",
26
+ "properties": {
27
+ "name": {
28
+ "type": "string"
29
+ },
30
+ "context": {
31
+ "type": "object",
32
+ "additionalProperties": true,
33
+ "description": "Context is a JSON object map in v0.9."
34
+ }
35
+ },
36
+ "required": [
37
+ "name"
38
+ ],
39
+ "additionalProperties": false
40
+ }
41
+ },
42
+ "required": [
43
+ "event"
44
+ ],
45
+ "additionalProperties": false
46
+ },
47
+ {
48
+ "type": "object",
49
+ "properties": {
50
+ "functionCall": {
51
+ "type": "object",
52
+ "properties": {
53
+ "call": {
54
+ "type": "string"
55
+ },
56
+ "args": {
57
+ "type": "object",
58
+ "additionalProperties": true
59
+ },
60
+ "returnType": {
61
+ "type": "string",
62
+ "enum": [
63
+ "string",
64
+ "number",
65
+ "boolean",
66
+ "object",
67
+ "array",
68
+ "any",
69
+ "void"
70
+ ]
71
+ }
72
+ },
73
+ "required": [
74
+ "call",
75
+ "args"
76
+ ],
77
+ "additionalProperties": false
78
+ }
79
+ },
80
+ "required": [
81
+ "functionCall"
82
+ ],
83
+ "additionalProperties": false
84
+ }
85
+ ],
86
+ "description": "v0.9 actions should use the `event` wrapper for server-dispatched clicks."
87
+ },
88
+ "checks": {
89
+ "type": "array",
90
+ "items": {
91
+ "type": "object",
92
+ "properties": {
93
+ "condition": {
94
+ "oneOf": [
95
+ {
96
+ "type": "boolean"
97
+ },
98
+ {
99
+ "type": "object",
100
+ "properties": {
101
+ "path": {
102
+ "type": "string"
103
+ }
104
+ },
105
+ "required": [
106
+ "path"
107
+ ],
108
+ "additionalProperties": false
109
+ },
110
+ {
111
+ "type": "object",
112
+ "properties": {
113
+ "call": {
114
+ "type": "string"
115
+ },
116
+ "args": {
117
+ "type": "object",
118
+ "additionalProperties": true
119
+ },
120
+ "returnType": {
121
+ "type": "string",
122
+ "enum": [
123
+ "string",
124
+ "number",
125
+ "boolean",
126
+ "object",
127
+ "array",
128
+ "any",
129
+ "void"
130
+ ]
131
+ }
132
+ },
133
+ "required": [
134
+ "call",
135
+ "args"
136
+ ],
137
+ "additionalProperties": false
138
+ }
139
+ ]
140
+ },
141
+ "message": {
142
+ "type": "string"
143
+ }
144
+ },
145
+ "required": [
146
+ "condition",
147
+ "message"
148
+ ],
149
+ "additionalProperties": false
150
+ }
151
+ }
152
+ },
153
+ "required": [
154
+ "child",
155
+ "action"
156
+ ],
157
+ "description": "Props for the built-in Button catalog component."
158
+ },
159
+ "Card": {
160
+ "properties": {
161
+ "child": {
162
+ "type": "string"
163
+ },
164
+ "variant": {
165
+ "type": "string",
166
+ "enum": [
167
+ "elevated",
168
+ "outlined",
169
+ "filled",
170
+ "ghost"
171
+ ]
172
+ },
173
+ "weight": {
174
+ "type": "number"
175
+ }
176
+ },
177
+ "required": [
178
+ "child"
179
+ ],
180
+ "description": "Props for the built-in Card catalog component."
181
+ },
182
+ "CheckBox": {
183
+ "properties": {
184
+ "label": {
185
+ "oneOf": [
186
+ {
187
+ "type": "string"
188
+ },
189
+ {
190
+ "type": "object",
191
+ "properties": {
192
+ "path": {
193
+ "type": "string"
194
+ }
195
+ },
196
+ "required": [
197
+ "path"
198
+ ],
199
+ "additionalProperties": false
200
+ },
201
+ {
202
+ "type": "object",
203
+ "properties": {
204
+ "call": {
205
+ "type": "string"
206
+ },
207
+ "args": {
208
+ "type": "object",
209
+ "additionalProperties": true
210
+ },
211
+ "returnType": {
212
+ "type": "string",
213
+ "enum": [
214
+ "string",
215
+ "number",
216
+ "boolean",
217
+ "object",
218
+ "array",
219
+ "any",
220
+ "void"
221
+ ]
222
+ }
223
+ },
224
+ "required": [
225
+ "call",
226
+ "args"
227
+ ],
228
+ "additionalProperties": false
229
+ }
230
+ ]
231
+ },
232
+ "value": {
233
+ "oneOf": [
234
+ {
235
+ "type": "boolean"
236
+ },
237
+ {
238
+ "type": "object",
239
+ "properties": {
240
+ "path": {
241
+ "type": "string"
242
+ }
243
+ },
244
+ "required": [
245
+ "path"
246
+ ],
247
+ "additionalProperties": false
248
+ },
249
+ {
250
+ "type": "object",
251
+ "properties": {
252
+ "call": {
253
+ "type": "string"
254
+ },
255
+ "args": {
256
+ "type": "object",
257
+ "additionalProperties": true
258
+ },
259
+ "returnType": {
260
+ "type": "string",
261
+ "enum": [
262
+ "string",
263
+ "number",
264
+ "boolean",
265
+ "object",
266
+ "array",
267
+ "any",
268
+ "void"
269
+ ]
270
+ }
271
+ },
272
+ "required": [
273
+ "call",
274
+ "args"
275
+ ],
276
+ "additionalProperties": false
277
+ }
278
+ ]
279
+ },
280
+ "checks": {
281
+ "type": "array",
282
+ "items": {
283
+ "type": "object",
284
+ "properties": {
285
+ "condition": {
286
+ "oneOf": [
287
+ {
288
+ "type": "boolean"
289
+ },
290
+ {
291
+ "type": "object",
292
+ "properties": {
293
+ "path": {
294
+ "type": "string"
295
+ }
296
+ },
297
+ "required": [
298
+ "path"
299
+ ],
300
+ "additionalProperties": false
301
+ },
302
+ {
303
+ "type": "object",
304
+ "properties": {
305
+ "call": {
306
+ "type": "string"
307
+ },
308
+ "args": {
309
+ "type": "object",
310
+ "additionalProperties": true
311
+ },
312
+ "returnType": {
313
+ "type": "string",
314
+ "enum": [
315
+ "string",
316
+ "number",
317
+ "boolean",
318
+ "object",
319
+ "array",
320
+ "any",
321
+ "void"
322
+ ]
323
+ }
324
+ },
325
+ "required": [
326
+ "call",
327
+ "args"
328
+ ],
329
+ "additionalProperties": false
330
+ }
331
+ ]
332
+ },
333
+ "message": {
334
+ "type": "string"
335
+ }
336
+ },
337
+ "required": [
338
+ "condition",
339
+ "message"
340
+ ],
341
+ "additionalProperties": false
342
+ }
343
+ }
344
+ },
345
+ "required": [
346
+ "label",
347
+ "value"
348
+ ],
349
+ "description": "Props for the built-in CheckBox catalog component."
350
+ },
351
+ "ChoicePicker": {
352
+ "properties": {
353
+ "label": {
354
+ "oneOf": [
355
+ {
356
+ "type": "string"
357
+ },
358
+ {
359
+ "type": "object",
360
+ "properties": {
361
+ "path": {
362
+ "type": "string"
363
+ }
364
+ },
365
+ "required": [
366
+ "path"
367
+ ],
368
+ "additionalProperties": false
369
+ },
370
+ {
371
+ "type": "object",
372
+ "properties": {
373
+ "call": {
374
+ "type": "string"
375
+ },
376
+ "args": {
377
+ "type": "object",
378
+ "additionalProperties": true
379
+ },
380
+ "returnType": {
381
+ "type": "string",
382
+ "enum": [
383
+ "string",
384
+ "number",
385
+ "boolean",
386
+ "object",
387
+ "array",
388
+ "any",
389
+ "void"
390
+ ]
391
+ }
392
+ },
393
+ "required": [
394
+ "call",
395
+ "args"
396
+ ],
397
+ "additionalProperties": false
398
+ }
399
+ ],
400
+ "description": "The label for the group of options."
401
+ },
402
+ "variant": {
403
+ "type": "string",
404
+ "enum": [
405
+ "multipleSelection",
406
+ "mutuallyExclusive"
407
+ ],
408
+ "description": "A hint for how the choice picker should be displayed and behave."
409
+ },
410
+ "options": {
411
+ "type": "array",
412
+ "items": {
413
+ "type": "object",
414
+ "properties": {
415
+ "label": {
416
+ "oneOf": [
417
+ {
418
+ "type": "string"
419
+ },
420
+ {
421
+ "type": "object",
422
+ "properties": {
423
+ "path": {
424
+ "type": "string"
425
+ }
426
+ },
427
+ "required": [
428
+ "path"
429
+ ],
430
+ "additionalProperties": false
431
+ },
432
+ {
433
+ "type": "object",
434
+ "properties": {
435
+ "call": {
436
+ "type": "string"
437
+ },
438
+ "args": {
439
+ "type": "object",
440
+ "additionalProperties": true
441
+ },
442
+ "returnType": {
443
+ "type": "string",
444
+ "enum": [
445
+ "string",
446
+ "number",
447
+ "boolean",
448
+ "object",
449
+ "array",
450
+ "any",
451
+ "void"
452
+ ]
453
+ }
454
+ },
455
+ "required": [
456
+ "call",
457
+ "args"
458
+ ],
459
+ "additionalProperties": false
460
+ }
461
+ ],
462
+ "description": "The text to display for this option."
463
+ },
464
+ "value": {
465
+ "type": "string",
466
+ "description": "The stable value associated with this option."
467
+ }
468
+ },
469
+ "required": [
470
+ "label",
471
+ "value"
472
+ ],
473
+ "additionalProperties": false
474
+ },
475
+ "description": "The list of available options to choose from."
476
+ },
477
+ "value": {
478
+ "oneOf": [
479
+ {
480
+ "type": "array",
481
+ "items": {
482
+ "type": "string"
483
+ }
484
+ },
485
+ {
486
+ "type": "object",
487
+ "properties": {
488
+ "path": {
489
+ "type": "string"
490
+ }
491
+ },
492
+ "required": [
493
+ "path"
494
+ ],
495
+ "additionalProperties": false
496
+ },
497
+ {
498
+ "type": "object",
499
+ "properties": {
500
+ "call": {
501
+ "type": "string"
502
+ },
503
+ "args": {
504
+ "type": "object",
505
+ "additionalProperties": true
506
+ },
507
+ "returnType": {
508
+ "type": "string",
509
+ "enum": [
510
+ "string",
511
+ "number",
512
+ "boolean",
513
+ "object",
514
+ "array",
515
+ "any",
516
+ "void"
517
+ ]
518
+ }
519
+ },
520
+ "required": [
521
+ "call",
522
+ "args"
523
+ ],
524
+ "additionalProperties": false
525
+ }
526
+ ],
527
+ "description": "The list of currently selected values."
528
+ },
529
+ "displayStyle": {
530
+ "type": "string",
531
+ "enum": [
532
+ "checkbox",
533
+ "chips"
534
+ ],
535
+ "description": "The display style of the component."
536
+ },
537
+ "filterable": {
538
+ "type": "boolean",
539
+ "description": "If true, displays a search input to filter the options."
540
+ },
541
+ "checks": {
542
+ "type": "array",
543
+ "items": {
544
+ "type": "object",
545
+ "properties": {
546
+ "condition": {
547
+ "oneOf": [
548
+ {
549
+ "type": "boolean"
550
+ },
551
+ {
552
+ "type": "object",
553
+ "properties": {
554
+ "path": {
555
+ "type": "string"
556
+ }
557
+ },
558
+ "required": [
559
+ "path"
560
+ ],
561
+ "additionalProperties": false
562
+ },
563
+ {
564
+ "type": "object",
565
+ "properties": {
566
+ "call": {
567
+ "type": "string"
568
+ },
569
+ "args": {
570
+ "type": "object",
571
+ "additionalProperties": true
572
+ },
573
+ "returnType": {
574
+ "type": "string",
575
+ "enum": [
576
+ "string",
577
+ "number",
578
+ "boolean",
579
+ "object",
580
+ "array",
581
+ "any",
582
+ "void"
583
+ ]
584
+ }
585
+ },
586
+ "required": [
587
+ "call",
588
+ "args"
589
+ ],
590
+ "additionalProperties": false
591
+ }
592
+ ],
593
+ "description": "The condition that indicates whether the check passes."
594
+ },
595
+ "message": {
596
+ "type": "string",
597
+ "description": "The error message to display if the check fails."
598
+ }
599
+ },
600
+ "required": [
601
+ "condition",
602
+ "message"
603
+ ],
604
+ "additionalProperties": false
605
+ },
606
+ "description": "A list of checks to perform."
607
+ }
608
+ },
609
+ "required": [
610
+ "options",
611
+ "value"
612
+ ],
613
+ "description": "Props for the built-in ChoicePicker catalog component."
614
+ },
615
+ "Column": {
616
+ "properties": {
617
+ "children": {
618
+ "oneOf": [
619
+ {
620
+ "type": "array",
621
+ "items": {
622
+ "type": "string"
623
+ }
624
+ },
625
+ {
626
+ "type": "object",
627
+ "properties": {
628
+ "componentId": {
629
+ "type": "string"
630
+ },
631
+ "path": {
632
+ "type": "string"
633
+ }
634
+ },
635
+ "required": [
636
+ "componentId",
637
+ "path"
638
+ ],
639
+ "additionalProperties": false
640
+ }
641
+ ],
642
+ "description": "Static child IDs array or template object."
643
+ },
644
+ "align": {
645
+ "type": "string",
646
+ "enum": [
647
+ "start",
648
+ "center",
649
+ "end",
650
+ "stretch"
651
+ ]
652
+ },
653
+ "justify": {
654
+ "type": "string",
655
+ "enum": [
656
+ "start",
657
+ "center",
658
+ "end",
659
+ "stretch",
660
+ "spaceBetween",
661
+ "spaceAround",
662
+ "spaceEvenly"
663
+ ]
664
+ }
665
+ },
666
+ "required": [
667
+ "children"
668
+ ],
669
+ "description": "Props for the built-in Column catalog component."
670
+ },
671
+ "DateTimeInput": {
672
+ "properties": {
673
+ "value": {
674
+ "oneOf": [
675
+ {
676
+ "type": "string"
677
+ },
678
+ {
679
+ "type": "object",
680
+ "properties": {
681
+ "path": {
682
+ "type": "string"
683
+ }
684
+ },
685
+ "required": [
686
+ "path"
687
+ ],
688
+ "additionalProperties": false
689
+ }
690
+ ],
691
+ "description": "The current date/time value. Typically bound to a data path."
692
+ },
693
+ "label": {
694
+ "oneOf": [
695
+ {
696
+ "type": "string"
697
+ },
698
+ {
699
+ "type": "object",
700
+ "properties": {
701
+ "path": {
702
+ "type": "string"
703
+ }
704
+ },
705
+ "required": [
706
+ "path"
707
+ ],
708
+ "additionalProperties": false
709
+ },
710
+ {
711
+ "type": "object",
712
+ "properties": {
713
+ "call": {
714
+ "type": "string"
715
+ },
716
+ "args": {
717
+ "type": "object",
718
+ "additionalProperties": true
719
+ },
720
+ "returnType": {
721
+ "type": "string",
722
+ "enum": [
723
+ "string",
724
+ "number",
725
+ "boolean",
726
+ "object",
727
+ "array",
728
+ "any",
729
+ "void"
730
+ ]
731
+ }
732
+ },
733
+ "required": [
734
+ "call",
735
+ "args"
736
+ ],
737
+ "additionalProperties": false
738
+ }
739
+ ],
740
+ "description": "The text label for the input field."
741
+ },
742
+ "enableDate": {
743
+ "type": "boolean",
744
+ "description": "Whether to show the date picker."
745
+ },
746
+ "enableTime": {
747
+ "type": "boolean",
748
+ "description": "Whether to show the time picker."
749
+ },
750
+ "outputFormat": {
751
+ "type": "string",
752
+ "description": "Format string for the output value. Supports YYYY, MM, DD, HH, and mm."
753
+ },
754
+ "min": {
755
+ "type": "string",
756
+ "description": "Minimum allowed date/time value."
757
+ },
758
+ "max": {
759
+ "type": "string",
760
+ "description": "Maximum allowed date/time value."
761
+ },
762
+ "checks": {
763
+ "type": "array",
764
+ "items": {
765
+ "type": "object",
766
+ "properties": {
767
+ "condition": {
768
+ "oneOf": [
769
+ {
770
+ "type": "boolean"
771
+ },
772
+ {
773
+ "type": "object",
774
+ "properties": {
775
+ "path": {
776
+ "type": "string"
777
+ }
778
+ },
779
+ "required": [
780
+ "path"
781
+ ],
782
+ "additionalProperties": false
783
+ },
784
+ {
785
+ "type": "object",
786
+ "properties": {
787
+ "call": {
788
+ "type": "string"
789
+ },
790
+ "args": {
791
+ "type": "object",
792
+ "additionalProperties": true
793
+ },
794
+ "returnType": {
795
+ "type": "string",
796
+ "enum": [
797
+ "string",
798
+ "number",
799
+ "boolean",
800
+ "object",
801
+ "array",
802
+ "any",
803
+ "void"
804
+ ]
805
+ }
806
+ },
807
+ "required": [
808
+ "call",
809
+ "args"
810
+ ],
811
+ "additionalProperties": false
812
+ }
813
+ ],
814
+ "description": "The condition that indicates whether the check passes."
815
+ },
816
+ "message": {
817
+ "type": "string",
818
+ "description": "The error message to display if the check fails."
819
+ }
820
+ },
821
+ "required": [
822
+ "condition",
823
+ "message"
824
+ ],
825
+ "additionalProperties": false
826
+ },
827
+ "description": "A list of checks to perform."
828
+ }
829
+ },
830
+ "required": [
831
+ "value"
832
+ ],
833
+ "description": "Props for the built-in DateTimeInput catalog component."
834
+ },
835
+ "Divider": {
836
+ "properties": {
837
+ "axis": {
838
+ "type": "string",
839
+ "enum": [
840
+ "horizontal",
841
+ "vertical"
842
+ ]
843
+ }
844
+ },
845
+ "required": [],
846
+ "description": "Props for the built-in Divider catalog component."
847
+ },
848
+ "Icon": {
849
+ "properties": {
850
+ "name": {
851
+ "oneOf": [
852
+ {
853
+ "type": "string",
854
+ "enum": [
855
+ "account_circle"
856
+ ]
857
+ },
858
+ {
859
+ "type": "string",
860
+ "enum": [
861
+ "add"
862
+ ]
863
+ },
864
+ {
865
+ "type": "string",
866
+ "enum": [
867
+ "arrow_back"
868
+ ]
869
+ },
870
+ {
871
+ "type": "string",
872
+ "enum": [
873
+ "arrow_forward"
874
+ ]
875
+ },
876
+ {
877
+ "type": "string",
878
+ "enum": [
879
+ "camera"
880
+ ]
881
+ },
882
+ {
883
+ "type": "string",
884
+ "enum": [
885
+ "check"
886
+ ]
887
+ },
888
+ {
889
+ "type": "string",
890
+ "enum": [
891
+ "close"
892
+ ]
893
+ },
894
+ {
895
+ "type": "string",
896
+ "enum": [
897
+ "delete"
898
+ ]
899
+ },
900
+ {
901
+ "type": "string",
902
+ "enum": [
903
+ "edit"
904
+ ]
905
+ },
906
+ {
907
+ "type": "string",
908
+ "enum": [
909
+ "error"
910
+ ]
911
+ },
912
+ {
913
+ "type": "string",
914
+ "enum": [
915
+ "favorite"
916
+ ]
917
+ },
918
+ {
919
+ "type": "string",
920
+ "enum": [
921
+ "help"
922
+ ]
923
+ },
924
+ {
925
+ "type": "string",
926
+ "enum": [
927
+ "home"
928
+ ]
929
+ },
930
+ {
931
+ "type": "string",
932
+ "enum": [
933
+ "info"
934
+ ]
935
+ },
936
+ {
937
+ "type": "string",
938
+ "enum": [
939
+ "location_on"
940
+ ]
941
+ },
942
+ {
943
+ "type": "string",
944
+ "enum": [
945
+ "lock"
946
+ ]
947
+ },
948
+ {
949
+ "type": "string",
950
+ "enum": [
951
+ "mail"
952
+ ]
953
+ },
954
+ {
955
+ "type": "string",
956
+ "enum": [
957
+ "menu"
958
+ ]
959
+ },
960
+ {
961
+ "type": "string",
962
+ "enum": [
963
+ "more_vert"
964
+ ]
965
+ },
966
+ {
967
+ "type": "string",
968
+ "enum": [
969
+ "pause"
970
+ ]
971
+ },
972
+ {
973
+ "type": "string",
974
+ "enum": [
975
+ "person"
976
+ ]
977
+ },
978
+ {
979
+ "type": "string",
980
+ "enum": [
981
+ "play_arrow"
982
+ ]
983
+ },
984
+ {
985
+ "type": "string",
986
+ "enum": [
987
+ "refresh"
988
+ ]
989
+ },
990
+ {
991
+ "type": "string",
992
+ "enum": [
993
+ "search"
994
+ ]
995
+ },
996
+ {
997
+ "type": "string",
998
+ "enum": [
999
+ "send"
1000
+ ]
1001
+ },
1002
+ {
1003
+ "type": "string",
1004
+ "enum": [
1005
+ "settings"
1006
+ ]
1007
+ },
1008
+ {
1009
+ "type": "string",
1010
+ "enum": [
1011
+ "share"
1012
+ ]
1013
+ },
1014
+ {
1015
+ "type": "string",
1016
+ "enum": [
1017
+ "star"
1018
+ ]
1019
+ },
1020
+ {
1021
+ "type": "string",
1022
+ "enum": [
1023
+ "warning"
1024
+ ]
1025
+ },
1026
+ {
1027
+ "type": "object",
1028
+ "properties": {
1029
+ "path": {
1030
+ "type": "string"
1031
+ }
1032
+ },
1033
+ "required": [
1034
+ "path"
1035
+ ],
1036
+ "additionalProperties": false
1037
+ }
1038
+ ],
1039
+ "description": "Google Material icon ligature name, e.g. \"info\", \"account_circle\", \"arrow_back\"."
1040
+ },
1041
+ "size": {
1042
+ "type": "string",
1043
+ "enum": [
1044
+ "sm",
1045
+ "md",
1046
+ "lg"
1047
+ ]
1048
+ },
1049
+ "color": {
1050
+ "type": "string",
1051
+ "enum": [
1052
+ "primary",
1053
+ "muted",
1054
+ "inherit"
1055
+ ]
1056
+ }
1057
+ },
1058
+ "required": [
1059
+ "name"
1060
+ ],
1061
+ "description": "Props for the built-in Icon catalog component."
1062
+ },
1063
+ "Image": {
1064
+ "properties": {
1065
+ "url": {
1066
+ "type": "string",
1067
+ "description": "Image URL or path binding."
1068
+ },
1069
+ "fit": {
1070
+ "type": "string",
1071
+ "enum": [
1072
+ "contain",
1073
+ "cover",
1074
+ "fill",
1075
+ "none",
1076
+ "scale-down"
1077
+ ]
1078
+ },
1079
+ "mode": {
1080
+ "type": "string",
1081
+ "enum": [
1082
+ "center",
1083
+ "scaleToFill",
1084
+ "aspectFit",
1085
+ "aspectFill"
1086
+ ]
1087
+ },
1088
+ "variant": {
1089
+ "type": "string",
1090
+ "enum": [
1091
+ "icon",
1092
+ "avatar",
1093
+ "smallFeature",
1094
+ "mediumFeature",
1095
+ "largeFeature",
1096
+ "header"
1097
+ ]
1098
+ },
1099
+ "weight": {
1100
+ "type": "number"
1101
+ }
1102
+ },
1103
+ "required": [
1104
+ "url"
1105
+ ],
1106
+ "description": "Props for the built-in Image catalog component."
1107
+ },
1108
+ "LazyComponent": {
1109
+ "properties": {
1110
+ "url": {
1111
+ "type": "string",
1112
+ "description": "URL of a ReactLynx standalone lazy bundle. The bundle must default-export a React component. Used by native Lynx rendering."
1113
+ },
1114
+ "webUrl": {
1115
+ "type": "string",
1116
+ "description": "Optional URL of the web lazy bundle. Lynx for Web uses this instead of `url`; when omitted, web rendering shows a fallback that asks the user to scan the native preview QR code on a mobile device."
1117
+ },
1118
+ "sourceData": {
1119
+ "oneOf": [
1120
+ {
1121
+ "type": "object",
1122
+ "additionalProperties": true
1123
+ },
1124
+ {
1125
+ "type": "array",
1126
+ "items": {
1127
+ "type": "object",
1128
+ "additionalProperties": true
1129
+ }
1130
+ }
1131
+ ],
1132
+ "description": "Data passed to the lazy bundle component as `sourceData`."
1133
+ },
1134
+ "fallbackText": {
1135
+ "type": "string",
1136
+ "description": "Optional text shown while the lazy bundle is loading."
1137
+ }
1138
+ },
1139
+ "required": [
1140
+ "url"
1141
+ ]
1142
+ },
1143
+ "LineChart": {
1144
+ "properties": {
1145
+ "labels": {
1146
+ "oneOf": [
1147
+ {
1148
+ "type": "array",
1149
+ "items": {
1150
+ "type": "string"
1151
+ }
1152
+ },
1153
+ {
1154
+ "type": "object",
1155
+ "properties": {
1156
+ "path": {
1157
+ "type": "string"
1158
+ }
1159
+ },
1160
+ "required": [
1161
+ "path"
1162
+ ],
1163
+ "additionalProperties": false
1164
+ }
1165
+ ],
1166
+ "description": "Category labels shown along the x axis."
1167
+ },
1168
+ "series": {
1169
+ "oneOf": [
1170
+ {
1171
+ "type": "array",
1172
+ "items": {
1173
+ "type": "object",
1174
+ "properties": {
1175
+ "name": {
1176
+ "type": "string"
1177
+ },
1178
+ "values": {
1179
+ "type": "array",
1180
+ "items": {
1181
+ "type": "number"
1182
+ }
1183
+ },
1184
+ "color": {
1185
+ "type": "string"
1186
+ }
1187
+ },
1188
+ "required": [
1189
+ "name",
1190
+ "values"
1191
+ ],
1192
+ "additionalProperties": false
1193
+ }
1194
+ },
1195
+ {
1196
+ "type": "object",
1197
+ "properties": {
1198
+ "path": {
1199
+ "type": "string"
1200
+ }
1201
+ },
1202
+ "required": [
1203
+ "path"
1204
+ ],
1205
+ "additionalProperties": false
1206
+ }
1207
+ ],
1208
+ "description": "One or more line series to render over the shared labels."
1209
+ },
1210
+ "variant": {
1211
+ "type": "string",
1212
+ "enum": [
1213
+ "linear",
1214
+ "natural",
1215
+ "step"
1216
+ ]
1217
+ },
1218
+ "xLabel": {
1219
+ "type": "string"
1220
+ },
1221
+ "yLabel": {
1222
+ "type": "string"
1223
+ },
1224
+ "showGrid": {
1225
+ "type": "boolean"
1226
+ },
1227
+ "showLegend": {
1228
+ "type": "boolean"
1229
+ },
1230
+ "height": {
1231
+ "type": "number"
1232
+ }
1233
+ },
1234
+ "required": [
1235
+ "labels",
1236
+ "series"
1237
+ ],
1238
+ "description": "Props for the built-in LineChart catalog component."
1239
+ },
1240
+ "List": {
1241
+ "properties": {
1242
+ "children": {
1243
+ "oneOf": [
1244
+ {
1245
+ "type": "array",
1246
+ "items": {
1247
+ "type": "string"
1248
+ }
1249
+ },
1250
+ {
1251
+ "type": "object",
1252
+ "properties": {
1253
+ "componentId": {
1254
+ "type": "string"
1255
+ },
1256
+ "path": {
1257
+ "type": "string"
1258
+ }
1259
+ },
1260
+ "required": [
1261
+ "componentId",
1262
+ "path"
1263
+ ],
1264
+ "additionalProperties": false
1265
+ }
1266
+ ],
1267
+ "description": "Static child IDs array or template object."
1268
+ },
1269
+ "direction": {
1270
+ "type": "string",
1271
+ "enum": [
1272
+ "horizontal",
1273
+ "vertical"
1274
+ ]
1275
+ },
1276
+ "align": {
1277
+ "type": "string",
1278
+ "enum": [
1279
+ "start",
1280
+ "center",
1281
+ "end",
1282
+ "stretch"
1283
+ ]
1284
+ }
1285
+ },
1286
+ "required": [
1287
+ "children"
1288
+ ],
1289
+ "description": "Props for the built-in List catalog component."
1290
+ },
1291
+ "Loading": {
1292
+ "properties": {
1293
+ "variant": {
1294
+ "type": "string",
1295
+ "enum": [
1296
+ "inline",
1297
+ "block"
1298
+ ],
1299
+ "description": "Visual density for the skeleton placeholder."
1300
+ }
1301
+ },
1302
+ "required": [],
1303
+ "description": "Props for the built-in Loading catalog component."
1304
+ },
1305
+ "Modal": {
1306
+ "properties": {
1307
+ "trigger": {
1308
+ "type": "string",
1309
+ "description": "The ID of the component that opens the modal when interacted with."
1310
+ },
1311
+ "content": {
1312
+ "type": "string",
1313
+ "description": "The ID of the component to display inside the modal."
1314
+ }
1315
+ },
1316
+ "required": [
1317
+ "trigger",
1318
+ "content"
1319
+ ],
1320
+ "description": "Props for the built-in Modal catalog component."
1321
+ },
1322
+ "PieChart": {
1323
+ "properties": {
1324
+ "data": {
1325
+ "oneOf": [
1326
+ {
1327
+ "type": "array",
1328
+ "items": {
1329
+ "type": "object",
1330
+ "properties": {
1331
+ "name": {
1332
+ "type": "string"
1333
+ },
1334
+ "value": {
1335
+ "type": "number"
1336
+ },
1337
+ "color": {
1338
+ "type": "string"
1339
+ }
1340
+ },
1341
+ "required": [
1342
+ "name",
1343
+ "value"
1344
+ ],
1345
+ "additionalProperties": false
1346
+ }
1347
+ },
1348
+ {
1349
+ "type": "object",
1350
+ "properties": {
1351
+ "path": {
1352
+ "type": "string"
1353
+ }
1354
+ },
1355
+ "required": [
1356
+ "path"
1357
+ ],
1358
+ "additionalProperties": false
1359
+ }
1360
+ ],
1361
+ "description": "Pie slices to render."
1362
+ },
1363
+ "variant": {
1364
+ "type": "string",
1365
+ "enum": [
1366
+ "pie",
1367
+ "donut"
1368
+ ],
1369
+ "description": "Render the chart as a flat pie or a donut."
1370
+ },
1371
+ "title": {
1372
+ "type": "string",
1373
+ "description": "Optional title shown above the chart."
1374
+ },
1375
+ "subtitle": {
1376
+ "type": "string",
1377
+ "description": "Optional subtitle shown under the title."
1378
+ },
1379
+ "showLegend": {
1380
+ "type": "boolean",
1381
+ "description": "Show the legend below the chart."
1382
+ },
1383
+ "showPercentages": {
1384
+ "type": "boolean",
1385
+ "description": "Show percentage values in the legend."
1386
+ },
1387
+ "height": {
1388
+ "type": "number",
1389
+ "description": "Chart height in pixels."
1390
+ },
1391
+ "paddingAngle": {
1392
+ "type": "number",
1393
+ "description": "Padding angle between slices, in degrees."
1394
+ },
1395
+ "colors": {
1396
+ "type": "array",
1397
+ "items": {
1398
+ "type": "string"
1399
+ },
1400
+ "description": "Custom color palette for the slices."
1401
+ }
1402
+ },
1403
+ "required": [
1404
+ "data"
1405
+ ],
1406
+ "description": "Props for the built-in PieChart catalog component."
1407
+ },
1408
+ "RadioGroup": {
1409
+ "properties": {
1410
+ "items": {
1411
+ "oneOf": [
1412
+ {
1413
+ "type": "array",
1414
+ "items": {
1415
+ "type": "string"
1416
+ }
1417
+ },
1418
+ {
1419
+ "type": "object",
1420
+ "properties": {
1421
+ "path": {
1422
+ "type": "string"
1423
+ }
1424
+ },
1425
+ "required": [
1426
+ "path"
1427
+ ],
1428
+ "additionalProperties": false
1429
+ },
1430
+ {
1431
+ "type": "object",
1432
+ "properties": {
1433
+ "call": {
1434
+ "type": "string"
1435
+ },
1436
+ "args": {
1437
+ "type": "object",
1438
+ "additionalProperties": true
1439
+ },
1440
+ "returnType": {
1441
+ "type": "string",
1442
+ "enum": [
1443
+ "string",
1444
+ "number",
1445
+ "boolean",
1446
+ "object",
1447
+ "array",
1448
+ "any",
1449
+ "void"
1450
+ ]
1451
+ }
1452
+ },
1453
+ "required": [
1454
+ "call",
1455
+ "args"
1456
+ ],
1457
+ "additionalProperties": false
1458
+ }
1459
+ ],
1460
+ "description": "The list of string options to display."
1461
+ },
1462
+ "value": {
1463
+ "oneOf": [
1464
+ {
1465
+ "type": "string"
1466
+ },
1467
+ {
1468
+ "type": "object",
1469
+ "properties": {
1470
+ "path": {
1471
+ "type": "string"
1472
+ }
1473
+ },
1474
+ "required": [
1475
+ "path"
1476
+ ],
1477
+ "additionalProperties": false
1478
+ },
1479
+ {
1480
+ "type": "object",
1481
+ "properties": {
1482
+ "call": {
1483
+ "type": "string"
1484
+ },
1485
+ "args": {
1486
+ "type": "object",
1487
+ "additionalProperties": true
1488
+ },
1489
+ "returnType": {
1490
+ "type": "string",
1491
+ "enum": [
1492
+ "string",
1493
+ "number",
1494
+ "boolean",
1495
+ "object",
1496
+ "array",
1497
+ "any",
1498
+ "void"
1499
+ ]
1500
+ }
1501
+ },
1502
+ "required": [
1503
+ "call",
1504
+ "args"
1505
+ ],
1506
+ "additionalProperties": false
1507
+ }
1508
+ ],
1509
+ "description": "The currently selected value."
1510
+ },
1511
+ "usageHint": {
1512
+ "type": "string",
1513
+ "enum": [
1514
+ "default",
1515
+ "card",
1516
+ "row"
1517
+ ],
1518
+ "description": "A hint for the visual style of the radio group."
1519
+ },
1520
+ "checks": {
1521
+ "type": "array",
1522
+ "items": {
1523
+ "type": "object",
1524
+ "properties": {
1525
+ "condition": {
1526
+ "oneOf": [
1527
+ {
1528
+ "type": "boolean"
1529
+ },
1530
+ {
1531
+ "type": "object",
1532
+ "properties": {
1533
+ "path": {
1534
+ "type": "string"
1535
+ }
1536
+ },
1537
+ "required": [
1538
+ "path"
1539
+ ],
1540
+ "additionalProperties": false
1541
+ },
1542
+ {
1543
+ "type": "object",
1544
+ "properties": {
1545
+ "call": {
1546
+ "type": "string"
1547
+ },
1548
+ "args": {
1549
+ "type": "object",
1550
+ "additionalProperties": true
1551
+ },
1552
+ "returnType": {
1553
+ "type": "string",
1554
+ "enum": [
1555
+ "string",
1556
+ "number",
1557
+ "boolean",
1558
+ "object",
1559
+ "array",
1560
+ "any",
1561
+ "void"
1562
+ ]
1563
+ }
1564
+ },
1565
+ "required": [
1566
+ "call",
1567
+ "args"
1568
+ ],
1569
+ "additionalProperties": false
1570
+ }
1571
+ ]
1572
+ },
1573
+ "message": {
1574
+ "type": "string"
1575
+ }
1576
+ },
1577
+ "required": [
1578
+ "condition",
1579
+ "message"
1580
+ ],
1581
+ "additionalProperties": false
1582
+ }
1583
+ }
1584
+ },
1585
+ "required": [
1586
+ "items",
1587
+ "value"
1588
+ ],
1589
+ "description": "Props for the built-in RadioGroup catalog component."
1590
+ },
1591
+ "Row": {
1592
+ "properties": {
1593
+ "children": {
1594
+ "oneOf": [
1595
+ {
1596
+ "type": "array",
1597
+ "items": {
1598
+ "type": "string"
1599
+ }
1600
+ },
1601
+ {
1602
+ "type": "object",
1603
+ "properties": {
1604
+ "componentId": {
1605
+ "type": "string"
1606
+ },
1607
+ "path": {
1608
+ "type": "string"
1609
+ }
1610
+ },
1611
+ "required": [
1612
+ "componentId",
1613
+ "path"
1614
+ ],
1615
+ "additionalProperties": false
1616
+ }
1617
+ ],
1618
+ "description": "Static child IDs array or template object."
1619
+ },
1620
+ "justify": {
1621
+ "type": "string",
1622
+ "enum": [
1623
+ "start",
1624
+ "center",
1625
+ "end",
1626
+ "stretch",
1627
+ "spaceBetween",
1628
+ "spaceAround",
1629
+ "spaceEvenly"
1630
+ ]
1631
+ },
1632
+ "align": {
1633
+ "type": "string",
1634
+ "enum": [
1635
+ "start",
1636
+ "center",
1637
+ "end",
1638
+ "stretch"
1639
+ ]
1640
+ }
1641
+ },
1642
+ "required": [
1643
+ "children"
1644
+ ],
1645
+ "description": "Props for the built-in Row catalog component."
1646
+ },
1647
+ "Slider": {
1648
+ "properties": {
1649
+ "label": {
1650
+ "oneOf": [
1651
+ {
1652
+ "type": "string"
1653
+ },
1654
+ {
1655
+ "type": "object",
1656
+ "properties": {
1657
+ "path": {
1658
+ "type": "string"
1659
+ }
1660
+ },
1661
+ "required": [
1662
+ "path"
1663
+ ],
1664
+ "additionalProperties": false
1665
+ },
1666
+ {
1667
+ "type": "object",
1668
+ "properties": {
1669
+ "call": {
1670
+ "type": "string"
1671
+ },
1672
+ "args": {
1673
+ "type": "object",
1674
+ "additionalProperties": true
1675
+ },
1676
+ "returnType": {
1677
+ "type": "string",
1678
+ "enum": [
1679
+ "string",
1680
+ "number",
1681
+ "boolean",
1682
+ "object",
1683
+ "array",
1684
+ "any",
1685
+ "void"
1686
+ ]
1687
+ }
1688
+ },
1689
+ "required": [
1690
+ "call",
1691
+ "args"
1692
+ ],
1693
+ "additionalProperties": false
1694
+ }
1695
+ ],
1696
+ "description": "The label for the slider."
1697
+ },
1698
+ "min": {
1699
+ "type": "number",
1700
+ "description": "The minimum value of the slider."
1701
+ },
1702
+ "max": {
1703
+ "type": "number",
1704
+ "description": "The maximum value of the slider."
1705
+ },
1706
+ "value": {
1707
+ "oneOf": [
1708
+ {
1709
+ "type": "number"
1710
+ },
1711
+ {
1712
+ "type": "object",
1713
+ "properties": {
1714
+ "path": {
1715
+ "type": "string"
1716
+ }
1717
+ },
1718
+ "required": [
1719
+ "path"
1720
+ ],
1721
+ "additionalProperties": false
1722
+ },
1723
+ {
1724
+ "type": "object",
1725
+ "properties": {
1726
+ "call": {
1727
+ "type": "string"
1728
+ },
1729
+ "args": {
1730
+ "type": "object",
1731
+ "additionalProperties": true
1732
+ },
1733
+ "returnType": {
1734
+ "type": "string",
1735
+ "enum": [
1736
+ "string",
1737
+ "number",
1738
+ "boolean",
1739
+ "object",
1740
+ "array",
1741
+ "any",
1742
+ "void"
1743
+ ]
1744
+ }
1745
+ },
1746
+ "required": [
1747
+ "call",
1748
+ "args"
1749
+ ],
1750
+ "additionalProperties": false
1751
+ }
1752
+ ],
1753
+ "description": "The current value of the slider."
1754
+ },
1755
+ "checks": {
1756
+ "type": "array",
1757
+ "items": {
1758
+ "type": "object",
1759
+ "properties": {
1760
+ "condition": {
1761
+ "oneOf": [
1762
+ {
1763
+ "type": "boolean"
1764
+ },
1765
+ {
1766
+ "type": "object",
1767
+ "properties": {
1768
+ "path": {
1769
+ "type": "string"
1770
+ }
1771
+ },
1772
+ "required": [
1773
+ "path"
1774
+ ],
1775
+ "additionalProperties": false
1776
+ },
1777
+ {
1778
+ "type": "object",
1779
+ "properties": {
1780
+ "call": {
1781
+ "type": "string"
1782
+ },
1783
+ "args": {
1784
+ "type": "object",
1785
+ "additionalProperties": true
1786
+ },
1787
+ "returnType": {
1788
+ "type": "string",
1789
+ "enum": [
1790
+ "string",
1791
+ "number",
1792
+ "boolean",
1793
+ "object",
1794
+ "array",
1795
+ "any",
1796
+ "void"
1797
+ ]
1798
+ }
1799
+ },
1800
+ "required": [
1801
+ "call",
1802
+ "args"
1803
+ ],
1804
+ "additionalProperties": false
1805
+ }
1806
+ ],
1807
+ "description": "The condition that indicates whether the check passes."
1808
+ },
1809
+ "message": {
1810
+ "type": "string",
1811
+ "description": "The error message to display if the check fails."
1812
+ }
1813
+ },
1814
+ "required": [
1815
+ "condition",
1816
+ "message"
1817
+ ],
1818
+ "additionalProperties": false
1819
+ },
1820
+ "description": "A list of checks to perform."
1821
+ }
1822
+ },
1823
+ "required": [
1824
+ "max",
1825
+ "value"
1826
+ ],
1827
+ "description": "Props for the built-in Slider catalog component."
1828
+ },
1829
+ "Tabs": {
1830
+ "properties": {
1831
+ "tabs": {
1832
+ "type": "array",
1833
+ "items": {
1834
+ "type": "object",
1835
+ "properties": {
1836
+ "title": {
1837
+ "type": "string"
1838
+ },
1839
+ "child": {
1840
+ "type": "string"
1841
+ }
1842
+ },
1843
+ "required": [
1844
+ "title",
1845
+ "child"
1846
+ ],
1847
+ "additionalProperties": false
1848
+ }
1849
+ }
1850
+ },
1851
+ "required": [
1852
+ "tabs"
1853
+ ],
1854
+ "description": "Props for the built-in Tabs catalog component."
1855
+ },
1856
+ "Text": {
1857
+ "properties": {
1858
+ "text": {
1859
+ "oneOf": [
1860
+ {
1861
+ "type": "string"
1862
+ },
1863
+ {
1864
+ "type": "object",
1865
+ "properties": {
1866
+ "path": {
1867
+ "type": "string"
1868
+ }
1869
+ },
1870
+ "required": [
1871
+ "path"
1872
+ ],
1873
+ "additionalProperties": false
1874
+ },
1875
+ {
1876
+ "type": "object",
1877
+ "properties": {
1878
+ "call": {
1879
+ "type": "string"
1880
+ },
1881
+ "args": {
1882
+ "type": "object",
1883
+ "additionalProperties": true
1884
+ },
1885
+ "returnType": {
1886
+ "type": "string",
1887
+ "enum": [
1888
+ "string",
1889
+ "number",
1890
+ "boolean",
1891
+ "object",
1892
+ "array",
1893
+ "any",
1894
+ "void"
1895
+ ]
1896
+ }
1897
+ },
1898
+ "required": [
1899
+ "call",
1900
+ "args"
1901
+ ],
1902
+ "additionalProperties": false
1903
+ }
1904
+ ],
1905
+ "description": "Literal text, path binding, or function call."
1906
+ },
1907
+ "variant": {
1908
+ "type": "string",
1909
+ "enum": [
1910
+ "h1",
1911
+ "h2",
1912
+ "h3",
1913
+ "h4",
1914
+ "h5",
1915
+ "caption",
1916
+ "body",
1917
+ "markdown"
1918
+ ]
1919
+ },
1920
+ "emphasis": {
1921
+ "type": "string",
1922
+ "enum": [
1923
+ "medium",
1924
+ "strong"
1925
+ ]
1926
+ }
1927
+ },
1928
+ "required": [
1929
+ "text"
1930
+ ],
1931
+ "description": "Props for the built-in Text catalog component."
1932
+ },
1933
+ "TextField": {
1934
+ "properties": {
1935
+ "label": {
1936
+ "oneOf": [
1937
+ {
1938
+ "type": "string"
1939
+ },
1940
+ {
1941
+ "type": "object",
1942
+ "properties": {
1943
+ "path": {
1944
+ "type": "string"
1945
+ }
1946
+ },
1947
+ "required": [
1948
+ "path"
1949
+ ],
1950
+ "additionalProperties": false
1951
+ }
1952
+ ],
1953
+ "description": "The text label for the input field."
1954
+ },
1955
+ "value": {
1956
+ "oneOf": [
1957
+ {
1958
+ "type": "string"
1959
+ },
1960
+ {
1961
+ "type": "object",
1962
+ "properties": {
1963
+ "path": {
1964
+ "type": "string"
1965
+ }
1966
+ },
1967
+ "required": [
1968
+ "path"
1969
+ ],
1970
+ "additionalProperties": false
1971
+ }
1972
+ ],
1973
+ "description": "The value of the text field."
1974
+ },
1975
+ "variant": {
1976
+ "type": "string",
1977
+ "enum": [
1978
+ "number",
1979
+ "longText",
1980
+ "shortText",
1981
+ "obscured"
1982
+ ],
1983
+ "description": "The type of input field to display."
1984
+ },
1985
+ "validationRegexp": {
1986
+ "type": "string",
1987
+ "description": "A regular expression used for client-side validation of the input."
1988
+ },
1989
+ "checks": {
1990
+ "type": "array",
1991
+ "items": {
1992
+ "type": "object",
1993
+ "properties": {
1994
+ "condition": {
1995
+ "oneOf": [
1996
+ {
1997
+ "type": "boolean"
1998
+ },
1999
+ {
2000
+ "type": "object",
2001
+ "properties": {
2002
+ "path": {
2003
+ "type": "string"
2004
+ }
2005
+ },
2006
+ "required": [
2007
+ "path"
2008
+ ],
2009
+ "additionalProperties": false
2010
+ },
2011
+ {
2012
+ "type": "object",
2013
+ "properties": {
2014
+ "call": {
2015
+ "type": "string"
2016
+ },
2017
+ "args": {
2018
+ "type": "object",
2019
+ "additionalProperties": {
2020
+ "oneOf": [
2021
+ {
2022
+ "type": "string"
2023
+ },
2024
+ {
2025
+ "type": "number"
2026
+ },
2027
+ {
2028
+ "type": "boolean"
2029
+ },
2030
+ {
2031
+ "type": "object",
2032
+ "properties": {
2033
+ "path": {
2034
+ "type": "string"
2035
+ }
2036
+ },
2037
+ "required": [
2038
+ "path"
2039
+ ],
2040
+ "additionalProperties": false
2041
+ }
2042
+ ]
2043
+ }
2044
+ },
2045
+ "returnType": {
2046
+ "type": "string",
2047
+ "enum": [
2048
+ "boolean"
2049
+ ]
2050
+ }
2051
+ },
2052
+ "required": [
2053
+ "call"
2054
+ ],
2055
+ "additionalProperties": false
2056
+ }
2057
+ ],
2058
+ "description": "The condition that indicates whether the check passes."
2059
+ },
2060
+ "message": {
2061
+ "type": "string",
2062
+ "description": "The error message to display if the check fails."
2063
+ }
2064
+ },
2065
+ "required": [
2066
+ "condition",
2067
+ "message"
2068
+ ],
2069
+ "additionalProperties": false
2070
+ },
2071
+ "description": "A list of checks to perform."
2072
+ }
2073
+ },
2074
+ "required": [
2075
+ "label"
2076
+ ],
2077
+ "description": "Props for the built-in TextField catalog component."
2078
+ }
2079
+ },
2080
+ "functions": {
2081
+ "required": {
2082
+ "type": "object",
2083
+ "description": "Checks that the value is not null, undefined, or empty.",
2084
+ "properties": {
2085
+ "call": {
2086
+ "const": "required"
2087
+ },
2088
+ "args": {
2089
+ "type": "object",
2090
+ "properties": {
2091
+ "value": {
2092
+ "description": "The value to check."
2093
+ }
2094
+ },
2095
+ "required": [
2096
+ "value"
2097
+ ],
2098
+ "additionalProperties": false
2099
+ },
2100
+ "returnType": {
2101
+ "const": "boolean"
2102
+ }
2103
+ },
2104
+ "required": [
2105
+ "call",
2106
+ "args"
2107
+ ],
2108
+ "unevaluatedProperties": false
2109
+ },
2110
+ "regex": {
2111
+ "type": "object",
2112
+ "description": "Checks that the value matches a regular expression string.",
2113
+ "properties": {
2114
+ "call": {
2115
+ "const": "regex"
2116
+ },
2117
+ "args": {
2118
+ "type": "object",
2119
+ "properties": {
2120
+ "value": {
2121
+ "$ref": "common_types.json#/$defs/DynamicString"
2122
+ },
2123
+ "pattern": {
2124
+ "type": "string",
2125
+ "description": "The regex pattern to match against."
2126
+ }
2127
+ },
2128
+ "required": [
2129
+ "value",
2130
+ "pattern"
2131
+ ],
2132
+ "unevaluatedProperties": false
2133
+ },
2134
+ "returnType": {
2135
+ "const": "boolean"
2136
+ }
2137
+ },
2138
+ "required": [
2139
+ "call",
2140
+ "args"
2141
+ ],
2142
+ "unevaluatedProperties": false
2143
+ },
2144
+ "length": {
2145
+ "type": "object",
2146
+ "description": "Checks string length constraints.",
2147
+ "properties": {
2148
+ "call": {
2149
+ "const": "length"
2150
+ },
2151
+ "args": {
2152
+ "type": "object",
2153
+ "properties": {
2154
+ "value": {
2155
+ "$ref": "common_types.json#/$defs/DynamicString"
2156
+ },
2157
+ "min": {
2158
+ "type": "integer",
2159
+ "minimum": 0,
2160
+ "description": "The minimum allowed length."
2161
+ },
2162
+ "max": {
2163
+ "type": "integer",
2164
+ "minimum": 0,
2165
+ "description": "The maximum allowed length."
2166
+ }
2167
+ },
2168
+ "required": [
2169
+ "value"
2170
+ ],
2171
+ "anyOf": [
2172
+ {
2173
+ "required": [
2174
+ "min"
2175
+ ]
2176
+ },
2177
+ {
2178
+ "required": [
2179
+ "max"
2180
+ ]
2181
+ }
2182
+ ],
2183
+ "unevaluatedProperties": false
2184
+ },
2185
+ "returnType": {
2186
+ "const": "boolean"
2187
+ }
2188
+ },
2189
+ "required": [
2190
+ "call",
2191
+ "args"
2192
+ ],
2193
+ "unevaluatedProperties": false
2194
+ },
2195
+ "numeric": {
2196
+ "type": "object",
2197
+ "description": "Checks numeric range constraints.",
2198
+ "properties": {
2199
+ "call": {
2200
+ "const": "numeric"
2201
+ },
2202
+ "args": {
2203
+ "type": "object",
2204
+ "properties": {
2205
+ "value": {
2206
+ "$ref": "common_types.json#/$defs/DynamicNumber"
2207
+ },
2208
+ "min": {
2209
+ "type": "number",
2210
+ "description": "The minimum allowed value."
2211
+ },
2212
+ "max": {
2213
+ "type": "number",
2214
+ "description": "The maximum allowed value."
2215
+ }
2216
+ },
2217
+ "required": [
2218
+ "value"
2219
+ ],
2220
+ "anyOf": [
2221
+ {
2222
+ "required": [
2223
+ "min"
2224
+ ]
2225
+ },
2226
+ {
2227
+ "required": [
2228
+ "max"
2229
+ ]
2230
+ }
2231
+ ],
2232
+ "unevaluatedProperties": false
2233
+ },
2234
+ "returnType": {
2235
+ "const": "boolean"
2236
+ }
2237
+ },
2238
+ "required": [
2239
+ "call",
2240
+ "args"
2241
+ ],
2242
+ "unevaluatedProperties": false
2243
+ },
2244
+ "email": {
2245
+ "type": "object",
2246
+ "description": "Checks that the value is a valid email address.",
2247
+ "properties": {
2248
+ "call": {
2249
+ "const": "email"
2250
+ },
2251
+ "args": {
2252
+ "type": "object",
2253
+ "properties": {
2254
+ "value": {
2255
+ "$ref": "common_types.json#/$defs/DynamicString"
2256
+ }
2257
+ },
2258
+ "required": [
2259
+ "value"
2260
+ ],
2261
+ "unevaluatedProperties": false
2262
+ },
2263
+ "returnType": {
2264
+ "const": "boolean"
2265
+ }
2266
+ },
2267
+ "required": [
2268
+ "call",
2269
+ "args"
2270
+ ],
2271
+ "unevaluatedProperties": false
2272
+ },
2273
+ "formatString": {
2274
+ "type": "object",
2275
+ "description": "Performs string interpolation of data model values and other functions in the catalog functions list and returns the resulting string. The value string can contain interpolated expressions in the `${expression}` format. Supported expression types include: JSON Pointer paths to the data model (e.g., `${/absolute/path}` or `${relative/path}`), and client-side function calls (e.g., `${now()}`). Function arguments must be named (e.g., `${formatDate(value:${/currentDate}, format:'MM-dd')}`). To include a literal `${` sequence, escape it as `\\${`.",
2276
+ "properties": {
2277
+ "call": {
2278
+ "const": "formatString"
2279
+ },
2280
+ "args": {
2281
+ "type": "object",
2282
+ "properties": {
2283
+ "value": {
2284
+ "$ref": "common_types.json#/$defs/DynamicString"
2285
+ }
2286
+ },
2287
+ "required": [
2288
+ "value"
2289
+ ],
2290
+ "unevaluatedProperties": false
2291
+ },
2292
+ "returnType": {
2293
+ "const": "string"
2294
+ }
2295
+ },
2296
+ "required": [
2297
+ "call",
2298
+ "args"
2299
+ ],
2300
+ "unevaluatedProperties": false
2301
+ },
2302
+ "formatNumber": {
2303
+ "type": "object",
2304
+ "description": "Formats a number with the specified grouping and decimal precision.",
2305
+ "properties": {
2306
+ "call": {
2307
+ "const": "formatNumber"
2308
+ },
2309
+ "args": {
2310
+ "type": "object",
2311
+ "properties": {
2312
+ "value": {
2313
+ "$ref": "common_types.json#/$defs/DynamicNumber",
2314
+ "description": "The number to format."
2315
+ },
2316
+ "decimals": {
2317
+ "$ref": "common_types.json#/$defs/DynamicNumber",
2318
+ "description": "Optional. The number of decimal places to show. Defaults to 0 or 2 depending on locale."
2319
+ },
2320
+ "grouping": {
2321
+ "$ref": "common_types.json#/$defs/DynamicBoolean",
2322
+ "description": "Optional. If true, uses locale-specific grouping separators (e.g. '1,000'). If false, returns raw digits (e.g. '1000'). Defaults to true."
2323
+ }
2324
+ },
2325
+ "required": [
2326
+ "value"
2327
+ ],
2328
+ "unevaluatedProperties": false
2329
+ },
2330
+ "returnType": {
2331
+ "const": "string"
2332
+ }
2333
+ },
2334
+ "required": [
2335
+ "call",
2336
+ "args"
2337
+ ],
2338
+ "unevaluatedProperties": false
2339
+ },
2340
+ "formatCurrency": {
2341
+ "type": "object",
2342
+ "description": "Formats a number as a currency string.",
2343
+ "properties": {
2344
+ "call": {
2345
+ "const": "formatCurrency"
2346
+ },
2347
+ "args": {
2348
+ "type": "object",
2349
+ "properties": {
2350
+ "value": {
2351
+ "$ref": "common_types.json#/$defs/DynamicNumber",
2352
+ "description": "The monetary amount."
2353
+ },
2354
+ "currency": {
2355
+ "$ref": "common_types.json#/$defs/DynamicString",
2356
+ "description": "The ISO 4217 currency code (e.g., 'USD', 'EUR')."
2357
+ },
2358
+ "decimals": {
2359
+ "$ref": "common_types.json#/$defs/DynamicNumber",
2360
+ "description": "Optional. The number of decimal places to show. Defaults to 0 or 2 depending on locale."
2361
+ },
2362
+ "grouping": {
2363
+ "$ref": "common_types.json#/$defs/DynamicBoolean",
2364
+ "description": "Optional. If true, uses locale-specific grouping separators (e.g. '1,000'). If false, returns raw digits (e.g. '1000'). Defaults to true."
2365
+ }
2366
+ },
2367
+ "required": [
2368
+ "currency",
2369
+ "value"
2370
+ ],
2371
+ "unevaluatedProperties": false
2372
+ },
2373
+ "returnType": {
2374
+ "const": "string"
2375
+ }
2376
+ },
2377
+ "required": [
2378
+ "call",
2379
+ "args"
2380
+ ],
2381
+ "unevaluatedProperties": false
2382
+ },
2383
+ "formatDate": {
2384
+ "type": "object",
2385
+ "description": "Formats a timestamp into a string using a pattern.",
2386
+ "properties": {
2387
+ "call": {
2388
+ "const": "formatDate"
2389
+ },
2390
+ "args": {
2391
+ "type": "object",
2392
+ "properties": {
2393
+ "value": {
2394
+ "$ref": "common_types.json#/$defs/DynamicValue",
2395
+ "description": "The date to format."
2396
+ },
2397
+ "format": {
2398
+ "$ref": "common_types.json#/$defs/DynamicString",
2399
+ "description": "A Unicode TR35 date pattern string.\n\nToken Reference:\n- Year: 'yy' (26), 'yyyy' (2026)\n- Month: 'M' (1), 'MM' (01), 'MMM' (Jan), 'MMMM' (January)\n- Day: 'd' (1), 'dd' (01), 'E' (Tue), 'EEEE' (Tuesday)\n- Hour (12h): 'h' (1-12), 'hh' (01-12) - requires 'a' for AM/PM\n- Hour (24h): 'H' (0-23), 'HH' (00-23) - Military Time\n- Minute: 'mm' (00-59)\n- Second: 'ss' (00-59)\n- Period: 'a' (AM/PM)\n\nExamples:\n- 'MMM dd, yyyy' -> 'Jan 16, 2026'\n- 'HH:mm' -> '14:30' (Military)\n- 'h:mm a' -> '2:30 PM'\n- 'EEEE, d MMMM' -> 'Friday, 16 January'"
2400
+ }
2401
+ },
2402
+ "required": [
2403
+ "format",
2404
+ "value"
2405
+ ],
2406
+ "unevaluatedProperties": false
2407
+ },
2408
+ "returnType": {
2409
+ "const": "string"
2410
+ }
2411
+ },
2412
+ "required": [
2413
+ "call",
2414
+ "args"
2415
+ ],
2416
+ "unevaluatedProperties": false
2417
+ },
2418
+ "pluralize": {
2419
+ "type": "object",
2420
+ "description": "Returns a localized string based on the Common Locale Data Repository (CLDR) plural category of the count (zero, one, two, few, many, other). Requires an 'other' fallback. For English, just use 'one' and 'other'.",
2421
+ "properties": {
2422
+ "call": {
2423
+ "const": "pluralize"
2424
+ },
2425
+ "args": {
2426
+ "type": "object",
2427
+ "properties": {
2428
+ "value": {
2429
+ "$ref": "common_types.json#/$defs/DynamicNumber",
2430
+ "description": "The numeric value used to determine the plural category."
2431
+ },
2432
+ "zero": {
2433
+ "$ref": "common_types.json#/$defs/DynamicString",
2434
+ "description": "String for the 'zero' category (e.g., 0 items)."
2435
+ },
2436
+ "one": {
2437
+ "$ref": "common_types.json#/$defs/DynamicString",
2438
+ "description": "String for the 'one' category (e.g., 1 item)."
2439
+ },
2440
+ "two": {
2441
+ "$ref": "common_types.json#/$defs/DynamicString",
2442
+ "description": "String for the 'two' category (used in Arabic, Welsh, etc.)."
2443
+ },
2444
+ "few": {
2445
+ "$ref": "common_types.json#/$defs/DynamicString",
2446
+ "description": "String for the 'few' category (e.g., small groups in Slavic languages)."
2447
+ },
2448
+ "many": {
2449
+ "$ref": "common_types.json#/$defs/DynamicString",
2450
+ "description": "String for the 'many' category (e.g., large groups in various languages)."
2451
+ },
2452
+ "other": {
2453
+ "$ref": "common_types.json#/$defs/DynamicString",
2454
+ "description": "The default/fallback string (used for general plural cases)."
2455
+ }
2456
+ },
2457
+ "required": [
2458
+ "value",
2459
+ "other"
2460
+ ],
2461
+ "unevaluatedProperties": false
2462
+ },
2463
+ "returnType": {
2464
+ "const": "string"
2465
+ }
2466
+ },
2467
+ "required": [
2468
+ "call",
2469
+ "args"
2470
+ ],
2471
+ "unevaluatedProperties": false
2472
+ },
2473
+ "openUrl": {
2474
+ "type": "object",
2475
+ "description": "Opens the specified URL in a browser or handler. This function has no return value.",
2476
+ "properties": {
2477
+ "call": {
2478
+ "const": "openUrl"
2479
+ },
2480
+ "args": {
2481
+ "type": "object",
2482
+ "properties": {
2483
+ "url": {
2484
+ "type": "string",
2485
+ "format": "uri",
2486
+ "description": "The URL to open."
2487
+ }
2488
+ },
2489
+ "required": [
2490
+ "url"
2491
+ ],
2492
+ "additionalProperties": false
2493
+ },
2494
+ "returnType": {
2495
+ "const": "void"
2496
+ }
2497
+ },
2498
+ "required": [
2499
+ "call",
2500
+ "args"
2501
+ ],
2502
+ "unevaluatedProperties": false
2503
+ },
2504
+ "and": {
2505
+ "type": "object",
2506
+ "description": "Performs a logical AND operation on a list of boolean values.",
2507
+ "properties": {
2508
+ "call": {
2509
+ "const": "and"
2510
+ },
2511
+ "args": {
2512
+ "type": "object",
2513
+ "properties": {
2514
+ "values": {
2515
+ "type": "array",
2516
+ "description": "The list of boolean values to evaluate.",
2517
+ "items": {
2518
+ "$ref": "common_types.json#/$defs/DynamicBoolean"
2519
+ },
2520
+ "minItems": 2
2521
+ }
2522
+ },
2523
+ "required": [
2524
+ "values"
2525
+ ],
2526
+ "unevaluatedProperties": false
2527
+ },
2528
+ "returnType": {
2529
+ "const": "boolean"
2530
+ }
2531
+ },
2532
+ "required": [
2533
+ "call",
2534
+ "args"
2535
+ ],
2536
+ "unevaluatedProperties": false
2537
+ },
2538
+ "or": {
2539
+ "type": "object",
2540
+ "description": "Performs a logical OR operation on a list of boolean values.",
2541
+ "properties": {
2542
+ "call": {
2543
+ "const": "or"
2544
+ },
2545
+ "args": {
2546
+ "type": "object",
2547
+ "properties": {
2548
+ "values": {
2549
+ "type": "array",
2550
+ "description": "The list of boolean values to evaluate.",
2551
+ "items": {
2552
+ "$ref": "common_types.json#/$defs/DynamicBoolean"
2553
+ },
2554
+ "minItems": 2
2555
+ }
2556
+ },
2557
+ "required": [
2558
+ "values"
2559
+ ],
2560
+ "unevaluatedProperties": false
2561
+ },
2562
+ "returnType": {
2563
+ "const": "boolean"
2564
+ }
2565
+ },
2566
+ "required": [
2567
+ "call",
2568
+ "args"
2569
+ ],
2570
+ "unevaluatedProperties": false
2571
+ },
2572
+ "not": {
2573
+ "type": "object",
2574
+ "description": "Performs a logical NOT operation on a boolean value.",
2575
+ "properties": {
2576
+ "call": {
2577
+ "const": "not"
2578
+ },
2579
+ "args": {
2580
+ "type": "object",
2581
+ "properties": {
2582
+ "value": {
2583
+ "$ref": "common_types.json#/$defs/DynamicBoolean",
2584
+ "description": "The boolean value to negate."
2585
+ }
2586
+ },
2587
+ "required": [
2588
+ "value"
2589
+ ],
2590
+ "unevaluatedProperties": false
2591
+ },
2592
+ "returnType": {
2593
+ "const": "boolean"
2594
+ }
2595
+ },
2596
+ "required": [
2597
+ "call",
2598
+ "args"
2599
+ ],
2600
+ "unevaluatedProperties": false
2601
+ }
2602
+ }
2603
+ }