@frontmcp/ui 0.6.0 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (445) hide show
  1. package/README.md +140 -362
  2. package/bridge/runtime/index.d.ts +2 -1
  3. package/bridge/runtime/index.d.ts.map +1 -1
  4. package/bundler/file-cache/component-builder.d.ts +1 -1
  5. package/bundler/file-cache/component-builder.d.ts.map +1 -1
  6. package/bundler/file-cache/hash-calculator.d.ts +1 -1
  7. package/bundler/file-cache/hash-calculator.d.ts.map +1 -1
  8. package/bundler/file-cache/storage/filesystem.d.ts +1 -1
  9. package/bundler/file-cache/storage/filesystem.d.ts.map +1 -1
  10. package/bundler/file-cache/storage/interface.d.ts +1 -1
  11. package/bundler/file-cache/storage/interface.d.ts.map +1 -1
  12. package/bundler/file-cache/storage/redis.d.ts +1 -1
  13. package/bundler/file-cache/storage/redis.d.ts.map +1 -1
  14. package/bundler/index.js +10 -1057
  15. package/components/alert.schema.d.ts +6 -6
  16. package/components/avatar.schema.d.ts +9 -9
  17. package/components/badge.schema.d.ts +9 -9
  18. package/components/button.schema.d.ts +9 -9
  19. package/components/card.schema.d.ts +7 -7
  20. package/components/form.schema.d.ts +24 -24
  21. package/components/index.js +128 -198
  22. package/components/modal.schema.d.ts +8 -8
  23. package/components/table.schema.d.ts +6 -6
  24. package/esm/bridge/runtime/index.d.ts +2 -1
  25. package/esm/bridge/runtime/index.d.ts.map +1 -1
  26. package/esm/bundler/file-cache/component-builder.d.ts +1 -1
  27. package/esm/bundler/file-cache/component-builder.d.ts.map +1 -1
  28. package/esm/bundler/file-cache/hash-calculator.d.ts +1 -1
  29. package/esm/bundler/file-cache/hash-calculator.d.ts.map +1 -1
  30. package/esm/bundler/file-cache/storage/filesystem.d.ts +1 -1
  31. package/esm/bundler/file-cache/storage/filesystem.d.ts.map +1 -1
  32. package/esm/bundler/file-cache/storage/interface.d.ts +1 -1
  33. package/esm/bundler/file-cache/storage/interface.d.ts.map +1 -1
  34. package/esm/bundler/file-cache/storage/redis.d.ts +1 -1
  35. package/esm/bundler/file-cache/storage/redis.d.ts.map +1 -1
  36. package/esm/bundler/index.js +3 -1050
  37. package/esm/components/alert.schema.d.ts +6 -6
  38. package/esm/components/avatar.schema.d.ts +9 -9
  39. package/esm/components/badge.schema.d.ts +9 -9
  40. package/esm/components/button.schema.d.ts +9 -9
  41. package/esm/components/card.schema.d.ts +7 -7
  42. package/esm/components/form.schema.d.ts +24 -24
  43. package/esm/components/index.js +136 -196
  44. package/esm/components/modal.schema.d.ts +8 -8
  45. package/esm/components/table.schema.d.ts +6 -6
  46. package/esm/index.d.ts +23 -39
  47. package/esm/index.d.ts.map +1 -1
  48. package/esm/index.js +4256 -16441
  49. package/esm/layouts/base.d.ts +2 -2
  50. package/esm/layouts/base.d.ts.map +1 -1
  51. package/esm/layouts/index.js +33 -516
  52. package/esm/package.json +8 -26
  53. package/esm/pages/index.js +100 -627
  54. package/esm/react/Alert.d.ts +1 -2
  55. package/esm/react/Alert.d.ts.map +1 -1
  56. package/esm/react/Badge.d.ts +1 -2
  57. package/esm/react/Badge.d.ts.map +1 -1
  58. package/esm/react/Button.d.ts +1 -2
  59. package/esm/react/Button.d.ts.map +1 -1
  60. package/esm/react/Card.d.ts +1 -2
  61. package/esm/react/Card.d.ts.map +1 -1
  62. package/esm/react/hooks/context.d.ts +1 -1
  63. package/esm/react/hooks/context.d.ts.map +1 -1
  64. package/esm/react/index.d.ts +5 -6
  65. package/esm/react/index.d.ts.map +1 -1
  66. package/esm/react/index.js +2074 -322
  67. package/esm/react/types.d.ts +1 -2
  68. package/esm/react/types.d.ts.map +1 -1
  69. package/esm/renderers/index.d.ts +10 -25
  70. package/esm/renderers/index.d.ts.map +1 -1
  71. package/esm/renderers/index.js +171 -1617
  72. package/esm/{runtime/adapters → renderers}/react.adapter.d.ts +2 -2
  73. package/esm/renderers/react.adapter.d.ts.map +1 -0
  74. package/esm/renderers/react.renderer.d.ts +3 -3
  75. package/esm/renderers/react.renderer.d.ts.map +1 -1
  76. package/esm/universal/index.js +1755 -0
  77. package/esm/web-components/index.js +232 -287
  78. package/esm/widgets/index.js +89 -147
  79. package/index.d.ts +23 -39
  80. package/index.d.ts.map +1 -1
  81. package/index.js +6123 -18539
  82. package/layouts/base.d.ts +2 -2
  83. package/layouts/base.d.ts.map +1 -1
  84. package/layouts/index.js +43 -536
  85. package/package.json +8 -26
  86. package/pages/index.js +111 -648
  87. package/react/Alert.d.ts +1 -2
  88. package/react/Alert.d.ts.map +1 -1
  89. package/react/Badge.d.ts +1 -2
  90. package/react/Badge.d.ts.map +1 -1
  91. package/react/Button.d.ts +1 -2
  92. package/react/Button.d.ts.map +1 -1
  93. package/react/Card.d.ts +1 -2
  94. package/react/Card.d.ts.map +1 -1
  95. package/react/hooks/context.d.ts +1 -1
  96. package/react/hooks/context.d.ts.map +1 -1
  97. package/react/index.d.ts +5 -6
  98. package/react/index.d.ts.map +1 -1
  99. package/react/index.js +2065 -335
  100. package/react/types.d.ts +1 -2
  101. package/react/types.d.ts.map +1 -1
  102. package/renderers/index.d.ts +10 -25
  103. package/renderers/index.d.ts.map +1 -1
  104. package/renderers/index.js +175 -1641
  105. package/{runtime/adapters → renderers}/react.adapter.d.ts +2 -2
  106. package/renderers/react.adapter.d.ts.map +1 -0
  107. package/renderers/react.renderer.d.ts +3 -3
  108. package/renderers/react.renderer.d.ts.map +1 -1
  109. package/universal/index.js +1841 -0
  110. package/web-components/index.js +224 -289
  111. package/widgets/index.js +80 -148
  112. package/adapters/index.d.ts +0 -13
  113. package/adapters/index.d.ts.map +0 -1
  114. package/adapters/index.js +0 -462
  115. package/adapters/platform-meta.d.ts +0 -166
  116. package/adapters/platform-meta.d.ts.map +0 -1
  117. package/adapters/response-builder.d.ts +0 -108
  118. package/adapters/response-builder.d.ts.map +0 -1
  119. package/adapters/serving-mode.d.ts +0 -107
  120. package/adapters/serving-mode.d.ts.map +0 -1
  121. package/base-template/bridge.d.ts +0 -90
  122. package/base-template/bridge.d.ts.map +0 -1
  123. package/base-template/default-base-template.d.ts +0 -92
  124. package/base-template/default-base-template.d.ts.map +0 -1
  125. package/base-template/index.d.ts +0 -15
  126. package/base-template/index.d.ts.map +0 -1
  127. package/base-template/index.js +0 -1398
  128. package/base-template/polyfills.d.ts +0 -31
  129. package/base-template/polyfills.d.ts.map +0 -1
  130. package/base-template/theme-styles.d.ts +0 -74
  131. package/base-template/theme-styles.d.ts.map +0 -1
  132. package/build/cdn-resources.d.ts +0 -243
  133. package/build/cdn-resources.d.ts.map +0 -1
  134. package/build/index.d.ts +0 -295
  135. package/build/index.d.ts.map +0 -1
  136. package/build/index.js +0 -7096
  137. package/build/widget-manifest.d.ts +0 -362
  138. package/build/widget-manifest.d.ts.map +0 -1
  139. package/dependency/cdn-registry.d.ts +0 -98
  140. package/dependency/cdn-registry.d.ts.map +0 -1
  141. package/dependency/import-map.d.ts +0 -186
  142. package/dependency/import-map.d.ts.map +0 -1
  143. package/dependency/import-parser.d.ts +0 -82
  144. package/dependency/import-parser.d.ts.map +0 -1
  145. package/dependency/index.d.ts +0 -17
  146. package/dependency/index.d.ts.map +0 -1
  147. package/dependency/resolver.d.ts +0 -164
  148. package/dependency/resolver.d.ts.map +0 -1
  149. package/dependency/schemas.d.ts +0 -486
  150. package/dependency/schemas.d.ts.map +0 -1
  151. package/dependency/template-loader.d.ts +0 -204
  152. package/dependency/template-loader.d.ts.map +0 -1
  153. package/dependency/template-processor.d.ts +0 -118
  154. package/dependency/template-processor.d.ts.map +0 -1
  155. package/dependency/types.d.ts +0 -739
  156. package/dependency/types.d.ts.map +0 -1
  157. package/esm/adapters/index.d.ts +0 -13
  158. package/esm/adapters/index.d.ts.map +0 -1
  159. package/esm/adapters/index.js +0 -427
  160. package/esm/adapters/platform-meta.d.ts +0 -166
  161. package/esm/adapters/platform-meta.d.ts.map +0 -1
  162. package/esm/adapters/response-builder.d.ts +0 -108
  163. package/esm/adapters/response-builder.d.ts.map +0 -1
  164. package/esm/adapters/serving-mode.d.ts +0 -107
  165. package/esm/adapters/serving-mode.d.ts.map +0 -1
  166. package/esm/base-template/bridge.d.ts +0 -90
  167. package/esm/base-template/bridge.d.ts.map +0 -1
  168. package/esm/base-template/default-base-template.d.ts +0 -92
  169. package/esm/base-template/default-base-template.d.ts.map +0 -1
  170. package/esm/base-template/index.d.ts +0 -15
  171. package/esm/base-template/index.d.ts.map +0 -1
  172. package/esm/base-template/index.js +0 -1364
  173. package/esm/base-template/polyfills.d.ts +0 -31
  174. package/esm/base-template/polyfills.d.ts.map +0 -1
  175. package/esm/base-template/theme-styles.d.ts +0 -74
  176. package/esm/base-template/theme-styles.d.ts.map +0 -1
  177. package/esm/build/cdn-resources.d.ts +0 -243
  178. package/esm/build/cdn-resources.d.ts.map +0 -1
  179. package/esm/build/index.d.ts +0 -295
  180. package/esm/build/index.d.ts.map +0 -1
  181. package/esm/build/index.js +0 -7021
  182. package/esm/build/widget-manifest.d.ts +0 -362
  183. package/esm/build/widget-manifest.d.ts.map +0 -1
  184. package/esm/dependency/cdn-registry.d.ts +0 -98
  185. package/esm/dependency/cdn-registry.d.ts.map +0 -1
  186. package/esm/dependency/import-map.d.ts +0 -186
  187. package/esm/dependency/import-map.d.ts.map +0 -1
  188. package/esm/dependency/import-parser.d.ts +0 -82
  189. package/esm/dependency/import-parser.d.ts.map +0 -1
  190. package/esm/dependency/index.d.ts +0 -17
  191. package/esm/dependency/index.d.ts.map +0 -1
  192. package/esm/dependency/resolver.d.ts +0 -164
  193. package/esm/dependency/resolver.d.ts.map +0 -1
  194. package/esm/dependency/schemas.d.ts +0 -486
  195. package/esm/dependency/schemas.d.ts.map +0 -1
  196. package/esm/dependency/template-loader.d.ts +0 -204
  197. package/esm/dependency/template-loader.d.ts.map +0 -1
  198. package/esm/dependency/template-processor.d.ts +0 -118
  199. package/esm/dependency/template-processor.d.ts.map +0 -1
  200. package/esm/dependency/types.d.ts +0 -739
  201. package/esm/dependency/types.d.ts.map +0 -1
  202. package/esm/handlebars/expression-extractor.d.ts +0 -147
  203. package/esm/handlebars/expression-extractor.d.ts.map +0 -1
  204. package/esm/handlebars/helpers.d.ts +0 -339
  205. package/esm/handlebars/helpers.d.ts.map +0 -1
  206. package/esm/handlebars/index.d.ts +0 -195
  207. package/esm/handlebars/index.d.ts.map +0 -1
  208. package/esm/handlebars/index.js +0 -587
  209. package/esm/registry/index.d.ts +0 -46
  210. package/esm/registry/index.d.ts.map +0 -1
  211. package/esm/registry/index.js +0 -6422
  212. package/esm/registry/render-template.d.ts +0 -91
  213. package/esm/registry/render-template.d.ts.map +0 -1
  214. package/esm/registry/tool-ui.registry.d.ts +0 -294
  215. package/esm/registry/tool-ui.registry.d.ts.map +0 -1
  216. package/esm/registry/uri-utils.d.ts +0 -56
  217. package/esm/registry/uri-utils.d.ts.map +0 -1
  218. package/esm/renderers/cache.d.ts +0 -145
  219. package/esm/renderers/cache.d.ts.map +0 -1
  220. package/esm/renderers/html.renderer.d.ts +0 -123
  221. package/esm/renderers/html.renderer.d.ts.map +0 -1
  222. package/esm/renderers/mdx.renderer.d.ts +0 -120
  223. package/esm/renderers/mdx.renderer.d.ts.map +0 -1
  224. package/esm/renderers/registry.d.ts +0 -134
  225. package/esm/renderers/registry.d.ts.map +0 -1
  226. package/esm/renderers/types.d.ts +0 -342
  227. package/esm/renderers/types.d.ts.map +0 -1
  228. package/esm/renderers/utils/detect.d.ts +0 -107
  229. package/esm/renderers/utils/detect.d.ts.map +0 -1
  230. package/esm/renderers/utils/hash.d.ts +0 -40
  231. package/esm/renderers/utils/hash.d.ts.map +0 -1
  232. package/esm/renderers/utils/index.d.ts +0 -9
  233. package/esm/renderers/utils/index.d.ts.map +0 -1
  234. package/esm/renderers/utils/transpiler.d.ts +0 -89
  235. package/esm/renderers/utils/transpiler.d.ts.map +0 -1
  236. package/esm/runtime/adapters/html.adapter.d.ts +0 -59
  237. package/esm/runtime/adapters/html.adapter.d.ts.map +0 -1
  238. package/esm/runtime/adapters/index.d.ts +0 -26
  239. package/esm/runtime/adapters/index.d.ts.map +0 -1
  240. package/esm/runtime/adapters/mdx.adapter.d.ts +0 -73
  241. package/esm/runtime/adapters/mdx.adapter.d.ts.map +0 -1
  242. package/esm/runtime/adapters/react.adapter.d.ts.map +0 -1
  243. package/esm/runtime/adapters/types.d.ts +0 -95
  244. package/esm/runtime/adapters/types.d.ts.map +0 -1
  245. package/esm/runtime/csp.d.ts +0 -48
  246. package/esm/runtime/csp.d.ts.map +0 -1
  247. package/esm/runtime/index.d.ts +0 -17
  248. package/esm/runtime/index.d.ts.map +0 -1
  249. package/esm/runtime/index.js +0 -5186
  250. package/esm/runtime/mcp-bridge.d.ts +0 -101
  251. package/esm/runtime/mcp-bridge.d.ts.map +0 -1
  252. package/esm/runtime/renderer-runtime.d.ts +0 -133
  253. package/esm/runtime/renderer-runtime.d.ts.map +0 -1
  254. package/esm/runtime/sanitizer.d.ts +0 -172
  255. package/esm/runtime/sanitizer.d.ts.map +0 -1
  256. package/esm/runtime/types.d.ts +0 -415
  257. package/esm/runtime/types.d.ts.map +0 -1
  258. package/esm/runtime/wrapper.d.ts +0 -421
  259. package/esm/runtime/wrapper.d.ts.map +0 -1
  260. package/esm/styles/index.d.ts +0 -8
  261. package/esm/styles/index.d.ts.map +0 -1
  262. package/esm/styles/index.js +0 -171
  263. package/esm/styles/variants.d.ts +0 -51
  264. package/esm/styles/variants.d.ts.map +0 -1
  265. package/esm/theme/cdn.d.ts +0 -195
  266. package/esm/theme/cdn.d.ts.map +0 -1
  267. package/esm/theme/index.d.ts +0 -18
  268. package/esm/theme/index.d.ts.map +0 -1
  269. package/esm/theme/index.js +0 -700
  270. package/esm/theme/platforms.d.ts +0 -107
  271. package/esm/theme/platforms.d.ts.map +0 -1
  272. package/esm/theme/presets/github-openai.d.ts +0 -50
  273. package/esm/theme/presets/github-openai.d.ts.map +0 -1
  274. package/esm/theme/presets/index.d.ts +0 -11
  275. package/esm/theme/presets/index.d.ts.map +0 -1
  276. package/esm/theme/theme.d.ts +0 -396
  277. package/esm/theme/theme.d.ts.map +0 -1
  278. package/esm/tool-template/builder.d.ts +0 -213
  279. package/esm/tool-template/builder.d.ts.map +0 -1
  280. package/esm/tool-template/index.d.ts +0 -16
  281. package/esm/tool-template/index.d.ts.map +0 -1
  282. package/esm/tool-template/index.js +0 -3515
  283. package/esm/types/index.d.ts +0 -14
  284. package/esm/types/index.d.ts.map +0 -1
  285. package/esm/types/index.js +0 -75
  286. package/esm/types/ui-config.d.ts +0 -639
  287. package/esm/types/ui-config.d.ts.map +0 -1
  288. package/esm/types/ui-runtime.d.ts +0 -1007
  289. package/esm/types/ui-runtime.d.ts.map +0 -1
  290. package/esm/typings/cache/cache-adapter.d.ts +0 -125
  291. package/esm/typings/cache/cache-adapter.d.ts.map +0 -1
  292. package/esm/typings/cache/index.d.ts +0 -10
  293. package/esm/typings/cache/index.d.ts.map +0 -1
  294. package/esm/typings/cache/memory-cache.d.ts +0 -92
  295. package/esm/typings/cache/memory-cache.d.ts.map +0 -1
  296. package/esm/typings/dts-parser.d.ts +0 -90
  297. package/esm/typings/dts-parser.d.ts.map +0 -1
  298. package/esm/typings/index.d.ts +0 -48
  299. package/esm/typings/index.d.ts.map +0 -1
  300. package/esm/typings/schemas.d.ts +0 -232
  301. package/esm/typings/schemas.d.ts.map +0 -1
  302. package/esm/typings/type-fetcher.d.ts +0 -89
  303. package/esm/typings/type-fetcher.d.ts.map +0 -1
  304. package/esm/typings/types.d.ts +0 -320
  305. package/esm/typings/types.d.ts.map +0 -1
  306. package/esm/utils/escape-html.d.ts +0 -58
  307. package/esm/utils/escape-html.d.ts.map +0 -1
  308. package/esm/utils/index.d.ts +0 -10
  309. package/esm/utils/index.d.ts.map +0 -1
  310. package/esm/utils/index.js +0 -40
  311. package/esm/utils/safe-stringify.d.ts +0 -30
  312. package/esm/utils/safe-stringify.d.ts.map +0 -1
  313. package/esm/validation/error-box.d.ts +0 -56
  314. package/esm/validation/error-box.d.ts.map +0 -1
  315. package/esm/validation/index.d.ts +0 -13
  316. package/esm/validation/index.d.ts.map +0 -1
  317. package/esm/validation/index.js +0 -562
  318. package/esm/validation/schema-paths.d.ts +0 -118
  319. package/esm/validation/schema-paths.d.ts.map +0 -1
  320. package/esm/validation/template-validator.d.ts +0 -143
  321. package/esm/validation/template-validator.d.ts.map +0 -1
  322. package/esm/validation/wrapper.d.ts +0 -97
  323. package/esm/validation/wrapper.d.ts.map +0 -1
  324. package/handlebars/expression-extractor.d.ts +0 -147
  325. package/handlebars/expression-extractor.d.ts.map +0 -1
  326. package/handlebars/helpers.d.ts +0 -339
  327. package/handlebars/helpers.d.ts.map +0 -1
  328. package/handlebars/index.d.ts +0 -195
  329. package/handlebars/index.d.ts.map +0 -1
  330. package/handlebars/index.js +0 -666
  331. package/registry/index.d.ts +0 -46
  332. package/registry/index.d.ts.map +0 -1
  333. package/registry/index.js +0 -6465
  334. package/registry/render-template.d.ts +0 -91
  335. package/registry/render-template.d.ts.map +0 -1
  336. package/registry/tool-ui.registry.d.ts +0 -294
  337. package/registry/tool-ui.registry.d.ts.map +0 -1
  338. package/registry/uri-utils.d.ts +0 -56
  339. package/registry/uri-utils.d.ts.map +0 -1
  340. package/renderers/cache.d.ts +0 -145
  341. package/renderers/cache.d.ts.map +0 -1
  342. package/renderers/html.renderer.d.ts +0 -123
  343. package/renderers/html.renderer.d.ts.map +0 -1
  344. package/renderers/mdx.renderer.d.ts +0 -120
  345. package/renderers/mdx.renderer.d.ts.map +0 -1
  346. package/renderers/registry.d.ts +0 -134
  347. package/renderers/registry.d.ts.map +0 -1
  348. package/renderers/types.d.ts +0 -342
  349. package/renderers/types.d.ts.map +0 -1
  350. package/renderers/utils/detect.d.ts +0 -107
  351. package/renderers/utils/detect.d.ts.map +0 -1
  352. package/renderers/utils/hash.d.ts +0 -40
  353. package/renderers/utils/hash.d.ts.map +0 -1
  354. package/renderers/utils/index.d.ts +0 -9
  355. package/renderers/utils/index.d.ts.map +0 -1
  356. package/renderers/utils/transpiler.d.ts +0 -89
  357. package/renderers/utils/transpiler.d.ts.map +0 -1
  358. package/runtime/adapters/html.adapter.d.ts +0 -59
  359. package/runtime/adapters/html.adapter.d.ts.map +0 -1
  360. package/runtime/adapters/index.d.ts +0 -26
  361. package/runtime/adapters/index.d.ts.map +0 -1
  362. package/runtime/adapters/mdx.adapter.d.ts +0 -73
  363. package/runtime/adapters/mdx.adapter.d.ts.map +0 -1
  364. package/runtime/adapters/react.adapter.d.ts.map +0 -1
  365. package/runtime/adapters/types.d.ts +0 -95
  366. package/runtime/adapters/types.d.ts.map +0 -1
  367. package/runtime/csp.d.ts +0 -48
  368. package/runtime/csp.d.ts.map +0 -1
  369. package/runtime/index.d.ts +0 -17
  370. package/runtime/index.d.ts.map +0 -1
  371. package/runtime/index.js +0 -5264
  372. package/runtime/mcp-bridge.d.ts +0 -101
  373. package/runtime/mcp-bridge.d.ts.map +0 -1
  374. package/runtime/renderer-runtime.d.ts +0 -133
  375. package/runtime/renderer-runtime.d.ts.map +0 -1
  376. package/runtime/sanitizer.d.ts +0 -172
  377. package/runtime/sanitizer.d.ts.map +0 -1
  378. package/runtime/types.d.ts +0 -415
  379. package/runtime/types.d.ts.map +0 -1
  380. package/runtime/wrapper.d.ts +0 -421
  381. package/runtime/wrapper.d.ts.map +0 -1
  382. package/styles/index.d.ts +0 -8
  383. package/styles/index.d.ts.map +0 -1
  384. package/styles/index.js +0 -222
  385. package/styles/variants.d.ts +0 -51
  386. package/styles/variants.d.ts.map +0 -1
  387. package/theme/cdn.d.ts +0 -195
  388. package/theme/cdn.d.ts.map +0 -1
  389. package/theme/index.d.ts +0 -18
  390. package/theme/index.d.ts.map +0 -1
  391. package/theme/index.js +0 -757
  392. package/theme/platforms.d.ts +0 -107
  393. package/theme/platforms.d.ts.map +0 -1
  394. package/theme/presets/github-openai.d.ts +0 -50
  395. package/theme/presets/github-openai.d.ts.map +0 -1
  396. package/theme/presets/index.d.ts +0 -11
  397. package/theme/presets/index.d.ts.map +0 -1
  398. package/theme/theme.d.ts +0 -396
  399. package/theme/theme.d.ts.map +0 -1
  400. package/tool-template/builder.d.ts +0 -213
  401. package/tool-template/builder.d.ts.map +0 -1
  402. package/tool-template/index.d.ts +0 -16
  403. package/tool-template/index.d.ts.map +0 -1
  404. package/tool-template/index.js +0 -3559
  405. package/types/index.d.ts +0 -14
  406. package/types/index.d.ts.map +0 -1
  407. package/types/index.js +0 -108
  408. package/types/ui-config.d.ts +0 -639
  409. package/types/ui-config.d.ts.map +0 -1
  410. package/types/ui-runtime.d.ts +0 -1007
  411. package/types/ui-runtime.d.ts.map +0 -1
  412. package/typings/cache/cache-adapter.d.ts +0 -125
  413. package/typings/cache/cache-adapter.d.ts.map +0 -1
  414. package/typings/cache/index.d.ts +0 -10
  415. package/typings/cache/index.d.ts.map +0 -1
  416. package/typings/cache/memory-cache.d.ts +0 -92
  417. package/typings/cache/memory-cache.d.ts.map +0 -1
  418. package/typings/dts-parser.d.ts +0 -90
  419. package/typings/dts-parser.d.ts.map +0 -1
  420. package/typings/index.d.ts +0 -48
  421. package/typings/index.d.ts.map +0 -1
  422. package/typings/schemas.d.ts +0 -232
  423. package/typings/schemas.d.ts.map +0 -1
  424. package/typings/type-fetcher.d.ts +0 -89
  425. package/typings/type-fetcher.d.ts.map +0 -1
  426. package/typings/types.d.ts +0 -320
  427. package/typings/types.d.ts.map +0 -1
  428. package/utils/escape-html.d.ts +0 -58
  429. package/utils/escape-html.d.ts.map +0 -1
  430. package/utils/index.d.ts +0 -10
  431. package/utils/index.d.ts.map +0 -1
  432. package/utils/index.js +0 -70
  433. package/utils/safe-stringify.d.ts +0 -30
  434. package/utils/safe-stringify.d.ts.map +0 -1
  435. package/validation/error-box.d.ts +0 -56
  436. package/validation/error-box.d.ts.map +0 -1
  437. package/validation/index.d.ts +0 -13
  438. package/validation/index.d.ts.map +0 -1
  439. package/validation/index.js +0 -603
  440. package/validation/schema-paths.d.ts +0 -118
  441. package/validation/schema-paths.d.ts.map +0 -1
  442. package/validation/template-validator.d.ts +0 -143
  443. package/validation/template-validator.d.ts.map +0 -1
  444. package/validation/wrapper.d.ts +0 -97
  445. package/validation/wrapper.d.ts.map +0 -1
