@lynx-js/genui 0.0.1 → 0.0.3

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