@copilotkit/a2ui-renderer 1.55.0-next.8 → 1.55.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 (497) hide show
  1. package/dist/a2ui-types.cjs +2 -3
  2. package/dist/a2ui-types.cjs.map +1 -1
  3. package/dist/a2ui-types.d.cts +21 -5
  4. package/dist/a2ui-types.d.cts.map +1 -1
  5. package/dist/a2ui-types.d.mts +21 -5
  6. package/dist/a2ui-types.d.mts.map +1 -1
  7. package/dist/a2ui-types.mjs +2 -3
  8. package/dist/a2ui-types.mjs.map +1 -1
  9. package/dist/index.cjs +40 -61
  10. package/dist/index.cjs.map +1 -0
  11. package/dist/index.d.cts +10 -39
  12. package/dist/index.d.cts.map +1 -1
  13. package/dist/index.d.mts +10 -39
  14. package/dist/index.d.mts.map +1 -1
  15. package/dist/index.mjs +12 -29
  16. package/dist/index.mjs.map +1 -0
  17. package/dist/index.umd.js +1743 -2783
  18. package/dist/index.umd.js.map +1 -1
  19. package/dist/react-renderer/a2ui-react/A2uiSurface.cjs +110 -0
  20. package/dist/react-renderer/a2ui-react/A2uiSurface.cjs.map +1 -0
  21. package/dist/react-renderer/a2ui-react/A2uiSurface.d.cts +2 -0
  22. package/dist/react-renderer/a2ui-react/A2uiSurface.d.mts +3 -0
  23. package/dist/react-renderer/a2ui-react/A2uiSurface.mjs +107 -0
  24. package/dist/react-renderer/a2ui-react/A2uiSurface.mjs.map +1 -0
  25. package/dist/react-renderer/a2ui-react/adapter.cjs +63 -0
  26. package/dist/react-renderer/a2ui-react/adapter.cjs.map +1 -0
  27. package/dist/react-renderer/a2ui-react/adapter.d.cts +23 -0
  28. package/dist/react-renderer/a2ui-react/adapter.d.cts.map +1 -0
  29. package/dist/react-renderer/a2ui-react/adapter.d.mts +23 -0
  30. package/dist/react-renderer/a2ui-react/adapter.d.mts.map +1 -0
  31. package/dist/react-renderer/a2ui-react/adapter.mjs +61 -0
  32. package/dist/react-renderer/a2ui-react/adapter.mjs.map +1 -0
  33. package/dist/react-renderer/a2ui-react/catalog/basic/components/AudioPlayer.cjs +53 -0
  34. package/dist/react-renderer/a2ui-react/catalog/basic/components/AudioPlayer.cjs.map +1 -0
  35. package/dist/react-renderer/a2ui-react/catalog/basic/components/AudioPlayer.d.cts +1 -0
  36. package/dist/react-renderer/a2ui-react/catalog/basic/components/AudioPlayer.d.mts +1 -0
  37. package/dist/react-renderer/a2ui-react/catalog/basic/components/AudioPlayer.mjs +36 -0
  38. package/dist/react-renderer/a2ui-react/catalog/basic/components/AudioPlayer.mjs.map +1 -0
  39. package/dist/react-renderer/a2ui-react/catalog/basic/components/Button.cjs +48 -0
  40. package/dist/react-renderer/a2ui-react/catalog/basic/components/Button.cjs.map +1 -0
  41. package/dist/react-renderer/a2ui-react/catalog/basic/components/Button.d.cts +1 -0
  42. package/dist/react-renderer/a2ui-react/catalog/basic/components/Button.d.mts +1 -0
  43. package/dist/react-renderer/a2ui-react/catalog/basic/components/Button.mjs +31 -0
  44. package/dist/react-renderer/a2ui-react/catalog/basic/components/Button.mjs.map +1 -0
  45. package/dist/react-renderer/a2ui-react/catalog/basic/components/Card.cjs +39 -0
  46. package/dist/react-renderer/a2ui-react/catalog/basic/components/Card.cjs.map +1 -0
  47. package/dist/react-renderer/a2ui-react/catalog/basic/components/Card.d.cts +1 -0
  48. package/dist/react-renderer/a2ui-react/catalog/basic/components/Card.d.mts +1 -0
  49. package/dist/react-renderer/a2ui-react/catalog/basic/components/Card.mjs +22 -0
  50. package/dist/react-renderer/a2ui-react/catalog/basic/components/Card.mjs.map +1 -0
  51. package/dist/react-renderer/a2ui-react/catalog/basic/components/CheckBox.cjs +73 -0
  52. package/dist/react-renderer/a2ui-react/catalog/basic/components/CheckBox.cjs.map +1 -0
  53. package/dist/react-renderer/a2ui-react/catalog/basic/components/CheckBox.d.cts +1 -0
  54. package/dist/react-renderer/a2ui-react/catalog/basic/components/CheckBox.d.mts +1 -0
  55. package/dist/react-renderer/a2ui-react/catalog/basic/components/CheckBox.mjs +71 -0
  56. package/dist/react-renderer/a2ui-react/catalog/basic/components/CheckBox.mjs.map +1 -0
  57. package/dist/react-renderer/a2ui-react/catalog/basic/components/ChildList.cjs +36 -0
  58. package/dist/react-renderer/a2ui-react/catalog/basic/components/ChildList.cjs.map +1 -0
  59. package/dist/react-renderer/a2ui-react/catalog/basic/components/ChildList.mjs +34 -0
  60. package/dist/react-renderer/a2ui-react/catalog/basic/components/ChildList.mjs.map +1 -0
  61. package/dist/react-renderer/a2ui-react/catalog/basic/components/ChoicePicker.cjs +110 -0
  62. package/dist/react-renderer/a2ui-react/catalog/basic/components/ChoicePicker.cjs.map +1 -0
  63. package/dist/react-renderer/a2ui-react/catalog/basic/components/ChoicePicker.d.cts +1 -0
  64. package/dist/react-renderer/a2ui-react/catalog/basic/components/ChoicePicker.d.mts +1 -0
  65. package/dist/react-renderer/a2ui-react/catalog/basic/components/ChoicePicker.mjs +108 -0
  66. package/dist/react-renderer/a2ui-react/catalog/basic/components/ChoicePicker.mjs.map +1 -0
  67. package/dist/react-renderer/a2ui-react/catalog/basic/components/Column.cjs +45 -0
  68. package/dist/react-renderer/a2ui-react/catalog/basic/components/Column.cjs.map +1 -0
  69. package/dist/react-renderer/a2ui-react/catalog/basic/components/Column.d.cts +1 -0
  70. package/dist/react-renderer/a2ui-react/catalog/basic/components/Column.d.mts +1 -0
  71. package/dist/react-renderer/a2ui-react/catalog/basic/components/Column.mjs +44 -0
  72. package/dist/react-renderer/a2ui-react/catalog/basic/components/Column.mjs.map +1 -0
  73. package/dist/react-renderer/a2ui-react/catalog/basic/components/DateTimeInput.cjs +69 -0
  74. package/dist/react-renderer/a2ui-react/catalog/basic/components/DateTimeInput.cjs.map +1 -0
  75. package/dist/react-renderer/a2ui-react/catalog/basic/components/DateTimeInput.d.cts +1 -0
  76. package/dist/react-renderer/a2ui-react/catalog/basic/components/DateTimeInput.d.mts +1 -0
  77. package/dist/react-renderer/a2ui-react/catalog/basic/components/DateTimeInput.mjs +67 -0
  78. package/dist/react-renderer/a2ui-react/catalog/basic/components/DateTimeInput.mjs.map +1 -0
  79. package/dist/react-renderer/a2ui-react/catalog/basic/components/Divider.cjs +44 -0
  80. package/dist/react-renderer/a2ui-react/catalog/basic/components/Divider.cjs.map +1 -0
  81. package/dist/react-renderer/a2ui-react/catalog/basic/components/Divider.d.cts +1 -0
  82. package/dist/react-renderer/a2ui-react/catalog/basic/components/Divider.d.mts +1 -0
  83. package/dist/react-renderer/a2ui-react/catalog/basic/components/Divider.mjs +27 -0
  84. package/dist/react-renderer/a2ui-react/catalog/basic/components/Divider.mjs.map +1 -0
  85. package/dist/react-renderer/a2ui-react/catalog/basic/components/Icon.cjs +44 -0
  86. package/dist/react-renderer/a2ui-react/catalog/basic/components/Icon.cjs.map +1 -0
  87. package/dist/react-renderer/a2ui-react/catalog/basic/components/Icon.d.cts +1 -0
  88. package/dist/react-renderer/a2ui-react/catalog/basic/components/Icon.d.mts +1 -0
  89. package/dist/react-renderer/a2ui-react/catalog/basic/components/Icon.mjs +27 -0
  90. package/dist/react-renderer/a2ui-react/catalog/basic/components/Icon.mjs.map +1 -0
  91. package/dist/react-renderer/a2ui-react/catalog/basic/components/Image.cjs +59 -0
  92. package/dist/react-renderer/a2ui-react/catalog/basic/components/Image.cjs.map +1 -0
  93. package/dist/react-renderer/a2ui-react/catalog/basic/components/Image.d.cts +1 -0
  94. package/dist/react-renderer/a2ui-react/catalog/basic/components/Image.d.mts +1 -0
  95. package/dist/react-renderer/a2ui-react/catalog/basic/components/Image.mjs +42 -0
  96. package/dist/react-renderer/a2ui-react/catalog/basic/components/Image.mjs.map +1 -0
  97. package/dist/react-renderer/a2ui-react/catalog/basic/components/List.cjs +49 -0
  98. package/dist/react-renderer/a2ui-react/catalog/basic/components/List.cjs.map +1 -0
  99. package/dist/react-renderer/a2ui-react/catalog/basic/components/List.d.cts +1 -0
  100. package/dist/react-renderer/a2ui-react/catalog/basic/components/List.d.mts +1 -0
  101. package/dist/react-renderer/a2ui-react/catalog/basic/components/List.mjs +32 -0
  102. package/dist/react-renderer/a2ui-react/catalog/basic/components/List.mjs.map +1 -0
  103. package/dist/react-renderer/a2ui-react/catalog/basic/components/Modal.cjs +81 -0
  104. package/dist/react-renderer/a2ui-react/catalog/basic/components/Modal.cjs.map +1 -0
  105. package/dist/react-renderer/a2ui-react/catalog/basic/components/Modal.d.cts +1 -0
  106. package/dist/react-renderer/a2ui-react/catalog/basic/components/Modal.d.mts +1 -0
  107. package/dist/react-renderer/a2ui-react/catalog/basic/components/Modal.mjs +80 -0
  108. package/dist/react-renderer/a2ui-react/catalog/basic/components/Modal.mjs.map +1 -0
  109. package/dist/react-renderer/a2ui-react/catalog/basic/components/Row.cjs +45 -0
  110. package/dist/react-renderer/a2ui-react/catalog/basic/components/Row.cjs.map +1 -0
  111. package/dist/react-renderer/a2ui-react/catalog/basic/components/Row.d.cts +1 -0
  112. package/dist/react-renderer/a2ui-react/catalog/basic/components/Row.d.mts +1 -0
  113. package/dist/react-renderer/a2ui-react/catalog/basic/components/Row.mjs +44 -0
  114. package/dist/react-renderer/a2ui-react/catalog/basic/components/Row.mjs.map +1 -0
  115. package/dist/react-renderer/a2ui-react/catalog/basic/components/Slider.cjs +74 -0
  116. package/dist/react-renderer/a2ui-react/catalog/basic/components/Slider.cjs.map +1 -0
  117. package/dist/react-renderer/a2ui-react/catalog/basic/components/Slider.d.cts +1 -0
  118. package/dist/react-renderer/a2ui-react/catalog/basic/components/Slider.d.mts +1 -0
  119. package/dist/react-renderer/a2ui-react/catalog/basic/components/Slider.mjs +72 -0
  120. package/dist/react-renderer/a2ui-react/catalog/basic/components/Slider.mjs.map +1 -0
  121. package/dist/react-renderer/a2ui-react/catalog/basic/components/Tabs.cjs +63 -0
  122. package/dist/react-renderer/a2ui-react/catalog/basic/components/Tabs.cjs.map +1 -0
  123. package/dist/react-renderer/a2ui-react/catalog/basic/components/Tabs.d.cts +1 -0
  124. package/dist/react-renderer/a2ui-react/catalog/basic/components/Tabs.d.mts +1 -0
  125. package/dist/react-renderer/a2ui-react/catalog/basic/components/Tabs.mjs +62 -0
  126. package/dist/react-renderer/a2ui-react/catalog/basic/components/Tabs.mjs.map +1 -0
  127. package/dist/react-renderer/a2ui-react/catalog/basic/components/Text.cjs +69 -0
  128. package/dist/react-renderer/a2ui-react/catalog/basic/components/Text.cjs.map +1 -0
  129. package/dist/react-renderer/a2ui-react/catalog/basic/components/Text.d.cts +1 -0
  130. package/dist/react-renderer/a2ui-react/catalog/basic/components/Text.d.mts +1 -0
  131. package/dist/react-renderer/a2ui-react/catalog/basic/components/Text.mjs +52 -0
  132. package/dist/react-renderer/a2ui-react/catalog/basic/components/Text.mjs.map +1 -0
  133. package/dist/react-renderer/a2ui-react/catalog/basic/components/TextField.cjs +88 -0
  134. package/dist/react-renderer/a2ui-react/catalog/basic/components/TextField.cjs.map +1 -0
  135. package/dist/react-renderer/a2ui-react/catalog/basic/components/TextField.d.cts +1 -0
  136. package/dist/react-renderer/a2ui-react/catalog/basic/components/TextField.d.mts +1 -0
  137. package/dist/react-renderer/a2ui-react/catalog/basic/components/TextField.mjs +86 -0
  138. package/dist/react-renderer/a2ui-react/catalog/basic/components/TextField.mjs.map +1 -0
  139. package/dist/react-renderer/a2ui-react/catalog/basic/components/Video.cjs +40 -0
  140. package/dist/react-renderer/a2ui-react/catalog/basic/components/Video.cjs.map +1 -0
  141. package/dist/react-renderer/a2ui-react/catalog/basic/components/Video.d.cts +1 -0
  142. package/dist/react-renderer/a2ui-react/catalog/basic/components/Video.d.mts +1 -0
  143. package/dist/react-renderer/a2ui-react/catalog/basic/components/Video.mjs +23 -0
  144. package/dist/react-renderer/a2ui-react/catalog/basic/components/Video.mjs.map +1 -0
  145. package/dist/react-renderer/a2ui-react/catalog/basic/index.cjs +63 -0
  146. package/dist/react-renderer/a2ui-react/catalog/basic/index.cjs.map +1 -0
  147. package/dist/react-renderer/a2ui-react/catalog/basic/index.d.cts +26 -0
  148. package/dist/react-renderer/a2ui-react/catalog/basic/index.d.cts.map +1 -0
  149. package/dist/react-renderer/a2ui-react/catalog/basic/index.d.mts +26 -0
  150. package/dist/react-renderer/a2ui-react/catalog/basic/index.d.mts.map +1 -0
  151. package/dist/react-renderer/a2ui-react/catalog/basic/index.mjs +62 -0
  152. package/dist/react-renderer/a2ui-react/catalog/basic/index.mjs.map +1 -0
  153. package/dist/react-renderer/a2ui-react/catalog/basic/utils.cjs +52 -0
  154. package/dist/react-renderer/a2ui-react/catalog/basic/utils.cjs.map +1 -0
  155. package/dist/react-renderer/a2ui-react/catalog/basic/utils.mjs +45 -0
  156. package/dist/react-renderer/a2ui-react/catalog/basic/utils.mjs.map +1 -0
  157. package/dist/react-renderer/a2ui-react/catalog/minimal/components/Button.cjs +51 -0
  158. package/dist/react-renderer/a2ui-react/catalog/minimal/components/Button.cjs.map +1 -0
  159. package/dist/react-renderer/a2ui-react/catalog/minimal/components/Button.d.cts +2 -0
  160. package/dist/react-renderer/a2ui-react/catalog/minimal/components/Button.d.mts +2 -0
  161. package/dist/react-renderer/a2ui-react/catalog/minimal/components/Button.mjs +34 -0
  162. package/dist/react-renderer/a2ui-react/catalog/minimal/components/Button.mjs.map +1 -0
  163. package/dist/react-renderer/a2ui-react/catalog/minimal/components/ChildList.cjs +36 -0
  164. package/dist/react-renderer/a2ui-react/catalog/minimal/components/ChildList.cjs.map +1 -0
  165. package/dist/react-renderer/a2ui-react/catalog/minimal/components/ChildList.mjs +34 -0
  166. package/dist/react-renderer/a2ui-react/catalog/minimal/components/ChildList.mjs.map +1 -0
  167. package/dist/react-renderer/a2ui-react/catalog/minimal/components/Column.cjs +85 -0
  168. package/dist/react-renderer/a2ui-react/catalog/minimal/components/Column.cjs.map +1 -0
  169. package/dist/react-renderer/a2ui-react/catalog/minimal/components/Column.d.cts +2 -0
  170. package/dist/react-renderer/a2ui-react/catalog/minimal/components/Column.d.mts +2 -0
  171. package/dist/react-renderer/a2ui-react/catalog/minimal/components/Column.mjs +84 -0
  172. package/dist/react-renderer/a2ui-react/catalog/minimal/components/Column.mjs.map +1 -0
  173. package/dist/react-renderer/a2ui-react/catalog/minimal/components/Row.cjs +84 -0
  174. package/dist/react-renderer/a2ui-react/catalog/minimal/components/Row.cjs.map +1 -0
  175. package/dist/react-renderer/a2ui-react/catalog/minimal/components/Row.d.cts +2 -0
  176. package/dist/react-renderer/a2ui-react/catalog/minimal/components/Row.d.mts +2 -0
  177. package/dist/react-renderer/a2ui-react/catalog/minimal/components/Row.mjs +83 -0
  178. package/dist/react-renderer/a2ui-react/catalog/minimal/components/Row.mjs.map +1 -0
  179. package/dist/react-renderer/a2ui-react/catalog/minimal/components/Text.cjs +54 -0
  180. package/dist/react-renderer/a2ui-react/catalog/minimal/components/Text.cjs.map +1 -0
  181. package/dist/react-renderer/a2ui-react/catalog/minimal/components/Text.d.cts +2 -0
  182. package/dist/react-renderer/a2ui-react/catalog/minimal/components/Text.d.mts +2 -0
  183. package/dist/react-renderer/a2ui-react/catalog/minimal/components/Text.mjs +53 -0
  184. package/dist/react-renderer/a2ui-react/catalog/minimal/components/Text.mjs.map +1 -0
  185. package/dist/react-renderer/a2ui-react/catalog/minimal/components/TextField.cjs +85 -0
  186. package/dist/react-renderer/a2ui-react/catalog/minimal/components/TextField.cjs.map +1 -0
  187. package/dist/react-renderer/a2ui-react/catalog/minimal/components/TextField.d.cts +2 -0
  188. package/dist/react-renderer/a2ui-react/catalog/minimal/components/TextField.d.mts +2 -0
  189. package/dist/react-renderer/a2ui-react/catalog/minimal/components/TextField.mjs +68 -0
  190. package/dist/react-renderer/a2ui-react/catalog/minimal/components/TextField.mjs.map +1 -0
  191. package/dist/react-renderer/a2ui-react/catalog/minimal/index.cjs +44 -0
  192. package/dist/react-renderer/a2ui-react/catalog/minimal/index.cjs.map +1 -0
  193. package/dist/react-renderer/a2ui-react/catalog/minimal/index.d.cts +7 -0
  194. package/dist/react-renderer/a2ui-react/catalog/minimal/index.d.mts +7 -0
  195. package/dist/react-renderer/a2ui-react/catalog/minimal/index.mjs +44 -0
  196. package/dist/react-renderer/a2ui-react/catalog/minimal/index.mjs.map +1 -0
  197. package/dist/react-renderer/a2ui-react/index.cjs +22 -0
  198. package/dist/react-renderer/a2ui-react/index.d.cts +4 -0
  199. package/dist/react-renderer/a2ui-react/index.d.mts +4 -0
  200. package/dist/react-renderer/a2ui-react/index.mjs +24 -0
  201. package/dist/react-renderer/catalog-utils.cjs +84 -0
  202. package/dist/react-renderer/catalog-utils.cjs.map +1 -0
  203. package/dist/react-renderer/catalog-utils.d.cts +39 -0
  204. package/dist/react-renderer/catalog-utils.d.cts.map +1 -0
  205. package/dist/react-renderer/catalog-utils.d.mts +39 -0
  206. package/dist/react-renderer/catalog-utils.d.mts.map +1 -0
  207. package/dist/react-renderer/catalog-utils.mjs +79 -0
  208. package/dist/react-renderer/catalog-utils.mjs.map +1 -0
  209. package/dist/react-renderer/core/A2UIProvider.cjs +48 -70
  210. package/dist/react-renderer/core/A2UIProvider.cjs.map +1 -1
  211. package/dist/react-renderer/core/A2UIProvider.d.cts +13 -47
  212. package/dist/react-renderer/core/A2UIProvider.d.cts.map +1 -1
  213. package/dist/react-renderer/core/A2UIProvider.d.mts +13 -47
  214. package/dist/react-renderer/core/A2UIProvider.d.mts.map +1 -1
  215. package/dist/react-renderer/core/A2UIProvider.mjs +48 -71
  216. package/dist/react-renderer/core/A2UIProvider.mjs.map +1 -1
  217. package/dist/react-renderer/core/A2UIRenderer.cjs +8 -56
  218. package/dist/react-renderer/core/A2UIRenderer.cjs.map +1 -1
  219. package/dist/react-renderer/core/A2UIRenderer.d.cts +5 -19
  220. package/dist/react-renderer/core/A2UIRenderer.d.cts.map +1 -1
  221. package/dist/react-renderer/core/A2UIRenderer.d.mts +5 -19
  222. package/dist/react-renderer/core/A2UIRenderer.d.mts.map +1 -1
  223. package/dist/react-renderer/core/A2UIRenderer.mjs +9 -57
  224. package/dist/react-renderer/core/A2UIRenderer.mjs.map +1 -1
  225. package/dist/react-renderer/core/store.d.cts +6 -17
  226. package/dist/react-renderer/core/store.d.cts.map +1 -1
  227. package/dist/react-renderer/core/store.d.mts +6 -17
  228. package/dist/react-renderer/core/store.d.mts.map +1 -1
  229. package/dist/react-renderer/create-catalog.cjs +115 -0
  230. package/dist/react-renderer/create-catalog.cjs.map +1 -0
  231. package/dist/react-renderer/create-catalog.d.cts +107 -0
  232. package/dist/react-renderer/create-catalog.d.cts.map +1 -0
  233. package/dist/react-renderer/create-catalog.d.mts +107 -0
  234. package/dist/react-renderer/create-catalog.d.mts.map +1 -0
  235. package/dist/react-renderer/create-catalog.mjs +111 -0
  236. package/dist/react-renderer/create-catalog.mjs.map +1 -0
  237. package/dist/react-renderer/hooks/useA2UI.cjs +1 -26
  238. package/dist/react-renderer/hooks/useA2UI.cjs.map +1 -1
  239. package/dist/react-renderer/hooks/useA2UI.d.cts +5 -33
  240. package/dist/react-renderer/hooks/useA2UI.d.cts.map +1 -1
  241. package/dist/react-renderer/hooks/useA2UI.d.mts +5 -33
  242. package/dist/react-renderer/hooks/useA2UI.d.mts.map +1 -1
  243. package/dist/react-renderer/hooks/useA2UI.mjs +1 -26
  244. package/dist/react-renderer/hooks/useA2UI.mjs.map +1 -1
  245. package/dist/react-renderer/index.cjs +21 -27
  246. package/dist/react-renderer/index.cjs.map +1 -0
  247. package/dist/react-renderer/index.d.cts +17 -27
  248. package/dist/react-renderer/index.d.cts.map +1 -0
  249. package/dist/react-renderer/index.d.mts +17 -27
  250. package/dist/react-renderer/index.d.mts.map +1 -0
  251. package/dist/react-renderer/index.mjs +15 -27
  252. package/dist/react-renderer/index.mjs.map +1 -0
  253. package/dist/react-renderer/lib/utils.cjs +0 -25
  254. package/dist/react-renderer/lib/utils.cjs.map +1 -1
  255. package/dist/react-renderer/lib/utils.d.cts +0 -8
  256. package/dist/react-renderer/lib/utils.d.cts.map +1 -1
  257. package/dist/react-renderer/lib/utils.d.mts +0 -8
  258. package/dist/react-renderer/lib/utils.d.mts.map +1 -1
  259. package/dist/react-renderer/lib/utils.mjs +1 -25
  260. package/dist/react-renderer/lib/utils.mjs.map +1 -1
  261. package/dist/react-renderer/styles/index.cjs +4 -459
  262. package/dist/react-renderer/styles/index.cjs.map +1 -1
  263. package/dist/react-renderer/styles/index.d.mts +2 -18
  264. package/dist/react-renderer/styles/index.d.mts.map +1 -1
  265. package/dist/react-renderer/styles/index.mjs +4 -459
  266. package/dist/react-renderer/styles/index.mjs.map +1 -1
  267. package/dist/react-renderer/theme/ThemeContext.cjs +2 -19
  268. package/dist/react-renderer/theme/ThemeContext.cjs.map +1 -1
  269. package/dist/react-renderer/theme/ThemeContext.d.cts +4 -23
  270. package/dist/react-renderer/theme/ThemeContext.d.cts.map +1 -1
  271. package/dist/react-renderer/theme/ThemeContext.d.mts +4 -23
  272. package/dist/react-renderer/theme/ThemeContext.d.mts.map +1 -1
  273. package/dist/react-renderer/theme/ThemeContext.mjs +2 -19
  274. package/dist/react-renderer/theme/ThemeContext.mjs.map +1 -1
  275. package/dist/react-renderer/types.d.cts +24 -29
  276. package/dist/react-renderer/types.d.cts.map +1 -1
  277. package/dist/react-renderer/types.d.mts +24 -29
  278. package/dist/react-renderer/types.d.mts.map +1 -1
  279. package/package.json +29 -29
  280. package/dist/A2UIViewer.cjs +0 -154
  281. package/dist/A2UIViewer.cjs.map +0 -1
  282. package/dist/A2UIViewer.d.cts +0 -39
  283. package/dist/A2UIViewer.d.cts.map +0 -1
  284. package/dist/A2UIViewer.d.mts +0 -39
  285. package/dist/A2UIViewer.d.mts.map +0 -1
  286. package/dist/A2UIViewer.mjs +0 -152
  287. package/dist/A2UIViewer.mjs.map +0 -1
  288. package/dist/react-renderer/components/content/AudioPlayer.cjs +0 -34
  289. package/dist/react-renderer/components/content/AudioPlayer.cjs.map +0 -1
  290. package/dist/react-renderer/components/content/AudioPlayer.d.cts +0 -12
  291. package/dist/react-renderer/components/content/AudioPlayer.d.cts.map +0 -1
  292. package/dist/react-renderer/components/content/AudioPlayer.d.mts +0 -12
  293. package/dist/react-renderer/components/content/AudioPlayer.d.mts.map +0 -1
  294. package/dist/react-renderer/components/content/AudioPlayer.mjs +0 -33
  295. package/dist/react-renderer/components/content/AudioPlayer.mjs.map +0 -1
  296. package/dist/react-renderer/components/content/Divider.cjs +0 -31
  297. package/dist/react-renderer/components/content/Divider.cjs.map +0 -1
  298. package/dist/react-renderer/components/content/Divider.d.cts +0 -17
  299. package/dist/react-renderer/components/content/Divider.d.cts.map +0 -1
  300. package/dist/react-renderer/components/content/Divider.d.mts +0 -17
  301. package/dist/react-renderer/components/content/Divider.d.mts.map +0 -1
  302. package/dist/react-renderer/components/content/Divider.mjs +0 -30
  303. package/dist/react-renderer/components/content/Divider.mjs.map +0 -1
  304. package/dist/react-renderer/components/content/Icon.cjs +0 -50
  305. package/dist/react-renderer/components/content/Icon.cjs.map +0 -1
  306. package/dist/react-renderer/components/content/Icon.d.cts +0 -20
  307. package/dist/react-renderer/components/content/Icon.d.cts.map +0 -1
  308. package/dist/react-renderer/components/content/Icon.d.mts +0 -20
  309. package/dist/react-renderer/components/content/Icon.d.mts.map +0 -1
  310. package/dist/react-renderer/components/content/Icon.mjs +0 -49
  311. package/dist/react-renderer/components/content/Icon.mjs.map +0 -1
  312. package/dist/react-renderer/components/content/Image.cjs +0 -43
  313. package/dist/react-renderer/components/content/Image.cjs.map +0 -1
  314. package/dist/react-renderer/components/content/Image.d.cts +0 -15
  315. package/dist/react-renderer/components/content/Image.d.cts.map +0 -1
  316. package/dist/react-renderer/components/content/Image.d.mts +0 -15
  317. package/dist/react-renderer/components/content/Image.d.mts.map +0 -1
  318. package/dist/react-renderer/components/content/Image.mjs +0 -42
  319. package/dist/react-renderer/components/content/Image.mjs.map +0 -1
  320. package/dist/react-renderer/components/content/Text.cjs +0 -131
  321. package/dist/react-renderer/components/content/Text.cjs.map +0 -1
  322. package/dist/react-renderer/components/content/Text.d.cts +0 -32
  323. package/dist/react-renderer/components/content/Text.d.cts.map +0 -1
  324. package/dist/react-renderer/components/content/Text.d.mts +0 -32
  325. package/dist/react-renderer/components/content/Text.d.mts.map +0 -1
  326. package/dist/react-renderer/components/content/Text.mjs +0 -129
  327. package/dist/react-renderer/components/content/Text.mjs.map +0 -1
  328. package/dist/react-renderer/components/content/Video.cjs +0 -56
  329. package/dist/react-renderer/components/content/Video.cjs.map +0 -1
  330. package/dist/react-renderer/components/content/Video.d.cts +0 -14
  331. package/dist/react-renderer/components/content/Video.d.cts.map +0 -1
  332. package/dist/react-renderer/components/content/Video.d.mts +0 -14
  333. package/dist/react-renderer/components/content/Video.d.mts.map +0 -1
  334. package/dist/react-renderer/components/content/Video.mjs +0 -55
  335. package/dist/react-renderer/components/content/Video.mjs.map +0 -1
  336. package/dist/react-renderer/components/interactive/Button.cjs +0 -39
  337. package/dist/react-renderer/components/interactive/Button.cjs.map +0 -1
  338. package/dist/react-renderer/components/interactive/Button.d.cts +0 -15
  339. package/dist/react-renderer/components/interactive/Button.d.cts.map +0 -1
  340. package/dist/react-renderer/components/interactive/Button.d.mts +0 -15
  341. package/dist/react-renderer/components/interactive/Button.d.mts.map +0 -1
  342. package/dist/react-renderer/components/interactive/Button.mjs +0 -38
  343. package/dist/react-renderer/components/interactive/Button.mjs.map +0 -1
  344. package/dist/react-renderer/components/interactive/CheckBox.cjs +0 -58
  345. package/dist/react-renderer/components/interactive/CheckBox.cjs.map +0 -1
  346. package/dist/react-renderer/components/interactive/CheckBox.d.cts +0 -14
  347. package/dist/react-renderer/components/interactive/CheckBox.d.cts.map +0 -1
  348. package/dist/react-renderer/components/interactive/CheckBox.d.mts +0 -14
  349. package/dist/react-renderer/components/interactive/CheckBox.d.mts.map +0 -1
  350. package/dist/react-renderer/components/interactive/CheckBox.mjs +0 -57
  351. package/dist/react-renderer/components/interactive/CheckBox.mjs.map +0 -1
  352. package/dist/react-renderer/components/interactive/DateTimeInput.cjs +0 -65
  353. package/dist/react-renderer/components/interactive/DateTimeInput.cjs.map +0 -1
  354. package/dist/react-renderer/components/interactive/DateTimeInput.d.cts +0 -14
  355. package/dist/react-renderer/components/interactive/DateTimeInput.d.cts.map +0 -1
  356. package/dist/react-renderer/components/interactive/DateTimeInput.d.mts +0 -14
  357. package/dist/react-renderer/components/interactive/DateTimeInput.d.mts.map +0 -1
  358. package/dist/react-renderer/components/interactive/DateTimeInput.mjs +0 -64
  359. package/dist/react-renderer/components/interactive/DateTimeInput.mjs.map +0 -1
  360. package/dist/react-renderer/components/interactive/MultipleChoice.cjs +0 -54
  361. package/dist/react-renderer/components/interactive/MultipleChoice.cjs.map +0 -1
  362. package/dist/react-renderer/components/interactive/MultipleChoice.d.cts +0 -15
  363. package/dist/react-renderer/components/interactive/MultipleChoice.d.cts.map +0 -1
  364. package/dist/react-renderer/components/interactive/MultipleChoice.d.mts +0 -15
  365. package/dist/react-renderer/components/interactive/MultipleChoice.d.mts.map +0 -1
  366. package/dist/react-renderer/components/interactive/MultipleChoice.mjs +0 -53
  367. package/dist/react-renderer/components/interactive/MultipleChoice.mjs.map +0 -1
  368. package/dist/react-renderer/components/interactive/Slider.cjs +0 -72
  369. package/dist/react-renderer/components/interactive/Slider.cjs.map +0 -1
  370. package/dist/react-renderer/components/interactive/Slider.d.cts +0 -14
  371. package/dist/react-renderer/components/interactive/Slider.d.cts.map +0 -1
  372. package/dist/react-renderer/components/interactive/Slider.d.mts +0 -14
  373. package/dist/react-renderer/components/interactive/Slider.d.mts.map +0 -1
  374. package/dist/react-renderer/components/interactive/Slider.mjs +0 -71
  375. package/dist/react-renderer/components/interactive/Slider.mjs.map +0 -1
  376. package/dist/react-renderer/components/interactive/TextField.cjs +0 -74
  377. package/dist/react-renderer/components/interactive/TextField.cjs.map +0 -1
  378. package/dist/react-renderer/components/interactive/TextField.d.cts +0 -14
  379. package/dist/react-renderer/components/interactive/TextField.d.cts.map +0 -1
  380. package/dist/react-renderer/components/interactive/TextField.d.mts +0 -14
  381. package/dist/react-renderer/components/interactive/TextField.d.mts.map +0 -1
  382. package/dist/react-renderer/components/interactive/TextField.mjs +0 -73
  383. package/dist/react-renderer/components/interactive/TextField.mjs.map +0 -1
  384. package/dist/react-renderer/components/layout/Card.cjs +0 -46
  385. package/dist/react-renderer/components/layout/Card.cjs.map +0 -1
  386. package/dist/react-renderer/components/layout/Card.d.cts +0 -21
  387. package/dist/react-renderer/components/layout/Card.d.cts.map +0 -1
  388. package/dist/react-renderer/components/layout/Card.d.mts +0 -21
  389. package/dist/react-renderer/components/layout/Card.d.mts.map +0 -1
  390. package/dist/react-renderer/components/layout/Card.mjs +0 -45
  391. package/dist/react-renderer/components/layout/Card.mjs.map +0 -1
  392. package/dist/react-renderer/components/layout/Column.cjs +0 -43
  393. package/dist/react-renderer/components/layout/Column.cjs.map +0 -1
  394. package/dist/react-renderer/components/layout/Column.d.cts +0 -14
  395. package/dist/react-renderer/components/layout/Column.d.cts.map +0 -1
  396. package/dist/react-renderer/components/layout/Column.d.mts +0 -14
  397. package/dist/react-renderer/components/layout/Column.d.mts.map +0 -1
  398. package/dist/react-renderer/components/layout/Column.mjs +0 -42
  399. package/dist/react-renderer/components/layout/Column.mjs.map +0 -1
  400. package/dist/react-renderer/components/layout/List.cjs +0 -41
  401. package/dist/react-renderer/components/layout/List.cjs.map +0 -1
  402. package/dist/react-renderer/components/layout/List.d.cts +0 -14
  403. package/dist/react-renderer/components/layout/List.d.cts.map +0 -1
  404. package/dist/react-renderer/components/layout/List.d.mts +0 -14
  405. package/dist/react-renderer/components/layout/List.d.mts.map +0 -1
  406. package/dist/react-renderer/components/layout/List.mjs +0 -40
  407. package/dist/react-renderer/components/layout/List.mjs.map +0 -1
  408. package/dist/react-renderer/components/layout/Modal.cjs +0 -92
  409. package/dist/react-renderer/components/layout/Modal.cjs.map +0 -1
  410. package/dist/react-renderer/components/layout/Modal.d.cts +0 -19
  411. package/dist/react-renderer/components/layout/Modal.d.cts.map +0 -1
  412. package/dist/react-renderer/components/layout/Modal.d.mts +0 -19
  413. package/dist/react-renderer/components/layout/Modal.d.mts.map +0 -1
  414. package/dist/react-renderer/components/layout/Modal.mjs +0 -91
  415. package/dist/react-renderer/components/layout/Modal.mjs.map +0 -1
  416. package/dist/react-renderer/components/layout/Row.cjs +0 -43
  417. package/dist/react-renderer/components/layout/Row.cjs.map +0 -1
  418. package/dist/react-renderer/components/layout/Row.d.cts +0 -14
  419. package/dist/react-renderer/components/layout/Row.d.cts.map +0 -1
  420. package/dist/react-renderer/components/layout/Row.d.mts +0 -14
  421. package/dist/react-renderer/components/layout/Row.d.mts.map +0 -1
  422. package/dist/react-renderer/components/layout/Row.mjs +0 -42
  423. package/dist/react-renderer/components/layout/Row.mjs.map +0 -1
  424. package/dist/react-renderer/components/layout/Tabs.cjs +0 -47
  425. package/dist/react-renderer/components/layout/Tabs.cjs.map +0 -1
  426. package/dist/react-renderer/components/layout/Tabs.d.cts +0 -12
  427. package/dist/react-renderer/components/layout/Tabs.d.cts.map +0 -1
  428. package/dist/react-renderer/components/layout/Tabs.d.mts +0 -12
  429. package/dist/react-renderer/components/layout/Tabs.d.mts.map +0 -1
  430. package/dist/react-renderer/components/layout/Tabs.mjs +0 -46
  431. package/dist/react-renderer/components/layout/Tabs.mjs.map +0 -1
  432. package/dist/react-renderer/core/A2UIViewer.cjs +0 -11
  433. package/dist/react-renderer/core/A2UIViewer.d.cts +0 -16
  434. package/dist/react-renderer/core/A2UIViewer.d.cts.map +0 -1
  435. package/dist/react-renderer/core/A2UIViewer.d.mts +0 -16
  436. package/dist/react-renderer/core/A2UIViewer.d.mts.map +0 -1
  437. package/dist/react-renderer/core/A2UIViewer.mjs +0 -11
  438. package/dist/react-renderer/core/ComponentNode.cjs +0 -53
  439. package/dist/react-renderer/core/ComponentNode.cjs.map +0 -1
  440. package/dist/react-renderer/core/ComponentNode.d.cts +0 -29
  441. package/dist/react-renderer/core/ComponentNode.d.cts.map +0 -1
  442. package/dist/react-renderer/core/ComponentNode.d.mts +0 -29
  443. package/dist/react-renderer/core/ComponentNode.d.mts.map +0 -1
  444. package/dist/react-renderer/core/ComponentNode.mjs +0 -52
  445. package/dist/react-renderer/core/ComponentNode.mjs.map +0 -1
  446. package/dist/react-renderer/hooks/useA2UIComponent.cjs +0 -173
  447. package/dist/react-renderer/hooks/useA2UIComponent.cjs.map +0 -1
  448. package/dist/react-renderer/hooks/useA2UIComponent.d.cts +0 -56
  449. package/dist/react-renderer/hooks/useA2UIComponent.d.cts.map +0 -1
  450. package/dist/react-renderer/hooks/useA2UIComponent.d.mts +0 -56
  451. package/dist/react-renderer/hooks/useA2UIComponent.d.mts.map +0 -1
  452. package/dist/react-renderer/hooks/useA2UIComponent.mjs +0 -172
  453. package/dist/react-renderer/hooks/useA2UIComponent.mjs.map +0 -1
  454. package/dist/react-renderer/registry/ComponentRegistry.cjs +0 -114
  455. package/dist/react-renderer/registry/ComponentRegistry.cjs.map +0 -1
  456. package/dist/react-renderer/registry/ComponentRegistry.d.cts +0 -82
  457. package/dist/react-renderer/registry/ComponentRegistry.d.cts.map +0 -1
  458. package/dist/react-renderer/registry/ComponentRegistry.d.mts +0 -82
  459. package/dist/react-renderer/registry/ComponentRegistry.d.mts.map +0 -1
  460. package/dist/react-renderer/registry/ComponentRegistry.mjs +0 -113
  461. package/dist/react-renderer/registry/ComponentRegistry.mjs.map +0 -1
  462. package/dist/react-renderer/registry/defaultCatalog.cjs +0 -58
  463. package/dist/react-renderer/registry/defaultCatalog.cjs.map +0 -1
  464. package/dist/react-renderer/registry/defaultCatalog.d.cts +0 -17
  465. package/dist/react-renderer/registry/defaultCatalog.d.cts.map +0 -1
  466. package/dist/react-renderer/registry/defaultCatalog.d.mts +0 -17
  467. package/dist/react-renderer/registry/defaultCatalog.d.mts.map +0 -1
  468. package/dist/react-renderer/registry/defaultCatalog.mjs +0 -57
  469. package/dist/react-renderer/registry/defaultCatalog.mjs.map +0 -1
  470. package/dist/react-renderer/styles/reset.cjs +0 -29
  471. package/dist/react-renderer/styles/reset.cjs.map +0 -1
  472. package/dist/react-renderer/styles/reset.mjs +0 -28
  473. package/dist/react-renderer/styles/reset.mjs.map +0 -1
  474. package/dist/react-renderer/theme/litTheme.cjs +0 -386
  475. package/dist/react-renderer/theme/litTheme.cjs.map +0 -1
  476. package/dist/react-renderer/theme/litTheme.d.cts +0 -12
  477. package/dist/react-renderer/theme/litTheme.d.cts.map +0 -1
  478. package/dist/react-renderer/theme/litTheme.d.mts +0 -12
  479. package/dist/react-renderer/theme/litTheme.d.mts.map +0 -1
  480. package/dist/react-renderer/theme/litTheme.mjs +0 -384
  481. package/dist/react-renderer/theme/litTheme.mjs.map +0 -1
  482. package/dist/react-renderer/theme/utils.cjs +0 -41
  483. package/dist/react-renderer/theme/utils.cjs.map +0 -1
  484. package/dist/react-renderer/theme/utils.d.cts +0 -26
  485. package/dist/react-renderer/theme/utils.d.cts.map +0 -1
  486. package/dist/react-renderer/theme/utils.d.mts +0 -26
  487. package/dist/react-renderer/theme/utils.d.mts.map +0 -1
  488. package/dist/react-renderer/theme/utils.mjs +0 -39
  489. package/dist/react-renderer/theme/utils.mjs.map +0 -1
  490. package/dist/theme/viewer-theme.cjs +0 -395
  491. package/dist/theme/viewer-theme.cjs.map +0 -1
  492. package/dist/theme/viewer-theme.d.cts +0 -7
  493. package/dist/theme/viewer-theme.d.cts.map +0 -1
  494. package/dist/theme/viewer-theme.d.mts +0 -7
  495. package/dist/theme/viewer-theme.d.mts.map +0 -1
  496. package/dist/theme/viewer-theme.mjs +0 -394
  497. package/dist/theme/viewer-theme.mjs.map +0 -1
