@vendoai/ui 0.4.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 (525) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +7 -0
  3. package/dist/chrome/activity-ledger.d.ts +14 -0
  4. package/dist/chrome/activity-ledger.d.ts.map +1 -0
  5. package/dist/chrome/activity-ledger.js +40 -0
  6. package/dist/chrome/activity-ledger.js.map +1 -0
  7. package/dist/chrome/activity-panel.d.ts +7 -0
  8. package/dist/chrome/activity-panel.d.ts.map +1 -0
  9. package/dist/chrome/activity-panel.js +27 -0
  10. package/dist/chrome/activity-panel.js.map +1 -0
  11. package/dist/chrome/activity-semantics.d.ts +42 -0
  12. package/dist/chrome/activity-semantics.d.ts.map +1 -0
  13. package/dist/chrome/activity-semantics.js +119 -0
  14. package/dist/chrome/activity-semantics.js.map +1 -0
  15. package/dist/chrome/approval-card.d.ts +22 -0
  16. package/dist/chrome/approval-card.d.ts.map +1 -0
  17. package/dist/chrome/approval-card.js +95 -0
  18. package/dist/chrome/approval-card.js.map +1 -0
  19. package/dist/chrome/approval-sheet.d.ts +23 -0
  20. package/dist/chrome/approval-sheet.d.ts.map +1 -0
  21. package/dist/chrome/approval-sheet.js +72 -0
  22. package/dist/chrome/approval-sheet.js.map +1 -0
  23. package/dist/chrome/automations-panel.d.ts +3 -0
  24. package/dist/chrome/automations-panel.d.ts.map +1 -0
  25. package/dist/chrome/automations-panel.js +305 -0
  26. package/dist/chrome/automations-panel.js.map +1 -0
  27. package/dist/chrome/build-beat.d.ts +70 -0
  28. package/dist/chrome/build-beat.d.ts.map +1 -0
  29. package/dist/chrome/build-beat.js +101 -0
  30. package/dist/chrome/build-beat.js.map +1 -0
  31. package/dist/chrome/chrome-css.d.ts +7 -0
  32. package/dist/chrome/chrome-css.d.ts.map +1 -0
  33. package/dist/chrome/chrome-css.js +2042 -0
  34. package/dist/chrome/chrome-css.js.map +1 -0
  35. package/dist/chrome/chrome-root.d.ts +13 -0
  36. package/dist/chrome/chrome-root.d.ts.map +1 -0
  37. package/dist/chrome/chrome-root.js +39 -0
  38. package/dist/chrome/chrome-root.js.map +1 -0
  39. package/dist/chrome/clipboard.d.ts +4 -0
  40. package/dist/chrome/clipboard.d.ts.map +1 -0
  41. package/dist/chrome/clipboard.js +49 -0
  42. package/dist/chrome/clipboard.js.map +1 -0
  43. package/dist/chrome/connect-card.d.ts +19 -0
  44. package/dist/chrome/connect-card.d.ts.map +1 -0
  45. package/dist/chrome/connect-card.js +57 -0
  46. package/dist/chrome/connect-card.js.map +1 -0
  47. package/dist/chrome/connect-dock.d.ts +25 -0
  48. package/dist/chrome/connect-dock.d.ts.map +1 -0
  49. package/dist/chrome/connect-dock.js +192 -0
  50. package/dist/chrome/connect-dock.js.map +1 -0
  51. package/dist/chrome/connected-accounts-panel.d.ts +14 -0
  52. package/dist/chrome/connected-accounts-panel.d.ts.map +1 -0
  53. package/dist/chrome/connected-accounts-panel.js +157 -0
  54. package/dist/chrome/connected-accounts-panel.js.map +1 -0
  55. package/dist/chrome/dev-mode.d.ts +5 -0
  56. package/dist/chrome/dev-mode.d.ts.map +1 -0
  57. package/dist/chrome/dev-mode.js +7 -0
  58. package/dist/chrome/dev-mode.js.map +1 -0
  59. package/dist/chrome/discoverability.d.ts +33 -0
  60. package/dist/chrome/discoverability.d.ts.map +1 -0
  61. package/dist/chrome/discoverability.js +63 -0
  62. package/dist/chrome/discoverability.js.map +1 -0
  63. package/dist/chrome/embeds.d.ts +21 -0
  64. package/dist/chrome/embeds.d.ts.map +1 -0
  65. package/dist/chrome/embeds.js +181 -0
  66. package/dist/chrome/embeds.js.map +1 -0
  67. package/dist/chrome/fluid-thinking.d.ts +15 -0
  68. package/dist/chrome/fluid-thinking.d.ts.map +1 -0
  69. package/dist/chrome/fluid-thinking.js +37 -0
  70. package/dist/chrome/fluid-thinking.js.map +1 -0
  71. package/dist/chrome/humanize.d.ts +46 -0
  72. package/dist/chrome/humanize.d.ts.map +1 -0
  73. package/dist/chrome/humanize.js +104 -0
  74. package/dist/chrome/humanize.js.map +1 -0
  75. package/dist/chrome/index.d.ts +39 -0
  76. package/dist/chrome/index.d.ts.map +1 -0
  77. package/dist/chrome/index.js +38 -0
  78. package/dist/chrome/index.js.map +1 -0
  79. package/dist/chrome/markdown.d.ts +23 -0
  80. package/dist/chrome/markdown.d.ts.map +1 -0
  81. package/dist/chrome/markdown.js +149 -0
  82. package/dist/chrome/markdown.js.map +1 -0
  83. package/dist/chrome/morph-toast.d.ts +43 -0
  84. package/dist/chrome/morph-toast.d.ts.map +1 -0
  85. package/dist/chrome/morph-toast.js +89 -0
  86. package/dist/chrome/morph-toast.js.map +1 -0
  87. package/dist/chrome/no-policy-notice.d.ts +8 -0
  88. package/dist/chrome/no-policy-notice.d.ts.map +1 -0
  89. package/dist/chrome/no-policy-notice.js +18 -0
  90. package/dist/chrome/no-policy-notice.js.map +1 -0
  91. package/dist/chrome/onest-font.gen.d.ts +10 -0
  92. package/dist/chrome/onest-font.gen.d.ts.map +1 -0
  93. package/dist/chrome/onest-font.gen.js +10 -0
  94. package/dist/chrome/onest-font.gen.js.map +1 -0
  95. package/dist/chrome/overlay-registry.d.ts +66 -0
  96. package/dist/chrome/overlay-registry.d.ts.map +1 -0
  97. package/dist/chrome/overlay-registry.js +103 -0
  98. package/dist/chrome/overlay-registry.js.map +1 -0
  99. package/dist/chrome/palette-hotkey.d.ts +42 -0
  100. package/dist/chrome/palette-hotkey.d.ts.map +1 -0
  101. package/dist/chrome/palette-hotkey.js +91 -0
  102. package/dist/chrome/palette-hotkey.js.map +1 -0
  103. package/dist/chrome/policy-notice-body.d.ts +3 -0
  104. package/dist/chrome/policy-notice-body.d.ts.map +1 -0
  105. package/dist/chrome/policy-notice-body.js +6 -0
  106. package/dist/chrome/policy-notice-body.js.map +1 -0
  107. package/dist/chrome/takeover-portal.d.ts +16 -0
  108. package/dist/chrome/takeover-portal.d.ts.map +1 -0
  109. package/dist/chrome/takeover-portal.js +21 -0
  110. package/dist/chrome/takeover-portal.js.map +1 -0
  111. package/dist/chrome/thread/attachments.d.ts +24 -0
  112. package/dist/chrome/thread/attachments.d.ts.map +1 -0
  113. package/dist/chrome/thread/attachments.js +50 -0
  114. package/dist/chrome/thread/attachments.js.map +1 -0
  115. package/dist/chrome/thread/composer.d.ts +63 -0
  116. package/dist/chrome/thread/composer.d.ts.map +1 -0
  117. package/dist/chrome/thread/composer.js +259 -0
  118. package/dist/chrome/thread/composer.js.map +1 -0
  119. package/dist/chrome/thread/index.d.ts +41 -0
  120. package/dist/chrome/thread/index.d.ts.map +1 -0
  121. package/dist/chrome/thread/index.js +258 -0
  122. package/dist/chrome/thread/index.js.map +1 -0
  123. package/dist/chrome/thread/message-data.d.ts +35 -0
  124. package/dist/chrome/thread/message-data.d.ts.map +1 -0
  125. package/dist/chrome/thread/message-data.js +127 -0
  126. package/dist/chrome/thread/message-data.js.map +1 -0
  127. package/dist/chrome/thread/message-list.d.ts +30 -0
  128. package/dist/chrome/thread/message-list.d.ts.map +1 -0
  129. package/dist/chrome/thread/message-list.js +11 -0
  130. package/dist/chrome/thread/message-list.js.map +1 -0
  131. package/dist/chrome/thread/message.d.ts +18 -0
  132. package/dist/chrome/thread/message.d.ts.map +1 -0
  133. package/dist/chrome/thread/message.js +57 -0
  134. package/dist/chrome/thread/message.js.map +1 -0
  135. package/dist/chrome/thread/parts.d.ts +53 -0
  136. package/dist/chrome/thread/parts.d.ts.map +1 -0
  137. package/dist/chrome/thread/parts.js +184 -0
  138. package/dist/chrome/thread/parts.js.map +1 -0
  139. package/dist/chrome/thread/scrolling.d.ts +26 -0
  140. package/dist/chrome/thread/scrolling.d.ts.map +1 -0
  141. package/dist/chrome/thread/scrolling.js +214 -0
  142. package/dist/chrome/thread/scrolling.js.map +1 -0
  143. package/dist/chrome/truncate.d.ts +12 -0
  144. package/dist/chrome/truncate.d.ts.map +1 -0
  145. package/dist/chrome/truncate.js +18 -0
  146. package/dist/chrome/truncate.js.map +1 -0
  147. package/dist/chrome/vendo-activities.d.ts +24 -0
  148. package/dist/chrome/vendo-activities.d.ts.map +1 -0
  149. package/dist/chrome/vendo-activities.js +38 -0
  150. package/dist/chrome/vendo-activities.js.map +1 -0
  151. package/dist/chrome/vendo-overlay.d.ts +63 -0
  152. package/dist/chrome/vendo-overlay.d.ts.map +1 -0
  153. package/dist/chrome/vendo-overlay.js +256 -0
  154. package/dist/chrome/vendo-overlay.js.map +1 -0
  155. package/dist/chrome/vendo-page.d.ts +3 -0
  156. package/dist/chrome/vendo-page.d.ts.map +1 -0
  157. package/dist/chrome/vendo-page.js +162 -0
  158. package/dist/chrome/vendo-page.js.map +1 -0
  159. package/dist/chrome/vendo-palette.d.ts +29 -0
  160. package/dist/chrome/vendo-palette.d.ts.map +1 -0
  161. package/dist/chrome/vendo-palette.js +95 -0
  162. package/dist/chrome/vendo-palette.js.map +1 -0
  163. package/dist/chrome/vendo-slot.d.ts +79 -0
  164. package/dist/chrome/vendo-slot.d.ts.map +1 -0
  165. package/dist/chrome/vendo-slot.js +153 -0
  166. package/dist/chrome/vendo-slot.js.map +1 -0
  167. package/dist/chrome/vendo-toasts.d.ts +40 -0
  168. package/dist/chrome/vendo-toasts.d.ts.map +1 -0
  169. package/dist/chrome/vendo-toasts.js +135 -0
  170. package/dist/chrome/vendo-toasts.js.map +1 -0
  171. package/dist/chrome/vendo-trigger.d.ts +24 -0
  172. package/dist/chrome/vendo-trigger.d.ts.map +1 -0
  173. package/dist/chrome/vendo-trigger.js +30 -0
  174. package/dist/chrome/vendo-trigger.js.map +1 -0
  175. package/dist/chrome/waiting-queue.d.ts +8 -0
  176. package/dist/chrome/waiting-queue.d.ts.map +1 -0
  177. package/dist/chrome/waiting-queue.js +21 -0
  178. package/dist/chrome/waiting-queue.js.map +1 -0
  179. package/dist/client-impl.d.ts +4 -0
  180. package/dist/client-impl.d.ts.map +1 -0
  181. package/dist/client-impl.js +160 -0
  182. package/dist/client-impl.js.map +1 -0
  183. package/dist/client.d.ts +136 -0
  184. package/dist/client.d.ts.map +1 -0
  185. package/dist/client.js +2 -0
  186. package/dist/client.js.map +1 -0
  187. package/dist/context.d.ts +97 -0
  188. package/dist/context.d.ts.map +1 -0
  189. package/dist/context.js +71 -0
  190. package/dist/context.js.map +1 -0
  191. package/dist/eject-templates/activities/index.tsx +113 -0
  192. package/dist/eject-templates/templates.json +29 -0
  193. package/dist/eject-templates/thread/attachments.tsx +69 -0
  194. package/dist/eject-templates/thread/composer.tsx +409 -0
  195. package/dist/eject-templates/thread/index.tsx +422 -0
  196. package/dist/eject-templates/thread/message-data.ts +151 -0
  197. package/dist/eject-templates/thread/message-list.tsx +123 -0
  198. package/dist/eject-templates/thread/message.tsx +149 -0
  199. package/dist/eject-templates/thread/parts.tsx +293 -0
  200. package/dist/eject-templates/thread/scrolling.ts +223 -0
  201. package/dist/embeds.d.ts +28 -0
  202. package/dist/embeds.d.ts.map +1 -0
  203. package/dist/embeds.js +2 -0
  204. package/dist/embeds.js.map +1 -0
  205. package/dist/hooks/index.d.ts +18 -0
  206. package/dist/hooks/index.d.ts.map +1 -0
  207. package/dist/hooks/index.js +19 -0
  208. package/dist/hooks/index.js.map +1 -0
  209. package/dist/hooks/scripted-transport.d.ts +44 -0
  210. package/dist/hooks/scripted-transport.d.ts.map +1 -0
  211. package/dist/hooks/scripted-transport.js +58 -0
  212. package/dist/hooks/scripted-transport.js.map +1 -0
  213. package/dist/hooks/use-activity.d.ts +17 -0
  214. package/dist/hooks/use-activity.d.ts.map +1 -0
  215. package/dist/hooks/use-activity.js +50 -0
  216. package/dist/hooks/use-activity.js.map +1 -0
  217. package/dist/hooks/use-app.d.ts +19 -0
  218. package/dist/hooks/use-app.d.ts.map +1 -0
  219. package/dist/hooks/use-app.js +66 -0
  220. package/dist/hooks/use-app.js.map +1 -0
  221. package/dist/hooks/use-approvals.d.ts +13 -0
  222. package/dist/hooks/use-approvals.d.ts.map +1 -0
  223. package/dist/hooks/use-approvals.js +14 -0
  224. package/dist/hooks/use-approvals.js.map +1 -0
  225. package/dist/hooks/use-apps.d.ts +17 -0
  226. package/dist/hooks/use-apps.d.ts.map +1 -0
  227. package/dist/hooks/use-apps.js +30 -0
  228. package/dist/hooks/use-apps.js.map +1 -0
  229. package/dist/hooks/use-automations.d.ts +25 -0
  230. package/dist/hooks/use-automations.d.ts.map +1 -0
  231. package/dist/hooks/use-automations.js +30 -0
  232. package/dist/hooks/use-automations.js.map +1 -0
  233. package/dist/hooks/use-connections.d.ts +12 -0
  234. package/dist/hooks/use-connections.d.ts.map +1 -0
  235. package/dist/hooks/use-connections.js +15 -0
  236. package/dist/hooks/use-connections.js.map +1 -0
  237. package/dist/hooks/use-connector-catalog.d.ts +8 -0
  238. package/dist/hooks/use-connector-catalog.d.ts.map +1 -0
  239. package/dist/hooks/use-connector-catalog.js +52 -0
  240. package/dist/hooks/use-connector-catalog.js.map +1 -0
  241. package/dist/hooks/use-grants.d.ts +13 -0
  242. package/dist/hooks/use-grants.d.ts.map +1 -0
  243. package/dist/hooks/use-grants.js +14 -0
  244. package/dist/hooks/use-grants.js.map +1 -0
  245. package/dist/hooks/use-mobile-takeover.d.ts +22 -0
  246. package/dist/hooks/use-mobile-takeover.d.ts.map +1 -0
  247. package/dist/hooks/use-mobile-takeover.js +66 -0
  248. package/dist/hooks/use-mobile-takeover.js.map +1 -0
  249. package/dist/hooks/use-resource.d.ts +21 -0
  250. package/dist/hooks/use-resource.d.ts.map +1 -0
  251. package/dist/hooks/use-resource.js +79 -0
  252. package/dist/hooks/use-resource.js.map +1 -0
  253. package/dist/hooks/use-slot-app.d.ts +19 -0
  254. package/dist/hooks/use-slot-app.d.ts.map +1 -0
  255. package/dist/hooks/use-slot-app.js +18 -0
  256. package/dist/hooks/use-slot-app.js.map +1 -0
  257. package/dist/hooks/use-threads.d.ts +16 -0
  258. package/dist/hooks/use-threads.d.ts.map +1 -0
  259. package/dist/hooks/use-threads.js +15 -0
  260. package/dist/hooks/use-threads.js.map +1 -0
  261. package/dist/hooks/use-vendo-overlay.d.ts +31 -0
  262. package/dist/hooks/use-vendo-overlay.d.ts.map +1 -0
  263. package/dist/hooks/use-vendo-overlay.js +23 -0
  264. package/dist/hooks/use-vendo-overlay.js.map +1 -0
  265. package/dist/hooks/use-vendo-status.d.ts +6 -0
  266. package/dist/hooks/use-vendo-status.d.ts.map +1 -0
  267. package/dist/hooks/use-vendo-status.js +28 -0
  268. package/dist/hooks/use-vendo-status.js.map +1 -0
  269. package/dist/hooks/use-vendo-thread.d.ts +39 -0
  270. package/dist/hooks/use-vendo-thread.d.ts.map +1 -0
  271. package/dist/hooks/use-vendo-thread.js +185 -0
  272. package/dist/hooks/use-vendo-thread.js.map +1 -0
  273. package/dist/index.d.ts +12 -0
  274. package/dist/index.d.ts.map +1 -0
  275. package/dist/index.js +12 -0
  276. package/dist/index.js.map +1 -0
  277. package/dist/kit/charts/bar.d.ts +16 -0
  278. package/dist/kit/charts/bar.d.ts.map +1 -0
  279. package/dist/kit/charts/bar.js +21 -0
  280. package/dist/kit/charts/bar.js.map +1 -0
  281. package/dist/kit/charts/donut.d.ts +16 -0
  282. package/dist/kit/charts/donut.d.ts.map +1 -0
  283. package/dist/kit/charts/donut.js +17 -0
  284. package/dist/kit/charts/donut.js.map +1 -0
  285. package/dist/kit/charts/line.d.ts +19 -0
  286. package/dist/kit/charts/line.d.ts.map +1 -0
  287. package/dist/kit/charts/line.js +21 -0
  288. package/dist/kit/charts/line.js.map +1 -0
  289. package/dist/kit/charts/progress.d.ts +12 -0
  290. package/dist/kit/charts/progress.d.ts.map +1 -0
  291. package/dist/kit/charts/progress.js +25 -0
  292. package/dist/kit/charts/progress.js.map +1 -0
  293. package/dist/kit/charts/sanitize.d.ts +24 -0
  294. package/dist/kit/charts/sanitize.d.ts.map +1 -0
  295. package/dist/kit/charts/sanitize.js +50 -0
  296. package/dist/kit/charts/sanitize.js.map +1 -0
  297. package/dist/kit/charts/sparkline.d.ts +11 -0
  298. package/dist/kit/charts/sparkline.d.ts.map +1 -0
  299. package/dist/kit/charts/sparkline.js +17 -0
  300. package/dist/kit/charts/sparkline.js.map +1 -0
  301. package/dist/kit/data/badge.d.ts +13 -0
  302. package/dist/kit/data/badge.d.ts.map +1 -0
  303. package/dist/kit/data/badge.js +12 -0
  304. package/dist/kit/data/badge.js.map +1 -0
  305. package/dist/kit/data/card-list.d.ts +23 -0
  306. package/dist/kit/data/card-list.d.ts.map +1 -0
  307. package/dist/kit/data/card-list.js +43 -0
  308. package/dist/kit/data/card-list.js.map +1 -0
  309. package/dist/kit/data/data-table.d.ts +32 -0
  310. package/dist/kit/data/data-table.d.ts.map +1 -0
  311. package/dist/kit/data/data-table.js +153 -0
  312. package/dist/kit/data/data-table.js.map +1 -0
  313. package/dist/kit/data/stat.d.ts +15 -0
  314. package/dist/kit/data/stat.d.ts.map +1 -0
  315. package/dist/kit/data/stat.js +28 -0
  316. package/dist/kit/data/stat.js.map +1 -0
  317. package/dist/kit/feedback/accordion.d.ts +15 -0
  318. package/dist/kit/feedback/accordion.d.ts.map +1 -0
  319. package/dist/kit/feedback/accordion.js +33 -0
  320. package/dist/kit/feedback/accordion.js.map +1 -0
  321. package/dist/kit/feedback/callout.d.ts +13 -0
  322. package/dist/kit/feedback/callout.d.ts.map +1 -0
  323. package/dist/kit/feedback/callout.js +24 -0
  324. package/dist/kit/feedback/callout.js.map +1 -0
  325. package/dist/kit/feedback/tabs.d.ts +14 -0
  326. package/dist/kit/feedback/tabs.d.ts.map +1 -0
  327. package/dist/kit/feedback/tabs.js +37 -0
  328. package/dist/kit/feedback/tabs.js.map +1 -0
  329. package/dist/kit/format.d.ts +60 -0
  330. package/dist/kit/format.d.ts.map +1 -0
  331. package/dist/kit/format.js +123 -0
  332. package/dist/kit/format.js.map +1 -0
  333. package/dist/kit/forms/button.d.ts +17 -0
  334. package/dist/kit/forms/button.d.ts.map +1 -0
  335. package/dist/kit/forms/button.js +33 -0
  336. package/dist/kit/forms/button.js.map +1 -0
  337. package/dist/kit/forms/checkbox.d.ts +9 -0
  338. package/dist/kit/forms/checkbox.d.ts.map +1 -0
  339. package/dist/kit/forms/checkbox.js +9 -0
  340. package/dist/kit/forms/checkbox.js.map +1 -0
  341. package/dist/kit/forms/date-picker.d.ts +13 -0
  342. package/dist/kit/forms/date-picker.d.ts.map +1 -0
  343. package/dist/kit/forms/date-picker.js +9 -0
  344. package/dist/kit/forms/date-picker.js.map +1 -0
  345. package/dist/kit/forms/disclaimer.d.ts +8 -0
  346. package/dist/kit/forms/disclaimer.d.ts.map +1 -0
  347. package/dist/kit/forms/disclaimer.js +20 -0
  348. package/dist/kit/forms/disclaimer.js.map +1 -0
  349. package/dist/kit/forms/field.d.ts +18 -0
  350. package/dist/kit/forms/field.d.ts.map +1 -0
  351. package/dist/kit/forms/field.js +19 -0
  352. package/dist/kit/forms/field.js.map +1 -0
  353. package/dist/kit/forms/form.d.ts +10 -0
  354. package/dist/kit/forms/form.d.ts.map +1 -0
  355. package/dist/kit/forms/form.js +9 -0
  356. package/dist/kit/forms/form.js.map +1 -0
  357. package/dist/kit/forms/input.d.ts +14 -0
  358. package/dist/kit/forms/input.d.ts.map +1 -0
  359. package/dist/kit/forms/input.js +9 -0
  360. package/dist/kit/forms/input.js.map +1 -0
  361. package/dist/kit/forms/select.d.ts +21 -0
  362. package/dist/kit/forms/select.d.ts.map +1 -0
  363. package/dist/kit/forms/select.js +35 -0
  364. package/dist/kit/forms/select.js.map +1 -0
  365. package/dist/kit/forms/textarea.d.ts +12 -0
  366. package/dist/kit/forms/textarea.d.ts.map +1 -0
  367. package/dist/kit/forms/textarea.js +9 -0
  368. package/dist/kit/forms/textarea.js.map +1 -0
  369. package/dist/kit/index.d.ts +42 -0
  370. package/dist/kit/index.d.ts.map +1 -0
  371. package/dist/kit/index.js +45 -0
  372. package/dist/kit/index.js.map +1 -0
  373. package/dist/kit/kit-prompt.d.ts +7 -0
  374. package/dist/kit/kit-prompt.d.ts.map +1 -0
  375. package/dist/kit/kit-prompt.js +7 -0
  376. package/dist/kit/kit-prompt.js.map +1 -0
  377. package/dist/kit/layout.d.ts +29 -0
  378. package/dist/kit/layout.d.ts.map +1 -0
  379. package/dist/kit/layout.js +64 -0
  380. package/dist/kit/layout.js.map +1 -0
  381. package/dist/kit/registry.d.ts +11 -0
  382. package/dist/kit/registry.d.ts.map +1 -0
  383. package/dist/kit/registry.js +34 -0
  384. package/dist/kit/registry.js.map +1 -0
  385. package/dist/kit/schema.d.ts +9 -0
  386. package/dist/kit/schema.d.ts.map +1 -0
  387. package/dist/kit/schema.js +9 -0
  388. package/dist/kit/schema.js.map +1 -0
  389. package/dist/kit/tokens.d.ts +33 -0
  390. package/dist/kit/tokens.d.ts.map +1 -0
  391. package/dist/kit/tokens.js +48 -0
  392. package/dist/kit/tokens.js.map +1 -0
  393. package/dist/kit/values.d.ts +55 -0
  394. package/dist/kit/values.d.ts.map +1 -0
  395. package/dist/kit/values.js +108 -0
  396. package/dist/kit/values.js.map +1 -0
  397. package/dist/theme.d.ts +25 -0
  398. package/dist/theme.d.ts.map +1 -0
  399. package/dist/theme.js +100 -0
  400. package/dist/theme.js.map +1 -0
  401. package/dist/tree/bindings.d.ts +4 -0
  402. package/dist/tree/bindings.d.ts.map +1 -0
  403. package/dist/tree/bindings.js +20 -0
  404. package/dist/tree/bindings.js.map +1 -0
  405. package/dist/tree/branded.d.ts +124 -0
  406. package/dist/tree/branded.d.ts.map +1 -0
  407. package/dist/tree/branded.js +319 -0
  408. package/dist/tree/branded.js.map +1 -0
  409. package/dist/tree/error-boundary.d.ts +22 -0
  410. package/dist/tree/error-boundary.d.ts.map +1 -0
  411. package/dist/tree/error-boundary.js +25 -0
  412. package/dist/tree/error-boundary.js.map +1 -0
  413. package/dist/tree/fluid-reveal.d.ts +22 -0
  414. package/dist/tree/fluid-reveal.d.ts.map +1 -0
  415. package/dist/tree/fluid-reveal.js +28 -0
  416. package/dist/tree/fluid-reveal.js.map +1 -0
  417. package/dist/tree/forming-skeleton.d.ts +14 -0
  418. package/dist/tree/forming-skeleton.d.ts.map +1 -0
  419. package/dist/tree/forming-skeleton.js +36 -0
  420. package/dist/tree/forming-skeleton.js.map +1 -0
  421. package/dist/tree/frames.d.ts +52 -0
  422. package/dist/tree/frames.d.ts.map +1 -0
  423. package/dist/tree/frames.js +143 -0
  424. package/dist/tree/frames.js.map +1 -0
  425. package/dist/tree/host-mount.d.ts +24 -0
  426. package/dist/tree/host-mount.d.ts.map +1 -0
  427. package/dist/tree/host-mount.js +0 -0
  428. package/dist/tree/host-mount.js.map +1 -0
  429. package/dist/tree/index.d.ts +9 -0
  430. package/dist/tree/index.d.ts.map +1 -0
  431. package/dist/tree/index.js +9 -0
  432. package/dist/tree/index.js.map +1 -0
  433. package/dist/tree/jail/JailedComponent.d.ts +41 -0
  434. package/dist/tree/jail/JailedComponent.d.ts.map +1 -0
  435. package/dist/tree/jail/JailedComponent.js +269 -0
  436. package/dist/tree/jail/JailedComponent.js.map +1 -0
  437. package/dist/tree/jail/runtime-bundle.gen.d.ts +3 -0
  438. package/dist/tree/jail/runtime-bundle.gen.d.ts.map +1 -0
  439. package/dist/tree/jail/runtime-bundle.gen.js +3 -0
  440. package/dist/tree/jail/runtime-bundle.gen.js.map +1 -0
  441. package/dist/tree/jail/runtime-entry.d.ts +18 -0
  442. package/dist/tree/jail/runtime-entry.d.ts.map +1 -0
  443. package/dist/tree/jail/runtime-entry.js +440 -0
  444. package/dist/tree/jail/runtime-entry.js.map +1 -0
  445. package/dist/tree/jail/viewport-css.d.ts +17 -0
  446. package/dist/tree/jail/viewport-css.d.ts.map +1 -0
  447. package/dist/tree/jail/viewport-css.js +32 -0
  448. package/dist/tree/jail/viewport-css.js.map +1 -0
  449. package/dist/tree/mcp-shim/entry.d.ts +2 -0
  450. package/dist/tree/mcp-shim/entry.d.ts.map +1 -0
  451. package/dist/tree/mcp-shim/entry.js +45 -0
  452. package/dist/tree/mcp-shim/entry.js.map +1 -0
  453. package/dist/tree/mcp-shim/http-open-card.d.ts +5 -0
  454. package/dist/tree/mcp-shim/http-open-card.d.ts.map +1 -0
  455. package/dist/tree/mcp-shim/http-open-card.js +61 -0
  456. package/dist/tree/mcp-shim/http-open-card.js.map +1 -0
  457. package/dist/tree/mcp-shim/shim-core.d.ts +58 -0
  458. package/dist/tree/mcp-shim/shim-core.d.ts.map +1 -0
  459. package/dist/tree/mcp-shim/shim-core.js +176 -0
  460. package/dist/tree/mcp-shim/shim-core.js.map +1 -0
  461. package/dist/tree/mcp-shim/theme.d.ts +8 -0
  462. package/dist/tree/mcp-shim/theme.d.ts.map +1 -0
  463. package/dist/tree/mcp-shim/theme.js +36 -0
  464. package/dist/tree/mcp-shim/theme.js.map +1 -0
  465. package/dist/tree/notice.d.ts +8 -0
  466. package/dist/tree/notice.d.ts.map +1 -0
  467. package/dist/tree/notice.js +30 -0
  468. package/dist/tree/notice.js.map +1 -0
  469. package/dist/tree/primitives.d.ts +30 -0
  470. package/dist/tree/primitives.d.ts.map +1 -0
  471. package/dist/tree/primitives.js +105 -0
  472. package/dist/tree/primitives.js.map +1 -0
  473. package/dist/tree/renderer-v2.d.ts +15 -0
  474. package/dist/tree/renderer-v2.d.ts.map +1 -0
  475. package/dist/tree/renderer-v2.js +71 -0
  476. package/dist/tree/renderer-v2.js.map +1 -0
  477. package/dist/tree/renderer.d.ts +77 -0
  478. package/dist/tree/renderer.d.ts.map +1 -0
  479. package/dist/tree/renderer.js +376 -0
  480. package/dist/tree/renderer.js.map +1 -0
  481. package/dist/voice/driver.d.ts +94 -0
  482. package/dist/voice/driver.d.ts.map +1 -0
  483. package/dist/voice/driver.js +2 -0
  484. package/dist/voice/driver.js.map +1 -0
  485. package/dist/voice/index.d.ts +7 -0
  486. package/dist/voice/index.d.ts.map +1 -0
  487. package/dist/voice/index.js +5 -0
  488. package/dist/voice/index.js.map +1 -0
  489. package/dist/voice/realtime-driver.d.ts +57 -0
  490. package/dist/voice/realtime-driver.d.ts.map +1 -0
  491. package/dist/voice/realtime-driver.js +592 -0
  492. package/dist/voice/realtime-driver.js.map +1 -0
  493. package/dist/voice/stage.d.ts +12 -0
  494. package/dist/voice/stage.d.ts.map +1 -0
  495. package/dist/voice/stage.js +259 -0
  496. package/dist/voice/stage.js.map +1 -0
  497. package/dist/voice/use-voice-approvals.d.ts +16 -0
  498. package/dist/voice/use-voice-approvals.d.ts.map +1 -0
  499. package/dist/voice/use-voice-approvals.js +77 -0
  500. package/dist/voice/use-voice-approvals.js.map +1 -0
  501. package/dist/voice/use-voice.d.ts +26 -0
  502. package/dist/voice/use-voice.d.ts.map +1 -0
  503. package/dist/voice/use-voice.js +201 -0
  504. package/dist/voice/use-voice.js.map +1 -0
  505. package/dist/voice/voice-act.d.ts +13 -0
  506. package/dist/voice/voice-act.d.ts.map +1 -0
  507. package/dist/voice/voice-act.js +301 -0
  508. package/dist/voice/voice-act.js.map +1 -0
  509. package/dist/voice/voice-blob.d.ts +17 -0
  510. package/dist/voice/voice-blob.d.ts.map +1 -0
  511. package/dist/voice/voice-blob.js +67 -0
  512. package/dist/voice/voice-blob.js.map +1 -0
  513. package/dist/voice/voice-consent.d.ts +17 -0
  514. package/dist/voice/voice-consent.d.ts.map +1 -0
  515. package/dist/voice/voice-consent.js +45 -0
  516. package/dist/voice/voice-consent.js.map +1 -0
  517. package/dist/voice/voice-drawer.d.ts +10 -0
  518. package/dist/voice/voice-drawer.d.ts.map +1 -0
  519. package/dist/voice/voice-drawer.js +22 -0
  520. package/dist/voice/voice-drawer.js.map +1 -0
  521. package/dist/wire-types.d.ts +238 -0
  522. package/dist/wire-types.d.ts.map +1 -0
  523. package/dist/wire-types.js +2 -0
  524. package/dist/wire-types.js.map +1 -0
  525. package/package.json +106 -0
