@easyops-cn/a2ui-react 0.0.1 → 0.0.2

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 (604) hide show
  1. package/dist/0.8/A2UIRenderer.d.ts +49 -0
  2. package/dist/0.8/A2UIRenderer.test.d.ts +6 -0
  3. package/dist/0.8/components/ComponentRenderer.d.ts +39 -0
  4. package/dist/0.8/components/ComponentRenderer.test.d.ts +6 -0
  5. package/dist/0.8/components/UnknownComponent.d.ts +18 -0
  6. package/dist/0.8/components/display/AudioPlayerComponent.d.ts +5 -0
  7. package/dist/0.8/components/display/DividerComponent.d.ts +5 -0
  8. package/dist/0.8/components/display/IconComponent.d.ts +5 -0
  9. package/dist/0.8/components/display/ImageComponent.d.ts +6 -0
  10. package/dist/0.8/components/display/TextComponent.d.ts +6 -0
  11. package/dist/0.8/components/display/VideoComponent.d.ts +5 -0
  12. package/dist/0.8/components/display/display.test.d.ts +7 -0
  13. package/dist/0.8/components/display/index.d.ts +9 -0
  14. package/dist/0.8/components/index.d.ts +7 -0
  15. package/dist/0.8/components/interactive/ButtonComponent.d.ts +5 -0
  16. package/dist/0.8/components/interactive/CheckBoxComponent.d.ts +5 -0
  17. package/dist/0.8/components/interactive/DateTimeInputComponent.d.ts +5 -0
  18. package/dist/0.8/components/interactive/MultipleChoiceComponent.d.ts +7 -0
  19. package/dist/0.8/components/interactive/SliderComponent.d.ts +5 -0
  20. package/dist/0.8/components/interactive/TextFieldComponent.d.ts +5 -0
  21. package/dist/0.8/components/interactive/index.d.ts +9 -0
  22. package/dist/0.8/components/interactive/interactive.test.d.ts +7 -0
  23. package/dist/0.8/components/layout/CardComponent.d.ts +5 -0
  24. package/dist/0.8/components/layout/ColumnComponent.d.ts +5 -0
  25. package/dist/0.8/components/layout/ListComponent.d.ts +5 -0
  26. package/dist/0.8/components/layout/ModalComponent.d.ts +5 -0
  27. package/dist/0.8/components/layout/RowComponent.d.ts +5 -0
  28. package/dist/0.8/components/layout/TabsComponent.d.ts +5 -0
  29. package/dist/0.8/components/layout/index.d.ts +9 -0
  30. package/dist/0.8/components/layout/layout.test.d.ts +7 -0
  31. package/dist/0.8/contexts/A2UIProvider.d.ts +34 -0
  32. package/dist/0.8/contexts/A2UIProvider.test.d.ts +6 -0
  33. package/dist/0.8/contexts/ActionContext.d.ts +33 -0
  34. package/dist/0.8/contexts/ActionContext.test.d.ts +6 -0
  35. package/dist/0.8/contexts/ComponentsMapContext.d.ts +63 -0
  36. package/dist/0.8/contexts/DataModelContext.d.ts +43 -0
  37. package/dist/0.8/contexts/DataModelContext.test.d.ts +6 -0
  38. package/dist/0.8/contexts/SurfaceContext.d.ts +45 -0
  39. package/dist/0.8/contexts/SurfaceContext.test.d.ts +6 -0
  40. package/dist/0.8/hooks/useA2UIMessageHandler.d.ts +41 -0
  41. package/dist/0.8/hooks/useA2UIMessageHandler.test.d.ts +6 -0
  42. package/{src/0.8/hooks/useComponent.ts → dist/0.8/hooks/useComponent.d.ts} +2 -18
  43. package/dist/0.8/hooks/useComponent.test.d.ts +6 -0
  44. package/dist/0.8/hooks/useDataBinding.d.ts +50 -0
  45. package/dist/0.8/hooks/useDataBinding.test.d.ts +6 -0
  46. package/{src/0.8/hooks/useDispatchAction.ts → dist/0.8/hooks/useDispatchAction.d.ts} +2 -15
  47. package/dist/0.8/hooks/useDispatchAction.test.d.ts +6 -0
  48. package/{src/0.8/hooks/useSurface.ts → dist/0.8/hooks/useSurface.d.ts} +2 -15
  49. package/dist/0.8/hooks/useSurface.test.d.ts +6 -0
  50. package/{src/0.8/index.ts → dist/0.8/index.d.ts} +5 -19
  51. package/{src/0.8/types/index.ts → dist/0.8/types/index.d.ts} +128 -213
  52. package/dist/0.8/utils/dataBinding.d.ts +95 -0
  53. package/dist/0.8/utils/dataBinding.test.d.ts +6 -0
  54. package/dist/0.8/utils/pathUtils.d.ts +63 -0
  55. package/dist/0.8/utils/pathUtils.test.d.ts +6 -0
  56. package/dist/a2ui-react.js +4 -0
  57. package/dist/a2ui-react10.js +54 -0
  58. package/dist/a2ui-react100.js +24 -0
  59. package/dist/a2ui-react101.js +255 -0
  60. package/dist/a2ui-react102.js +163 -0
  61. package/dist/a2ui-react103.js +19 -0
  62. package/dist/a2ui-react104.js +251 -0
  63. package/dist/a2ui-react105.js +61 -0
  64. package/dist/a2ui-react106.js +35 -0
  65. package/dist/a2ui-react107.js +436 -0
  66. package/dist/a2ui-react108.js +16 -0
  67. package/dist/a2ui-react109.js +234 -0
  68. package/dist/a2ui-react11.js +9 -0
  69. package/dist/a2ui-react110.js +6 -0
  70. package/dist/a2ui-react111.js +6 -0
  71. package/dist/a2ui-react112.js +6 -0
  72. package/dist/a2ui-react113.js +239 -0
  73. package/dist/a2ui-react114.js +845 -0
  74. package/dist/a2ui-react115.js +6 -0
  75. package/dist/a2ui-react116.js +10 -0
  76. package/dist/a2ui-react117.js +8 -0
  77. package/dist/a2ui-react118.js +8 -0
  78. package/dist/a2ui-react119.js +20 -0
  79. package/dist/a2ui-react12.js +32 -0
  80. package/dist/a2ui-react120.js +8 -0
  81. package/dist/a2ui-react121.js +8 -0
  82. package/dist/a2ui-react122.js +9 -0
  83. package/dist/a2ui-react123.js +16 -0
  84. package/dist/a2ui-react124.js +18 -0
  85. package/dist/a2ui-react125.js +11 -0
  86. package/dist/a2ui-react126.js +9 -0
  87. package/dist/a2ui-react127.js +13 -0
  88. package/dist/a2ui-react128.js +17 -0
  89. package/dist/a2ui-react129.js +8 -0
  90. package/dist/a2ui-react13.js +36 -0
  91. package/dist/a2ui-react130.js +17 -0
  92. package/dist/a2ui-react131.js +8 -0
  93. package/dist/a2ui-react132.js +10 -0
  94. package/dist/a2ui-react133.js +9 -0
  95. package/dist/a2ui-react134.js +7 -0
  96. package/dist/a2ui-react135.js +9 -0
  97. package/dist/a2ui-react136.js +548 -0
  98. package/dist/a2ui-react137.js +49 -0
  99. package/dist/a2ui-react138.js +20 -0
  100. package/dist/a2ui-react139.js +21 -0
  101. package/dist/a2ui-react14.js +114 -0
  102. package/dist/a2ui-react140.js +11 -0
  103. package/dist/a2ui-react141.js +9 -0
  104. package/dist/a2ui-react142.js +10 -0
  105. package/dist/a2ui-react143.js +8 -0
  106. package/dist/a2ui-react144.js +9 -0
  107. package/dist/a2ui-react145.js +12 -0
  108. package/dist/a2ui-react146.js +8 -0
  109. package/dist/a2ui-react147.js +11 -0
  110. package/dist/a2ui-react148.js +15 -0
  111. package/dist/a2ui-react149.js +8 -0
  112. package/dist/a2ui-react15.js +18 -0
  113. package/dist/a2ui-react150.js +12 -0
  114. package/dist/a2ui-react151.js +10 -0
  115. package/dist/a2ui-react152.js +12 -0
  116. package/dist/a2ui-react153.js +16 -0
  117. package/dist/a2ui-react154.js +8 -0
  118. package/dist/a2ui-react155.js +8 -0
  119. package/dist/a2ui-react156.js +8 -0
  120. package/dist/a2ui-react157.js +7 -0
  121. package/dist/a2ui-react158.js +14 -0
  122. package/dist/a2ui-react159.js +13 -0
  123. package/dist/a2ui-react16.js +19 -0
  124. package/dist/a2ui-react160.js +13 -0
  125. package/dist/a2ui-react161.js +14 -0
  126. package/dist/a2ui-react162.js +14 -0
  127. package/dist/a2ui-react163.js +35 -0
  128. package/dist/a2ui-react164.js +67 -0
  129. package/dist/a2ui-react165.js +11 -0
  130. package/dist/a2ui-react166.js +11 -0
  131. package/dist/a2ui-react167.js +10 -0
  132. package/dist/a2ui-react168.js +13 -0
  133. package/dist/a2ui-react169.js +10 -0
  134. package/dist/a2ui-react17.js +18 -0
  135. package/dist/a2ui-react170.js +10 -0
  136. package/dist/a2ui-react171.js +9 -0
  137. package/dist/a2ui-react172.js +17 -0
  138. package/dist/a2ui-react173.js +21 -0
  139. package/dist/a2ui-react174.js +18 -0
  140. package/dist/a2ui-react175.js +35 -0
  141. package/dist/a2ui-react176.js +14 -0
  142. package/dist/a2ui-react177.js +7 -0
  143. package/dist/a2ui-react178.js +58 -0
  144. package/dist/a2ui-react179.js +25 -0
  145. package/dist/a2ui-react18.js +58 -0
  146. package/dist/a2ui-react180.js +43 -0
  147. package/dist/a2ui-react181.js +63 -0
  148. package/dist/a2ui-react182.js +34 -0
  149. package/dist/a2ui-react183.js +15 -0
  150. package/dist/a2ui-react184.js +67 -0
  151. package/dist/a2ui-react185.js +67 -0
  152. package/dist/a2ui-react186.js +69 -0
  153. package/dist/a2ui-react187.js +69 -0
  154. package/dist/a2ui-react188.js +42 -0
  155. package/dist/a2ui-react189.js +43 -0
  156. package/dist/a2ui-react19.js +58 -0
  157. package/dist/a2ui-react190.js +55 -0
  158. package/dist/a2ui-react191.js +45 -0
  159. package/dist/a2ui-react192.js +41 -0
  160. package/dist/a2ui-react193.js +72 -0
  161. package/dist/a2ui-react194.js +72 -0
  162. package/dist/a2ui-react195.js +97 -0
  163. package/dist/a2ui-react196.js +42 -0
  164. package/dist/a2ui-react197.js +42 -0
  165. package/dist/a2ui-react198.js +42 -0
  166. package/dist/a2ui-react199.js +27 -0
  167. package/dist/a2ui-react2.js +11 -0
  168. package/dist/a2ui-react20.js +51 -0
  169. package/dist/a2ui-react200.js +26 -0
  170. package/dist/a2ui-react201.js +26 -0
  171. package/dist/a2ui-react202.js +27 -0
  172. package/dist/a2ui-react203.js +26 -0
  173. package/dist/a2ui-react204.js +26 -0
  174. package/dist/a2ui-react205.js +16 -0
  175. package/dist/a2ui-react206.js +41 -0
  176. package/dist/a2ui-react207.js +41 -0
  177. package/dist/a2ui-react208.js +16 -0
  178. package/dist/a2ui-react209.js +16 -0
  179. package/dist/a2ui-react21.js +14 -0
  180. package/dist/a2ui-react210.js +32 -0
  181. package/dist/a2ui-react211.js +32 -0
  182. package/dist/a2ui-react212.js +6 -0
  183. package/dist/a2ui-react213.js +9 -0
  184. package/dist/a2ui-react214.js +50 -0
  185. package/dist/a2ui-react215.js +29 -0
  186. package/dist/a2ui-react216.js +68 -0
  187. package/dist/a2ui-react217.js +10 -0
  188. package/dist/a2ui-react218.js +127 -0
  189. package/dist/a2ui-react219.js +17 -0
  190. package/dist/a2ui-react22.js +29 -0
  191. package/dist/a2ui-react220.js +136 -0
  192. package/dist/a2ui-react221.js +13 -0
  193. package/dist/a2ui-react222.js +219 -0
  194. package/dist/a2ui-react223.js +15 -0
  195. package/dist/a2ui-react224.js +36 -0
  196. package/dist/a2ui-react225.js +49 -0
  197. package/dist/a2ui-react226.js +10 -0
  198. package/dist/a2ui-react227.js +52 -0
  199. package/dist/a2ui-react228.js +6 -0
  200. package/dist/a2ui-react229.js +8 -0
  201. package/dist/a2ui-react23.js +25 -0
  202. package/dist/a2ui-react230.js +30 -0
  203. package/dist/a2ui-react231.js +52 -0
  204. package/dist/a2ui-react232.js +11 -0
  205. package/dist/a2ui-react233.js +70 -0
  206. package/dist/a2ui-react234.js +49 -0
  207. package/dist/a2ui-react235.js +27 -0
  208. package/dist/a2ui-react236.js +49 -0
  209. package/dist/a2ui-react237.js +183 -0
  210. package/dist/a2ui-react238.js +70 -0
  211. package/dist/a2ui-react239.js +33 -0
  212. package/dist/a2ui-react24.js +29 -0
  213. package/dist/a2ui-react240.js +11 -0
  214. package/dist/a2ui-react241.js +155 -0
  215. package/dist/a2ui-react242.js +110 -0
  216. package/dist/a2ui-react243.js +22 -0
  217. package/dist/a2ui-react244.js +100 -0
  218. package/dist/a2ui-react245.js +49 -0
  219. package/dist/a2ui-react246.js +14 -0
  220. package/dist/a2ui-react247.js +208 -0
  221. package/dist/a2ui-react248.js +24 -0
  222. package/dist/a2ui-react249.js +402 -0
  223. package/dist/a2ui-react25.js +27 -0
  224. package/dist/a2ui-react250.js +49 -0
  225. package/dist/a2ui-react251.js +49 -0
  226. package/dist/a2ui-react252.js +54 -0
  227. package/dist/a2ui-react253.js +7 -0
  228. package/dist/a2ui-react254.js +7 -0
  229. package/dist/a2ui-react255.js +18 -0
  230. package/dist/a2ui-react256.js +8 -0
  231. package/dist/a2ui-react257.js +10 -0
  232. package/dist/a2ui-react258.js +19 -0
  233. package/dist/a2ui-react259.js +7 -0
  234. package/dist/a2ui-react26.js +44 -0
  235. package/dist/a2ui-react260.js +7 -0
  236. package/dist/a2ui-react261.js +8 -0
  237. package/dist/a2ui-react262.js +8 -0
  238. package/dist/a2ui-react263.js +7 -0
  239. package/dist/a2ui-react264.js +7 -0
  240. package/dist/a2ui-react265.js +9 -0
  241. package/dist/a2ui-react266.js +27 -0
  242. package/dist/a2ui-react267.js +9 -0
  243. package/dist/a2ui-react268.js +7 -0
  244. package/dist/a2ui-react269.js +9 -0
  245. package/dist/a2ui-react27.js +100 -0
  246. package/dist/a2ui-react270.js +8 -0
  247. package/dist/a2ui-react271.js +7 -0
  248. package/dist/a2ui-react272.js +8 -0
  249. package/dist/a2ui-react273.js +7 -0
  250. package/dist/a2ui-react274.js +11 -0
  251. package/dist/a2ui-react275.js +8 -0
  252. package/dist/a2ui-react276.js +7 -0
  253. package/dist/a2ui-react277.js +7 -0
  254. package/dist/a2ui-react278.js +9 -0
  255. package/dist/a2ui-react279.js +148 -0
  256. package/dist/a2ui-react28.js +82 -0
  257. package/dist/a2ui-react280.js +42 -0
  258. package/dist/a2ui-react281.js +7 -0
  259. package/dist/a2ui-react282.js +10 -0
  260. package/dist/a2ui-react283.js +16 -0
  261. package/dist/a2ui-react284.js +10 -0
  262. package/dist/a2ui-react285.js +34 -0
  263. package/dist/a2ui-react286.js +13 -0
  264. package/dist/a2ui-react287.js +13 -0
  265. package/dist/a2ui-react288.js +11 -0
  266. package/dist/a2ui-react289.js +16 -0
  267. package/dist/a2ui-react29.js +43 -0
  268. package/dist/a2ui-react290.js +104 -0
  269. package/dist/a2ui-react291.js +22 -0
  270. package/dist/a2ui-react292.js +56 -0
  271. package/dist/a2ui-react293.js +75 -0
  272. package/dist/a2ui-react294.js +12 -0
  273. package/dist/a2ui-react295.js +23 -0
  274. package/dist/a2ui-react296.js +19 -0
  275. package/dist/a2ui-react297.js +26 -0
  276. package/dist/a2ui-react298.js +9 -0
  277. package/dist/a2ui-react299.js +8 -0
  278. package/dist/a2ui-react3.js +40 -0
  279. package/dist/a2ui-react30.js +41 -0
  280. package/dist/a2ui-react300.js +26 -0
  281. package/dist/a2ui-react301.js +37 -0
  282. package/dist/a2ui-react302.js +18 -0
  283. package/dist/a2ui-react303.js +9 -0
  284. package/dist/a2ui-react304.js +7 -0
  285. package/dist/a2ui-react305.js +7 -0
  286. package/dist/a2ui-react306.js +7 -0
  287. package/dist/a2ui-react307.js +7 -0
  288. package/dist/a2ui-react308.js +6 -0
  289. package/dist/a2ui-react309.js +9 -0
  290. package/dist/a2ui-react31.js +86 -0
  291. package/dist/a2ui-react310.js +26 -0
  292. package/dist/a2ui-react311.js +10 -0
  293. package/dist/a2ui-react312.js +9 -0
  294. package/dist/a2ui-react313.js +8 -0
  295. package/dist/a2ui-react314.js +6 -0
  296. package/dist/a2ui-react315.js +6 -0
  297. package/dist/a2ui-react316.js +7 -0
  298. package/dist/a2ui-react317.js +6 -0
  299. package/dist/a2ui-react318.js +7 -0
  300. package/dist/a2ui-react319.js +6 -0
  301. package/dist/a2ui-react32.js +46 -0
  302. package/dist/a2ui-react320.js +6 -0
  303. package/dist/a2ui-react321.js +6 -0
  304. package/dist/a2ui-react322.js +9 -0
  305. package/dist/a2ui-react323.js +18 -0
  306. package/dist/a2ui-react324.js +31 -0
  307. package/dist/a2ui-react325.js +15 -0
  308. package/dist/a2ui-react326.js +27 -0
  309. package/dist/a2ui-react327.js +31 -0
  310. package/dist/a2ui-react328.js +7 -0
  311. package/dist/a2ui-react329.js +19 -0
  312. package/dist/a2ui-react33.js +44 -0
  313. package/dist/a2ui-react330.js +8 -0
  314. package/dist/a2ui-react331.js +8 -0
  315. package/dist/a2ui-react332.js +61 -0
  316. package/dist/a2ui-react333.js +69 -0
  317. package/dist/a2ui-react334.js +9 -0
  318. package/dist/a2ui-react335.js +7 -0
  319. package/dist/a2ui-react336.js +26 -0
  320. package/dist/a2ui-react337.js +19 -0
  321. package/dist/a2ui-react338.js +10 -0
  322. package/dist/a2ui-react339.js +13 -0
  323. package/dist/a2ui-react34.js +8 -0
  324. package/dist/a2ui-react340.js +13 -0
  325. package/dist/a2ui-react341.js +24 -0
  326. package/dist/a2ui-react342.js +13 -0
  327. package/dist/a2ui-react343.js +12 -0
  328. package/dist/a2ui-react344.js +12 -0
  329. package/dist/a2ui-react345.js +7 -0
  330. package/dist/a2ui-react346.js +8 -0
  331. package/dist/a2ui-react347.js +19 -0
  332. package/dist/a2ui-react348.js +12 -0
  333. package/dist/a2ui-react349.js +21 -0
  334. package/dist/a2ui-react35.js +16 -0
  335. package/dist/a2ui-react350.js +18 -0
  336. package/dist/a2ui-react351.js +15 -0
  337. package/dist/a2ui-react352.js +32 -0
  338. package/dist/a2ui-react353.js +15 -0
  339. package/dist/a2ui-react354.js +28 -0
  340. package/dist/a2ui-react355.js +8 -0
  341. package/dist/a2ui-react356.js +11 -0
  342. package/dist/a2ui-react357.js +22 -0
  343. package/dist/a2ui-react358.js +7 -0
  344. package/dist/a2ui-react359.js +5 -0
  345. package/dist/a2ui-react36.js +23 -0
  346. package/dist/a2ui-react360.js +26 -0
  347. package/dist/a2ui-react361.js +115 -0
  348. package/dist/a2ui-react362.js +18 -0
  349. package/dist/a2ui-react363.js +527 -0
  350. package/dist/a2ui-react364.js +130 -0
  351. package/dist/a2ui-react365.js +136 -0
  352. package/dist/a2ui-react366.js +7 -0
  353. package/dist/a2ui-react367.js +15 -0
  354. package/dist/a2ui-react368.js +67 -0
  355. package/dist/a2ui-react369.js +71 -0
  356. package/dist/a2ui-react37.js +15 -0
  357. package/dist/a2ui-react370.js +11 -0
  358. package/dist/a2ui-react371.js +16 -0
  359. package/dist/a2ui-react372.js +68 -0
  360. package/dist/a2ui-react373.js +6 -0
  361. package/dist/a2ui-react374.js +25 -0
  362. package/dist/a2ui-react375.js +15 -0
  363. package/dist/a2ui-react376.js +30 -0
  364. package/dist/a2ui-react377.js +7 -0
  365. package/dist/a2ui-react378.js +25 -0
  366. package/dist/a2ui-react38.js +10 -0
  367. package/dist/a2ui-react39.js +10 -0
  368. package/dist/a2ui-react4.js +76 -0
  369. package/dist/a2ui-react40.js +14 -0
  370. package/dist/a2ui-react41.js +14 -0
  371. package/dist/a2ui-react42.js +16 -0
  372. package/dist/a2ui-react43.js +12 -0
  373. package/dist/a2ui-react44.js +15 -0
  374. package/dist/a2ui-react45.js +15 -0
  375. package/dist/a2ui-react46.js +9 -0
  376. package/dist/a2ui-react47.js +11 -0
  377. package/dist/a2ui-react48.js +16 -0
  378. package/dist/a2ui-react49.js +10 -0
  379. package/dist/a2ui-react5.js +8 -0
  380. package/dist/a2ui-react50.js +14 -0
  381. package/dist/a2ui-react51.js +9 -0
  382. package/dist/a2ui-react52.js +9 -0
  383. package/dist/a2ui-react53.js +15 -0
  384. package/dist/a2ui-react54.js +17 -0
  385. package/dist/a2ui-react55.js +10 -0
  386. package/dist/a2ui-react56.js +10 -0
  387. package/dist/a2ui-react57.js +10 -0
  388. package/dist/a2ui-react58.js +9 -0
  389. package/dist/a2ui-react59.js +9 -0
  390. package/dist/a2ui-react6.js +28 -0
  391. package/dist/a2ui-react60.js +9 -0
  392. package/dist/a2ui-react61.js +15 -0
  393. package/dist/a2ui-react62.js +10 -0
  394. package/dist/a2ui-react63.js +15 -0
  395. package/dist/a2ui-react64.js +10 -0
  396. package/dist/a2ui-react65.js +14 -0
  397. package/dist/a2ui-react66.js +22 -0
  398. package/dist/a2ui-react67.js +14 -0
  399. package/dist/a2ui-react68.js +10 -0
  400. package/dist/a2ui-react69.js +17 -0
  401. package/dist/a2ui-react7.js +10 -0
  402. package/dist/a2ui-react70.js +15 -0
  403. package/dist/a2ui-react71.js +10 -0
  404. package/dist/a2ui-react72.js +12 -0
  405. package/dist/a2ui-react73.js +9 -0
  406. package/dist/a2ui-react74.js +6 -0
  407. package/dist/a2ui-react75.js +15 -0
  408. package/dist/a2ui-react76.js +11 -0
  409. package/dist/a2ui-react77.js +14 -0
  410. package/dist/a2ui-react78.js +9 -0
  411. package/dist/a2ui-react79.js +9 -0
  412. package/dist/a2ui-react8.js +21 -0
  413. package/dist/a2ui-react80.js +9 -0
  414. package/dist/a2ui-react81.js +10 -0
  415. package/dist/a2ui-react82.js +26 -0
  416. package/dist/a2ui-react83.js +29 -0
  417. package/dist/a2ui-react84.js +67 -0
  418. package/dist/a2ui-react85.js +77 -0
  419. package/dist/a2ui-react86.js +53 -0
  420. package/dist/a2ui-react87.js +31 -0
  421. package/dist/a2ui-react88.js +22 -0
  422. package/dist/a2ui-react89.js +21 -0
  423. package/dist/a2ui-react9.js +88 -0
  424. package/{src/components/ui/textarea.tsx → dist/a2ui-react90.js} +17 -17
  425. package/dist/a2ui-react91.js +176 -0
  426. package/dist/a2ui-react92.js +38 -0
  427. package/dist/a2ui-react93.js +88 -0
  428. package/dist/a2ui-react94.js +9 -0
  429. package/dist/a2ui-react95.js +58 -0
  430. package/dist/a2ui-react96.js +146 -0
  431. package/dist/a2ui-react97.js +63 -0
  432. package/dist/a2ui-react98.js +17 -0
  433. package/dist/a2ui-react99.js +2765 -0
  434. package/dist/components/ui/button.d.ts +10 -0
  435. package/dist/components/ui/calendar.d.ts +8 -0
  436. package/dist/components/ui/card.d.ts +9 -0
  437. package/dist/components/ui/checkbox.d.ts +4 -0
  438. package/dist/components/ui/dialog.d.ts +15 -0
  439. package/dist/components/ui/input.d.ts +3 -0
  440. package/dist/components/ui/label.d.ts +4 -0
  441. package/dist/components/ui/native-select.d.ts +7 -0
  442. package/dist/components/ui/popover.d.ts +7 -0
  443. package/dist/components/ui/select.d.ts +15 -0
  444. package/dist/components/ui/separator.d.ts +4 -0
  445. package/dist/components/ui/slider.d.ts +4 -0
  446. package/dist/components/ui/tabs.d.ts +7 -0
  447. package/dist/components/ui/textarea.d.ts +3 -0
  448. package/dist/index.d.ts +1 -0
  449. package/dist/lib/utils.d.ts +2 -0
  450. package/package.json +4 -1
  451. package/.claude/commands/speckit.analyze.md +0 -184
  452. package/.claude/commands/speckit.checklist.md +0 -294
  453. package/.claude/commands/speckit.clarify.md +0 -181
  454. package/.claude/commands/speckit.constitution.md +0 -82
  455. package/.claude/commands/speckit.implement.md +0 -135
  456. package/.claude/commands/speckit.plan.md +0 -89
  457. package/.claude/commands/speckit.specify.md +0 -256
  458. package/.claude/commands/speckit.tasks.md +0 -137
  459. package/.claude/commands/speckit.taskstoissues.md +0 -30
  460. package/.github/workflows/deploy.yml +0 -69
  461. package/.husky/pre-commit +0 -1
  462. package/.prettierignore +0 -4
  463. package/.prettierrc +0 -7
  464. package/.specify/memory/constitution.md +0 -73
  465. package/.specify/scripts/bash/check-prerequisites.sh +0 -166
  466. package/.specify/scripts/bash/common.sh +0 -156
  467. package/.specify/scripts/bash/create-new-feature.sh +0 -297
  468. package/.specify/scripts/bash/setup-plan.sh +0 -61
  469. package/.specify/scripts/bash/update-agent-context.sh +0 -799
  470. package/.specify/templates/agent-file-template.md +0 -28
  471. package/.specify/templates/checklist-template.md +0 -40
  472. package/.specify/templates/plan-template.md +0 -105
  473. package/.specify/templates/spec-template.md +0 -115
  474. package/.specify/templates/tasks-template.md +0 -250
  475. package/CLAUDE.md +0 -109
  476. package/CONTRIBUTING.md +0 -97
  477. package/components.json +0 -21
  478. package/eslint.config.js +0 -25
  479. package/netlify.toml +0 -50
  480. package/playground/README.md +0 -75
  481. package/playground/index.html +0 -22
  482. package/playground/package.json +0 -32
  483. package/playground/public/favicon.svg +0 -8
  484. package/playground/src/App.css +0 -256
  485. package/playground/src/App.tsx +0 -115
  486. package/playground/src/assets/react.svg +0 -1
  487. package/playground/src/components/ErrorDisplay.tsx +0 -13
  488. package/playground/src/components/ExampleSelector.tsx +0 -64
  489. package/playground/src/components/Header.tsx +0 -48
  490. package/playground/src/components/JsonEditor.tsx +0 -32
  491. package/playground/src/components/Preview.tsx +0 -78
  492. package/playground/src/components/ThemeToggle.tsx +0 -19
  493. package/playground/src/data/examples.ts +0 -1571
  494. package/playground/src/hooks/useTheme.ts +0 -55
  495. package/playground/src/index.css +0 -220
  496. package/playground/src/main.tsx +0 -10
  497. package/playground/tsconfig.app.json +0 -34
  498. package/playground/tsconfig.json +0 -13
  499. package/playground/tsconfig.node.json +0 -26
  500. package/playground/vite.config.ts +0 -31
  501. package/specs/001-a2ui-renderer/checklists/requirements.md +0 -41
  502. package/specs/001-a2ui-renderer/data-model.md +0 -140
  503. package/specs/001-a2ui-renderer/plan.md +0 -123
  504. package/specs/001-a2ui-renderer/quickstart.md +0 -145
  505. package/specs/001-a2ui-renderer/research.md +0 -144
  506. package/specs/001-a2ui-renderer/spec.md +0 -165
  507. package/specs/001-a2ui-renderer/tasks.md +0 -310
  508. package/specs/002-playground/checklists/requirements.md +0 -37
  509. package/specs/002-playground/contracts/components.md +0 -120
  510. package/specs/002-playground/data-model.md +0 -149
  511. package/specs/002-playground/plan.md +0 -73
  512. package/specs/002-playground/quickstart.md +0 -158
  513. package/specs/002-playground/research.md +0 -117
  514. package/specs/002-playground/spec.md +0 -109
  515. package/specs/002-playground/tasks.md +0 -224
  516. package/src/0.8/A2UIRenderer.test.tsx +0 -793
  517. package/src/0.8/A2UIRenderer.tsx +0 -142
  518. package/src/0.8/components/ComponentRenderer.test.tsx +0 -373
  519. package/src/0.8/components/ComponentRenderer.tsx +0 -163
  520. package/src/0.8/components/UnknownComponent.tsx +0 -49
  521. package/src/0.8/components/display/AudioPlayerComponent.tsx +0 -37
  522. package/src/0.8/components/display/DividerComponent.tsx +0 -23
  523. package/src/0.8/components/display/IconComponent.tsx +0 -137
  524. package/src/0.8/components/display/ImageComponent.tsx +0 -57
  525. package/src/0.8/components/display/TextComponent.tsx +0 -56
  526. package/src/0.8/components/display/VideoComponent.tsx +0 -31
  527. package/src/0.8/components/display/display.test.tsx +0 -660
  528. package/src/0.8/components/display/index.ts +0 -10
  529. package/src/0.8/components/index.ts +0 -14
  530. package/src/0.8/components/interactive/ButtonComponent.tsx +0 -44
  531. package/src/0.8/components/interactive/CheckBoxComponent.tsx +0 -45
  532. package/src/0.8/components/interactive/DateTimeInputComponent.tsx +0 -176
  533. package/src/0.8/components/interactive/MultipleChoiceComponent.tsx +0 -157
  534. package/src/0.8/components/interactive/SliderComponent.tsx +0 -53
  535. package/src/0.8/components/interactive/TextFieldComponent.tsx +0 -65
  536. package/src/0.8/components/interactive/index.ts +0 -10
  537. package/src/0.8/components/interactive/interactive.test.tsx +0 -618
  538. package/src/0.8/components/layout/CardComponent.tsx +0 -30
  539. package/src/0.8/components/layout/ColumnComponent.tsx +0 -93
  540. package/src/0.8/components/layout/ListComponent.tsx +0 -81
  541. package/src/0.8/components/layout/ModalComponent.tsx +0 -41
  542. package/src/0.8/components/layout/RowComponent.tsx +0 -94
  543. package/src/0.8/components/layout/TabsComponent.tsx +0 -59
  544. package/src/0.8/components/layout/index.ts +0 -10
  545. package/src/0.8/components/layout/layout.test.tsx +0 -558
  546. package/src/0.8/contexts/A2UIProvider.test.tsx +0 -226
  547. package/src/0.8/contexts/A2UIProvider.tsx +0 -54
  548. package/src/0.8/contexts/ActionContext.test.tsx +0 -242
  549. package/src/0.8/contexts/ActionContext.tsx +0 -105
  550. package/src/0.8/contexts/ComponentsMapContext.tsx +0 -125
  551. package/src/0.8/contexts/DataModelContext.test.tsx +0 -335
  552. package/src/0.8/contexts/DataModelContext.tsx +0 -184
  553. package/src/0.8/contexts/SurfaceContext.test.tsx +0 -339
  554. package/src/0.8/contexts/SurfaceContext.tsx +0 -197
  555. package/src/0.8/hooks/useA2UIMessageHandler.test.tsx +0 -399
  556. package/src/0.8/hooks/useA2UIMessageHandler.ts +0 -123
  557. package/src/0.8/hooks/useComponent.test.tsx +0 -148
  558. package/src/0.8/hooks/useDataBinding.test.tsx +0 -334
  559. package/src/0.8/hooks/useDataBinding.ts +0 -99
  560. package/src/0.8/hooks/useDispatchAction.test.tsx +0 -83
  561. package/src/0.8/hooks/useSurface.test.tsx +0 -114
  562. package/src/0.8/schemas/client_to_server.json +0 -50
  563. package/src/0.8/schemas/server_to_client.json +0 -148
  564. package/src/0.8/schemas/standard_catalog_definition.json +0 -661
  565. package/src/0.8/utils/dataBinding.test.ts +0 -443
  566. package/src/0.8/utils/dataBinding.ts +0 -212
  567. package/src/0.8/utils/pathUtils.test.ts +0 -353
  568. package/src/0.8/utils/pathUtils.ts +0 -200
  569. package/src/components/ui/button.tsx +0 -62
  570. package/src/components/ui/calendar.tsx +0 -220
  571. package/src/components/ui/card.tsx +0 -92
  572. package/src/components/ui/checkbox.tsx +0 -30
  573. package/src/components/ui/dialog.tsx +0 -141
  574. package/src/components/ui/input.tsx +0 -21
  575. package/src/components/ui/label.tsx +0 -22
  576. package/src/components/ui/native-select.tsx +0 -53
  577. package/src/components/ui/popover.tsx +0 -46
  578. package/src/components/ui/select.tsx +0 -188
  579. package/src/components/ui/separator.tsx +0 -26
  580. package/src/components/ui/slider.tsx +0 -61
  581. package/src/components/ui/tabs.tsx +0 -64
  582. package/src/index.ts +0 -1
  583. package/src/lib/utils.ts +0 -6
  584. package/tsconfig.json +0 -28
  585. package/vite.config.ts +0 -29
  586. package/vitest.config.ts +0 -22
  587. package/vitest.setup.ts +0 -8
  588. package/website/README.md +0 -4
  589. package/website/assets/favicon.svg +0 -8
  590. package/website/content/.gitkeep +0 -0
  591. package/website/content/api.md +0 -108
  592. package/website/content/index.md +0 -126
  593. package/website/global.d.ts +0 -9
  594. package/website/package.json +0 -17
  595. package/website/plain.config.js +0 -28
  596. package/website/serve.json +0 -8
  597. package/website/src/client/color-mode-switch.css +0 -47
  598. package/website/src/client/index.js +0 -61
  599. package/website/src/client/moon.svg +0 -1
  600. package/website/src/client/sun.svg +0 -1
  601. package/website/src/components/Footer.jsx +0 -9
  602. package/website/src/components/Header.jsx +0 -50
  603. package/website/src/components/Page.jsx +0 -28
  604. package/website/src/global.css +0 -423