@@ -1,31 +1,17 @@
1
- // libs/ui/src/theme/platforms.ts
2
- var CLAUDE_PLATFORM = {
3
- id: "claude",
4
- name: "Claude (Artifacts)",
5
- supportsWidgets: true,
6
- supportsTailwind: true,
7
- supportsHtmx: false,
8
- // Network blocked, HTMX won't work for API calls
9
- networkMode: "blocked",
10
- scriptStrategy: "inline",
11
- maxInlineSize: 100 * 1024,
12
- // 100KB limit for artifacts
13
- cspRestrictions: ["script-src 'unsafe-inline'", "connect-src 'none'"],
14
- options: {
15
- mode: "artifacts",
16
- framework: "react"
17
- // Claude artifacts prefer React
18
- }
19
- };
20
-
21
- // libs/ui/src/utils/escape-html.ts
22
- function escapeHtml(str) {
23
- if (str === null || str === void 0) {
24
- return "";
25
- }
26
- const s = String(str);
27
- return s.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;").replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029");
28
- }
1
+ // libs/ui/src/layouts/base.ts
2
+ import {
3
+ OPENAI_PLATFORM,
4
+ canUseCdn,
5
+ needsInlineScripts,
6
+ DEFAULT_THEME,
7
+ buildThemeCss,
8
+ mergeThemes,
9
+ buildFontPreconnect,
10
+ buildFontStylesheets,
11
+ buildCdnScripts
12
+ } from "@frontmcp/uipack/theme";
13
+ import { escapeHtml } from "@frontmcp/uipack/utils";
14
+ import { escapeHtml as escapeHtml2 } from "@frontmcp/uipack/utils";
29
15
 
