@a2ui/web_core 0.8.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (436) hide show
  1. package/.tsbuildinfo +1 -0
  2. package/LICENSE +203 -0
  3. package/README.md +50 -4
  4. package/package.json +42 -72
  5. package/{dist/src → src}/v0_8/data/guards.js +13 -13
  6. package/src/v0_8/data/guards.test.d.ts +2 -0
  7. package/src/v0_8/data/guards.test.d.ts.map +1 -0
  8. package/src/v0_8/data/guards.test.js +174 -0
  9. package/src/v0_8/data/guards.test.js.map +1 -0
  10. package/{dist/src → src}/v0_8/data/model-processor.d.ts +1 -1
  11. package/{dist/src → src}/v0_8/data/model-processor.d.ts.map +1 -1
  12. package/{dist/src → src}/v0_8/data/model-processor.js +51 -40
  13. package/src/v0_8/data/model-processor.js.map +1 -0
  14. package/src/v0_8/data/model-processor.test.d.ts +2 -0
  15. package/src/v0_8/data/model-processor.test.d.ts.map +1 -0
  16. package/src/v0_8/data/model-processor.test.js +712 -0
  17. package/src/v0_8/data/model-processor.test.js.map +1 -0
  18. package/src/v0_8/errors.d.ts +35 -0
  19. package/src/v0_8/errors.d.ts.map +1 -0
  20. package/src/v0_8/errors.js +65 -0
  21. package/src/v0_8/errors.js.map +1 -0
  22. package/src/v0_8/events/validation-event.d.ts.map +1 -0
  23. package/{dist/src → src}/v0_8/events/validation-event.js.map +1 -1
  24. package/{dist/src → src}/v0_8/index.d.ts +35 -4
  25. package/{dist/src → src}/v0_8/index.d.ts.map +1 -1
  26. package/src/v0_8/index.js +28 -0
  27. package/src/v0_8/index.js.map +1 -0
  28. package/src/v0_8/schema/common-types.d.ts +1189 -0
  29. package/src/v0_8/schema/common-types.d.ts.map +1 -0
  30. package/src/v0_8/schema/common-types.js +381 -0
  31. package/src/v0_8/schema/common-types.js.map +1 -0
  32. package/src/v0_8/schema/server-to-client.d.ts +17949 -0
  33. package/src/v0_8/schema/server-to-client.d.ts.map +1 -0
  34. package/src/v0_8/schema/server-to-client.js +228 -0
  35. package/src/v0_8/schema/server-to-client.js.map +1 -0
  36. package/src/v0_8/schema/verify-schema.test.d.ts +17 -0
  37. package/src/v0_8/schema/verify-schema.test.d.ts.map +1 -0
  38. package/src/v0_8/schema/verify-schema.test.js +167 -0
  39. package/src/v0_8/schema/verify-schema.test.js.map +1 -0
  40. package/{dist/src → src}/v0_8/schemas/server_to_client.json +1 -1
  41. package/src/v0_8/schemas/server_to_client_with_standard_catalog.json +817 -787
  42. package/{dist/src → src}/v0_8/schemas/standard_catalog_definition.json +26 -0
  43. package/{dist/src → src}/v0_8/styles/behavior.js +13 -13
  44. package/{dist/src → src}/v0_8/styles/border.js +13 -13
  45. package/{dist/src → src}/v0_8/styles/colors.js +13 -13
  46. package/{dist/src → src}/v0_8/styles/colors.js.map +1 -1
  47. package/src/v0_8/styles/icons.d.ts +11 -0
  48. package/{dist/src → src}/v0_8/styles/icons.d.ts.map +1 -1
  49. package/{dist/src → src}/v0_8/styles/icons.js +17 -14
  50. package/{dist/src → src}/v0_8/styles/icons.js.map +1 -1
  51. package/src/v0_8/styles/index.js +35 -0
  52. package/{dist/src → src}/v0_8/styles/layout.js +13 -13
  53. package/{dist/src → src}/v0_8/styles/layout.js.map +1 -1
  54. package/src/v0_8/styles/opacity.js +24 -0
  55. package/src/v0_8/{events/index.ts → styles/shared.js} +3 -4
  56. package/src/v0_8/styles/styles.test.d.ts +2 -0
  57. package/src/v0_8/styles/styles.test.d.ts.map +1 -0
  58. package/src/v0_8/styles/styles.test.js +86 -0
  59. package/src/v0_8/styles/styles.test.js.map +1 -0
  60. package/{dist/src → src}/v0_8/styles/type.js +13 -13
  61. package/{dist/src → src}/v0_8/styles/utils.js +13 -13
  62. package/{dist/src → src}/v0_8/types/client-event.d.ts +10 -8
  63. package/src/v0_8/types/client-event.d.ts.map +1 -0
  64. package/src/v0_8/types/client-event.js +17 -0
  65. package/src/v0_8/types/colors.js +19 -0
  66. package/src/v0_8/types/components.d.ts +41 -0
  67. package/src/v0_8/types/components.d.ts.map +1 -0
  68. package/src/v0_8/types/components.js +17 -0
  69. package/src/v0_8/types/primitives.d.ts +9 -0
  70. package/src/v0_8/types/primitives.d.ts.map +1 -0
  71. package/src/v0_8/types/primitives.js +17 -0
  72. package/{dist/src → src}/v0_8/types/types.d.ts +44 -22
  73. package/src/v0_8/types/types.d.ts.map +1 -0
  74. package/src/v0_8/types/types.js +17 -0
  75. package/src/v0_9/basic_catalog/components/basic_components.d.ts +3359 -0
  76. package/src/v0_9/basic_catalog/components/basic_components.d.ts.map +1 -0
  77. package/src/v0_9/basic_catalog/components/basic_components.js +448 -0
  78. package/src/v0_9/basic_catalog/components/basic_components.js.map +1 -0
  79. package/src/v0_9/basic_catalog/components/basic_components.test.d.ts +2 -0
  80. package/src/v0_9/basic_catalog/components/basic_components.test.d.ts.map +1 -0
  81. package/src/v0_9/basic_catalog/components/basic_components.test.js +46 -0
  82. package/src/v0_9/basic_catalog/components/basic_components.test.js.map +1 -0
  83. package/src/v0_9/basic_catalog/expressions/expression_parser.d.ts +38 -0
  84. package/src/v0_9/basic_catalog/expressions/expression_parser.d.ts.map +1 -0
  85. package/src/v0_9/basic_catalog/expressions/expression_parser.js +294 -0
  86. package/src/v0_9/basic_catalog/expressions/expression_parser.js.map +1 -0
  87. package/src/v0_9/basic_catalog/expressions/expression_parser.test.d.ts +2 -0
  88. package/src/v0_9/basic_catalog/expressions/expression_parser.test.d.ts.map +1 -0
  89. package/src/v0_9/basic_catalog/expressions/expression_parser.test.js +126 -0
  90. package/src/v0_9/basic_catalog/expressions/expression_parser.test.js.map +1 -0
  91. package/src/v0_9/basic_catalog/functions/basic_functions.d.ts +32 -0
  92. package/src/v0_9/basic_catalog/functions/basic_functions.d.ts.map +1 -0
  93. package/src/v0_9/basic_catalog/functions/basic_functions.js +212 -0
  94. package/src/v0_9/basic_catalog/functions/basic_functions.js.map +1 -0
  95. package/src/v0_9/basic_catalog/functions/basic_functions.test.d.ts +2 -0
  96. package/src/v0_9/basic_catalog/functions/basic_functions.test.d.ts.map +1 -0
  97. package/src/v0_9/basic_catalog/functions/basic_functions.test.js +301 -0
  98. package/src/v0_9/basic_catalog/functions/basic_functions.test.js.map +1 -0
  99. package/src/v0_9/basic_catalog/functions/basic_functions_api.d.ts +930 -0
  100. package/src/v0_9/basic_catalog/functions/basic_functions_api.d.ts.map +1 -0
  101. package/src/v0_9/basic_catalog/functions/basic_functions_api.js +466 -0
  102. package/src/v0_9/basic_catalog/functions/basic_functions_api.js.map +1 -0
  103. package/src/v0_9/basic_catalog/index.d.ts +5 -0
  104. package/src/v0_9/basic_catalog/index.d.ts.map +1 -0
  105. package/src/v0_9/basic_catalog/index.js +20 -0
  106. package/src/v0_9/basic_catalog/index.js.map +1 -0
  107. package/src/v0_9/catalog/function_invoker.d.ts +12 -0
  108. package/src/v0_9/catalog/function_invoker.d.ts.map +1 -0
  109. package/src/v0_9/catalog/function_invoker.js +17 -0
  110. package/src/v0_9/catalog/function_invoker.js.map +1 -0
  111. package/src/v0_9/catalog/types.d.ts +80 -0
  112. package/src/v0_9/catalog/types.d.ts.map +1 -0
  113. package/src/v0_9/catalog/types.js +68 -0
  114. package/src/v0_9/catalog/types.js.map +1 -0
  115. package/src/v0_9/catalog/types.test.d.ts +2 -0
  116. package/src/v0_9/catalog/types.test.d.ts.map +1 -0
  117. package/src/v0_9/catalog/types.test.js +88 -0
  118. package/src/v0_9/catalog/types.test.js.map +1 -0
  119. package/src/v0_9/common/events.d.ts +45 -0
  120. package/src/v0_9/common/events.d.ts.map +1 -0
  121. package/src/v0_9/common/events.js +58 -0
  122. package/src/v0_9/common/events.js.map +1 -0
  123. package/src/v0_9/common/events.test.d.ts +2 -0
  124. package/src/v0_9/common/events.test.d.ts.map +1 -0
  125. package/src/v0_9/common/events.test.js +58 -0
  126. package/src/v0_9/common/events.test.js.map +1 -0
  127. package/src/v0_9/errors.d.ts +40 -0
  128. package/src/v0_9/errors.d.ts.map +1 -0
  129. package/src/v0_9/errors.js +69 -0
  130. package/src/v0_9/errors.js.map +1 -0
  131. package/src/v0_9/index.d.ts +152 -0
  132. package/src/v0_9/index.d.ts.map +1 -0
  133. package/src/v0_9/index.js +41 -0
  134. package/src/v0_9/index.js.map +1 -0
  135. package/src/v0_9/processing/message-processor.d.ts +70 -0
  136. package/src/v0_9/processing/message-processor.d.ts.map +1 -0
  137. package/src/v0_9/processing/message-processor.js +289 -0
  138. package/src/v0_9/processing/message-processor.js.map +1 -0
  139. package/src/v0_9/processing/message-processor.test.js +547 -0
  140. package/src/v0_9/processing/message-processor.test.js.map +1 -0
  141. package/src/v0_9/reactivity/signals.d.ts +43 -0
  142. package/src/v0_9/reactivity/signals.d.ts.map +1 -0
  143. package/src/v0_9/reactivity/signals.js +17 -0
  144. package/src/v0_9/reactivity/signals.js.map +1 -0
  145. package/src/v0_9/reactivity/signals.test.d.ts +17 -0
  146. package/src/v0_9/reactivity/signals.test.d.ts.map +1 -0
  147. package/src/v0_9/reactivity/signals.test.js +100 -0
  148. package/src/v0_9/reactivity/signals.test.js.map +1 -0
  149. package/src/v0_9/rendering/component-context.d.ts +35 -0
  150. package/src/v0_9/rendering/component-context.d.ts.map +1 -0
  151. package/src/v0_9/rendering/component-context.js +49 -0
  152. package/src/v0_9/rendering/component-context.js.map +1 -0
  153. package/src/v0_9/rendering/component-context.test.d.ts +2 -0
  154. package/src/v0_9/rendering/component-context.test.d.ts.map +1 -0
  155. package/src/v0_9/rendering/component-context.test.js +55 -0
  156. package/src/v0_9/rendering/component-context.test.js.map +1 -0
  157. package/src/v0_9/rendering/data-context.d.ts +99 -0
  158. package/src/v0_9/rendering/data-context.d.ts.map +1 -0
  159. package/src/v0_9/rendering/data-context.js +310 -0
  160. package/src/v0_9/rendering/data-context.js.map +1 -0
  161. package/src/v0_9/rendering/data-context.test.js +379 -0
  162. package/src/v0_9/rendering/data-context.test.js.map +1 -0
  163. package/src/v0_9/rendering/generic-binder.d.ts +122 -0
  164. package/src/v0_9/rendering/generic-binder.d.ts.map +1 -0
  165. package/src/v0_9/rendering/generic-binder.js +315 -0
  166. package/src/v0_9/rendering/generic-binder.js.map +1 -0
  167. package/src/v0_9/rendering/generic-binder.test.d.ts +2 -0
  168. package/src/v0_9/rendering/generic-binder.test.d.ts.map +1 -0
  169. package/src/v0_9/rendering/generic-binder.test.js +166 -0
  170. package/src/v0_9/rendering/generic-binder.test.js.map +1 -0
  171. package/src/v0_9/schema/client-capabilities.d.ts +34 -0
  172. package/src/v0_9/schema/client-capabilities.d.ts.map +1 -0
  173. package/src/v0_9/schema/client-capabilities.js +17 -0
  174. package/src/v0_9/schema/client-capabilities.js.map +1 -0
  175. package/src/v0_9/schema/client-to-server.d.ts +208 -0
  176. package/src/v0_9/schema/client-to-server.d.ts.map +1 -0
  177. package/src/v0_9/schema/client-to-server.js +104 -0
  178. package/src/v0_9/schema/client-to-server.js.map +1 -0
  179. package/src/v0_9/schema/client-to-server.test.d.ts +2 -0
  180. package/src/v0_9/schema/client-to-server.test.d.ts.map +1 -0
  181. package/src/v0_9/schema/client-to-server.test.js +85 -0
  182. package/src/v0_9/schema/client-to-server.test.js.map +1 -0
  183. package/{dist/src → src}/v0_9/schema/common-types.d.ts +318 -88
  184. package/src/v0_9/schema/common-types.d.ts.map +1 -0
  185. package/src/v0_9/schema/common-types.js +141 -0
  186. package/src/v0_9/schema/common-types.js.map +1 -0
  187. package/src/v0_9/schema/index.d.ts +5 -0
  188. package/src/v0_9/schema/index.d.ts.map +1 -0
  189. package/src/v0_9/schema/index.js +20 -0
  190. package/src/v0_9/schema/index.js.map +1 -0
  191. package/src/v0_9/schema/server-to-client.d.ts +307 -0
  192. package/src/v0_9/schema/server-to-client.d.ts.map +1 -0
  193. package/src/v0_9/schema/server-to-client.js +92 -0
  194. package/src/v0_9/schema/server-to-client.js.map +1 -0
  195. package/src/v0_9/schema/verify-schema.test.d.ts +17 -0
  196. package/src/v0_9/schema/verify-schema.test.d.ts.map +1 -0
  197. package/src/v0_9/schema/verify-schema.test.js +174 -0
  198. package/src/v0_9/schema/verify-schema.test.js.map +1 -0
  199. package/src/v0_9/schemas/basic_catalog.json +1387 -0
  200. package/src/v0_9/schemas/client_capabilities.json +97 -0
  201. package/src/v0_9/schemas/client_data_model.json +22 -0
  202. package/src/v0_9/schemas/client_to_server.json +104 -0
  203. package/src/v0_9/schemas/client_to_server_list.json +10 -0
  204. package/src/v0_9/schemas/common_types.json +315 -0
  205. package/src/v0_9/schemas/sample.json +22 -0
  206. package/src/v0_9/schemas/server_capabilities.json +26 -0
  207. package/src/v0_9/schemas/server_to_client.json +131 -0
  208. package/src/v0_9/schemas/server_to_client_list.json +10 -0
  209. package/src/v0_9/state/component-model.d.ts +36 -0
  210. package/src/v0_9/state/component-model.d.ts.map +1 -0
  211. package/src/v0_9/state/component-model.js +65 -0
  212. package/src/v0_9/state/component-model.js.map +1 -0
  213. package/{dist/src → src}/v0_9/state/component-model.test.js +23 -0
  214. package/src/v0_9/state/component-model.test.js.map +1 -0
  215. package/src/v0_9/state/data-model.d.ts +75 -0
  216. package/src/v0_9/state/data-model.d.ts.map +1 -0
  217. package/src/v0_9/state/data-model.js +235 -0
  218. package/src/v0_9/state/data-model.js.map +1 -0
  219. package/{dist/src → src}/v0_9/state/data-model.test.js +77 -17
  220. package/src/v0_9/state/data-model.test.js.map +1 -0
  221. package/src/v0_9/state/surface-components-model.d.ts +45 -0
  222. package/src/v0_9/state/surface-components-model.d.ts.map +1 -0
  223. package/src/v0_9/state/surface-components-model.js +86 -0
  224. package/src/v0_9/state/surface-components-model.js.map +1 -0
  225. package/{dist/src → src}/v0_9/state/surface-components-model.test.js +44 -2
  226. package/src/v0_9/state/surface-components-model.test.js.map +1 -0
  227. package/{dist/src → src}/v0_9/state/surface-group-model.d.ts +28 -1
  228. package/src/v0_9/state/surface-group-model.d.ts.map +1 -0
  229. package/{dist/src → src}/v0_9/state/surface-group-model.js +44 -1
  230. package/src/v0_9/state/surface-group-model.js.map +1 -0
  231. package/{dist/src → src}/v0_9/state/surface-group-model.test.js +47 -6
  232. package/src/v0_9/state/surface-group-model.test.js.map +1 -0
  233. package/src/v0_9/state/surface-model.d.ts +62 -0
  234. package/src/v0_9/state/surface-model.d.ts.map +1 -0
  235. package/src/v0_9/state/surface-model.js +101 -0
  236. package/src/v0_9/state/surface-model.js.map +1 -0
  237. package/src/v0_9/state/surface-model.test.js +93 -0
  238. package/src/v0_9/state/surface-model.test.js.map +1 -0
  239. package/src/v0_9/test/function_execution.spec.d.ts +17 -0
  240. package/src/v0_9/test/function_execution.spec.d.ts.map +1 -0
  241. package/src/v0_9/test/function_execution.spec.js +127 -0
  242. package/src/v0_9/test/function_execution.spec.js.map +1 -0
  243. package/src/v0_9/test/test-utils.d.ts.map +1 -0
  244. package/{dist/src → src}/v0_9/test/test-utils.js +15 -0
  245. package/src/v0_9/test/test-utils.js.map +1 -0
  246. package/dist/.tsbuildinfo +0 -1
  247. package/dist/src/v0_8/data/model-processor.js.map +0 -1
  248. package/dist/src/v0_8/events/validation-event.d.ts.map +0 -1
  249. package/dist/src/v0_8/index.js +0 -12
  250. package/dist/src/v0_8/index.js.map +0 -1
  251. package/dist/src/v0_8/schemas/server_to_client_with_standard_catalog.json +0 -823
  252. package/dist/src/v0_8/styles/icons.d.ts +0 -11
  253. package/dist/src/v0_8/styles/index.js +0 -35
  254. package/dist/src/v0_8/styles/opacity.js +0 -24
  255. package/dist/src/v0_8/styles/shared.js +0 -17
  256. package/dist/src/v0_8/types/client-event.d.ts.map +0 -1
  257. package/dist/src/v0_8/types/client-event.js +0 -17
  258. package/dist/src/v0_8/types/colors.js +0 -19
  259. package/dist/src/v0_8/types/components.d.ts +0 -176
  260. package/dist/src/v0_8/types/components.d.ts.map +0 -1
  261. package/dist/src/v0_8/types/components.js +0 -17
  262. package/dist/src/v0_8/types/primitives.d.ts +0 -43
  263. package/dist/src/v0_8/types/primitives.d.ts.map +0 -1
  264. package/dist/src/v0_8/types/primitives.js +0 -17
  265. package/dist/src/v0_8/types/types.d.ts.map +0 -1
  266. package/dist/src/v0_8/types/types.js +0 -17
  267. package/dist/src/v0_9/catalog/types.d.ts +0 -27
  268. package/dist/src/v0_9/catalog/types.d.ts.map +0 -1
  269. package/dist/src/v0_9/catalog/types.js +0 -11
  270. package/dist/src/v0_9/catalog/types.js.map +0 -1
  271. package/dist/src/v0_9/common/events.d.ts +0 -24
  272. package/dist/src/v0_9/common/events.d.ts.map +0 -1
  273. package/dist/src/v0_9/common/events.js +0 -29
  274. package/dist/src/v0_9/common/events.js.map +0 -1
  275. package/dist/src/v0_9/index.d.ts +0 -11
  276. package/dist/src/v0_9/index.d.ts.map +0 -1
  277. package/dist/src/v0_9/index.js +0 -11
  278. package/dist/src/v0_9/index.js.map +0 -1
  279. package/dist/src/v0_9/processing/message-processor.d.ts +0 -34
  280. package/dist/src/v0_9/processing/message-processor.d.ts.map +0 -1
  281. package/dist/src/v0_9/processing/message-processor.js +0 -128
  282. package/dist/src/v0_9/processing/message-processor.js.map +0 -1
  283. package/dist/src/v0_9/processing/message-processor.test.js +0 -112
  284. package/dist/src/v0_9/processing/message-processor.test.js.map +0 -1
  285. package/dist/src/v0_9/rendering/component-context.d.ts +0 -17
  286. package/dist/src/v0_9/rendering/component-context.d.ts.map +0 -1
  287. package/dist/src/v0_9/rendering/component-context.js +0 -21
  288. package/dist/src/v0_9/rendering/component-context.js.map +0 -1
  289. package/dist/src/v0_9/rendering/data-context.d.ts +0 -37
  290. package/dist/src/v0_9/rendering/data-context.d.ts.map +0 -1
  291. package/dist/src/v0_9/rendering/data-context.js +0 -97
  292. package/dist/src/v0_9/rendering/data-context.js.map +0 -1
  293. package/dist/src/v0_9/rendering/data-context.test.js +0 -71
  294. package/dist/src/v0_9/rendering/data-context.test.js.map +0 -1
  295. package/dist/src/v0_9/schema/common-types.d.ts.map +0 -1
  296. package/dist/src/v0_9/schema/common-types.js +0 -92
  297. package/dist/src/v0_9/schema/common-types.js.map +0 -1
  298. package/dist/src/v0_9/schema/index.d.ts +0 -3
  299. package/dist/src/v0_9/schema/index.d.ts.map +0 -1
  300. package/dist/src/v0_9/schema/index.js +0 -3
  301. package/dist/src/v0_9/schema/index.js.map +0 -1
  302. package/dist/src/v0_9/schema/server-to-client.d.ts +0 -84
  303. package/dist/src/v0_9/schema/server-to-client.d.ts.map +0 -1
  304. package/dist/src/v0_9/schema/server-to-client.js +0 -21
  305. package/dist/src/v0_9/schema/server-to-client.js.map +0 -1
  306. package/dist/src/v0_9/state/component-model.d.ts +0 -16
  307. package/dist/src/v0_9/state/component-model.d.ts.map +0 -1
  308. package/dist/src/v0_9/state/component-model.js +0 -24
  309. package/dist/src/v0_9/state/component-model.js.map +0 -1
  310. package/dist/src/v0_9/state/component-model.test.js.map +0 -1
  311. package/dist/src/v0_9/state/data-model.d.ts +0 -47
  312. package/dist/src/v0_9/state/data-model.d.ts.map +0 -1
  313. package/dist/src/v0_9/state/data-model.js +0 -191
  314. package/dist/src/v0_9/state/data-model.js.map +0 -1
  315. package/dist/src/v0_9/state/data-model.test.js.map +0 -1
  316. package/dist/src/v0_9/state/surface-components-model.d.ts +0 -19
  317. package/dist/src/v0_9/state/surface-components-model.d.ts.map +0 -1
  318. package/dist/src/v0_9/state/surface-components-model.js +0 -42
  319. package/dist/src/v0_9/state/surface-components-model.js.map +0 -1
  320. package/dist/src/v0_9/state/surface-components-model.test.js.map +0 -1
  321. package/dist/src/v0_9/state/surface-group-model.d.ts.map +0 -1
  322. package/dist/src/v0_9/state/surface-group-model.js.map +0 -1
  323. package/dist/src/v0_9/state/surface-group-model.test.js.map +0 -1
  324. package/dist/src/v0_9/state/surface-model.d.ts +0 -23
  325. package/dist/src/v0_9/state/surface-model.d.ts.map +0 -1
  326. package/dist/src/v0_9/state/surface-model.js +0 -28
  327. package/dist/src/v0_9/state/surface-model.js.map +0 -1
  328. package/dist/src/v0_9/state/surface-model.test.js +0 -39
  329. package/dist/src/v0_9/state/surface-model.test.js.map +0 -1
  330. package/dist/src/v0_9/test/test-utils.d.ts.map +0 -1
  331. package/dist/src/v0_9/test/test-utils.js.map +0 -1
  332. package/src/v0_8/data/guards.ts +0 -236
  333. package/src/v0_8/data/model-processor.ts +0 -855
  334. package/src/v0_8/events/base.ts +0 -24
  335. package/src/v0_8/events/validation-event.ts +0 -66
  336. package/src/v0_8/index.ts +0 -12
  337. package/src/v0_8/styles/behavior.ts +0 -55
  338. package/src/v0_8/styles/border.ts +0 -42
  339. package/src/v0_8/styles/colors.ts +0 -100
  340. package/src/v0_8/styles/icons.ts +0 -60
  341. package/src/v0_8/styles/index.ts +0 -37
  342. package/src/v0_8/styles/layout.ts +0 -235
  343. package/src/v0_8/styles/opacity.ts +0 -24
  344. package/src/v0_8/styles/shared.ts +0 -17
  345. package/src/v0_8/styles/type.ts +0 -156
  346. package/src/v0_8/styles/utils.ts +0 -104
  347. package/src/v0_8/types/client-event.ts +0 -80
  348. package/src/v0_8/types/colors.ts +0 -66
  349. package/src/v0_8/types/components.ts +0 -213
  350. package/src/v0_8/types/primitives.ts +0 -60
  351. package/src/v0_8/types/types.ts +0 -557
  352. package/src/v0_9/catalog/types.ts +0 -38
  353. package/src/v0_9/common/events.ts +0 -44
  354. package/src/v0_9/index.ts +0 -12
  355. package/src/v0_9/processing/message-processor.test.ts +0 -133
  356. package/src/v0_9/processing/message-processor.ts +0 -150
  357. package/src/v0_9/rendering/component-context.ts +0 -36
  358. package/src/v0_9/rendering/data-context.test.ts +0 -85
  359. package/src/v0_9/rendering/data-context.ts +0 -110
  360. package/src/v0_9/schema/common-types.ts +0 -125
  361. package/src/v0_9/schema/index.ts +0 -2
  362. package/src/v0_9/schema/server-to-client.ts +0 -23
  363. package/src/v0_9/state/component-model.test.ts +0 -50
  364. package/src/v0_9/state/component-model.ts +0 -32
  365. package/src/v0_9/state/data-model.test.ts +0 -257
  366. package/src/v0_9/state/data-model.ts +0 -239
  367. package/src/v0_9/state/surface-components-model.test.ts +0 -59
  368. package/src/v0_9/state/surface-components-model.ts +0 -48
  369. package/src/v0_9/state/surface-group-model.test.ts +0 -82
  370. package/src/v0_9/state/surface-group-model.ts +0 -66
  371. package/src/v0_9/state/surface-model.test.ts +0 -44
  372. package/src/v0_9/state/surface-model.ts +0 -39
  373. package/src/v0_9/test/test-utils.ts +0 -22
  374. /package/{dist/src → src}/v0_8/data/guards.d.ts +0 -0
  375. /package/{dist/src → src}/v0_8/data/guards.d.ts.map +0 -0
  376. /package/{dist/src → src}/v0_8/data/guards.js.map +0 -0
  377. /package/{dist/src → src}/v0_8/events/base.d.ts +0 -0
  378. /package/{dist/src → src}/v0_8/events/base.d.ts.map +0 -0
  379. /package/{dist/src → src}/v0_8/events/base.js +0 -0
  380. /package/{dist/src → src}/v0_8/events/base.js.map +0 -0
  381. /package/{dist/src → src}/v0_8/events/index.d.ts +0 -0
  382. /package/{dist/src → src}/v0_8/events/index.d.ts.map +0 -0
  383. /package/{dist/src → src}/v0_8/events/index.js +0 -0
  384. /package/{dist/src → src}/v0_8/events/index.js.map +0 -0
  385. /package/{dist/src → src}/v0_8/events/validation-event.d.ts +0 -0
  386. /package/{dist/src → src}/v0_8/events/validation-event.js +0 -0
  387. /package/{dist/src → src}/v0_8/schemas/a2ui_client_capabilities_schema.json +0 -0
  388. /package/{dist/src → src}/v0_8/schemas/catalog_description_schema.json +0 -0
  389. /package/{dist/src → src}/v0_8/schemas/client_to_server.json +0 -0
  390. /package/{dist/src → src}/v0_8/styles/behavior.d.ts +0 -0
  391. /package/{dist/src → src}/v0_8/styles/behavior.d.ts.map +0 -0
  392. /package/{dist/src → src}/v0_8/styles/behavior.js.map +0 -0
  393. /package/{dist/src → src}/v0_8/styles/border.d.ts +0 -0
  394. /package/{dist/src → src}/v0_8/styles/border.d.ts.map +0 -0
  395. /package/{dist/src → src}/v0_8/styles/border.js.map +0 -0
  396. /package/{dist/src → src}/v0_8/styles/colors.d.ts +0 -0
  397. /package/{dist/src → src}/v0_8/styles/colors.d.ts.map +0 -0
  398. /package/{dist/src → src}/v0_8/styles/index.d.ts +0 -0
  399. /package/{dist/src → src}/v0_8/styles/index.d.ts.map +0 -0
  400. /package/{dist/src → src}/v0_8/styles/index.js.map +0 -0
  401. /package/{dist/src → src}/v0_8/styles/layout.d.ts +0 -0
  402. /package/{dist/src → src}/v0_8/styles/layout.d.ts.map +0 -0
  403. /package/{dist/src → src}/v0_8/styles/opacity.d.ts +0 -0
  404. /package/{dist/src → src}/v0_8/styles/opacity.d.ts.map +0 -0
  405. /package/{dist/src → src}/v0_8/styles/opacity.js.map +0 -0
  406. /package/{dist/src → src}/v0_8/styles/shared.d.ts +0 -0
  407. /package/{dist/src → src}/v0_8/styles/shared.d.ts.map +0 -0
  408. /package/{dist/src → src}/v0_8/styles/shared.js.map +0 -0
  409. /package/{dist/src → src}/v0_8/styles/type.d.ts +0 -0
  410. /package/{dist/src → src}/v0_8/styles/type.d.ts.map +0 -0
  411. /package/{dist/src → src}/v0_8/styles/type.js.map +0 -0
  412. /package/{dist/src → src}/v0_8/styles/utils.d.ts +0 -0
  413. /package/{dist/src → src}/v0_8/styles/utils.d.ts.map +0 -0
  414. /package/{dist/src → src}/v0_8/styles/utils.js.map +0 -0
  415. /package/{dist/src → src}/v0_8/types/client-event.js.map +0 -0
  416. /package/{dist/src → src}/v0_8/types/colors.d.ts +0 -0
  417. /package/{dist/src → src}/v0_8/types/colors.d.ts.map +0 -0
  418. /package/{dist/src → src}/v0_8/types/colors.js.map +0 -0
  419. /package/{dist/src → src}/v0_8/types/components.js.map +0 -0
  420. /package/{dist/src → src}/v0_8/types/primitives.js.map +0 -0
  421. /package/{dist/src → src}/v0_8/types/types.js.map +0 -0
  422. /package/{dist/src → src}/v0_9/processing/message-processor.test.d.ts +0 -0
  423. /package/{dist/src → src}/v0_9/processing/message-processor.test.d.ts.map +0 -0
  424. /package/{dist/src → src}/v0_9/rendering/data-context.test.d.ts +0 -0
  425. /package/{dist/src → src}/v0_9/rendering/data-context.test.d.ts.map +0 -0
  426. /package/{dist/src → src}/v0_9/state/component-model.test.d.ts +0 -0
  427. /package/{dist/src → src}/v0_9/state/component-model.test.d.ts.map +0 -0
  428. /package/{dist/src → src}/v0_9/state/data-model.test.d.ts +0 -0
  429. /package/{dist/src → src}/v0_9/state/data-model.test.d.ts.map +0 -0
  430. /package/{dist/src → src}/v0_9/state/surface-components-model.test.d.ts +0 -0
  431. /package/{dist/src → src}/v0_9/state/surface-components-model.test.d.ts.map +0 -0
  432. /package/{dist/src → src}/v0_9/state/surface-group-model.test.d.ts +0 -0
  433. /package/{dist/src → src}/v0_9/state/surface-group-model.test.d.ts.map +0 -0
  434. /package/{dist/src → src}/v0_9/state/surface-model.test.d.ts +0 -0
  435. /package/{dist/src → src}/v0_9/state/surface-model.test.d.ts.map +0 -0
  436. /package/{dist/src → src}/v0_9/test/test-utils.d.ts +0 -0
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Copyright 2026 Google LLC
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import assert from 'node:assert';
17
+ import { describe, it } from 'node:test';
18
+ import { Signal as PSignal, computed as pComputed } from '@preact/signals-core';
19
+ import { signal as aSignal, computed as aComputed, isSignal, } from '@angular/core';
20
+ describe('FrameworkSignal', () => {
21
+ // Test FrameworkSignal with two sample implemenations that wrap Angular and
22
+ // Preact signals. Angular and Preact signals are good representitive samples,
23
+ // because the two common patterns - `()` vs. `.value` - are represented by
24
+ // Angular and Preact respectively.
25
+ describe('Angular variation', () => {
26
+ const AngularSignal = {
27
+ computed: (fn) => aComputed(fn),
28
+ isSignal: (val) => isSignal(val),
29
+ wrap: (val) => aSignal(val),
30
+ unwrap: (val) => val(),
31
+ set: (signal, value) => signal.set(value),
32
+ };
33
+ it('round trip wraps and unwraps successfully', () => {
34
+ const val = 'hello';
35
+ const wrapped = AngularSignal.wrap(val);
36
+ assert.strictEqual(AngularSignal.unwrap(wrapped), val);
37
+ });
38
+ it('handles updates well', () => {
39
+ const signal = AngularSignal.wrap('first');
40
+ const computedVal = AngularSignal.computed(() => `prefix ${signal()}`);
41
+ assert.strictEqual(signal(), 'first');
42
+ assert.strictEqual(AngularSignal.unwrap(signal), 'first');
43
+ assert.strictEqual(computedVal(), 'prefix first');
44
+ assert.strictEqual(AngularSignal.unwrap(computedVal), 'prefix first');
45
+ AngularSignal.set(signal, 'second');
46
+ assert.strictEqual(signal(), 'second');
47
+ assert.strictEqual(AngularSignal.unwrap(signal), 'second');
48
+ assert.strictEqual(computedVal(), 'prefix second');
49
+ assert.strictEqual(AngularSignal.unwrap(computedVal), 'prefix second');
50
+ });
51
+ describe('.isSignal()', () => {
52
+ it('validates a signal', () => {
53
+ const val = 'hello';
54
+ const wrapped = AngularSignal.wrap(val);
55
+ assert.ok(AngularSignal.isSignal(wrapped));
56
+ });
57
+ it('rejects a non-signal', () => {
58
+ assert.strictEqual(AngularSignal.isSignal('hello'), false);
59
+ });
60
+ });
61
+ });
62
+ describe('Preact variation', () => {
63
+ const PreactSignal = {
64
+ computed: (fn) => pComputed(fn),
65
+ isSignal: (val) => val instanceof PSignal,
66
+ wrap: (val) => new PSignal(val),
67
+ unwrap: (val) => val.value,
68
+ set: (signal, value) => (signal.value = value),
69
+ };
70
+ it('round trip wraps and unwraps successfully', () => {
71
+ const val = 'hello';
72
+ const wrapped = PreactSignal.wrap(val);
73
+ assert.strictEqual(PreactSignal.unwrap(wrapped), val);
74
+ });
75
+ it('handles updates well', () => {
76
+ const signal = PreactSignal.wrap('first');
77
+ const computed = PreactSignal.computed(() => `prefix ${signal.value}`);
78
+ assert.strictEqual(signal.value, 'first');
79
+ assert.strictEqual(PreactSignal.unwrap(signal), 'first');
80
+ assert.strictEqual(computed.value, 'prefix first');
81
+ assert.strictEqual(PreactSignal.unwrap(computed), 'prefix first');
82
+ PreactSignal.set(signal, 'second');
83
+ assert.strictEqual(signal.value, 'second');
84
+ assert.strictEqual(PreactSignal.unwrap(signal), 'second');
85
+ assert.strictEqual(computed.value, 'prefix second');
86
+ assert.strictEqual(PreactSignal.unwrap(computed), 'prefix second');
87
+ });
88
+ describe('.isSignal()', () => {
89
+ it('validates a signal', () => {
90
+ const val = 'hello';
91
+ const wrapped = PreactSignal.wrap(val);
92
+ assert.ok(PreactSignal.isSignal(wrapped));
93
+ });
94
+ it('rejects a non-signal', () => {
95
+ assert.strictEqual(PreactSignal.isSignal('hello'), false);
96
+ });
97
+ });
98
+ });
99
+ });
100
+ //# sourceMappingURL=signals.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signals.test.js","sourceRoot":"","sources":["../../../../src/v0_9/reactivity/signals.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAC,QAAQ,EAAE,EAAE,EAAC,MAAM,WAAW,CAAC;AACvC,OAAO,EAAC,MAAM,IAAI,OAAO,EAAE,QAAQ,IAAI,SAAS,EAAC,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EACL,MAAM,IAAI,OAAO,EACjB,QAAQ,IAAI,SAAS,EAGrB,QAAQ,GACT,MAAM,eAAe,CAAC;AAIvB,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,4EAA4E;IAC5E,8EAA8E;IAC9E,2EAA2E;IAC3E,mCAAmC;IAEnC,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,MAAM,aAAa,GAAwD;YACzE,QAAQ,EAAE,CAAI,EAAW,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3C,QAAQ,EAAE,CAAC,GAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC;YACzC,IAAI,EAAE,CAAI,GAAM,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;YACjC,MAAM,EAAE,CAAI,GAAe,EAAE,EAAE,CAAC,GAAG,EAAE;YACrC,GAAG,EAAE,CAAI,MAA0B,EAAE,KAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;SACpE,CAAC;QAEF,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,GAAG,GAAG,OAAO,CAAC;YACpB,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACxC,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;YAC9B,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3C,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,UAAU,MAAM,EAAE,EAAE,CAAC,CAAC;YAEvE,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC;YACtC,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;YAC1D,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE,cAAc,CAAC,CAAC;YAClD,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,cAAc,CAAC,CAAC;YAEtE,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAEpC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,QAAQ,CAAC,CAAC;YACvC,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC;YAC3D,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE,eAAe,CAAC,CAAC;YACnD,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,eAAe,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;YAC3B,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;gBAC5B,MAAM,GAAG,GAAG,OAAO,CAAC;gBACpB,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACxC,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YAC7C,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;gBAC9B,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,MAAM,YAAY,GAA6B;YAC7C,QAAQ,EAAE,CAAI,EAAW,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3C,QAAQ,EAAE,CAAC,GAAY,EAAE,EAAE,CAAC,GAAG,YAAY,OAAO;YAClD,IAAI,EAAE,CAAI,GAAM,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC;YACrC,MAAM,EAAE,CAAI,GAAe,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK;YACzC,GAAG,EAAE,CAAI,MAAkB,EAAE,KAAQ,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;SACjE,CAAC;QAEF,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,GAAG,GAAG,OAAO,CAAC;YACpB,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACvC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;YAC9B,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1C,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,UAAU,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAEvE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC1C,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;YACzD,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;YACnD,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC,CAAC;YAElE,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAEnC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC3C,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC;YAC1D,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;YACpD,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;YAC3B,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;gBAC5B,MAAM,GAAG,GAAG,OAAO,CAAC;gBACpB,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACvC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;gBAC9B,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { DataContext } from './data-context.js';
2
+ import { ComponentModel } from '../state/component-model.js';
3
+ import type { SurfaceModel } from '../state/surface-model.js';
4
+ import type { SurfaceComponentsModel } from '../state/surface-components-model.js';
5
+ /**
6
+ * Context provided to components during rendering.
7
+ * It provides access to the component's model, the data context, and a way to dispatch actions.
8
+ */
9
+ export declare class ComponentContext {
10
+ /** The state model for this specific component, providing access to its properties and state. */
11
+ readonly componentModel: ComponentModel;
12
+ /**
13
+ * The data context scoped to this component's position in the visual hierarchy.
14
+ * Uses the `dataModelBasePath` to resolve relative data paths.
15
+ */
16
+ readonly dataContext: DataContext;
17
+ /** The collection of all component models for the current surface, allowing lookups by ID. */
18
+ readonly surfaceComponents: SurfaceComponentsModel;
19
+ /**
20
+ * Creates a new component context.
21
+ *
22
+ * @param surface The surface model the component belongs to.
23
+ * @param componentId The ID of the component.
24
+ * @param dataModelBasePath The base path for data model access (default: '/').
25
+ */
26
+ constructor(surface: SurfaceModel<any>, componentId: string, dataModelBasePath?: string);
27
+ private _actionDispatcher;
28
+ /**
29
+ * Dispatches an action from the component.
30
+ *
31
+ * @param action The action to dispatch.
32
+ */
33
+ dispatchAction(action: any): Promise<void>;
34
+ }
35
+ //# sourceMappingURL=component-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-context.d.ts","sourceRoot":"","sources":["../../../../src/v0_9/rendering/component-context.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAC,cAAc,EAAC,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,sCAAsC,CAAC;AAGjF;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,iGAAiG;IACjG,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,8FAA8F;IAC9F,QAAQ,CAAC,iBAAiB,EAAE,sBAAsB,CAAC;IAEnD;;;;;;OAMG;gBAED,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,EAC1B,WAAW,EAAE,MAAM,EACnB,iBAAiB,GAAE,MAAY;IAcjC,OAAO,CAAC,iBAAiB,CAAiC;IAE1D;;;;OAIG;IACH,cAAc,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;CAG3C"}
@@ -0,0 +1,49 @@
1
+ /*
2
+ * Copyright 2025 Google LLC
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * https://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { DataContext } from './data-context.js';
17
+ import { A2uiStateError } from '../errors.js';
18
+ /**
19
+ * Context provided to components during rendering.
20
+ * It provides access to the component's model, the data context, and a way to dispatch actions.
21
+ */
22
+ export class ComponentContext {
23
+ /**
24
+ * Creates a new component context.
25
+ *
26
+ * @param surface The surface model the component belongs to.
27
+ * @param componentId The ID of the component.
28
+ * @param dataModelBasePath The base path for data model access (default: '/').
29
+ */
30
+ constructor(surface, componentId, dataModelBasePath = '/') {
31
+ const model = surface.componentsModel.get(componentId);
32
+ if (!model) {
33
+ throw new A2uiStateError(`Component not found: ${componentId}`);
34
+ }
35
+ this.componentModel = model;
36
+ this.surfaceComponents = surface.componentsModel;
37
+ this.dataContext = new DataContext(surface, dataModelBasePath);
38
+ this._actionDispatcher = action => surface.dispatchAction(action, this.componentModel.id);
39
+ }
40
+ /**
41
+ * Dispatches an action from the component.
42
+ *
43
+ * @param action The action to dispatch.
44
+ */
45
+ dispatchAction(action) {
46
+ return this._actionDispatcher(action);
47
+ }
48
+ }
49
+ //# sourceMappingURL=component-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-context.js","sourceRoot":"","sources":["../../../../src/v0_9/rendering/component-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAC;AAI9C,OAAO,EAAC,cAAc,EAAC,MAAM,cAAc,CAAC;AAE5C;;;GAGG;AACH,MAAM,OAAO,gBAAgB;IAW3B;;;;;;OAMG;IACH,YACE,OAA0B,EAC1B,WAAmB,EACnB,oBAA4B,GAAG;QAE/B,MAAM,KAAK,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACvD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,cAAc,CAAC,wBAAwB,WAAW,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,eAAe,CAAC;QAEjD,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;QAC/D,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,EAAE,CAChC,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IAC3D,CAAC;IAID;;;;OAIG;IACH,cAAc,CAAC,MAAW;QACxB,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=component-context.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-context.test.d.ts","sourceRoot":"","sources":["../../../../src/v0_9/rendering/component-context.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,55 @@
1
+ /*
2
+ * Copyright 2025 Google LLC
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * https://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { describe, it } from 'node:test';
17
+ import * as assert from 'node:assert';
18
+ import { ComponentContext } from './component-context.js';
19
+ import { SurfaceModel } from '../state/surface-model.js';
20
+ import { ComponentModel } from '../state/component-model.js';
21
+ describe('ComponentContext', () => {
22
+ const mockSurface = new SurfaceModel('surface1', {});
23
+ const componentId = 'comp1';
24
+ // Add a component to the surface model for testing
25
+ const componentModel = new ComponentModel(componentId, 'TestComponent', {});
26
+ mockSurface.componentsModel.addComponent(componentModel);
27
+ it('initializes correctly', () => {
28
+ const context = new ComponentContext(mockSurface, componentId);
29
+ assert.strictEqual(context.componentModel, componentModel);
30
+ assert.ok(context.dataContext);
31
+ assert.strictEqual(context.surfaceComponents, mockSurface.componentsModel);
32
+ });
33
+ it('dispatches actions', async () => {
34
+ const context = new ComponentContext(mockSurface, componentId);
35
+ let actionDispatched = null;
36
+ const subscription = mockSurface.onAction.subscribe((action) => {
37
+ actionDispatched = action;
38
+ });
39
+ await context.dispatchAction({ event: { name: 'test', context: { a: 1 } } });
40
+ assert.strictEqual(actionDispatched.name, 'test');
41
+ assert.strictEqual(actionDispatched.sourceComponentId, componentId);
42
+ assert.deepStrictEqual(actionDispatched.context, { a: 1 });
43
+ subscription.unsubscribe();
44
+ });
45
+ it('throws error if component not found', () => {
46
+ assert.throws(() => {
47
+ new ComponentContext(mockSurface, 'nonExistentId');
48
+ }, /Component not found: nonExistentId/);
49
+ });
50
+ it('creates data context with correct base path', () => {
51
+ const context = new ComponentContext(mockSurface, componentId, '/foo/bar');
52
+ assert.strictEqual(context.dataContext.path, '/foo/bar');
53
+ });
54
+ });
55
+ //# sourceMappingURL=component-context.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-context.test.js","sourceRoot":"","sources":["../../../../src/v0_9/rendering/component-context.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAC,QAAQ,EAAE,EAAE,EAAC,MAAM,WAAW,CAAC;AACvC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,EAAC,gBAAgB,EAAC,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAC,cAAc,EAAC,MAAM,6BAA6B,CAAC;AAE3D,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,MAAM,WAAW,GAAG,IAAI,YAAY,CAAC,UAAU,EAAE,EAAS,CAAC,CAAC;IAC5D,MAAM,WAAW,GAAG,OAAO,CAAC;IAE5B,mDAAmD;IACnD,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,WAAW,EAAE,eAAe,EAAE,EAAE,CAAC,CAAC;IAC5E,WAAW,CAAC,eAAe,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;IAEzD,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC/B,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAC/D,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;QAC3D,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC/B,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,iBAAiB,EAAE,WAAW,CAAC,eAAe,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;QAClC,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAC/D,IAAI,gBAAgB,GAAQ,IAAI,CAAC;QAEjC,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,MAAW,EAAE,EAAE;YAClE,gBAAgB,GAAG,MAAM,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC,cAAc,CAAC,EAAC,KAAK,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAC,CAAC,EAAE,CAAC,EAAC,EAAC,EAAC,CAAC,CAAC;QAEvE,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;QACpE,MAAM,CAAC,eAAe,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAC,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC;QACzD,YAAY,CAAC,WAAW,EAAE,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;YACjB,IAAI,gBAAgB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QACrD,CAAC,EAAE,oCAAoC,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,WAAW,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;QAC3E,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,99 @@
1
+ import { Signal } from '@preact/signals-core';
2
+ import { DataModel, DataSubscription } from '../state/data-model.js';
3
+ import type { DynamicValue, Action } from '../schema/common-types.js';
4
+ import { FunctionInvoker } from '../catalog/function_invoker.js';
5
+ import { SurfaceModel } from '../state/surface-model.js';
6
+ /**
7
+ * A contextual view of the main DataModel, serving as the unified interface for resolving
8
+ * DynamicValues (literals, data paths, function calls) within a specific scope.
9
+ *
10
+ * Components use `DataContext` instead of interacting with the `DataModel` directly.
11
+ * It automatically handles resolving relative paths against the component's current scope
12
+ * and provides tools for evaluating complex, reactive expressions.
13
+ */
14
+ export declare class DataContext {
15
+ readonly surface: SurfaceModel<any>;
16
+ readonly path: string;
17
+ /** The shared, global DataModel instance for the entire UI surface. */
18
+ readonly dataModel: DataModel;
19
+ /** A callback for executing function calls defined in the A2UI component tree. */
20
+ readonly functionInvoker: FunctionInvoker;
21
+ /**
22
+ * Initializes a new DataContext.
23
+ *
24
+ * @param surface The surface model this context belongs to.
25
+ * @param path The absolute path in the DataModel that this context is scoped to (its "current working directory").
26
+ */
27
+ constructor(surface: SurfaceModel<any>, path: string);
28
+ /**
29
+ * Mutates the underlying DataModel at the specified path.
30
+ *
31
+ * This is the primary method for components to push state changes (e.g. user input)
32
+ * back up to the global model.
33
+ *
34
+ * @param path A JSON pointer path. If relative, it is resolved against this context's `path`.
35
+ * @param value The new value to store in the DataModel.
36
+ */
37
+ set(path: string, value: any): void;
38
+ /**
39
+ * Synchronously evaluates a `DynamicValue` (a literal, a path binding, or a function call)
40
+ * into its concrete runtime value.
41
+ *
42
+ * **Note:** This method evaluates the value *once* at the current moment in time.
43
+ * It does not create any reactive subscriptions. If the underlying data changes later,
44
+ * this result will not automatically update. Use `subscribeDynamicValue` for reactive updates.
45
+ *
46
+ * @param value The DynamicValue object from the A2UI JSON payload.
47
+ * @returns The synchronously resolved value.
48
+ */
49
+ resolveDynamicValue<V>(value: DynamicValue): V;
50
+ /**
51
+ * Reactively listens to changes in a `DynamicValue`.
52
+ *
53
+ * This is the core reactive binding mechanism. Whenever the underlying data changes
54
+ * (or if a function call's dependencies change), the `onChange` callback will be fired
55
+ * with the freshly evaluated result.
56
+ *
57
+ * @template V The expected type of the resolved value.
58
+ * @param value The DynamicValue to evaluate and observe.
59
+ * @param onChange A callback fired whenever the evaluated result changes.
60
+ * @returns A `DataSubscription` containing the initial synchronously-resolved value, along with an `unsubscribe` method to clean up the listener.
61
+ */
62
+ subscribeDynamicValue<V>(value: DynamicValue, onChange: (value: V | undefined) => void): DataSubscription<V>;
63
+ /**
64
+ * Returns a Preact Signal representing the reactive dynamic value.
65
+ *
66
+ * This method recursively resolves any nested path bindings or function calls into a
67
+ * single, reactive `Signal`. Any changes to the underlying data or function dependencies
68
+ * will cause this signal's value to update.
69
+ *
70
+ * @param value The DynamicValue to evaluate and observe.
71
+ * @returns A Preact Signal containing the reactive result of the evaluation.
72
+ */
73
+ resolveSignal<V>(value: DynamicValue): Signal<V>;
74
+ /**
75
+ * Resolves an action by evaluating its top-level dynamic values.
76
+ *
77
+ * For event actions, it resolves each value in the context map.
78
+ * For function call actions, it evaluates the call.
79
+ *
80
+ * This is non-recursive: it only resolves one level deep for the context record,
81
+ * in accordance with the schema specification that requires values to be single
82
+ * DynamicValue types and prevents arbitrary nesting.
83
+ */
84
+ resolveAction(action: Action): any;
85
+ private evaluateFunctionReactive;
86
+ private dispatchExpressionError;
87
+ /**
88
+ * Creates a new, child `DataContext` scoped to a deeper path.
89
+ *
90
+ * This is used when a component (like a List or a Card) wants to provide a targeted
91
+ * data scope for its children, so children can use relative paths like `./title`.
92
+ *
93
+ * @param relativePath The path relative to the *current* context's path.
94
+ * @returns A new `DataContext` instance pointing to the resolved absolute path.
95
+ */
96
+ nested(relativePath: string): DataContext;
97
+ private resolvePath;
98
+ }
99
+ //# sourceMappingURL=data-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-context.d.ts","sourceRoot":"","sources":["../../../../src/v0_9/rendering/data-context.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAmB,MAAM,EAAS,MAAM,sBAAsB,CAAC;AAEtE,OAAO,EAAC,SAAS,EAAE,gBAAgB,EAAC,MAAM,wBAAwB,CAAC;AACnE,OAAO,KAAK,EACV,YAAY,EAGZ,MAAM,EACP,MAAM,2BAA2B,CAAC;AAInC,OAAO,EAAC,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAC;AAEvD;;;;;;;GAOG;AACH,qBAAa,WAAW;IAapB,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM;IAbvB,uEAAuE;IACvE,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,kFAAkF;IAClF,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAE1C;;;;;OAKG;gBAEQ,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,EAC1B,IAAI,EAAE,MAAM;IAMvB;;;;;;;;OAQG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAKnC;;;;;;;;;;OAUG;IACH,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,GAAG,CAAC;IAuC9C;;;;;;;;;;;OAWG;IACH,qBAAqB,CAAC,CAAC,EACrB,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,SAAS,KAAK,IAAI,GACvC,gBAAgB,CAAC,CAAC,CAAC;IA4BtB;;;;;;;;;OASG;IACH,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC;IA8FhD;;;;;;;;;OASG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG;IAqBlC,OAAO,CAAC,wBAAwB;IAahC,OAAO,CAAC,uBAAuB;IA+B/B;;;;;;;;OAQG;IACH,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,WAAW;IAKzC,OAAO,CAAC,WAAW;CAgBpB"}