@@ -1,334 +0,0 @@
1
- /**
2
- * useDataBinding Tests
3
- *
4
- * Tests for the useDataBinding, useDataModel, and useFormBinding hooks.
5
- */
6
-
7
- import { describe, it, expect, vi } from 'vitest'
8
- import { renderHook, act } from '@testing-library/react'
9
- import { useDataBinding, useDataModel, useFormBinding } from './useDataBinding'
10
- import {
11
- DataModelProvider,
12
- useDataModelContext,
13
- } from '../contexts/DataModelContext'
14
- import type { ReactNode } from 'react'
15
- import type { ValueSource } from '../types'
16
-
17
- describe('useDataBinding', () => {
18
- // Helper to render hook with provider
19
- const wrapper = ({ children }: { children: ReactNode }) => (
20
- <DataModelProvider>{children}</DataModelProvider>
21
- )
22
-
23
- describe('useDataBinding', () => {
24
- it('should return default value when source is undefined', () => {
25
- const { result } = renderHook(
26
- () => useDataBinding<string>('surface-1', undefined, 'default'),
27
- { wrapper }
28
- )
29
- expect(result.current).toBe('default')
30
- })
31
-
32
- it('should resolve literalString', () => {
33
- const source: ValueSource = { literalString: 'Hello' }
34
- const { result } = renderHook(
35
- () => useDataBinding<string>('surface-1', source),
36
- { wrapper }
37
- )
38
- expect(result.current).toBe('Hello')
39
- })
40
-
41
- it('should resolve literalNumber', () => {
42
- const source: ValueSource = { literalNumber: 42 }
43
- const { result } = renderHook(
44
- () => useDataBinding<number>('surface-1', source),
45
- { wrapper }
46
- )
47
- expect(result.current).toBe(42)
48
- })
49
-
50
- it('should resolve literalBoolean', () => {
51
- const source: ValueSource = { literalBoolean: true }
52
- const { result } = renderHook(
53
- () => useDataBinding<boolean>('surface-1', source),
54
- { wrapper }
55
- )
56
- expect(result.current).toBe(true)
57
- })
58
-
59
- it('should resolve literalArray', () => {
60
- const source: ValueSource = { literalArray: ['a', 'b', 'c'] }
61
- const { result } = renderHook(
62
- () => useDataBinding<string[]>('surface-1', source),
63
- { wrapper }
64
- )
65
- expect(result.current).toEqual(['a', 'b', 'c'])
66
- })
67
-
68
- it('should resolve path reference from data model', () => {
69
- const { result } = renderHook(
70
- () => {
71
- const value = useDataBinding<string>(
72
- 'surface-1',
73
- { path: '/user/name' },
74
- ''
75
- )
76
- const { setDataValue } = useDataModelContext()
77
- return { value, setDataValue }
78
- },
79
- { wrapper }
80
- )
81
-
82
- // Initially empty
83
- expect(result.current.value).toBe('')
84
-
85
- // Set data
86
- act(() => {
87
- result.current.setDataValue('surface-1', '/user/name', 'John')
88
- })
89
-
90
- expect(result.current.value).toBe('John')
91
- })
92
-
93
- it('should return default when path not found', () => {
94
- const { result } = renderHook(
95
- () =>
96
- useDataBinding<string>(
97
- 'surface-1',
98
- { path: '/nonexistent' },
99
- 'default'
100
- ),
101
- { wrapper }
102
- )
103
- expect(result.current).toBe('default')
104
- })
105
-
106
- it('should update when data model changes', () => {
107
- const { result } = renderHook(
108
- () => {
109
- const value = useDataBinding<number>(
110
- 'surface-1',
111
- { path: '/count' },
112
- 0
113
- )
114
- const { setDataValue } = useDataModelContext()
115
- return { value, setDataValue }
116
- },
117
- { wrapper }
118
- )
119
-
120
- expect(result.current.value).toBe(0)
121
-
122
- act(() => {
123
- result.current.setDataValue('surface-1', '/count', 10)
124
- })
125
- expect(result.current.value).toBe(10)
126
-
127
- act(() => {
128
- result.current.setDataValue('surface-1', '/count', 20)
129
- })
130
- expect(result.current.value).toBe(20)
131
- })
132
-
133
- it('should throw error when used outside provider', () => {
134
- const consoleError = vi
135
- .spyOn(console, 'error')
136
- .mockImplementation(() => {})
137
-
138
- expect(() => {
139
- renderHook(() => useDataBinding('test', undefined))
140
- }).toThrow('useDataModelContext must be used within a DataModelProvider')
141
-
142
- consoleError.mockRestore()
143
- })
144
- })
145
-
146
- describe('useDataModel', () => {
147
- it('should return empty object for non-existent surface', () => {
148
- const { result } = renderHook(() => useDataModel('non-existent'), {
149
- wrapper,
150
- })
151
- expect(result.current).toEqual({})
152
- })
153
-
154
- it('should return data model for surface', () => {
155
- const { result } = renderHook(
156
- () => {
157
- const dataModel = useDataModel('surface-1')
158
- const { setDataValue } = useDataModelContext()
159
- return { dataModel, setDataValue }
160
- },
161
- { wrapper }
162
- )
163
-
164
- act(() => {
165
- result.current.setDataValue('surface-1', '/name', 'John')
166
- result.current.setDataValue('surface-1', '/age', 30)
167
- })
168
-
169
- expect(result.current.dataModel).toEqual({ name: 'John', age: 30 })
170
- })
171
-
172
- it('should update when data model changes', () => {
173
- const { result } = renderHook(
174
- () => {
175
- const dataModel = useDataModel('surface-1')
176
- const { setDataValue } = useDataModelContext()
177
- return { dataModel, setDataValue }
178
- },
179
- { wrapper }
180
- )
181
-
182
- act(() => {
183
- result.current.setDataValue('surface-1', '/name', 'John')
184
- })
185
-
186
- expect(result.current.dataModel).toEqual({ name: 'John' })
187
-
188
- act(() => {
189
- result.current.setDataValue('surface-1', '/name', 'Jane')
190
- })
191
-
192
- expect(result.current.dataModel).toEqual({ name: 'Jane' })
193
- })
194
- })
195
-
196
- describe('useFormBinding', () => {
197
- it('should return value and setter', () => {
198
- const { result } = renderHook(
199
- () => useFormBinding<string>('surface-1', { path: '/name' }, ''),
200
- { wrapper }
201
- )
202
-
203
- expect(result.current).toHaveLength(2)
204
- expect(typeof result.current[0]).toBe('string')
205
- expect(typeof result.current[1]).toBe('function')
206
- })
207
-
208
- it('should return default value initially', () => {
209
- const { result } = renderHook(
210
- () => useFormBinding<string>('surface-1', { path: '/name' }, 'default'),
211
- { wrapper }
212
- )
213
-
214
- expect(result.current[0]).toBe('default')
215
- })
216
-
217
- it('should update data model when setValue is called', () => {
218
- const { result } = renderHook(
219
- () => {
220
- const [value, setValue] = useFormBinding<string>(
221
- 'surface-1',
222
- { path: '/name' },
223
- ''
224
- )
225
- const { getDataValue } = useDataModelContext()
226
- return { value, setValue, getDataValue }
227
- },
228
- { wrapper }
229
- )
230
-
231
- act(() => {
232
- result.current.setValue('John')
233
- })
234
-
235
- expect(result.current.value).toBe('John')
236
- expect(result.current.getDataValue('surface-1', '/name')).toBe('John')
237
- })
238
-
239
- it('should not update when source is literal', () => {
240
- const { result } = renderHook(
241
- () => {
242
- const [value, setValue] = useFormBinding<string>(
243
- 'surface-1',
244
- { literalString: 'constant' },
245
- ''
246
- )
247
- const { getDataModel } = useDataModelContext()
248
- return { value, setValue, getDataModel }
249
- },
250
- { wrapper }
251
- )
252
-
253
- expect(result.current.value).toBe('constant')
254
-
255
- // Try to set value - should not throw but also not update
256
- act(() => {
257
- result.current.setValue('new value')
258
- })
259
-
260
- // Value should still be the literal
261
- expect(result.current.value).toBe('constant')
262
- })
263
-
264
- it('should not update when source is undefined', () => {
265
- const { result } = renderHook(
266
- () => {
267
- const [value, setValue] = useFormBinding<string>(
268
- 'surface-1',
269
- undefined,
270
- 'default'
271
- )
272
- return { value, setValue }
273
- },
274
- { wrapper }
275
- )
276
-
277
- expect(result.current.value).toBe('default')
278
-
279
- // Try to set value - should not throw
280
- act(() => {
281
- result.current.setValue('new value')
282
- })
283
-
284
- // Value should still be default
285
- expect(result.current.value).toBe('default')
286
- })
287
-
288
- it('should work with different value types', () => {
289
- // Number
290
- const { result: numberResult } = renderHook(
291
- () => useFormBinding<number>('surface-1', { path: '/count' }, 0),
292
- { wrapper }
293
- )
294
-
295
- act(() => {
296
- numberResult.current[1](42)
297
- })
298
- expect(numberResult.current[0]).toBe(42)
299
-
300
- // Boolean
301
- const { result: boolResult } = renderHook(
302
- () => useFormBinding<boolean>('surface-2', { path: '/active' }, false),
303
- { wrapper }
304
- )
305
-
306
- act(() => {
307
- boolResult.current[1](true)
308
- })
309
- expect(boolResult.current[0]).toBe(true)
310
- })
311
-
312
- it('should reflect external data model changes', () => {
313
- const { result } = renderHook(
314
- () => {
315
- const [value, setValue] = useFormBinding<string>(
316
- 'surface-1',
317
- { path: '/name' },
318
- ''
319
- )
320
- const { setDataValue } = useDataModelContext()
321
- return { value, setValue, setDataValue }
322
- },
323
- { wrapper }
324
- )
325
-
326
- // Set via external setDataValue
327
- act(() => {
328
- result.current.setDataValue('surface-1', '/name', 'External')
329
- })
330
-
331
- expect(result.current.value).toBe('External')
332
- })
333
- })
334
- })
@@ -1,99 +0,0 @@
1
- /**
2
- * useDataBinding - Hook for resolving data bindings in components.
3
- */
4
-
5
- import { useMemo } from 'react'
6
- import type { ValueSource, DataModel } from '../types'
7
- import { useDataModelContext } from '../contexts/DataModelContext'
8
- import { resolveValue } from '../utils/dataBinding'
9
-
10
- /**
11
- * Resolves a ValueSource to its actual value.
12
- *
13
- * @param surfaceId - The surface ID for data model lookup
14
- * @param source - The value source (literal or path reference)
15
- * @param defaultValue - Default value if source is undefined or path not found
16
- * @returns The resolved value
17
- *
18
- * @example
19
- * ```tsx
20
- * function TextComponent({ surfaceId, text }) {
21
- * const textValue = useDataBinding<string>(surfaceId, text, '');
22
- * return <span>{textValue}</span>;
23
- * }
24
- * ```
25
- */
26
- export function useDataBinding<T = unknown>(
27
- surfaceId: string,
28
- source: ValueSource | undefined,
29
- defaultValue?: T
30
- ): T {
31
- const { getDataModel } = useDataModelContext()
32
-
33
- return useMemo(() => {
34
- const dataModel = getDataModel(surfaceId)
35
- return resolveValue<T>(source, dataModel, defaultValue)
36
- }, [getDataModel, surfaceId, source, defaultValue])
37
- }
38
-
39
- /**
40
- * Gets the full data model for a surface.
41
- * Useful for components that need access to multiple values.
42
- *
43
- * @param surfaceId - The surface ID
44
- * @returns The data model for this surface
45
- */
46
- export function useDataModel(surfaceId: string): DataModel {
47
- const { getDataModel } = useDataModelContext()
48
-
49
- return useMemo(() => {
50
- return getDataModel(surfaceId)
51
- }, [getDataModel, surfaceId])
52
- }
53
-
54
- /**
55
- * Hook for two-way data binding in form components.
56
- * Returns both the current value and a setter function.
57
- *
58
- * @param surfaceId - The surface ID
59
- * @param source - The value source (must be a path reference for setting)
60
- * @param defaultValue - Default value if not found
61
- * @returns Tuple of [value, setValue]
62
- *
63
- * @example
64
- * ```tsx
65
- * function TextFieldComponent({ surfaceId, text }) {
66
- * const [value, setValue] = useFormBinding<string>(surfaceId, text, '');
67
- *
68
- * return (
69
- * <input
70
- * value={value}
71
- * onChange={(e) => setValue(e.target.value)}
72
- * />
73
- * );
74
- * }
75
- * ```
76
- */
77
- export function useFormBinding<T = unknown>(
78
- surfaceId: string,
79
- source: ValueSource | undefined,
80
- defaultValue?: T
81
- ): [T, (value: T) => void] {
82
- const { getDataModel, setDataValue } = useDataModelContext()
83
-
84
- const value = useMemo(() => {
85
- const dataModel = getDataModel(surfaceId)
86
- return resolveValue<T>(source, dataModel, defaultValue)
87
- }, [getDataModel, surfaceId, source, defaultValue])
88
-
89
- const setValue = useMemo(() => {
90
- return (newValue: T) => {
91
- // Only path references can be updated
92
- if (source && 'path' in source) {
93
- setDataValue(surfaceId, source.path, newValue)
94
- }
95
- }
96
- }, [setDataValue, surfaceId, source])
97
-
98
- return [value, setValue]
99
- }
@@ -1,83 +0,0 @@
1
- /**
2
- * useDispatchAction Tests
3
- *
4
- * Tests for the useDispatchAction hooks.
5
- */
6
-
7
- import { describe, it, expect, vi } from 'vitest'
8
- import { renderHook, act } from '@testing-library/react'
9
- import { useDispatchAction } from './useDispatchAction'
10
- import { ActionProvider } from '../contexts/ActionContext'
11
- import { DataModelProvider } from '../contexts/DataModelContext'
12
- import type { ReactNode } from 'react'
13
- import type { Action, ActionPayload } from '../types'
14
-
15
- describe('useDispatchAction', () => {
16
- // Helper to create wrapper with providers
17
- const createWrapper =
18
- (onAction?: (action: ActionPayload) => void) =>
19
- ({ children }: { children: ReactNode }) => (
20
- <DataModelProvider>
21
- <ActionProvider onAction={onAction}>{children}</ActionProvider>
22
- </DataModelProvider>
23
- )
24
-
25
- it('should return dispatch function', () => {
26
- const wrapper = createWrapper()
27
- const { result } = renderHook(() => useDispatchAction(), { wrapper })
28
- expect(typeof result.current).toBe('function')
29
- })
30
-
31
- it('should dispatch action with correct payload', () => {
32
- const onAction = vi.fn()
33
- const wrapper = createWrapper(onAction)
34
-
35
- const { result } = renderHook(() => useDispatchAction(), { wrapper })
36
-
37
- const action: Action = {
38
- name: 'submit',
39
- context: [{ key: 'type', value: { literalString: 'form' } }],
40
- }
41
-
42
- act(() => {
43
- result.current('surface-1', 'button-1', action)
44
- })
45
-
46
- expect(onAction).toHaveBeenCalledWith({
47
- surfaceId: 'surface-1',
48
- name: 'submit',
49
- context: { type: 'form' },
50
- sourceComponentId: 'button-1',
51
- })
52
- })
53
-
54
- it('should dispatch action without context', () => {
55
- const onAction = vi.fn()
56
- const wrapper = createWrapper(onAction)
57
-
58
- const { result } = renderHook(() => useDispatchAction(), { wrapper })
59
-
60
- const action: Action = { name: 'cancel' }
61
-
62
- act(() => {
63
- result.current('surface-1', 'button-1', action)
64
- })
65
-
66
- expect(onAction).toHaveBeenCalledWith({
67
- surfaceId: 'surface-1',
68
- name: 'cancel',
69
- context: {},
70
- sourceComponentId: 'button-1',
71
- })
72
- })
73
-
74
- it('should throw error when used outside provider', () => {
75
- const consoleError = vi.spyOn(console, 'error').mockImplementation(() => {})
76
-
77
- expect(() => {
78
- renderHook(() => useDispatchAction())
79
- }).toThrow('useActionContext must be used within an ActionProvider')
80
-
81
- consoleError.mockRestore()
82
- })
83
- })
@@ -1,114 +0,0 @@
1
- /**
2
- * useSurface Tests
3
- *
4
- * Tests for the useSurface hook.
5
- */
6
-
7
- import { describe, it, expect, vi } from 'vitest'
8
- import { renderHook, act } from '@testing-library/react'
9
- import { useSurface } from './useSurface'
10
- import { SurfaceProvider, useSurfaceContext } from '../contexts/SurfaceContext'
11
- import type { ReactNode } from 'react'
12
-
13
- describe('useSurface', () => {
14
- // Helper to render hook with provider
15
- const wrapper = ({ children }: { children: ReactNode }) => (
16
- <SurfaceProvider>{children}</SurfaceProvider>
17
- )
18
-
19
- it('should return undefined for non-existent surface', () => {
20
- const { result } = renderHook(() => useSurface('non-existent'), { wrapper })
21
- expect(result.current).toBeUndefined()
22
- })
23
-
24
- it('should return surface when it exists', () => {
25
- // Custom wrapper that initializes a surface
26
- const TestWrapper = ({ children }: { children: ReactNode }) => (
27
- <SurfaceProvider>
28
- <SurfaceInitializer>{children}</SurfaceInitializer>
29
- </SurfaceProvider>
30
- )
31
-
32
- function SurfaceInitializer({ children }: { children: ReactNode }) {
33
- const { initSurface } = useSurfaceContext()
34
- React.useEffect(() => {
35
- initSurface('test-surface', 'root-component', { font: 'Arial' })
36
- }, [initSurface])
37
- return <>{children}</>
38
- }
39
-
40
- const { result } = renderHook(() => useSurface('test-surface'), {
41
- wrapper: TestWrapper,
42
- })
43
-
44
- expect(result.current).toBeDefined()
45
- expect(result.current?.surfaceId).toBe('test-surface')
46
- expect(result.current?.root).toBe('root-component')
47
- expect(result.current?.styles?.font).toBe('Arial')
48
- })
49
-
50
- it('should update when surface changes', () => {
51
- const { result } = renderHook(
52
- () => {
53
- const surface = useSurface('test-surface')
54
- const { initSurface, updateSurface } = useSurfaceContext()
55
- return { surface, initSurface, updateSurface }
56
- },
57
- { wrapper }
58
- )
59
-
60
- // Initially undefined
61
- expect(result.current.surface).toBeUndefined()
62
-
63
- // Initialize surface
64
- act(() => {
65
- result.current.initSurface('test-surface', 'root')
66
- })
67
-
68
- expect(result.current.surface).toBeDefined()
69
- expect(result.current.surface?.root).toBe('root')
70
-
71
- // Update surface with components
72
- act(() => {
73
- result.current.updateSurface('test-surface', [
74
- { id: 'comp-1', component: { Text: {} } },
75
- ])
76
- })
77
-
78
- expect(result.current.surface?.components.size).toBe(1)
79
- })
80
-
81
- it('should memoize result based on surfaceId', () => {
82
- const { result, rerender } = renderHook(
83
- ({ surfaceId }) => {
84
- const surface = useSurface(surfaceId)
85
- const { initSurface } = useSurfaceContext()
86
- return { surface, initSurface }
87
- },
88
- { wrapper, initialProps: { surfaceId: 'surface-1' } }
89
- )
90
-
91
- act(() => {
92
- result.current.initSurface('surface-1', 'root-1')
93
- result.current.initSurface('surface-2', 'root-2')
94
- })
95
-
96
- expect(result.current.surface?.root).toBe('root-1')
97
-
98
- // Change surfaceId
99
- rerender({ surfaceId: 'surface-2' })
100
- expect(result.current.surface?.root).toBe('root-2')
101
- })
102
-
103
- it('should throw error when used outside provider', () => {
104
- const consoleError = vi.spyOn(console, 'error').mockImplementation(() => {})
105
-
106
- expect(() => {
107
- renderHook(() => useSurface('test'))
108
- }).toThrow('useSurfaceContext must be used within a SurfaceProvider')
109
-
110
- consoleError.mockRestore()
111
- })
112
- })
113
-
114
- import React from 'react'
@@ -1,50 +0,0 @@
1
- {
2
- "title": "A2UI (Agent to UI) Client-to-Server Event Schema",
3
- "description": "Describes a JSON payload for a client-to-server event message.",
4
- "type": "object",
5
- "minProperties": 1,
6
- "maxProperties": 1,
7
- "properties": {
8
- "userAction": {
9
- "type": "object",
10
- "description": "Reports a user-initiated action from a component.",
11
- "properties": {
12
- "name": {
13
- "type": "string",
14
- "description": "The name of the action, taken from the component's action.name property."
15
- },
16
- "surfaceId": {
17
- "type": "string",
18
- "description": "The id of the surface where the event originated."
19
- },
20
- "sourceComponentId": {
21
- "type": "string",
22
- "description": "The id of the component that triggered the event."
23
- },
24
- "timestamp": {
25
- "type": "string",
26
- "format": "date-time",
27
- "description": "An ISO 8601 timestamp of when the event occurred."
28
- },
29
- "context": {
30
- "type": "object",
31
- "description": "A JSON object containing the key-value pairs from the component's action.context, after resolving all data bindings.",
32
- "additionalProperties": true
33
- }
34
- },
35
- "required": [
36
- "name",
37
- "surfaceId",
38
- "sourceComponentId",
39
- "timestamp",
40
- "context"
41
- ]
42
- },
43
- "error": {
44
- "type": "object",
45
- "description": "Reports a client-side error. The content is flexible.",
46
- "additionalProperties": true
47
- }
48
- },
49
- "oneOf": [{ "required": ["userAction"] }, { "required": ["error"] }]
50
- }