30
16
  // libs/ui/src/components/card.ts
31
17
  function getVariantClasses(variant) {
@@ -48,7 +34,7 @@ function getSizeClasses(size) {
48
34
  }
49
35
  function buildDataAttrs(data) {
50
36
  if (!data) return "";
51
- return Object.entries(data).map(([key, value]) => `data-${key}="${escapeHtml(value)}"`).join(" ");
37
+ return Object.entries(data).map(([key, value]) => `data-${key}="${escapeHtml2(value)}"`).join(" ");
52
38
  }
53
39
  function card(content, options = {}) {
54
40
  const {
@@ -69,18 +55,18 @@ function card(content, options = {}) {
69
55
  const clickableClasses = clickable ? "cursor-pointer hover:shadow-md transition-shadow" : "";
70
56
  const allClasses = [variantClasses, sizeClasses, clickableClasses, className].filter(Boolean).join(" ");
71
57
  const dataAttrs = buildDataAttrs(data);
72
- const idAttr = id ? `id="${escapeHtml(id)}"` : "";
58
+ const idAttr = id ? `id="${escapeHtml2(id)}"` : "";
73
59
  const hasHeader = title || subtitle || headerActions;
74
60
  const headerHtml = hasHeader ? `<div class="flex items-start justify-between mb-4">
75
61
  <div>
76
- ${title ? `<h3 class="text-lg font-semibold text-text-primary">${escapeHtml(title)}</h3>` : ""}
77
- ${subtitle ? `<p class="text-sm text-text-secondary mt-1">${escapeHtml(subtitle)}</p>` : ""}
62
+ ${title ? `<h3 class="text-lg font-semibold text-text-primary">${escapeHtml2(title)}</h3>` : ""}
63
+ ${subtitle ? `<p class="text-sm text-text-secondary mt-1">${escapeHtml2(subtitle)}</p>` : ""}
78
64
  </div>
79
65
  ${headerActions ? `<div class="flex items-center gap-2">${headerActions}</div>` : ""}
80
66
  </div>` : "";
81
67
  const footerHtml = footer ? `<div class="mt-4 pt-4 border-t border-divider">${footer}</div>` : "";
82
68
  if (href) {
83
- return `<a href="${escapeHtml(href)}" class="${allClasses}" ${idAttr} ${dataAttrs}>
69
+ return `<a href="${escapeHtml2(href)}" class="${allClasses}" ${idAttr} ${dataAttrs}>
84
70
  ${headerHtml}
85
71
  ${content}
86
72
  ${footerHtml}
@@ -145,7 +131,7 @@ function badge(text, options = {}) {
145
131
  outline: "border border-current"
146
132
  };
147
133
  const dotClasses = ["inline-block rounded-full", getSizeClasses2(size, true), dotVariants[variant], className].filter(Boolean).join(" ");
148
- return `<span class="${dotClasses}" aria-label="${escapeHtml(text)}" title="${escapeHtml(text)}"></span>`;
134
+ return `<span class="${dotClasses}" aria-label="${escapeHtml2(text)}" title="${escapeHtml2(text)}"></span>`;
149
135
  }
150
136
  const variantClasses = getVariantClasses2(variant);
151
137
  const sizeClasses = getSizeClasses2(size, false);
@@ -168,106 +154,62 @@ function badge(text, options = {}) {
168
154
  </svg>
169
155
  </button>` : "";
170
156
  return `<span class="${baseClasses}">
171
- ${iconHtml}${escapeHtml(text)}${removeHtml}
157
+ ${iconHtml}${escapeHtml2(text)}${removeHtml}
172
158
  </span>`;
173
159
  }
174
160
 
175
- // libs/ui/src/validation/error-box.ts
176
- var errorIcon = `<svg class="w-5 h-5 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true">
177
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"/>
178
- </svg>`;
179
- function validationErrorBox(options) {
180
- const { componentName, invalidParam } = options;
181
- return `<div
182
- class="validation-error flex items-start gap-3 p-4 bg-red-50 border border-red-200 text-red-800 rounded-lg"
183
- role="alert"
184
- data-testid="validation-error"
185
- data-component="${escapeHtml(componentName)}"
186
- data-param="${escapeHtml(invalidParam)}"
187
- >
188
- ${errorIcon}
189
- <div class="min-w-0">
190
- <p class="font-semibold text-sm">${escapeHtml(componentName)}: Invalid Configuration</p>
191
- <p class="text-sm opacity-90 mt-0.5">The "${escapeHtml(invalidParam)}" parameter is invalid.</p>
192
- </div>
193
- </div>`;
194
- }
195
-
196
- // libs/ui/src/validation/wrapper.ts
197
- function getFirstInvalidPath(error) {
198
- const firstError = error.issues[0];
199
- if (!firstError || firstError.path.length === 0) {
200
- return "options";
201
- }
202
- return firstError.path.map(String).join(".");
203
- }
204
- function validateOptions(options, config) {
205
- const result = config.schema.safeParse(options);
206
- if (result.success) {
207
- return { success: true, data: result.data };
208
- }
209
- const invalidParam = getFirstInvalidPath(result.error);
210
- return {
211
- success: false,
212
- error: validationErrorBox({
213
- componentName: config.componentName,
214
- invalidParam
215
- })
216
- };
217
- }
218
-
219
- // libs/ui/src/validation/schema-paths.ts
220
- import { z } from "zod";
161
+ // libs/ui/src/components/button.ts
162
+ import { validateOptions } from "@frontmcp/uipack/validation";
221
163
 
222
164
  // libs/ui/src/components/button.schema.ts
223
- import { z as z2 } from "zod";
224
- var ButtonVariantSchema = z2.enum(["primary", "secondary", "outline", "ghost", "danger", "success", "link"]);
225
- var ButtonSizeSchema = z2.enum(["xs", "sm", "md", "lg", "xl"]);
226
- var ButtonOptionsSchema = z2.object({
165
+ import { z } from "zod";
166
+ var ButtonVariantSchema = z.enum(["primary", "secondary", "outline", "ghost", "danger", "success", "link"]);
167
+ var ButtonSizeSchema = z.enum(["xs", "sm", "md", "lg", "xl"]);
168
+ var ButtonOptionsSchema = z.object({
227
169
  /** Button variant */
228
170
  variant: ButtonVariantSchema.optional(),
229
171
  /** Button size */
230
172
  size: ButtonSizeSchema.optional(),
231
173
  /** Button type attribute */
232
- type: z2.enum(["button", "submit", "reset"]).optional(),
174
+ type: z.enum(["button", "submit", "reset"]).optional(),
233
175
  /** Disabled state */
234
- disabled: z2.boolean().optional(),
176
+ disabled: z.boolean().optional(),
235
177
  /** Loading state */
236
- loading: z2.boolean().optional(),
178
+ loading: z.boolean().optional(),
237
179
  /** Full width */
238
- fullWidth: z2.boolean().optional(),
180
+ fullWidth: z.boolean().optional(),
239
181
  /** Icon before text (HTML string) */
240
- iconBefore: z2.string().optional(),
182
+ iconBefore: z.string().optional(),
241
183
  /** Icon after text (HTML string) */
242
- iconAfter: z2.string().optional(),
184
+ iconAfter: z.string().optional(),
243
185
  /** Icon only (no text) */
244
- iconOnly: z2.boolean().optional(),
186
+ iconOnly: z.boolean().optional(),
245
187
  /** Additional CSS classes */
246
- className: z2.string().optional(),
188
+ className: z.string().optional(),
247
189
  /** Button ID */
248
- id: z2.string().optional(),
190
+ id: z.string().optional(),
249
191
  /** Name attribute */
250
- name: z2.string().optional(),
192
+ name: z.string().optional(),
251
193
  /** Value attribute */
252
- value: z2.string().optional(),
194
+ value: z.string().optional(),
253
195
  /** Click handler (URL for links) */
254
- href: z2.string().optional(),
196
+ href: z.string().optional(),
255
197
  /** Open in new tab */
256
- target: z2.enum(["_blank", "_self"]).optional(),
198
+ target: z.enum(["_blank", "_self"]).optional(),
257
199
  /** Data attributes */
258
- data: z2.record(z2.string(), z2.string()).optional(),
200
+ data: z.record(z.string(), z.string()).optional(),
259
201
  /** ARIA label */
260
- ariaLabel: z2.string().optional()
202
+ ariaLabel: z.string().optional()
261
203
  }).strict();
262
- var ButtonGroupOptionsSchema = z2.object({
204
+ var ButtonGroupOptionsSchema = z.object({
263
205
  /** Attach buttons visually */
264
- attached: z2.boolean().optional(),
206
+ attached: z.boolean().optional(),
265
207
  /** Direction */
266
- direction: z2.enum(["horizontal", "vertical"]).optional(),
208
+ direction: z.enum(["horizontal", "vertical"]).optional(),
267
209
  /** Gap between buttons */
268
- gap: z2.enum(["sm", "md", "lg"]).optional(),
210
+ gap: z.enum(["sm", "md", "lg"]).optional(),
269
211
  /** Additional CSS classes */
270
- className: z2.string().optional()
212
+ className: z.string().optional()
271
213
  }).strict();
272
214
 
273
215
  // libs/ui/src/components/button.ts
@@ -360,7 +302,7 @@ function button(text, options = {}) {
360
302
  }
361
303
  const variantClasses = getVariantClasses3(variant);
362
304
  const sizeClasses = getSizeClasses3(size, iconOnly);
363
- const safeClassName = className ? escapeHtml(className) : "";
305
+ const safeClassName = className ? escapeHtml2(className) : "";
364
306
  const baseClasses = [
365
307
  "inline-flex items-center justify-center",
366
308
  "font-medium",
@@ -375,24 +317,24 @@ function button(text, options = {}) {
375
317
  ].filter(Boolean).join(" ");
376
318
  const dataAttrs = data ? Object.entries(data).map(([key, val]) => {
377
319
  const safeKey = sanitizeDataKey(key);
378
- return safeKey ? `data-${safeKey}="${escapeHtml(val)}"` : "";
320
+ return safeKey ? `data-${safeKey}="${escapeHtml2(val)}"` : "";
379
321
  }).filter(Boolean).join(" ") : "";
380
- const idAttr = id ? `id="${escapeHtml(id)}"` : "";
381
- const nameAttr = name ? `name="${escapeHtml(name)}"` : "";
382
- const valueAttr = value ? `value="${escapeHtml(value)}"` : "";
322
+ const idAttr = id ? `id="${escapeHtml2(id)}"` : "";
323
+ const nameAttr = name ? `name="${escapeHtml2(name)}"` : "";
324
+ const valueAttr = value ? `value="${escapeHtml2(value)}"` : "";
383
325
  const disabledAttr = disabled || loading ? "disabled" : "";
384
- const targetAttr = target ? `target="${escapeHtml(target)}"` : "";
326
+ const targetAttr = target ? `target="${escapeHtml2(target)}"` : "";
385
327
  const relAttr = target === "_blank" ? 'rel="noopener noreferrer"' : "";
386
328
  const trimmedText = text.trim();
387
329
  const effectiveAriaLabel = ariaLabel ?? (iconOnly && trimmedText ? trimmedText : void 0);
388
- const ariaLabelAttr = effectiveAriaLabel ? `aria-label="${escapeHtml(effectiveAriaLabel)}"` : "";
330
+ const ariaLabelAttr = effectiveAriaLabel ? `aria-label="${escapeHtml2(effectiveAriaLabel)}"` : "";
389
331
  const iconBeforeHtml = iconBefore && !loading ? `<span class="${iconOnly ? "" : "mr-2"}">${iconBefore}</span>` : "";
390
332
  const iconAfterHtml = iconAfter && !loading ? `<span class="${iconOnly ? "" : "ml-2"}">${iconAfter}</span>` : "";
391
333
  const loadingHtml = loading ? loadingSpinner : "";
392
- const textHtml = iconOnly ? "" : escapeHtml(text);
334
+ const textHtml = iconOnly ? "" : escapeHtml2(text);
393
335
  const contentHtml = `${loadingHtml}${iconBeforeHtml}${textHtml}${iconAfterHtml}`;
394
336
  if (href && !disabled && !loading && isValidHrefProtocol(href)) {
395
- return `<a href="${escapeHtml(
337
+ return `<a href="${escapeHtml2(
396
338
  href
397
339
  )}" class="${baseClasses}" ${idAttr} ${dataAttrs} ${ariaLabelAttr} ${targetAttr} ${relAttr}>
398
340
  ${contentHtml}
@@ -469,7 +411,7 @@ function resourceWidget(options) {
469
411
  cardOptions = {}
470
412
  } = options;
471
413
  const iconHtml = thumbnail ? `<div class="w-16 h-16 rounded-lg overflow-hidden bg-gray-100 flex-shrink-0">
472
- <img src="${escapeHtml(thumbnail)}" alt="${escapeHtml(title)}" class="w-full h-full object-cover">
414
+ <img src="${escapeHtml2(thumbnail)}" alt="${escapeHtml2(title)}" class="w-full h-full object-cover">
473
415
  </div>` : `<div class="w-16 h-16 rounded-lg bg-gray-100 flex items-center justify-center flex-shrink-0 text-gray-400">
474
416
  ${icon || resourceIcons[type]}
475
417
  </div>`;
@@ -504,12 +446,12 @@ function resourceWidget(options) {
504
446
  const variant = action.variant ? variantMap[action.variant] : "ghost";
505
447
  const htmxAttrs = [];
506
448
  if (action.htmx) {
507
- if (action.htmx.get) htmxAttrs.push(`hx-get="${escapeHtml(action.htmx.get)}"`);
508
- if (action.htmx.post) htmxAttrs.push(`hx-post="${escapeHtml(action.htmx.post)}"`);
509
- if (action.htmx.delete) htmxAttrs.push(`hx-delete="${escapeHtml(action.htmx.delete)}"`);
510
- if (action.htmx.target) htmxAttrs.push(`hx-target="${escapeHtml(action.htmx.target)}"`);
511
- if (action.htmx.swap) htmxAttrs.push(`hx-swap="${escapeHtml(action.htmx.swap)}"`);
512
- if (action.htmx.confirm) htmxAttrs.push(`hx-confirm="${escapeHtml(action.htmx.confirm)}"`);
449
+ if (action.htmx.get) htmxAttrs.push(`hx-get="${escapeHtml2(action.htmx.get)}"`);
450
+ if (action.htmx.post) htmxAttrs.push(`hx-post="${escapeHtml2(action.htmx.post)}"`);
451
+ if (action.htmx.delete) htmxAttrs.push(`hx-delete="${escapeHtml2(action.htmx.delete)}"`);
452
+ if (action.htmx.target) htmxAttrs.push(`hx-target="${escapeHtml2(action.htmx.target)}"`);
453
+ if (action.htmx.swap) htmxAttrs.push(`hx-swap="${escapeHtml2(action.htmx.swap)}"`);
454
+ if (action.htmx.confirm) htmxAttrs.push(`hx-confirm="${escapeHtml2(action.htmx.confirm)}"`);
513
455
  }
514
456
  return button(action.label, {
515
457
  variant,
@@ -526,12 +468,12 @@ function resourceWidget(options) {
526
468
  <div class="flex-1 min-w-0">
527
469
  <div class="flex items-start justify-between gap-2">
528
470
  <div class="min-w-0">
529
- ${url ? `<a href="${escapeHtml(
471
+ ${url ? `<a href="${escapeHtml2(
530
472
  url
531
- )}" class="font-semibold text-text-primary hover:text-primary truncate block">${escapeHtml(
473
+ )}" class="font-semibold text-text-primary hover:text-primary truncate block">${escapeHtml2(
532
474
  title
533
- )}</a>` : `<h3 class="font-semibold text-text-primary truncate">${escapeHtml(title)}</h3>`}
534
- ${description ? `<p class="text-sm text-text-secondary mt-0.5 line-clamp-2">${escapeHtml(description)}</p>` : ""}
475
+ )}</a>` : `<h3 class="font-semibold text-text-primary truncate">${escapeHtml2(title)}</h3>`}
476
+ ${description ? `<p class="text-sm text-text-secondary mt-0.5 line-clamp-2">${escapeHtml2(description)}</p>` : ""}
535
477
  ${metaHtml}
536
478
  ${tagsHtml}
537
479
  </div>
@@ -559,7 +501,7 @@ function resourceList(options) {
559
501
  showLoadMore = false,
560
502
  loadMoreUrl
561
503
  } = options;
562
- const titleHtml = title ? `<h2 class="text-lg font-semibold text-text-primary mb-4">${escapeHtml(title)}</h2>` : "";
504
+ const titleHtml = title ? `<h2 class="text-lg font-semibold text-text-primary mb-4">${escapeHtml2(title)}</h2>` : "";
563
505
  if (resources.length === 0) {
564
506
  return `<div class="${className}">
565
507
  ${titleHtml}
@@ -567,7 +509,7 @@ function resourceList(options) {
567
509
  <svg class="w-12 h-12 mx-auto mb-4 text-gray-300" fill="none" stroke="currentColor" viewBox="0 0 24 24">
568
510
  <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M20 13V6a2 2 0 00-2-2H6a2 2 0 00-2 2v7m16 0v5a2 2 0 01-2 2H6a2 2 0 01-2-2v-5m16 0h-2.586a1 1 0 00-.707.293l-2.414 2.414a1 1 0 01-.707.293h-3.172a1 1 0 01-.707-.293l-2.414-2.414A1 1 0 006.586 13H4"/>
569
511
  </svg>
570
- <p>${escapeHtml(emptyMessage)}</p>
512
+ <p>${escapeHtml2(emptyMessage)}</p>
571
513
  </div>
572
514
  </div>`;
573
515
  }
@@ -594,7 +536,7 @@ function resourceItem(options) {
594
536
  </div>`;
595
537
  const statusHtml = status ? badge(status.label, { variant: status.variant, size: "sm" }) : "";
596
538
  const metaText = meta?.size ? formatFileSize(meta.size) : "";
597
- const titleElement = url ? `<a href="${escapeHtml(url)}" class="font-medium text-text-primary hover:text-primary">${escapeHtml(title)}</a>` : `<span class="font-medium text-text-primary">${escapeHtml(title)}</span>`;
539
+ const titleElement = url ? `<a href="${escapeHtml2(url)}" class="font-medium text-text-primary hover:text-primary">${escapeHtml2(title)}</a>` : `<span class="font-medium text-text-primary">${escapeHtml2(title)}</span>`;
598
540
  return `<div class="flex items-center gap-3 p-3 rounded-lg hover:bg-gray-50 transition-colors">
599
541
  ${iconHtml}
600
542
  <div class="flex-1 min-w-0">
@@ -602,7 +544,7 @@ function resourceItem(options) {
602
544
  ${titleElement}
603
545
  ${statusHtml}
604
546
  </div>
605
- ${description || metaText ? `<p class="text-sm text-text-secondary truncate">${escapeHtml(description || metaText)}</p>` : ""}
547
+ ${description || metaText ? `<p class="text-sm text-text-secondary truncate">${escapeHtml2(description || metaText)}</p>` : ""}
606
548
  </div>
607
549
  </div>`;
608
550
  }
@@ -631,7 +573,7 @@ function codePreview(options) {
631
573
  </script>` : "";
632
574
  const copyButton = showCopy ? `<button
633
575
  type="button"
634
- onclick="copyCode(this, ${escapeHtml(JSON.stringify(code))})"
576
+ onclick="copyCode(this, ${escapeHtml2(JSON.stringify(code))})"
635
577
  class="p-1.5 rounded hover:bg-gray-700 transition-colors"
636
578
  title="Copy code"
637
579
  >
@@ -642,9 +584,9 @@ function codePreview(options) {
642
584
  return `<div class="code-preview rounded-lg overflow-hidden ${className}">
643
585
  ${filename || showCopy ? `
644
586
  <div class="flex items-center justify-between px-4 py-2 bg-gray-800 border-b border-gray-700">
645
- ${filename ? `<span class="text-sm text-gray-300">${escapeHtml(filename)}</span>` : "<span></span>"}
587
+ ${filename ? `<span class="text-sm text-gray-300">${escapeHtml2(filename)}</span>` : "<span></span>"}
646
588
  <div class="flex items-center gap-2">
647
- ${language ? `<span class="text-xs text-gray-500">${escapeHtml(language)}</span>` : ""}
589
+ ${language ? `<span class="text-xs text-gray-500">${escapeHtml2(language)}</span>` : ""}
648
590
  ${copyButton}
649
591
  </div>
650
592
  </div>
@@ -652,7 +594,7 @@ function codePreview(options) {
652
594
  <div class="bg-gray-900 p-4 overflow-auto" style="max-height: ${maxHeight}">
653
595
  <div class="flex text-sm font-mono">
654
596
  ${lineNumbersHtml}
655
- <pre class="flex-1 text-gray-100"><code>${escapeHtml(code)}</code></pre>
597
+ <pre class="flex-1 text-gray-100"><code>${escapeHtml2(code)}</code></pre>
656
598
  </div>
657
599
  </div>
658
600
  ${copyScript}
@@ -661,13 +603,13 @@ function codePreview(options) {
661
603
  function imagePreview(options) {
662
604
  const { src, alt, caption, maxHeight = "400px", clickable = true, className = "" } = options;
663
605
  const imageHtml = `<img
664
- src="${escapeHtml(src)}"
665
- alt="${escapeHtml(alt)}"
606
+ src="${escapeHtml2(src)}"
607
+ alt="${escapeHtml2(alt)}"
666
608
  class="max-w-full h-auto rounded-lg"
667
609
  style="max-height: ${maxHeight}"
668
610
  >`;
669
- const captionHtml = caption ? `<p class="text-sm text-text-secondary mt-2 text-center">${escapeHtml(caption)}</p>` : "";
670
- const content = clickable ? `<a href="${escapeHtml(src)}" target="_blank" rel="noopener" class="block">${imageHtml}</a>` : imageHtml;
611
+ const captionHtml = caption ? `<p class="text-sm text-text-secondary mt-2 text-center">${escapeHtml2(caption)}</p>` : "";
612
+ const content = clickable ? `<a href="${escapeHtml2(src)}" target="_blank" rel="noopener" class="block">${imageHtml}</a>` : imageHtml;
671
613
  return `<div class="image-preview ${className}">
672
614
  ${content}
673
615
  ${captionHtml}
@@ -701,11 +643,11 @@ function progressBar(options) {
701
643
  };
702
644
  const animatedClass = animated ? "bg-stripes animate-stripes" : "";
703
645
  const displayLabel = label || `${Math.round(clampedValue)}%`;
704
- const insideLabel = labelPosition === "inside" && size === "lg" && clampedValue > 10 ? `<span class="absolute inset-0 flex items-center justify-center text-xs font-medium text-white">${escapeHtml(
646
+ const insideLabel = labelPosition === "inside" && size === "lg" && clampedValue > 10 ? `<span class="absolute inset-0 flex items-center justify-center text-xs font-medium text-white">${escapeHtml2(
705
647
  displayLabel
706
648
  )}</span>` : "";
707
649
  const outsideLabel = showLabel && labelPosition === "outside" ? `<div class="flex justify-between mb-1">
708
- <span class="text-sm font-medium text-text-primary">${label ? escapeHtml(label) : "Progress"}</span>
650
+ <span class="text-sm font-medium text-text-primary">${label ? escapeHtml2(label) : "Progress"}</span>
709
651
  <span class="text-sm text-text-secondary">${Math.round(clampedValue)}%</span>
710
652
  </div>` : "";
711
653
  return `<div class="progress-bar ${className}">
@@ -787,13 +729,13 @@ function stepProgress(options) {
787
729
  ${getStepIcon(step, index)}
788
730
  </div>
789
731
  <div class="pt-2">
790
- <div class="${classes.text}">${escapeHtml(step.label)}</div>
791
- ${step.description ? `<p class="text-sm text-text-secondary mt-0.5">${escapeHtml(step.description)}</p>` : ""}
732
+ <div class="${classes.text}">${escapeHtml2(step.label)}</div>
733
+ ${step.description ? `<p class="text-sm text-text-secondary mt-0.5">${escapeHtml2(step.description)}</p>` : ""}
792
734
  </div>
793
735
  </div>
794
736
  ${connectorHtml}
795
737
  `;
796
- return step.href && step.status === "completed" ? `<a href="${escapeHtml(step.href)}" class="block hover:opacity-80">${stepContent}</a>` : `<div>${stepContent}</div>`;
738
+ return step.href && step.status === "completed" ? `<a href="${escapeHtml2(step.href)}" class="block hover:opacity-80">${stepContent}</a>` : `<div>${stepContent}</div>`;
797
739
  }).join("\n");
798
740
  return `<div class="step-progress ${className}">${stepsHtml2}</div>`;
799
741
  }
@@ -807,12 +749,12 @@ function stepProgress(options) {
807
749
  ${getStepIcon(step, index)}
808
750
  </div>
809
751
  <div class="mt-2 text-center">
810
- <div class="${classes.text} text-sm">${escapeHtml(step.label)}</div>
811
- ${step.description ? `<p class="text-xs text-text-secondary mt-0.5 max-w-[120px]">${escapeHtml(step.description)}</p>` : ""}
752
+ <div class="${classes.text} text-sm">${escapeHtml2(step.label)}</div>
753
+ ${step.description ? `<p class="text-xs text-text-secondary mt-0.5 max-w-[120px]">${escapeHtml2(step.description)}</p>` : ""}
812
754
  </div>
813
755
  </div>
814
756
  `;
815
- const clickableStep = step.href && step.status === "completed" ? `<a href="${escapeHtml(step.href)}" class="hover:opacity-80">${stepHtml}</a>` : stepHtml;
757
+ const clickableStep = step.href && step.status === "completed" ? `<a href="${escapeHtml2(step.href)}" class="hover:opacity-80">${stepHtml}</a>` : stepHtml;
816
758
  return `${clickableStep}${connectorHtml}`;
817
759
  }).join("\n");
818
760
  return `<div class="step-progress flex items-start ${className}">${stepsHtml}</div>`;
@@ -855,7 +797,7 @@ function circularProgress(options) {
855
797
  style="stroke-dasharray: ${circumference}; stroke-dashoffset: ${offset}; transition: stroke-dashoffset 0.3s ease;"
856
798
  />
857
799
  </svg>
858
- ${showLabel ? `<span class="absolute text-sm font-semibold text-text-primary">${escapeHtml(displayLabel)}</span>` : ""}
800
+ ${showLabel ? `<span class="absolute text-sm font-semibold text-text-primary">${escapeHtml2(displayLabel)}</span>` : ""}
859
801
  </div>`;
860
802
  }
861
803
  function statusIndicator(options) {
@@ -883,7 +825,7 @@ function statusIndicator(options) {
883
825
  ${pulseHtml}
884
826
  <span class="relative ${sizeInfo.dot} ${statusInfo.color} rounded-full"></span>
885
827
  </span>
886
- ${displayLabel ? `<span class="${sizeInfo.text} text-text-secondary">${escapeHtml(displayLabel)}</span>` : ""}
828
+ ${displayLabel ? `<span class="${sizeInfo.text} text-text-secondary">${escapeHtml2(displayLabel)}</span>` : ""}
887
829
  </div>`;
888
830
  }
889
831
  function skeleton(options = {}) {
package/index.d.ts CHANGED
@@ -1,56 +1,40 @@
1
1
  /**
2
2
  * @frontmcp/ui
3
3
  *
4
- * Comprehensive UI library for FrontMCP applications.
5
- * Provides theme system, layouts, components, page templates, and widgets
6
- * for building authentication and authorization UIs across multiple LLM platforms.
4
+ * UI component library for FrontMCP applications.
5
+ * Provides HTML components, React components, and rendering utilities.
7
6
  *
8
- * Key features:
9
- * - Multi-framework renderer support (HTML, React, MDX)
10
- * - Platform-aware theming (OpenAI, Claude, etc.)
11
- * - Runtime JSX/TSX transpilation with SWC
12
- * - MCP Bridge integration for cross-platform widgets
13
- * - Standalone types and adapters for external consumers (AgentLink)
14
- * - Build-time API for pre-compiling UI templates
15
- *
16
- * ## Standalone Usage (without @frontmcp/sdk)
17
- *
18
- * For external systems like AgentLink that want to use the UI components
19
- * without the full SDK:
7
+ * For build tools, bundling, platform adapters, and theming, use @frontmcp/uipack.
20
8
  *
9
+ * @example HTML components
21
10
  * ```typescript
22
- * // Import standalone types
23
- * import type { UITemplateConfig, TemplateContext } from '@frontmcp/ui/types';
11
+ * import { button, card, alert, badge } from '@frontmcp/ui/components';
12
+ * import { baseLayout } from '@frontmcp/ui/layouts';
13
+ * ```
24
14
  *
25
- * // Import platform adapters
26
- * import { buildUIMeta } from '@frontmcp/ui/adapters';
15
+ * @example Theme (from uipack)
16
+ * ```typescript
17
+ * import { DEFAULT_THEME, createTheme } from '@frontmcp/uipack/theme';
18
+ * ```
27
19
  *
28
- * // Import build-time API
29
- * import { buildToolUI } from '@frontmcp/ui/build';
20
+ * @example React components
21
+ * ```typescript
22
+ * import { Button, Card, Alert, Badge } from '@frontmcp/ui/react';
23
+ * import { useMcpBridge, useCallTool } from '@frontmcp/ui/react/hooks';
24
+ * ```
30
25
  *
31
- * // Import components directly
32
- * import { card, button, table } from '@frontmcp/ui/components';
26
+ * @example Universal renderer
27
+ * ```typescript
28
+ * import { UniversalApp, FrontMCPProvider } from '@frontmcp/ui/universal';
33
29
  * ```
34
30
  */
35
- export * from './types';
36
- export { safeStringify } from './utils';
37
- export { type AIPlatformType, type UIMetadata, type BuildUIMetaOptions, type BuildToolDiscoveryMetaOptions, buildUIMeta, buildToolDiscoveryMeta, buildOpenAICSP, type ResolvedServingMode, type ResolveServingModeOptions, resolveServingMode, isPlatformModeSupported, getDefaultServingMode, platformUsesStructuredContent, platformSupportsWidgets, type TextContentBlock, type BuildToolResponseOptions, type ToolResponseContent, buildToolResponseContent, } from './adapters';
38
- export { type BuildTargetPlatform, type BuildOptions, type BuildResult, type MultiBuildOptions, type MultiBuildResult, type StaticWidgetOptions, buildToolUI, buildToolUIMulti, buildStaticWidget, } from './build';
39
- export * from './validation';
40
- export * from './theme';
41
- export * from './layouts';
42
31
  export * from './components';
32
+ export * from './layouts';
43
33
  export * from './pages';
44
34
  export * from './widgets';
45
- export { type ProviderType, type DisplayMode, type ThemeMode, type HostContext, type MCPBridge, type MCPBridgeExtended, type WrapToolUIOptions, type OpenAIRuntime, type OpenAIUserAgent, type SafeAreaInsets, MCP_BRIDGE_RUNTIME, getMCPBridgeScript, isMCPBridgeSupported, DEFAULT_CDN_DOMAINS, DEFAULT_CSP_DIRECTIVES, RESTRICTIVE_CSP_DIRECTIVES, buildCSPDirectives, buildCSPMetaTag, validateCSPDomain, sanitizeCSPDomains, type WrapToolUIFullOptions, wrapToolUI, wrapToolUIMinimal, createTemplateHelpers, getToolUIMimeType, type SanitizerFn, type SanitizeOptions, REDACTION_TOKENS, PII_PATTERNS, sanitizeInput, createSanitizer, detectPII, isEmail, isPhone, isCreditCard, isSSN, isIPv4, detectPIIType, redactPIIFromText, } from './runtime';
46
- export * from './tool-template';
47
- export * from './base-template';
48
- export * from './renderers';
49
35
  export { type PlatformAdapter, type AdapterCapabilities, type BridgeConfig, FrontMcpBridge, createBridge, AdapterRegistry, defaultRegistry, registerAdapter, generateBridgeIIFE, generatePlatformBundle, UNIVERSAL_BRIDGE_SCRIPT, BRIDGE_SCRIPT_TAGS, } from './bridge';
50
36
  export { registerAllComponents, registerFmcpButton, registerFmcpCard, registerFmcpAlert, registerFmcpBadge, registerFmcpInput, registerFmcpSelect, FmcpButton, FmcpCard, FmcpAlert, FmcpBadge, FmcpInput, FmcpSelect, FmcpElement, } from './web-components';
51
- export { ToolUIRegistry, type RenderOptions, type UIRenderResult, type CompileStaticWidgetOptions, type HybridComponentPayload, type BuildHybridComponentPayloadOptions, renderToolTemplate, renderToolTemplateAsync, isReactComponent, hasUIConfig, containsMdxSyntax, type RenderTemplateOptions, UI_RESOURCE_SCHEME, isUIResourceUri, isStaticWidgetUri, parseWidgetUri, buildStaticWidgetUri, getUIResourceMimeType, type ParsedWidgetUri, } from './registry';
52
- export { type CDNProvider, type CDNPlatformType, type CDNDependency, type FileBundleOptions, type ImportMap, type ResolvedDependency, type ComponentBuildManifest, type CDNRegistryEntry, type CDNRegistry, type ParsedImport, type ParsedImportResult, type TemplateMode, detectTemplateMode, DEFAULT_CDN_REGISTRY, lookupPackage, getPackageCDNUrl, isPackageRegistered, parseImports, extractExternalPackages, getPackageName, DependencyResolver, createResolver, createClaudeResolver, createOpenAIResolver, resolveDependencies, generateImportMapForPackages, createImportMap, generateImportMapScriptTag, generateDependencyHTML, generateUMDShim, } from './dependency';
53
- export { ComponentBuilder, createFilesystemBuilder, createRedisBuilder, type ComponentBuildOptions, type ComponentBuildResult, FilesystemStorage, RedisStorage, type BuildCacheStorage, sha256, calculateComponentHash, calculateQuickHash, generateBuildId, } from './bundler/file-cache';
54
- export { type ContentType, type UniversalContent, type FrontMCPState, type FrontMCPStore, type RenderContext, type ClientRenderer, type UniversalAppProps, type FrontMCPProviderProps, type CDNType, type UniversalRuntimeOptions, type UniversalRuntimeResult, createFrontMCPStore, getGlobalStore, setGlobalStore, resetGlobalStore, useFrontMCPStore, useToolOutput as useUniversalToolOutput, useToolInput as useUniversalToolInput, useContent, useToolName, useLoadingState, initializeStoreFromWindow, FrontMCPProvider, ComponentsProvider, UniversalProvider, useFrontMCPContext, useComponents, withFrontMCP, RendererRegistry, rendererRegistry, detectRenderer, renderContent, createContent, htmlRenderer, safeHtmlRenderer, markdownRenderer, reactRenderer, mdxRenderer, UniversalApp, UniversalAppWithProvider, LoadingSpinner, ErrorDisplay, EmptyState, buildUniversalRuntime, buildMinimalRuntime, getCachedRuntime, clearRuntimeCache, getRuntimeCacheStats, buildAppScript, buildDataInjectionCode, buildComponentCode, RUNTIME_PLACEHOLDERS, type CachedRuntimeOptions, type CachedRuntimeResult, DEFAULT_FRONTMCP_STATE, UNIVERSAL_CDN, detectContentType, } from './universal';
55
- export { type TypeFetchResult, type TypeFetchError, type TypeFetchErrorCode, type TypeFetchBatchRequest, type TypeFetchBatchResult, type TypeCacheEntry, type TypeCacheStats, type DtsImport, type DtsParseResult, type TypeFetcherOptions, type PackageResolution, DEFAULT_TYPE_FETCHER_OPTIONS, TYPE_CACHE_PREFIX, DEFAULT_TYPE_CACHE_TTL, type TypeCacheAdapter, type TypeCacheOptions, DEFAULT_CACHE_OPTIONS as DEFAULT_TYPE_CACHE_OPTIONS, MemoryTypeCache, globalTypeCache, parseDtsImports, isRelativeImport, getPackageFromSpecifier, getSubpathFromSpecifier, parseImportStatement, combineDtsContents, TypeFetcher, createTypeFetcher, } from './typings';
37
+ export * from './react';
38
+ export * from './render';
39
+ export { ReactRenderer, reactRenderer, buildHydrationScript, ReactRendererAdapter, createReactAdapter, loadReactAdapter, } from './renderers';
56
40
  //# sourceMappingURL=index.d.ts.map
package/index.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAKH,cAAc,cAAc,CAAC;AAK7B,cAAc,WAAW,CAAC;AAK1B,cAAc,SAAS,CAAC;AAKxB,cAAc,WAAW,CAAC;AAK1B,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EAEjB,cAAc,EACd,YAAY,EAEZ,eAAe,EACf,eAAe,EACf,eAAe,EAEf,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,UAAU,CAAC;AAKlB,OAAO,EAEL,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAElB,UAAU,EACV,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,UAAU,EAEV,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAK1B,cAAc,SAAS,CAAC;AAKxB,cAAc,UAAU,CAAC;AAKzB,OAAO,EACL,aAAa,EACb,aAAa,EACb,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,aAAa,CAAC"}