@frontmcp/ui 0.5.0 → 0.6.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 (1134) hide show
  1. package/adapters/index.d.ts +13 -0
  2. package/adapters/index.d.ts.map +1 -0
  3. package/adapters/index.js +462 -0
  4. package/adapters/platform-meta.d.ts +166 -0
  5. package/adapters/platform-meta.d.ts.map +1 -0
  6. package/adapters/response-builder.d.ts +108 -0
  7. package/adapters/response-builder.d.ts.map +1 -0
  8. package/adapters/serving-mode.d.ts +107 -0
  9. package/adapters/serving-mode.d.ts.map +1 -0
  10. package/base-template/bridge.d.ts +90 -0
  11. package/base-template/bridge.d.ts.map +1 -0
  12. package/base-template/default-base-template.d.ts +92 -0
  13. package/base-template/default-base-template.d.ts.map +1 -0
  14. package/base-template/index.d.ts +15 -0
  15. package/base-template/index.d.ts.map +1 -0
  16. package/base-template/index.js +1398 -0
  17. package/base-template/polyfills.d.ts +31 -0
  18. package/base-template/polyfills.d.ts.map +1 -0
  19. package/base-template/theme-styles.d.ts +74 -0
  20. package/base-template/theme-styles.d.ts.map +1 -0
  21. package/bridge/adapters/base-adapter.d.ts +104 -0
  22. package/bridge/adapters/base-adapter.d.ts.map +1 -0
  23. package/bridge/adapters/claude.adapter.d.ts +67 -0
  24. package/bridge/adapters/claude.adapter.d.ts.map +1 -0
  25. package/bridge/adapters/ext-apps.adapter.d.ts +143 -0
  26. package/bridge/adapters/ext-apps.adapter.d.ts.map +1 -0
  27. package/bridge/adapters/gemini.adapter.d.ts +64 -0
  28. package/bridge/adapters/gemini.adapter.d.ts.map +1 -0
  29. package/bridge/adapters/generic.adapter.d.ts +56 -0
  30. package/bridge/adapters/generic.adapter.d.ts.map +1 -0
  31. package/bridge/adapters/index.d.ts +26 -0
  32. package/bridge/adapters/index.d.ts.map +1 -0
  33. package/bridge/adapters/openai.adapter.d.ts +65 -0
  34. package/bridge/adapters/openai.adapter.d.ts.map +1 -0
  35. package/bridge/core/adapter-registry.d.ts +122 -0
  36. package/bridge/core/adapter-registry.d.ts.map +1 -0
  37. package/bridge/core/bridge-factory.d.ts +199 -0
  38. package/bridge/core/bridge-factory.d.ts.map +1 -0
  39. package/bridge/core/index.d.ts +10 -0
  40. package/bridge/core/index.d.ts.map +1 -0
  41. package/bridge/index.d.ts +62 -0
  42. package/bridge/index.d.ts.map +1 -0
  43. package/bridge/index.js +2540 -0
  44. package/bridge/runtime/iife-generator.d.ts +62 -0
  45. package/bridge/runtime/iife-generator.d.ts.map +1 -0
  46. package/bridge/runtime/index.d.ts +9 -0
  47. package/bridge/runtime/index.d.ts.map +1 -0
  48. package/bridge/types.d.ts +386 -0
  49. package/bridge/types.d.ts.map +1 -0
  50. package/build/cdn-resources.d.ts +243 -0
  51. package/build/cdn-resources.d.ts.map +1 -0
  52. package/build/index.d.ts +295 -0
  53. package/build/index.d.ts.map +1 -0
  54. package/build/index.js +7096 -0
  55. package/build/widget-manifest.d.ts +362 -0
  56. package/build/widget-manifest.d.ts.map +1 -0
  57. package/bundler/bundler.d.ts +208 -0
  58. package/bundler/bundler.d.ts.map +1 -0
  59. package/bundler/cache.d.ts +173 -0
  60. package/bundler/cache.d.ts.map +1 -0
  61. package/bundler/file-cache/component-builder.d.ts +167 -0
  62. package/bundler/file-cache/component-builder.d.ts.map +1 -0
  63. package/bundler/file-cache/hash-calculator.d.ts +155 -0
  64. package/bundler/file-cache/hash-calculator.d.ts.map +1 -0
  65. package/bundler/file-cache/index.d.ts +12 -0
  66. package/bundler/file-cache/index.d.ts.map +1 -0
  67. package/bundler/file-cache/storage/filesystem.d.ts +149 -0
  68. package/bundler/file-cache/storage/filesystem.d.ts.map +1 -0
  69. package/bundler/file-cache/storage/index.d.ts +11 -0
  70. package/bundler/file-cache/storage/index.d.ts.map +1 -0
  71. package/bundler/file-cache/storage/interface.d.ts +152 -0
  72. package/bundler/file-cache/storage/interface.d.ts.map +1 -0
  73. package/bundler/file-cache/storage/redis.d.ts +139 -0
  74. package/bundler/file-cache/storage/redis.d.ts.map +1 -0
  75. package/bundler/index.d.ts +43 -0
  76. package/bundler/index.d.ts.map +1 -0
  77. package/bundler/index.js +4754 -0
  78. package/bundler/sandbox/enclave-adapter.d.ts +121 -0
  79. package/bundler/sandbox/enclave-adapter.d.ts.map +1 -0
  80. package/bundler/sandbox/executor.d.ts +14 -0
  81. package/bundler/sandbox/executor.d.ts.map +1 -0
  82. package/bundler/sandbox/policy.d.ts +62 -0
  83. package/bundler/sandbox/policy.d.ts.map +1 -0
  84. package/bundler/types.d.ts +702 -0
  85. package/bundler/types.d.ts.map +1 -0
  86. package/components/alert.d.ts +66 -0
  87. package/components/alert.d.ts.map +1 -0
  88. package/components/alert.schema.d.ts +98 -0
  89. package/components/alert.schema.d.ts.map +1 -0
  90. package/components/avatar.d.ts +77 -0
  91. package/components/avatar.d.ts.map +1 -0
  92. package/components/avatar.schema.d.ts +170 -0
  93. package/components/avatar.schema.d.ts.map +1 -0
  94. package/components/badge.d.ts +64 -0
  95. package/components/badge.d.ts.map +1 -0
  96. package/components/badge.schema.d.ts +91 -0
  97. package/components/badge.schema.d.ts.map +1 -0
  98. package/components/button.d.ts +100 -0
  99. package/components/button.d.ts.map +1 -0
  100. package/components/button.schema.d.ts +120 -0
  101. package/components/button.schema.d.ts.map +1 -0
  102. package/components/card.d.ts +53 -0
  103. package/components/card.d.ts.map +1 -0
  104. package/components/card.schema.d.ts +93 -0
  105. package/components/card.schema.d.ts.map +1 -0
  106. package/components/form.d.ts +212 -0
  107. package/components/form.d.ts.map +1 -0
  108. package/components/form.schema.d.ts +365 -0
  109. package/components/form.schema.d.ts.map +1 -0
  110. package/components/index.d.ts +29 -0
  111. package/components/index.d.ts.map +1 -0
  112. package/components/index.js +2595 -0
  113. package/components/list.d.ts +121 -0
  114. package/components/list.d.ts.map +1 -0
  115. package/components/list.schema.d.ts +129 -0
  116. package/components/list.schema.d.ts.map +1 -0
  117. package/components/modal.d.ts +100 -0
  118. package/components/modal.d.ts.map +1 -0
  119. package/components/modal.schema.d.ts +151 -0
  120. package/components/modal.schema.d.ts.map +1 -0
  121. package/components/table.d.ts +91 -0
  122. package/components/table.d.ts.map +1 -0
  123. package/components/table.schema.d.ts +123 -0
  124. package/components/table.schema.d.ts.map +1 -0
  125. package/dependency/cdn-registry.d.ts +98 -0
  126. package/dependency/cdn-registry.d.ts.map +1 -0
  127. package/dependency/import-map.d.ts +186 -0
  128. package/dependency/import-map.d.ts.map +1 -0
  129. package/dependency/import-parser.d.ts +82 -0
  130. package/dependency/import-parser.d.ts.map +1 -0
  131. package/dependency/index.d.ts +17 -0
  132. package/dependency/index.d.ts.map +1 -0
  133. package/dependency/resolver.d.ts +164 -0
  134. package/dependency/resolver.d.ts.map +1 -0
  135. package/dependency/schemas.d.ts +486 -0
  136. package/dependency/schemas.d.ts.map +1 -0
  137. package/dependency/template-loader.d.ts +204 -0
  138. package/dependency/template-loader.d.ts.map +1 -0
  139. package/dependency/template-processor.d.ts +118 -0
  140. package/dependency/template-processor.d.ts.map +1 -0
  141. package/dependency/types.d.ts +739 -0
  142. package/dependency/types.d.ts.map +1 -0
  143. package/esm/adapters/index.d.ts +13 -0
  144. package/esm/adapters/index.d.ts.map +1 -0
  145. package/esm/adapters/index.js +427 -0
  146. package/esm/adapters/platform-meta.d.ts +166 -0
  147. package/esm/adapters/platform-meta.d.ts.map +1 -0
  148. package/esm/adapters/response-builder.d.ts +108 -0
  149. package/esm/adapters/response-builder.d.ts.map +1 -0
  150. package/esm/adapters/serving-mode.d.ts +107 -0
  151. package/esm/adapters/serving-mode.d.ts.map +1 -0
  152. package/esm/base-template/bridge.d.ts +90 -0
  153. package/esm/base-template/bridge.d.ts.map +1 -0
  154. package/esm/base-template/default-base-template.d.ts +92 -0
  155. package/esm/base-template/default-base-template.d.ts.map +1 -0
  156. package/esm/base-template/index.d.ts +15 -0
  157. package/esm/base-template/index.d.ts.map +1 -0
  158. package/esm/base-template/index.js +1364 -0
  159. package/esm/base-template/polyfills.d.ts +31 -0
  160. package/esm/base-template/polyfills.d.ts.map +1 -0
  161. package/esm/base-template/theme-styles.d.ts +74 -0
  162. package/esm/base-template/theme-styles.d.ts.map +1 -0
  163. package/esm/bridge/adapters/base-adapter.d.ts +104 -0
  164. package/esm/bridge/adapters/base-adapter.d.ts.map +1 -0
  165. package/esm/bridge/adapters/claude.adapter.d.ts +67 -0
  166. package/esm/bridge/adapters/claude.adapter.d.ts.map +1 -0
  167. package/esm/bridge/adapters/ext-apps.adapter.d.ts +143 -0
  168. package/esm/bridge/adapters/ext-apps.adapter.d.ts.map +1 -0
  169. package/esm/bridge/adapters/gemini.adapter.d.ts +64 -0
  170. package/esm/bridge/adapters/gemini.adapter.d.ts.map +1 -0
  171. package/esm/bridge/adapters/generic.adapter.d.ts +56 -0
  172. package/esm/bridge/adapters/generic.adapter.d.ts.map +1 -0
  173. package/esm/bridge/adapters/index.d.ts +26 -0
  174. package/esm/bridge/adapters/index.d.ts.map +1 -0
  175. package/esm/bridge/adapters/openai.adapter.d.ts +65 -0
  176. package/esm/bridge/adapters/openai.adapter.d.ts.map +1 -0
  177. package/esm/bridge/core/adapter-registry.d.ts +122 -0
  178. package/esm/bridge/core/adapter-registry.d.ts.map +1 -0
  179. package/esm/bridge/core/bridge-factory.d.ts +199 -0
  180. package/esm/bridge/core/bridge-factory.d.ts.map +1 -0
  181. package/esm/bridge/core/index.d.ts +10 -0
  182. package/esm/bridge/core/index.d.ts.map +1 -0
  183. package/esm/bridge/index.d.ts +62 -0
  184. package/esm/bridge/index.d.ts.map +1 -0
  185. package/esm/bridge/index.js +2487 -0
  186. package/esm/bridge/runtime/iife-generator.d.ts +62 -0
  187. package/esm/bridge/runtime/iife-generator.d.ts.map +1 -0
  188. package/esm/bridge/runtime/index.d.ts +9 -0
  189. package/esm/bridge/runtime/index.d.ts.map +1 -0
  190. package/esm/bridge/types.d.ts +386 -0
  191. package/esm/bridge/types.d.ts.map +1 -0
  192. package/esm/build/cdn-resources.d.ts +243 -0
  193. package/esm/build/cdn-resources.d.ts.map +1 -0
  194. package/esm/build/index.d.ts +295 -0
  195. package/esm/build/index.d.ts.map +1 -0
  196. package/esm/build/index.js +7021 -0
  197. package/esm/build/widget-manifest.d.ts +362 -0
  198. package/esm/build/widget-manifest.d.ts.map +1 -0
  199. package/esm/bundler/bundler.d.ts +208 -0
  200. package/esm/bundler/bundler.d.ts.map +1 -0
  201. package/esm/bundler/cache.d.ts +173 -0
  202. package/esm/bundler/cache.d.ts.map +1 -0
  203. package/esm/bundler/file-cache/component-builder.d.ts +167 -0
  204. package/esm/bundler/file-cache/component-builder.d.ts.map +1 -0
  205. package/esm/bundler/file-cache/hash-calculator.d.ts +155 -0
  206. package/esm/bundler/file-cache/hash-calculator.d.ts.map +1 -0
  207. package/esm/bundler/file-cache/index.d.ts +12 -0
  208. package/esm/bundler/file-cache/index.d.ts.map +1 -0
  209. package/esm/bundler/file-cache/storage/filesystem.d.ts +149 -0
  210. package/esm/bundler/file-cache/storage/filesystem.d.ts.map +1 -0
  211. package/esm/bundler/file-cache/storage/index.d.ts +11 -0
  212. package/esm/bundler/file-cache/storage/index.d.ts.map +1 -0
  213. package/esm/bundler/file-cache/storage/interface.d.ts +152 -0
  214. package/esm/bundler/file-cache/storage/interface.d.ts.map +1 -0
  215. package/esm/bundler/file-cache/storage/redis.d.ts +139 -0
  216. package/esm/bundler/file-cache/storage/redis.d.ts.map +1 -0
  217. package/esm/bundler/index.d.ts +43 -0
  218. package/esm/bundler/index.d.ts.map +1 -0
  219. package/esm/bundler/index.js +4687 -0
  220. package/esm/bundler/sandbox/enclave-adapter.d.ts +121 -0
  221. package/esm/bundler/sandbox/enclave-adapter.d.ts.map +1 -0
  222. package/esm/bundler/sandbox/executor.d.ts +14 -0
  223. package/esm/bundler/sandbox/executor.d.ts.map +1 -0
  224. package/esm/bundler/sandbox/policy.d.ts +62 -0
  225. package/esm/bundler/sandbox/policy.d.ts.map +1 -0
  226. package/esm/bundler/types.d.ts +702 -0
  227. package/esm/bundler/types.d.ts.map +1 -0
  228. package/esm/components/alert.d.ts +66 -0
  229. package/esm/components/alert.d.ts.map +1 -0
  230. package/esm/components/alert.schema.d.ts +98 -0
  231. package/esm/components/alert.schema.d.ts.map +1 -0
  232. package/esm/components/avatar.d.ts +77 -0
  233. package/esm/components/avatar.d.ts.map +1 -0
  234. package/esm/components/avatar.schema.d.ts +170 -0
  235. package/esm/components/avatar.schema.d.ts.map +1 -0
  236. package/esm/components/badge.d.ts +64 -0
  237. package/esm/components/badge.d.ts.map +1 -0
  238. package/esm/components/badge.schema.d.ts +91 -0
  239. package/esm/components/badge.schema.d.ts.map +1 -0
  240. package/esm/components/button.d.ts +100 -0
  241. package/esm/components/button.d.ts.map +1 -0
  242. package/esm/components/button.schema.d.ts +120 -0
  243. package/esm/components/button.schema.d.ts.map +1 -0
  244. package/esm/components/card.d.ts +53 -0
  245. package/esm/components/card.d.ts.map +1 -0
  246. package/esm/components/card.schema.d.ts +93 -0
  247. package/esm/components/card.schema.d.ts.map +1 -0
  248. package/esm/components/form.d.ts +212 -0
  249. package/esm/components/form.d.ts.map +1 -0
  250. package/esm/components/form.schema.d.ts +365 -0
  251. package/esm/components/form.schema.d.ts.map +1 -0
  252. package/esm/components/index.d.ts +29 -0
  253. package/esm/components/index.d.ts.map +1 -0
  254. package/esm/components/index.js +2456 -0
  255. package/esm/components/list.d.ts +121 -0
  256. package/esm/components/list.d.ts.map +1 -0
  257. package/esm/components/list.schema.d.ts +129 -0
  258. package/esm/components/list.schema.d.ts.map +1 -0
  259. package/esm/components/modal.d.ts +100 -0
  260. package/esm/components/modal.d.ts.map +1 -0
  261. package/esm/components/modal.schema.d.ts +151 -0
  262. package/esm/components/modal.schema.d.ts.map +1 -0
  263. package/esm/components/table.d.ts +91 -0
  264. package/esm/components/table.d.ts.map +1 -0
  265. package/esm/components/table.schema.d.ts +123 -0
  266. package/esm/components/table.schema.d.ts.map +1 -0
  267. package/esm/dependency/cdn-registry.d.ts +98 -0
  268. package/esm/dependency/cdn-registry.d.ts.map +1 -0
  269. package/esm/dependency/import-map.d.ts +186 -0
  270. package/esm/dependency/import-map.d.ts.map +1 -0
  271. package/esm/dependency/import-parser.d.ts +82 -0
  272. package/esm/dependency/import-parser.d.ts.map +1 -0
  273. package/esm/dependency/index.d.ts +17 -0
  274. package/esm/dependency/index.d.ts.map +1 -0
  275. package/esm/dependency/resolver.d.ts +164 -0
  276. package/esm/dependency/resolver.d.ts.map +1 -0
  277. package/esm/dependency/schemas.d.ts +486 -0
  278. package/esm/dependency/schemas.d.ts.map +1 -0
  279. package/esm/dependency/template-loader.d.ts +204 -0
  280. package/esm/dependency/template-loader.d.ts.map +1 -0
  281. package/esm/dependency/template-processor.d.ts +118 -0
  282. package/esm/dependency/template-processor.d.ts.map +1 -0
  283. package/esm/dependency/types.d.ts +739 -0
  284. package/esm/dependency/types.d.ts.map +1 -0
  285. package/esm/handlebars/expression-extractor.d.ts +147 -0
  286. package/esm/handlebars/expression-extractor.d.ts.map +1 -0
  287. package/esm/handlebars/helpers.d.ts +339 -0
  288. package/esm/handlebars/helpers.d.ts.map +1 -0
  289. package/esm/handlebars/index.d.ts +195 -0
  290. package/esm/handlebars/index.d.ts.map +1 -0
  291. package/esm/handlebars/index.js +587 -0
  292. package/esm/index.d.ts +56 -0
  293. package/esm/index.d.ts.map +1 -0
  294. package/esm/index.js +20511 -0
  295. package/esm/layouts/base.d.ts +86 -0
  296. package/esm/layouts/base.d.ts.map +1 -0
  297. package/esm/layouts/index.d.ts +8 -0
  298. package/esm/layouts/index.d.ts.map +1 -0
  299. package/esm/layouts/index.js +892 -0
  300. package/esm/layouts/presets.d.ts +134 -0
  301. package/esm/layouts/presets.d.ts.map +1 -0
  302. package/esm/package.json +90 -0
  303. package/esm/pages/consent.d.ts +117 -0
  304. package/esm/pages/consent.d.ts.map +1 -0
  305. package/esm/pages/error.d.ts +101 -0
  306. package/esm/pages/error.d.ts.map +1 -0
  307. package/esm/pages/index.d.ts +9 -0
  308. package/esm/pages/index.d.ts.map +1 -0
  309. package/esm/pages/index.js +1563 -0
  310. package/esm/react/Alert.d.ts +102 -0
  311. package/esm/react/Alert.d.ts.map +1 -0
  312. package/esm/react/Badge.d.ts +101 -0
  313. package/esm/react/Badge.d.ts.map +1 -0
  314. package/esm/react/Button.d.ts +109 -0
  315. package/esm/react/Button.d.ts.map +1 -0
  316. package/esm/react/Card.d.ts +104 -0
  317. package/esm/react/Card.d.ts.map +1 -0
  318. package/esm/react/hooks/context.d.ts +179 -0
  319. package/esm/react/hooks/context.d.ts.map +1 -0
  320. package/esm/react/hooks/index.d.ts +42 -0
  321. package/esm/react/hooks/index.d.ts.map +1 -0
  322. package/esm/react/hooks/tools.d.ts +284 -0
  323. package/esm/react/hooks/tools.d.ts.map +1 -0
  324. package/esm/react/index.d.ts +81 -0
  325. package/esm/react/index.d.ts.map +1 -0
  326. package/esm/react/index.js +1372 -0
  327. package/esm/react/types.d.ts +106 -0
  328. package/esm/react/types.d.ts.map +1 -0
  329. package/esm/react/utils.d.ts +43 -0
  330. package/esm/react/utils.d.ts.map +1 -0
  331. package/esm/registry/index.d.ts +46 -0
  332. package/esm/registry/index.d.ts.map +1 -0
  333. package/esm/registry/index.js +6422 -0
  334. package/esm/registry/render-template.d.ts +91 -0
  335. package/esm/registry/render-template.d.ts.map +1 -0
  336. package/esm/registry/tool-ui.registry.d.ts +294 -0
  337. package/esm/registry/tool-ui.registry.d.ts.map +1 -0
  338. package/esm/registry/uri-utils.d.ts +56 -0
  339. package/esm/registry/uri-utils.d.ts.map +1 -0
  340. package/esm/render/index.d.ts +8 -0
  341. package/esm/render/index.d.ts.map +1 -0
  342. package/esm/render/index.js +45 -0
  343. package/esm/render/prerender.d.ts +57 -0
  344. package/esm/render/prerender.d.ts.map +1 -0
  345. package/esm/renderers/cache.d.ts +145 -0
  346. package/esm/renderers/cache.d.ts.map +1 -0
  347. package/esm/renderers/html.renderer.d.ts +123 -0
  348. package/esm/renderers/html.renderer.d.ts.map +1 -0
  349. package/esm/renderers/index.d.ts +36 -0
  350. package/esm/renderers/index.d.ts.map +1 -0
  351. package/esm/renderers/index.js +1827 -0
  352. package/esm/renderers/mdx.renderer.d.ts +120 -0
  353. package/esm/renderers/mdx.renderer.d.ts.map +1 -0
  354. package/esm/renderers/react.renderer.d.ts +96 -0
  355. package/esm/renderers/react.renderer.d.ts.map +1 -0
  356. package/esm/renderers/registry.d.ts +134 -0
  357. package/esm/renderers/registry.d.ts.map +1 -0
  358. package/esm/renderers/types.d.ts +342 -0
  359. package/esm/renderers/types.d.ts.map +1 -0
  360. package/esm/renderers/utils/detect.d.ts +107 -0
  361. package/esm/renderers/utils/detect.d.ts.map +1 -0
  362. package/esm/renderers/utils/hash.d.ts +40 -0
  363. package/esm/renderers/utils/hash.d.ts.map +1 -0
  364. package/esm/renderers/utils/index.d.ts +9 -0
  365. package/esm/renderers/utils/index.d.ts.map +1 -0
  366. package/esm/renderers/utils/transpiler.d.ts +89 -0
  367. package/esm/renderers/utils/transpiler.d.ts.map +1 -0
  368. package/esm/runtime/adapters/html.adapter.d.ts +59 -0
  369. package/esm/runtime/adapters/html.adapter.d.ts.map +1 -0
  370. package/esm/runtime/adapters/index.d.ts +26 -0
  371. package/esm/runtime/adapters/index.d.ts.map +1 -0
  372. package/esm/runtime/adapters/mdx.adapter.d.ts +73 -0
  373. package/esm/runtime/adapters/mdx.adapter.d.ts.map +1 -0
  374. package/esm/runtime/adapters/react.adapter.d.ts +70 -0
  375. package/esm/runtime/adapters/react.adapter.d.ts.map +1 -0
  376. package/esm/runtime/adapters/types.d.ts +95 -0
  377. package/esm/runtime/adapters/types.d.ts.map +1 -0
  378. package/esm/runtime/csp.d.ts +48 -0
  379. package/esm/runtime/csp.d.ts.map +1 -0
  380. package/esm/runtime/index.d.ts +17 -0
  381. package/esm/runtime/index.d.ts.map +1 -0
  382. package/esm/runtime/index.js +5186 -0
  383. package/esm/runtime/mcp-bridge.d.ts +101 -0
  384. package/esm/runtime/mcp-bridge.d.ts.map +1 -0
  385. package/esm/runtime/renderer-runtime.d.ts +133 -0
  386. package/esm/runtime/renderer-runtime.d.ts.map +1 -0
  387. package/esm/runtime/sanitizer.d.ts +172 -0
  388. package/esm/runtime/sanitizer.d.ts.map +1 -0
  389. package/esm/runtime/types.d.ts +415 -0
  390. package/esm/runtime/types.d.ts.map +1 -0
  391. package/esm/runtime/wrapper.d.ts +421 -0
  392. package/esm/runtime/wrapper.d.ts.map +1 -0
  393. package/esm/styles/index.d.ts +8 -0
  394. package/esm/styles/index.d.ts.map +1 -0
  395. package/esm/styles/index.js +171 -0
  396. package/esm/styles/variants.d.ts +51 -0
  397. package/esm/styles/variants.d.ts.map +1 -0
  398. package/esm/theme/cdn.d.ts +195 -0
  399. package/esm/theme/cdn.d.ts.map +1 -0
  400. package/esm/theme/index.d.ts +18 -0
  401. package/esm/theme/index.d.ts.map +1 -0
  402. package/esm/theme/index.js +700 -0
  403. package/esm/theme/platforms.d.ts +107 -0
  404. package/esm/theme/platforms.d.ts.map +1 -0
  405. package/esm/theme/presets/github-openai.d.ts +50 -0
  406. package/esm/theme/presets/github-openai.d.ts.map +1 -0
  407. package/esm/theme/presets/index.d.ts +11 -0
  408. package/esm/theme/presets/index.d.ts.map +1 -0
  409. package/esm/theme/theme.d.ts +396 -0
  410. package/esm/theme/theme.d.ts.map +1 -0
  411. package/esm/tool-template/builder.d.ts +213 -0
  412. package/esm/tool-template/builder.d.ts.map +1 -0
  413. package/esm/tool-template/index.d.ts +16 -0
  414. package/esm/tool-template/index.d.ts.map +1 -0
  415. package/esm/tool-template/index.js +3515 -0
  416. package/esm/types/index.d.ts +14 -0
  417. package/esm/types/index.d.ts.map +1 -0
  418. package/esm/types/index.js +75 -0
  419. package/esm/types/ui-config.d.ts +639 -0
  420. package/esm/types/ui-config.d.ts.map +1 -0
  421. package/esm/types/ui-runtime.d.ts +1007 -0
  422. package/esm/types/ui-runtime.d.ts.map +1 -0
  423. package/esm/typings/cache/cache-adapter.d.ts +125 -0
  424. package/esm/typings/cache/cache-adapter.d.ts.map +1 -0
  425. package/esm/typings/cache/index.d.ts +10 -0
  426. package/esm/typings/cache/index.d.ts.map +1 -0
  427. package/esm/typings/cache/memory-cache.d.ts +92 -0
  428. package/esm/typings/cache/memory-cache.d.ts.map +1 -0
  429. package/esm/typings/dts-parser.d.ts +90 -0
  430. package/esm/typings/dts-parser.d.ts.map +1 -0
  431. package/esm/typings/index.d.ts +48 -0
  432. package/esm/typings/index.d.ts.map +1 -0
  433. package/esm/typings/schemas.d.ts +232 -0
  434. package/esm/typings/schemas.d.ts.map +1 -0
  435. package/esm/typings/type-fetcher.d.ts +89 -0
  436. package/esm/typings/type-fetcher.d.ts.map +1 -0
  437. package/esm/typings/types.d.ts +320 -0
  438. package/esm/typings/types.d.ts.map +1 -0
  439. package/esm/universal/UniversalApp.d.ts +108 -0
  440. package/esm/universal/UniversalApp.d.ts.map +1 -0
  441. package/esm/universal/cached-runtime.d.ts +115 -0
  442. package/esm/universal/cached-runtime.d.ts.map +1 -0
  443. package/esm/universal/context.d.ts +122 -0
  444. package/esm/universal/context.d.ts.map +1 -0
  445. package/esm/universal/index.d.ts +57 -0
  446. package/esm/universal/index.d.ts.map +1 -0
  447. package/esm/universal/renderers/html.renderer.d.ts +37 -0
  448. package/esm/universal/renderers/html.renderer.d.ts.map +1 -0
  449. package/esm/universal/renderers/index.d.ts +112 -0
  450. package/esm/universal/renderers/index.d.ts.map +1 -0
  451. package/esm/universal/renderers/markdown.renderer.d.ts +33 -0
  452. package/esm/universal/renderers/markdown.renderer.d.ts.map +1 -0
  453. package/esm/universal/renderers/mdx.renderer.d.ts +38 -0
  454. package/esm/universal/renderers/mdx.renderer.d.ts.map +1 -0
  455. package/esm/universal/renderers/react.renderer.d.ts +46 -0
  456. package/esm/universal/renderers/react.renderer.d.ts.map +1 -0
  457. package/esm/universal/runtime-builder.d.ts +33 -0
  458. package/esm/universal/runtime-builder.d.ts.map +1 -0
  459. package/esm/universal/store.d.ts +135 -0
  460. package/esm/universal/store.d.ts.map +1 -0
  461. package/esm/universal/types.d.ts +199 -0
  462. package/esm/universal/types.d.ts.map +1 -0
  463. package/esm/utils/escape-html.d.ts +58 -0
  464. package/esm/utils/escape-html.d.ts.map +1 -0
  465. package/esm/utils/index.d.ts +10 -0
  466. package/esm/utils/index.d.ts.map +1 -0
  467. package/esm/utils/index.js +40 -0
  468. package/esm/utils/safe-stringify.d.ts +30 -0
  469. package/esm/utils/safe-stringify.d.ts.map +1 -0
  470. package/esm/validation/error-box.d.ts +56 -0
  471. package/esm/validation/error-box.d.ts.map +1 -0
  472. package/esm/validation/index.d.ts +13 -0
  473. package/esm/validation/index.d.ts.map +1 -0
  474. package/esm/validation/index.js +562 -0
  475. package/esm/validation/schema-paths.d.ts +118 -0
  476. package/esm/validation/schema-paths.d.ts.map +1 -0
  477. package/esm/validation/template-validator.d.ts +143 -0
  478. package/esm/validation/template-validator.d.ts.map +1 -0
  479. package/esm/validation/wrapper.d.ts +97 -0
  480. package/esm/validation/wrapper.d.ts.map +1 -0
  481. package/esm/web-components/core/attribute-parser.d.ts +82 -0
  482. package/esm/web-components/core/attribute-parser.d.ts.map +1 -0
  483. package/esm/web-components/core/base-element.d.ts +197 -0
  484. package/esm/web-components/core/base-element.d.ts.map +1 -0
  485. package/esm/web-components/core/index.d.ts +9 -0
  486. package/esm/web-components/core/index.d.ts.map +1 -0
  487. package/esm/web-components/elements/fmcp-alert.d.ts +46 -0
  488. package/esm/web-components/elements/fmcp-alert.d.ts.map +1 -0
  489. package/esm/web-components/elements/fmcp-badge.d.ts +47 -0
  490. package/esm/web-components/elements/fmcp-badge.d.ts.map +1 -0
  491. package/esm/web-components/elements/fmcp-button.d.ts +117 -0
  492. package/esm/web-components/elements/fmcp-button.d.ts.map +1 -0
  493. package/esm/web-components/elements/fmcp-card.d.ts +53 -0
  494. package/esm/web-components/elements/fmcp-card.d.ts.map +1 -0
  495. package/esm/web-components/elements/fmcp-input.d.ts +96 -0
  496. package/esm/web-components/elements/fmcp-input.d.ts.map +1 -0
  497. package/esm/web-components/elements/fmcp-select.d.ts +100 -0
  498. package/esm/web-components/elements/fmcp-select.d.ts.map +1 -0
  499. package/esm/web-components/elements/index.d.ts +13 -0
  500. package/esm/web-components/elements/index.d.ts.map +1 -0
  501. package/esm/web-components/index.d.ts +50 -0
  502. package/esm/web-components/index.d.ts.map +1 -0
  503. package/esm/web-components/index.js +2048 -0
  504. package/esm/web-components/register.d.ts +57 -0
  505. package/esm/web-components/register.d.ts.map +1 -0
  506. package/esm/web-components/types.d.ts +122 -0
  507. package/esm/web-components/types.d.ts.map +1 -0
  508. package/esm/widgets/index.d.ts +8 -0
  509. package/esm/widgets/index.d.ts.map +1 -0
  510. package/esm/widgets/index.js +941 -0
  511. package/esm/widgets/progress.d.ts +133 -0
  512. package/esm/widgets/progress.d.ts.map +1 -0
  513. package/esm/widgets/resource.d.ts +163 -0
  514. package/esm/widgets/resource.d.ts.map +1 -0
  515. package/handlebars/expression-extractor.d.ts +147 -0
  516. package/handlebars/expression-extractor.d.ts.map +1 -0
  517. package/handlebars/helpers.d.ts +339 -0
  518. package/handlebars/helpers.d.ts.map +1 -0
  519. package/handlebars/index.d.ts +195 -0
  520. package/handlebars/index.d.ts.map +1 -0
  521. package/handlebars/index.js +666 -0
  522. package/index.d.ts +56 -0
  523. package/index.d.ts.map +1 -0
  524. package/index.js +20942 -0
  525. package/layouts/base.d.ts +86 -0
  526. package/layouts/base.d.ts.map +1 -0
  527. package/layouts/index.d.ts +8 -0
  528. package/layouts/index.d.ts.map +1 -0
  529. package/layouts/index.js +930 -0
  530. package/layouts/presets.d.ts +134 -0
  531. package/layouts/presets.d.ts.map +1 -0
  532. package/package.json +28 -87
  533. package/pages/consent.d.ts +117 -0
  534. package/pages/consent.d.ts.map +1 -0
  535. package/pages/error.d.ts +101 -0
  536. package/pages/error.d.ts.map +1 -0
  537. package/pages/index.d.ts +9 -0
  538. package/pages/index.d.ts.map +1 -0
  539. package/pages/index.js +1602 -0
  540. package/react/Alert.d.ts +102 -0
  541. package/react/Alert.d.ts.map +1 -0
  542. package/react/Badge.d.ts +101 -0
  543. package/react/Badge.d.ts.map +1 -0
  544. package/react/Button.d.ts +109 -0
  545. package/react/Button.d.ts.map +1 -0
  546. package/react/Card.d.ts +104 -0
  547. package/react/Card.d.ts.map +1 -0
  548. package/react/hooks/context.d.ts +179 -0
  549. package/react/hooks/context.d.ts.map +1 -0
  550. package/react/hooks/index.d.ts +42 -0
  551. package/react/hooks/index.d.ts.map +1 -0
  552. package/react/hooks/tools.d.ts +284 -0
  553. package/react/hooks/tools.d.ts.map +1 -0
  554. package/react/index.d.ts +81 -0
  555. package/react/index.d.ts.map +1 -0
  556. package/react/index.js +1430 -0
  557. package/react/types.d.ts +106 -0
  558. package/react/types.d.ts.map +1 -0
  559. package/react/utils.d.ts +43 -0
  560. package/react/utils.d.ts.map +1 -0
  561. package/registry/index.d.ts +46 -0
  562. package/registry/index.d.ts.map +1 -0
  563. package/registry/index.js +6465 -0
  564. package/registry/render-template.d.ts +91 -0
  565. package/registry/render-template.d.ts.map +1 -0
  566. package/registry/tool-ui.registry.d.ts +294 -0
  567. package/registry/tool-ui.registry.d.ts.map +1 -0
  568. package/registry/uri-utils.d.ts +56 -0
  569. package/registry/uri-utils.d.ts.map +1 -0
  570. package/render/index.d.ts +8 -0
  571. package/render/index.d.ts.map +1 -0
  572. package/render/index.js +77 -0
  573. package/render/prerender.d.ts +57 -0
  574. package/render/prerender.d.ts.map +1 -0
  575. package/renderers/cache.d.ts +145 -0
  576. package/renderers/cache.d.ts.map +1 -0
  577. package/renderers/html.renderer.d.ts +123 -0
  578. package/renderers/html.renderer.d.ts.map +1 -0
  579. package/renderers/index.d.ts +36 -0
  580. package/renderers/index.d.ts.map +1 -0
  581. package/renderers/index.js +1882 -0
  582. package/renderers/mdx.renderer.d.ts +120 -0
  583. package/renderers/mdx.renderer.d.ts.map +1 -0
  584. package/renderers/react.renderer.d.ts +96 -0
  585. package/renderers/react.renderer.d.ts.map +1 -0
  586. package/renderers/registry.d.ts +134 -0
  587. package/renderers/registry.d.ts.map +1 -0
  588. package/renderers/types.d.ts +342 -0
  589. package/renderers/types.d.ts.map +1 -0
  590. package/renderers/utils/detect.d.ts +107 -0
  591. package/renderers/utils/detect.d.ts.map +1 -0
  592. package/renderers/utils/hash.d.ts +40 -0
  593. package/renderers/utils/hash.d.ts.map +1 -0
  594. package/renderers/utils/index.d.ts +9 -0
  595. package/renderers/utils/index.d.ts.map +1 -0
  596. package/renderers/utils/transpiler.d.ts +89 -0
  597. package/renderers/utils/transpiler.d.ts.map +1 -0
  598. package/runtime/adapters/html.adapter.d.ts +59 -0
  599. package/runtime/adapters/html.adapter.d.ts.map +1 -0
  600. package/runtime/adapters/index.d.ts +26 -0
  601. package/runtime/adapters/index.d.ts.map +1 -0
  602. package/runtime/adapters/mdx.adapter.d.ts +73 -0
  603. package/runtime/adapters/mdx.adapter.d.ts.map +1 -0
  604. package/runtime/adapters/react.adapter.d.ts +70 -0
  605. package/runtime/adapters/react.adapter.d.ts.map +1 -0
  606. package/runtime/adapters/types.d.ts +95 -0
  607. package/runtime/adapters/types.d.ts.map +1 -0
  608. package/runtime/csp.d.ts +48 -0
  609. package/runtime/csp.d.ts.map +1 -0
  610. package/runtime/index.d.ts +17 -0
  611. package/runtime/index.d.ts.map +1 -0
  612. package/runtime/index.js +5264 -0
  613. package/runtime/mcp-bridge.d.ts +101 -0
  614. package/runtime/mcp-bridge.d.ts.map +1 -0
  615. package/runtime/renderer-runtime.d.ts +133 -0
  616. package/runtime/renderer-runtime.d.ts.map +1 -0
  617. package/runtime/sanitizer.d.ts +172 -0
  618. package/runtime/sanitizer.d.ts.map +1 -0
  619. package/runtime/types.d.ts +415 -0
  620. package/runtime/types.d.ts.map +1 -0
  621. package/runtime/wrapper.d.ts +421 -0
  622. package/runtime/wrapper.d.ts.map +1 -0
  623. package/styles/index.d.ts +8 -0
  624. package/styles/index.d.ts.map +1 -0
  625. package/styles/index.js +222 -0
  626. package/styles/variants.d.ts +51 -0
  627. package/styles/variants.d.ts.map +1 -0
  628. package/theme/cdn.d.ts +195 -0
  629. package/theme/cdn.d.ts.map +1 -0
  630. package/theme/index.d.ts +18 -0
  631. package/theme/index.d.ts.map +1 -0
  632. package/theme/index.js +757 -0
  633. package/theme/platforms.d.ts +107 -0
  634. package/theme/platforms.d.ts.map +1 -0
  635. package/theme/presets/github-openai.d.ts +50 -0
  636. package/theme/presets/github-openai.d.ts.map +1 -0
  637. package/theme/presets/index.d.ts +11 -0
  638. package/theme/presets/index.d.ts.map +1 -0
  639. package/theme/theme.d.ts +396 -0
  640. package/theme/theme.d.ts.map +1 -0
  641. package/tool-template/builder.d.ts +213 -0
  642. package/tool-template/builder.d.ts.map +1 -0
  643. package/tool-template/index.d.ts +16 -0
  644. package/tool-template/index.d.ts.map +1 -0
  645. package/tool-template/index.js +3559 -0
  646. package/types/index.d.ts +14 -0
  647. package/types/index.d.ts.map +1 -0
  648. package/types/index.js +108 -0
  649. package/types/ui-config.d.ts +639 -0
  650. package/types/ui-config.d.ts.map +1 -0
  651. package/types/ui-runtime.d.ts +1007 -0
  652. package/types/ui-runtime.d.ts.map +1 -0
  653. package/typings/cache/cache-adapter.d.ts +125 -0
  654. package/typings/cache/cache-adapter.d.ts.map +1 -0
  655. package/typings/cache/index.d.ts +10 -0
  656. package/typings/cache/index.d.ts.map +1 -0
  657. package/typings/cache/memory-cache.d.ts +92 -0
  658. package/typings/cache/memory-cache.d.ts.map +1 -0
  659. package/typings/dts-parser.d.ts +90 -0
  660. package/typings/dts-parser.d.ts.map +1 -0
  661. package/typings/index.d.ts +48 -0
  662. package/typings/index.d.ts.map +1 -0
  663. package/typings/schemas.d.ts +232 -0
  664. package/typings/schemas.d.ts.map +1 -0
  665. package/typings/type-fetcher.d.ts +89 -0
  666. package/typings/type-fetcher.d.ts.map +1 -0
  667. package/typings/types.d.ts +320 -0
  668. package/typings/types.d.ts.map +1 -0
  669. package/universal/UniversalApp.d.ts +108 -0
  670. package/universal/UniversalApp.d.ts.map +1 -0
  671. package/universal/cached-runtime.d.ts +115 -0
  672. package/universal/cached-runtime.d.ts.map +1 -0
  673. package/universal/context.d.ts +122 -0
  674. package/universal/context.d.ts.map +1 -0
  675. package/universal/index.d.ts +57 -0
  676. package/universal/index.d.ts.map +1 -0
  677. package/universal/renderers/html.renderer.d.ts +37 -0
  678. package/universal/renderers/html.renderer.d.ts.map +1 -0
  679. package/universal/renderers/index.d.ts +112 -0
  680. package/universal/renderers/index.d.ts.map +1 -0
  681. package/universal/renderers/markdown.renderer.d.ts +33 -0
  682. package/universal/renderers/markdown.renderer.d.ts.map +1 -0
  683. package/universal/renderers/mdx.renderer.d.ts +38 -0
  684. package/universal/renderers/mdx.renderer.d.ts.map +1 -0
  685. package/universal/renderers/react.renderer.d.ts +46 -0
  686. package/universal/renderers/react.renderer.d.ts.map +1 -0
  687. package/universal/runtime-builder.d.ts +33 -0
  688. package/universal/runtime-builder.d.ts.map +1 -0
  689. package/universal/store.d.ts +135 -0
  690. package/universal/store.d.ts.map +1 -0
  691. package/universal/types.d.ts +199 -0
  692. package/universal/types.d.ts.map +1 -0
  693. package/utils/escape-html.d.ts +58 -0
  694. package/utils/escape-html.d.ts.map +1 -0
  695. package/utils/index.d.ts +10 -0
  696. package/utils/index.d.ts.map +1 -0
  697. package/utils/index.js +70 -0
  698. package/utils/safe-stringify.d.ts +30 -0
  699. package/utils/safe-stringify.d.ts.map +1 -0
  700. package/validation/error-box.d.ts +56 -0
  701. package/validation/error-box.d.ts.map +1 -0
  702. package/validation/index.d.ts +13 -0
  703. package/validation/index.d.ts.map +1 -0
  704. package/validation/index.js +603 -0
  705. package/validation/schema-paths.d.ts +118 -0
  706. package/validation/schema-paths.d.ts.map +1 -0
  707. package/validation/template-validator.d.ts +143 -0
  708. package/validation/template-validator.d.ts.map +1 -0
  709. package/validation/wrapper.d.ts +97 -0
  710. package/validation/wrapper.d.ts.map +1 -0
  711. package/web-components/core/attribute-parser.d.ts +82 -0
  712. package/web-components/core/attribute-parser.d.ts.map +1 -0
  713. package/web-components/core/base-element.d.ts +197 -0
  714. package/web-components/core/base-element.d.ts.map +1 -0
  715. package/web-components/core/index.d.ts +9 -0
  716. package/web-components/core/index.d.ts.map +1 -0
  717. package/web-components/elements/fmcp-alert.d.ts +46 -0
  718. package/web-components/elements/fmcp-alert.d.ts.map +1 -0
  719. package/web-components/elements/fmcp-badge.d.ts +47 -0
  720. package/web-components/elements/fmcp-badge.d.ts.map +1 -0
  721. package/web-components/elements/fmcp-button.d.ts +117 -0
  722. package/web-components/elements/fmcp-button.d.ts.map +1 -0
  723. package/web-components/elements/fmcp-card.d.ts +53 -0
  724. package/web-components/elements/fmcp-card.d.ts.map +1 -0
  725. package/web-components/elements/fmcp-input.d.ts +96 -0
  726. package/web-components/elements/fmcp-input.d.ts.map +1 -0
  727. package/web-components/elements/fmcp-select.d.ts +100 -0
  728. package/web-components/elements/fmcp-select.d.ts.map +1 -0
  729. package/web-components/elements/index.d.ts +13 -0
  730. package/web-components/elements/index.d.ts.map +1 -0
  731. package/web-components/index.d.ts +50 -0
  732. package/web-components/index.d.ts.map +1 -0
  733. package/web-components/index.js +2093 -0
  734. package/web-components/register.d.ts +57 -0
  735. package/web-components/register.d.ts.map +1 -0
  736. package/web-components/types.d.ts +122 -0
  737. package/web-components/types.d.ts.map +1 -0
  738. package/widgets/index.d.ts +8 -0
  739. package/widgets/index.d.ts.map +1 -0
  740. package/widgets/index.js +978 -0
  741. package/widgets/progress.d.ts +133 -0
  742. package/widgets/progress.d.ts.map +1 -0
  743. package/widgets/resource.d.ts +163 -0
  744. package/widgets/resource.d.ts.map +1 -0
  745. package/src/adapters/index.d.ts +0 -10
  746. package/src/adapters/index.js +0 -18
  747. package/src/adapters/index.js.map +0 -1
  748. package/src/adapters/platform-meta.d.ts +0 -165
  749. package/src/adapters/platform-meta.js +0 -310
  750. package/src/adapters/platform-meta.js.map +0 -1
  751. package/src/base-template/bridge.d.ts +0 -89
  752. package/src/base-template/bridge.js +0 -452
  753. package/src/base-template/bridge.js.map +0 -1
  754. package/src/base-template/default-base-template.d.ts +0 -91
  755. package/src/base-template/default-base-template.js +0 -435
  756. package/src/base-template/default-base-template.js.map +0 -1
  757. package/src/base-template/index.d.ts +0 -14
  758. package/src/base-template/index.js +0 -30
  759. package/src/base-template/index.js.map +0 -1
  760. package/src/base-template/polyfills.d.ts +0 -30
  761. package/src/base-template/polyfills.js +0 -190
  762. package/src/base-template/polyfills.js.map +0 -1
  763. package/src/base-template/theme-styles.d.ts +0 -73
  764. package/src/base-template/theme-styles.js +0 -95
  765. package/src/base-template/theme-styles.js.map +0 -1
  766. package/src/bridge/adapters/base-adapter.d.ts +0 -103
  767. package/src/bridge/adapters/base-adapter.js +0 -314
  768. package/src/bridge/adapters/base-adapter.js.map +0 -1
  769. package/src/bridge/adapters/claude.adapter.d.ts +0 -66
  770. package/src/bridge/adapters/claude.adapter.js +0 -145
  771. package/src/bridge/adapters/claude.adapter.js.map +0 -1
  772. package/src/bridge/adapters/ext-apps.adapter.d.ts +0 -142
  773. package/src/bridge/adapters/ext-apps.adapter.js +0 -416
  774. package/src/bridge/adapters/ext-apps.adapter.js.map +0 -1
  775. package/src/bridge/adapters/gemini.adapter.d.ts +0 -63
  776. package/src/bridge/adapters/gemini.adapter.js +0 -160
  777. package/src/bridge/adapters/gemini.adapter.js.map +0 -1
  778. package/src/bridge/adapters/generic.adapter.d.ts +0 -55
  779. package/src/bridge/adapters/generic.adapter.js +0 -108
  780. package/src/bridge/adapters/generic.adapter.js.map +0 -1
  781. package/src/bridge/adapters/index.d.ts +0 -25
  782. package/src/bridge/adapters/index.js +0 -65
  783. package/src/bridge/adapters/index.js.map +0 -1
  784. package/src/bridge/adapters/openai.adapter.d.ts +0 -64
  785. package/src/bridge/adapters/openai.adapter.js +0 -194
  786. package/src/bridge/adapters/openai.adapter.js.map +0 -1
  787. package/src/bridge/core/adapter-registry.d.ts +0 -121
  788. package/src/bridge/core/adapter-registry.js +0 -271
  789. package/src/bridge/core/adapter-registry.js.map +0 -1
  790. package/src/bridge/core/bridge-factory.d.ts +0 -198
  791. package/src/bridge/core/bridge-factory.js +0 -428
  792. package/src/bridge/core/bridge-factory.js.map +0 -1
  793. package/src/bridge/core/index.d.ts +0 -9
  794. package/src/bridge/core/index.js +0 -22
  795. package/src/bridge/core/index.js.map +0 -1
  796. package/src/bridge/index.d.ts +0 -61
  797. package/src/bridge/index.js +0 -94
  798. package/src/bridge/index.js.map +0 -1
  799. package/src/bridge/runtime/iife-generator.d.ts +0 -61
  800. package/src/bridge/runtime/iife-generator.js +0 -940
  801. package/src/bridge/runtime/iife-generator.js.map +0 -1
  802. package/src/bridge/runtime/index.d.ts +0 -8
  803. package/src/bridge/runtime/index.js +0 -16
  804. package/src/bridge/runtime/index.js.map +0 -1
  805. package/src/bridge/types.d.ts +0 -385
  806. package/src/bridge/types.js +0 -11
  807. package/src/bridge/types.js.map +0 -1
  808. package/src/build/cdn-resources.d.ts +0 -140
  809. package/src/build/cdn-resources.js +0 -314
  810. package/src/build/cdn-resources.js.map +0 -1
  811. package/src/build/index.d.ts +0 -294
  812. package/src/build/index.js +0 -325
  813. package/src/build/index.js.map +0 -1
  814. package/src/build/widget-manifest.d.ts +0 -212
  815. package/src/build/widget-manifest.js +0 -652
  816. package/src/build/widget-manifest.js.map +0 -1
  817. package/src/bundler/bundler.d.ts +0 -110
  818. package/src/bundler/bundler.js +0 -432
  819. package/src/bundler/bundler.js.map +0 -1
  820. package/src/bundler/cache.d.ts +0 -172
  821. package/src/bundler/cache.js +0 -250
  822. package/src/bundler/cache.js.map +0 -1
  823. package/src/bundler/index.d.ts +0 -41
  824. package/src/bundler/index.js +0 -73
  825. package/src/bundler/index.js.map +0 -1
  826. package/src/bundler/sandbox/enclave-adapter.d.ts +0 -120
  827. package/src/bundler/sandbox/enclave-adapter.js +0 -339
  828. package/src/bundler/sandbox/enclave-adapter.js.map +0 -1
  829. package/src/bundler/sandbox/executor.d.ts +0 -13
  830. package/src/bundler/sandbox/executor.js +0 -22
  831. package/src/bundler/sandbox/executor.js.map +0 -1
  832. package/src/bundler/sandbox/policy.d.ts +0 -61
  833. package/src/bundler/sandbox/policy.js +0 -238
  834. package/src/bundler/sandbox/policy.js.map +0 -1
  835. package/src/bundler/types.d.ts +0 -347
  836. package/src/bundler/types.js +0 -132
  837. package/src/bundler/types.js.map +0 -1
  838. package/src/components/alert.d.ts +0 -71
  839. package/src/components/alert.js +0 -189
  840. package/src/components/alert.js.map +0 -1
  841. package/src/components/alert.schema.d.ts +0 -114
  842. package/src/components/alert.schema.js +0 -105
  843. package/src/components/alert.schema.js.map +0 -1
  844. package/src/components/avatar.d.ts +0 -76
  845. package/src/components/avatar.js +0 -176
  846. package/src/components/avatar.js.map +0 -1
  847. package/src/components/avatar.schema.d.ts +0 -169
  848. package/src/components/avatar.schema.js +0 -103
  849. package/src/components/avatar.schema.js.map +0 -1
  850. package/src/components/badge.d.ts +0 -70
  851. package/src/components/badge.js +0 -149
  852. package/src/components/badge.js.map +0 -1
  853. package/src/components/badge.schema.d.ts +0 -109
  854. package/src/components/badge.schema.js +0 -96
  855. package/src/components/badge.schema.js.map +0 -1
  856. package/src/components/button.d.ts +0 -111
  857. package/src/components/button.js +0 -336
  858. package/src/components/button.js.map +0 -1
  859. package/src/components/button.schema.d.ts +0 -148
  860. package/src/components/button.schema.js +0 -121
  861. package/src/components/button.schema.js.map +0 -1
  862. package/src/components/card.d.ts +0 -60
  863. package/src/components/card.js +0 -117
  864. package/src/components/card.js.map +0 -1
  865. package/src/components/card.schema.d.ts +0 -113
  866. package/src/components/card.schema.js +0 -98
  867. package/src/components/card.schema.js.map +0 -1
  868. package/src/components/form.d.ts +0 -239
  869. package/src/components/form.js +0 -420
  870. package/src/components/form.js.map +0 -1
  871. package/src/components/form.schema.d.ts +0 -441
  872. package/src/components/form.schema.js +0 -406
  873. package/src/components/form.schema.js.map +0 -1
  874. package/src/components/index.d.ts +0 -29
  875. package/src/components/index.js +0 -98
  876. package/src/components/index.js.map +0 -1
  877. package/src/components/list.d.ts +0 -127
  878. package/src/components/list.js +0 -279
  879. package/src/components/list.js.map +0 -1
  880. package/src/components/list.schema.d.ts +0 -134
  881. package/src/components/list.schema.js +0 -168
  882. package/src/components/list.schema.js.map +0 -1
  883. package/src/components/modal.d.ts +0 -111
  884. package/src/components/modal.js +0 -260
  885. package/src/components/modal.js.map +0 -1
  886. package/src/components/modal.schema.d.ts +0 -186
  887. package/src/components/modal.schema.js +0 -167
  888. package/src/components/modal.schema.js.map +0 -1
  889. package/src/components/table.d.ts +0 -105
  890. package/src/components/table.js +0 -283
  891. package/src/components/table.js.map +0 -1
  892. package/src/components/table.schema.d.ts +0 -159
  893. package/src/components/table.schema.js +0 -173
  894. package/src/components/table.schema.js.map +0 -1
  895. package/src/handlebars/helpers.d.ts +0 -348
  896. package/src/handlebars/helpers.js +0 -605
  897. package/src/handlebars/helpers.js.map +0 -1
  898. package/src/handlebars/index.d.ts +0 -193
  899. package/src/handlebars/index.js +0 -350
  900. package/src/handlebars/index.js.map +0 -1
  901. package/src/index.d.ts +0 -50
  902. package/src/index.js +0 -192
  903. package/src/index.js.map +0 -1
  904. package/src/layouts/base.d.ts +0 -88
  905. package/src/layouts/base.js +0 -227
  906. package/src/layouts/base.js.map +0 -1
  907. package/src/layouts/index.d.ts +0 -7
  908. package/src/layouts/index.js +0 -25
  909. package/src/layouts/index.js.map +0 -1
  910. package/src/layouts/presets.d.ts +0 -133
  911. package/src/layouts/presets.js +0 -277
  912. package/src/layouts/presets.js.map +0 -1
  913. package/src/pages/consent.d.ts +0 -116
  914. package/src/pages/consent.js +0 -218
  915. package/src/pages/consent.js.map +0 -1
  916. package/src/pages/error.d.ts +0 -100
  917. package/src/pages/error.js +0 -263
  918. package/src/pages/error.js.map +0 -1
  919. package/src/pages/index.d.ts +0 -8
  920. package/src/pages/index.js +0 -27
  921. package/src/pages/index.js.map +0 -1
  922. package/src/react/Alert.d.ts +0 -101
  923. package/src/react/Alert.js +0 -51
  924. package/src/react/Alert.js.map +0 -1
  925. package/src/react/Badge.d.ts +0 -100
  926. package/src/react/Badge.js +0 -55
  927. package/src/react/Badge.js.map +0 -1
  928. package/src/react/Button.d.ts +0 -108
  929. package/src/react/Button.js +0 -52
  930. package/src/react/Button.js.map +0 -1
  931. package/src/react/Card.d.ts +0 -103
  932. package/src/react/Card.js +0 -55
  933. package/src/react/Card.js.map +0 -1
  934. package/src/react/hooks/context.d.ts +0 -178
  935. package/src/react/hooks/context.js +0 -287
  936. package/src/react/hooks/context.js.map +0 -1
  937. package/src/react/hooks/index.d.ts +0 -41
  938. package/src/react/hooks/index.js +0 -61
  939. package/src/react/hooks/index.js.map +0 -1
  940. package/src/react/hooks/tools.d.ts +0 -283
  941. package/src/react/hooks/tools.js +0 -465
  942. package/src/react/hooks/tools.js.map +0 -1
  943. package/src/react/index.d.ts +0 -80
  944. package/src/react/index.js +0 -113
  945. package/src/react/index.js.map +0 -1
  946. package/src/react/types.d.ts +0 -105
  947. package/src/react/types.js +0 -12
  948. package/src/react/types.js.map +0 -1
  949. package/src/react/utils.d.ts +0 -42
  950. package/src/react/utils.js +0 -99
  951. package/src/react/utils.js.map +0 -1
  952. package/src/registry/index.d.ts +0 -45
  953. package/src/registry/index.js +0 -67
  954. package/src/registry/index.js.map +0 -1
  955. package/src/registry/render-template.d.ts +0 -86
  956. package/src/registry/render-template.js +0 -239
  957. package/src/registry/render-template.js.map +0 -1
  958. package/src/registry/tool-ui.registry.d.ts +0 -260
  959. package/src/registry/tool-ui.registry.js +0 -438
  960. package/src/registry/tool-ui.registry.js.map +0 -1
  961. package/src/registry/uri-utils.d.ts +0 -55
  962. package/src/registry/uri-utils.js +0 -97
  963. package/src/registry/uri-utils.js.map +0 -1
  964. package/src/render/index.d.ts +0 -7
  965. package/src/render/index.js +0 -14
  966. package/src/render/index.js.map +0 -1
  967. package/src/render/prerender.d.ts +0 -56
  968. package/src/render/prerender.js +0 -98
  969. package/src/render/prerender.js.map +0 -1
  970. package/src/renderers/cache.d.ts +0 -144
  971. package/src/renderers/cache.js +0 -240
  972. package/src/renderers/cache.js.map +0 -1
  973. package/src/renderers/html.renderer.d.ts +0 -122
  974. package/src/renderers/html.renderer.js +0 -204
  975. package/src/renderers/html.renderer.js.map +0 -1
  976. package/src/renderers/index.d.ts +0 -35
  977. package/src/renderers/index.js +0 -70
  978. package/src/renderers/index.js.map +0 -1
  979. package/src/renderers/mdx.renderer.d.ts +0 -119
  980. package/src/renderers/mdx.renderer.js +0 -305
  981. package/src/renderers/mdx.renderer.js.map +0 -1
  982. package/src/renderers/react.renderer.d.ts +0 -95
  983. package/src/renderers/react.renderer.js +0 -260
  984. package/src/renderers/react.renderer.js.map +0 -1
  985. package/src/renderers/registry.d.ts +0 -133
  986. package/src/renderers/registry.js +0 -232
  987. package/src/renderers/registry.js.map +0 -1
  988. package/src/renderers/types.d.ts +0 -341
  989. package/src/renderers/types.js +0 -9
  990. package/src/renderers/types.js.map +0 -1
  991. package/src/renderers/utils/detect.d.ts +0 -106
  992. package/src/renderers/utils/detect.js +0 -267
  993. package/src/renderers/utils/detect.js.map +0 -1
  994. package/src/renderers/utils/hash.d.ts +0 -39
  995. package/src/renderers/utils/hash.js +0 -75
  996. package/src/renderers/utils/hash.js.map +0 -1
  997. package/src/renderers/utils/index.d.ts +0 -8
  998. package/src/renderers/utils/index.js +0 -28
  999. package/src/renderers/utils/index.js.map +0 -1
  1000. package/src/renderers/utils/transpiler.d.ts +0 -88
  1001. package/src/renderers/utils/transpiler.js +0 -215
  1002. package/src/renderers/utils/transpiler.js.map +0 -1
  1003. package/src/runtime/adapters/html.adapter.d.ts +0 -58
  1004. package/src/runtime/adapters/html.adapter.js +0 -131
  1005. package/src/runtime/adapters/html.adapter.js.map +0 -1
  1006. package/src/runtime/adapters/index.d.ts +0 -25
  1007. package/src/runtime/adapters/index.js +0 -54
  1008. package/src/runtime/adapters/index.js.map +0 -1
  1009. package/src/runtime/adapters/mdx.adapter.d.ts +0 -72
  1010. package/src/runtime/adapters/mdx.adapter.js +0 -241
  1011. package/src/runtime/adapters/mdx.adapter.js.map +0 -1
  1012. package/src/runtime/adapters/react.adapter.d.ts +0 -69
  1013. package/src/runtime/adapters/react.adapter.js +0 -245
  1014. package/src/runtime/adapters/react.adapter.js.map +0 -1
  1015. package/src/runtime/adapters/types.d.ts +0 -94
  1016. package/src/runtime/adapters/types.js +0 -11
  1017. package/src/runtime/adapters/types.js.map +0 -1
  1018. package/src/runtime/csp.d.ts +0 -37
  1019. package/src/runtime/csp.js +0 -140
  1020. package/src/runtime/csp.js.map +0 -1
  1021. package/src/runtime/index.d.ts +0 -16
  1022. package/src/runtime/index.js +0 -72
  1023. package/src/runtime/index.js.map +0 -1
  1024. package/src/runtime/mcp-bridge.d.ts +0 -100
  1025. package/src/runtime/mcp-bridge.js +0 -581
  1026. package/src/runtime/mcp-bridge.js.map +0 -1
  1027. package/src/runtime/renderer-runtime.d.ts +0 -132
  1028. package/src/runtime/renderer-runtime.js +0 -389
  1029. package/src/runtime/renderer-runtime.js.map +0 -1
  1030. package/src/runtime/sanitizer.d.ts +0 -171
  1031. package/src/runtime/sanitizer.js +0 -318
  1032. package/src/runtime/sanitizer.js.map +0 -1
  1033. package/src/runtime/types.d.ts +0 -414
  1034. package/src/runtime/types.js +0 -12
  1035. package/src/runtime/types.js.map +0 -1
  1036. package/src/runtime/wrapper.d.ts +0 -375
  1037. package/src/runtime/wrapper.js +0 -1793
  1038. package/src/runtime/wrapper.js.map +0 -1
  1039. package/src/styles/index.d.ts +0 -7
  1040. package/src/styles/index.js +0 -11
  1041. package/src/styles/index.js.map +0 -1
  1042. package/src/styles/variants.d.ts +0 -50
  1043. package/src/styles/variants.js +0 -175
  1044. package/src/styles/variants.js.map +0 -1
  1045. package/src/theme/cdn.d.ts +0 -194
  1046. package/src/theme/cdn.js +0 -375
  1047. package/src/theme/cdn.js.map +0 -1
  1048. package/src/theme/index.d.ts +0 -17
  1049. package/src/theme/index.js +0 -57
  1050. package/src/theme/index.js.map +0 -1
  1051. package/src/theme/platforms.d.ts +0 -106
  1052. package/src/theme/platforms.js +0 -161
  1053. package/src/theme/platforms.js.map +0 -1
  1054. package/src/theme/presets/github-openai.d.ts +0 -49
  1055. package/src/theme/presets/github-openai.js +0 -189
  1056. package/src/theme/presets/github-openai.js.map +0 -1
  1057. package/src/theme/presets/index.d.ts +0 -10
  1058. package/src/theme/presets/index.js +0 -17
  1059. package/src/theme/presets/index.js.map +0 -1
  1060. package/src/theme/theme.d.ts +0 -395
  1061. package/src/theme/theme.js +0 -332
  1062. package/src/theme/theme.js.map +0 -1
  1063. package/src/tool-template/builder.d.ts +0 -212
  1064. package/src/tool-template/builder.js +0 -397
  1065. package/src/tool-template/builder.js.map +0 -1
  1066. package/src/tool-template/index.d.ts +0 -15
  1067. package/src/tool-template/index.js +0 -38
  1068. package/src/tool-template/index.js.map +0 -1
  1069. package/src/types/index.d.ts +0 -13
  1070. package/src/types/index.js +0 -26
  1071. package/src/types/index.js.map +0 -1
  1072. package/src/types/ui-config.d.ts +0 -357
  1073. package/src/types/ui-config.js +0 -12
  1074. package/src/types/ui-config.js.map +0 -1
  1075. package/src/types/ui-runtime.d.ts +0 -965
  1076. package/src/types/ui-runtime.js +0 -117
  1077. package/src/types/ui-runtime.js.map +0 -1
  1078. package/src/validation/error-box.d.ts +0 -55
  1079. package/src/validation/error-box.js +0 -75
  1080. package/src/validation/error-box.js.map +0 -1
  1081. package/src/validation/index.d.ts +0 -12
  1082. package/src/validation/index.js +0 -21
  1083. package/src/validation/index.js.map +0 -1
  1084. package/src/validation/wrapper.d.ts +0 -96
  1085. package/src/validation/wrapper.js +0 -117
  1086. package/src/validation/wrapper.js.map +0 -1
  1087. package/src/web-components/core/attribute-parser.d.ts +0 -85
  1088. package/src/web-components/core/attribute-parser.js +0 -189
  1089. package/src/web-components/core/attribute-parser.js.map +0 -1
  1090. package/src/web-components/core/base-element.d.ts +0 -197
  1091. package/src/web-components/core/base-element.js +0 -289
  1092. package/src/web-components/core/base-element.js.map +0 -1
  1093. package/src/web-components/core/index.d.ts +0 -8
  1094. package/src/web-components/core/index.js +0 -18
  1095. package/src/web-components/core/index.js.map +0 -1
  1096. package/src/web-components/elements/fmcp-alert.d.ts +0 -45
  1097. package/src/web-components/elements/fmcp-alert.js +0 -93
  1098. package/src/web-components/elements/fmcp-alert.js.map +0 -1
  1099. package/src/web-components/elements/fmcp-badge.d.ts +0 -46
  1100. package/src/web-components/elements/fmcp-badge.js +0 -99
  1101. package/src/web-components/elements/fmcp-badge.js.map +0 -1
  1102. package/src/web-components/elements/fmcp-button.d.ts +0 -124
  1103. package/src/web-components/elements/fmcp-button.js +0 -233
  1104. package/src/web-components/elements/fmcp-button.js.map +0 -1
  1105. package/src/web-components/elements/fmcp-card.d.ts +0 -52
  1106. package/src/web-components/elements/fmcp-card.js +0 -115
  1107. package/src/web-components/elements/fmcp-card.js.map +0 -1
  1108. package/src/web-components/elements/fmcp-input.d.ts +0 -95
  1109. package/src/web-components/elements/fmcp-input.js +0 -248
  1110. package/src/web-components/elements/fmcp-input.js.map +0 -1
  1111. package/src/web-components/elements/fmcp-select.d.ts +0 -99
  1112. package/src/web-components/elements/fmcp-select.js +0 -243
  1113. package/src/web-components/elements/fmcp-select.js.map +0 -1
  1114. package/src/web-components/elements/index.d.ts +0 -12
  1115. package/src/web-components/elements/index.js +0 -34
  1116. package/src/web-components/elements/index.js.map +0 -1
  1117. package/src/web-components/index.d.ts +0 -49
  1118. package/src/web-components/index.js +0 -75
  1119. package/src/web-components/index.js.map +0 -1
  1120. package/src/web-components/register.d.ts +0 -56
  1121. package/src/web-components/register.js +0 -80
  1122. package/src/web-components/register.js.map +0 -1
  1123. package/src/web-components/types.d.ts +0 -121
  1124. package/src/web-components/types.js +0 -25
  1125. package/src/web-components/types.js.map +0 -1
  1126. package/src/widgets/index.d.ts +0 -7
  1127. package/src/widgets/index.js +0 -24
  1128. package/src/widgets/index.js.map +0 -1
  1129. package/src/widgets/progress.d.ts +0 -132
  1130. package/src/widgets/progress.js +0 -303
  1131. package/src/widgets/progress.js.map +0 -1
  1132. package/src/widgets/resource.d.ts +0 -162
  1133. package/src/widgets/resource.js +0 -340
  1134. package/src/widgets/resource.js.map +0 -1
