@frontmcp/ui 0.5.1 → 0.6.1

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 (805) hide show
  1. package/README.md +140 -362
  2. package/bridge/adapters/base-adapter.d.ts +104 -0
  3. package/bridge/adapters/base-adapter.d.ts.map +1 -0
  4. package/bridge/adapters/claude.adapter.d.ts +67 -0
  5. package/bridge/adapters/claude.adapter.d.ts.map +1 -0
  6. package/bridge/adapters/ext-apps.adapter.d.ts +143 -0
  7. package/bridge/adapters/ext-apps.adapter.d.ts.map +1 -0
  8. package/bridge/adapters/gemini.adapter.d.ts +64 -0
  9. package/bridge/adapters/gemini.adapter.d.ts.map +1 -0
  10. package/bridge/adapters/generic.adapter.d.ts +56 -0
  11. package/bridge/adapters/generic.adapter.d.ts.map +1 -0
  12. package/bridge/adapters/index.d.ts +26 -0
  13. package/bridge/adapters/index.d.ts.map +1 -0
  14. package/bridge/adapters/openai.adapter.d.ts +65 -0
  15. package/bridge/adapters/openai.adapter.d.ts.map +1 -0
  16. package/bridge/core/adapter-registry.d.ts +122 -0
  17. package/bridge/core/adapter-registry.d.ts.map +1 -0
  18. package/bridge/core/bridge-factory.d.ts +199 -0
  19. package/bridge/core/bridge-factory.d.ts.map +1 -0
  20. package/bridge/core/index.d.ts +10 -0
  21. package/bridge/core/index.d.ts.map +1 -0
  22. package/bridge/index.d.ts +62 -0
  23. package/bridge/index.d.ts.map +1 -0
  24. package/bridge/index.js +2540 -0
  25. package/bridge/runtime/iife-generator.d.ts +62 -0
  26. package/bridge/runtime/iife-generator.d.ts.map +1 -0
  27. package/bridge/runtime/index.d.ts +10 -0
  28. package/bridge/runtime/index.d.ts.map +1 -0
  29. package/bridge/types.d.ts +386 -0
  30. package/bridge/types.d.ts.map +1 -0
  31. package/bundler/bundler.d.ts +208 -0
  32. package/bundler/bundler.d.ts.map +1 -0
  33. package/bundler/cache.d.ts +173 -0
  34. package/bundler/cache.d.ts.map +1 -0
  35. package/bundler/file-cache/component-builder.d.ts +167 -0
  36. package/bundler/file-cache/component-builder.d.ts.map +1 -0
  37. package/bundler/file-cache/hash-calculator.d.ts +155 -0
  38. package/bundler/file-cache/hash-calculator.d.ts.map +1 -0
  39. package/bundler/file-cache/index.d.ts +12 -0
  40. package/bundler/file-cache/index.d.ts.map +1 -0
  41. package/bundler/file-cache/storage/filesystem.d.ts +149 -0
  42. package/bundler/file-cache/storage/filesystem.d.ts.map +1 -0
  43. package/bundler/file-cache/storage/index.d.ts +11 -0
  44. package/bundler/file-cache/storage/index.d.ts.map +1 -0
  45. package/bundler/file-cache/storage/interface.d.ts +152 -0
  46. package/bundler/file-cache/storage/interface.d.ts.map +1 -0
  47. package/bundler/file-cache/storage/redis.d.ts +139 -0
  48. package/bundler/file-cache/storage/redis.d.ts.map +1 -0
  49. package/bundler/index.d.ts +43 -0
  50. package/bundler/index.d.ts.map +1 -0
  51. package/bundler/index.js +3707 -0
  52. package/bundler/sandbox/enclave-adapter.d.ts +121 -0
  53. package/bundler/sandbox/enclave-adapter.d.ts.map +1 -0
  54. package/bundler/sandbox/executor.d.ts +14 -0
  55. package/bundler/sandbox/executor.d.ts.map +1 -0
  56. package/bundler/sandbox/policy.d.ts +62 -0
  57. package/bundler/sandbox/policy.d.ts.map +1 -0
  58. package/bundler/types.d.ts +702 -0
  59. package/bundler/types.d.ts.map +1 -0
  60. package/components/alert.d.ts +66 -0
  61. package/components/alert.d.ts.map +1 -0
  62. package/components/alert.schema.d.ts +98 -0
  63. package/components/alert.schema.d.ts.map +1 -0
  64. package/components/avatar.d.ts +77 -0
  65. package/components/avatar.d.ts.map +1 -0
  66. package/components/avatar.schema.d.ts +170 -0
  67. package/components/avatar.schema.d.ts.map +1 -0
  68. package/components/badge.d.ts +64 -0
  69. package/components/badge.d.ts.map +1 -0
  70. package/components/badge.schema.d.ts +91 -0
  71. package/components/badge.schema.d.ts.map +1 -0
  72. package/components/button.d.ts +100 -0
  73. package/components/button.d.ts.map +1 -0
  74. package/components/button.schema.d.ts +120 -0
  75. package/components/button.schema.d.ts.map +1 -0
  76. package/components/card.d.ts +53 -0
  77. package/components/card.d.ts.map +1 -0
  78. package/components/card.schema.d.ts +93 -0
  79. package/components/card.schema.d.ts.map +1 -0
  80. package/components/form.d.ts +212 -0
  81. package/components/form.d.ts.map +1 -0
  82. package/components/form.schema.d.ts +365 -0
  83. package/components/form.schema.d.ts.map +1 -0
  84. package/components/index.d.ts +29 -0
  85. package/components/index.d.ts.map +1 -0
  86. package/components/index.js +2525 -0
  87. package/components/list.d.ts +121 -0
  88. package/components/list.d.ts.map +1 -0
  89. package/components/list.schema.d.ts +129 -0
  90. package/components/list.schema.d.ts.map +1 -0
  91. package/components/modal.d.ts +100 -0
  92. package/components/modal.d.ts.map +1 -0
  93. package/components/modal.schema.d.ts +151 -0
  94. package/components/modal.schema.d.ts.map +1 -0
  95. package/components/table.d.ts +91 -0
  96. package/components/table.d.ts.map +1 -0
  97. package/components/table.schema.d.ts +123 -0
  98. package/components/table.schema.d.ts.map +1 -0
  99. package/esm/bridge/adapters/base-adapter.d.ts +104 -0
  100. package/esm/bridge/adapters/base-adapter.d.ts.map +1 -0
  101. package/esm/bridge/adapters/claude.adapter.d.ts +67 -0
  102. package/esm/bridge/adapters/claude.adapter.d.ts.map +1 -0
  103. package/esm/bridge/adapters/ext-apps.adapter.d.ts +143 -0
  104. package/esm/bridge/adapters/ext-apps.adapter.d.ts.map +1 -0
  105. package/esm/bridge/adapters/gemini.adapter.d.ts +64 -0
  106. package/esm/bridge/adapters/gemini.adapter.d.ts.map +1 -0
  107. package/esm/bridge/adapters/generic.adapter.d.ts +56 -0
  108. package/esm/bridge/adapters/generic.adapter.d.ts.map +1 -0
  109. package/esm/bridge/adapters/index.d.ts +26 -0
  110. package/esm/bridge/adapters/index.d.ts.map +1 -0
  111. package/esm/bridge/adapters/openai.adapter.d.ts +65 -0
  112. package/esm/bridge/adapters/openai.adapter.d.ts.map +1 -0
  113. package/esm/bridge/core/adapter-registry.d.ts +122 -0
  114. package/esm/bridge/core/adapter-registry.d.ts.map +1 -0
  115. package/esm/bridge/core/bridge-factory.d.ts +199 -0
  116. package/esm/bridge/core/bridge-factory.d.ts.map +1 -0
  117. package/esm/bridge/core/index.d.ts +10 -0
  118. package/esm/bridge/core/index.d.ts.map +1 -0
  119. package/esm/bridge/index.d.ts +62 -0
  120. package/esm/bridge/index.d.ts.map +1 -0
  121. package/esm/bridge/index.js +2487 -0
  122. package/esm/bridge/runtime/iife-generator.d.ts +62 -0
  123. package/esm/bridge/runtime/iife-generator.d.ts.map +1 -0
  124. package/esm/bridge/runtime/index.d.ts +10 -0
  125. package/esm/bridge/runtime/index.d.ts.map +1 -0
  126. package/esm/bridge/types.d.ts +386 -0
  127. package/esm/bridge/types.d.ts.map +1 -0
  128. package/esm/bundler/bundler.d.ts +208 -0
  129. package/esm/bundler/bundler.d.ts.map +1 -0
  130. package/esm/bundler/cache.d.ts +173 -0
  131. package/esm/bundler/cache.d.ts.map +1 -0
  132. package/esm/bundler/file-cache/component-builder.d.ts +167 -0
  133. package/esm/bundler/file-cache/component-builder.d.ts.map +1 -0
  134. package/esm/bundler/file-cache/hash-calculator.d.ts +155 -0
  135. package/esm/bundler/file-cache/hash-calculator.d.ts.map +1 -0
  136. package/esm/bundler/file-cache/index.d.ts +12 -0
  137. package/esm/bundler/file-cache/index.d.ts.map +1 -0
  138. package/esm/bundler/file-cache/storage/filesystem.d.ts +149 -0
  139. package/esm/bundler/file-cache/storage/filesystem.d.ts.map +1 -0
  140. package/esm/bundler/file-cache/storage/index.d.ts +11 -0
  141. package/esm/bundler/file-cache/storage/index.d.ts.map +1 -0
  142. package/esm/bundler/file-cache/storage/interface.d.ts +152 -0
  143. package/esm/bundler/file-cache/storage/interface.d.ts.map +1 -0
  144. package/esm/bundler/file-cache/storage/redis.d.ts +139 -0
  145. package/esm/bundler/file-cache/storage/redis.d.ts.map +1 -0
  146. package/esm/bundler/index.d.ts +43 -0
  147. package/esm/bundler/index.d.ts.map +1 -0
  148. package/esm/bundler/index.js +3640 -0
  149. package/esm/bundler/sandbox/enclave-adapter.d.ts +121 -0
  150. package/esm/bundler/sandbox/enclave-adapter.d.ts.map +1 -0
  151. package/esm/bundler/sandbox/executor.d.ts +14 -0
  152. package/esm/bundler/sandbox/executor.d.ts.map +1 -0
  153. package/esm/bundler/sandbox/policy.d.ts +62 -0
  154. package/esm/bundler/sandbox/policy.d.ts.map +1 -0
  155. package/esm/bundler/types.d.ts +702 -0
  156. package/esm/bundler/types.d.ts.map +1 -0
  157. package/esm/components/alert.d.ts +66 -0
  158. package/esm/components/alert.d.ts.map +1 -0
  159. package/esm/components/alert.schema.d.ts +98 -0
  160. package/esm/components/alert.schema.d.ts.map +1 -0
  161. package/esm/components/avatar.d.ts +77 -0
  162. package/esm/components/avatar.d.ts.map +1 -0
  163. package/esm/components/avatar.schema.d.ts +170 -0
  164. package/esm/components/avatar.schema.d.ts.map +1 -0
  165. package/esm/components/badge.d.ts +64 -0
  166. package/esm/components/badge.d.ts.map +1 -0
  167. package/esm/components/badge.schema.d.ts +91 -0
  168. package/esm/components/badge.schema.d.ts.map +1 -0
  169. package/esm/components/button.d.ts +100 -0
  170. package/esm/components/button.d.ts.map +1 -0
  171. package/esm/components/button.schema.d.ts +120 -0
  172. package/esm/components/button.schema.d.ts.map +1 -0
  173. package/esm/components/card.d.ts +53 -0
  174. package/esm/components/card.d.ts.map +1 -0
  175. package/esm/components/card.schema.d.ts +93 -0
  176. package/esm/components/card.schema.d.ts.map +1 -0
  177. package/esm/components/form.d.ts +212 -0
  178. package/esm/components/form.d.ts.map +1 -0
  179. package/esm/components/form.schema.d.ts +365 -0
  180. package/esm/components/form.schema.d.ts.map +1 -0
  181. package/esm/components/index.d.ts +29 -0
  182. package/esm/components/index.d.ts.map +1 -0
  183. package/esm/components/index.js +2396 -0
  184. package/esm/components/list.d.ts +121 -0
  185. package/esm/components/list.d.ts.map +1 -0
  186. package/esm/components/list.schema.d.ts +129 -0
  187. package/esm/components/list.schema.d.ts.map +1 -0
  188. package/esm/components/modal.d.ts +100 -0
  189. package/esm/components/modal.d.ts.map +1 -0
  190. package/esm/components/modal.schema.d.ts +151 -0
  191. package/esm/components/modal.schema.d.ts.map +1 -0
  192. package/esm/components/table.d.ts +91 -0
  193. package/esm/components/table.d.ts.map +1 -0
  194. package/esm/components/table.schema.d.ts +123 -0
  195. package/esm/components/table.schema.d.ts.map +1 -0
  196. package/esm/index.d.ts +40 -0
  197. package/esm/index.d.ts.map +1 -0
  198. package/esm/index.js +8326 -0
  199. package/esm/layouts/base.d.ts +86 -0
  200. package/esm/layouts/base.d.ts.map +1 -0
  201. package/esm/layouts/index.d.ts +8 -0
  202. package/esm/layouts/index.d.ts.map +1 -0
  203. package/esm/layouts/index.js +409 -0
  204. package/esm/layouts/presets.d.ts +134 -0
  205. package/esm/layouts/presets.d.ts.map +1 -0
  206. package/esm/package.json +72 -0
  207. package/esm/pages/consent.d.ts +117 -0
  208. package/esm/pages/consent.d.ts.map +1 -0
  209. package/esm/pages/error.d.ts +101 -0
  210. package/esm/pages/error.d.ts.map +1 -0
  211. package/esm/pages/index.d.ts +9 -0
  212. package/esm/pages/index.d.ts.map +1 -0
  213. package/esm/pages/index.js +1036 -0
  214. package/esm/react/Alert.d.ts +101 -0
  215. package/esm/react/Alert.d.ts.map +1 -0
  216. package/esm/react/Badge.d.ts +100 -0
  217. package/esm/react/Badge.d.ts.map +1 -0
  218. package/esm/react/Button.d.ts +108 -0
  219. package/esm/react/Button.d.ts.map +1 -0
  220. package/esm/react/Card.d.ts +103 -0
  221. package/esm/react/Card.d.ts.map +1 -0
  222. package/esm/react/hooks/context.d.ts +179 -0
  223. package/esm/react/hooks/context.d.ts.map +1 -0
  224. package/esm/react/hooks/index.d.ts +42 -0
  225. package/esm/react/hooks/index.d.ts.map +1 -0
  226. package/esm/react/hooks/tools.d.ts +284 -0
  227. package/esm/react/hooks/tools.d.ts.map +1 -0
  228. package/esm/react/index.d.ts +80 -0
  229. package/esm/react/index.d.ts.map +1 -0
  230. package/esm/react/index.js +3124 -0
  231. package/esm/react/types.d.ts +105 -0
  232. package/esm/react/types.d.ts.map +1 -0
  233. package/esm/react/utils.d.ts +43 -0
  234. package/esm/react/utils.d.ts.map +1 -0
  235. package/esm/render/index.d.ts +8 -0
  236. package/esm/render/index.d.ts.map +1 -0
  237. package/esm/render/index.js +45 -0
  238. package/esm/render/prerender.d.ts +57 -0
  239. package/esm/render/prerender.d.ts.map +1 -0
  240. package/esm/renderers/index.d.ts +21 -0
  241. package/esm/renderers/index.d.ts.map +1 -0
  242. package/esm/renderers/index.js +381 -0
  243. package/esm/renderers/react.adapter.d.ts +70 -0
  244. package/esm/renderers/react.adapter.d.ts.map +1 -0
  245. package/esm/renderers/react.renderer.d.ts +96 -0
  246. package/esm/renderers/react.renderer.d.ts.map +1 -0
  247. package/esm/universal/UniversalApp.d.ts +108 -0
  248. package/esm/universal/UniversalApp.d.ts.map +1 -0
  249. package/esm/universal/cached-runtime.d.ts +115 -0
  250. package/esm/universal/cached-runtime.d.ts.map +1 -0
  251. package/esm/universal/context.d.ts +122 -0
  252. package/esm/universal/context.d.ts.map +1 -0
  253. package/esm/universal/index.d.ts +57 -0
  254. package/esm/universal/index.d.ts.map +1 -0
  255. package/esm/universal/index.js +1755 -0
  256. package/esm/universal/renderers/html.renderer.d.ts +37 -0
  257. package/esm/universal/renderers/html.renderer.d.ts.map +1 -0
  258. package/esm/universal/renderers/index.d.ts +112 -0
  259. package/esm/universal/renderers/index.d.ts.map +1 -0
  260. package/esm/universal/renderers/markdown.renderer.d.ts +33 -0
  261. package/esm/universal/renderers/markdown.renderer.d.ts.map +1 -0
  262. package/esm/universal/renderers/mdx.renderer.d.ts +38 -0
  263. package/esm/universal/renderers/mdx.renderer.d.ts.map +1 -0
  264. package/esm/universal/renderers/react.renderer.d.ts +46 -0
  265. package/esm/universal/renderers/react.renderer.d.ts.map +1 -0
  266. package/esm/universal/runtime-builder.d.ts +33 -0
  267. package/esm/universal/runtime-builder.d.ts.map +1 -0
  268. package/esm/universal/store.d.ts +135 -0
  269. package/esm/universal/store.d.ts.map +1 -0
  270. package/esm/universal/types.d.ts +199 -0
  271. package/esm/universal/types.d.ts.map +1 -0
  272. package/esm/web-components/core/attribute-parser.d.ts +82 -0
  273. package/esm/web-components/core/attribute-parser.d.ts.map +1 -0
  274. package/esm/web-components/core/base-element.d.ts +197 -0
  275. package/esm/web-components/core/base-element.d.ts.map +1 -0
  276. package/esm/web-components/core/index.d.ts +9 -0
  277. package/esm/web-components/core/index.d.ts.map +1 -0
  278. package/esm/web-components/elements/fmcp-alert.d.ts +46 -0
  279. package/esm/web-components/elements/fmcp-alert.d.ts.map +1 -0
  280. package/esm/web-components/elements/fmcp-badge.d.ts +47 -0
  281. package/esm/web-components/elements/fmcp-badge.d.ts.map +1 -0
  282. package/esm/web-components/elements/fmcp-button.d.ts +117 -0
  283. package/esm/web-components/elements/fmcp-button.d.ts.map +1 -0
  284. package/esm/web-components/elements/fmcp-card.d.ts +53 -0
  285. package/esm/web-components/elements/fmcp-card.d.ts.map +1 -0
  286. package/esm/web-components/elements/fmcp-input.d.ts +96 -0
  287. package/esm/web-components/elements/fmcp-input.d.ts.map +1 -0
  288. package/esm/web-components/elements/fmcp-select.d.ts +100 -0
  289. package/esm/web-components/elements/fmcp-select.d.ts.map +1 -0
  290. package/esm/web-components/elements/index.d.ts +13 -0
  291. package/esm/web-components/elements/index.d.ts.map +1 -0
  292. package/esm/web-components/index.d.ts +50 -0
  293. package/esm/web-components/index.d.ts.map +1 -0
  294. package/esm/web-components/index.js +1993 -0
  295. package/esm/web-components/register.d.ts +57 -0
  296. package/esm/web-components/register.d.ts.map +1 -0
  297. package/esm/web-components/types.d.ts +122 -0
  298. package/esm/web-components/types.d.ts.map +1 -0
  299. package/esm/widgets/index.d.ts +8 -0
  300. package/esm/widgets/index.d.ts.map +1 -0
  301. package/esm/widgets/index.js +883 -0
  302. package/esm/widgets/progress.d.ts +133 -0
  303. package/esm/widgets/progress.d.ts.map +1 -0
  304. package/esm/widgets/resource.d.ts +163 -0
  305. package/esm/widgets/resource.d.ts.map +1 -0
  306. package/index.d.ts +40 -0
  307. package/index.d.ts.map +1 -0
  308. package/index.js +8526 -0
  309. package/layouts/base.d.ts +86 -0
  310. package/layouts/base.d.ts.map +1 -0
  311. package/layouts/index.d.ts +8 -0
  312. package/layouts/index.d.ts.map +1 -0
  313. package/layouts/index.js +437 -0
  314. package/layouts/presets.d.ts +134 -0
  315. package/layouts/presets.d.ts.map +1 -0
  316. package/package.json +33 -110
  317. package/pages/consent.d.ts +117 -0
  318. package/pages/consent.d.ts.map +1 -0
  319. package/pages/error.d.ts +101 -0
  320. package/pages/error.d.ts.map +1 -0
  321. package/pages/index.d.ts +9 -0
  322. package/pages/index.d.ts.map +1 -0
  323. package/pages/index.js +1065 -0
  324. package/react/Alert.d.ts +101 -0
  325. package/react/Alert.d.ts.map +1 -0
  326. package/react/Badge.d.ts +100 -0
  327. package/react/Badge.d.ts.map +1 -0
  328. package/react/Button.d.ts +108 -0
  329. package/react/Button.d.ts.map +1 -0
  330. package/react/Card.d.ts +103 -0
  331. package/react/Card.d.ts.map +1 -0
  332. package/react/hooks/context.d.ts +179 -0
  333. package/react/hooks/context.d.ts.map +1 -0
  334. package/react/hooks/index.d.ts +42 -0
  335. package/react/hooks/index.d.ts.map +1 -0
  336. package/react/hooks/tools.d.ts +284 -0
  337. package/react/hooks/tools.d.ts.map +1 -0
  338. package/react/index.d.ts +80 -0
  339. package/react/index.d.ts.map +1 -0
  340. package/react/index.js +3160 -0
  341. package/react/types.d.ts +105 -0
  342. package/react/types.d.ts.map +1 -0
  343. package/react/utils.d.ts +43 -0
  344. package/react/utils.d.ts.map +1 -0
  345. package/render/index.d.ts +8 -0
  346. package/render/index.d.ts.map +1 -0
  347. package/render/index.js +77 -0
  348. package/render/prerender.d.ts +57 -0
  349. package/render/prerender.d.ts.map +1 -0
  350. package/renderers/index.d.ts +21 -0
  351. package/renderers/index.d.ts.map +1 -0
  352. package/renderers/index.js +416 -0
  353. package/renderers/react.adapter.d.ts +70 -0
  354. package/renderers/react.adapter.d.ts.map +1 -0
  355. package/renderers/react.renderer.d.ts +96 -0
  356. package/renderers/react.renderer.d.ts.map +1 -0
  357. package/universal/UniversalApp.d.ts +108 -0
  358. package/universal/UniversalApp.d.ts.map +1 -0
  359. package/universal/cached-runtime.d.ts +115 -0
  360. package/universal/cached-runtime.d.ts.map +1 -0
  361. package/universal/context.d.ts +122 -0
  362. package/universal/context.d.ts.map +1 -0
  363. package/universal/index.d.ts +57 -0
  364. package/universal/index.d.ts.map +1 -0
  365. package/universal/index.js +1841 -0
  366. package/universal/renderers/html.renderer.d.ts +37 -0
  367. package/universal/renderers/html.renderer.d.ts.map +1 -0
  368. package/universal/renderers/index.d.ts +112 -0
  369. package/universal/renderers/index.d.ts.map +1 -0
  370. package/universal/renderers/markdown.renderer.d.ts +33 -0
  371. package/universal/renderers/markdown.renderer.d.ts.map +1 -0
  372. package/universal/renderers/mdx.renderer.d.ts +38 -0
  373. package/universal/renderers/mdx.renderer.d.ts.map +1 -0
  374. package/universal/renderers/react.renderer.d.ts +46 -0
  375. package/universal/renderers/react.renderer.d.ts.map +1 -0
  376. package/universal/runtime-builder.d.ts +33 -0
  377. package/universal/runtime-builder.d.ts.map +1 -0
  378. package/universal/store.d.ts +135 -0
  379. package/universal/store.d.ts.map +1 -0
  380. package/universal/types.d.ts +199 -0
  381. package/universal/types.d.ts.map +1 -0
  382. package/web-components/core/attribute-parser.d.ts +82 -0
  383. package/web-components/core/attribute-parser.d.ts.map +1 -0
  384. package/web-components/core/base-element.d.ts +197 -0
  385. package/web-components/core/base-element.d.ts.map +1 -0
  386. package/web-components/core/index.d.ts +9 -0
  387. package/web-components/core/index.d.ts.map +1 -0
  388. package/web-components/elements/fmcp-alert.d.ts +46 -0
  389. package/web-components/elements/fmcp-alert.d.ts.map +1 -0
  390. package/web-components/elements/fmcp-badge.d.ts +47 -0
  391. package/web-components/elements/fmcp-badge.d.ts.map +1 -0
  392. package/web-components/elements/fmcp-button.d.ts +117 -0
  393. package/web-components/elements/fmcp-button.d.ts.map +1 -0
  394. package/web-components/elements/fmcp-card.d.ts +53 -0
  395. package/web-components/elements/fmcp-card.d.ts.map +1 -0
  396. package/web-components/elements/fmcp-input.d.ts +96 -0
  397. package/web-components/elements/fmcp-input.d.ts.map +1 -0
  398. package/web-components/elements/fmcp-select.d.ts +100 -0
  399. package/web-components/elements/fmcp-select.d.ts.map +1 -0
  400. package/web-components/elements/index.d.ts +13 -0
  401. package/web-components/elements/index.d.ts.map +1 -0
  402. package/web-components/index.d.ts +50 -0
  403. package/web-components/index.d.ts.map +1 -0
  404. package/web-components/index.js +2028 -0
  405. package/web-components/register.d.ts +57 -0
  406. package/web-components/register.d.ts.map +1 -0
  407. package/web-components/types.d.ts +122 -0
  408. package/web-components/types.d.ts.map +1 -0
  409. package/widgets/index.d.ts +8 -0
  410. package/widgets/index.d.ts.map +1 -0
  411. package/widgets/index.js +910 -0
  412. package/widgets/progress.d.ts +133 -0
  413. package/widgets/progress.d.ts.map +1 -0
  414. package/widgets/resource.d.ts +163 -0
  415. package/widgets/resource.d.ts.map +1 -0
  416. package/src/adapters/index.d.ts +0 -10
  417. package/src/adapters/index.js +0 -18
  418. package/src/adapters/index.js.map +0 -1
  419. package/src/adapters/platform-meta.d.ts +0 -165
  420. package/src/adapters/platform-meta.js +0 -310
  421. package/src/adapters/platform-meta.js.map +0 -1
  422. package/src/base-template/bridge.d.ts +0 -89
  423. package/src/base-template/bridge.js +0 -452
  424. package/src/base-template/bridge.js.map +0 -1
  425. package/src/base-template/default-base-template.d.ts +0 -91
  426. package/src/base-template/default-base-template.js +0 -435
  427. package/src/base-template/default-base-template.js.map +0 -1
  428. package/src/base-template/index.d.ts +0 -14
  429. package/src/base-template/index.js +0 -30
  430. package/src/base-template/index.js.map +0 -1
  431. package/src/base-template/polyfills.d.ts +0 -30
  432. package/src/base-template/polyfills.js +0 -190
  433. package/src/base-template/polyfills.js.map +0 -1
  434. package/src/base-template/theme-styles.d.ts +0 -73
  435. package/src/base-template/theme-styles.js +0 -95
  436. package/src/base-template/theme-styles.js.map +0 -1
  437. package/src/bridge/adapters/base-adapter.d.ts +0 -103
  438. package/src/bridge/adapters/base-adapter.js +0 -314
  439. package/src/bridge/adapters/base-adapter.js.map +0 -1
  440. package/src/bridge/adapters/claude.adapter.d.ts +0 -66
  441. package/src/bridge/adapters/claude.adapter.js +0 -145
  442. package/src/bridge/adapters/claude.adapter.js.map +0 -1
  443. package/src/bridge/adapters/ext-apps.adapter.d.ts +0 -142
  444. package/src/bridge/adapters/ext-apps.adapter.js +0 -416
  445. package/src/bridge/adapters/ext-apps.adapter.js.map +0 -1
  446. package/src/bridge/adapters/gemini.adapter.d.ts +0 -63
  447. package/src/bridge/adapters/gemini.adapter.js +0 -160
  448. package/src/bridge/adapters/gemini.adapter.js.map +0 -1
  449. package/src/bridge/adapters/generic.adapter.d.ts +0 -55
  450. package/src/bridge/adapters/generic.adapter.js +0 -108
  451. package/src/bridge/adapters/generic.adapter.js.map +0 -1
  452. package/src/bridge/adapters/index.d.ts +0 -25
  453. package/src/bridge/adapters/index.js +0 -65
  454. package/src/bridge/adapters/index.js.map +0 -1
  455. package/src/bridge/adapters/openai.adapter.d.ts +0 -64
  456. package/src/bridge/adapters/openai.adapter.js +0 -194
  457. package/src/bridge/adapters/openai.adapter.js.map +0 -1
  458. package/src/bridge/core/adapter-registry.d.ts +0 -121
  459. package/src/bridge/core/adapter-registry.js +0 -271
  460. package/src/bridge/core/adapter-registry.js.map +0 -1
  461. package/src/bridge/core/bridge-factory.d.ts +0 -198
  462. package/src/bridge/core/bridge-factory.js +0 -428
  463. package/src/bridge/core/bridge-factory.js.map +0 -1
  464. package/src/bridge/core/index.d.ts +0 -9
  465. package/src/bridge/core/index.js +0 -22
  466. package/src/bridge/core/index.js.map +0 -1
  467. package/src/bridge/index.d.ts +0 -61
  468. package/src/bridge/index.js +0 -94
  469. package/src/bridge/index.js.map +0 -1
  470. package/src/bridge/runtime/iife-generator.d.ts +0 -61
  471. package/src/bridge/runtime/iife-generator.js +0 -940
  472. package/src/bridge/runtime/iife-generator.js.map +0 -1
  473. package/src/bridge/runtime/index.d.ts +0 -8
  474. package/src/bridge/runtime/index.js +0 -16
  475. package/src/bridge/runtime/index.js.map +0 -1
  476. package/src/bridge/types.d.ts +0 -385
  477. package/src/bridge/types.js +0 -11
  478. package/src/bridge/types.js.map +0 -1
  479. package/src/build/cdn-resources.d.ts +0 -140
  480. package/src/build/cdn-resources.js +0 -314
  481. package/src/build/cdn-resources.js.map +0 -1
  482. package/src/build/index.d.ts +0 -294
  483. package/src/build/index.js +0 -325
  484. package/src/build/index.js.map +0 -1
  485. package/src/build/widget-manifest.d.ts +0 -212
  486. package/src/build/widget-manifest.js +0 -652
  487. package/src/build/widget-manifest.js.map +0 -1
  488. package/src/bundler/bundler.d.ts +0 -110
  489. package/src/bundler/bundler.js +0 -432
  490. package/src/bundler/bundler.js.map +0 -1
  491. package/src/bundler/cache.d.ts +0 -172
  492. package/src/bundler/cache.js +0 -250
  493. package/src/bundler/cache.js.map +0 -1
  494. package/src/bundler/index.d.ts +0 -41
  495. package/src/bundler/index.js +0 -73
  496. package/src/bundler/index.js.map +0 -1
  497. package/src/bundler/sandbox/enclave-adapter.d.ts +0 -120
  498. package/src/bundler/sandbox/enclave-adapter.js +0 -339
  499. package/src/bundler/sandbox/enclave-adapter.js.map +0 -1
  500. package/src/bundler/sandbox/executor.d.ts +0 -13
  501. package/src/bundler/sandbox/executor.js +0 -22
  502. package/src/bundler/sandbox/executor.js.map +0 -1
  503. package/src/bundler/sandbox/policy.d.ts +0 -61
  504. package/src/bundler/sandbox/policy.js +0 -238
  505. package/src/bundler/sandbox/policy.js.map +0 -1
  506. package/src/bundler/types.d.ts +0 -347
  507. package/src/bundler/types.js +0 -132
  508. package/src/bundler/types.js.map +0 -1
  509. package/src/components/alert.d.ts +0 -71
  510. package/src/components/alert.js +0 -189
  511. package/src/components/alert.js.map +0 -1
  512. package/src/components/alert.schema.d.ts +0 -114
  513. package/src/components/alert.schema.js +0 -105
  514. package/src/components/alert.schema.js.map +0 -1
  515. package/src/components/avatar.d.ts +0 -76
  516. package/src/components/avatar.js +0 -176
  517. package/src/components/avatar.js.map +0 -1
  518. package/src/components/avatar.schema.d.ts +0 -169
  519. package/src/components/avatar.schema.js +0 -103
  520. package/src/components/avatar.schema.js.map +0 -1
  521. package/src/components/badge.d.ts +0 -70
  522. package/src/components/badge.js +0 -149
  523. package/src/components/badge.js.map +0 -1
  524. package/src/components/badge.schema.d.ts +0 -109
  525. package/src/components/badge.schema.js +0 -96
  526. package/src/components/badge.schema.js.map +0 -1
  527. package/src/components/button.d.ts +0 -111
  528. package/src/components/button.js +0 -336
  529. package/src/components/button.js.map +0 -1
  530. package/src/components/button.schema.d.ts +0 -148
  531. package/src/components/button.schema.js +0 -121
  532. package/src/components/button.schema.js.map +0 -1
  533. package/src/components/card.d.ts +0 -60
  534. package/src/components/card.js +0 -117
  535. package/src/components/card.js.map +0 -1
  536. package/src/components/card.schema.d.ts +0 -113
  537. package/src/components/card.schema.js +0 -98
  538. package/src/components/card.schema.js.map +0 -1
  539. package/src/components/form.d.ts +0 -239
  540. package/src/components/form.js +0 -420
  541. package/src/components/form.js.map +0 -1
  542. package/src/components/form.schema.d.ts +0 -441
  543. package/src/components/form.schema.js +0 -406
  544. package/src/components/form.schema.js.map +0 -1
  545. package/src/components/index.d.ts +0 -29
  546. package/src/components/index.js +0 -98
  547. package/src/components/index.js.map +0 -1
  548. package/src/components/list.d.ts +0 -127
  549. package/src/components/list.js +0 -279
  550. package/src/components/list.js.map +0 -1
  551. package/src/components/list.schema.d.ts +0 -134
  552. package/src/components/list.schema.js +0 -168
  553. package/src/components/list.schema.js.map +0 -1
  554. package/src/components/modal.d.ts +0 -111
  555. package/src/components/modal.js +0 -260
  556. package/src/components/modal.js.map +0 -1
  557. package/src/components/modal.schema.d.ts +0 -186
  558. package/src/components/modal.schema.js +0 -167
  559. package/src/components/modal.schema.js.map +0 -1
  560. package/src/components/table.d.ts +0 -105
  561. package/src/components/table.js +0 -283
  562. package/src/components/table.js.map +0 -1
  563. package/src/components/table.schema.d.ts +0 -159
  564. package/src/components/table.schema.js +0 -173
  565. package/src/components/table.schema.js.map +0 -1
  566. package/src/handlebars/helpers.d.ts +0 -348
  567. package/src/handlebars/helpers.js +0 -605
  568. package/src/handlebars/helpers.js.map +0 -1
  569. package/src/handlebars/index.d.ts +0 -193
  570. package/src/handlebars/index.js +0 -350
  571. package/src/handlebars/index.js.map +0 -1
  572. package/src/index.d.ts +0 -50
  573. package/src/index.js +0 -192
  574. package/src/index.js.map +0 -1
  575. package/src/layouts/base.d.ts +0 -88
  576. package/src/layouts/base.js +0 -227
  577. package/src/layouts/base.js.map +0 -1
  578. package/src/layouts/index.d.ts +0 -7
  579. package/src/layouts/index.js +0 -25
  580. package/src/layouts/index.js.map +0 -1
  581. package/src/layouts/presets.d.ts +0 -133
  582. package/src/layouts/presets.js +0 -277
  583. package/src/layouts/presets.js.map +0 -1
  584. package/src/pages/consent.d.ts +0 -116
  585. package/src/pages/consent.js +0 -218
  586. package/src/pages/consent.js.map +0 -1
  587. package/src/pages/error.d.ts +0 -100
  588. package/src/pages/error.js +0 -263
  589. package/src/pages/error.js.map +0 -1
  590. package/src/pages/index.d.ts +0 -8
  591. package/src/pages/index.js +0 -27
  592. package/src/pages/index.js.map +0 -1
  593. package/src/react/Alert.d.ts +0 -101
  594. package/src/react/Alert.js +0 -51
  595. package/src/react/Alert.js.map +0 -1
  596. package/src/react/Badge.d.ts +0 -100
  597. package/src/react/Badge.js +0 -55
  598. package/src/react/Badge.js.map +0 -1
  599. package/src/react/Button.d.ts +0 -108
  600. package/src/react/Button.js +0 -52
  601. package/src/react/Button.js.map +0 -1
  602. package/src/react/Card.d.ts +0 -103
  603. package/src/react/Card.js +0 -55
  604. package/src/react/Card.js.map +0 -1
  605. package/src/react/hooks/context.d.ts +0 -178
  606. package/src/react/hooks/context.js +0 -287
  607. package/src/react/hooks/context.js.map +0 -1
  608. package/src/react/hooks/index.d.ts +0 -41
  609. package/src/react/hooks/index.js +0 -61
  610. package/src/react/hooks/index.js.map +0 -1
  611. package/src/react/hooks/tools.d.ts +0 -283
  612. package/src/react/hooks/tools.js +0 -465
  613. package/src/react/hooks/tools.js.map +0 -1
  614. package/src/react/index.d.ts +0 -80
  615. package/src/react/index.js +0 -113
  616. package/src/react/index.js.map +0 -1
  617. package/src/react/types.d.ts +0 -105
  618. package/src/react/types.js +0 -12
  619. package/src/react/types.js.map +0 -1
  620. package/src/react/utils.d.ts +0 -42
  621. package/src/react/utils.js +0 -99
  622. package/src/react/utils.js.map +0 -1
  623. package/src/registry/index.d.ts +0 -45
  624. package/src/registry/index.js +0 -67
  625. package/src/registry/index.js.map +0 -1
  626. package/src/registry/render-template.d.ts +0 -86
  627. package/src/registry/render-template.js +0 -239
  628. package/src/registry/render-template.js.map +0 -1
  629. package/src/registry/tool-ui.registry.d.ts +0 -260
  630. package/src/registry/tool-ui.registry.js +0 -438
  631. package/src/registry/tool-ui.registry.js.map +0 -1
  632. package/src/registry/uri-utils.d.ts +0 -55
  633. package/src/registry/uri-utils.js +0 -97
  634. package/src/registry/uri-utils.js.map +0 -1
  635. package/src/render/index.d.ts +0 -7
  636. package/src/render/index.js +0 -14
  637. package/src/render/index.js.map +0 -1
  638. package/src/render/prerender.d.ts +0 -56
  639. package/src/render/prerender.js +0 -98
  640. package/src/render/prerender.js.map +0 -1
  641. package/src/renderers/cache.d.ts +0 -144
  642. package/src/renderers/cache.js +0 -240
  643. package/src/renderers/cache.js.map +0 -1
  644. package/src/renderers/html.renderer.d.ts +0 -122
  645. package/src/renderers/html.renderer.js +0 -204
  646. package/src/renderers/html.renderer.js.map +0 -1
  647. package/src/renderers/index.d.ts +0 -35
  648. package/src/renderers/index.js +0 -70
  649. package/src/renderers/index.js.map +0 -1
  650. package/src/renderers/mdx.renderer.d.ts +0 -119
  651. package/src/renderers/mdx.renderer.js +0 -305
  652. package/src/renderers/mdx.renderer.js.map +0 -1
  653. package/src/renderers/react.renderer.d.ts +0 -95
  654. package/src/renderers/react.renderer.js +0 -260
  655. package/src/renderers/react.renderer.js.map +0 -1
  656. package/src/renderers/registry.d.ts +0 -133
  657. package/src/renderers/registry.js +0 -232
  658. package/src/renderers/registry.js.map +0 -1
  659. package/src/renderers/types.d.ts +0 -341
  660. package/src/renderers/types.js +0 -9
  661. package/src/renderers/types.js.map +0 -1
  662. package/src/renderers/utils/detect.d.ts +0 -106
  663. package/src/renderers/utils/detect.js +0 -267
  664. package/src/renderers/utils/detect.js.map +0 -1
  665. package/src/renderers/utils/hash.d.ts +0 -39
  666. package/src/renderers/utils/hash.js +0 -75
  667. package/src/renderers/utils/hash.js.map +0 -1
  668. package/src/renderers/utils/index.d.ts +0 -8
  669. package/src/renderers/utils/index.js +0 -28
  670. package/src/renderers/utils/index.js.map +0 -1
  671. package/src/renderers/utils/transpiler.d.ts +0 -88
  672. package/src/renderers/utils/transpiler.js +0 -215
  673. package/src/renderers/utils/transpiler.js.map +0 -1
  674. package/src/runtime/adapters/html.adapter.d.ts +0 -58
  675. package/src/runtime/adapters/html.adapter.js +0 -131
  676. package/src/runtime/adapters/html.adapter.js.map +0 -1
  677. package/src/runtime/adapters/index.d.ts +0 -25
  678. package/src/runtime/adapters/index.js +0 -54
  679. package/src/runtime/adapters/index.js.map +0 -1
  680. package/src/runtime/adapters/mdx.adapter.d.ts +0 -72
  681. package/src/runtime/adapters/mdx.adapter.js +0 -241
  682. package/src/runtime/adapters/mdx.adapter.js.map +0 -1
  683. package/src/runtime/adapters/react.adapter.d.ts +0 -69
  684. package/src/runtime/adapters/react.adapter.js +0 -245
  685. package/src/runtime/adapters/react.adapter.js.map +0 -1
  686. package/src/runtime/adapters/types.d.ts +0 -94
  687. package/src/runtime/adapters/types.js +0 -11
  688. package/src/runtime/adapters/types.js.map +0 -1
  689. package/src/runtime/csp.d.ts +0 -37
  690. package/src/runtime/csp.js +0 -140
  691. package/src/runtime/csp.js.map +0 -1
  692. package/src/runtime/index.d.ts +0 -16
  693. package/src/runtime/index.js +0 -72
  694. package/src/runtime/index.js.map +0 -1
  695. package/src/runtime/mcp-bridge.d.ts +0 -100
  696. package/src/runtime/mcp-bridge.js +0 -581
  697. package/src/runtime/mcp-bridge.js.map +0 -1
  698. package/src/runtime/renderer-runtime.d.ts +0 -132
  699. package/src/runtime/renderer-runtime.js +0 -389
  700. package/src/runtime/renderer-runtime.js.map +0 -1
  701. package/src/runtime/sanitizer.d.ts +0 -171
  702. package/src/runtime/sanitizer.js +0 -318
  703. package/src/runtime/sanitizer.js.map +0 -1
  704. package/src/runtime/types.d.ts +0 -414
  705. package/src/runtime/types.js +0 -12
  706. package/src/runtime/types.js.map +0 -1
  707. package/src/runtime/wrapper.d.ts +0 -375
  708. package/src/runtime/wrapper.js +0 -1793
  709. package/src/runtime/wrapper.js.map +0 -1
  710. package/src/styles/index.d.ts +0 -7
  711. package/src/styles/index.js +0 -11
  712. package/src/styles/index.js.map +0 -1
  713. package/src/styles/variants.d.ts +0 -50
  714. package/src/styles/variants.js +0 -175
  715. package/src/styles/variants.js.map +0 -1
  716. package/src/theme/cdn.d.ts +0 -194
  717. package/src/theme/cdn.js +0 -375
  718. package/src/theme/cdn.js.map +0 -1
  719. package/src/theme/index.d.ts +0 -17
  720. package/src/theme/index.js +0 -57
  721. package/src/theme/index.js.map +0 -1
  722. package/src/theme/platforms.d.ts +0 -106
  723. package/src/theme/platforms.js +0 -161
  724. package/src/theme/platforms.js.map +0 -1
  725. package/src/theme/presets/github-openai.d.ts +0 -49
  726. package/src/theme/presets/github-openai.js +0 -189
  727. package/src/theme/presets/github-openai.js.map +0 -1
  728. package/src/theme/presets/index.d.ts +0 -10
  729. package/src/theme/presets/index.js +0 -17
  730. package/src/theme/presets/index.js.map +0 -1
  731. package/src/theme/theme.d.ts +0 -395
  732. package/src/theme/theme.js +0 -332
  733. package/src/theme/theme.js.map +0 -1
  734. package/src/tool-template/builder.d.ts +0 -212
  735. package/src/tool-template/builder.js +0 -397
  736. package/src/tool-template/builder.js.map +0 -1
  737. package/src/tool-template/index.d.ts +0 -15
  738. package/src/tool-template/index.js +0 -38
  739. package/src/tool-template/index.js.map +0 -1
  740. package/src/types/index.d.ts +0 -13
  741. package/src/types/index.js +0 -26
  742. package/src/types/index.js.map +0 -1
  743. package/src/types/ui-config.d.ts +0 -357
  744. package/src/types/ui-config.js +0 -12
  745. package/src/types/ui-config.js.map +0 -1
  746. package/src/types/ui-runtime.d.ts +0 -965
  747. package/src/types/ui-runtime.js +0 -117
  748. package/src/types/ui-runtime.js.map +0 -1
  749. package/src/validation/error-box.d.ts +0 -55
  750. package/src/validation/error-box.js +0 -75
  751. package/src/validation/error-box.js.map +0 -1
  752. package/src/validation/index.d.ts +0 -12
  753. package/src/validation/index.js +0 -21
  754. package/src/validation/index.js.map +0 -1
  755. package/src/validation/wrapper.d.ts +0 -96
  756. package/src/validation/wrapper.js +0 -117
  757. package/src/validation/wrapper.js.map +0 -1
  758. package/src/web-components/core/attribute-parser.d.ts +0 -85
  759. package/src/web-components/core/attribute-parser.js +0 -189
  760. package/src/web-components/core/attribute-parser.js.map +0 -1
  761. package/src/web-components/core/base-element.d.ts +0 -197
  762. package/src/web-components/core/base-element.js +0 -289
  763. package/src/web-components/core/base-element.js.map +0 -1
  764. package/src/web-components/core/index.d.ts +0 -8
  765. package/src/web-components/core/index.js +0 -18
  766. package/src/web-components/core/index.js.map +0 -1
  767. package/src/web-components/elements/fmcp-alert.d.ts +0 -45
  768. package/src/web-components/elements/fmcp-alert.js +0 -93
  769. package/src/web-components/elements/fmcp-alert.js.map +0 -1
  770. package/src/web-components/elements/fmcp-badge.d.ts +0 -46
  771. package/src/web-components/elements/fmcp-badge.js +0 -99
  772. package/src/web-components/elements/fmcp-badge.js.map +0 -1
  773. package/src/web-components/elements/fmcp-button.d.ts +0 -124
  774. package/src/web-components/elements/fmcp-button.js +0 -233
  775. package/src/web-components/elements/fmcp-button.js.map +0 -1
  776. package/src/web-components/elements/fmcp-card.d.ts +0 -52
  777. package/src/web-components/elements/fmcp-card.js +0 -115
  778. package/src/web-components/elements/fmcp-card.js.map +0 -1
  779. package/src/web-components/elements/fmcp-input.d.ts +0 -95
  780. package/src/web-components/elements/fmcp-input.js +0 -248
  781. package/src/web-components/elements/fmcp-input.js.map +0 -1
  782. package/src/web-components/elements/fmcp-select.d.ts +0 -99
  783. package/src/web-components/elements/fmcp-select.js +0 -243
  784. package/src/web-components/elements/fmcp-select.js.map +0 -1
  785. package/src/web-components/elements/index.d.ts +0 -12
  786. package/src/web-components/elements/index.js +0 -34
  787. package/src/web-components/elements/index.js.map +0 -1
  788. package/src/web-components/index.d.ts +0 -49
  789. package/src/web-components/index.js +0 -75
  790. package/src/web-components/index.js.map +0 -1
  791. package/src/web-components/register.d.ts +0 -56
  792. package/src/web-components/register.js +0 -80
  793. package/src/web-components/register.js.map +0 -1
  794. package/src/web-components/types.d.ts +0 -121
  795. package/src/web-components/types.js +0 -25
  796. package/src/web-components/types.js.map +0 -1
  797. package/src/widgets/index.d.ts +0 -7
  798. package/src/widgets/index.js +0 -24
  799. package/src/widgets/index.js.map +0 -1
  800. package/src/widgets/progress.d.ts +0 -132
  801. package/src/widgets/progress.js +0 -303
  802. package/src/widgets/progress.js.map +0 -1
  803. package/src/widgets/resource.d.ts +0 -162
  804. package/src/widgets/resource.js +0 -340
  805. package/src/widgets/resource.js.map +0 -1