@@ -1,173 +0,0 @@
1
- const require_runtime = require('../../_virtual/_rolldown/runtime.cjs');
2
- const require_ThemeContext = require('../theme/ThemeContext.cjs');
3
- const require_A2UIProvider = require('../core/A2UIProvider.cjs');
4
- let react = require("react");
5
-
6
- //#region src/react-renderer/hooks/useA2UIComponent.ts
7
- /**
8
- * Base hook for A2UI components. Provides data binding, theme access,
9
- * and action dispatching.
10
- *
11
- * @param node - The component node from the A2UI message processor
12
- * @param surfaceId - The surface ID this component belongs to
13
- * @returns Object with theme, data binding helpers, and action dispatcher
14
- *
15
- * @example
16
- * ```tsx
17
- * function TextField({ node, surfaceId }: A2UIComponentProps<Types.TextFieldNode>) {
18
- * const { theme, resolveString, setValue } = useA2UIComponent(node, surfaceId);
19
- *
20
- * const label = resolveString(node.properties.label);
21
- * const value = resolveString(node.properties.text) ?? '';
22
- *
23
- * return (
24
- * <div className={classMapToString(theme.components.TextField.container)}>
25
- * <label>{label}</label>
26
- * <input
27
- * value={value}
28
- * onChange={(e) => setValue(node.properties.text?.path!, e.target.value)}
29
- * />
30
- * </div>
31
- * );
32
- * }
33
- * ```
34
- */
35
- function useA2UIComponent(node, surfaceId) {
36
- const actions = require_A2UIProvider.useA2UIActions();
37
- const theme = require_ThemeContext.useTheme();
38
- const baseId = (0, react.useId)();
39
- require_A2UIProvider.useA2UIState();
40
- /**
41
- * Resolve a StringValue to its actual string value.
42
- * Checks literalString, literal, then path in that order.
43
- * Note: This reads from data model via stable actions reference.
44
- */
45
- const resolveString = (0, react.useCallback)((value) => {
46
- if (!value) return null;
47
- if (typeof value !== "object") return null;
48
- if (value.literalString !== void 0) return value.literalString;
49
- if (value.literal !== void 0) return String(value.literal);
50
- if (value.path) {
51
- const data = actions.getData(node, value.path, surfaceId);
52
- return data !== null ? String(data) : null;
53
- }
54
- return null;
55
- }, [
56
- actions,
57
- node,
58
- surfaceId
59
- ]);
60
- /**
61
- * Resolve a NumberValue to its actual number value.
62
- */
63
- const resolveNumber = (0, react.useCallback)((value) => {
64
- if (!value) return null;
65
- if (typeof value !== "object") return null;
66
- if (value.literalNumber !== void 0) return value.literalNumber;
67
- if (value.literal !== void 0) return Number(value.literal);
68
- if (value.path) {
69
- const data = actions.getData(node, value.path, surfaceId);
70
- return data !== null ? Number(data) : null;
71
- }
72
- return null;
73
- }, [
74
- actions,
75
- node,
76
- surfaceId
77
- ]);
78
- /**
79
- * Resolve a BooleanValue to its actual boolean value.
80
- */
81
- const resolveBoolean = (0, react.useCallback)((value) => {
82
- if (!value) return null;
83
- if (typeof value !== "object") return null;
84
- if (value.literalBoolean !== void 0) return value.literalBoolean;
85
- if (value.literal !== void 0) return Boolean(value.literal);
86
- if (value.path) {
87
- const data = actions.getData(node, value.path, surfaceId);
88
- return data !== null ? Boolean(data) : null;
89
- }
90
- return null;
91
- }, [
92
- actions,
93
- node,
94
- surfaceId
95
- ]);
96
- /**
97
- * Set a value in the data model for two-way binding.
98
- */
99
- const setValue = (0, react.useCallback)((path, value) => {
100
- actions.setData(node, path, value, surfaceId);
101
- }, [
102
- actions,
103
- node,
104
- surfaceId
105
- ]);
106
- /**
107
- * Get a value from the data model.
108
- */
109
- const getValue = (0, react.useCallback)((path) => {
110
- return actions.getData(node, path, surfaceId);
111
- }, [
112
- actions,
113
- node,
114
- surfaceId
115
- ]);
116
- /**
117
- * Dispatch a user action to the server.
118
- * Resolves all context bindings before dispatching.
119
- */
120
- const sendAction = (0, react.useCallback)((action) => {
121
- const actionContext = {};
122
- if (action.context) {
123
- for (const item of action.context) if (item.value.literalString !== void 0) actionContext[item.key] = item.value.literalString;
124
- else if (item.value.literalNumber !== void 0) actionContext[item.key] = item.value.literalNumber;
125
- else if (item.value.literalBoolean !== void 0) actionContext[item.key] = item.value.literalBoolean;
126
- else if (item.value.path) {
127
- const resolvedPath = actions.resolvePath(item.value.path, node.dataContextPath);
128
- actionContext[item.key] = actions.getData(node, resolvedPath, surfaceId);
129
- }
130
- }
131
- actions.dispatch({ userAction: {
132
- name: action.name,
133
- sourceComponentId: node.id,
134
- surfaceId,
135
- timestamp: (/* @__PURE__ */ new Date()).toISOString(),
136
- context: actionContext
137
- } });
138
- }, [
139
- actions,
140
- node,
141
- surfaceId
142
- ]);
143
- /**
144
- * Generate a unique ID for accessibility purposes.
145
- * Uses React's useId() for SSR and Concurrent Mode compatibility.
146
- */
147
- const getUniqueId = (0, react.useCallback)((prefix) => {
148
- return `${prefix}${baseId}`;
149
- }, [baseId]);
150
- return (0, react.useMemo)(() => ({
151
- theme,
152
- resolveString,
153
- resolveNumber,
154
- resolveBoolean,
155
- setValue,
156
- getValue,
157
- sendAction,
158
- getUniqueId
159
- }), [
160
- theme,
161
- resolveString,
162
- resolveNumber,
163
- resolveBoolean,
164
- setValue,
165
- getValue,
166
- sendAction,
167
- getUniqueId
168
- ]);
169
- }
170
-
171
- //#endregion
172
- exports.useA2UIComponent = useA2UIComponent;
173
- //# sourceMappingURL=useA2UIComponent.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useA2UIComponent.cjs","names":["useA2UIActions","useTheme"],"sources":["../../../src/react-renderer/hooks/useA2UIComponent.ts"],"sourcesContent":["import { useCallback, useId, useMemo } from \"react\";\nimport type { Types, Primitives } from \"@a2ui/lit/0.8\";\nimport { useA2UIActions, useA2UIState } from \"../core/A2UIProvider\";\nimport { useTheme } from \"../theme/ThemeContext\";\n\n/**\n * Result returned by the useA2UIComponent hook.\n */\nexport interface UseA2UIComponentResult {\n /** The current theme */\n theme: Types.Theme;\n\n /** Resolve a StringValue to its actual string value */\n resolveString: (\n value: Primitives.StringValue | null | undefined,\n ) => string | null;\n\n /** Resolve a NumberValue to its actual number value */\n resolveNumber: (\n value: Primitives.NumberValue | null | undefined,\n ) => number | null;\n\n /** Resolve a BooleanValue to its actual boolean value */\n resolveBoolean: (\n value: Primitives.BooleanValue | null | undefined,\n ) => boolean | null;\n\n /** Set a value in the data model (for two-way binding) */\n setValue: (path: string, value: Types.DataValue) => void;\n\n /** Get a value from the data model */\n getValue: (path: string) => Types.DataValue | null;\n\n /** Dispatch a user action */\n sendAction: (action: Types.Action) => void;\n\n /** Generate a unique ID for accessibility */\n getUniqueId: (prefix: string) => string;\n}\n\n/**\n * Base hook for A2UI components. Provides data binding, theme access,\n * and action dispatching.\n *\n * @param node - The component node from the A2UI message processor\n * @param surfaceId - The surface ID this component belongs to\n * @returns Object with theme, data binding helpers, and action dispatcher\n *\n * @example\n * ```tsx\n * function TextField({ node, surfaceId }: A2UIComponentProps<Types.TextFieldNode>) {\n * const { theme, resolveString, setValue } = useA2UIComponent(node, surfaceId);\n *\n * const label = resolveString(node.properties.label);\n * const value = resolveString(node.properties.text) ?? '';\n *\n * return (\n * <div className={classMapToString(theme.components.TextField.container)}>\n * <label>{label}</label>\n * <input\n * value={value}\n * onChange={(e) => setValue(node.properties.text?.path!, e.target.value)}\n * />\n * </div>\n * );\n * }\n * ```\n */\nexport function useA2UIComponent<T extends Types.AnyComponentNode>(\n node: T,\n surfaceId: string,\n): UseA2UIComponentResult {\n // Use stable actions - won't cause re-renders when version changes\n const actions = useA2UIActions();\n const theme = useTheme();\n const baseId = useId();\n\n // Subscribe to data model version - triggers re-render when data changes via setData.\n // This ensures components with path bindings see updated values.\n // memo() doesn't block context-triggered re-renders.\n useA2UIState();\n\n /**\n * Resolve a StringValue to its actual string value.\n * Checks literalString, literal, then path in that order.\n * Note: This reads from data model via stable actions reference.\n */\n const resolveString = useCallback(\n (value: Primitives.StringValue | null | undefined): string | null => {\n if (!value) return null;\n if (typeof value !== \"object\") return null;\n\n if (value.literalString !== undefined) {\n return value.literalString;\n }\n if (value.literal !== undefined) {\n return String(value.literal);\n }\n if (value.path) {\n const data = actions.getData(node, value.path, surfaceId);\n return data !== null ? String(data) : null;\n }\n return null;\n },\n [actions, node, surfaceId],\n );\n\n /**\n * Resolve a NumberValue to its actual number value.\n */\n const resolveNumber = useCallback(\n (value: Primitives.NumberValue | null | undefined): number | null => {\n if (!value) return null;\n if (typeof value !== \"object\") return null;\n\n if (value.literalNumber !== undefined) {\n return value.literalNumber;\n }\n if (value.literal !== undefined) {\n return Number(value.literal);\n }\n if (value.path) {\n const data = actions.getData(node, value.path, surfaceId);\n return data !== null ? Number(data) : null;\n }\n return null;\n },\n [actions, node, surfaceId],\n );\n\n /**\n * Resolve a BooleanValue to its actual boolean value.\n */\n const resolveBoolean = useCallback(\n (value: Primitives.BooleanValue | null | undefined): boolean | null => {\n if (!value) return null;\n if (typeof value !== \"object\") return null;\n\n if (value.literalBoolean !== undefined) {\n return value.literalBoolean;\n }\n if (value.literal !== undefined) {\n return Boolean(value.literal);\n }\n if (value.path) {\n const data = actions.getData(node, value.path, surfaceId);\n return data !== null ? Boolean(data) : null;\n }\n return null;\n },\n [actions, node, surfaceId],\n );\n\n /**\n * Set a value in the data model for two-way binding.\n */\n const setValue = useCallback(\n (path: string, value: Types.DataValue) => {\n actions.setData(node, path, value, surfaceId);\n },\n [actions, node, surfaceId],\n );\n\n /**\n * Get a value from the data model.\n */\n const getValue = useCallback(\n (path: string): Types.DataValue | null => {\n return actions.getData(node, path, surfaceId);\n },\n [actions, node, surfaceId],\n );\n\n /**\n * Dispatch a user action to the server.\n * Resolves all context bindings before dispatching.\n */\n const sendAction = useCallback(\n (action: Types.Action) => {\n const actionContext: Record<string, unknown> = {};\n\n if (action.context) {\n for (const item of action.context) {\n if (item.value.literalString !== undefined) {\n actionContext[item.key] = item.value.literalString;\n } else if (item.value.literalNumber !== undefined) {\n actionContext[item.key] = item.value.literalNumber;\n } else if (item.value.literalBoolean !== undefined) {\n actionContext[item.key] = item.value.literalBoolean;\n } else if (item.value.path) {\n const resolvedPath = actions.resolvePath(\n item.value.path,\n node.dataContextPath,\n );\n actionContext[item.key] = actions.getData(\n node,\n resolvedPath,\n surfaceId,\n );\n }\n }\n }\n\n actions.dispatch({\n userAction: {\n name: action.name,\n sourceComponentId: node.id,\n surfaceId,\n timestamp: new Date().toISOString(),\n context: actionContext,\n },\n });\n },\n [actions, node, surfaceId],\n );\n\n /**\n * Generate a unique ID for accessibility purposes.\n * Uses React's useId() for SSR and Concurrent Mode compatibility.\n */\n const getUniqueId = useCallback(\n (prefix: string) => {\n return `${prefix}${baseId}`;\n },\n [baseId],\n );\n\n return useMemo(\n () => ({\n theme,\n resolveString,\n resolveNumber,\n resolveBoolean,\n setValue,\n getValue,\n sendAction,\n getUniqueId,\n }),\n [\n theme,\n resolveString,\n resolveNumber,\n resolveBoolean,\n setValue,\n getValue,\n sendAction,\n getUniqueId,\n ],\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoEA,SAAgB,iBACd,MACA,WACwB;CAExB,MAAM,UAAUA,qCAAgB;CAChC,MAAM,QAAQC,+BAAU;CACxB,MAAM,2BAAgB;AAKtB,oCAAc;;;;;;CAOd,MAAM,wCACH,UAAoE;AACnE,MAAI,CAAC,MAAO,QAAO;AACnB,MAAI,OAAO,UAAU,SAAU,QAAO;AAEtC,MAAI,MAAM,kBAAkB,OAC1B,QAAO,MAAM;AAEf,MAAI,MAAM,YAAY,OACpB,QAAO,OAAO,MAAM,QAAQ;AAE9B,MAAI,MAAM,MAAM;GACd,MAAM,OAAO,QAAQ,QAAQ,MAAM,MAAM,MAAM,UAAU;AACzD,UAAO,SAAS,OAAO,OAAO,KAAK,GAAG;;AAExC,SAAO;IAET;EAAC;EAAS;EAAM;EAAU,CAC3B;;;;CAKD,MAAM,wCACH,UAAoE;AACnE,MAAI,CAAC,MAAO,QAAO;AACnB,MAAI,OAAO,UAAU,SAAU,QAAO;AAEtC,MAAI,MAAM,kBAAkB,OAC1B,QAAO,MAAM;AAEf,MAAI,MAAM,YAAY,OACpB,QAAO,OAAO,MAAM,QAAQ;AAE9B,MAAI,MAAM,MAAM;GACd,MAAM,OAAO,QAAQ,QAAQ,MAAM,MAAM,MAAM,UAAU;AACzD,UAAO,SAAS,OAAO,OAAO,KAAK,GAAG;;AAExC,SAAO;IAET;EAAC;EAAS;EAAM;EAAU,CAC3B;;;;CAKD,MAAM,yCACH,UAAsE;AACrE,MAAI,CAAC,MAAO,QAAO;AACnB,MAAI,OAAO,UAAU,SAAU,QAAO;AAEtC,MAAI,MAAM,mBAAmB,OAC3B,QAAO,MAAM;AAEf,MAAI,MAAM,YAAY,OACpB,QAAO,QAAQ,MAAM,QAAQ;AAE/B,MAAI,MAAM,MAAM;GACd,MAAM,OAAO,QAAQ,QAAQ,MAAM,MAAM,MAAM,UAAU;AACzD,UAAO,SAAS,OAAO,QAAQ,KAAK,GAAG;;AAEzC,SAAO;IAET;EAAC;EAAS;EAAM;EAAU,CAC3B;;;;CAKD,MAAM,mCACH,MAAc,UAA2B;AACxC,UAAQ,QAAQ,MAAM,MAAM,OAAO,UAAU;IAE/C;EAAC;EAAS;EAAM;EAAU,CAC3B;;;;CAKD,MAAM,mCACH,SAAyC;AACxC,SAAO,QAAQ,QAAQ,MAAM,MAAM,UAAU;IAE/C;EAAC;EAAS;EAAM;EAAU,CAC3B;;;;;CAMD,MAAM,qCACH,WAAyB;EACxB,MAAM,gBAAyC,EAAE;AAEjD,MAAI,OAAO,SACT;QAAK,MAAM,QAAQ,OAAO,QACxB,KAAI,KAAK,MAAM,kBAAkB,OAC/B,eAAc,KAAK,OAAO,KAAK,MAAM;YAC5B,KAAK,MAAM,kBAAkB,OACtC,eAAc,KAAK,OAAO,KAAK,MAAM;YAC5B,KAAK,MAAM,mBAAmB,OACvC,eAAc,KAAK,OAAO,KAAK,MAAM;YAC5B,KAAK,MAAM,MAAM;IAC1B,MAAM,eAAe,QAAQ,YAC3B,KAAK,MAAM,MACX,KAAK,gBACN;AACD,kBAAc,KAAK,OAAO,QAAQ,QAChC,MACA,cACA,UACD;;;AAKP,UAAQ,SAAS,EACf,YAAY;GACV,MAAM,OAAO;GACb,mBAAmB,KAAK;GACxB;GACA,4BAAW,IAAI,MAAM,EAAC,aAAa;GACnC,SAAS;GACV,EACF,CAAC;IAEJ;EAAC;EAAS;EAAM;EAAU,CAC3B;;;;;CAMD,MAAM,sCACH,WAAmB;AAClB,SAAO,GAAG,SAAS;IAErB,CAAC,OAAO,CACT;AAED,kCACS;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,GACD;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CACF"}
@@ -1,56 +0,0 @@
1
- import { Primitives, Types } from "@a2ui/lit/0.8";
2
-
3
- //#region src/react-renderer/hooks/useA2UIComponent.d.ts
4
- /**
5
- * Result returned by the useA2UIComponent hook.
6
- */
7
- interface UseA2UIComponentResult {
8
- /** The current theme */
9
- theme: Types.Theme;
10
- /** Resolve a StringValue to its actual string value */
11
- resolveString: (value: Primitives.StringValue | null | undefined) => string | null;
12
- /** Resolve a NumberValue to its actual number value */
13
- resolveNumber: (value: Primitives.NumberValue | null | undefined) => number | null;
14
- /** Resolve a BooleanValue to its actual boolean value */
15
- resolveBoolean: (value: Primitives.BooleanValue | null | undefined) => boolean | null;
16
- /** Set a value in the data model (for two-way binding) */
17
- setValue: (path: string, value: Types.DataValue) => void;
18
- /** Get a value from the data model */
19
- getValue: (path: string) => Types.DataValue | null;
20
- /** Dispatch a user action */
21
- sendAction: (action: Types.Action) => void;
22
- /** Generate a unique ID for accessibility */
23
- getUniqueId: (prefix: string) => string;
24
- }
25
- /**
26
- * Base hook for A2UI components. Provides data binding, theme access,
27
- * and action dispatching.
28
- *
29
- * @param node - The component node from the A2UI message processor
30
- * @param surfaceId - The surface ID this component belongs to
31
- * @returns Object with theme, data binding helpers, and action dispatcher
32
- *
33
- * @example
34
- * ```tsx
35
- * function TextField({ node, surfaceId }: A2UIComponentProps<Types.TextFieldNode>) {
36
- * const { theme, resolveString, setValue } = useA2UIComponent(node, surfaceId);
37
- *
38
- * const label = resolveString(node.properties.label);
39
- * const value = resolveString(node.properties.text) ?? '';
40
- *
41
- * return (
42
- * <div className={classMapToString(theme.components.TextField.container)}>
43
- * <label>{label}</label>
44
- * <input
45
- * value={value}
46
- * onChange={(e) => setValue(node.properties.text?.path!, e.target.value)}
47
- * />
48
- * </div>
49
- * );
50
- * }
51
- * ```
52
- */
53
- declare function useA2UIComponent<T extends Types.AnyComponentNode>(node: T, surfaceId: string): UseA2UIComponentResult;
54
- //#endregion
55
- export { UseA2UIComponentResult, useA2UIComponent };
56
- //# sourceMappingURL=useA2UIComponent.d.cts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useA2UIComponent.d.cts","names":[],"sources":["../../../src/react-renderer/hooks/useA2UIComponent.ts"],"mappings":";;;;;AAQA;UAAiB,sBAAA;;EAEf,KAAA,EAAO,KAAA,CAAM,KAAA;EAIJ;EADT,aAAA,GACE,KAAA,EAAO,UAAA,CAAW,WAAA;EAUX;EANT,aAAA,GACE,KAAA,EAAO,UAAA,CAAW,WAAA;EAYQ;EAR5B,cAAA,GACE,KAAA,EAAO,UAAA,CAAW,YAAA;EAUa;EANjC,QAAA,GAAW,IAAA,UAAc,KAAA,EAAO,KAAA,CAAM,SAAA;EAlBtC;EAqBA,QAAA,GAAW,IAAA,aAAiB,KAAA,CAAM,SAAA;EArBrB;EAwBb,UAAA,GAAa,MAAA,EAAQ,KAAA,CAAM,MAAA;EApBlB;EAuBT,WAAA,GAAc,MAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BhB;;;iBAAgB,gBAAA,WAA2B,KAAA,CAAM,gBAAA,CAAA,CAC/C,IAAA,EAAM,CAAA,EACN,SAAA,WACC,sBAAA"}
@@ -1,56 +0,0 @@
1
- import { Primitives, Types } from "@a2ui/lit/0.8";
2
-
3
- //#region src/react-renderer/hooks/useA2UIComponent.d.ts
4
- /**
5
- * Result returned by the useA2UIComponent hook.
6
- */
7
- interface UseA2UIComponentResult {
8
- /** The current theme */
9
- theme: Types.Theme;
10
- /** Resolve a StringValue to its actual string value */
11
- resolveString: (value: Primitives.StringValue | null | undefined) => string | null;
12
- /** Resolve a NumberValue to its actual number value */
13
- resolveNumber: (value: Primitives.NumberValue | null | undefined) => number | null;
14
- /** Resolve a BooleanValue to its actual boolean value */
15
- resolveBoolean: (value: Primitives.BooleanValue | null | undefined) => boolean | null;
16
- /** Set a value in the data model (for two-way binding) */
17
- setValue: (path: string, value: Types.DataValue) => void;
18
- /** Get a value from the data model */
19
- getValue: (path: string) => Types.DataValue | null;
20
- /** Dispatch a user action */
21
- sendAction: (action: Types.Action) => void;
22
- /** Generate a unique ID for accessibility */
23
- getUniqueId: (prefix: string) => string;
24
- }
25
- /**
26
- * Base hook for A2UI components. Provides data binding, theme access,
27
- * and action dispatching.
28
- *
29
- * @param node - The component node from the A2UI message processor
30
- * @param surfaceId - The surface ID this component belongs to
31
- * @returns Object with theme, data binding helpers, and action dispatcher
32
- *
33
- * @example
34
- * ```tsx
35
- * function TextField({ node, surfaceId }: A2UIComponentProps<Types.TextFieldNode>) {
36
- * const { theme, resolveString, setValue } = useA2UIComponent(node, surfaceId);
37
- *
38
- * const label = resolveString(node.properties.label);
39
- * const value = resolveString(node.properties.text) ?? '';
40
- *
41
- * return (
42
- * <div className={classMapToString(theme.components.TextField.container)}>
43
- * <label>{label}</label>
44
- * <input
45
- * value={value}
46
- * onChange={(e) => setValue(node.properties.text?.path!, e.target.value)}
47
- * />
48
- * </div>
49
- * );
50
- * }
51
- * ```
52
- */
53
- declare function useA2UIComponent<T extends Types.AnyComponentNode>(node: T, surfaceId: string): UseA2UIComponentResult;
54
- //#endregion
55
- export { UseA2UIComponentResult, useA2UIComponent };
56
- //# sourceMappingURL=useA2UIComponent.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useA2UIComponent.d.mts","names":[],"sources":["../../../src/react-renderer/hooks/useA2UIComponent.ts"],"mappings":";;;;;AAQA;UAAiB,sBAAA;;EAEf,KAAA,EAAO,KAAA,CAAM,KAAA;EAIJ;EADT,aAAA,GACE,KAAA,EAAO,UAAA,CAAW,WAAA;EAUX;EANT,aAAA,GACE,KAAA,EAAO,UAAA,CAAW,WAAA;EAYQ;EAR5B,cAAA,GACE,KAAA,EAAO,UAAA,CAAW,YAAA;EAUa;EANjC,QAAA,GAAW,IAAA,UAAc,KAAA,EAAO,KAAA,CAAM,SAAA;EAlBtC;EAqBA,QAAA,GAAW,IAAA,aAAiB,KAAA,CAAM,SAAA;EArBrB;EAwBb,UAAA,GAAa,MAAA,EAAQ,KAAA,CAAM,MAAA;EApBlB;EAuBT,WAAA,GAAc,MAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BhB;;;iBAAgB,gBAAA,WAA2B,KAAA,CAAM,gBAAA,CAAA,CAC/C,IAAA,EAAM,CAAA,EACN,SAAA,WACC,sBAAA"}
@@ -1,172 +0,0 @@
1
- import { useTheme } from "../theme/ThemeContext.mjs";
2
- import { useA2UIActions, useA2UIState } from "../core/A2UIProvider.mjs";
3
- import { useCallback, useId, useMemo } from "react";
4
-
5
- //#region src/react-renderer/hooks/useA2UIComponent.ts
6
- /**
7
- * Base hook for A2UI components. Provides data binding, theme access,
8
- * and action dispatching.
9
- *
10
- * @param node - The component node from the A2UI message processor
11
- * @param surfaceId - The surface ID this component belongs to
12
- * @returns Object with theme, data binding helpers, and action dispatcher
13
- *
14
- * @example
15
- * ```tsx
16
- * function TextField({ node, surfaceId }: A2UIComponentProps<Types.TextFieldNode>) {
17
- * const { theme, resolveString, setValue } = useA2UIComponent(node, surfaceId);
18
- *
19
- * const label = resolveString(node.properties.label);
20
- * const value = resolveString(node.properties.text) ?? '';
21
- *
22
- * return (
23
- * <div className={classMapToString(theme.components.TextField.container)}>
24
- * <label>{label}</label>
25
- * <input
26
- * value={value}
27
- * onChange={(e) => setValue(node.properties.text?.path!, e.target.value)}
28
- * />
29
- * </div>
30
- * );
31
- * }
32
- * ```
33
- */
34
- function useA2UIComponent(node, surfaceId) {
35
- const actions = useA2UIActions();
36
- const theme = useTheme();
37
- const baseId = useId();
38
- useA2UIState();
39
- /**
40
- * Resolve a StringValue to its actual string value.
41
- * Checks literalString, literal, then path in that order.
42
- * Note: This reads from data model via stable actions reference.
43
- */
44
- const resolveString = useCallback((value) => {
45
- if (!value) return null;
46
- if (typeof value !== "object") return null;
47
- if (value.literalString !== void 0) return value.literalString;
48
- if (value.literal !== void 0) return String(value.literal);
49
- if (value.path) {
50
- const data = actions.getData(node, value.path, surfaceId);
51
- return data !== null ? String(data) : null;
52
- }
53
- return null;
54
- }, [
55
- actions,
56
- node,
57
- surfaceId
58
- ]);
59
- /**
60
- * Resolve a NumberValue to its actual number value.
61
- */
62
- const resolveNumber = useCallback((value) => {
63
- if (!value) return null;
64
- if (typeof value !== "object") return null;
65
- if (value.literalNumber !== void 0) return value.literalNumber;
66
- if (value.literal !== void 0) return Number(value.literal);
67
- if (value.path) {
68
- const data = actions.getData(node, value.path, surfaceId);
69
- return data !== null ? Number(data) : null;
70
- }
71
- return null;
72
- }, [
73
- actions,
74
- node,
75
- surfaceId
76
- ]);
77
- /**
78
- * Resolve a BooleanValue to its actual boolean value.
79
- */
80
- const resolveBoolean = useCallback((value) => {
81
- if (!value) return null;
82
- if (typeof value !== "object") return null;
83
- if (value.literalBoolean !== void 0) return value.literalBoolean;
84
- if (value.literal !== void 0) return Boolean(value.literal);
85
- if (value.path) {
86
- const data = actions.getData(node, value.path, surfaceId);
87
- return data !== null ? Boolean(data) : null;
88
- }
89
- return null;
90
- }, [
91
- actions,
92
- node,
93
- surfaceId
94
- ]);
95
- /**
96
- * Set a value in the data model for two-way binding.
97
- */
98
- const setValue = useCallback((path, value) => {
99
- actions.setData(node, path, value, surfaceId);
100
- }, [
101
- actions,
102
- node,
103
- surfaceId
104
- ]);
105
- /**
106
- * Get a value from the data model.
107
- */
108
- const getValue = useCallback((path) => {
109
- return actions.getData(node, path, surfaceId);
110
- }, [
111
- actions,
112
- node,
113
- surfaceId
114
- ]);
115
- /**
116
- * Dispatch a user action to the server.
117
- * Resolves all context bindings before dispatching.
118
- */
119
- const sendAction = useCallback((action) => {
120
- const actionContext = {};
121
- if (action.context) {
122
- for (const item of action.context) if (item.value.literalString !== void 0) actionContext[item.key] = item.value.literalString;
123
- else if (item.value.literalNumber !== void 0) actionContext[item.key] = item.value.literalNumber;
124
- else if (item.value.literalBoolean !== void 0) actionContext[item.key] = item.value.literalBoolean;
125
- else if (item.value.path) {
126
- const resolvedPath = actions.resolvePath(item.value.path, node.dataContextPath);
127
- actionContext[item.key] = actions.getData(node, resolvedPath, surfaceId);
128
- }
129
- }
130
- actions.dispatch({ userAction: {
131
- name: action.name,
132
- sourceComponentId: node.id,
133
- surfaceId,
134
- timestamp: (/* @__PURE__ */ new Date()).toISOString(),
135
- context: actionContext
136
- } });
137
- }, [
138
- actions,
139
- node,
140
- surfaceId
141
- ]);
142
- /**
143
- * Generate a unique ID for accessibility purposes.
144
- * Uses React's useId() for SSR and Concurrent Mode compatibility.
145
- */
146
- const getUniqueId = useCallback((prefix) => {
147
- return `${prefix}${baseId}`;
148
- }, [baseId]);
149
- return useMemo(() => ({
150
- theme,
151
- resolveString,
152
- resolveNumber,
153
- resolveBoolean,
154
- setValue,
155
- getValue,
156
- sendAction,
157
- getUniqueId
158
- }), [
159
- theme,
160
- resolveString,
161
- resolveNumber,
162
- resolveBoolean,
163
- setValue,
164
- getValue,
165
- sendAction,
166
- getUniqueId
167
- ]);
168
- }
169
-
170
- //#endregion
171
- export { useA2UIComponent };
172
- //# sourceMappingURL=useA2UIComponent.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useA2UIComponent.mjs","names":[],"sources":["../../../src/react-renderer/hooks/useA2UIComponent.ts"],"sourcesContent":["import { useCallback, useId, useMemo } from \"react\";\nimport type { Types, Primitives } from \"@a2ui/lit/0.8\";\nimport { useA2UIActions, useA2UIState } from \"../core/A2UIProvider\";\nimport { useTheme } from \"../theme/ThemeContext\";\n\n/**\n * Result returned by the useA2UIComponent hook.\n */\nexport interface UseA2UIComponentResult {\n /** The current theme */\n theme: Types.Theme;\n\n /** Resolve a StringValue to its actual string value */\n resolveString: (\n value: Primitives.StringValue | null | undefined,\n ) => string | null;\n\n /** Resolve a NumberValue to its actual number value */\n resolveNumber: (\n value: Primitives.NumberValue | null | undefined,\n ) => number | null;\n\n /** Resolve a BooleanValue to its actual boolean value */\n resolveBoolean: (\n value: Primitives.BooleanValue | null | undefined,\n ) => boolean | null;\n\n /** Set a value in the data model (for two-way binding) */\n setValue: (path: string, value: Types.DataValue) => void;\n\n /** Get a value from the data model */\n getValue: (path: string) => Types.DataValue | null;\n\n /** Dispatch a user action */\n sendAction: (action: Types.Action) => void;\n\n /** Generate a unique ID for accessibility */\n getUniqueId: (prefix: string) => string;\n}\n\n/**\n * Base hook for A2UI components. Provides data binding, theme access,\n * and action dispatching.\n *\n * @param node - The component node from the A2UI message processor\n * @param surfaceId - The surface ID this component belongs to\n * @returns Object with theme, data binding helpers, and action dispatcher\n *\n * @example\n * ```tsx\n * function TextField({ node, surfaceId }: A2UIComponentProps<Types.TextFieldNode>) {\n * const { theme, resolveString, setValue } = useA2UIComponent(node, surfaceId);\n *\n * const label = resolveString(node.properties.label);\n * const value = resolveString(node.properties.text) ?? '';\n *\n * return (\n * <div className={classMapToString(theme.components.TextField.container)}>\n * <label>{label}</label>\n * <input\n * value={value}\n * onChange={(e) => setValue(node.properties.text?.path!, e.target.value)}\n * />\n * </div>\n * );\n * }\n * ```\n */\nexport function useA2UIComponent<T extends Types.AnyComponentNode>(\n node: T,\n surfaceId: string,\n): UseA2UIComponentResult {\n // Use stable actions - won't cause re-renders when version changes\n const actions = useA2UIActions();\n const theme = useTheme();\n const baseId = useId();\n\n // Subscribe to data model version - triggers re-render when data changes via setData.\n // This ensures components with path bindings see updated values.\n // memo() doesn't block context-triggered re-renders.\n useA2UIState();\n\n /**\n * Resolve a StringValue to its actual string value.\n * Checks literalString, literal, then path in that order.\n * Note: This reads from data model via stable actions reference.\n */\n const resolveString = useCallback(\n (value: Primitives.StringValue | null | undefined): string | null => {\n if (!value) return null;\n if (typeof value !== \"object\") return null;\n\n if (value.literalString !== undefined) {\n return value.literalString;\n }\n if (value.literal !== undefined) {\n return String(value.literal);\n }\n if (value.path) {\n const data = actions.getData(node, value.path, surfaceId);\n return data !== null ? String(data) : null;\n }\n return null;\n },\n [actions, node, surfaceId],\n );\n\n /**\n * Resolve a NumberValue to its actual number value.\n */\n const resolveNumber = useCallback(\n (value: Primitives.NumberValue | null | undefined): number | null => {\n if (!value) return null;\n if (typeof value !== \"object\") return null;\n\n if (value.literalNumber !== undefined) {\n return value.literalNumber;\n }\n if (value.literal !== undefined) {\n return Number(value.literal);\n }\n if (value.path) {\n const data = actions.getData(node, value.path, surfaceId);\n return data !== null ? Number(data) : null;\n }\n return null;\n },\n [actions, node, surfaceId],\n );\n\n /**\n * Resolve a BooleanValue to its actual boolean value.\n */\n const resolveBoolean = useCallback(\n (value: Primitives.BooleanValue | null | undefined): boolean | null => {\n if (!value) return null;\n if (typeof value !== \"object\") return null;\n\n if (value.literalBoolean !== undefined) {\n return value.literalBoolean;\n }\n if (value.literal !== undefined) {\n return Boolean(value.literal);\n }\n if (value.path) {\n const data = actions.getData(node, value.path, surfaceId);\n return data !== null ? Boolean(data) : null;\n }\n return null;\n },\n [actions, node, surfaceId],\n );\n\n /**\n * Set a value in the data model for two-way binding.\n */\n const setValue = useCallback(\n (path: string, value: Types.DataValue) => {\n actions.setData(node, path, value, surfaceId);\n },\n [actions, node, surfaceId],\n );\n\n /**\n * Get a value from the data model.\n */\n const getValue = useCallback(\n (path: string): Types.DataValue | null => {\n return actions.getData(node, path, surfaceId);\n },\n [actions, node, surfaceId],\n );\n\n /**\n * Dispatch a user action to the server.\n * Resolves all context bindings before dispatching.\n */\n const sendAction = useCallback(\n (action: Types.Action) => {\n const actionContext: Record<string, unknown> = {};\n\n if (action.context) {\n for (const item of action.context) {\n if (item.value.literalString !== undefined) {\n actionContext[item.key] = item.value.literalString;\n } else if (item.value.literalNumber !== undefined) {\n actionContext[item.key] = item.value.literalNumber;\n } else if (item.value.literalBoolean !== undefined) {\n actionContext[item.key] = item.value.literalBoolean;\n } else if (item.value.path) {\n const resolvedPath = actions.resolvePath(\n item.value.path,\n node.dataContextPath,\n );\n actionContext[item.key] = actions.getData(\n node,\n resolvedPath,\n surfaceId,\n );\n }\n }\n }\n\n actions.dispatch({\n userAction: {\n name: action.name,\n sourceComponentId: node.id,\n surfaceId,\n timestamp: new Date().toISOString(),\n context: actionContext,\n },\n });\n },\n [actions, node, surfaceId],\n );\n\n /**\n * Generate a unique ID for accessibility purposes.\n * Uses React's useId() for SSR and Concurrent Mode compatibility.\n */\n const getUniqueId = useCallback(\n (prefix: string) => {\n return `${prefix}${baseId}`;\n },\n [baseId],\n );\n\n return useMemo(\n () => ({\n theme,\n resolveString,\n resolveNumber,\n resolveBoolean,\n setValue,\n getValue,\n sendAction,\n getUniqueId,\n }),\n [\n theme,\n resolveString,\n resolveNumber,\n resolveBoolean,\n setValue,\n getValue,\n sendAction,\n getUniqueId,\n ],\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoEA,SAAgB,iBACd,MACA,WACwB;CAExB,MAAM,UAAU,gBAAgB;CAChC,MAAM,QAAQ,UAAU;CACxB,MAAM,SAAS,OAAO;AAKtB,eAAc;;;;;;CAOd,MAAM,gBAAgB,aACnB,UAAoE;AACnE,MAAI,CAAC,MAAO,QAAO;AACnB,MAAI,OAAO,UAAU,SAAU,QAAO;AAEtC,MAAI,MAAM,kBAAkB,OAC1B,QAAO,MAAM;AAEf,MAAI,MAAM,YAAY,OACpB,QAAO,OAAO,MAAM,QAAQ;AAE9B,MAAI,MAAM,MAAM;GACd,MAAM,OAAO,QAAQ,QAAQ,MAAM,MAAM,MAAM,UAAU;AACzD,UAAO,SAAS,OAAO,OAAO,KAAK,GAAG;;AAExC,SAAO;IAET;EAAC;EAAS;EAAM;EAAU,CAC3B;;;;CAKD,MAAM,gBAAgB,aACnB,UAAoE;AACnE,MAAI,CAAC,MAAO,QAAO;AACnB,MAAI,OAAO,UAAU,SAAU,QAAO;AAEtC,MAAI,MAAM,kBAAkB,OAC1B,QAAO,MAAM;AAEf,MAAI,MAAM,YAAY,OACpB,QAAO,OAAO,MAAM,QAAQ;AAE9B,MAAI,MAAM,MAAM;GACd,MAAM,OAAO,QAAQ,QAAQ,MAAM,MAAM,MAAM,UAAU;AACzD,UAAO,SAAS,OAAO,OAAO,KAAK,GAAG;;AAExC,SAAO;IAET;EAAC;EAAS;EAAM;EAAU,CAC3B;;;;CAKD,MAAM,iBAAiB,aACpB,UAAsE;AACrE,MAAI,CAAC,MAAO,QAAO;AACnB,MAAI,OAAO,UAAU,SAAU,QAAO;AAEtC,MAAI,MAAM,mBAAmB,OAC3B,QAAO,MAAM;AAEf,MAAI,MAAM,YAAY,OACpB,QAAO,QAAQ,MAAM,QAAQ;AAE/B,MAAI,MAAM,MAAM;GACd,MAAM,OAAO,QAAQ,QAAQ,MAAM,MAAM,MAAM,UAAU;AACzD,UAAO,SAAS,OAAO,QAAQ,KAAK,GAAG;;AAEzC,SAAO;IAET;EAAC;EAAS;EAAM;EAAU,CAC3B;;;;CAKD,MAAM,WAAW,aACd,MAAc,UAA2B;AACxC,UAAQ,QAAQ,MAAM,MAAM,OAAO,UAAU;IAE/C;EAAC;EAAS;EAAM;EAAU,CAC3B;;;;CAKD,MAAM,WAAW,aACd,SAAyC;AACxC,SAAO,QAAQ,QAAQ,MAAM,MAAM,UAAU;IAE/C;EAAC;EAAS;EAAM;EAAU,CAC3B;;;;;CAMD,MAAM,aAAa,aAChB,WAAyB;EACxB,MAAM,gBAAyC,EAAE;AAEjD,MAAI,OAAO,SACT;QAAK,MAAM,QAAQ,OAAO,QACxB,KAAI,KAAK,MAAM,kBAAkB,OAC/B,eAAc,KAAK,OAAO,KAAK,MAAM;YAC5B,KAAK,MAAM,kBAAkB,OACtC,eAAc,KAAK,OAAO,KAAK,MAAM;YAC5B,KAAK,MAAM,mBAAmB,OACvC,eAAc,KAAK,OAAO,KAAK,MAAM;YAC5B,KAAK,MAAM,MAAM;IAC1B,MAAM,eAAe,QAAQ,YAC3B,KAAK,MAAM,MACX,KAAK,gBACN;AACD,kBAAc,KAAK,OAAO,QAAQ,QAChC,MACA,cACA,UACD;;;AAKP,UAAQ,SAAS,EACf,YAAY;GACV,MAAM,OAAO;GACb,mBAAmB,KAAK;GACxB;GACA,4BAAW,IAAI,MAAM,EAAC,aAAa;GACnC,SAAS;GACV,EACF,CAAC;IAEJ;EAAC;EAAS;EAAM;EAAU,CAC3B;;;;;CAMD,MAAM,cAAc,aACjB,WAAmB;AAClB,SAAO,GAAG,SAAS;IAErB,CAAC,OAAO,CACT;AAED,QAAO,eACE;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,GACD;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CACF"}
@@ -1,114 +0,0 @@
1
- const require_runtime = require('../../_virtual/_rolldown/runtime.cjs');
2
- let react = require("react");
3
-
4
- //#region src/react-renderer/registry/ComponentRegistry.ts
5
- /**
6
- * Registry for A2UI components. Allows registration of custom components
7
- * and supports lazy loading for code splitting.
8
- *
9
- * @example
10
- * ```tsx
11
- * const registry = new ComponentRegistry();
12
- *
13
- * // Register a component directly
14
- * registry.register('Text', { component: Text });
15
- *
16
- * // Register with lazy loading
17
- * registry.register('Modal', {
18
- * component: () => import('./components/Modal'),
19
- * lazy: true
20
- * });
21
- *
22
- * // Use with A2UIRenderer
23
- * <A2UIRenderer surfaceId="main" registry={registry} />
24
- * ```
25
- */
26
- var ComponentRegistry = class ComponentRegistry {
27
- constructor() {
28
- this.registry = /* @__PURE__ */ new Map();
29
- this.lazyCache = /* @__PURE__ */ new Map();
30
- }
31
- static {
32
- this._instance = null;
33
- }
34
- /**
35
- * Get the singleton instance of the registry.
36
- * Use this for the default global registry.
37
- */
38
- static getInstance() {
39
- if (!ComponentRegistry._instance) ComponentRegistry._instance = new ComponentRegistry();
40
- return ComponentRegistry._instance;
41
- }
42
- /**
43
- * Reset the singleton instance.
44
- * Useful for testing.
45
- */
46
- static resetInstance() {
47
- ComponentRegistry._instance = null;
48
- }
49
- /**
50
- * Register a component type.
51
- *
52
- * @param type - The A2UI component type name (e.g., 'Text', 'Button')
53
- * @param registration - The component registration
54
- */
55
- register(type, registration) {
56
- this.registry.set(type, registration);
57
- }
58
- /**
59
- * Unregister a component type.
60
- *
61
- * @param type - The component type to unregister
62
- */
63
- unregister(type) {
64
- this.registry.delete(type);
65
- this.lazyCache.delete(type);
66
- }
67
- /**
68
- * Check if a component type is registered.
69
- *
70
- * @param type - The component type to check
71
- * @returns True if the component is registered
72
- */
73
- has(type) {
74
- return this.registry.has(type);
75
- }
76
- /**
77
- * Get a component by type. If the component is registered with lazy loading,
78
- * returns a React.lazy wrapped component.
79
- *
80
- * @param type - The component type to get
81
- * @returns The React component, or null if not found
82
- */
83
- get(type) {
84
- const registration = this.registry.get(type);
85
- if (!registration) return null;
86
- if (registration.lazy && typeof registration.component === "function") {
87
- const cached = this.lazyCache.get(type);
88
- if (cached) return cached;
89
- const lazyComponent = (0, react.lazy)(registration.component);
90
- this.lazyCache.set(type, lazyComponent);
91
- return lazyComponent;
92
- }
93
- return registration.component;
94
- }
95
- /**
96
- * Get all registered component types.
97
- *
98
- * @returns Array of registered type names
99
- */
100
- getRegisteredTypes() {
101
- return Array.from(this.registry.keys());
102
- }
103
- /**
104
- * Clear all registrations.
105
- */
106
- clear() {
107
- this.registry.clear();
108
- this.lazyCache.clear();
109
- }
110
- };
111
-
112
- //#endregion
113
- exports.ComponentRegistry = ComponentRegistry;
114
- //# sourceMappingURL=ComponentRegistry.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ComponentRegistry.cjs","names":[],"sources":["../../../src/react-renderer/registry/ComponentRegistry.ts"],"sourcesContent":["import { lazy, type ComponentType } from \"react\";\nimport type { Types } from \"@a2ui/lit/0.8\";\nimport type {\n A2UIComponentProps,\n ComponentLoader,\n ComponentRegistration,\n} from \"../types\";\n\n/**\n * Registry for A2UI components. Allows registration of custom components\n * and supports lazy loading for code splitting.\n *\n * @example\n * ```tsx\n * const registry = new ComponentRegistry();\n *\n * // Register a component directly\n * registry.register('Text', { component: Text });\n *\n * // Register with lazy loading\n * registry.register('Modal', {\n * component: () => import('./components/Modal'),\n * lazy: true\n * });\n *\n * // Use with A2UIRenderer\n * <A2UIRenderer surfaceId=\"main\" registry={registry} />\n * ```\n */\nexport class ComponentRegistry {\n private static _instance: ComponentRegistry | null = null;\n private registry = new Map<string, ComponentRegistration>();\n private lazyCache = new Map<string, ComponentType<A2UIComponentProps>>();\n\n /**\n * Get the singleton instance of the registry.\n * Use this for the default global registry.\n */\n static getInstance(): ComponentRegistry {\n if (!ComponentRegistry._instance) {\n ComponentRegistry._instance = new ComponentRegistry();\n }\n return ComponentRegistry._instance;\n }\n\n /**\n * Reset the singleton instance.\n * Useful for testing.\n */\n static resetInstance(): void {\n ComponentRegistry._instance = null;\n }\n\n /**\n * Register a component type.\n *\n * @param type - The A2UI component type name (e.g., 'Text', 'Button')\n * @param registration - The component registration\n */\n register<T extends Types.AnyComponentNode>(\n type: string,\n registration: ComponentRegistration<T>,\n ): void {\n this.registry.set(type, registration as unknown as ComponentRegistration);\n }\n\n /**\n * Unregister a component type.\n *\n * @param type - The component type to unregister\n */\n unregister(type: string): void {\n this.registry.delete(type);\n this.lazyCache.delete(type);\n }\n\n /**\n * Check if a component type is registered.\n *\n * @param type - The component type to check\n * @returns True if the component is registered\n */\n has(type: string): boolean {\n return this.registry.has(type);\n }\n\n /**\n * Get a component by type. If the component is registered with lazy loading,\n * returns a React.lazy wrapped component.\n *\n * @param type - The component type to get\n * @returns The React component, or null if not found\n */\n get(type: string): ComponentType<A2UIComponentProps> | null {\n const registration = this.registry.get(type);\n if (!registration) return null;\n\n // If lazy loading is enabled and the component is a loader function\n if (registration.lazy && typeof registration.component === \"function\") {\n // Check cache first\n const cached = this.lazyCache.get(type);\n if (cached) return cached;\n\n // Create lazy component and cache it\n const lazyComponent = lazy(registration.component as ComponentLoader);\n this.lazyCache.set(type, lazyComponent);\n return lazyComponent;\n }\n\n return registration.component as ComponentType<A2UIComponentProps>;\n }\n\n /**\n * Get all registered component types.\n *\n * @returns Array of registered type names\n */\n getRegisteredTypes(): string[] {\n return Array.from(this.registry.keys());\n }\n\n /**\n * Clear all registrations.\n */\n clear(): void {\n this.registry.clear();\n this.lazyCache.clear();\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,IAAa,oBAAb,MAAa,kBAAkB;;kCAEV,IAAI,KAAoC;mCACvC,IAAI,KAAgD;;;mBAFnB;;;;;;CAQrD,OAAO,cAAiC;AACtC,MAAI,CAAC,kBAAkB,UACrB,mBAAkB,YAAY,IAAI,mBAAmB;AAEvD,SAAO,kBAAkB;;;;;;CAO3B,OAAO,gBAAsB;AAC3B,oBAAkB,YAAY;;;;;;;;CAShC,SACE,MACA,cACM;AACN,OAAK,SAAS,IAAI,MAAM,aAAiD;;;;;;;CAQ3E,WAAW,MAAoB;AAC7B,OAAK,SAAS,OAAO,KAAK;AAC1B,OAAK,UAAU,OAAO,KAAK;;;;;;;;CAS7B,IAAI,MAAuB;AACzB,SAAO,KAAK,SAAS,IAAI,KAAK;;;;;;;;;CAUhC,IAAI,MAAwD;EAC1D,MAAM,eAAe,KAAK,SAAS,IAAI,KAAK;AAC5C,MAAI,CAAC,aAAc,QAAO;AAG1B,MAAI,aAAa,QAAQ,OAAO,aAAa,cAAc,YAAY;GAErE,MAAM,SAAS,KAAK,UAAU,IAAI,KAAK;AACvC,OAAI,OAAQ,QAAO;GAGnB,MAAM,gCAAqB,aAAa,UAA6B;AACrE,QAAK,UAAU,IAAI,MAAM,cAAc;AACvC,UAAO;;AAGT,SAAO,aAAa;;;;;;;CAQtB,qBAA+B;AAC7B,SAAO,MAAM,KAAK,KAAK,SAAS,MAAM,CAAC;;;;;CAMzC,QAAc;AACZ,OAAK,SAAS,OAAO;AACrB,OAAK,UAAU,OAAO"}