@@ -1,241 +0,0 @@
1
- "use strict";
2
- /**
3
- * MDX Renderer Adapter
4
- *
5
- * Client-side adapter for rendering MDX (Markdown + JSX) content.
6
- * Builds on top of the React adapter for component rendering.
7
- *
8
- * @packageDocumentation
9
- */
10
- Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.MdxRendererAdapter = void 0;
12
- exports.createMdxAdapter = createMdxAdapter;
13
- exports.loadMdxAdapter = loadMdxAdapter;
14
- /**
15
- * MDX Renderer Adapter.
16
- *
17
- * Renders MDX content to the DOM with support for:
18
- * - Pre-compiled MDX (recommended)
19
- * - Runtime MDX compilation (if mdx-js available)
20
- * - Custom component injection
21
- */
22
- class MdxRendererAdapter {
23
- type = 'mdx';
24
- // Lazy-loaded MDX runtime
25
- mdxRuntime = null;
26
- loadPromise = null;
27
- /**
28
- * Check if this adapter can handle the given content.
29
- */
30
- canHandle(content) {
31
- if (typeof content !== 'string') {
32
- return false;
33
- }
34
- // MDX patterns:
35
- // - Contains JSX-like syntax in markdown
36
- // - Contains import/export statements
37
- // - Contains frontmatter (---)
38
- // - Has MDX file extension markers
39
- return (/^---[\s\S]*?---/.test(content) || // Frontmatter
40
- /<[A-Z][a-zA-Z0-9]*[\s/>]/.test(content) || // JSX component tags
41
- /^import\s+/.test(content) || // Import statements
42
- /^export\s+/.test(content) || // Export statements
43
- content.includes('```jsx') || // Code blocks with JSX
44
- content.includes('```tsx'));
45
- }
46
- /**
47
- * Render MDX content to a string.
48
- */
49
- async render(content, context, _options) {
50
- try {
51
- await this.ensureMdxLoaded();
52
- if (!this.mdxRuntime) {
53
- // Fall back to basic markdown rendering
54
- return this.renderMarkdown(content, context);
55
- }
56
- // Compile and render MDX
57
- const compiled = await this.compileMdx(content, context);
58
- return compiled;
59
- }
60
- catch (error) {
61
- console.error('[FrontMCP] MDX render failed:', error);
62
- // Fall back to markdown
63
- return this.renderMarkdown(content, context);
64
- }
65
- }
66
- /**
67
- * Render MDX content directly to the DOM.
68
- */
69
- async renderToDOM(content, target, context, _options) {
70
- try {
71
- const html = await this.render(content, context);
72
- target.innerHTML = html;
73
- // Dispatch event
74
- target.dispatchEvent(new CustomEvent('frontmcp:rendered', {
75
- bubbles: true,
76
- detail: { type: 'mdx', toolName: context.toolName },
77
- }));
78
- return { success: true, html };
79
- }
80
- catch (error) {
81
- const message = error instanceof Error ? error.message : String(error);
82
- console.error('[FrontMCP] MDX render to DOM failed:', message);
83
- return { success: false, error: message };
84
- }
85
- }
86
- /**
87
- * Hydrate existing SSR content.
88
- * MDX hydration follows React patterns.
89
- */
90
- async hydrate(target, context, options) {
91
- // MDX hydration would require the React adapter
92
- // For now, just update the content
93
- const content = target.getAttribute('data-mdx-source');
94
- if (content) {
95
- return this.renderToDOM(content, target, context, options);
96
- }
97
- return { success: true }; // Already rendered, nothing to hydrate
98
- }
99
- /**
100
- * Update rendered MDX content with new data.
101
- */
102
- async update(target, context) {
103
- const source = target.getAttribute('data-mdx-source');
104
- if (source) {
105
- return this.renderToDOM(source, target, context);
106
- }
107
- return { success: false, error: 'No MDX source stored for update' };
108
- }
109
- /**
110
- * Clean up (no-op for MDX adapter).
111
- */
112
- destroy(_target) {
113
- // MDX doesn't need cleanup unless using React hydration
114
- }
115
- /**
116
- * Ensure MDX runtime is loaded.
117
- */
118
- async ensureMdxLoaded() {
119
- if (this.mdxRuntime) {
120
- return;
121
- }
122
- if (this.loadPromise) {
123
- return this.loadPromise;
124
- }
125
- this.loadPromise = this.loadMdx();
126
- return this.loadPromise;
127
- }
128
- /**
129
- * Load MDX runtime.
130
- */
131
- async loadMdx() {
132
- try {
133
- // Try to load @mdx-js/mdx for compilation
134
- const mdxModule = await import(/* webpackIgnore: true */ '@mdx-js/mdx');
135
- this.mdxRuntime = {
136
- run: async () => ({ default: null }),
137
- compile: mdxModule.compile,
138
- };
139
- }
140
- catch {
141
- // MDX not available
142
- console.warn('[FrontMCP] MDX runtime not available. ' + 'Install @mdx-js/mdx for full MDX support, or use pre-compiled MDX.');
143
- }
144
- }
145
- /**
146
- * Compile MDX content.
147
- */
148
- async compileMdx(source, context) {
149
- if (!this.mdxRuntime?.compile) {
150
- return this.renderMarkdown(source, context);
151
- }
152
- try {
153
- // Compile MDX to JS
154
- const compiled = await this.mdxRuntime.compile(source, {
155
- outputFormat: 'function-body',
156
- development: false,
157
- });
158
- // For now, return the compiled code as-is
159
- // Full execution would require React runtime
160
- return `<div class="mdx-content" data-compiled="true">${this.renderMarkdown(source, context)}</div>`;
161
- }
162
- catch (error) {
163
- console.warn('[FrontMCP] MDX compilation failed, falling back to markdown:', error);
164
- return this.renderMarkdown(source, context);
165
- }
166
- }
167
- /**
168
- * Basic markdown rendering (fallback).
169
- */
170
- renderMarkdown(source, context) {
171
- // Very basic markdown-to-HTML conversion
172
- // For production, use a proper markdown library
173
- let html = source;
174
- // Escape HTML first for safety
175
- html = html.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
176
- // Strip frontmatter
177
- html = html.replace(/^---[\s\S]*?---\n?/, '');
178
- // Headers
179
- html = html.replace(/^######\s+(.+)$/gm, '<h6>$1</h6>');
180
- html = html.replace(/^#####\s+(.+)$/gm, '<h5>$1</h5>');
181
- html = html.replace(/^####\s+(.+)$/gm, '<h4>$1</h4>');
182
- html = html.replace(/^###\s+(.+)$/gm, '<h3>$1</h3>');
183
- html = html.replace(/^##\s+(.+)$/gm, '<h2>$1</h2>');
184
- html = html.replace(/^#\s+(.+)$/gm, '<h1>$1</h1>');
185
- // Bold and italic
186
- html = html.replace(/\*\*\*(.+?)\*\*\*/g, '<strong><em>$1</em></strong>');
187
- html = html.replace(/\*\*(.+?)\*\*/g, '<strong>$1</strong>');
188
- html = html.replace(/\*(.+?)\*/g, '<em>$1</em>');
189
- html = html.replace(/___(.+?)___/g, '<strong><em>$1</em></strong>');
190
- html = html.replace(/__(.+?)__/g, '<strong>$1</strong>');
191
- html = html.replace(/_(.+?)_/g, '<em>$1</em>');
192
- // Code blocks
193
- html = html.replace(/```(\w+)?\n([\s\S]*?)```/g, '<pre><code class="language-$1">$2</code></pre>');
194
- html = html.replace(/`([^`]+)`/g, '<code>$1</code>');
195
- // Links
196
- html = html.replace(/\[([^\]]+)\]\(([^)]+)\)/g, '<a href="$2">$1</a>');
197
- // Lists
198
- html = html.replace(/^\s*[-*]\s+(.+)$/gm, '<li>$1</li>');
199
- html = html.replace(/(<li>.*<\/li>\n?)+/g, '<ul>$&</ul>');
200
- html = html.replace(/^\s*\d+\.\s+(.+)$/gm, '<li>$1</li>');
201
- // Paragraphs
202
- html = html
203
- .split(/\n\n+/)
204
- .map((para) => {
205
- const trimmed = para.trim();
206
- if (!trimmed ||
207
- trimmed.startsWith('<h') ||
208
- trimmed.startsWith('<ul') ||
209
- trimmed.startsWith('<ol') ||
210
- trimmed.startsWith('<pre')) {
211
- return trimmed;
212
- }
213
- return `<p>${trimmed}</p>`;
214
- })
215
- .join('\n');
216
- // Interpolate context data (basic {{variable}} support)
217
- html = html.replace(/\{\{output\.(\w+)\}\}/g, (_match, key) => {
218
- const value = context.output?.[key];
219
- return value !== undefined ? String(value) : '';
220
- });
221
- html = html.replace(/\{\{input\.(\w+)\}\}/g, (_match, key) => {
222
- const value = context.input?.[key];
223
- return value !== undefined ? String(value) : '';
224
- });
225
- return `<div class="markdown-content">${html}</div>`;
226
- }
227
- }
228
- exports.MdxRendererAdapter = MdxRendererAdapter;
229
- /**
230
- * Create a new MDX renderer adapter.
231
- */
232
- function createMdxAdapter() {
233
- return new MdxRendererAdapter();
234
- }
235
- /**
236
- * Adapter loader for lazy loading.
237
- */
238
- async function loadMdxAdapter() {
239
- return createMdxAdapter();
240
- }
241
- //# sourceMappingURL=mdx.adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mdx.adapter.js","sourceRoot":"","sources":["../../../../src/runtime/adapters/mdx.adapter.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * MDX Renderer Adapter\n *\n * Client-side adapter for rendering MDX (Markdown + JSX) content.\n * Builds on top of the React adapter for component rendering.\n *\n * @packageDocumentation\n */\n\nimport type { RendererAdapter, RenderContext, RenderOptions, RenderResult } from './types';\nimport type { UIType } from '../../types/ui-runtime';\n\n/**\n * MDX runtime interface.\n * Uses permissive types to support various @mdx-js versions.\n */\ninterface MDXRuntime {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n run: (code: string, options: Record<string, unknown>) => Promise<{ default: unknown }>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n compile?: (source: string, options?: Record<string, unknown>) => Promise<any>;\n}\n\n/**\n * MDX Renderer Adapter.\n *\n * Renders MDX content to the DOM with support for:\n * - Pre-compiled MDX (recommended)\n * - Runtime MDX compilation (if mdx-js available)\n * - Custom component injection\n */\nexport class MdxRendererAdapter implements RendererAdapter {\n readonly type: UIType = 'mdx';\n\n // Lazy-loaded MDX runtime\n private mdxRuntime: MDXRuntime | null = null;\n private loadPromise: Promise<void> | null = null;\n\n /**\n * Check if this adapter can handle the given content.\n */\n canHandle(content: string | unknown): boolean {\n if (typeof content !== 'string') {\n return false;\n }\n\n // MDX patterns:\n // - Contains JSX-like syntax in markdown\n // - Contains import/export statements\n // - Contains frontmatter (---)\n // - Has MDX file extension markers\n return (\n /^---[\\s\\S]*?---/.test(content) || // Frontmatter\n /<[A-Z][a-zA-Z0-9]*[\\s/>]/.test(content) || // JSX component tags\n /^import\\s+/.test(content) || // Import statements\n /^export\\s+/.test(content) || // Export statements\n content.includes('```jsx') || // Code blocks with JSX\n content.includes('```tsx')\n );\n }\n\n /**\n * Render MDX content to a string.\n */\n async render(content: string, context: RenderContext, _options?: RenderOptions): Promise<string> {\n try {\n await this.ensureMdxLoaded();\n\n if (!this.mdxRuntime) {\n // Fall back to basic markdown rendering\n return this.renderMarkdown(content, context);\n }\n\n // Compile and render MDX\n const compiled = await this.compileMdx(content, context);\n return compiled;\n } catch (error) {\n console.error('[FrontMCP] MDX render failed:', error);\n // Fall back to markdown\n return this.renderMarkdown(content, context);\n }\n }\n\n /**\n * Render MDX content directly to the DOM.\n */\n async renderToDOM(\n content: string,\n target: HTMLElement,\n context: RenderContext,\n _options?: RenderOptions,\n ): Promise<RenderResult> {\n try {\n const html = await this.render(content, context);\n target.innerHTML = html;\n\n // Dispatch event\n target.dispatchEvent(\n new CustomEvent('frontmcp:rendered', {\n bubbles: true,\n detail: { type: 'mdx', toolName: context.toolName },\n }),\n );\n\n return { success: true, html };\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n console.error('[FrontMCP] MDX render to DOM failed:', message);\n return { success: false, error: message };\n }\n }\n\n /**\n * Hydrate existing SSR content.\n * MDX hydration follows React patterns.\n */\n async hydrate(target: HTMLElement, context: RenderContext, options?: RenderOptions): Promise<RenderResult> {\n // MDX hydration would require the React adapter\n // For now, just update the content\n const content = target.getAttribute('data-mdx-source');\n if (content) {\n return this.renderToDOM(content, target, context, options);\n }\n\n return { success: true }; // Already rendered, nothing to hydrate\n }\n\n /**\n * Update rendered MDX content with new data.\n */\n async update(target: HTMLElement, context: RenderContext): Promise<RenderResult> {\n const source = target.getAttribute('data-mdx-source');\n if (source) {\n return this.renderToDOM(source, target, context);\n }\n\n return { success: false, error: 'No MDX source stored for update' };\n }\n\n /**\n * Clean up (no-op for MDX adapter).\n */\n destroy(_target: HTMLElement): void {\n // MDX doesn't need cleanup unless using React hydration\n }\n\n /**\n * Ensure MDX runtime is loaded.\n */\n private async ensureMdxLoaded(): Promise<void> {\n if (this.mdxRuntime) {\n return;\n }\n\n if (this.loadPromise) {\n return this.loadPromise;\n }\n\n this.loadPromise = this.loadMdx();\n return this.loadPromise;\n }\n\n /**\n * Load MDX runtime.\n */\n private async loadMdx(): Promise<void> {\n try {\n // Try to load @mdx-js/mdx for compilation\n const mdxModule = await import(/* webpackIgnore: true */ '@mdx-js/mdx');\n this.mdxRuntime = {\n run: async () => ({ default: null }),\n compile: mdxModule.compile,\n };\n } catch {\n // MDX not available\n console.warn(\n '[FrontMCP] MDX runtime not available. ' + 'Install @mdx-js/mdx for full MDX support, or use pre-compiled MDX.',\n );\n }\n }\n\n /**\n * Compile MDX content.\n */\n private async compileMdx(source: string, context: RenderContext): Promise<string> {\n if (!this.mdxRuntime?.compile) {\n return this.renderMarkdown(source, context);\n }\n\n try {\n // Compile MDX to JS\n const compiled = await this.mdxRuntime.compile(source, {\n outputFormat: 'function-body',\n development: false,\n });\n\n // For now, return the compiled code as-is\n // Full execution would require React runtime\n return `<div class=\"mdx-content\" data-compiled=\"true\">${this.renderMarkdown(source, context)}</div>`;\n } catch (error) {\n console.warn('[FrontMCP] MDX compilation failed, falling back to markdown:', error);\n return this.renderMarkdown(source, context);\n }\n }\n\n /**\n * Basic markdown rendering (fallback).\n */\n private renderMarkdown(source: string, context: RenderContext): string {\n // Very basic markdown-to-HTML conversion\n // For production, use a proper markdown library\n let html = source;\n\n // Escape HTML first for safety\n html = html.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\n\n // Strip frontmatter\n html = html.replace(/^---[\\s\\S]*?---\\n?/, '');\n\n // Headers\n html = html.replace(/^######\\s+(.+)$/gm, '<h6>$1</h6>');\n html = html.replace(/^#####\\s+(.+)$/gm, '<h5>$1</h5>');\n html = html.replace(/^####\\s+(.+)$/gm, '<h4>$1</h4>');\n html = html.replace(/^###\\s+(.+)$/gm, '<h3>$1</h3>');\n html = html.replace(/^##\\s+(.+)$/gm, '<h2>$1</h2>');\n html = html.replace(/^#\\s+(.+)$/gm, '<h1>$1</h1>');\n\n // Bold and italic\n html = html.replace(/\\*\\*\\*(.+?)\\*\\*\\*/g, '<strong><em>$1</em></strong>');\n html = html.replace(/\\*\\*(.+?)\\*\\*/g, '<strong>$1</strong>');\n html = html.replace(/\\*(.+?)\\*/g, '<em>$1</em>');\n html = html.replace(/___(.+?)___/g, '<strong><em>$1</em></strong>');\n html = html.replace(/__(.+?)__/g, '<strong>$1</strong>');\n html = html.replace(/_(.+?)_/g, '<em>$1</em>');\n\n // Code blocks\n html = html.replace(/```(\\w+)?\\n([\\s\\S]*?)```/g, '<pre><code class=\"language-$1\">$2</code></pre>');\n html = html.replace(/`([^`]+)`/g, '<code>$1</code>');\n\n // Links\n html = html.replace(/\\[([^\\]]+)\\]\\(([^)]+)\\)/g, '<a href=\"$2\">$1</a>');\n\n // Lists\n html = html.replace(/^\\s*[-*]\\s+(.+)$/gm, '<li>$1</li>');\n html = html.replace(/(<li>.*<\\/li>\\n?)+/g, '<ul>$&</ul>');\n html = html.replace(/^\\s*\\d+\\.\\s+(.+)$/gm, '<li>$1</li>');\n\n // Paragraphs\n html = html\n .split(/\\n\\n+/)\n .map((para) => {\n const trimmed = para.trim();\n if (\n !trimmed ||\n trimmed.startsWith('<h') ||\n trimmed.startsWith('<ul') ||\n trimmed.startsWith('<ol') ||\n trimmed.startsWith('<pre')\n ) {\n return trimmed;\n }\n return `<p>${trimmed}</p>`;\n })\n .join('\\n');\n\n // Interpolate context data (basic {{variable}} support)\n html = html.replace(/\\{\\{output\\.(\\w+)\\}\\}/g, (_match, key) => {\n const value = (context.output as Record<string, unknown>)?.[key];\n return value !== undefined ? String(value) : '';\n });\n html = html.replace(/\\{\\{input\\.(\\w+)\\}\\}/g, (_match, key) => {\n const value = context.input?.[key];\n return value !== undefined ? String(value) : '';\n });\n\n return `<div class=\"markdown-content\">${html}</div>`;\n }\n}\n\n/**\n * Create a new MDX renderer adapter.\n */\nexport function createMdxAdapter(): MdxRendererAdapter {\n return new MdxRendererAdapter();\n}\n\n/**\n * Adapter loader for lazy loading.\n */\nexport async function loadMdxAdapter(): Promise<RendererAdapter> {\n return createMdxAdapter();\n}\n"]}
@@ -1,69 +0,0 @@
1
- /**
2
- * React Renderer Adapter
3
- *
4
- * Client-side adapter for rendering React components.
5
- * Handles hydration, client-side rendering, and updates.
6
- *
7
- * @packageDocumentation
8
- */
9
- import type { RendererAdapter, RenderContext, RenderOptions, RenderResult } from './types';
10
- import type { UIType } from '../../types/ui-runtime';
11
- /**
12
- * React Renderer Adapter.
13
- *
14
- * Renders React components to the DOM with support for:
15
- * - Server-side rendering (SSR)
16
- * - Client-side hydration
17
- * - Dynamic updates when data changes
18
- */
19
- export declare class ReactRendererAdapter implements RendererAdapter {
20
- readonly type: UIType;
21
- private react;
22
- private reactDOM;
23
- private loadPromise;
24
- /**
25
- * Check if this adapter can handle the given content.
26
- */
27
- canHandle(content: string | unknown): boolean;
28
- /**
29
- * Render React component to a string.
30
- * This is a client-side fallback - SSR should be done at build time.
31
- */
32
- render(content: string, context: RenderContext, _options?: RenderOptions): Promise<string>;
33
- /**
34
- * Render React component directly to the DOM.
35
- */
36
- renderToDOM(content: string, target: HTMLElement, context: RenderContext, options?: RenderOptions): Promise<RenderResult>;
37
- /**
38
- * Hydrate existing SSR content with React.
39
- */
40
- hydrate(target: HTMLElement, context: RenderContext, options?: RenderOptions): Promise<RenderResult>;
41
- /**
42
- * Update rendered React component with new data.
43
- */
44
- update(target: HTMLElement, context: RenderContext): Promise<RenderResult>;
45
- /**
46
- * Clean up React root.
47
- */
48
- destroy(target: HTMLElement): void;
49
- /**
50
- * Ensure React is loaded.
51
- */
52
- private ensureReactLoaded;
53
- /**
54
- * Load React runtime.
55
- */
56
- private loadReact;
57
- /**
58
- * Get a React component by name or from content.
59
- */
60
- private getComponent;
61
- }
62
- /**
63
- * Create a new React renderer adapter.
64
- */
65
- export declare function createReactAdapter(): ReactRendererAdapter;
66
- /**
67
- * Adapter loader for lazy loading.
68
- */
69
- export declare function loadReactAdapter(): Promise<RendererAdapter>;
@@ -1,245 +0,0 @@
1
- "use strict";
2
- /**
3
- * React Renderer Adapter
4
- *
5
- * Client-side adapter for rendering React components.
6
- * Handles hydration, client-side rendering, and updates.
7
- *
8
- * @packageDocumentation
9
- */
10
- Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.ReactRendererAdapter = void 0;
12
- exports.createReactAdapter = createReactAdapter;
13
- exports.loadReactAdapter = loadReactAdapter;
14
- /**
15
- * Map of mounted roots for cleanup.
16
- */
17
- const mountedRoots = new WeakMap();
18
- /**
19
- * React Renderer Adapter.
20
- *
21
- * Renders React components to the DOM with support for:
22
- * - Server-side rendering (SSR)
23
- * - Client-side hydration
24
- * - Dynamic updates when data changes
25
- */
26
- class ReactRendererAdapter {
27
- type = 'react';
28
- // Lazy-loaded React runtime
29
- react = null;
30
- reactDOM = null;
31
- loadPromise = null;
32
- /**
33
- * Check if this adapter can handle the given content.
34
- */
35
- canHandle(content) {
36
- // React adapter handles:
37
- // - Functions (React components)
38
- // - Strings that look like JSX
39
- if (typeof content === 'function') {
40
- return true;
41
- }
42
- if (typeof content === 'string') {
43
- // Check for JSX patterns
44
- return (content.includes('React.createElement') ||
45
- content.includes('jsx(') ||
46
- content.includes('jsxs(') ||
47
- /function\s+\w+\s*\([^)]*\)\s*\{[\s\S]*return\s*[\s\S]*</.test(content));
48
- }
49
- return false;
50
- }
51
- /**
52
- * Render React component to a string.
53
- * This is a client-side fallback - SSR should be done at build time.
54
- */
55
- async render(content, context, _options) {
56
- // For client-side, we can't SSR React
57
- // Return a placeholder that will be hydrated
58
- return `<div data-frontmcp-react data-tool="${context.toolName}">${content}</div>`;
59
- }
60
- /**
61
- * Render React component directly to the DOM.
62
- */
63
- async renderToDOM(content, target, context, options) {
64
- try {
65
- await this.ensureReactLoaded();
66
- if (!this.react || !this.reactDOM) {
67
- throw new Error('React runtime not available');
68
- }
69
- // Try to get component from registered components
70
- const componentName = target.getAttribute('data-component');
71
- const component = this.getComponent(componentName, content);
72
- if (!component) {
73
- // Fall back to HTML rendering
74
- target.innerHTML = content;
75
- return { success: true };
76
- }
77
- // Create React element with context as props
78
- const element = this.react.createElement(component, {
79
- input: context.input,
80
- output: context.output,
81
- structuredContent: context.structuredContent,
82
- toolName: context.toolName,
83
- });
84
- // Render or hydrate
85
- if (options?.hydrate && this.reactDOM.hydrateRoot) {
86
- const root = this.reactDOM.hydrateRoot(target, element);
87
- mountedRoots.set(target, root);
88
- }
89
- else if (this.reactDOM.createRoot) {
90
- const root = this.reactDOM.createRoot(target);
91
- root.render(element);
92
- mountedRoots.set(target, root);
93
- }
94
- else if (this.reactDOM.render) {
95
- // Legacy React 17 API
96
- this.reactDOM.render(element, target);
97
- mountedRoots.set(target, {
98
- unmount: () => this.reactDOM?.unmountComponentAtNode?.(target),
99
- });
100
- }
101
- else {
102
- throw new Error('No suitable React render method available');
103
- }
104
- // Dispatch event
105
- target.dispatchEvent(new CustomEvent('frontmcp:rendered', {
106
- bubbles: true,
107
- detail: { type: 'react', toolName: context.toolName },
108
- }));
109
- return { success: true };
110
- }
111
- catch (error) {
112
- const message = error instanceof Error ? error.message : String(error);
113
- console.error('[FrontMCP] React render failed:', message);
114
- return { success: false, error: message };
115
- }
116
- }
117
- /**
118
- * Hydrate existing SSR content with React.
119
- */
120
- async hydrate(target, context, options) {
121
- return this.renderToDOM('', target, context, { ...options, hydrate: true });
122
- }
123
- /**
124
- * Update rendered React component with new data.
125
- */
126
- async update(target, context) {
127
- try {
128
- await this.ensureReactLoaded();
129
- if (!this.react) {
130
- throw new Error('React runtime not available');
131
- }
132
- const existingRoot = mountedRoots.get(target);
133
- const componentName = target.getAttribute('data-component');
134
- const component = this.getComponent(componentName, '');
135
- if (!component) {
136
- return { success: false, error: 'No component found for update' };
137
- }
138
- // Create new element with updated props
139
- const element = this.react.createElement(component, {
140
- input: context.input,
141
- output: context.output,
142
- structuredContent: context.structuredContent,
143
- toolName: context.toolName,
144
- });
145
- if (existingRoot && 'render' in existingRoot) {
146
- existingRoot.render(element);
147
- return { success: true };
148
- }
149
- // No existing root - do a fresh render
150
- return this.renderToDOM('', target, context);
151
- }
152
- catch (error) {
153
- const message = error instanceof Error ? error.message : String(error);
154
- console.error('[FrontMCP] React update failed:', message);
155
- return { success: false, error: message };
156
- }
157
- }
158
- /**
159
- * Clean up React root.
160
- */
161
- destroy(target) {
162
- const root = mountedRoots.get(target);
163
- if (root) {
164
- root.unmount();
165
- mountedRoots.delete(target);
166
- }
167
- }
168
- /**
169
- * Ensure React is loaded.
170
- */
171
- async ensureReactLoaded() {
172
- if (this.react && this.reactDOM) {
173
- return;
174
- }
175
- if (this.loadPromise) {
176
- return this.loadPromise;
177
- }
178
- this.loadPromise = this.loadReact();
179
- return this.loadPromise;
180
- }
181
- /**
182
- * Load React runtime.
183
- */
184
- async loadReact() {
185
- // Check if React is already available globally
186
- const win = typeof window !== 'undefined' ? window : globalThis;
187
- if (win.React) {
188
- this.react = win.React;
189
- }
190
- if (win.ReactDOM) {
191
- this.reactDOM = win.ReactDOM;
192
- }
193
- if (this.react && this.reactDOM) {
194
- return;
195
- }
196
- // Try to dynamically import React
197
- try {
198
- if (!this.react) {
199
- const reactModule = await import(/* webpackIgnore: true */ 'react');
200
- this.react = reactModule.default || reactModule;
201
- }
202
- if (!this.reactDOM) {
203
- const reactDOMModule = await import(/* webpackIgnore: true */ 'react-dom/client');
204
- this.reactDOM = reactDOMModule.default || reactDOMModule;
205
- }
206
- }
207
- catch {
208
- // React not available via import - rely on global
209
- if (!this.react || !this.reactDOM) {
210
- console.warn('[FrontMCP] React runtime not available. ' + 'Ensure React is loaded via CDN or bundled.');
211
- }
212
- }
213
- }
214
- /**
215
- * Get a React component by name or from content.
216
- */
217
- getComponent(componentName, content) {
218
- const win = typeof window !== 'undefined' ? window : globalThis;
219
- if (componentName && win.__frontmcp_components) {
220
- const registered = win.__frontmcp_components?.[componentName];
221
- if (registered) {
222
- return registered;
223
- }
224
- }
225
- // Try to evaluate content as a component (unsafe - should be pre-bundled)
226
- if (content && typeof content === 'function') {
227
- return content;
228
- }
229
- return null;
230
- }
231
- }
232
- exports.ReactRendererAdapter = ReactRendererAdapter;
233
- /**
234
- * Create a new React renderer adapter.
235
- */
236
- function createReactAdapter() {
237
- return new ReactRendererAdapter();
238
- }
239
- /**
240
- * Adapter loader for lazy loading.
241
- */
242
- async function loadReactAdapter() {
243
- return createReactAdapter();
244
- }
245
- //# sourceMappingURL=react.adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"react.adapter.js","sourceRoot":"","sources":["../../../../src/runtime/adapters/react.adapter.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * React Renderer Adapter\n *\n * Client-side adapter for rendering React components.\n * Handles hydration, client-side rendering, and updates.\n *\n * @packageDocumentation\n */\n\nimport type { RendererAdapter, RenderContext, RenderOptions, RenderResult } from './types';\nimport type { UIType } from '../../types/ui-runtime';\n\n/**\n * React runtime interface.\n * Uses permissive types to support various React versions.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ninterface ReactRuntime {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n createElement: (...args: any[]) => any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Component?: any;\n}\n\n/**\n * ReactDOM runtime interface.\n * Uses permissive types to support React 17 and 18+.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ninterface ReactDOMRuntime {\n createRoot?: (container: Element) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n render: (element: any) => void;\n unmount: () => void;\n };\n hydrateRoot?: (\n container: Element,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n element: any,\n ) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n render: (element: any) => void;\n unmount: () => void;\n };\n // Legacy APIs (React 17)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n render?: (element: any, container: Element) => void;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n hydrate?: (element: any, container: Element) => void;\n unmountComponentAtNode?: (container: Element) => boolean;\n}\n\n/**\n * Root reference for cleanup.\n */\ninterface RootRef {\n unmount: () => void;\n}\n\n/**\n * Map of mounted roots for cleanup.\n */\nconst mountedRoots = new WeakMap<HTMLElement, RootRef>();\n\n/**\n * React Renderer Adapter.\n *\n * Renders React components to the DOM with support for:\n * - Server-side rendering (SSR)\n * - Client-side hydration\n * - Dynamic updates when data changes\n */\nexport class ReactRendererAdapter implements RendererAdapter {\n readonly type: UIType = 'react';\n\n // Lazy-loaded React runtime\n private react: ReactRuntime | null = null;\n private reactDOM: ReactDOMRuntime | null = null;\n private loadPromise: Promise<void> | null = null;\n\n /**\n * Check if this adapter can handle the given content.\n */\n canHandle(content: string | unknown): boolean {\n // React adapter handles:\n // - Functions (React components)\n // - Strings that look like JSX\n if (typeof content === 'function') {\n return true;\n }\n\n if (typeof content === 'string') {\n // Check for JSX patterns\n return (\n content.includes('React.createElement') ||\n content.includes('jsx(') ||\n content.includes('jsxs(') ||\n /function\\s+\\w+\\s*\\([^)]*\\)\\s*\\{[\\s\\S]*return\\s*[\\s\\S]*</.test(content)\n );\n }\n\n return false;\n }\n\n /**\n * Render React component to a string.\n * This is a client-side fallback - SSR should be done at build time.\n */\n async render(content: string, context: RenderContext, _options?: RenderOptions): Promise<string> {\n // For client-side, we can't SSR React\n // Return a placeholder that will be hydrated\n return `<div data-frontmcp-react data-tool=\"${context.toolName}\">${content}</div>`;\n }\n\n /**\n * Render React component directly to the DOM.\n */\n async renderToDOM(\n content: string,\n target: HTMLElement,\n context: RenderContext,\n options?: RenderOptions,\n ): Promise<RenderResult> {\n try {\n await this.ensureReactLoaded();\n\n if (!this.react || !this.reactDOM) {\n throw new Error('React runtime not available');\n }\n\n // Try to get component from registered components\n const componentName = target.getAttribute('data-component');\n const component = this.getComponent(componentName, content);\n\n if (!component) {\n // Fall back to HTML rendering\n target.innerHTML = content;\n return { success: true };\n }\n\n // Create React element with context as props\n const element = this.react.createElement(component, {\n input: context.input,\n output: context.output,\n structuredContent: context.structuredContent,\n toolName: context.toolName,\n });\n\n // Render or hydrate\n if (options?.hydrate && this.reactDOM.hydrateRoot) {\n const root = this.reactDOM.hydrateRoot(target, element);\n mountedRoots.set(target, root);\n } else if (this.reactDOM.createRoot) {\n const root = this.reactDOM.createRoot(target);\n root.render(element);\n mountedRoots.set(target, root);\n } else if (this.reactDOM.render) {\n // Legacy React 17 API\n this.reactDOM.render(element, target);\n mountedRoots.set(target, {\n unmount: () => this.reactDOM?.unmountComponentAtNode?.(target),\n });\n } else {\n throw new Error('No suitable React render method available');\n }\n\n // Dispatch event\n target.dispatchEvent(\n new CustomEvent('frontmcp:rendered', {\n bubbles: true,\n detail: { type: 'react', toolName: context.toolName },\n }),\n );\n\n return { success: true };\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n console.error('[FrontMCP] React render failed:', message);\n return { success: false, error: message };\n }\n }\n\n /**\n * Hydrate existing SSR content with React.\n */\n async hydrate(target: HTMLElement, context: RenderContext, options?: RenderOptions): Promise<RenderResult> {\n return this.renderToDOM('', target, context, { ...options, hydrate: true });\n }\n\n /**\n * Update rendered React component with new data.\n */\n async update(target: HTMLElement, context: RenderContext): Promise<RenderResult> {\n try {\n await this.ensureReactLoaded();\n\n if (!this.react) {\n throw new Error('React runtime not available');\n }\n\n const existingRoot = mountedRoots.get(target);\n const componentName = target.getAttribute('data-component');\n const component = this.getComponent(componentName, '');\n\n if (!component) {\n return { success: false, error: 'No component found for update' };\n }\n\n // Create new element with updated props\n const element = this.react.createElement(component, {\n input: context.input,\n output: context.output,\n structuredContent: context.structuredContent,\n toolName: context.toolName,\n });\n\n if (existingRoot && 'render' in existingRoot) {\n (existingRoot as { render: (el: unknown) => void }).render(element);\n return { success: true };\n }\n\n // No existing root - do a fresh render\n return this.renderToDOM('', target, context);\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n console.error('[FrontMCP] React update failed:', message);\n return { success: false, error: message };\n }\n }\n\n /**\n * Clean up React root.\n */\n destroy(target: HTMLElement): void {\n const root = mountedRoots.get(target);\n if (root) {\n root.unmount();\n mountedRoots.delete(target);\n }\n }\n\n /**\n * Ensure React is loaded.\n */\n private async ensureReactLoaded(): Promise<void> {\n if (this.react && this.reactDOM) {\n return;\n }\n\n if (this.loadPromise) {\n return this.loadPromise;\n }\n\n this.loadPromise = this.loadReact();\n return this.loadPromise;\n }\n\n /**\n * Load React runtime.\n */\n private async loadReact(): Promise<void> {\n // Check if React is already available globally\n const win = typeof window !== 'undefined' ? window : (globalThis as unknown as Window);\n\n if ((win as unknown as { React?: ReactRuntime }).React) {\n this.react = (win as unknown as { React: ReactRuntime }).React;\n }\n\n if ((win as unknown as { ReactDOM?: ReactDOMRuntime }).ReactDOM) {\n this.reactDOM = (win as unknown as { ReactDOM: ReactDOMRuntime }).ReactDOM;\n }\n\n if (this.react && this.reactDOM) {\n return;\n }\n\n // Try to dynamically import React\n try {\n if (!this.react) {\n const reactModule = await import(/* webpackIgnore: true */ 'react');\n this.react = reactModule.default || reactModule;\n }\n\n if (!this.reactDOM) {\n const reactDOMModule = await import(/* webpackIgnore: true */ 'react-dom/client');\n this.reactDOM = reactDOMModule.default || reactDOMModule;\n }\n } catch {\n // React not available via import - rely on global\n if (!this.react || !this.reactDOM) {\n console.warn('[FrontMCP] React runtime not available. ' + 'Ensure React is loaded via CDN or bundled.');\n }\n }\n }\n\n /**\n * Get a React component by name or from content.\n */\n private getComponent(componentName: string | null, content: string): React.ComponentType<unknown> | null {\n const win = typeof window !== 'undefined' ? window : (globalThis as unknown as Window);\n\n // Check registered components\n type ComponentRegistry = {\n __frontmcp_components?: Record<string, React.ComponentType<unknown>>;\n };\n\n if (componentName && (win as ComponentRegistry).__frontmcp_components) {\n const registered = (win as ComponentRegistry).__frontmcp_components?.[componentName];\n if (registered) {\n return registered;\n }\n }\n\n // Try to evaluate content as a component (unsafe - should be pre-bundled)\n if (content && typeof content === 'function') {\n return content as React.ComponentType<unknown>;\n }\n\n return null;\n }\n}\n\n/**\n * Create a new React renderer adapter.\n */\nexport function createReactAdapter(): ReactRendererAdapter {\n return new ReactRendererAdapter();\n}\n\n/**\n * Adapter loader for lazy loading.\n */\nexport async function loadReactAdapter(): Promise<RendererAdapter> {\n return createReactAdapter();\n}\n"]}