@@ -0,0 +1,71 @@
1
+ import { validateTreeV2, } from "@vendoai/core";
2
+ /**
3
+ * v2 spec §1 (docs/superpowers/specs/2026-07-18-vendo-v2-format-spec.md) —
4
+ * the v2 renderer IS the v1 render path: a validated `vendo-genui/v2` tree
5
+ * converts mechanically to the v1 tree shape and walks through TreeView, so
6
+ * jail, guard, bindings, `$state`, and outcome containment are shared, not
7
+ * reimplemented. Only the payload surface differs:
8
+ *
9
+ * - `queries` name bare identifiers; the result lives at JSON Pointer
10
+ * `"/" + name` by definition — the walk's path-keyed query shape.
11
+ * - action props use the canonical `{ action: "..." }` shape the compiler
12
+ * emits (wire-v2 D5); the v1 walk dispatches `{ $action }`, so conversion
13
+ * rewrites the key.
14
+ * - component sources ride on the PAYLOAD (app-document level), never the
15
+ * canonical tree — validateTreeV2 rejects tree-carried `components`, so
16
+ * they are lifted off before validation and re-attached for the walk.
17
+ *
18
+ * This module is a PURE converter. The registry registration lives in
19
+ * renderer.tsx next to PayloadView: the ui package is `sideEffects: false`,
20
+ * so a registration-only side-effect import would be tree-shaken out of
21
+ * host bundles (caught live in the Wave 2 browser gate).
22
+ */
23
+ /** wire-v2 D5 — the canonical action prop shape `{ action: "tool" | "fn:..." }`. */
24
+ const isActionProp = (value) => typeof value.action === "string";
25
+ const convertPropValue = (value) => {
26
+ if (Array.isArray(value))
27
+ return value.map(convertPropValue);
28
+ if (typeof value !== "object" || value === null)
29
+ return value;
30
+ const record = value;
31
+ if (isActionProp(record)) {
32
+ return {
33
+ $action: record.action,
34
+ ...(record.payload === undefined ? {} : { payload: convertPropValue(record.payload) }),
35
+ };
36
+ }
37
+ return Object.fromEntries(Object.entries(record).map(([key, child]) => [key, convertPropValue(child)]));
38
+ };
39
+ const convertNode = (node) => node.props === undefined
40
+ ? node
41
+ : { ...node, props: convertPropValue(node.props) };
42
+ /** v2 query results reside at `"/" + name` — that pointer is the v1 path. */
43
+ const convertQuery = (query) => ({
44
+ path: `/${query.name}`,
45
+ tool: query.tool,
46
+ ...(query.input === undefined ? {} : { input: query.input }),
47
+ });
48
+ export function convertV2Payload(payload) {
49
+ // Sources live at the app-document level; the payload may carry them
50
+ // alongside the tree, but the canonical v2 tree must not (validateTreeV2
51
+ // rejects it), so they are lifted off before the gate.
52
+ const { components, ...tree } = payload;
53
+ const validation = validateTreeV2(tree);
54
+ if (!validation.ok)
55
+ return validation;
56
+ // Payload extras beyond the TreeV2 shape (streaming, furnishings, inClient,
57
+ // pinDrift…) survive the spread at runtime; the shared walk reads them off
58
+ // the tree object (v2 spec §6 — the mechanics survive, the v1 format
59
+ // surface around them is gone).
60
+ const valid = validation.tree;
61
+ return {
62
+ ok: true,
63
+ tree: {
64
+ ...valid,
65
+ nodes: valid.nodes.map(convertNode),
66
+ ...(valid.queries === undefined ? {} : { queries: valid.queries.map(convertQuery) }),
67
+ ...(components === undefined ? {} : { components }),
68
+ },
69
+ };
70
+ }
71
+ //# sourceMappingURL=renderer-v2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderer-v2.js","sourceRoot":"","sources":["../../src/tree/renderer-v2.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,GAKf,MAAM,eAAe,CAAC;AAEvB;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,oFAAoF;AACpF,MAAM,YAAY,GAAG,CAAC,KAA8B,EAA+C,EAAE,CACnG,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC;AAEnC,MAAM,gBAAgB,GAAG,CAAC,KAAc,EAAW,EAAE;IACnD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC7D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,MAAM;YACtB,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;SACvF,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1G,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,IAAc,EAAY,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS;IACxE,CAAC,CAAC,IAAI;IACN,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAyB,EAAE,CAAC;AAE7E,6EAA6E;AAC7E,MAAM,YAAY,GAAG,CAAC,KAAkB,EAAgE,EAAE,CAAC,CAAC;IAC1G,IAAI,EAAE,IAAI,KAAK,CAAC,IAAI,EAAE;IACtB,IAAI,EAAE,KAAK,CAAC,IAAI;IAChB,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;CAC7D,CAAC,CAAC;AAQH,MAAM,UAAU,gBAAgB,CAAC,OAAkC;IACjE,qEAAqE;IACrE,yEAAyE;IACzE,uDAAuD;IACvD,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,GAAG,OAAmC,CAAC;IACpE,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,UAAU,CAAC,EAAE;QAAE,OAAO,UAAU,CAAC;IACtC,4EAA4E;IAC5E,2EAA2E;IAC3E,qEAAqE;IACrE,gCAAgC;IAChC,MAAM,KAAK,GAAW,UAAU,CAAC,IAAI,CAAC;IACtC,OAAO;QACL,EAAE,EAAE,IAAI;QACR,IAAI,EAAE;YACJ,GAAG,KAAK;YACR,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;YACnC,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YACpF,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;SAC7B;KACzB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,77 @@
1
+ import { type Json, type ToolOutcome, type TreeNode, type UIPayload } from "@vendoai/core";
2
+ import { type ComponentType } from "react";
3
+ export interface TreeViewProps {
4
+ tree: WalkTree;
5
+ components: Record<string, ComponentType>;
6
+ data?: Record<string, Json>;
7
+ onAction(req: {
8
+ nodeId: string;
9
+ action: string;
10
+ payload?: Json;
11
+ }): Promise<ToolOutcome>;
12
+ /**
13
+ * 08-ui §5; 06-apps §6 — additive persistence hook for TreeView-local `$state`.
14
+ * It fires with the complete state map after every jail `state-set` message.
15
+ */
16
+ onStateChange?(state: Record<string, Json>): void;
17
+ }
18
+ export interface PayloadRendererProps {
19
+ payload: UIPayload;
20
+ components: Record<string, ComponentType>;
21
+ data?: Record<string, Json>;
22
+ onAction(req: {
23
+ nodeId: string;
24
+ action: string;
25
+ payload?: Json;
26
+ }): Promise<ToolOutcome>;
27
+ onStateChange?(state: Record<string, Json>): void;
28
+ }
29
+ type PayloadRenderer = ComponentType<PayloadRendererProps>;
30
+ /** 01-core §8; 08-ui §5 — additive format registration for stored future payloads. */
31
+ export declare function registerTreeRenderer(formatVersion: string, component: PayloadRenderer): void;
32
+ /**
33
+ * v2 spec §6 — the walk's input: the SHARED render mechanics' tree shape
34
+ * (nodes, path-keyed resolved queries, grafted components, payload extras).
35
+ * The v1 format surface around it is gone; renderer-v2 converts the
36
+ * canonical v2 tree into this shape (named queries → "/" + name pointers).
37
+ */
38
+ export interface WalkTree {
39
+ root: string;
40
+ nodes: TreeNode[];
41
+ data?: Record<string, Json>;
42
+ queries?: Array<{
43
+ path: string;
44
+ tool: string;
45
+ input?: Record<string, Json>;
46
+ }>;
47
+ components?: Record<string, string>;
48
+ }
49
+ /** 01-core §8 — renderer dispatch is exclusively by the payload tag. */
50
+ export declare function PayloadView(props: PayloadRendererProps): import("react").JSX.Element;
51
+ interface ActionBinding {
52
+ $action: string;
53
+ payload?: Json;
54
+ }
55
+ /** 08-ui §5 — renderer-owned additive binding; action names stay opaque. */
56
+ export declare function isActionBinding(value: unknown): value is ActionBinding;
57
+ /**
58
+ * 06-apps §9 — the additive in-client venue verdict a tree payload may carry.
59
+ * SERVER-AUTHORITATIVE: the apps runtime strips any document-carried value and
60
+ * attaches this only from its own hash-pin verification, so `granted: true`
61
+ * here is exactly "a stored approval matches the CURRENT version's content
62
+ * hash". A missing field is the universal default: jailed. One declaration —
63
+ * the wire type — re-exported here so tree consumers see the same shape the
64
+ * client and the parity test cover.
65
+ */
66
+ export type { InClientVenue } from "../wire-types.js";
67
+ /**
68
+ * 06-apps §8 — the additive pin-drift report a tree payload may carry
69
+ * (`payload.pinDrift`). SERVER-AUTHORITATIVE: the apps runtime strips any
70
+ * document-carried value and attaches this only from its own baseline
71
+ * comparison. Re-exported from the wire type so tree consumers see the same
72
+ * shape the client and the parity test cover.
73
+ */
74
+ export type { PinDrift } from "../wire-types.js";
75
+ /** A new tree identity owns a fresh `$state` and outcome namespace. */
76
+ export declare function TreeView(props: TreeViewProps): import("react").JSX.Element;
77
+ //# sourceMappingURL=renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/tree/renderer.tsx"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,IAAI,EAET,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,SAAS,EACf,MAAM,eAAe,CAAC;AAEvB,OAAO,EAKL,KAAK,aAAa,EAEnB,MAAM,OAAO,CAAC;AAcf,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACxF;;;OAGG;IACH,aAAa,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC;CACnD;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,SAAS,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACxF,aAAa,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC;CACnD;AAED,KAAK,eAAe,GAAG,aAAa,CAAC,oBAAoB,CAAC,CAAC;AAG3D,sFAAsF;AACtF,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,GAAG,IAAI,CAE5F;AAED;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5B,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;KAAE,CAAC,CAAC;IAC9E,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAsFD,wEAAwE;AACxE,wBAAgB,WAAW,CAAC,KAAK,EAAE,oBAAoB,+BAUtD;AAED,UAAU,aAAa;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,IAAI,CAAC;CAChB;AAED,4EAA4E;AAC5E,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAItE;AAsGD;;;;;;;;GAQG;AACH,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;;;;;GAMG;AACH,YAAY,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AA8UjD,uEAAuE;AACvE,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,+BAE5C"}
@@ -0,0 +1,376 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { RESERVED_COMPONENT_NAMES, TREE_MAX_COMPONENT_SOURCE_CHARS, TREE_MAX_GENERATED_COMPONENTS, TREE_MAX_TOTAL_COMPONENT_CHARS, applyReshape, isPathBinding, isStateBinding, VENDO_TREE_FORMAT_V2, } from "@vendoai/core";
3
+ import { convertV2Payload } from "./renderer-v2.js";
4
+ import { useCallback, useMemo, useRef, useState, } from "react";
5
+ import { useVendoThemeOrDefault } from "../context.js";
6
+ import { themeCssVariables } from "../theme.js";
7
+ import { resolvePointer } from "./bindings.js";
8
+ import { NodeErrorBoundary } from "./error-boundary.js";
9
+ import { FluidReveal } from "./fluid-reveal.js";
10
+ import { deriveFormShape, FormingSkeleton } from "./forming-skeleton.js";
11
+ import { InClientMount } from "./host-mount.js";
12
+ import { JailedComponent } from "./jail/JailedComponent.js";
13
+ import { ContainedNotice } from "./notice.js";
14
+ import { KIT_COMPONENTS } from "../kit/registry.js";
15
+ import { PREWIRED_COMPONENTS } from "./primitives.js";
16
+ const rendererRegistry = new Map();
17
+ /** 01-core §8; 08-ui §5 — additive format registration for stored future payloads. */
18
+ export function registerTreeRenderer(formatVersion, component) {
19
+ rendererRegistry.set(formatVersion, component);
20
+ }
21
+ const walkFail = (message) => ({ ok: false, error: { code: "provision", message } });
22
+ const isPlainRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
23
+ /** The structural render-gate the v1 validator used to provide (per-render
24
+ * hot path): ids unique and rooted, node shapes sane, generated components
25
+ * present. Format-tag checks live one layer up (PayloadView dispatch +
26
+ * validateTreeV2 in renderer-v2). */
27
+ const validateWalkTree = (input) => {
28
+ const ids = new Set();
29
+ if (!Array.isArray(input.nodes))
30
+ return walkFail("nodes must be an array");
31
+ for (const node of input.nodes) {
32
+ if (!isPlainRecord(node))
33
+ return walkFail("each node must be an object");
34
+ if (typeof node.id !== "string" || node.id.length === 0)
35
+ return walkFail("each node must have a non-empty string id");
36
+ if (typeof node.component !== "string")
37
+ return walkFail(`node "${node.id}" must have a string component`);
38
+ if (node.source !== undefined && !["prewired", "host", "generated"].includes(node.source)) {
39
+ return walkFail(`node "${node.id}" has an invalid source`);
40
+ }
41
+ if (node.children !== undefined
42
+ && (!Array.isArray(node.children) || !node.children.every((child) => typeof child === "string"))) {
43
+ return walkFail(`node "${node.id}" children must be an array of strings`);
44
+ }
45
+ if (node.props !== undefined && !isPlainRecord(node.props))
46
+ return walkFail(`node "${node.id}" props must be a plain object`);
47
+ if (ids.has(node.id))
48
+ return walkFail(`duplicate node id "${node.id}"`);
49
+ ids.add(node.id);
50
+ }
51
+ const components = input.components ?? {};
52
+ // The jail-compile bounds the v1 walk enforced per render survive here:
53
+ // reserved names can never be shadowed and the §8 component caps hold even
54
+ // for payloads that bypassed document validation (direct TreeView input).
55
+ const names = Object.keys(components);
56
+ if (names.length > TREE_MAX_GENERATED_COMPONENTS) {
57
+ return walkFail(`too many generated components (max ${TREE_MAX_GENERATED_COMPONENTS})`);
58
+ }
59
+ let totalChars = 0;
60
+ for (const name of names) {
61
+ if (RESERVED_COMPONENT_NAMES.includes(name)) {
62
+ return walkFail(`generated component "${name}" shadows a reserved primitive name`);
63
+ }
64
+ const source = components[name];
65
+ if (typeof source !== "string")
66
+ return walkFail(`generated component "${name}" source must be a string`);
67
+ if (source.length > TREE_MAX_COMPONENT_SOURCE_CHARS) {
68
+ return walkFail(`generated component "${name}" source is too large`);
69
+ }
70
+ totalChars += source.length;
71
+ }
72
+ if (totalChars > TREE_MAX_TOTAL_COMPONENT_CHARS) {
73
+ return walkFail("generated component sources exceed the total size cap");
74
+ }
75
+ for (const node of input.nodes) {
76
+ if (node.source === "generated" && !Object.prototype.hasOwnProperty.call(components, node.component)) {
77
+ return walkFail(`node "${node.id}" references generated component "${node.component}" with no definition in components`);
78
+ }
79
+ }
80
+ if (typeof input.root !== "string" || !ids.has(input.root)) {
81
+ return walkFail(`root "${String(input.root)}" does not match any node id`);
82
+ }
83
+ return { ok: true, tree: input };
84
+ };
85
+ /** v2 spec §1 — a validated v2 payload converts to the v1 tree shape and
86
+ * walks the SAME TreeView (renderer-v2.tsx documents the mapping). The
87
+ * registration lives here, in PayloadView's own module: the package is
88
+ * `sideEffects: false`, so a registration-only import would be tree-shaken
89
+ * out of host bundles. */
90
+ function VendoTreeV2Renderer({ payload, ...props }) {
91
+ const converted = useMemo(() => convertV2Payload(payload), [payload]);
92
+ if (!converted.ok) {
93
+ return (_jsx(ContainedNotice, { label: "Invalid UI tree", code: converted.error.code, children: `${converted.error.code}: ${converted.error.message}` }));
94
+ }
95
+ return _jsx(TreeView, { tree: converted.tree, ...props });
96
+ }
97
+ registerTreeRenderer(VENDO_TREE_FORMAT_V2, VendoTreeV2Renderer);
98
+ /** 01-core §8 — renderer dispatch is exclusively by the payload tag. */
99
+ export function PayloadView(props) {
100
+ const Renderer = rendererRegistry.get(props.payload.formatVersion);
101
+ if (!Renderer) {
102
+ return (_jsx(ContainedNotice, { label: "Unsupported UI format", children: `No renderer is registered for "${props.payload.formatVersion}".` }));
103
+ }
104
+ return _jsx(Renderer, { ...props });
105
+ }
106
+ /** 08-ui §5 — renderer-owned additive binding; action names stay opaque. */
107
+ export function isActionBinding(value) {
108
+ return typeof value === "object"
109
+ && value !== null
110
+ && typeof value.$action === "string";
111
+ }
112
+ /** v2 spec §3 — apply a binding's `$reshape` chain to the resolved value.
113
+ * `applyReshape` is total: absent data passes through (loading is not a
114
+ * mismatch); a real mismatch reports through `onMismatch` and binds
115
+ * `undefined`, and the node renders the contained data-shape notice. */
116
+ function resolveReshaped(resolved, steps, onMismatch) {
117
+ if (steps === undefined)
118
+ return resolved;
119
+ const reshaped = applyReshape(resolved, steps);
120
+ if (!reshaped.ok) {
121
+ onMismatch?.(reshaped.reason);
122
+ return undefined;
123
+ }
124
+ return reshaped.value;
125
+ }
126
+ function bindValue(value, mode, data, state, action, onMismatch) {
127
+ if (isPathBinding(value))
128
+ return resolveReshaped(resolvePointer(data, value.$path), value.$reshape, onMismatch);
129
+ if (isStateBinding(value))
130
+ return resolveReshaped(state[value.$state], value.$reshape, onMismatch);
131
+ if (isActionBinding(value)) {
132
+ const payload = bindValue(value.payload, mode, data, state, action, onMismatch);
133
+ if (mode === "jail") {
134
+ return { $action: value.$action, ...(value.payload === undefined ? {} : { payload }) };
135
+ }
136
+ return () => action(value.$action, value.payload === undefined ? undefined : payload);
137
+ }
138
+ if (Array.isArray(value))
139
+ return value.map((item) => bindValue(item, mode, data, state, action, onMismatch));
140
+ if (typeof value === "object" && value !== null) {
141
+ return Object.fromEntries(Object.entries(value).map(([key, child]) => [
142
+ key,
143
+ bindValue(child, mode, data, state, action, onMismatch),
144
+ ]));
145
+ }
146
+ return value;
147
+ }
148
+ /** Binds a node's props, reporting the first reshape mismatch with its prop
149
+ * name (v2 spec §3 — the region shows one contained notice, not a broken
150
+ * component). */
151
+ function bindProps(props, mode, data, state, action) {
152
+ if (props === undefined)
153
+ return { bound: undefined, mismatch: null };
154
+ let mismatch = null;
155
+ let currentProp = "";
156
+ const onMismatch = (reason) => {
157
+ if (mismatch === null)
158
+ mismatch = `prop "${currentProp}": ${reason}`;
159
+ };
160
+ const bound = Object.fromEntries(Object.entries(props).map(([key, child]) => {
161
+ currentProp = key;
162
+ return [key, bindValue(child, mode, data, state, action, onMismatch)];
163
+ }));
164
+ return { bound, mismatch };
165
+ }
166
+ /** v2 spec §3 — the contained data-shape notice: the region says the data
167
+ * didn't match instead of mounting the component with garbage props. */
168
+ const dataShapeNotice = (mismatch) => (_jsx(ContainedNotice, { label: "Data shape", children: `The data didn't match this component's binding — ${mismatch}.` }));
169
+ function outcomeNotice(outcome) {
170
+ if (!outcome || outcome.status === "ok")
171
+ return null;
172
+ if (outcome.status === "pending-approval") {
173
+ return (_jsx(ContainedNotice, { label: "Action pending approval", outcome: outcome.status, children: `Action is waiting for approval (${outcome.approvalId}).` }));
174
+ }
175
+ if (outcome.status === "blocked") {
176
+ return _jsx(ContainedNotice, { label: "Action blocked", outcome: outcome.status, children: outcome.reason });
177
+ }
178
+ if (outcome.status === "error") {
179
+ return (_jsx(ContainedNotice, { label: "Action error", outcome: outcome.status, code: outcome.error.code, children: outcome.error.message }));
180
+ }
181
+ return null;
182
+ }
183
+ const EMPTY_LAYOUT_COMPONENTS = new Set(["Stack", "Row", "Grid"]);
184
+ const hasRenderableTreeContent = (tree) => {
185
+ const nodes = new Map(tree.nodes.map((node) => [node.id, node]));
186
+ const pending = [tree.root];
187
+ const visited = new Set();
188
+ while (pending.length > 0) {
189
+ const id = pending.pop();
190
+ if (id === undefined || visited.has(id))
191
+ continue;
192
+ visited.add(id);
193
+ const node = nodes.get(id);
194
+ // A missing child renders the streaming skeleton, which is intentionally visible.
195
+ if (node === undefined)
196
+ return true;
197
+ if (node.source === "host" || node.source === "generated")
198
+ return true;
199
+ if (node.component === "Text") {
200
+ const text = node.props?.text;
201
+ if (text !== undefined && text !== null && String(text).trim() !== "")
202
+ return true;
203
+ }
204
+ else if (!EMPTY_LAYOUT_COMPONENTS.has(node.component)) {
205
+ return true;
206
+ }
207
+ pending.push(...(node.children ?? []));
208
+ }
209
+ return false;
210
+ };
211
+ function NodeRenderer(props) {
212
+ const node = props.nodes.get(props.nodeId);
213
+ if (!node) {
214
+ return (_jsx("span", { "data-dangling-node": props.nodeId, style: { display: "block", width: "100%" }, children: _jsx(FormingSkeleton, { name: props.nodeId }) }));
215
+ }
216
+ if (props.ancestry.has(node.id)) {
217
+ return _jsx(ContainedNotice, { label: "Cyclic tree node", children: `Node "${node.id}" forms a cycle.` });
218
+ }
219
+ const ancestry = new Set(props.ancestry);
220
+ ancestry.add(node.id);
221
+ const invoke = (action, payload) => props.runAction(node.id, action, payload);
222
+ const children = node.children?.map((childId) => (_jsx(NodeErrorBoundary, { nodeId: childId, retryKey: props.data, children: _jsx(NodeRenderer, { ...props, nodeId: childId, ancestry: ancestry }) }, childId)));
223
+ let content;
224
+ if (node.source === "generated") {
225
+ const source = props.generated[node.component];
226
+ const revealKey = source === undefined ? "forming" : "ready";
227
+ // Stamped era: a missing entry means "this island calls no tools" (least
228
+ // privilege). No stamping at all: undefined, so JailedComponent derives
229
+ // the manifest from the source the host holds.
230
+ const toolManifest = props.componentTools === undefined
231
+ ? undefined
232
+ : props.componentTools[node.component] ?? [];
233
+ if (source === undefined) {
234
+ content = props.streaming ? (_jsx("span", { "data-streaming-component": node.component, style: { display: "block", width: "100%" }, children: _jsx(FormingSkeleton, { name: node.component }) })) : (_jsx(ContainedNotice, { label: "Unknown generated component", children: `Generated component "${node.component}" has no source.` }));
235
+ }
236
+ else if (props.inClientGranted) {
237
+ // 06-apps §9 — the approved venue: this exact version's content hash
238
+ // matched a stored approval, so generated code mounts in the host page.
239
+ // The jail element stays wired as the drop-back for any mount failure.
240
+ const hostBind = bindProps(node.props, "host", props.data, props.state, invoke);
241
+ const jailBind = bindProps(node.props, "jail", props.data, props.state, invoke);
242
+ // Reshape mismatches are mode-independent, so both binds report the same one.
243
+ const mismatch = hostBind.mismatch;
244
+ if (mismatch !== null) {
245
+ content = _jsxs(_Fragment, { children: [dataShapeNotice(mismatch), children] });
246
+ }
247
+ else {
248
+ const jailFallback = (_jsx(JailedComponent, { name: node.component, source: source, props: jailBind.bound, furnishing: props.furnishings[node.component], themeVars: props.themeVars, toolManifest: toolManifest, onAction: invoke, onStateSet: props.setViewState }));
249
+ content = (_jsxs(_Fragment, { children: [_jsx(InClientMount, { name: node.component, source: source, props: hostBind.bound, furnishing: props.furnishings[node.component], fallback: jailFallback, onAction: invoke, onStateSet: props.setViewState }), children] }));
250
+ }
251
+ }
252
+ else {
253
+ const { bound, mismatch } = bindProps(node.props, "jail", props.data, props.state, invoke);
254
+ content = mismatch !== null ? _jsxs(_Fragment, { children: [dataShapeNotice(mismatch), children] }) : (_jsxs(_Fragment, { children: [_jsx(JailedComponent, { name: node.component, source: source, props: bound, furnishing: props.furnishings[node.component], themeVars: props.themeVars, toolManifest: toolManifest, onAction: invoke, onStateSet: props.setViewState }), children] }));
255
+ }
256
+ // ENG-205 render-slot morph: the streaming placeholder and the arrived
257
+ // component share this wrapper, so the swap morphs instead of popping.
258
+ // Pick A: a shape-derived silhouette already holds (approximately) the
259
+ // final geometry, so its reveal crossfades in place (.fl-reveal-fill)
260
+ // instead of running the rise/settle morph; slab fallbacks keep the morph.
261
+ content = (_jsx(FluidReveal, { stateKey: revealKey, className: deriveFormShape(node.component) === "slab" ? undefined : "fl-reveal-fill", children: content }));
262
+ }
263
+ else {
264
+ // W3 Kit adoption — legacy prewired names keep their implementations
265
+ // (retirement is Wave 5); the Kit fills the names the legacy set lacks
266
+ // (Money, DateTime, DataTable, charts, Form, Disclaimer, …).
267
+ const primitive = PREWIRED_COMPONENTS[node.component]
268
+ ?? KIT_COMPONENTS[node.component];
269
+ const host = props.components[node.component];
270
+ // v2 spec §2 — an explicit `source: "host"` resolution means the host
271
+ // brand won the name; only an undefined source keeps the historical
272
+ // primitive-first order.
273
+ const Implementation = node.source === "host" ? host ?? primitive : primitive ?? host;
274
+ if (!Implementation) {
275
+ content = (_jsx(ContainedNotice, { label: "Unknown component", children: `Unknown component "${node.component}".` }));
276
+ }
277
+ else {
278
+ const { bound, mismatch } = bindProps(node.props ?? {}, "host", props.data, props.state, invoke);
279
+ // The notice replaces only the mis-bound component, never its subtree —
280
+ // a container (Stack/Grid) with one bad prop must not swallow its valid
281
+ // children (same containment scope as the generated paths above).
282
+ content = mismatch !== null
283
+ ? _jsxs(_Fragment, { children: [dataShapeNotice(mismatch), children] })
284
+ : _jsx(Implementation, { ...bound, children: children });
285
+ }
286
+ }
287
+ const outcome = props.outcomes[node.id];
288
+ return (_jsxs("div", { "data-vendo-node-id": node.id, "data-vendo-outcome": outcome?.status === "ok" ? undefined : outcome?.status, children: [content, outcomeNotice(outcome)] }));
289
+ }
290
+ /**
291
+ * 08-ui §5 — render a validated walk tree (the shared render mechanics, v2 spec §6).
292
+ *
293
+ * `$state` is local to this TreeView. Generated code can write through its
294
+ * in-jail `vendo.setState(key, value)` bridge; `onStateChange`, when supplied,
295
+ * receives the complete state map after every change for app-state persistence.
296
+ */
297
+ function StatefulTreeView({ tree, components, data, onAction, onStateChange, }) {
298
+ const theme = useVendoThemeOrDefault();
299
+ const themeVars = useMemo(() => themeCssVariables(theme), [theme]);
300
+ const streaming = tree.streaming === true;
301
+ const furnishings = tree.furnishings ?? {};
302
+ // W4b — the stamped per-island tool manifests ride the payload beside the
303
+ // component sources (a payload extra, like furnishings).
304
+ const componentTools = tree.componentTools;
305
+ const inClient = tree.inClient;
306
+ // Tolerate a malformed field (like every other payload extra): only an
307
+ // array of well-formed entries renders the notice.
308
+ const pinDriftRaw = tree.pinDrift;
309
+ const pinDrift = (Array.isArray(pinDriftRaw) ? pinDriftRaw : [])
310
+ .filter((entry) => typeof entry === "object" && entry !== null && typeof entry.slot === "string");
311
+ // The host-page mount unlocks on EXACTLY `granted === true` — the value only
312
+ // the server's hash-pin verification writes. Everything else stays jailed.
313
+ const inClientGranted = inClient?.granted === true;
314
+ // A partial stream may close a generated node before its top-level source
315
+ // string closes. Supply validator-only placeholders, then keep the real map
316
+ // empty so NodeRenderer paints a skeleton until the source arrives.
317
+ const validation = validateWalkTree(streaming ? {
318
+ ...tree,
319
+ components: Object.fromEntries([
320
+ ...Object.entries(tree.components ?? {}),
321
+ ...tree.nodes
322
+ .filter((node) => node.source === "generated")
323
+ .map((node) => [node.component, tree.components?.[node.component] ?? ""]),
324
+ ]),
325
+ } : tree);
326
+ const [viewState, setViewState] = useState({});
327
+ const stateRef = useRef(viewState);
328
+ const [outcomes, setOutcomes] = useState({});
329
+ const updateState = useCallback((key, value) => {
330
+ const next = { ...stateRef.current, [key]: value };
331
+ stateRef.current = next;
332
+ setViewState(next);
333
+ onStateChange?.(next);
334
+ }, [onStateChange]);
335
+ const runAction = useCallback(async (nodeId, action, payload) => {
336
+ let outcome;
337
+ try {
338
+ outcome = await onAction({ nodeId, action, ...(payload === undefined ? {} : { payload }) });
339
+ }
340
+ catch (error) {
341
+ outcome = {
342
+ status: "error",
343
+ error: {
344
+ code: "action",
345
+ message: error instanceof Error ? error.message : String(error),
346
+ },
347
+ };
348
+ }
349
+ setOutcomes((current) => ({ ...current, [nodeId]: outcome.status === "ok" ? undefined : outcome }));
350
+ return outcome;
351
+ }, [onAction]);
352
+ const nodes = useMemo(() => new Map(validation.ok ? validation.tree.nodes.map((node) => [node.id, node]) : []), [validation.ok ? validation.tree.nodes : validation.error.message]);
353
+ if (!validation.ok) {
354
+ return (_jsx(ContainedNotice, { label: "Invalid UI tree", code: validation.error.code, children: `${validation.error.code}: ${validation.error.message}` }));
355
+ }
356
+ if (!hasRenderableTreeContent(validation.tree)) {
357
+ return (_jsx(ContainedNotice, { label: "Empty UI tree", children: "The app view has no renderable content." }));
358
+ }
359
+ // 06-apps §9 — a version change under an existing approval must be LOUD: the
360
+ // surface drops back to the sandbox and says so, in-surface, above the tree.
361
+ const dropBackNotice = inClient !== undefined && inClient.granted === false
362
+ ? (_jsx(ContainedNotice, { label: "In-client approval invalidated", outcome: "blocked", children: "This app changed since it was approved for the host page. It is running in the sandbox again until the new version is re-approved." }))
363
+ : null;
364
+ // 06-apps §8 — a host update under a remixed pin must be LOUD too: the fork
365
+ // keeps rendering (nothing is mutated without the user), but the surface
366
+ // says the host component moved on and a rebase is available.
367
+ const driftNotice = pinDrift.length > 0
368
+ ? (_jsx(ContainedNotice, { label: "Remixed component out of date", children: `The host updated ${pinDrift.map((pin) => `"${pin.slot}"`).join(", ")} since ${pinDrift.length === 1 ? "it was" : "they were"} remixed here. Ask the agent to rebase the remix onto the updated component.` }))
369
+ : null;
370
+ return (_jsxs(NodeErrorBoundary, { nodeId: validation.tree.root, retryKey: data ?? validation.tree.data, children: [dropBackNotice, driftNotice, _jsx(NodeRenderer, { nodeId: validation.tree.root, ancestry: new Set(), nodes: nodes, generated: streaming ? tree.components ?? {} : validation.tree.components ?? {}, ...(componentTools === undefined ? {} : { componentTools }), inClientGranted: inClientGranted, furnishings: furnishings, themeVars: themeVars, components: components, data: data ?? validation.tree.data ?? {}, state: viewState, streaming: streaming, outcomes: outcomes, runAction: runAction, setViewState: updateState })] }));
371
+ }
372
+ /** A new tree identity owns a fresh `$state` and outcome namespace. */
373
+ export function TreeView(props) {
374
+ return _jsx(StatefulTreeView, { ...props }, props.tree.root);
375
+ }
376
+ //# sourceMappingURL=renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/tree/renderer.tsx"],"names":[],"mappings":"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"}