@frontmcp/ui 0.5.1 → 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 +26 -85
  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,332 +0,0 @@
1
- "use strict";
2
- /**
3
- * @file theme.ts
4
- * @description Theme Configuration System for FrontMCP UI.
5
- *
6
- * Provides a comprehensive theming system with:
7
- * - Color palettes with semantic naming
8
- * - Typography configuration
9
- * - Spacing and sizing
10
- * - Component-specific tokens
11
- * - Customizable CDN URLs for fonts, icons, and scripts
12
- * - Dark mode support
13
- * - Tailwind CSS v4 @theme integration
14
- *
15
- * @example
16
- * ```typescript
17
- * import { createTheme, DEFAULT_THEME } from '@frontmcp/ui';
18
- *
19
- * // Use the default GitHub/OpenAI theme
20
- * const theme = DEFAULT_THEME;
21
- *
22
- * // Or create a custom theme
23
- * const customTheme = createTheme({
24
- * colors: {
25
- * semantic: { primary: '#0969da' },
26
- * },
27
- * cdn: {
28
- * fonts: {
29
- * preconnect: ['https://fonts.googleapis.com'],
30
- * stylesheets: ['https://fonts.googleapis.com/css2?family=Roboto&display=swap'],
31
- * },
32
- * },
33
- * });
34
- * ```
35
- *
36
- * @module @frontmcp/ui/theme
37
- */
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.DEFAULT_THEME = exports.GITHUB_OPENAI_THEME = void 0;
40
- exports.mergeThemes = mergeThemes;
41
- exports.createTheme = createTheme;
42
- exports.buildThemeCss = buildThemeCss;
43
- exports.buildStyleBlock = buildStyleBlock;
44
- // Import default theme from presets (must be at top, used in createTheme)
45
- const presets_1 = require("./presets");
46
- // ============================================
47
- // Default Theme (GitHub/OpenAI Style)
48
- // ============================================
49
- /**
50
- * Default FrontMCP theme - GitHub/OpenAI inspired gray-black aesthetic
51
- *
52
- * Re-exported from presets for convenience. The default theme features:
53
- * - Monochromatic gray-black color palette
54
- * - System UI font stack
55
- * - Smaller border radii (GitHub style)
56
- * - Subtle shadows with gray tones
57
- *
58
- * @see ./presets/github-openai.ts for full theme definition
59
- */
60
- exports.GITHUB_OPENAI_THEME = presets_1.GITHUB_OPENAI_THEME;
61
- exports.DEFAULT_THEME = presets_1.DEFAULT_THEME;
62
- // ============================================
63
- // Theme Builder Utilities
64
- // ============================================
65
- /**
66
- * Deep merge two theme configurations (internal helper without dark handling)
67
- * Accepts DeepPartial<ThemeConfig> for both base and override to safely handle partial nested properties
68
- * Note: This function assumes at least one of base/override provides required values (typically DEFAULT_THEME)
69
- */
70
- function mergeThemesCore(base, override) {
71
- // Provide safe defaults for required nested properties
72
- const baseColors = base.colors ?? { semantic: { primary: '#24292f' } };
73
- // Filter out undefined values from arrays
74
- const filterStrings = (arr) => arr.filter((s) => s !== undefined);
75
- return {
76
- ...base,
77
- ...override,
78
- colors: {
79
- ...baseColors,
80
- ...override.colors,
81
- semantic: { ...baseColors.semantic, ...override.colors?.semantic },
82
- surface: { ...baseColors.surface, ...override.colors?.surface },
83
- text: { ...baseColors.text, ...override.colors?.text },
84
- border: { ...baseColors.border, ...override.colors?.border },
85
- custom: { ...baseColors.custom, ...override.colors?.custom },
86
- },
87
- typography: {
88
- ...base.typography,
89
- ...override.typography,
90
- families: { ...base.typography?.families, ...override.typography?.families },
91
- sizes: { ...base.typography?.sizes, ...override.typography?.sizes },
92
- weights: { ...base.typography?.weights, ...override.typography?.weights },
93
- lineHeight: { ...base.typography?.lineHeight, ...override.typography?.lineHeight },
94
- },
95
- spacing: { ...base.spacing, ...override.spacing },
96
- radius: { ...base.radius, ...override.radius },
97
- shadows: { ...base.shadows, ...override.shadows },
98
- components: {
99
- ...base.components,
100
- ...override.components,
101
- button: { ...base.components?.button, ...override.components?.button },
102
- card: { ...base.components?.card, ...override.components?.card },
103
- input: { ...base.components?.input, ...override.components?.input },
104
- },
105
- cdn: {
106
- ...base.cdn,
107
- ...override.cdn,
108
- fonts: {
109
- // Concatenate then dedupe so base entries are preserved without duplicates
110
- preconnect: filterStrings(Array.from(new Set([...(base.cdn?.fonts?.preconnect ?? []), ...(override.cdn?.fonts?.preconnect ?? [])]))),
111
- stylesheets: filterStrings(Array.from(new Set([...(base.cdn?.fonts?.stylesheets ?? []), ...(override.cdn?.fonts?.stylesheets ?? [])]))),
112
- },
113
- icons: {
114
- ...base.cdn?.icons,
115
- ...override.cdn?.icons,
116
- // Deep merge script to preserve integrity when only url is overridden
117
- script: (override.cdn?.icons?.script
118
- ? { ...base.cdn?.icons?.script, ...override.cdn?.icons?.script }
119
- : base.cdn?.icons?.script),
120
- },
121
- scripts: {
122
- // tailwind is a simple string, just use override or base
123
- tailwind: override.cdn?.scripts?.tailwind ?? base.cdn?.scripts?.tailwind,
124
- // Deep merge htmx/alpine to preserve integrity when only url is overridden
125
- htmx: (override.cdn?.scripts?.htmx
126
- ? { ...base.cdn?.scripts?.htmx, ...override.cdn?.scripts?.htmx }
127
- : base.cdn?.scripts?.htmx),
128
- alpine: (override.cdn?.scripts?.alpine
129
- ? { ...base.cdn?.scripts?.alpine, ...override.cdn?.scripts?.alpine }
130
- : base.cdn?.scripts?.alpine),
131
- },
132
- },
133
- customVars: { ...base.customVars, ...override.customVars },
134
- customCss: [base.customCss, override.customCss].filter(Boolean).join('\n'),
135
- };
136
- }
137
- /**
138
- * Deep merge two theme configurations
139
- *
140
- * @remarks
141
- * Dark variant handling:
142
- * - When override.dark is provided, it's merged on top of base.dark (if present) or base
143
- * - The resulting dark variant never contains a nested .dark property
144
- * - This prevents infinite recursion and ensures clean dark theme composition
145
- */
146
- function mergeThemes(base, override) {
147
- // Merge the main (light) theme properties
148
- const merged = mergeThemesCore(base, override);
149
- // Handle dark variant separately to avoid nested .dark properties
150
- let darkVariant;
151
- if (override.dark !== undefined) {
152
- // Merge override.dark on top of base.dark (or base if no base.dark)
153
- // darkBase may be partial (from base.dark) - mergeThemesCore handles this safely
154
- const darkBase = base.dark ?? base;
155
- // Strip any .dark from override.dark to prevent nesting
156
- const { dark: _nestedDark, ...overrideDarkWithoutNested } = override.dark;
157
- darkVariant = mergeThemesCore(darkBase, overrideDarkWithoutNested);
158
- }
159
- else if (base.dark !== undefined) {
160
- // Preserve base.dark, but strip any nested .dark property
161
- const { dark: _nestedDark, ...baseDarkWithoutNested } = base.dark;
162
- darkVariant = baseDarkWithoutNested;
163
- }
164
- return {
165
- ...merged,
166
- dark: darkVariant,
167
- };
168
- }
169
- /**
170
- * Create a theme by extending the default theme
171
- */
172
- function createTheme(overrides) {
173
- return mergeThemes(exports.DEFAULT_THEME, overrides);
174
- }
175
- /**
176
- * Emit color scale CSS variables
177
- */
178
- function emitColorScale(lines, name, scale) {
179
- for (const [shade, value] of Object.entries(scale)) {
180
- if (value)
181
- lines.push(`--color-${name}-${shade}: ${value};`);
182
- }
183
- }
184
- /**
185
- * Build Tailwind @theme CSS from theme configuration
186
- */
187
- function buildThemeCss(theme) {
188
- const lines = [];
189
- // Colors - semantic
190
- const semantic = theme.colors.semantic;
191
- if (typeof semantic.primary === 'string') {
192
- lines.push(`--color-primary: ${semantic.primary};`);
193
- }
194
- else if (semantic.primary) {
195
- emitColorScale(lines, 'primary', semantic.primary);
196
- }
197
- if (semantic.secondary) {
198
- if (typeof semantic.secondary === 'string') {
199
- lines.push(`--color-secondary: ${semantic.secondary};`);
200
- }
201
- else {
202
- emitColorScale(lines, 'secondary', semantic.secondary);
203
- }
204
- }
205
- if (semantic.accent) {
206
- if (typeof semantic.accent === 'string') {
207
- lines.push(`--color-accent: ${semantic.accent};`);
208
- }
209
- else {
210
- emitColorScale(lines, 'accent', semantic.accent);
211
- }
212
- }
213
- if (semantic.neutral) {
214
- if (typeof semantic.neutral === 'string') {
215
- lines.push(`--color-neutral: ${semantic.neutral};`);
216
- }
217
- else {
218
- emitColorScale(lines, 'neutral', semantic.neutral);
219
- }
220
- }
221
- if (semantic.success)
222
- lines.push(`--color-success: ${semantic.success};`);
223
- if (semantic.warning)
224
- lines.push(`--color-warning: ${semantic.warning};`);
225
- if (semantic.danger)
226
- lines.push(`--color-danger: ${semantic.danger};`);
227
- if (semantic.info)
228
- lines.push(`--color-info: ${semantic.info};`);
229
- // Colors - surface
230
- const surface = theme.colors.surface;
231
- if (surface?.background)
232
- lines.push(`--color-background: ${surface.background};`);
233
- if (surface?.surface)
234
- lines.push(`--color-surface: ${surface.surface};`);
235
- if (surface?.elevated)
236
- lines.push(`--color-elevated: ${surface.elevated};`);
237
- if (surface?.overlay)
238
- lines.push(`--color-overlay: ${surface.overlay};`);
239
- // Colors - text
240
- const text = theme.colors.text;
241
- if (text?.primary)
242
- lines.push(`--color-text-primary: ${text.primary};`);
243
- if (text?.secondary)
244
- lines.push(`--color-text-secondary: ${text.secondary};`);
245
- if (text?.disabled)
246
- lines.push(`--color-text-disabled: ${text.disabled};`);
247
- if (text?.inverse)
248
- lines.push(`--color-text-inverse: ${text.inverse};`);
249
- if (text?.link)
250
- lines.push(`--color-text-link: ${text.link};`);
251
- // Colors - border
252
- const border = theme.colors.border;
253
- if (border?.default)
254
- lines.push(`--color-border: ${border.default};`);
255
- if (border?.hover)
256
- lines.push(`--color-border-hover: ${border.hover};`);
257
- if (border?.focus)
258
- lines.push(`--color-border-focus: ${border.focus};`);
259
- if (border?.divider)
260
- lines.push(`--color-divider: ${border.divider};`);
261
- // Colors - custom
262
- if (theme.colors.custom) {
263
- for (const [key, value] of Object.entries(theme.colors.custom)) {
264
- lines.push(`--color-${key}: ${value};`);
265
- }
266
- }
267
- // Typography
268
- const typography = theme.typography;
269
- if (typography?.families?.sans)
270
- lines.push(`--font-sans: ${typography.families.sans};`);
271
- if (typography?.families?.serif)
272
- lines.push(`--font-serif: ${typography.families.serif};`);
273
- if (typography?.families?.mono)
274
- lines.push(`--font-mono: ${typography.families.mono};`);
275
- if (typography?.families?.display)
276
- lines.push(`--font-display: ${typography.families.display};`);
277
- // Radius
278
- const radius = theme.radius;
279
- if (radius?.none)
280
- lines.push(`--radius-none: ${radius.none};`);
281
- if (radius?.sm)
282
- lines.push(`--radius-sm: ${radius.sm};`);
283
- if (radius?.md)
284
- lines.push(`--radius-md: ${radius.md};`);
285
- if (radius?.lg)
286
- lines.push(`--radius-lg: ${radius.lg};`);
287
- if (radius?.xl)
288
- lines.push(`--radius-xl: ${radius.xl};`);
289
- if (radius?.['2xl'])
290
- lines.push(`--radius-2xl: ${radius['2xl']};`);
291
- if (radius?.full)
292
- lines.push(`--radius-full: ${radius.full};`);
293
- // Custom vars
294
- if (theme.customVars) {
295
- for (const [key, value] of Object.entries(theme.customVars)) {
296
- lines.push(`${key}: ${value};`);
297
- }
298
- }
299
- return lines.join('\n ');
300
- }
301
- /**
302
- * Build complete style block with @theme and custom CSS
303
- *
304
- * @remarks
305
- * **Security/Trust Model:**
306
- * The `theme.customCss` property is injected directly into a `<style>` tag without
307
- * sanitization. This is intentional - CSS customization requires full CSS syntax support.
308
- *
309
- * **Trust assumptions:**
310
- * - Theme configurations should only come from trusted sources (developer-defined themes)
311
- * - Never pass user-provided input directly to `customCss`
312
- * - If you need user-customizable styles, validate/sanitize them before including in a theme
313
- *
314
- * **Why no sanitization:**
315
- * - CSS sanitization is complex and often breaks legitimate styles
316
- * - The theme system is designed for developer use, not end-user customization
317
- * - Developers creating themes are trusted to provide safe CSS
318
- *
319
- * @param theme - Theme configuration with optional customCss
320
- * @returns HTML style block with Tailwind @theme directive
321
- */
322
- function buildStyleBlock(theme) {
323
- const themeCss = buildThemeCss(theme);
324
- const customCss = theme.customCss || '';
325
- return `<style type="text/tailwindcss">
326
- @theme {
327
- ${themeCss}
328
- }
329
- ${customCss}
330
- </style>`;
331
- }
332
- //# sourceMappingURL=theme.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../../src/theme/theme.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @file theme.ts\n * @description Theme Configuration System for FrontMCP UI.\n *\n * Provides a comprehensive theming system with:\n * - Color palettes with semantic naming\n * - Typography configuration\n * - Spacing and sizing\n * - Component-specific tokens\n * - Customizable CDN URLs for fonts, icons, and scripts\n * - Dark mode support\n * - Tailwind CSS v4 @theme integration\n *\n * @example\n * ```typescript\n * import { createTheme, DEFAULT_THEME } from '@frontmcp/ui';\n *\n * // Use the default GitHub/OpenAI theme\n * const theme = DEFAULT_THEME;\n *\n * // Or create a custom theme\n * const customTheme = createTheme({\n * colors: {\n * semantic: { primary: '#0969da' },\n * },\n * cdn: {\n * fonts: {\n * preconnect: ['https://fonts.googleapis.com'],\n * stylesheets: ['https://fonts.googleapis.com/css2?family=Roboto&display=swap'],\n * },\n * },\n * });\n * ```\n *\n * @module @frontmcp/ui/theme\n */\n\n// Import default theme from presets (must be at top, used in createTheme)\nimport { DEFAULT_THEME as _DEFAULT_THEME, GITHUB_OPENAI_THEME as _GITHUB_OPENAI_THEME } from './presets';\n\n// ============================================\n// Utility Types\n// ============================================\n\n/**\n * Deep partial type - makes all properties and nested properties optional\n */\nexport type DeepPartial<T> = T extends object\n ? {\n [P in keyof T]?: DeepPartial<T[P]>;\n }\n : T;\n\n// ============================================\n// Color Types\n// ============================================\n\n/**\n * Semantic color scale (50-950)\n */\nexport interface ColorScale {\n 50?: string;\n 100?: string;\n 200?: string;\n 300?: string;\n 400?: string;\n 500?: string;\n 600?: string;\n 700?: string;\n 800?: string;\n 900?: string;\n 950?: string;\n}\n\n/**\n * Semantic color tokens\n */\nexport interface SemanticColors {\n /** Primary brand color */\n primary: string | ColorScale;\n /** Secondary brand color */\n secondary?: string | ColorScale;\n /** Accent/highlight color */\n accent?: string | ColorScale;\n /** Neutral/gray tones */\n neutral?: string | ColorScale;\n /** Success state */\n success?: string;\n /** Warning state */\n warning?: string;\n /** Error/danger state */\n danger?: string;\n /** Info state */\n info?: string;\n}\n\n/**\n * Surface colors for backgrounds\n */\nexport interface SurfaceColors {\n /** Page background */\n background?: string;\n /** Card/panel background */\n surface?: string;\n /** Elevated surface (modal, dropdown) */\n elevated?: string;\n /** Overlay/backdrop */\n overlay?: string;\n}\n\n/**\n * Text colors\n */\nexport interface TextColors {\n /** Primary text */\n primary?: string;\n /** Secondary/muted text */\n secondary?: string;\n /** Disabled text */\n disabled?: string;\n /** Inverse text (on dark backgrounds) */\n inverse?: string;\n /** Link text */\n link?: string;\n}\n\n/**\n * Border colors\n */\nexport interface BorderColors {\n /** Default border */\n default?: string;\n /** Hover border */\n hover?: string;\n /** Focus border */\n focus?: string;\n /** Divider lines */\n divider?: string;\n}\n\n/**\n * Complete color configuration\n */\nexport interface ThemeColors {\n /** Semantic colors */\n semantic: SemanticColors;\n /** Surface/background colors */\n surface?: SurfaceColors;\n /** Text colors */\n text?: TextColors;\n /** Border colors */\n border?: BorderColors;\n /** Additional custom colors */\n custom?: Record<string, string>;\n}\n\n// ============================================\n// Typography Types\n// ============================================\n\n/**\n * Font family configuration\n */\nexport interface FontFamilies {\n /** Sans-serif (default) */\n sans?: string;\n /** Serif */\n serif?: string;\n /** Monospace */\n mono?: string;\n /** Display/heading */\n display?: string;\n}\n\n/**\n * Font size configuration\n */\nexport interface FontSizes {\n xs?: string;\n sm?: string;\n base?: string;\n lg?: string;\n xl?: string;\n '2xl'?: string;\n '3xl'?: string;\n '4xl'?: string;\n '5xl'?: string;\n}\n\n/**\n * Font weight configuration\n */\nexport interface FontWeights {\n normal?: string;\n medium?: string;\n semibold?: string;\n bold?: string;\n}\n\n/**\n * Complete typography configuration\n */\nexport interface ThemeTypography {\n families?: FontFamilies;\n sizes?: FontSizes;\n weights?: FontWeights;\n lineHeight?: {\n tight?: string;\n normal?: string;\n relaxed?: string;\n };\n}\n\n// ============================================\n// Spacing & Sizing Types\n// ============================================\n\n/**\n * Spacing scale\n */\nexport interface ThemeSpacing {\n px?: string;\n 0?: string;\n 1?: string;\n 2?: string;\n 3?: string;\n 4?: string;\n 5?: string;\n 6?: string;\n 8?: string;\n 10?: string;\n 12?: string;\n 16?: string;\n 20?: string;\n 24?: string;\n}\n\n/**\n * Border radius\n */\nexport interface ThemeRadius {\n none?: string;\n sm?: string;\n md?: string;\n lg?: string;\n xl?: string;\n '2xl'?: string;\n full?: string;\n}\n\n/**\n * Shadow configuration\n */\nexport interface ThemeShadows {\n sm?: string;\n md?: string;\n lg?: string;\n xl?: string;\n}\n\n// ============================================\n// Component Tokens\n// ============================================\n\n/**\n * Button component tokens\n */\nexport interface ButtonTokens {\n radius?: string;\n paddingX?: string;\n paddingY?: string;\n fontSize?: string;\n fontWeight?: string;\n}\n\n/**\n * Card component tokens\n */\nexport interface CardTokens {\n radius?: string;\n padding?: string;\n shadow?: string;\n borderWidth?: string;\n}\n\n/**\n * Input component tokens\n */\nexport interface InputTokens {\n radius?: string;\n paddingX?: string;\n paddingY?: string;\n borderWidth?: string;\n focusRingWidth?: string;\n}\n\n/**\n * Component-specific tokens\n */\nexport interface ComponentTokens {\n button?: ButtonTokens;\n card?: CardTokens;\n input?: InputTokens;\n}\n\n// ============================================\n// CDN Configuration Types\n// ============================================\n\n/**\n * Script resource with optional integrity hash\n */\nexport interface CdnScriptResource {\n /** URL to the script */\n url: string;\n /** Subresource integrity hash */\n integrity?: string;\n}\n\n/**\n * Font CDN configuration\n */\nexport interface ThemeCdnFonts {\n /** Preconnect URLs for font providers */\n preconnect?: string[];\n /** Font stylesheet URLs */\n stylesheets?: string[];\n}\n\n/**\n * Icon CDN configuration\n */\nexport interface ThemeCdnIcons {\n /** Icon library script */\n script?: CdnScriptResource;\n}\n\n/**\n * Scripts CDN configuration\n */\nexport interface ThemeCdnScripts {\n /** Tailwind CSS Browser CDN URL */\n tailwind?: string;\n /** HTMX script resource */\n htmx?: CdnScriptResource;\n /** Alpine.js script resource */\n alpine?: CdnScriptResource;\n}\n\n/**\n * Complete CDN configuration for theme\n *\n * Allows customizing all external resource URLs used by the theme.\n * Useful for:\n * - Using private CDN mirrors\n * - Self-hosting resources\n * - Compliance with CSP policies\n * - Using different font families\n */\nexport interface ThemeCdnConfig {\n /** Font configuration */\n fonts?: ThemeCdnFonts;\n /** Icon library configuration */\n icons?: ThemeCdnIcons;\n /** Script CDN configuration */\n scripts?: ThemeCdnScripts;\n}\n\n// ============================================\n// Complete Theme Configuration\n// ============================================\n\n/**\n * Complete theme configuration\n */\nexport interface ThemeConfig {\n /** Theme name/identifier */\n name?: string;\n\n /** Color configuration */\n colors: ThemeColors;\n\n /** Typography configuration */\n typography?: ThemeTypography;\n\n /** Spacing scale */\n spacing?: ThemeSpacing;\n\n /** Border radius */\n radius?: ThemeRadius;\n\n /** Shadows */\n shadows?: ThemeShadows;\n\n /** Component-specific tokens */\n components?: ComponentTokens;\n\n /** CDN resource configuration */\n cdn?: ThemeCdnConfig;\n\n /** Dark mode variant */\n dark?: Partial<ThemeConfig>;\n\n /** Additional CSS custom properties */\n customVars?: Record<string, string>;\n\n /** Additional CSS (outside @theme) */\n customCss?: string;\n}\n\n// ============================================\n// Default Theme (GitHub/OpenAI Style)\n// ============================================\n\n/**\n * Default FrontMCP theme - GitHub/OpenAI inspired gray-black aesthetic\n *\n * Re-exported from presets for convenience. The default theme features:\n * - Monochromatic gray-black color palette\n * - System UI font stack\n * - Smaller border radii (GitHub style)\n * - Subtle shadows with gray tones\n *\n * @see ./presets/github-openai.ts for full theme definition\n */\nexport const GITHUB_OPENAI_THEME = _GITHUB_OPENAI_THEME;\nexport const DEFAULT_THEME = _DEFAULT_THEME;\n\n// ============================================\n// Theme Builder Utilities\n// ============================================\n\n/**\n * Deep merge two theme configurations (internal helper without dark handling)\n * Accepts DeepPartial<ThemeConfig> for both base and override to safely handle partial nested properties\n * Note: This function assumes at least one of base/override provides required values (typically DEFAULT_THEME)\n */\nfunction mergeThemesCore(\n base: DeepPartial<ThemeConfig>,\n override: DeepPartial<ThemeConfig>,\n): Omit<ThemeConfig, 'dark'> {\n // Provide safe defaults for required nested properties\n const baseColors = base.colors ?? { semantic: { primary: '#24292f' } };\n\n // Filter out undefined values from arrays\n const filterStrings = (arr: (string | undefined)[]): string[] => arr.filter((s): s is string => s !== undefined);\n\n return {\n ...base,\n ...override,\n colors: {\n ...baseColors,\n ...override.colors,\n semantic: { ...baseColors.semantic, ...override.colors?.semantic } as ThemeColors['semantic'],\n surface: { ...baseColors.surface, ...override.colors?.surface },\n text: { ...baseColors.text, ...override.colors?.text },\n border: { ...baseColors.border, ...override.colors?.border },\n custom: { ...baseColors.custom, ...override.colors?.custom } as Record<string, string> | undefined,\n },\n typography: {\n ...base.typography,\n ...override.typography,\n families: { ...base.typography?.families, ...override.typography?.families },\n sizes: { ...base.typography?.sizes, ...override.typography?.sizes },\n weights: { ...base.typography?.weights, ...override.typography?.weights },\n lineHeight: { ...base.typography?.lineHeight, ...override.typography?.lineHeight },\n },\n spacing: { ...base.spacing, ...override.spacing },\n radius: { ...base.radius, ...override.radius },\n shadows: { ...base.shadows, ...override.shadows },\n components: {\n ...base.components,\n ...override.components,\n button: { ...base.components?.button, ...override.components?.button },\n card: { ...base.components?.card, ...override.components?.card },\n input: { ...base.components?.input, ...override.components?.input },\n },\n cdn: {\n ...base.cdn,\n ...override.cdn,\n fonts: {\n // Concatenate then dedupe so base entries are preserved without duplicates\n preconnect: filterStrings(\n Array.from(new Set([...(base.cdn?.fonts?.preconnect ?? []), ...(override.cdn?.fonts?.preconnect ?? [])])),\n ),\n stylesheets: filterStrings(\n Array.from(new Set([...(base.cdn?.fonts?.stylesheets ?? []), ...(override.cdn?.fonts?.stylesheets ?? [])])),\n ),\n },\n icons: {\n ...base.cdn?.icons,\n ...override.cdn?.icons,\n // Deep merge script to preserve integrity when only url is overridden\n script: (override.cdn?.icons?.script\n ? { ...base.cdn?.icons?.script, ...override.cdn?.icons?.script }\n : base.cdn?.icons?.script) as CdnScriptResource | undefined,\n },\n scripts: {\n // tailwind is a simple string, just use override or base\n tailwind: override.cdn?.scripts?.tailwind ?? base.cdn?.scripts?.tailwind,\n // Deep merge htmx/alpine to preserve integrity when only url is overridden\n htmx: (override.cdn?.scripts?.htmx\n ? { ...base.cdn?.scripts?.htmx, ...override.cdn?.scripts?.htmx }\n : base.cdn?.scripts?.htmx) as CdnScriptResource | undefined,\n alpine: (override.cdn?.scripts?.alpine\n ? { ...base.cdn?.scripts?.alpine, ...override.cdn?.scripts?.alpine }\n : base.cdn?.scripts?.alpine) as CdnScriptResource | undefined,\n },\n },\n customVars: { ...base.customVars, ...override.customVars } as Record<string, string> | undefined,\n customCss: [base.customCss, override.customCss].filter(Boolean).join('\\n'),\n };\n}\n\n/**\n * Deep merge two theme configurations\n *\n * @remarks\n * Dark variant handling:\n * - When override.dark is provided, it's merged on top of base.dark (if present) or base\n * - The resulting dark variant never contains a nested .dark property\n * - This prevents infinite recursion and ensures clean dark theme composition\n */\nexport function mergeThemes(base: ThemeConfig, override: DeepPartial<ThemeConfig>): ThemeConfig {\n // Merge the main (light) theme properties\n const merged = mergeThemesCore(base, override);\n\n // Handle dark variant separately to avoid nested .dark properties\n let darkVariant: Partial<ThemeConfig> | undefined;\n\n if (override.dark !== undefined) {\n // Merge override.dark on top of base.dark (or base if no base.dark)\n // darkBase may be partial (from base.dark) - mergeThemesCore handles this safely\n const darkBase = base.dark ?? base;\n // Strip any .dark from override.dark to prevent nesting\n const { dark: _nestedDark, ...overrideDarkWithoutNested } = override.dark;\n darkVariant = mergeThemesCore(darkBase, overrideDarkWithoutNested);\n } else if (base.dark !== undefined) {\n // Preserve base.dark, but strip any nested .dark property\n const { dark: _nestedDark, ...baseDarkWithoutNested } = base.dark;\n darkVariant = baseDarkWithoutNested;\n }\n\n return {\n ...merged,\n dark: darkVariant,\n };\n}\n\n/**\n * Create a theme by extending the default theme\n */\nexport function createTheme(overrides: Partial<ThemeConfig>): ThemeConfig {\n return mergeThemes(DEFAULT_THEME, overrides);\n}\n\n/**\n * Emit color scale CSS variables\n */\nfunction emitColorScale(lines: string[], name: string, scale: ColorScale): void {\n for (const [shade, value] of Object.entries(scale)) {\n if (value) lines.push(`--color-${name}-${shade}: ${value};`);\n }\n}\n\n/**\n * Build Tailwind @theme CSS from theme configuration\n */\nexport function buildThemeCss(theme: ThemeConfig): string {\n const lines: string[] = [];\n\n // Colors - semantic\n const semantic = theme.colors.semantic;\n if (typeof semantic.primary === 'string') {\n lines.push(`--color-primary: ${semantic.primary};`);\n } else if (semantic.primary) {\n emitColorScale(lines, 'primary', semantic.primary);\n }\n if (semantic.secondary) {\n if (typeof semantic.secondary === 'string') {\n lines.push(`--color-secondary: ${semantic.secondary};`);\n } else {\n emitColorScale(lines, 'secondary', semantic.secondary);\n }\n }\n if (semantic.accent) {\n if (typeof semantic.accent === 'string') {\n lines.push(`--color-accent: ${semantic.accent};`);\n } else {\n emitColorScale(lines, 'accent', semantic.accent);\n }\n }\n if (semantic.neutral) {\n if (typeof semantic.neutral === 'string') {\n lines.push(`--color-neutral: ${semantic.neutral};`);\n } else {\n emitColorScale(lines, 'neutral', semantic.neutral);\n }\n }\n if (semantic.success) lines.push(`--color-success: ${semantic.success};`);\n if (semantic.warning) lines.push(`--color-warning: ${semantic.warning};`);\n if (semantic.danger) lines.push(`--color-danger: ${semantic.danger};`);\n if (semantic.info) lines.push(`--color-info: ${semantic.info};`);\n\n // Colors - surface\n const surface = theme.colors.surface;\n if (surface?.background) lines.push(`--color-background: ${surface.background};`);\n if (surface?.surface) lines.push(`--color-surface: ${surface.surface};`);\n if (surface?.elevated) lines.push(`--color-elevated: ${surface.elevated};`);\n if (surface?.overlay) lines.push(`--color-overlay: ${surface.overlay};`);\n\n // Colors - text\n const text = theme.colors.text;\n if (text?.primary) lines.push(`--color-text-primary: ${text.primary};`);\n if (text?.secondary) lines.push(`--color-text-secondary: ${text.secondary};`);\n if (text?.disabled) lines.push(`--color-text-disabled: ${text.disabled};`);\n if (text?.inverse) lines.push(`--color-text-inverse: ${text.inverse};`);\n if (text?.link) lines.push(`--color-text-link: ${text.link};`);\n\n // Colors - border\n const border = theme.colors.border;\n if (border?.default) lines.push(`--color-border: ${border.default};`);\n if (border?.hover) lines.push(`--color-border-hover: ${border.hover};`);\n if (border?.focus) lines.push(`--color-border-focus: ${border.focus};`);\n if (border?.divider) lines.push(`--color-divider: ${border.divider};`);\n\n // Colors - custom\n if (theme.colors.custom) {\n for (const [key, value] of Object.entries(theme.colors.custom)) {\n lines.push(`--color-${key}: ${value};`);\n }\n }\n\n // Typography\n const typography = theme.typography;\n if (typography?.families?.sans) lines.push(`--font-sans: ${typography.families.sans};`);\n if (typography?.families?.serif) lines.push(`--font-serif: ${typography.families.serif};`);\n if (typography?.families?.mono) lines.push(`--font-mono: ${typography.families.mono};`);\n if (typography?.families?.display) lines.push(`--font-display: ${typography.families.display};`);\n\n // Radius\n const radius = theme.radius;\n if (radius?.none) lines.push(`--radius-none: ${radius.none};`);\n if (radius?.sm) lines.push(`--radius-sm: ${radius.sm};`);\n if (radius?.md) lines.push(`--radius-md: ${radius.md};`);\n if (radius?.lg) lines.push(`--radius-lg: ${radius.lg};`);\n if (radius?.xl) lines.push(`--radius-xl: ${radius.xl};`);\n if (radius?.['2xl']) lines.push(`--radius-2xl: ${radius['2xl']};`);\n if (radius?.full) lines.push(`--radius-full: ${radius.full};`);\n\n // Custom vars\n if (theme.customVars) {\n for (const [key, value] of Object.entries(theme.customVars)) {\n lines.push(`${key}: ${value};`);\n }\n }\n\n return lines.join('\\n ');\n}\n\n/**\n * Build complete style block with @theme and custom CSS\n *\n * @remarks\n * **Security/Trust Model:**\n * The `theme.customCss` property is injected directly into a `<style>` tag without\n * sanitization. This is intentional - CSS customization requires full CSS syntax support.\n *\n * **Trust assumptions:**\n * - Theme configurations should only come from trusted sources (developer-defined themes)\n * - Never pass user-provided input directly to `customCss`\n * - If you need user-customizable styles, validate/sanitize them before including in a theme\n *\n * **Why no sanitization:**\n * - CSS sanitization is complex and often breaks legitimate styles\n * - The theme system is designed for developer use, not end-user customization\n * - Developers creating themes are trusted to provide safe CSS\n *\n * @param theme - Theme configuration with optional customCss\n * @returns HTML style block with Tailwind @theme directive\n */\nexport function buildStyleBlock(theme: ThemeConfig): string {\n const themeCss = buildThemeCss(theme);\n const customCss = theme.customCss || '';\n\n return `<style type=\"text/tailwindcss\">\n @theme {\n ${themeCss}\n }\n ${customCss}\n </style>`;\n}\n"]}
@@ -1,212 +0,0 @@
1
- /**
2
- * Tool Template Builder
3
- *
4
- * Provides utilities for building and rendering tool UI templates
5
- * with the MCP Bridge runtime.
6
- *
7
- * Supports multiple template types with auto-detection:
8
- * - HTML strings and template builder functions
9
- * - React components (imported or JSX strings)
10
- * - MDX content (Markdown + JSX)
11
- */
12
- import type { TemplateContext, TemplateBuilderFn, ToolUIConfig, ToolUITemplate } from '../runtime/types';
13
- import type { ThemeConfig, PlatformCapabilities, DeepPartial } from '../theme';
14
- /**
15
- * Options for rendering a tool template
16
- */
17
- export interface RenderTemplateOptions<In = Record<string, unknown>, Out = unknown> {
18
- /** UI configuration from tool metadata */
19
- ui: ToolUIConfig<In, Out>;
20
- /** Tool name */
21
- toolName: string;
22
- /** Tool input arguments */
23
- input: In;
24
- /** Tool output (raw result from execute) */
25
- output: Out;
26
- /** Structured content (parsed output for widgets) */
27
- structuredContent?: unknown;
28
- /** Theme configuration */
29
- theme?: DeepPartial<ThemeConfig>;
30
- /** Platform capabilities */
31
- platform?: PlatformCapabilities;
32
- }
33
- /**
34
- * Result of rendering a tool template
35
- */
36
- export interface RenderedTemplate {
37
- /** Complete HTML document string */
38
- html: string;
39
- /** MIME type for the response */
40
- mimeType: string;
41
- /** OpenAI-specific metadata (if applicable) */
42
- openaiMeta?: Record<string, unknown>;
43
- }
44
- /**
45
- * Build template context from render options
46
- */
47
- export declare function buildTemplateContext<In = Record<string, unknown>, Out = unknown>(input: In, output: Out, structuredContent?: unknown): TemplateContext<In, Out>;
48
- /**
49
- * Execute a template builder function or return static template.
50
- * This is used for simple HTML templates only.
51
- */
52
- export declare function executeTemplate<In = Record<string, unknown>, Out = unknown>(template: TemplateBuilderFn<In, Out> | string, ctx: TemplateContext<In, Out>): string;
53
- /**
54
- * Render a template using the appropriate renderer (auto-detected).
55
- *
56
- * This function detects the template type and routes to the appropriate
57
- * renderer (HTML, React, or MDX).
58
- *
59
- * @param template - The template to render
60
- * @param ctx - Template context with input/output/helpers
61
- * @param options - Additional render options
62
- * @returns Promise resolving to rendered HTML string
63
- */
64
- export declare function renderTemplate<In = Record<string, unknown>, Out = unknown>(template: ToolUITemplate<In, Out>, ctx: TemplateContext<In, Out>, options?: {
65
- hydrate?: boolean;
66
- mdxComponents?: Record<string, any>;
67
- }): Promise<{
68
- html: string;
69
- rendererType: string;
70
- }>;
71
- /**
72
- * Render a tool UI template to a complete HTML document (sync version).
73
- *
74
- * This is the sync entry point for rendering simple HTML tool UIs. It:
75
- * 1. Builds the template context with input/output/helpers
76
- * 2. Executes the template builder function
77
- * 3. Wraps the content in a complete HTML document with MCP Bridge
78
- * 4. Applies CSP and theme configuration
79
- *
80
- * Note: For React/MDX templates, use `renderToolTemplateAsync` instead.
81
- *
82
- * @param options - Render options
83
- * @returns Rendered template with HTML and metadata
84
- *
85
- * @example
86
- * ```typescript
87
- * const result = renderToolTemplate({
88
- * ui: toolMetadata.ui,
89
- * toolName: 'get_weather',
90
- * input: { location: 'San Francisco' },
91
- * output: { temperature: 72, conditions: 'sunny' },
92
- * });
93
- *
94
- * // Use result.html for the response body
95
- * // Use result.mimeType for Content-Type header
96
- * ```
97
- */
98
- export declare function renderToolTemplate<In = Record<string, unknown>, Out = unknown>(options: RenderTemplateOptions<In, Out>): RenderedTemplate;
99
- /**
100
- * Render a tool UI template to a complete HTML document (async version).
101
- *
102
- * This is the async entry point that supports all template types:
103
- * - HTML strings and template builder functions
104
- * - React components (imported or JSX strings)
105
- * - MDX content (Markdown + JSX)
106
- *
107
- * The template type is auto-detected and the appropriate renderer is used.
108
- *
109
- * @param options - Render options
110
- * @returns Promise resolving to rendered template with HTML and metadata
111
- *
112
- * @example React component
113
- * ```typescript
114
- * import { WeatherWidget } from './weather-widget.tsx';
115
- *
116
- * const result = await renderToolTemplateAsync({
117
- * ui: { template: WeatherWidget, hydrate: true },
118
- * toolName: 'get_weather',
119
- * input: { location: 'San Francisco' },
120
- * output: { temperature: 72, conditions: 'sunny' },
121
- * });
122
- * ```
123
- *
124
- * @example MDX content
125
- * ```typescript
126
- * const result = await renderToolTemplateAsync({
127
- * ui: {
128
- * template: `# Weather in {output.location}\nTemperature: {output.temperature}°F`,
129
- * },
130
- * toolName: 'get_weather',
131
- * input: { location: 'San Francisco' },
132
- * output: { temperature: 72, location: 'San Francisco' },
133
- * });
134
- * ```
135
- */
136
- export declare function renderToolTemplateAsync<In = Record<string, unknown>, Out = unknown>(options: RenderTemplateOptions<In, Out>): Promise<RenderedTemplate & {
137
- rendererType: string;
138
- }>;
139
- /**
140
- * Create a typed template builder with automatic input/output typing.
141
- *
142
- * This is a convenience function that helps TypeScript infer the
143
- * correct types for template builder functions.
144
- *
145
- * @example
146
- * ```typescript
147
- * interface WeatherInput {
148
- * location: string;
149
- * }
150
- *
151
- * interface WeatherOutput {
152
- * temperature: number;
153
- * conditions: string;
154
- * }
155
- *
156
- * const weatherTemplate = createTemplate<WeatherInput, WeatherOutput>((ctx) => `
157
- * <div class="p-4">
158
- * <h2>Weather in ${ctx.helpers.escapeHtml(ctx.input.location)}</h2>
159
- * <p>${ctx.output.temperature}°F - ${ctx.output.conditions}</p>
160
- * </div>
161
- * `);
162
- * ```
163
- */
164
- export declare function createTemplate<In = Record<string, unknown>, Out = unknown>(builder: TemplateBuilderFn<In, Out>): TemplateBuilderFn<In, Out>;
165
- /**
166
- * Create a ToolUIConfig with proper typing
167
- *
168
- * @example
169
- * ```typescript
170
- * const ui = createToolUI<WeatherInput, WeatherOutput>({
171
- * template: (ctx) => `<div>${ctx.output.temperature}°F</div>`,
172
- * csp: { connectDomains: ['https://api.weather.com'] },
173
- * widgetAccessible: true,
174
- * });
175
- * ```
176
- */
177
- export declare function createToolUI<In = Record<string, unknown>, Out = unknown>(config: ToolUIConfig<In, Out>): ToolUIConfig<In, Out>;
178
- /**
179
- * Create a container div with common styling
180
- */
181
- export declare function container(content: string, className?: string): string;
182
- /**
183
- * Create a heading element
184
- */
185
- export declare function heading(text: string, level?: 1 | 2 | 3 | 4): string;
186
- /**
187
- * Create a paragraph element
188
- */
189
- export declare function paragraph(text: string, className?: string): string;
190
- /**
191
- * Create a key-value display
192
- */
193
- export declare function keyValue(key: string, value: string | number | boolean, className?: string): string;
194
- /**
195
- * Create a simple data list
196
- */
197
- export declare function dataList(items: Array<{
198
- key: string;
199
- value: string | number | boolean;
200
- }>): string;
201
- /**
202
- * Create an error display
203
- */
204
- export declare function errorDisplay(message: string, details?: string): string;
205
- /**
206
- * Create a success display
207
- */
208
- export declare function successDisplay(message: string, details?: string): string;
209
- /**
210
- * Create a loading indicator
211
- */
212
- export declare function loadingDisplay(message?: string): string;