@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
package/widgets/index.js CHANGED
@@ -34,34 +34,10 @@ __export(widgets_exports, {
34
34
  });
35
35
  module.exports = __toCommonJS(widgets_exports);
36
36
 
37
- // libs/ui/src/theme/platforms.ts
38
- var CLAUDE_PLATFORM = {
39
- id: "claude",
40
- name: "Claude (Artifacts)",
41
- supportsWidgets: true,
42
- supportsTailwind: true,
43
- supportsHtmx: false,
44
- // Network blocked, HTMX won't work for API calls
45
- networkMode: "blocked",
46
- scriptStrategy: "inline",
47
- maxInlineSize: 100 * 1024,
48
- // 100KB limit for artifacts
49
- cspRestrictions: ["script-src 'unsafe-inline'", "connect-src 'none'"],
50
- options: {
51
- mode: "artifacts",
52
- framework: "react"
53
- // Claude artifacts prefer React
54
- }
55
- };
56
-
57
- // libs/ui/src/utils/escape-html.ts
58
- function escapeHtml(str) {
59
- if (str === null || str === void 0) {
60
- return "";
61
- }
62
- const s = String(str);
63
- 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");
64
- }
37
+ // libs/ui/src/layouts/base.ts
38
+ var import_theme = require("@frontmcp/uipack/theme");
39
+ var import_utils = require("@frontmcp/uipack/utils");
40
+ var import_utils2 = require("@frontmcp/uipack/utils");
65
41
 
66
42
  // libs/ui/src/components/card.ts
