@frontmcp/ui 0.12.2 → 1.0.0-beta.2

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 (310) hide show
  1. package/README.md +279 -72
  2. package/bridge/adapters/claude.adapter.d.ts.map +1 -1
  3. package/bridge/adapters/gemini.adapter.d.ts.map +1 -1
  4. package/bridge/index.js +2 -36
  5. package/components/Alert/Alert.d.ts +11 -0
  6. package/components/Alert/Alert.d.ts.map +1 -0
  7. package/components/Alert/index.d.ts +4 -0
  8. package/components/Alert/index.d.ts.map +1 -0
  9. package/components/Alert/index.js +61 -0
  10. package/components/Avatar/Avatar.d.ts +10 -0
  11. package/components/Avatar/Avatar.d.ts.map +1 -0
  12. package/components/Avatar/index.d.ts +4 -0
  13. package/components/Avatar/index.d.ts.map +1 -0
  14. package/components/Avatar/index.js +43 -0
  15. package/components/Badge/Badge.d.ts +13 -0
  16. package/components/Badge/Badge.d.ts.map +1 -0
  17. package/components/Badge/index.d.ts +4 -0
  18. package/components/Badge/index.d.ts.map +1 -0
  19. package/{render → components/Badge}/index.js +54 -42
  20. package/components/Button/Button.d.ts +16 -0
  21. package/components/Button/Button.d.ts.map +1 -0
  22. package/components/Button/index.d.ts +4 -0
  23. package/components/Button/index.d.ts.map +1 -0
  24. package/components/Button/index.js +91 -0
  25. package/components/Card/Card.d.ts +25 -0
  26. package/components/Card/Card.d.ts.map +1 -0
  27. package/components/Card/index.d.ts +4 -0
  28. package/components/Card/index.d.ts.map +1 -0
  29. package/components/Card/index.js +110 -0
  30. package/components/List/List.d.ts +15 -0
  31. package/components/List/List.d.ts.map +1 -0
  32. package/components/List/index.d.ts +4 -0
  33. package/components/List/index.d.ts.map +1 -0
  34. package/components/List/index.js +58 -0
  35. package/components/Loader/Loader.d.ts +28 -0
  36. package/components/Loader/Loader.d.ts.map +1 -0
  37. package/components/Loader/LoaderContext.d.ts +20 -0
  38. package/components/Loader/LoaderContext.d.ts.map +1 -0
  39. package/components/Loader/index.d.ts +6 -0
  40. package/components/Loader/index.d.ts.map +1 -0
  41. package/components/Loader/index.js +174 -0
  42. package/components/Modal/Modal.d.ts +22 -0
  43. package/components/Modal/Modal.d.ts.map +1 -0
  44. package/components/Modal/index.d.ts +4 -0
  45. package/components/Modal/index.d.ts.map +1 -0
  46. package/components/Modal/index.js +80 -0
  47. package/components/Select/Select.d.ts +21 -0
  48. package/components/Select/Select.d.ts.map +1 -0
  49. package/components/Select/index.d.ts +4 -0
  50. package/components/Select/index.d.ts.map +1 -0
  51. package/components/Select/index.js +78 -0
  52. package/components/Table/Table.d.ts +15 -0
  53. package/components/Table/Table.d.ts.map +1 -0
  54. package/components/Table/index.d.ts +4 -0
  55. package/components/Table/index.d.ts.map +1 -0
  56. package/components/Table/index.js +70 -0
  57. package/components/TextField/TextField.d.ts +19 -0
  58. package/components/TextField/TextField.d.ts.map +1 -0
  59. package/components/TextField/index.d.ts +4 -0
  60. package/components/TextField/index.d.ts.map +1 -0
  61. package/components/TextField/index.js +77 -0
  62. package/components/index.d.ts +22 -28
  63. package/components/index.d.ts.map +1 -1
  64. package/components/index.js +523 -2521
  65. package/esm/bridge/index.mjs +2 -6
  66. package/esm/components/Alert/index.mjs +28 -0
  67. package/esm/components/Avatar/index.mjs +10 -0
  68. package/esm/components/Badge/index.mjs +56 -0
  69. package/esm/components/Button/index.mjs +58 -0
  70. package/esm/components/Card/index.mjs +77 -0
  71. package/esm/components/List/index.mjs +25 -0
  72. package/esm/components/Loader/index.mjs +141 -0
  73. package/esm/components/Modal/index.mjs +47 -0
  74. package/esm/components/Select/index.mjs +45 -0
  75. package/esm/components/Table/index.mjs +37 -0
  76. package/esm/components/TextField/index.mjs +44 -0
  77. package/esm/components/index.mjs +513 -2415
  78. package/esm/index.mjs +62 -4652
  79. package/esm/package.json +372 -16
  80. package/esm/react/index.mjs +2 -285
  81. package/esm/renderer/charts/index.mjs +336 -0
  82. package/esm/renderer/common/index.mjs +135 -0
  83. package/esm/renderer/csv/index.mjs +193 -0
  84. package/esm/renderer/flow/index.mjs +259 -0
  85. package/esm/renderer/html/index.mjs +99 -0
  86. package/esm/renderer/image/index.mjs +125 -0
  87. package/esm/renderer/index.mjs +2173 -0
  88. package/esm/renderer/maps/index.mjs +217 -0
  89. package/esm/renderer/math/index.mjs +229 -0
  90. package/esm/renderer/mdx/index.mjs +261 -0
  91. package/esm/renderer/media/index.mjs +235 -0
  92. package/esm/renderer/mermaid/index.mjs +220 -0
  93. package/esm/renderer/pdf/index.mjs +229 -0
  94. package/esm/renderer/react/index.mjs +230 -0
  95. package/esm/runtime/index.mjs +194 -0
  96. package/esm/theme/index.mjs +93 -0
  97. package/index.d.ts +10 -18
  98. package/index.d.ts.map +1 -1
  99. package/index.js +63 -4806
  100. package/package.json +372 -16
  101. package/react/index.d.ts +8 -54
  102. package/react/index.d.ts.map +1 -1
  103. package/react/index.js +2 -295
  104. package/renderer/auto-detect.d.ts +39 -0
  105. package/renderer/auto-detect.d.ts.map +1 -0
  106. package/renderer/charts/index.d.ts +22 -0
  107. package/renderer/charts/index.d.ts.map +1 -0
  108. package/renderer/charts/index.js +367 -0
  109. package/renderer/common/index.d.ts +5 -0
  110. package/renderer/common/index.d.ts.map +1 -0
  111. package/renderer/common/index.js +158 -0
  112. package/renderer/common/inject-stylesheet.d.ts +9 -0
  113. package/renderer/common/inject-stylesheet.d.ts.map +1 -0
  114. package/renderer/common/lazy-import.d.ts +85 -0
  115. package/renderer/common/lazy-import.d.ts.map +1 -0
  116. package/renderer/common/use-lazy-module.d.ts +13 -0
  117. package/renderer/common/use-lazy-module.d.ts.map +1 -0
  118. package/renderer/common/use-renderer-theme.d.ts +35 -0
  119. package/renderer/common/use-renderer-theme.d.ts.map +1 -0
  120. package/renderer/csv/index.d.ts +12 -0
  121. package/renderer/csv/index.d.ts.map +1 -0
  122. package/renderer/csv/index.js +224 -0
  123. package/renderer/flow/index.d.ts +40 -0
  124. package/renderer/flow/index.d.ts.map +1 -0
  125. package/renderer/flow/index.js +290 -0
  126. package/renderer/html/index.d.ts +12 -0
  127. package/renderer/html/index.d.ts.map +1 -0
  128. package/renderer/html/index.js +130 -0
  129. package/renderer/image/index.d.ts +11 -0
  130. package/renderer/image/index.d.ts.map +1 -0
  131. package/renderer/image/index.js +156 -0
  132. package/renderer/index.d.ts +32 -0
  133. package/renderer/index.d.ts.map +1 -0
  134. package/renderer/index.js +2206 -0
  135. package/renderer/maps/index.d.ts +27 -0
  136. package/renderer/maps/index.d.ts.map +1 -0
  137. package/renderer/maps/index.js +248 -0
  138. package/renderer/math/index.d.ts +11 -0
  139. package/renderer/math/index.d.ts.map +1 -0
  140. package/renderer/math/index.js +260 -0
  141. package/renderer/mdx/index.d.ts +10 -0
  142. package/renderer/mdx/index.d.ts.map +1 -0
  143. package/renderer/mdx/index.js +292 -0
  144. package/renderer/media/index.d.ts +20 -0
  145. package/renderer/media/index.d.ts.map +1 -0
  146. package/renderer/media/index.js +266 -0
  147. package/renderer/mermaid/index.d.ts +11 -0
  148. package/renderer/mermaid/index.d.ts.map +1 -0
  149. package/renderer/mermaid/index.js +251 -0
  150. package/renderer/pdf/index.d.ts +10 -0
  151. package/renderer/pdf/index.d.ts.map +1 -0
  152. package/renderer/pdf/index.js +260 -0
  153. package/renderer/react/index.d.ts +45 -0
  154. package/renderer/react/index.d.ts.map +1 -0
  155. package/renderer/react/index.js +261 -0
  156. package/renderer/types.d.ts +24 -0
  157. package/renderer/types.d.ts.map +1 -0
  158. package/runtime/babel-runtime.d.ts +70 -0
  159. package/runtime/babel-runtime.d.ts.map +1 -0
  160. package/runtime/content-detector.d.ts +43 -0
  161. package/runtime/content-detector.d.ts.map +1 -0
  162. package/runtime/index.d.ts +10 -0
  163. package/runtime/index.d.ts.map +1 -0
  164. package/runtime/index.js +217 -0
  165. package/theme/FrontMcpThemeProvider.d.ts +4 -0
  166. package/theme/FrontMcpThemeProvider.d.ts.map +1 -0
  167. package/theme/create-theme.d.ts +9 -0
  168. package/theme/create-theme.d.ts.map +1 -0
  169. package/theme/index.d.ts +5 -0
  170. package/theme/index.d.ts.map +1 -0
  171. package/theme/index.js +126 -0
  172. package/theme/types.d.ts +28 -0
  173. package/theme/types.d.ts.map +1 -0
  174. package/theme/use-theme.d.ts +3 -0
  175. package/theme/use-theme.d.ts.map +1 -0
  176. package/bundler/browser-components.d.ts +0 -42
  177. package/bundler/browser-components.d.ts.map +0 -1
  178. package/bundler/bundler.d.ts +0 -282
  179. package/bundler/bundler.d.ts.map +0 -1
  180. package/bundler/index.d.ts +0 -43
  181. package/bundler/index.d.ts.map +0 -1
  182. package/bundler/index.js +0 -3168
  183. package/bundler/types.d.ts +0 -883
  184. package/bundler/types.d.ts.map +0 -1
  185. package/components/alert.d.ts +0 -83
  186. package/components/alert.d.ts.map +0 -1
  187. package/components/alert.schema.d.ts +0 -98
  188. package/components/alert.schema.d.ts.map +0 -1
  189. package/components/avatar.d.ts +0 -77
  190. package/components/avatar.d.ts.map +0 -1
  191. package/components/avatar.schema.d.ts +0 -170
  192. package/components/avatar.schema.d.ts.map +0 -1
  193. package/components/badge.d.ts +0 -78
  194. package/components/badge.d.ts.map +0 -1
  195. package/components/badge.schema.d.ts +0 -91
  196. package/components/badge.schema.d.ts.map +0 -1
  197. package/components/button.d.ts +0 -100
  198. package/components/button.d.ts.map +0 -1
  199. package/components/button.schema.d.ts +0 -120
  200. package/components/button.schema.d.ts.map +0 -1
  201. package/components/card.d.ts +0 -76
  202. package/components/card.d.ts.map +0 -1
  203. package/components/card.schema.d.ts +0 -93
  204. package/components/card.schema.d.ts.map +0 -1
  205. package/components/form.d.ts +0 -227
  206. package/components/form.d.ts.map +0 -1
  207. package/components/form.schema.d.ts +0 -365
  208. package/components/form.schema.d.ts.map +0 -1
  209. package/components/list.d.ts +0 -121
  210. package/components/list.d.ts.map +0 -1
  211. package/components/list.schema.d.ts +0 -129
  212. package/components/list.schema.d.ts.map +0 -1
  213. package/components/modal.d.ts +0 -100
  214. package/components/modal.d.ts.map +0 -1
  215. package/components/modal.schema.d.ts +0 -151
  216. package/components/modal.schema.d.ts.map +0 -1
  217. package/components/table.d.ts +0 -91
  218. package/components/table.d.ts.map +0 -1
  219. package/components/table.schema.d.ts +0 -123
  220. package/components/table.schema.d.ts.map +0 -1
  221. package/esm/bundler/index.mjs +0 -3136
  222. package/esm/layouts/index.mjs +0 -409
  223. package/esm/render/index.mjs +0 -45
  224. package/esm/renderers/index.mjs +0 -621
  225. package/esm/universal/index.mjs +0 -1946
  226. package/esm/web-components/index.mjs +0 -2023
  227. package/layouts/base.d.ts +0 -86
  228. package/layouts/base.d.ts.map +0 -1
  229. package/layouts/index.d.ts +0 -8
  230. package/layouts/index.d.ts.map +0 -1
  231. package/layouts/index.js +0 -437
  232. package/layouts/presets.d.ts +0 -134
  233. package/layouts/presets.d.ts.map +0 -1
  234. package/react/Alert.d.ts +0 -101
  235. package/react/Alert.d.ts.map +0 -1
  236. package/react/Badge.d.ts +0 -100
  237. package/react/Badge.d.ts.map +0 -1
  238. package/react/Button.d.ts +0 -108
  239. package/react/Button.d.ts.map +0 -1
  240. package/react/Card.d.ts +0 -103
  241. package/react/Card.d.ts.map +0 -1
  242. package/react/types.d.ts +0 -105
  243. package/react/types.d.ts.map +0 -1
  244. package/render/index.d.ts +0 -8
  245. package/render/index.d.ts.map +0 -1
  246. package/render/prerender.d.ts +0 -57
  247. package/render/prerender.d.ts.map +0 -1
  248. package/renderers/index.d.ts +0 -26
  249. package/renderers/index.d.ts.map +0 -1
  250. package/renderers/index.js +0 -666
  251. package/renderers/mdx.renderer.d.ts +0 -99
  252. package/renderers/mdx.renderer.d.ts.map +0 -1
  253. package/renderers/react.adapter.d.ts +0 -70
  254. package/renderers/react.adapter.d.ts.map +0 -1
  255. package/renderers/react.renderer.d.ts +0 -105
  256. package/renderers/react.renderer.d.ts.map +0 -1
  257. package/renderers/transpiler.d.ts +0 -49
  258. package/renderers/transpiler.d.ts.map +0 -1
  259. package/universal/UniversalApp.d.ts +0 -108
  260. package/universal/UniversalApp.d.ts.map +0 -1
  261. package/universal/cached-runtime.d.ts +0 -139
  262. package/universal/cached-runtime.d.ts.map +0 -1
  263. package/universal/context.d.ts +0 -122
  264. package/universal/context.d.ts.map +0 -1
  265. package/universal/index.d.ts +0 -57
  266. package/universal/index.d.ts.map +0 -1
  267. package/universal/index.js +0 -2032
  268. package/universal/renderers/html.renderer.d.ts +0 -36
  269. package/universal/renderers/html.renderer.d.ts.map +0 -1
  270. package/universal/renderers/index.d.ts +0 -112
  271. package/universal/renderers/index.d.ts.map +0 -1
  272. package/universal/renderers/markdown.renderer.d.ts +0 -33
  273. package/universal/renderers/markdown.renderer.d.ts.map +0 -1
  274. package/universal/renderers/mdx.renderer.d.ts +0 -38
  275. package/universal/renderers/mdx.renderer.d.ts.map +0 -1
  276. package/universal/renderers/react.renderer.d.ts +0 -46
  277. package/universal/renderers/react.renderer.d.ts.map +0 -1
  278. package/universal/runtime-builder.d.ts +0 -33
  279. package/universal/runtime-builder.d.ts.map +0 -1
  280. package/universal/store.d.ts +0 -135
  281. package/universal/store.d.ts.map +0 -1
  282. package/universal/types.d.ts +0 -199
  283. package/universal/types.d.ts.map +0 -1
  284. package/web-components/core/attribute-parser.d.ts +0 -82
  285. package/web-components/core/attribute-parser.d.ts.map +0 -1
  286. package/web-components/core/base-element.d.ts +0 -197
  287. package/web-components/core/base-element.d.ts.map +0 -1
  288. package/web-components/core/index.d.ts +0 -9
  289. package/web-components/core/index.d.ts.map +0 -1
  290. package/web-components/elements/fmcp-alert.d.ts +0 -46
  291. package/web-components/elements/fmcp-alert.d.ts.map +0 -1
  292. package/web-components/elements/fmcp-badge.d.ts +0 -47
  293. package/web-components/elements/fmcp-badge.d.ts.map +0 -1
  294. package/web-components/elements/fmcp-button.d.ts +0 -117
  295. package/web-components/elements/fmcp-button.d.ts.map +0 -1
  296. package/web-components/elements/fmcp-card.d.ts +0 -53
  297. package/web-components/elements/fmcp-card.d.ts.map +0 -1
  298. package/web-components/elements/fmcp-input.d.ts +0 -96
  299. package/web-components/elements/fmcp-input.d.ts.map +0 -1
  300. package/web-components/elements/fmcp-select.d.ts +0 -100
  301. package/web-components/elements/fmcp-select.d.ts.map +0 -1
  302. package/web-components/elements/index.d.ts +0 -13
  303. package/web-components/elements/index.d.ts.map +0 -1
  304. package/web-components/index.d.ts +0 -49
  305. package/web-components/index.d.ts.map +0 -1
  306. package/web-components/index.js +0 -2058
  307. package/web-components/register.d.ts +0 -57
  308. package/web-components/register.d.ts.map +0 -1
  309. package/web-components/types.d.ts +0 -122
  310. package/web-components/types.d.ts.map +0 -1
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // libs/ui/src/renderer/html/index.ts
31
+ var html_exports = {};
32
+ __export(html_exports, {
33
+ HtmlRenderer: () => HtmlRenderer,
34
+ escapeHtml: () => escapeHtml,
35
+ htmlRenderer: () => htmlRenderer
36
+ });
37
+ module.exports = __toCommonJS(html_exports);
38
+ var import_react = __toESM(require("react"));
39
+ var import_Box = __toESM(require("@mui/material/Box"));
40
+ var import_styles = require("@mui/material/styles");
41
+
42
+ // libs/ui/src/renderer/common/lazy-import.ts
43
+ var ESM_SH_BASE = "https://esm.sh/";
44
+ function esmShUrl(pkg, options) {
45
+ let url = `${ESM_SH_BASE}${pkg}`;
46
+ if (options?.external?.length) {
47
+ url += `?external=${options.external.join(",")}`;
48
+ }
49
+ return url;
50
+ }
51
+ function runtimeImport(specifier) {
52
+ const dynamicImport = new Function("s", "return import(s)");
53
+ return dynamicImport(specifier);
54
+ }
55
+ async function runtimeImportWithFallback(bareSpecifier, fallbackUrl) {
56
+ try {
57
+ return await runtimeImport(bareSpecifier);
58
+ } catch {
59
+ return runtimeImport(fallbackUrl);
60
+ }
61
+ }
62
+
63
+ // libs/ui/src/renderer/html/index.ts
64
+ var HtmlRoot = (0, import_styles.styled)(import_Box.default, {
65
+ name: "FrontMcpHtml",
66
+ slot: "Root"
67
+ })(({ theme }) => ({
68
+ "& a": { color: theme.palette.primary.main },
69
+ "& table": { borderCollapse: "collapse", width: "100%" },
70
+ "& th, & td": { border: `1px solid ${theme.palette.divider}`, padding: theme.spacing(1) },
71
+ "& pre": {
72
+ backgroundColor: theme.palette.mode === "dark" ? theme.palette.grey[900] : theme.palette.grey[100],
73
+ padding: theme.spacing(1.5),
74
+ borderRadius: theme.shape.borderRadius,
75
+ overflow: "auto"
76
+ }
77
+ }));
78
+ var purifyModule = null;
79
+ var purifyPromise = null;
80
+ function loadDOMPurify() {
81
+ if (purifyModule) return Promise.resolve(purifyModule);
82
+ if (purifyPromise) return purifyPromise;
83
+ purifyPromise = runtimeImportWithFallback("dompurify", esmShUrl("dompurify@3")).then((mod) => {
84
+ purifyModule = mod;
85
+ return purifyModule;
86
+ }).catch(() => {
87
+ purifyModule = null;
88
+ purifyPromise = null;
89
+ return null;
90
+ });
91
+ return purifyPromise;
92
+ }
93
+ function escapeHtml(html) {
94
+ return html.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;");
95
+ }
96
+ function sanitizeSync(html) {
97
+ if (!purifyModule) return escapeHtml(html);
98
+ const sanitize = purifyModule.default?.sanitize ?? purifyModule.sanitize;
99
+ return sanitize ? sanitize(html) : escapeHtml(html);
100
+ }
101
+ loadDOMPurify();
102
+ function HtmlView({ html, className }) {
103
+ const [purifyReady, setPurifyReady] = (0, import_react.useState)(!!purifyModule);
104
+ (0, import_react.useEffect)(() => {
105
+ if (!purifyModule) {
106
+ loadDOMPurify().then((mod) => {
107
+ if (mod) setPurifyReady(true);
108
+ });
109
+ }
110
+ }, []);
111
+ const sanitized = (0, import_react.useMemo)(() => sanitizeSync(html), [html, purifyReady]);
112
+ return import_react.default.createElement(HtmlRoot, {
113
+ className,
114
+ dangerouslySetInnerHTML: { __html: sanitized }
115
+ });
116
+ }
117
+ var HtmlRenderer = class {
118
+ type = "html";
119
+ priority = 0;
120
+ canHandle(content) {
121
+ return /^\s*</.test(content) && /<\/\w+>/.test(content);
122
+ }
123
+ render(content, options) {
124
+ return import_react.default.createElement(HtmlView, {
125
+ html: content,
126
+ className: options?.className ?? "fmcp-html-content"
127
+ });
128
+ }
129
+ };
130
+ var htmlRenderer = new HtmlRenderer();
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import type { ContentRenderer, RenderOptions } from '../types';
3
+ export declare function isImage(content: string): boolean;
4
+ export declare class ImageRenderer implements ContentRenderer {
5
+ readonly type = "image";
6
+ readonly priority = 30;
7
+ canHandle(content: string): boolean;
8
+ render(content: string, options?: RenderOptions): React.ReactElement;
9
+ }
10
+ export declare const imageRenderer: ImageRenderer;
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderer/image/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAMhE,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAW/D,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAGhD;AAgID,qBAAa,aAAc,YAAW,eAAe;IACnD,QAAQ,CAAC,IAAI,WAAW;IACxB,QAAQ,CAAC,QAAQ,MAAM;IAEvB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAInC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,KAAK,CAAC,YAAY;CASrE;AAED,eAAO,MAAM,aAAa,eAAsB,CAAC"}
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // libs/ui/src/renderer/image/index.ts
31
+ var image_exports = {};
32
+ __export(image_exports, {
33
+ ImageRenderer: () => ImageRenderer,
34
+ imageRenderer: () => imageRenderer,
35
+ isImage: () => isImage
36
+ });
37
+ module.exports = __toCommonJS(image_exports);
38
+ var import_react = __toESM(require("react"));
39
+ var import_Box = __toESM(require("@mui/material/Box"));
40
+ var import_Skeleton = __toESM(require("@mui/material/Skeleton"));
41
+ var import_Alert = __toESM(require("@mui/material/Alert"));
42
+ var import_Typography = __toESM(require("@mui/material/Typography"));
43
+ var import_styles = require("@mui/material/styles");
44
+ var IMAGE_DATA_URI = /^data:image\/(?:png|jpeg|jpg|gif|webp|svg\+xml|avif)[;,]/;
45
+ var IMAGE_URL = /^https?:\/\/[^?#\s]+\.(?:png|jpe?g|gif|webp|svg|avif|ico)(?:\?[^#\s]*)?$/i;
46
+ var IMAGE_SERVICE_URL = /^https?:\/\/(?:picsum\.photos|images\.unsplash\.com|i\.imgur\.com|placekitten\.com|via\.placeholder\.com)\//i;
47
+ function isImage(content) {
48
+ const trimmed = content.trim();
49
+ return IMAGE_DATA_URI.test(trimmed) || IMAGE_URL.test(trimmed) || IMAGE_SERVICE_URL.test(trimmed);
50
+ }
51
+ var ImageRoot = (0, import_styles.styled)(import_Box.default, {
52
+ name: "FrontMcpImage",
53
+ slot: "Root"
54
+ })({
55
+ display: "inline-block",
56
+ position: "relative",
57
+ maxWidth: "100%"
58
+ });
59
+ var StyledImage = (0, import_styles.styled)("img", {
60
+ name: "FrontMcpImage",
61
+ slot: "Image"
62
+ })({
63
+ maxWidth: "100%",
64
+ height: "auto",
65
+ display: "block",
66
+ cursor: "pointer",
67
+ borderRadius: "inherit"
68
+ });
69
+ var LightboxBackdrop = (0, import_styles.styled)(import_Box.default, {
70
+ name: "FrontMcpImage",
71
+ slot: "Lightbox"
72
+ })({
73
+ display: "flex",
74
+ alignItems: "center",
75
+ justifyContent: "center",
76
+ padding: 16
77
+ });
78
+ var LightboxImage = (0, import_styles.styled)("img")({
79
+ maxWidth: "90vw",
80
+ maxHeight: "90vh",
81
+ objectFit: "contain",
82
+ borderRadius: 8
83
+ });
84
+ function LightboxOverlay({ src, alt, onClose }) {
85
+ return import_react.default.createElement(
86
+ LightboxBackdrop,
87
+ {
88
+ onClick: onClose,
89
+ sx: {
90
+ position: "fixed",
91
+ inset: 0,
92
+ zIndex: 1300,
93
+ bgcolor: "rgba(0,0,0,0.8)"
94
+ }
95
+ },
96
+ import_react.default.createElement(LightboxImage, { src, alt })
97
+ );
98
+ }
99
+ function ImageView({ src, alt, caption, className }) {
100
+ const [loaded, setLoaded] = (0, import_react.useState)(false);
101
+ const [error, setError] = (0, import_react.useState)(false);
102
+ const [lightboxOpen, setLightboxOpen] = (0, import_react.useState)(false);
103
+ (0, import_react.useEffect)(() => {
104
+ setLoaded(false);
105
+ setError(false);
106
+ setLightboxOpen(false);
107
+ }, [src]);
108
+ const handleLoad = (0, import_react.useCallback)(() => setLoaded(true), []);
109
+ const handleError = (0, import_react.useCallback)(() => {
110
+ setLoaded(true);
111
+ setError(true);
112
+ }, []);
113
+ if (error) {
114
+ return import_react.default.createElement(import_Alert.default, { severity: "error" }, `Failed to load image: ${src}`);
115
+ }
116
+ return import_react.default.createElement(
117
+ ImageRoot,
118
+ { className },
119
+ !loaded && import_react.default.createElement(import_Skeleton.default, { variant: "rectangular", width: 400, height: 300 }),
120
+ import_react.default.createElement(StyledImage, {
121
+ src,
122
+ alt: alt ?? "Image",
123
+ onLoad: handleLoad,
124
+ onError: handleError,
125
+ onClick: () => setLightboxOpen(true),
126
+ style: loaded ? void 0 : { display: "none" }
127
+ }),
128
+ caption && import_react.default.createElement(
129
+ import_Typography.default,
130
+ { variant: "caption", color: "text.secondary", sx: { mt: 0.5, display: "block", textAlign: "center" } },
131
+ caption
132
+ ),
133
+ lightboxOpen && import_react.default.createElement(LightboxOverlay, {
134
+ src,
135
+ alt: alt ?? "Image",
136
+ onClose: () => setLightboxOpen(false)
137
+ })
138
+ );
139
+ }
140
+ var ImageRenderer = class {
141
+ type = "image";
142
+ priority = 30;
143
+ canHandle(content) {
144
+ return isImage(content);
145
+ }
146
+ render(content, options) {
147
+ const caption = options?.rendererOptions?.["caption"];
148
+ return import_react.default.createElement(ImageView, {
149
+ src: content.trim(),
150
+ alt: options?.toolName ?? "Image",
151
+ caption,
152
+ className: options?.className ?? "fmcp-image-content"
153
+ });
154
+ }
155
+ };
156
+ var imageRenderer = new ImageRenderer();
@@ -0,0 +1,32 @@
1
+ export type { ContentRenderer, RenderOptions, ContentType } from './types';
2
+ export { detectContentType, renderContent, registerRenderer, clearRegistry, getRenderer, getRegisteredRenderers, ContentView, type ContentViewProps, type DetectedContentType, } from './auto-detect';
3
+ export { useRendererTheme, extractThemeValues, type RendererThemeValues } from './common';
4
+ export { injectStylesheet } from './common';
5
+ export { createLazyImport, runtimeImportWithFallback, esmShUrl, ESM_SH_BASE, type LazyImport, type LazyImportState, } from './common';
6
+ export { useLazyModule } from './common';
7
+ export { MdxRenderer, mdxRenderer } from './mdx';
8
+ export { HtmlRenderer, htmlRenderer } from './html';
9
+ export { ReactJsxRenderer, reactJsxRenderer } from './react';
10
+ export { PdfRenderer, pdfRenderer } from './pdf';
11
+ export { CsvRenderer, csvRenderer } from './csv';
12
+ export { ImageRenderer, imageRenderer } from './image';
13
+ export { ChartsRenderer, chartsRenderer } from './charts';
14
+ export { MermaidRenderer, mermaidRenderer } from './mermaid';
15
+ export { FlowRenderer, flowRenderer } from './flow';
16
+ export { MathRenderer, mathRenderer } from './math';
17
+ export { MapsRenderer, mapsRenderer } from './maps';
18
+ export { VideoRenderer, AudioRenderer, videoRenderer, audioRenderer } from './media';
19
+ export { isImage } from './image';
20
+ export { isChart } from './charts';
21
+ export { isMermaid } from './mermaid';
22
+ export { isFlow } from './flow';
23
+ export { isMath } from './math';
24
+ export { isMap } from './maps';
25
+ export { isVideo, isAudio, isMedia } from './media';
26
+ export { isReactJsx } from './react';
27
+ /**
28
+ * Register all built-in renderers with the auto-detect registry.
29
+ * Call this once at app startup if you want all renderers available.
30
+ */
31
+ export declare function registerAllRenderers(): void;
32
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/renderer/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,sBAAsB,EACtB,WAAW,EACX,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,GACzB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EACzB,QAAQ,EACR,WAAW,EACX,KAAK,UAAU,EACf,KAAK,eAAe,GACrB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAGjD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAGrF,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAiBrC;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAoB3C"}