@@ -1,193 +0,0 @@
1
- /**
2
- * Handlebars Renderer Module
3
- *
4
- * Provides Handlebars template rendering for HTML templates.
5
- * Enhances plain HTML with {{variable}} syntax support.
6
- *
7
- * @example
8
- * ```typescript
9
- * import { HandlebarsRenderer, createHandlebarsRenderer } from '@frontmcp/ui/handlebars';
10
- *
11
- * const renderer = createHandlebarsRenderer();
12
- *
13
- * const template = `
14
- * <div class="card">
15
- * <h2>{{escapeHtml output.title}}</h2>
16
- * <p>Created: {{formatDate output.createdAt}}</p>
17
- * {{#if output.items.length}}
18
- * <ul>
19
- * {{#each output.items}}
20
- * <li>{{this.name}} - {{formatCurrency this.price}}</li>
21
- * {{/each}}
22
- * </ul>
23
- * {{/if}}
24
- * </div>
25
- * `;
26
- *
27
- * const html = renderer.render(template, {
28
- * input: { query: 'test' },
29
- * output: {
30
- * title: 'Results',
31
- * createdAt: new Date(),
32
- * items: [{ name: 'Item 1', price: 9.99 }]
33
- * }
34
- * });
35
- * ```
36
- *
37
- * @packageDocumentation
38
- */
39
- import type { TemplateHelpers } from '../types';
40
- import { type HelperFunction } from './helpers';
41
- /**
42
- * Check if Handlebars is available.
43
- */
44
- export declare function isHandlebarsAvailable(): Promise<boolean>;
45
- /**
46
- * Options for the Handlebars renderer.
47
- */
48
- export interface HandlebarsRendererOptions {
49
- /**
50
- * Additional custom helpers to register.
51
- */
52
- helpers?: Record<string, HelperFunction>;
53
- /**
54
- * Partial templates to register.
55
- */
56
- partials?: Record<string, string>;
57
- /**
58
- * Strict mode - error on missing variables.
59
- * @default false
60
- */
61
- strict?: boolean;
62
- /**
63
- * Whether to auto-escape output.
64
- * @default true
65
- */
66
- autoEscape?: boolean;
67
- }
68
- /**
69
- * Render context for templates.
70
- */
71
- export interface RenderContext {
72
- /**
73
- * Tool input arguments.
74
- */
75
- input: Record<string, unknown>;
76
- /**
77
- * Tool output/result.
78
- */
79
- output: unknown;
80
- /**
81
- * Structured content (if schema provided).
82
- */
83
- structuredContent?: unknown;
84
- /**
85
- * Template helper functions.
86
- */
87
- helpers?: TemplateHelpers;
88
- }
89
- /**
90
- * Handlebars template renderer.
91
- *
92
- * Provides safe, cacheable Handlebars rendering with built-in helpers
93
- * for formatting, escaping, and logic.
94
- *
95
- * @example
96
- * ```typescript
97
- * const renderer = new HandlebarsRenderer();
98
- *
99
- * // Simple render
100
- * const html = await renderer.render('<div>{{output.name}}</div>', { output: { name: 'Test' } });
101
- *
102
- * // With custom helpers
103
- * renderer.registerHelper('shout', (str) => String(str).toUpperCase() + '!');
104
- * const html2 = await renderer.render('<div>{{shout output.name}}</div>', { output: { name: 'hello' } });
105
- * ```
106
- */
107
- export declare class HandlebarsRenderer {
108
- private readonly options;
109
- private compiledTemplates;
110
- private initialized;
111
- private hbs;
112
- constructor(options?: HandlebarsRendererOptions);
113
- /**
114
- * Initialize the renderer with Handlebars.
115
- */
116
- private init;
117
- /**
118
- * Render a Handlebars template.
119
- *
120
- * @param template - Template string
121
- * @param context - Render context with input/output
122
- * @returns Rendered HTML string
123
- */
124
- render(template: string, context: RenderContext): Promise<string>;
125
- /**
126
- * Render a template synchronously.
127
- *
128
- * Note: Requires Handlebars to be pre-loaded. Use `render()` for async loading.
129
- *
130
- * @param template - Template string
131
- * @param context - Render context
132
- * @returns Rendered HTML string
133
- */
134
- renderSync(template: string, context: RenderContext): string;
135
- /**
136
- * Initialize synchronously (for environments where Handlebars is already loaded).
137
- */
138
- initSync(handlebars: typeof import('handlebars')): void;
139
- /**
140
- * Register a custom helper.
141
- *
142
- * @param name - Helper name
143
- * @param fn - Helper function
144
- */
145
- registerHelper(name: string, fn: HelperFunction): void;
146
- /**
147
- * Register a partial template.
148
- *
149
- * @param name - Partial name
150
- * @param template - Partial template string
151
- */
152
- registerPartial(name: string, template: string): void;
153
- /**
154
- * Clear compiled template cache.
155
- */
156
- clearCache(): void;
157
- /**
158
- * Check if a template string contains Handlebars syntax.
159
- *
160
- * @param template - Template string to check
161
- * @returns true if contains {{...}} syntax
162
- */
163
- static containsHandlebars(template: string): boolean;
164
- /**
165
- * Check if the renderer is initialized.
166
- */
167
- get isInitialized(): boolean;
168
- }
169
- /**
170
- * Create a new Handlebars renderer.
171
- *
172
- * @param options - Renderer options
173
- * @returns New HandlebarsRenderer instance
174
- */
175
- export declare function createHandlebarsRenderer(options?: HandlebarsRendererOptions): HandlebarsRenderer;
176
- /**
177
- * Render a template with default settings.
178
- *
179
- * Convenience function for one-off rendering.
180
- *
181
- * @param template - Template string
182
- * @param context - Render context
183
- * @returns Rendered HTML
184
- */
185
- export declare function renderTemplate(template: string, context: RenderContext): Promise<string>;
186
- /**
187
- * Check if a template contains Handlebars syntax.
188
- *
189
- * @param template - Template string
190
- * @returns true if contains {{...}}
191
- */
192
- export declare function containsHandlebars(template: string): boolean;
193
- export { builtinHelpers, escapeHtml, formatDate, formatCurrency, formatNumber, json, jsonEmbed, eq, ne, gt, gte, lt, lte, and, or, not, first, last, length, includes, join, uppercase, lowercase, capitalize, truncate, defaultValue, uniqueId, classNames, resetUniqueIdCounter, type HelperFunction, } from './helpers';
@@ -1,350 +0,0 @@
1
- "use strict";
2
- /**
3
- * Handlebars Renderer Module
4
- *
5
- * Provides Handlebars template rendering for HTML templates.
6
- * Enhances plain HTML with {{variable}} syntax support.
7
- *
8
- * @example
9
- * ```typescript
10
- * import { HandlebarsRenderer, createHandlebarsRenderer } from '@frontmcp/ui/handlebars';
11
- *
12
- * const renderer = createHandlebarsRenderer();
13
- *
14
- * const template = `
15
- * <div class="card">
16
- * <h2>{{escapeHtml output.title}}</h2>
17
- * <p>Created: {{formatDate output.createdAt}}</p>
18
- * {{#if output.items.length}}
19
- * <ul>
20
- * {{#each output.items}}
21
- * <li>{{this.name}} - {{formatCurrency this.price}}</li>
22
- * {{/each}}
23
- * </ul>
24
- * {{/if}}
25
- * </div>
26
- * `;
27
- *
28
- * const html = renderer.render(template, {
29
- * input: { query: 'test' },
30
- * output: {
31
- * title: 'Results',
32
- * createdAt: new Date(),
33
- * items: [{ name: 'Item 1', price: 9.99 }]
34
- * }
35
- * });
36
- * ```
37
- *
38
- * @packageDocumentation
39
- */
40
- Object.defineProperty(exports, "__esModule", { value: true });
41
- exports.resetUniqueIdCounter = exports.classNames = exports.uniqueId = exports.defaultValue = exports.truncate = exports.capitalize = exports.lowercase = exports.uppercase = exports.join = exports.includes = exports.length = exports.last = exports.first = exports.not = exports.or = exports.and = exports.lte = exports.lt = exports.gte = exports.gt = exports.ne = exports.eq = exports.jsonEmbed = exports.json = exports.formatNumber = exports.formatCurrency = exports.formatDate = exports.escapeHtml = exports.builtinHelpers = exports.HandlebarsRenderer = void 0;
42
- exports.isHandlebarsAvailable = isHandlebarsAvailable;
43
- exports.createHandlebarsRenderer = createHandlebarsRenderer;
44
- exports.renderTemplate = renderTemplate;
45
- exports.containsHandlebars = containsHandlebars;
46
- const helpers_1 = require("./helpers");
47
- /**
48
- * Lazy-loaded Handlebars module.
49
- */
50
- let Handlebars = null;
51
- /**
52
- * Load Handlebars module.
53
- */
54
- async function loadHandlebars() {
55
- if (Handlebars !== null) {
56
- return Handlebars;
57
- }
58
- try {
59
- Handlebars = await import('handlebars');
60
- return Handlebars;
61
- }
62
- catch {
63
- throw new Error('Handlebars is required for template rendering. Install it: npm install handlebars');
64
- }
65
- }
66
- /**
67
- * Check if Handlebars is available.
68
- */
69
- async function isHandlebarsAvailable() {
70
- try {
71
- await loadHandlebars();
72
- return true;
73
- }
74
- catch {
75
- return false;
76
- }
77
- }
78
- /**
79
- * Handlebars template renderer.
80
- *
81
- * Provides safe, cacheable Handlebars rendering with built-in helpers
82
- * for formatting, escaping, and logic.
83
- *
84
- * @example
85
- * ```typescript
86
- * const renderer = new HandlebarsRenderer();
87
- *
88
- * // Simple render
89
- * const html = await renderer.render('<div>{{output.name}}</div>', { output: { name: 'Test' } });
90
- *
91
- * // With custom helpers
92
- * renderer.registerHelper('shout', (str) => String(str).toUpperCase() + '!');
93
- * const html2 = await renderer.render('<div>{{shout output.name}}</div>', { output: { name: 'hello' } });
94
- * ```
95
- */
96
- class HandlebarsRenderer {
97
- options;
98
- compiledTemplates = new Map();
99
- initialized = false;
100
- hbs = null;
101
- constructor(options = {}) {
102
- this.options = {
103
- strict: false,
104
- autoEscape: true,
105
- ...options,
106
- };
107
- }
108
- /**
109
- * Initialize the renderer with Handlebars.
110
- */
111
- async init() {
112
- if (this.initialized)
113
- return;
114
- this.hbs = await loadHandlebars();
115
- // Register built-in helpers
116
- for (const [name, helper] of Object.entries(helpers_1.builtinHelpers)) {
117
- this.hbs.registerHelper(name, helper);
118
- }
119
- // Register custom helpers
120
- if (this.options.helpers) {
121
- for (const [name, helper] of Object.entries(this.options.helpers)) {
122
- this.hbs.registerHelper(name, helper);
123
- }
124
- }
125
- // Register partials
126
- if (this.options.partials) {
127
- for (const [name, template] of Object.entries(this.options.partials)) {
128
- this.hbs.registerPartial(name, template);
129
- }
130
- }
131
- this.initialized = true;
132
- }
133
- /**
134
- * Render a Handlebars template.
135
- *
136
- * @param template - Template string
137
- * @param context - Render context with input/output
138
- * @returns Rendered HTML string
139
- */
140
- async render(template, context) {
141
- await this.init();
142
- if (!this.hbs) {
143
- throw new Error('Handlebars not initialized');
144
- }
145
- // Get or compile template
146
- let compiled = this.compiledTemplates.get(template);
147
- if (!compiled) {
148
- compiled = this.hbs.compile(template, {
149
- strict: this.options.strict,
150
- noEscape: !this.options.autoEscape,
151
- });
152
- this.compiledTemplates.set(template, compiled);
153
- }
154
- // Build template data
155
- const data = {
156
- input: context.input ?? {},
157
- output: context.output ?? {},
158
- structuredContent: context.structuredContent,
159
- // Also expose at root level for convenience
160
- ...context.input,
161
- ...(typeof context.output === 'object' && context.output !== null
162
- ? context.output
163
- : {}),
164
- };
165
- // Render template
166
- try {
167
- return compiled(data);
168
- }
169
- catch (error) {
170
- throw new Error(`Template rendering failed: ${error instanceof Error ? error.message : String(error)}`);
171
- }
172
- }
173
- /**
174
- * Render a template synchronously.
175
- *
176
- * Note: Requires Handlebars to be pre-loaded. Use `render()` for async loading.
177
- *
178
- * @param template - Template string
179
- * @param context - Render context
180
- * @returns Rendered HTML string
181
- */
182
- renderSync(template, context) {
183
- if (!this.initialized || !this.hbs) {
184
- throw new Error('HandlebarsRenderer not initialized. Call render() first or use initSync().');
185
- }
186
- // Get or compile template
187
- let compiled = this.compiledTemplates.get(template);
188
- if (!compiled) {
189
- compiled = this.hbs.compile(template, {
190
- strict: this.options.strict,
191
- noEscape: !this.options.autoEscape,
192
- });
193
- this.compiledTemplates.set(template, compiled);
194
- }
195
- // Build template data
196
- const data = {
197
- input: context.input ?? {},
198
- output: context.output ?? {},
199
- structuredContent: context.structuredContent,
200
- ...context.input,
201
- ...(typeof context.output === 'object' && context.output !== null
202
- ? context.output
203
- : {}),
204
- };
205
- return compiled(data);
206
- }
207
- /**
208
- * Initialize synchronously (for environments where Handlebars is already loaded).
209
- */
210
- initSync(handlebars) {
211
- this.hbs = handlebars;
212
- // Register built-in helpers
213
- for (const [name, helper] of Object.entries(helpers_1.builtinHelpers)) {
214
- this.hbs.registerHelper(name, helper);
215
- }
216
- // Register custom helpers
217
- if (this.options.helpers) {
218
- for (const [name, helper] of Object.entries(this.options.helpers)) {
219
- this.hbs.registerHelper(name, helper);
220
- }
221
- }
222
- // Register partials
223
- if (this.options.partials) {
224
- for (const [name, template] of Object.entries(this.options.partials)) {
225
- this.hbs.registerPartial(name, template);
226
- }
227
- }
228
- this.initialized = true;
229
- }
230
- /**
231
- * Register a custom helper.
232
- *
233
- * @param name - Helper name
234
- * @param fn - Helper function
235
- */
236
- registerHelper(name, fn) {
237
- if (this.hbs) {
238
- this.hbs.registerHelper(name, fn);
239
- }
240
- // Also store for future use
241
- if (!this.options.helpers) {
242
- this.options.helpers = {};
243
- }
244
- this.options.helpers[name] = fn;
245
- }
246
- /**
247
- * Register a partial template.
248
- *
249
- * @param name - Partial name
250
- * @param template - Partial template string
251
- */
252
- registerPartial(name, template) {
253
- if (this.hbs) {
254
- this.hbs.registerPartial(name, template);
255
- }
256
- // Also store for future use
257
- if (!this.options.partials) {
258
- this.options.partials = {};
259
- }
260
- this.options.partials[name] = template;
261
- }
262
- /**
263
- * Clear compiled template cache.
264
- */
265
- clearCache() {
266
- this.compiledTemplates.clear();
267
- }
268
- /**
269
- * Check if a template string contains Handlebars syntax.
270
- *
271
- * @param template - Template string to check
272
- * @returns true if contains {{...}} syntax
273
- */
274
- static containsHandlebars(template) {
275
- // Match {{...}} but not {{! comments }}
276
- return /\{\{(?!!)[\s\S]*?\}\}/.test(template);
277
- }
278
- /**
279
- * Check if the renderer is initialized.
280
- */
281
- get isInitialized() {
282
- return this.initialized;
283
- }
284
- }
285
- exports.HandlebarsRenderer = HandlebarsRenderer;
286
- /**
287
- * Create a new Handlebars renderer.
288
- *
289
- * @param options - Renderer options
290
- * @returns New HandlebarsRenderer instance
291
- */
292
- function createHandlebarsRenderer(options) {
293
- return new HandlebarsRenderer(options);
294
- }
295
- /**
296
- * Render a template with default settings.
297
- *
298
- * Convenience function for one-off rendering.
299
- *
300
- * @param template - Template string
301
- * @param context - Render context
302
- * @returns Rendered HTML
303
- */
304
- async function renderTemplate(template, context) {
305
- const renderer = createHandlebarsRenderer();
306
- return renderer.render(template, context);
307
- }
308
- /**
309
- * Check if a template contains Handlebars syntax.
310
- *
311
- * @param template - Template string
312
- * @returns true if contains {{...}}
313
- */
314
- function containsHandlebars(template) {
315
- return HandlebarsRenderer.containsHandlebars(template);
316
- }
317
- // ============================================
318
- // Re-exports
319
- // ============================================
320
- var helpers_2 = require("./helpers");
321
- Object.defineProperty(exports, "builtinHelpers", { enumerable: true, get: function () { return helpers_2.builtinHelpers; } });
322
- Object.defineProperty(exports, "escapeHtml", { enumerable: true, get: function () { return helpers_2.escapeHtml; } });
323
- Object.defineProperty(exports, "formatDate", { enumerable: true, get: function () { return helpers_2.formatDate; } });
324
- Object.defineProperty(exports, "formatCurrency", { enumerable: true, get: function () { return helpers_2.formatCurrency; } });
325
- Object.defineProperty(exports, "formatNumber", { enumerable: true, get: function () { return helpers_2.formatNumber; } });
326
- Object.defineProperty(exports, "json", { enumerable: true, get: function () { return helpers_2.json; } });
327
- Object.defineProperty(exports, "jsonEmbed", { enumerable: true, get: function () { return helpers_2.jsonEmbed; } });
328
- Object.defineProperty(exports, "eq", { enumerable: true, get: function () { return helpers_2.eq; } });
329
- Object.defineProperty(exports, "ne", { enumerable: true, get: function () { return helpers_2.ne; } });
330
- Object.defineProperty(exports, "gt", { enumerable: true, get: function () { return helpers_2.gt; } });
331
- Object.defineProperty(exports, "gte", { enumerable: true, get: function () { return helpers_2.gte; } });
332
- Object.defineProperty(exports, "lt", { enumerable: true, get: function () { return helpers_2.lt; } });
333
- Object.defineProperty(exports, "lte", { enumerable: true, get: function () { return helpers_2.lte; } });
334
- Object.defineProperty(exports, "and", { enumerable: true, get: function () { return helpers_2.and; } });
335
- Object.defineProperty(exports, "or", { enumerable: true, get: function () { return helpers_2.or; } });
336
- Object.defineProperty(exports, "not", { enumerable: true, get: function () { return helpers_2.not; } });
337
- Object.defineProperty(exports, "first", { enumerable: true, get: function () { return helpers_2.first; } });
338
- Object.defineProperty(exports, "last", { enumerable: true, get: function () { return helpers_2.last; } });
339
- Object.defineProperty(exports, "length", { enumerable: true, get: function () { return helpers_2.length; } });
340
- Object.defineProperty(exports, "includes", { enumerable: true, get: function () { return helpers_2.includes; } });
341
- Object.defineProperty(exports, "join", { enumerable: true, get: function () { return helpers_2.join; } });
342
- Object.defineProperty(exports, "uppercase", { enumerable: true, get: function () { return helpers_2.uppercase; } });
343
- Object.defineProperty(exports, "lowercase", { enumerable: true, get: function () { return helpers_2.lowercase; } });
344
- Object.defineProperty(exports, "capitalize", { enumerable: true, get: function () { return helpers_2.capitalize; } });
345
- Object.defineProperty(exports, "truncate", { enumerable: true, get: function () { return helpers_2.truncate; } });
346
- Object.defineProperty(exports, "defaultValue", { enumerable: true, get: function () { return helpers_2.defaultValue; } });
347
- Object.defineProperty(exports, "uniqueId", { enumerable: true, get: function () { return helpers_2.uniqueId; } });
348
- Object.defineProperty(exports, "classNames", { enumerable: true, get: function () { return helpers_2.classNames; } });
349
- Object.defineProperty(exports, "resetUniqueIdCounter", { enumerable: true, get: function () { return helpers_2.resetUniqueIdCounter; } });
350
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/handlebars/index.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Handlebars Renderer Module\n *\n * Provides Handlebars template rendering for HTML templates.\n * Enhances plain HTML with {{variable}} syntax support.\n *\n * @example\n * ```typescript\n * import { HandlebarsRenderer, createHandlebarsRenderer } from '@frontmcp/ui/handlebars';\n *\n * const renderer = createHandlebarsRenderer();\n *\n * const template = `\n * <div class=\"card\">\n * <h2>{{escapeHtml output.title}}</h2>\n * <p>Created: {{formatDate output.createdAt}}</p>\n * {{#if output.items.length}}\n * <ul>\n * {{#each output.items}}\n * <li>{{this.name}} - {{formatCurrency this.price}}</li>\n * {{/each}}\n * </ul>\n * {{/if}}\n * </div>\n * `;\n *\n * const html = renderer.render(template, {\n * input: { query: 'test' },\n * output: {\n * title: 'Results',\n * createdAt: new Date(),\n * items: [{ name: 'Item 1', price: 9.99 }]\n * }\n * });\n * ```\n *\n * @packageDocumentation\n */\n\nimport type { TemplateContext, TemplateHelpers } from '../types';\nimport { builtinHelpers, type HelperFunction } from './helpers';\n\n/**\n * Lazy-loaded Handlebars module.\n */\nlet Handlebars: typeof import('handlebars') | null = null;\n\n/**\n * Load Handlebars module.\n */\nasync function loadHandlebars(): Promise<typeof import('handlebars')> {\n if (Handlebars !== null) {\n return Handlebars;\n }\n\n try {\n Handlebars = await import('handlebars');\n return Handlebars;\n } catch {\n throw new Error('Handlebars is required for template rendering. Install it: npm install handlebars');\n }\n}\n\n/**\n * Check if Handlebars is available.\n */\nexport async function isHandlebarsAvailable(): Promise<boolean> {\n try {\n await loadHandlebars();\n return true;\n } catch {\n return false;\n }\n}\n\n/**\n * Options for the Handlebars renderer.\n */\nexport interface HandlebarsRendererOptions {\n /**\n * Additional custom helpers to register.\n */\n helpers?: Record<string, HelperFunction>;\n\n /**\n * Partial templates to register.\n */\n partials?: Record<string, string>;\n\n /**\n * Strict mode - error on missing variables.\n * @default false\n */\n strict?: boolean;\n\n /**\n * Whether to auto-escape output.\n * @default true\n */\n autoEscape?: boolean;\n}\n\n/**\n * Render context for templates.\n */\nexport interface RenderContext {\n /**\n * Tool input arguments.\n */\n input: Record<string, unknown>;\n\n /**\n * Tool output/result.\n */\n output: unknown;\n\n /**\n * Structured content (if schema provided).\n */\n structuredContent?: unknown;\n\n /**\n * Template helper functions.\n */\n helpers?: TemplateHelpers;\n}\n\n/**\n * Handlebars template renderer.\n *\n * Provides safe, cacheable Handlebars rendering with built-in helpers\n * for formatting, escaping, and logic.\n *\n * @example\n * ```typescript\n * const renderer = new HandlebarsRenderer();\n *\n * // Simple render\n * const html = await renderer.render('<div>{{output.name}}</div>', { output: { name: 'Test' } });\n *\n * // With custom helpers\n * renderer.registerHelper('shout', (str) => String(str).toUpperCase() + '!');\n * const html2 = await renderer.render('<div>{{shout output.name}}</div>', { output: { name: 'hello' } });\n * ```\n */\nexport class HandlebarsRenderer {\n private readonly options: HandlebarsRendererOptions;\n private compiledTemplates = new Map<string, HandlebarsTemplateDelegate>();\n private initialized = false;\n private hbs: typeof import('handlebars') | null = null;\n\n constructor(options: HandlebarsRendererOptions = {}) {\n this.options = {\n strict: false,\n autoEscape: true,\n ...options,\n };\n }\n\n /**\n * Initialize the renderer with Handlebars.\n */\n private async init(): Promise<void> {\n if (this.initialized) return;\n\n this.hbs = await loadHandlebars();\n\n // Register built-in helpers\n for (const [name, helper] of Object.entries(builtinHelpers)) {\n this.hbs.registerHelper(name, helper as Handlebars.HelperDelegate);\n }\n\n // Register custom helpers\n if (this.options.helpers) {\n for (const [name, helper] of Object.entries(this.options.helpers)) {\n this.hbs.registerHelper(name, helper as Handlebars.HelperDelegate);\n }\n }\n\n // Register partials\n if (this.options.partials) {\n for (const [name, template] of Object.entries(this.options.partials)) {\n this.hbs.registerPartial(name, template);\n }\n }\n\n this.initialized = true;\n }\n\n /**\n * Render a Handlebars template.\n *\n * @param template - Template string\n * @param context - Render context with input/output\n * @returns Rendered HTML string\n */\n async render(template: string, context: RenderContext): Promise<string> {\n await this.init();\n\n if (!this.hbs) {\n throw new Error('Handlebars not initialized');\n }\n\n // Get or compile template\n let compiled = this.compiledTemplates.get(template);\n if (!compiled) {\n compiled = this.hbs.compile(template, {\n strict: this.options.strict,\n noEscape: !this.options.autoEscape,\n });\n this.compiledTemplates.set(template, compiled);\n }\n\n // Build template data\n const data = {\n input: context.input ?? {},\n output: context.output ?? {},\n structuredContent: context.structuredContent,\n // Also expose at root level for convenience\n ...context.input,\n ...(typeof context.output === 'object' && context.output !== null\n ? (context.output as Record<string, unknown>)\n : {}),\n };\n\n // Render template\n try {\n return compiled(data);\n } catch (error) {\n throw new Error(`Template rendering failed: ${error instanceof Error ? error.message : String(error)}`);\n }\n }\n\n /**\n * Render a template synchronously.\n *\n * Note: Requires Handlebars to be pre-loaded. Use `render()` for async loading.\n *\n * @param template - Template string\n * @param context - Render context\n * @returns Rendered HTML string\n */\n renderSync(template: string, context: RenderContext): string {\n if (!this.initialized || !this.hbs) {\n throw new Error('HandlebarsRenderer not initialized. Call render() first or use initSync().');\n }\n\n // Get or compile template\n let compiled = this.compiledTemplates.get(template);\n if (!compiled) {\n compiled = this.hbs.compile(template, {\n strict: this.options.strict,\n noEscape: !this.options.autoEscape,\n });\n this.compiledTemplates.set(template, compiled);\n }\n\n // Build template data\n const data = {\n input: context.input ?? {},\n output: context.output ?? {},\n structuredContent: context.structuredContent,\n ...context.input,\n ...(typeof context.output === 'object' && context.output !== null\n ? (context.output as Record<string, unknown>)\n : {}),\n };\n\n return compiled(data);\n }\n\n /**\n * Initialize synchronously (for environments where Handlebars is already loaded).\n */\n initSync(handlebars: typeof import('handlebars')): void {\n this.hbs = handlebars;\n\n // Register built-in helpers\n for (const [name, helper] of Object.entries(builtinHelpers)) {\n this.hbs.registerHelper(name, helper as Handlebars.HelperDelegate);\n }\n\n // Register custom helpers\n if (this.options.helpers) {\n for (const [name, helper] of Object.entries(this.options.helpers)) {\n this.hbs.registerHelper(name, helper as Handlebars.HelperDelegate);\n }\n }\n\n // Register partials\n if (this.options.partials) {\n for (const [name, template] of Object.entries(this.options.partials)) {\n this.hbs.registerPartial(name, template);\n }\n }\n\n this.initialized = true;\n }\n\n /**\n * Register a custom helper.\n *\n * @param name - Helper name\n * @param fn - Helper function\n */\n registerHelper(name: string, fn: HelperFunction): void {\n if (this.hbs) {\n this.hbs.registerHelper(name, fn as Handlebars.HelperDelegate);\n }\n // Also store for future use\n if (!this.options.helpers) {\n this.options.helpers = {};\n }\n this.options.helpers[name] = fn;\n }\n\n /**\n * Register a partial template.\n *\n * @param name - Partial name\n * @param template - Partial template string\n */\n registerPartial(name: string, template: string): void {\n if (this.hbs) {\n this.hbs.registerPartial(name, template);\n }\n // Also store for future use\n if (!this.options.partials) {\n this.options.partials = {};\n }\n this.options.partials[name] = template;\n }\n\n /**\n * Clear compiled template cache.\n */\n clearCache(): void {\n this.compiledTemplates.clear();\n }\n\n /**\n * Check if a template string contains Handlebars syntax.\n *\n * @param template - Template string to check\n * @returns true if contains {{...}} syntax\n */\n static containsHandlebars(template: string): boolean {\n // Match {{...}} but not {{! comments }}\n return /\\{\\{(?!!)[\\s\\S]*?\\}\\}/.test(template);\n }\n\n /**\n * Check if the renderer is initialized.\n */\n get isInitialized(): boolean {\n return this.initialized;\n }\n}\n\n/**\n * Create a new Handlebars renderer.\n *\n * @param options - Renderer options\n * @returns New HandlebarsRenderer instance\n */\nexport function createHandlebarsRenderer(options?: HandlebarsRendererOptions): HandlebarsRenderer {\n return new HandlebarsRenderer(options);\n}\n\n/**\n * Render a template with default settings.\n *\n * Convenience function for one-off rendering.\n *\n * @param template - Template string\n * @param context - Render context\n * @returns Rendered HTML\n */\nexport async function renderTemplate(template: string, context: RenderContext): Promise<string> {\n const renderer = createHandlebarsRenderer();\n return renderer.render(template, context);\n}\n\n/**\n * Check if a template contains Handlebars syntax.\n *\n * @param template - Template string\n * @returns true if contains {{...}}\n */\nexport function containsHandlebars(template: string): boolean {\n return HandlebarsRenderer.containsHandlebars(template);\n}\n\n// ============================================\n// Re-exports\n// ============================================\n\nexport {\n builtinHelpers,\n escapeHtml,\n formatDate,\n formatCurrency,\n formatNumber,\n json,\n jsonEmbed,\n eq,\n ne,\n gt,\n gte,\n lt,\n lte,\n and,\n or,\n not,\n first,\n last,\n length,\n includes,\n join,\n uppercase,\n lowercase,\n capitalize,\n truncate,\n defaultValue,\n uniqueId,\n classNames,\n resetUniqueIdCounter,\n type HelperFunction,\n} from './helpers';\n\n// Handlebars types\ntype HandlebarsTemplateDelegate = ReturnType<typeof import('handlebars')['compile']>;\n"]}
package/src/index.d.ts DELETED
@@ -1,50 +0,0 @@
1
- /**
2
- * @frontmcp/ui
3
- *
4
- * Comprehensive UI library for FrontMCP applications.
5
- * Provides theme system, layouts, components, page templates, and widgets
6
- * for building authentication and authorization UIs across multiple LLM platforms.
7
- *
8
- * Key features:
9
- * - Multi-framework renderer support (HTML, React, MDX)
10
- * - Platform-aware theming (OpenAI, Claude, etc.)
11
- * - Runtime JSX/TSX transpilation with SWC
12
- * - MCP Bridge integration for cross-platform widgets
13
- * - Standalone types and adapters for external consumers (AgentLink)
14
- * - Build-time API for pre-compiling UI templates
15
- *
16
- * ## Standalone Usage (without @frontmcp/sdk)
17
- *
18
- * For external systems like AgentLink that want to use the UI components
19
- * without the full SDK:
20
- *
21
- * ```typescript
22
- * // Import standalone types
23
- * import type { UITemplateConfig, TemplateContext } from '@frontmcp/ui/types';
24
- *
25
- * // Import platform adapters
26
- * import { buildUIMeta } from '@frontmcp/ui/adapters';
27
- *
28
- * // Import build-time API
29
- * import { buildToolUI } from '@frontmcp/ui/build';
30
- *
31
- * // Import components directly
32
- * import { card, button, table } from '@frontmcp/ui/components';
33
- * ```
34
- */
35
- export * from './types';
36
- export { type AIPlatformType, type UIMetadata, type BuildUIMetaOptions, type BuildToolDiscoveryMetaOptions, buildUIMeta, buildToolDiscoveryMeta, buildOpenAICSP, } from './adapters';
37
- export { type BuildTargetPlatform, type BuildOptions, type BuildResult, type MultiBuildOptions, type MultiBuildResult, type StaticWidgetOptions, buildToolUI, buildToolUIMulti, buildStaticWidget, } from './build';
38
- export * from './validation';
39
- export * from './theme';
40
- export * from './layouts';
41
- export * from './components';
42
- export * from './pages';
43
- export * from './widgets';
44
- export { type ProviderType, type DisplayMode, type ThemeMode, type HostContext, type MCPBridge, type MCPBridgeExtended, type WrapToolUIOptions, type OpenAIRuntime, type OpenAIUserAgent, type SafeAreaInsets, MCP_BRIDGE_RUNTIME, getMCPBridgeScript, isMCPBridgeSupported, DEFAULT_CSP_DIRECTIVES, buildCSPDirectives, buildCSPMetaTag, validateCSPDomain, sanitizeCSPDomains, type WrapToolUIFullOptions, wrapToolUI, wrapToolUIMinimal, createTemplateHelpers, getToolUIMimeType, type SanitizerFn, type SanitizeOptions, REDACTION_TOKENS, PII_PATTERNS, sanitizeInput, createSanitizer, detectPII, isEmail, isPhone, isCreditCard, isSSN, isIPv4, detectPIIType, redactPIIFromText, } from './runtime';
45
- export * from './tool-template';
46
- export * from './base-template';
47
- export * from './renderers';
48
- export { type PlatformAdapter, type AdapterCapabilities, type BridgeConfig, FrontMcpBridge, createBridge, AdapterRegistry, defaultRegistry, registerAdapter, generateBridgeIIFE, generatePlatformBundle, UNIVERSAL_BRIDGE_SCRIPT, BRIDGE_SCRIPT_TAGS, } from './bridge';
49
- export { registerAllComponents, registerFmcpButton, registerFmcpCard, registerFmcpAlert, registerFmcpBadge, registerFmcpInput, registerFmcpSelect, FmcpButton, FmcpCard, FmcpAlert, FmcpBadge, FmcpInput, FmcpSelect, FmcpElement, } from './web-components';
50
- export { ToolUIRegistry, type RenderOptions, type UIRenderResult, type CompileStaticWidgetOptions, type HybridComponentPayload, type BuildHybridComponentPayloadOptions, renderToolTemplate, renderToolTemplateAsync, isReactComponent, hasUIConfig, containsMdxSyntax, type RenderTemplateOptions, UI_RESOURCE_SCHEME, isUIResourceUri, isStaticWidgetUri, parseWidgetUri, buildStaticWidgetUri, getUIResourceMimeType, type ParsedWidgetUri, } from './registry';