67
43
  function getVariantClasses(variant) {
@@ -84,7 +60,7 @@ function getSizeClasses(size) {
84
60
  }
85
61
  function buildDataAttrs(data) {
86
62
  if (!data) return "";
87
- return Object.entries(data).map(([key, value]) => `data-${key}="${escapeHtml(value)}"`).join(" ");
63
+ return Object.entries(data).map(([key, value]) => `data-${key}="${(0, import_utils2.escapeHtml)(value)}"`).join(" ");
88
64
  }
89
65
  function card(content, options = {}) {
90
66
  const {
@@ -105,18 +81,18 @@ function card(content, options = {}) {
105
81
  const clickableClasses = clickable ? "cursor-pointer hover:shadow-md transition-shadow" : "";
106
82
  const allClasses = [variantClasses, sizeClasses, clickableClasses, className].filter(Boolean).join(" ");
107
83
  const dataAttrs = buildDataAttrs(data);
108
- const idAttr = id ? `id="${escapeHtml(id)}"` : "";
84
+ const idAttr = id ? `id="${(0, import_utils2.escapeHtml)(id)}"` : "";
109
85
  const hasHeader = title || subtitle || headerActions;
110
86
  const headerHtml = hasHeader ? `<div class="flex items-start justify-between mb-4">
111
87
  <div>
112
- ${title ? `<h3 class="text-lg font-semibold text-text-primary">${escapeHtml(title)}</h3>` : ""}
113
- ${subtitle ? `<p class="text-sm text-text-secondary mt-1">${escapeHtml(subtitle)}</p>` : ""}
88
+ ${title ? `<h3 class="text-lg font-semibold text-text-primary">${(0, import_utils2.escapeHtml)(title)}</h3>` : ""}
89
+ ${subtitle ? `<p class="text-sm text-text-secondary mt-1">${(0, import_utils2.escapeHtml)(subtitle)}</p>` : ""}
114
90
  </div>
115
91
  ${headerActions ? `<div class="flex items-center gap-2">${headerActions}</div>` : ""}
116
92
  </div>` : "";
117
93
  const footerHtml = footer ? `<div class="mt-4 pt-4 border-t border-divider">${footer}</div>` : "";
118
94
  if (href) {
119
- return `<a href="${escapeHtml(href)}" class="${allClasses}" ${idAttr} ${dataAttrs}>
95
+ return `<a href="${(0, import_utils2.escapeHtml)(href)}" class="${allClasses}" ${idAttr} ${dataAttrs}>
120
96
  ${headerHtml}
121
97
  ${content}
122
98
  ${footerHtml}
@@ -181,7 +157,7 @@ function badge(text, options = {}) {
181
157
  outline: "border border-current"
182
158
  };
183
159
  const dotClasses = ["inline-block rounded-full", getSizeClasses2(size, true), dotVariants[variant], className].filter(Boolean).join(" ");
184
- return `<span class="${dotClasses}" aria-label="${escapeHtml(text)}" title="${escapeHtml(text)}"></span>`;
160
+ return `<span class="${dotClasses}" aria-label="${(0, import_utils2.escapeHtml)(text)}" title="${(0, import_utils2.escapeHtml)(text)}"></span>`;
185
161
  }
186
162
  const variantClasses = getVariantClasses2(variant);
187
163
  const sizeClasses = getSizeClasses2(size, false);
@@ -204,106 +180,62 @@ function badge(text, options = {}) {
204
180
  </svg>
205
181
  </button>` : "";
206
182
  return `<span class="${baseClasses}">
207
- ${iconHtml}${escapeHtml(text)}${removeHtml}
183
+ ${iconHtml}${(0, import_utils2.escapeHtml)(text)}${removeHtml}
208
184
  </span>`;
209
185
  }
210
186
 
211
- // libs/ui/src/validation/error-box.ts
212
- var errorIcon = `<svg class="w-5 h-5 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true">
213
- <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"/>
214
- </svg>`;
215
- function validationErrorBox(options) {
216
- const { componentName, invalidParam } = options;
217
- return `<div
218
- class="validation-error flex items-start gap-3 p-4 bg-red-50 border border-red-200 text-red-800 rounded-lg"
219
- role="alert"
220
- data-testid="validation-error"
221
- data-component="${escapeHtml(componentName)}"
222
- data-param="${escapeHtml(invalidParam)}"
223
- >
224
- ${errorIcon}
225
- <div class="min-w-0">
226
- <p class="font-semibold text-sm">${escapeHtml(componentName)}: Invalid Configuration</p>
227
- <p class="text-sm opacity-90 mt-0.5">The "${escapeHtml(invalidParam)}" parameter is invalid.</p>
228
- </div>
229
- </div>`;
230
- }
231
-
232
- // libs/ui/src/validation/wrapper.ts
233
- function getFirstInvalidPath(error) {
234
- const firstError = error.issues[0];
235
- if (!firstError || firstError.path.length === 0) {
236
- return "options";
237
- }
238
- return firstError.path.map(String).join(".");
239
- }
240
- function validateOptions(options, config) {
241
- const result = config.schema.safeParse(options);
242
- if (result.success) {
243
- return { success: true, data: result.data };
244
- }
245
- const invalidParam = getFirstInvalidPath(result.error);
246
- return {
247
- success: false,
248
- error: validationErrorBox({
249
- componentName: config.componentName,
250
- invalidParam
251
- })
252
- };
253
- }
254
-
255
- // libs/ui/src/validation/schema-paths.ts
256
- var import_zod = require("zod");
187
+ // libs/ui/src/components/button.ts
188
+ var import_validation = require("@frontmcp/uipack/validation");
257
189
 
258
190
  // libs/ui/src/components/button.schema.ts
259
- var import_zod2 = require("zod");
260
- var ButtonVariantSchema = import_zod2.z.enum(["primary", "secondary", "outline", "ghost", "danger", "success", "link"]);
261
- var ButtonSizeSchema = import_zod2.z.enum(["xs", "sm", "md", "lg", "xl"]);
262
- var ButtonOptionsSchema = import_zod2.z.object({
191
+ var import_zod = require("zod");
192
+ var ButtonVariantSchema = import_zod.z.enum(["primary", "secondary", "outline", "ghost", "danger", "success", "link"]);
193
+ var ButtonSizeSchema = import_zod.z.enum(["xs", "sm", "md", "lg", "xl"]);
194
+ var ButtonOptionsSchema = import_zod.z.object({
263
195
  /** Button variant */
264
196
  variant: ButtonVariantSchema.optional(),
265
197
  /** Button size */
266
198
  size: ButtonSizeSchema.optional(),
267
199
  /** Button type attribute */
268
- type: import_zod2.z.enum(["button", "submit", "reset"]).optional(),
200
+ type: import_zod.z.enum(["button", "submit", "reset"]).optional(),
269
201
  /** Disabled state */
270
- disabled: import_zod2.z.boolean().optional(),
202
+ disabled: import_zod.z.boolean().optional(),
271
203
  /** Loading state */
272
- loading: import_zod2.z.boolean().optional(),
204
+ loading: import_zod.z.boolean().optional(),
273
205
  /** Full width */
274
- fullWidth: import_zod2.z.boolean().optional(),
206
+ fullWidth: import_zod.z.boolean().optional(),
275
207
  /** Icon before text (HTML string) */
276
- iconBefore: import_zod2.z.string().optional(),
208
+ iconBefore: import_zod.z.string().optional(),
277
209
  /** Icon after text (HTML string) */
278
- iconAfter: import_zod2.z.string().optional(),
210
+ iconAfter: import_zod.z.string().optional(),
279
211
  /** Icon only (no text) */
280
- iconOnly: import_zod2.z.boolean().optional(),
212
+ iconOnly: import_zod.z.boolean().optional(),
281
213
  /** Additional CSS classes */
282
- className: import_zod2.z.string().optional(),
214
+ className: import_zod.z.string().optional(),
283
215
  /** Button ID */
284
- id: import_zod2.z.string().optional(),
216
+ id: import_zod.z.string().optional(),
285
217
  /** Name attribute */
286
- name: import_zod2.z.string().optional(),
218
+ name: import_zod.z.string().optional(),
287
219
  /** Value attribute */
288
- value: import_zod2.z.string().optional(),
220
+ value: import_zod.z.string().optional(),
289
221
  /** Click handler (URL for links) */
290
- href: import_zod2.z.string().optional(),
222
+ href: import_zod.z.string().optional(),
291
223
  /** Open in new tab */
292
- target: import_zod2.z.enum(["_blank", "_self"]).optional(),
224
+ target: import_zod.z.enum(["_blank", "_self"]).optional(),
293
225
  /** Data attributes */
294
- data: import_zod2.z.record(import_zod2.z.string(), import_zod2.z.string()).optional(),
226
+ data: import_zod.z.record(import_zod.z.string(), import_zod.z.string()).optional(),
295
227
  /** ARIA label */
296
- ariaLabel: import_zod2.z.string().optional()
228
+ ariaLabel: import_zod.z.string().optional()
297
229
  }).strict();
298
- var ButtonGroupOptionsSchema = import_zod2.z.object({
230
+ var ButtonGroupOptionsSchema = import_zod.z.object({
299
231
  /** Attach buttons visually */
300
- attached: import_zod2.z.boolean().optional(),
232
+ attached: import_zod.z.boolean().optional(),
301
233
  /** Direction */
302
- direction: import_zod2.z.enum(["horizontal", "vertical"]).optional(),
234
+ direction: import_zod.z.enum(["horizontal", "vertical"]).optional(),
303
235
  /** Gap between buttons */
304
- gap: import_zod2.z.enum(["sm", "md", "lg"]).optional(),
236
+ gap: import_zod.z.enum(["sm", "md", "lg"]).optional(),
305
237
  /** Additional CSS classes */
306
- className: import_zod2.z.string().optional()
238
+ className: import_zod.z.string().optional()
307
239
  }).strict();
308
240
 
309
241
  // libs/ui/src/components/button.ts
@@ -356,7 +288,7 @@ function isValidHrefProtocol(href) {
356
288
  return trimmed.startsWith("http://") || trimmed.startsWith("https://") || trimmed.startsWith("/") || trimmed.startsWith("#") || trimmed.startsWith("mailto:") || trimmed.startsWith("tel:");
357
289
  }
358
290
  function button(text, options = {}) {
359
- const validation = validateOptions(options, {
291
+ const validation = (0, import_validation.validateOptions)(options, {
360
292
  schema: ButtonOptionsSchema,
361
293
  componentName: "button"
362
294
  });
@@ -396,7 +328,7 @@ function button(text, options = {}) {
396
328
  }
397
329
  const variantClasses = getVariantClasses3(variant);
398
330
  const sizeClasses = getSizeClasses3(size, iconOnly);
399
- const safeClassName = className ? escapeHtml(className) : "";
331
+ const safeClassName = className ? (0, import_utils2.escapeHtml)(className) : "";
400
332
  const baseClasses = [
401
333
  "inline-flex items-center justify-center",
402
334
  "font-medium",
@@ -411,24 +343,24 @@ function button(text, options = {}) {
411
343
  ].filter(Boolean).join(" ");
412
344
  const dataAttrs = data ? Object.entries(data).map(([key, val]) => {
413
345
  const safeKey = sanitizeDataKey(key);
414
- return safeKey ? `data-${safeKey}="${escapeHtml(val)}"` : "";
346
+ return safeKey ? `data-${safeKey}="${(0, import_utils2.escapeHtml)(val)}"` : "";
415
347
  }).filter(Boolean).join(" ") : "";
416
- const idAttr = id ? `id="${escapeHtml(id)}"` : "";
417
- const nameAttr = name ? `name="${escapeHtml(name)}"` : "";
418
- const valueAttr = value ? `value="${escapeHtml(value)}"` : "";
348
+ const idAttr = id ? `id="${(0, import_utils2.escapeHtml)(id)}"` : "";
349
+ const nameAttr = name ? `name="${(0, import_utils2.escapeHtml)(name)}"` : "";
350
+ const valueAttr = value ? `value="${(0, import_utils2.escapeHtml)(value)}"` : "";
419
351
  const disabledAttr = disabled || loading ? "disabled" : "";
420
- const targetAttr = target ? `target="${escapeHtml(target)}"` : "";
352
+ const targetAttr = target ? `target="${(0, import_utils2.escapeHtml)(target)}"` : "";
421
353
  const relAttr = target === "_blank" ? 'rel="noopener noreferrer"' : "";
422
354
  const trimmedText = text.trim();
423
355
  const effectiveAriaLabel = ariaLabel ?? (iconOnly && trimmedText ? trimmedText : void 0);
424
- const ariaLabelAttr = effectiveAriaLabel ? `aria-label="${escapeHtml(effectiveAriaLabel)}"` : "";
356
+ const ariaLabelAttr = effectiveAriaLabel ? `aria-label="${(0, import_utils2.escapeHtml)(effectiveAriaLabel)}"` : "";
425
357
  const iconBeforeHtml = iconBefore && !loading ? `<span class="${iconOnly ? "" : "mr-2"}">${iconBefore}</span>` : "";
426
358
  const iconAfterHtml = iconAfter && !loading ? `<span class="${iconOnly ? "" : "ml-2"}">${iconAfter}</span>` : "";
427
359
  const loadingHtml = loading ? loadingSpinner : "";
428
- const textHtml = iconOnly ? "" : escapeHtml(text);
360
+ const textHtml = iconOnly ? "" : (0, import_utils2.escapeHtml)(text);
429
361
  const contentHtml = `${loadingHtml}${iconBeforeHtml}${textHtml}${iconAfterHtml}`;
430
362
  if (href && !disabled && !loading && isValidHrefProtocol(href)) {
431
- return `<a href="${escapeHtml(
363
+ return `<a href="${(0, import_utils2.escapeHtml)(
432
364
  href
433
365
  )}" class="${baseClasses}" ${idAttr} ${dataAttrs} ${ariaLabelAttr} ${targetAttr} ${relAttr}>
434
366
  ${contentHtml}
@@ -505,7 +437,7 @@ function resourceWidget(options) {
505
437
  cardOptions = {}
506
438
  } = options;
507
439
  const iconHtml = thumbnail ? `<div class="w-16 h-16 rounded-lg overflow-hidden bg-gray-100 flex-shrink-0">
508
- <img src="${escapeHtml(thumbnail)}" alt="${escapeHtml(title)}" class="w-full h-full object-cover">
440
+ <img src="${(0, import_utils2.escapeHtml)(thumbnail)}" alt="${(0, import_utils2.escapeHtml)(title)}" class="w-full h-full object-cover">
509
441
  </div>` : `<div class="w-16 h-16 rounded-lg bg-gray-100 flex items-center justify-center flex-shrink-0 text-gray-400">
510
442
  ${icon || resourceIcons[type]}
511
443
  </div>`;
@@ -540,12 +472,12 @@ function resourceWidget(options) {
540
472
  const variant = action.variant ? variantMap[action.variant] : "ghost";
541
473
  const htmxAttrs = [];
542
474
  if (action.htmx) {
543
- if (action.htmx.get) htmxAttrs.push(`hx-get="${escapeHtml(action.htmx.get)}"`);
544
- if (action.htmx.post) htmxAttrs.push(`hx-post="${escapeHtml(action.htmx.post)}"`);
545
- if (action.htmx.delete) htmxAttrs.push(`hx-delete="${escapeHtml(action.htmx.delete)}"`);
546
- if (action.htmx.target) htmxAttrs.push(`hx-target="${escapeHtml(action.htmx.target)}"`);
547
- if (action.htmx.swap) htmxAttrs.push(`hx-swap="${escapeHtml(action.htmx.swap)}"`);
548
- if (action.htmx.confirm) htmxAttrs.push(`hx-confirm="${escapeHtml(action.htmx.confirm)}"`);
475
+ if (action.htmx.get) htmxAttrs.push(`hx-get="${(0, import_utils2.escapeHtml)(action.htmx.get)}"`);
476
+ if (action.htmx.post) htmxAttrs.push(`hx-post="${(0, import_utils2.escapeHtml)(action.htmx.post)}"`);
477
+ if (action.htmx.delete) htmxAttrs.push(`hx-delete="${(0, import_utils2.escapeHtml)(action.htmx.delete)}"`);
478
+ if (action.htmx.target) htmxAttrs.push(`hx-target="${(0, import_utils2.escapeHtml)(action.htmx.target)}"`);
479
+ if (action.htmx.swap) htmxAttrs.push(`hx-swap="${(0, import_utils2.escapeHtml)(action.htmx.swap)}"`);
480
+ if (action.htmx.confirm) htmxAttrs.push(`hx-confirm="${(0, import_utils2.escapeHtml)(action.htmx.confirm)}"`);
549
481
  }
550
482
  return button(action.label, {
551
483
  variant,
@@ -562,12 +494,12 @@ function resourceWidget(options) {
562
494
  <div class="flex-1 min-w-0">
563
495
  <div class="flex items-start justify-between gap-2">
564
496
  <div class="min-w-0">
565
- ${url ? `<a href="${escapeHtml(
497
+ ${url ? `<a href="${(0, import_utils2.escapeHtml)(
566
498
  url
567
- )}" class="font-semibold text-text-primary hover:text-primary truncate block">${escapeHtml(
499
+ )}" class="font-semibold text-text-primary hover:text-primary truncate block">${(0, import_utils2.escapeHtml)(
568
500
  title
569
- )}</a>` : `<h3 class="font-semibold text-text-primary truncate">${escapeHtml(title)}</h3>`}
570
- ${description ? `<p class="text-sm text-text-secondary mt-0.5 line-clamp-2">${escapeHtml(description)}</p>` : ""}
501
+ )}</a>` : `<h3 class="font-semibold text-text-primary truncate">${(0, import_utils2.escapeHtml)(title)}</h3>`}
502
+ ${description ? `<p class="text-sm text-text-secondary mt-0.5 line-clamp-2">${(0, import_utils2.escapeHtml)(description)}</p>` : ""}
571
503
  ${metaHtml}
572
504
  ${tagsHtml}
573
505
  </div>
@@ -595,7 +527,7 @@ function resourceList(options) {
595
527
  showLoadMore = false,
596
528
  loadMoreUrl
597
529
  } = options;
598
- const titleHtml = title ? `<h2 class="text-lg font-semibold text-text-primary mb-4">${escapeHtml(title)}</h2>` : "";
530
+ const titleHtml = title ? `<h2 class="text-lg font-semibold text-text-primary mb-4">${(0, import_utils2.escapeHtml)(title)}</h2>` : "";
599
531
  if (resources.length === 0) {
600
532
  return `<div class="${className}">
601
533
  ${titleHtml}
@@ -603,7 +535,7 @@ function resourceList(options) {
603
535
  <svg class="w-12 h-12 mx-auto mb-4 text-gray-300" fill="none" stroke="currentColor" viewBox="0 0 24 24">
604
536
  <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"/>
605
537
  </svg>
606
- <p>${escapeHtml(emptyMessage)}</p>
538
+ <p>${(0, import_utils2.escapeHtml)(emptyMessage)}</p>
607
539
  </div>
608
540
  </div>`;
609
541
  }
@@ -630,7 +562,7 @@ function resourceItem(options) {
630
562
  </div>`;
631
563
  const statusHtml = status ? badge(status.label, { variant: status.variant, size: "sm" }) : "";
632
564
  const metaText = meta?.size ? formatFileSize(meta.size) : "";
633
- 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>`;
565
+ const titleElement = url ? `<a href="${(0, import_utils2.escapeHtml)(url)}" class="font-medium text-text-primary hover:text-primary">${(0, import_utils2.escapeHtml)(title)}</a>` : `<span class="font-medium text-text-primary">${(0, import_utils2.escapeHtml)(title)}</span>`;
634
566
  return `<div class="flex items-center gap-3 p-3 rounded-lg hover:bg-gray-50 transition-colors">
635
567
  ${iconHtml}
636
568
  <div class="flex-1 min-w-0">
@@ -638,7 +570,7 @@ function resourceItem(options) {
638
570
  ${titleElement}
639
571
  ${statusHtml}
640
572
  </div>
641
- ${description || metaText ? `<p class="text-sm text-text-secondary truncate">${escapeHtml(description || metaText)}</p>` : ""}
573
+ ${description || metaText ? `<p class="text-sm text-text-secondary truncate">${(0, import_utils2.escapeHtml)(description || metaText)}</p>` : ""}
642
574
  </div>
643
575
  </div>`;
644
576
  }
@@ -667,7 +599,7 @@ function codePreview(options) {
667
599
  </script>` : "";
668
600
  const copyButton = showCopy ? `<button
669
601
  type="button"
670
- onclick="copyCode(this, ${escapeHtml(JSON.stringify(code))})"
602
+ onclick="copyCode(this, ${(0, import_utils2.escapeHtml)(JSON.stringify(code))})"
671
603
  class="p-1.5 rounded hover:bg-gray-700 transition-colors"
672
604
  title="Copy code"
673
605
  >
@@ -678,9 +610,9 @@ function codePreview(options) {
678
610
  return `<div class="code-preview rounded-lg overflow-hidden ${className}">
679
611
  ${filename || showCopy ? `
680
612
  <div class="flex items-center justify-between px-4 py-2 bg-gray-800 border-b border-gray-700">
681
- ${filename ? `<span class="text-sm text-gray-300">${escapeHtml(filename)}</span>` : "<span></span>"}
613
+ ${filename ? `<span class="text-sm text-gray-300">${(0, import_utils2.escapeHtml)(filename)}</span>` : "<span></span>"}
682
614
  <div class="flex items-center gap-2">
683
- ${language ? `<span class="text-xs text-gray-500">${escapeHtml(language)}</span>` : ""}
615
+ ${language ? `<span class="text-xs text-gray-500">${(0, import_utils2.escapeHtml)(language)}</span>` : ""}
684
616
  ${copyButton}
685
617
  </div>
686
618
  </div>
@@ -688,7 +620,7 @@ function codePreview(options) {
688
620
  <div class="bg-gray-900 p-4 overflow-auto" style="max-height: ${maxHeight}">
689
621
  <div class="flex text-sm font-mono">
690
622
  ${lineNumbersHtml}
691
- <pre class="flex-1 text-gray-100"><code>${escapeHtml(code)}</code></pre>
623
+ <pre class="flex-1 text-gray-100"><code>${(0, import_utils2.escapeHtml)(code)}</code></pre>
692
624
  </div>
693
625
  </div>
694
626
  ${copyScript}
@@ -697,13 +629,13 @@ function codePreview(options) {
697
629
  function imagePreview(options) {
698
630
  const { src, alt, caption, maxHeight = "400px", clickable = true, className = "" } = options;
699
631
  const imageHtml = `<img
700
- src="${escapeHtml(src)}"
701
- alt="${escapeHtml(alt)}"
632
+ src="${(0, import_utils2.escapeHtml)(src)}"
633
+ alt="${(0, import_utils2.escapeHtml)(alt)}"
702
634
  class="max-w-full h-auto rounded-lg"
703
635
  style="max-height: ${maxHeight}"
704
636
  >`;
705
- const captionHtml = caption ? `<p class="text-sm text-text-secondary mt-2 text-center">${escapeHtml(caption)}</p>` : "";
706
- const content = clickable ? `<a href="${escapeHtml(src)}" target="_blank" rel="noopener" class="block">${imageHtml}</a>` : imageHtml;
637
+ const captionHtml = caption ? `<p class="text-sm text-text-secondary mt-2 text-center">${(0, import_utils2.escapeHtml)(caption)}</p>` : "";
638
+ const content = clickable ? `<a href="${(0, import_utils2.escapeHtml)(src)}" target="_blank" rel="noopener" class="block">${imageHtml}</a>` : imageHtml;
707
639
  return `<div class="image-preview ${className}">
708
640
  ${content}
709
641
  ${captionHtml}
@@ -737,11 +669,11 @@ function progressBar(options) {
737
669
  };
738
670
  const animatedClass = animated ? "bg-stripes animate-stripes" : "";
739
671
  const displayLabel = label || `${Math.round(clampedValue)}%`;
740
- 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(
672
+ const insideLabel = labelPosition === "inside" && size === "lg" && clampedValue > 10 ? `<span class="absolute inset-0 flex items-center justify-center text-xs font-medium text-white">${(0, import_utils2.escapeHtml)(
741
673
  displayLabel
742
674
  )}</span>` : "";
743
675
  const outsideLabel = showLabel && labelPosition === "outside" ? `<div class="flex justify-between mb-1">
744
- <span class="text-sm font-medium text-text-primary">${label ? escapeHtml(label) : "Progress"}</span>
676
+ <span class="text-sm font-medium text-text-primary">${label ? (0, import_utils2.escapeHtml)(label) : "Progress"}</span>
745
677
  <span class="text-sm text-text-secondary">${Math.round(clampedValue)}%</span>
746
678
  </div>` : "";
747
679
  return `<div class="progress-bar ${className}">
@@ -823,13 +755,13 @@ function stepProgress(options) {
823
755
  ${getStepIcon(step, index)}
824
756
  </div>
825
757
  <div class="pt-2">
826
- <div class="${classes.text}">${escapeHtml(step.label)}</div>
827
- ${step.description ? `<p class="text-sm text-text-secondary mt-0.5">${escapeHtml(step.description)}</p>` : ""}
758
+ <div class="${classes.text}">${(0, import_utils2.escapeHtml)(step.label)}</div>
759
+ ${step.description ? `<p class="text-sm text-text-secondary mt-0.5">${(0, import_utils2.escapeHtml)(step.description)}</p>` : ""}
828
760
  </div>
829
761
  </div>
830
762
  ${connectorHtml}
831
763
  `;
832
- return step.href && step.status === "completed" ? `<a href="${escapeHtml(step.href)}" class="block hover:opacity-80">${stepContent}</a>` : `<div>${stepContent}</div>`;
764
+ return step.href && step.status === "completed" ? `<a href="${(0, import_utils2.escapeHtml)(step.href)}" class="block hover:opacity-80">${stepContent}</a>` : `<div>${stepContent}</div>`;
833
765
  }).join("\n");
834
766
  return `<div class="step-progress ${className}">${stepsHtml2}</div>`;
835
767
  }
@@ -843,12 +775,12 @@ function stepProgress(options) {
843
775
  ${getStepIcon(step, index)}
844
776
  </div>
845
777
  <div class="mt-2 text-center">
846
- <div class="${classes.text} text-sm">${escapeHtml(step.label)}</div>
847
- ${step.description ? `<p class="text-xs text-text-secondary mt-0.5 max-w-[120px]">${escapeHtml(step.description)}</p>` : ""}
778
+ <div class="${classes.text} text-sm">${(0, import_utils2.escapeHtml)(step.label)}</div>
779
+ ${step.description ? `<p class="text-xs text-text-secondary mt-0.5 max-w-[120px]">${(0, import_utils2.escapeHtml)(step.description)}</p>` : ""}
848
780
  </div>
849
781
  </div>
850
782
  `;
851
- const clickableStep = step.href && step.status === "completed" ? `<a href="${escapeHtml(step.href)}" class="hover:opacity-80">${stepHtml}</a>` : stepHtml;
783
+ const clickableStep = step.href && step.status === "completed" ? `<a href="${(0, import_utils2.escapeHtml)(step.href)}" class="hover:opacity-80">${stepHtml}</a>` : stepHtml;
852
784
  return `${clickableStep}${connectorHtml}`;
853
785
  }).join("\n");
854
786
  return `<div class="step-progress flex items-start ${className}">${stepsHtml}</div>`;
@@ -891,7 +823,7 @@ function circularProgress(options) {
891
823
  style="stroke-dasharray: ${circumference}; stroke-dashoffset: ${offset}; transition: stroke-dashoffset 0.3s ease;"
892
824
  />
893
825
  </svg>
894
- ${showLabel ? `<span class="absolute text-sm font-semibold text-text-primary">${escapeHtml(displayLabel)}</span>` : ""}
826
+ ${showLabel ? `<span class="absolute text-sm font-semibold text-text-primary">${(0, import_utils2.escapeHtml)(displayLabel)}</span>` : ""}
895
827
  </div>`;
896
828
  }
897
829
  function statusIndicator(options) {
@@ -919,7 +851,7 @@ function statusIndicator(options) {
919
851
  ${pulseHtml}
920
852
  <span class="relative ${sizeInfo.dot} ${statusInfo.color} rounded-full"></span>
921
853
  </span>
922
- ${displayLabel ? `<span class="${sizeInfo.text} text-text-secondary">${escapeHtml(displayLabel)}</span>` : ""}
854
+ ${displayLabel ? `<span class="${sizeInfo.text} text-text-secondary">${(0, import_utils2.escapeHtml)(displayLabel)}</span>` : ""}
923
855
  </div>`;
924
856
  }
925
857
  function skeleton(options = {}) {
@@ -1,13 +0,0 @@
1
- /**
2
- * @frontmcp/ui Adapters
3
- *
4
- * Platform-specific adapters for building UI metadata.
5
- * These adapters are SDK-independent and can be used by external systems
6
- * like AgentLink without requiring @frontmcp/sdk.
7
- *
8
- * @packageDocumentation
9
- */
10
- export { type AIPlatformType, type UIMetadata, type BuildUIMetaOptions, type BuildToolDiscoveryMetaOptions, buildUIMeta, buildToolDiscoveryMeta, buildOpenAICSP, } from './platform-meta';
11
- export { type ResolvedServingMode, type ResolveServingModeOptions, resolveServingMode, isPlatformModeSupported, getDefaultServingMode, platformUsesStructuredContent, platformSupportsWidgets, } from './serving-mode';
12
- export { type TextContentBlock, type BuildToolResponseOptions, type ToolResponseContent, buildToolResponseContent, } from './response-builder';
13
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAEL,KAAK,cAAc,EAEnB,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,6BAA6B,EAElC,WAAW,EACX,sBAAsB,EACtB,cAAc,GACf,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAE9B,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EACrB,6BAA6B,EAC7B,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EAExB,wBAAwB,GACzB,MAAM,oBAAoB,CAAC"}