@frontmcp/ui 0.12.2 → 1.0.0-beta.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.
- package/README.md +279 -72
- package/bridge/adapters/claude.adapter.d.ts.map +1 -1
- package/bridge/adapters/gemini.adapter.d.ts.map +1 -1
- package/bridge/index.js +2 -36
- package/components/Alert/Alert.d.ts +11 -0
- package/components/Alert/Alert.d.ts.map +1 -0
- package/components/Alert/index.d.ts +4 -0
- package/components/Alert/index.d.ts.map +1 -0
- package/components/Alert/index.js +61 -0
- package/components/Avatar/Avatar.d.ts +10 -0
- package/components/Avatar/Avatar.d.ts.map +1 -0
- package/components/Avatar/index.d.ts +4 -0
- package/components/Avatar/index.d.ts.map +1 -0
- package/components/Avatar/index.js +43 -0
- package/components/Badge/Badge.d.ts +13 -0
- package/components/Badge/Badge.d.ts.map +1 -0
- package/components/Badge/index.d.ts +4 -0
- package/components/Badge/index.d.ts.map +1 -0
- package/{render → components/Badge}/index.js +54 -42
- package/components/Button/Button.d.ts +16 -0
- package/components/Button/Button.d.ts.map +1 -0
- package/components/Button/index.d.ts +4 -0
- package/components/Button/index.d.ts.map +1 -0
- package/components/Button/index.js +91 -0
- package/components/Card/Card.d.ts +25 -0
- package/components/Card/Card.d.ts.map +1 -0
- package/components/Card/index.d.ts +4 -0
- package/components/Card/index.d.ts.map +1 -0
- package/components/Card/index.js +110 -0
- package/components/List/List.d.ts +15 -0
- package/components/List/List.d.ts.map +1 -0
- package/components/List/index.d.ts +4 -0
- package/components/List/index.d.ts.map +1 -0
- package/components/List/index.js +58 -0
- package/components/Loader/Loader.d.ts +28 -0
- package/components/Loader/Loader.d.ts.map +1 -0
- package/components/Loader/LoaderContext.d.ts +20 -0
- package/components/Loader/LoaderContext.d.ts.map +1 -0
- package/components/Loader/index.d.ts +6 -0
- package/components/Loader/index.d.ts.map +1 -0
- package/components/Loader/index.js +174 -0
- package/components/Modal/Modal.d.ts +22 -0
- package/components/Modal/Modal.d.ts.map +1 -0
- package/components/Modal/index.d.ts +4 -0
- package/components/Modal/index.d.ts.map +1 -0
- package/components/Modal/index.js +80 -0
- package/components/Select/Select.d.ts +21 -0
- package/components/Select/Select.d.ts.map +1 -0
- package/components/Select/index.d.ts +4 -0
- package/components/Select/index.d.ts.map +1 -0
- package/components/Select/index.js +78 -0
- package/components/Table/Table.d.ts +15 -0
- package/components/Table/Table.d.ts.map +1 -0
- package/components/Table/index.d.ts +4 -0
- package/components/Table/index.d.ts.map +1 -0
- package/components/Table/index.js +70 -0
- package/components/TextField/TextField.d.ts +19 -0
- package/components/TextField/TextField.d.ts.map +1 -0
- package/components/TextField/index.d.ts +4 -0
- package/components/TextField/index.d.ts.map +1 -0
- package/components/TextField/index.js +77 -0
- package/components/index.d.ts +22 -28
- package/components/index.d.ts.map +1 -1
- package/components/index.js +523 -2521
- package/esm/bridge/index.mjs +2 -6
- package/esm/components/Alert/index.mjs +28 -0
- package/esm/components/Avatar/index.mjs +10 -0
- package/esm/components/Badge/index.mjs +56 -0
- package/esm/components/Button/index.mjs +58 -0
- package/esm/components/Card/index.mjs +77 -0
- package/esm/components/List/index.mjs +25 -0
- package/esm/components/Loader/index.mjs +141 -0
- package/esm/components/Modal/index.mjs +47 -0
- package/esm/components/Select/index.mjs +45 -0
- package/esm/components/Table/index.mjs +37 -0
- package/esm/components/TextField/index.mjs +44 -0
- package/esm/components/index.mjs +513 -2415
- package/esm/index.mjs +62 -4652
- package/esm/package.json +372 -16
- package/esm/react/index.mjs +2 -285
- package/esm/renderer/charts/index.mjs +336 -0
- package/esm/renderer/common/index.mjs +135 -0
- package/esm/renderer/csv/index.mjs +193 -0
- package/esm/renderer/flow/index.mjs +259 -0
- package/esm/renderer/html/index.mjs +99 -0
- package/esm/renderer/image/index.mjs +125 -0
- package/esm/renderer/index.mjs +2173 -0
- package/esm/renderer/maps/index.mjs +217 -0
- package/esm/renderer/math/index.mjs +229 -0
- package/esm/renderer/mdx/index.mjs +261 -0
- package/esm/renderer/media/index.mjs +235 -0
- package/esm/renderer/mermaid/index.mjs +220 -0
- package/esm/renderer/pdf/index.mjs +229 -0
- package/esm/renderer/react/index.mjs +230 -0
- package/esm/runtime/index.mjs +194 -0
- package/esm/theme/index.mjs +93 -0
- package/index.d.ts +10 -18
- package/index.d.ts.map +1 -1
- package/index.js +63 -4806
- package/package.json +372 -16
- package/react/index.d.ts +8 -54
- package/react/index.d.ts.map +1 -1
- package/react/index.js +2 -295
- package/renderer/auto-detect.d.ts +39 -0
- package/renderer/auto-detect.d.ts.map +1 -0
- package/renderer/charts/index.d.ts +22 -0
- package/renderer/charts/index.d.ts.map +1 -0
- package/renderer/charts/index.js +367 -0
- package/renderer/common/index.d.ts +5 -0
- package/renderer/common/index.d.ts.map +1 -0
- package/renderer/common/index.js +158 -0
- package/renderer/common/inject-stylesheet.d.ts +9 -0
- package/renderer/common/inject-stylesheet.d.ts.map +1 -0
- package/renderer/common/lazy-import.d.ts +85 -0
- package/renderer/common/lazy-import.d.ts.map +1 -0
- package/renderer/common/use-lazy-module.d.ts +13 -0
- package/renderer/common/use-lazy-module.d.ts.map +1 -0
- package/renderer/common/use-renderer-theme.d.ts +35 -0
- package/renderer/common/use-renderer-theme.d.ts.map +1 -0
- package/renderer/csv/index.d.ts +12 -0
- package/renderer/csv/index.d.ts.map +1 -0
- package/renderer/csv/index.js +224 -0
- package/renderer/flow/index.d.ts +40 -0
- package/renderer/flow/index.d.ts.map +1 -0
- package/renderer/flow/index.js +290 -0
- package/renderer/html/index.d.ts +12 -0
- package/renderer/html/index.d.ts.map +1 -0
- package/renderer/html/index.js +130 -0
- package/renderer/image/index.d.ts +11 -0
- package/renderer/image/index.d.ts.map +1 -0
- package/renderer/image/index.js +156 -0
- package/renderer/index.d.ts +32 -0
- package/renderer/index.d.ts.map +1 -0
- package/renderer/index.js +2206 -0
- package/renderer/maps/index.d.ts +27 -0
- package/renderer/maps/index.d.ts.map +1 -0
- package/renderer/maps/index.js +248 -0
- package/renderer/math/index.d.ts +11 -0
- package/renderer/math/index.d.ts.map +1 -0
- package/renderer/math/index.js +260 -0
- package/renderer/mdx/index.d.ts +10 -0
- package/renderer/mdx/index.d.ts.map +1 -0
- package/renderer/mdx/index.js +292 -0
- package/renderer/media/index.d.ts +20 -0
- package/renderer/media/index.d.ts.map +1 -0
- package/renderer/media/index.js +266 -0
- package/renderer/mermaid/index.d.ts +11 -0
- package/renderer/mermaid/index.d.ts.map +1 -0
- package/renderer/mermaid/index.js +251 -0
- package/renderer/pdf/index.d.ts +10 -0
- package/renderer/pdf/index.d.ts.map +1 -0
- package/renderer/pdf/index.js +260 -0
- package/renderer/react/index.d.ts +45 -0
- package/renderer/react/index.d.ts.map +1 -0
- package/renderer/react/index.js +261 -0
- package/renderer/types.d.ts +24 -0
- package/renderer/types.d.ts.map +1 -0
- package/runtime/babel-runtime.d.ts +70 -0
- package/runtime/babel-runtime.d.ts.map +1 -0
- package/runtime/content-detector.d.ts +43 -0
- package/runtime/content-detector.d.ts.map +1 -0
- package/runtime/index.d.ts +10 -0
- package/runtime/index.d.ts.map +1 -0
- package/runtime/index.js +217 -0
- package/theme/FrontMcpThemeProvider.d.ts +4 -0
- package/theme/FrontMcpThemeProvider.d.ts.map +1 -0
- package/theme/create-theme.d.ts +9 -0
- package/theme/create-theme.d.ts.map +1 -0
- package/theme/index.d.ts +5 -0
- package/theme/index.d.ts.map +1 -0
- package/theme/index.js +126 -0
- package/theme/types.d.ts +28 -0
- package/theme/types.d.ts.map +1 -0
- package/theme/use-theme.d.ts +3 -0
- package/theme/use-theme.d.ts.map +1 -0
- package/bundler/browser-components.d.ts +0 -42
- package/bundler/browser-components.d.ts.map +0 -1
- package/bundler/bundler.d.ts +0 -282
- package/bundler/bundler.d.ts.map +0 -1
- package/bundler/index.d.ts +0 -43
- package/bundler/index.d.ts.map +0 -1
- package/bundler/index.js +0 -3168
- package/bundler/types.d.ts +0 -883
- package/bundler/types.d.ts.map +0 -1
- package/components/alert.d.ts +0 -83
- package/components/alert.d.ts.map +0 -1
- package/components/alert.schema.d.ts +0 -98
- package/components/alert.schema.d.ts.map +0 -1
- package/components/avatar.d.ts +0 -77
- package/components/avatar.d.ts.map +0 -1
- package/components/avatar.schema.d.ts +0 -170
- package/components/avatar.schema.d.ts.map +0 -1
- package/components/badge.d.ts +0 -78
- package/components/badge.d.ts.map +0 -1
- package/components/badge.schema.d.ts +0 -91
- package/components/badge.schema.d.ts.map +0 -1
- package/components/button.d.ts +0 -100
- package/components/button.d.ts.map +0 -1
- package/components/button.schema.d.ts +0 -120
- package/components/button.schema.d.ts.map +0 -1
- package/components/card.d.ts +0 -76
- package/components/card.d.ts.map +0 -1
- package/components/card.schema.d.ts +0 -93
- package/components/card.schema.d.ts.map +0 -1
- package/components/form.d.ts +0 -227
- package/components/form.d.ts.map +0 -1
- package/components/form.schema.d.ts +0 -365
- package/components/form.schema.d.ts.map +0 -1
- package/components/list.d.ts +0 -121
- package/components/list.d.ts.map +0 -1
- package/components/list.schema.d.ts +0 -129
- package/components/list.schema.d.ts.map +0 -1
- package/components/modal.d.ts +0 -100
- package/components/modal.d.ts.map +0 -1
- package/components/modal.schema.d.ts +0 -151
- package/components/modal.schema.d.ts.map +0 -1
- package/components/table.d.ts +0 -91
- package/components/table.d.ts.map +0 -1
- package/components/table.schema.d.ts +0 -123
- package/components/table.schema.d.ts.map +0 -1
- package/esm/bundler/index.mjs +0 -3136
- package/esm/layouts/index.mjs +0 -409
- package/esm/render/index.mjs +0 -45
- package/esm/renderers/index.mjs +0 -621
- package/esm/universal/index.mjs +0 -1946
- package/esm/web-components/index.mjs +0 -2023
- package/layouts/base.d.ts +0 -86
- package/layouts/base.d.ts.map +0 -1
- package/layouts/index.d.ts +0 -8
- package/layouts/index.d.ts.map +0 -1
- package/layouts/index.js +0 -437
- package/layouts/presets.d.ts +0 -134
- package/layouts/presets.d.ts.map +0 -1
- package/react/Alert.d.ts +0 -101
- package/react/Alert.d.ts.map +0 -1
- package/react/Badge.d.ts +0 -100
- package/react/Badge.d.ts.map +0 -1
- package/react/Button.d.ts +0 -108
- package/react/Button.d.ts.map +0 -1
- package/react/Card.d.ts +0 -103
- package/react/Card.d.ts.map +0 -1
- package/react/types.d.ts +0 -105
- package/react/types.d.ts.map +0 -1
- package/render/index.d.ts +0 -8
- package/render/index.d.ts.map +0 -1
- package/render/prerender.d.ts +0 -57
- package/render/prerender.d.ts.map +0 -1
- package/renderers/index.d.ts +0 -26
- package/renderers/index.d.ts.map +0 -1
- package/renderers/index.js +0 -666
- package/renderers/mdx.renderer.d.ts +0 -99
- package/renderers/mdx.renderer.d.ts.map +0 -1
- package/renderers/react.adapter.d.ts +0 -70
- package/renderers/react.adapter.d.ts.map +0 -1
- package/renderers/react.renderer.d.ts +0 -105
- package/renderers/react.renderer.d.ts.map +0 -1
- package/renderers/transpiler.d.ts +0 -49
- package/renderers/transpiler.d.ts.map +0 -1
- package/universal/UniversalApp.d.ts +0 -108
- package/universal/UniversalApp.d.ts.map +0 -1
- package/universal/cached-runtime.d.ts +0 -139
- package/universal/cached-runtime.d.ts.map +0 -1
- package/universal/context.d.ts +0 -122
- package/universal/context.d.ts.map +0 -1
- package/universal/index.d.ts +0 -57
- package/universal/index.d.ts.map +0 -1
- package/universal/index.js +0 -2032
- package/universal/renderers/html.renderer.d.ts +0 -36
- package/universal/renderers/html.renderer.d.ts.map +0 -1
- package/universal/renderers/index.d.ts +0 -112
- package/universal/renderers/index.d.ts.map +0 -1
- package/universal/renderers/markdown.renderer.d.ts +0 -33
- package/universal/renderers/markdown.renderer.d.ts.map +0 -1
- package/universal/renderers/mdx.renderer.d.ts +0 -38
- package/universal/renderers/mdx.renderer.d.ts.map +0 -1
- package/universal/renderers/react.renderer.d.ts +0 -46
- package/universal/renderers/react.renderer.d.ts.map +0 -1
- package/universal/runtime-builder.d.ts +0 -33
- package/universal/runtime-builder.d.ts.map +0 -1
- package/universal/store.d.ts +0 -135
- package/universal/store.d.ts.map +0 -1
- package/universal/types.d.ts +0 -199
- package/universal/types.d.ts.map +0 -1
- package/web-components/core/attribute-parser.d.ts +0 -82
- package/web-components/core/attribute-parser.d.ts.map +0 -1
- package/web-components/core/base-element.d.ts +0 -197
- package/web-components/core/base-element.d.ts.map +0 -1
- package/web-components/core/index.d.ts +0 -9
- package/web-components/core/index.d.ts.map +0 -1
- package/web-components/elements/fmcp-alert.d.ts +0 -46
- package/web-components/elements/fmcp-alert.d.ts.map +0 -1
- package/web-components/elements/fmcp-badge.d.ts +0 -47
- package/web-components/elements/fmcp-badge.d.ts.map +0 -1
- package/web-components/elements/fmcp-button.d.ts +0 -117
- package/web-components/elements/fmcp-button.d.ts.map +0 -1
- package/web-components/elements/fmcp-card.d.ts +0 -53
- package/web-components/elements/fmcp-card.d.ts.map +0 -1
- package/web-components/elements/fmcp-input.d.ts +0 -96
- package/web-components/elements/fmcp-input.d.ts.map +0 -1
- package/web-components/elements/fmcp-select.d.ts +0 -100
- package/web-components/elements/fmcp-select.d.ts.map +0 -1
- package/web-components/elements/index.d.ts +0 -13
- package/web-components/elements/index.d.ts.map +0 -1
- package/web-components/index.d.ts +0 -49
- package/web-components/index.d.ts.map +0 -1
- package/web-components/index.js +0 -2058
- package/web-components/register.d.ts +0 -57
- package/web-components/register.d.ts.map +0 -1
- package/web-components/types.d.ts +0 -122
- package/web-components/types.d.ts.map +0 -1
package/react/index.js
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __create = Object.create;
|
|
3
2
|
var __defProp = Object.defineProperty;
|
|
4
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
6
|
var __export = (target, all) => {
|
|
9
7
|
for (var name in all)
|
|
@@ -17,32 +15,12 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
17
15
|
}
|
|
18
16
|
return to;
|
|
19
17
|
};
|
|
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
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
19
|
|
|
30
20
|
// libs/ui/src/react/index.ts
|
|
31
21
|
var react_exports = {};
|
|
32
22
|
__export(react_exports, {
|
|
33
|
-
Alert: () => Alert,
|
|
34
|
-
Badge: () => Badge,
|
|
35
|
-
Button: () => Button,
|
|
36
|
-
Card: () => Card,
|
|
37
23
|
McpBridgeProvider: () => McpBridgeProvider,
|
|
38
|
-
renderAlert: () => renderAlert,
|
|
39
|
-
renderAlertSync: () => renderAlertSync,
|
|
40
|
-
renderBadge: () => renderBadge,
|
|
41
|
-
renderBadgeSync: () => renderBadgeSync,
|
|
42
|
-
renderButton: () => renderButton,
|
|
43
|
-
renderButtonSync: () => renderButtonSync,
|
|
44
|
-
renderCard: () => renderCard,
|
|
45
|
-
renderCardSync: () => renderCardSync,
|
|
46
24
|
useCallTool: () => useCallTool,
|
|
47
25
|
useCapability: () => useCapability,
|
|
48
26
|
useDisplayMode: () => useDisplayMode,
|
|
@@ -59,248 +37,6 @@ __export(react_exports, {
|
|
|
59
37
|
});
|
|
60
38
|
module.exports = __toCommonJS(react_exports);
|
|
61
39
|
|
|
62
|
-
// libs/ui/src/react/Card.tsx
|
|
63
|
-
var import_styles = require("@frontmcp/uipack/styles");
|
|
64
|
-
|
|
65
|
-
// libs/ui/src/render/prerender.ts
|
|
66
|
-
async function renderToString(element) {
|
|
67
|
-
const { prerender } = await import("react-dom/static");
|
|
68
|
-
const { prelude } = await prerender(element);
|
|
69
|
-
const reader = prelude.getReader();
|
|
70
|
-
const chunks = [];
|
|
71
|
-
while (true) {
|
|
72
|
-
const { done, value } = await reader.read();
|
|
73
|
-
if (done) break;
|
|
74
|
-
if (value) chunks.push(value);
|
|
75
|
-
}
|
|
76
|
-
const totalLength = chunks.reduce((acc, chunk) => acc + chunk.length, 0);
|
|
77
|
-
const combined = new Uint8Array(totalLength);
|
|
78
|
-
let offset = 0;
|
|
79
|
-
for (const chunk of chunks) {
|
|
80
|
-
combined.set(chunk, offset);
|
|
81
|
-
offset += chunk.length;
|
|
82
|
-
}
|
|
83
|
-
return new TextDecoder().decode(combined);
|
|
84
|
-
}
|
|
85
|
-
function renderToStringSync(element) {
|
|
86
|
-
const ReactDOMServer = require("react-dom/server");
|
|
87
|
-
return ReactDOMServer.renderToStaticMarkup(element);
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
// libs/ui/src/react/Card.tsx
|
|
91
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
92
|
-
function Card({
|
|
93
|
-
title,
|
|
94
|
-
subtitle,
|
|
95
|
-
headerActions,
|
|
96
|
-
footer,
|
|
97
|
-
variant = "default",
|
|
98
|
-
size = "md",
|
|
99
|
-
className,
|
|
100
|
-
id,
|
|
101
|
-
clickable,
|
|
102
|
-
href,
|
|
103
|
-
children
|
|
104
|
-
}) {
|
|
105
|
-
const variantClasses = (0, import_styles.getCardVariantClasses)(variant);
|
|
106
|
-
const sizeClasses = (0, import_styles.getCardSizeClasses)(size);
|
|
107
|
-
const clickableClasses = clickable ? "cursor-pointer hover:shadow-md transition-shadow" : "";
|
|
108
|
-
const allClasses = (0, import_styles.cn)(variantClasses, sizeClasses, clickableClasses, className);
|
|
109
|
-
const hasHeader = title || subtitle || headerActions;
|
|
110
|
-
const content = /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
111
|
-
hasHeader && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-start justify-between mb-4", children: [
|
|
112
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [
|
|
113
|
-
title && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h3", { className: "text-lg font-semibold text-text-primary", children: title }),
|
|
114
|
-
subtitle && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "text-sm text-text-secondary mt-1", children: subtitle })
|
|
115
|
-
] }),
|
|
116
|
-
headerActions && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "flex items-center gap-2", children: headerActions })
|
|
117
|
-
] }),
|
|
118
|
-
children,
|
|
119
|
-
footer && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "mt-4 pt-4 border-t border-divider", children: footer })
|
|
120
|
-
] });
|
|
121
|
-
if (href) {
|
|
122
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("a", { href, className: allClasses, id, children: content });
|
|
123
|
-
}
|
|
124
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: allClasses, id, children: content });
|
|
125
|
-
}
|
|
126
|
-
async function renderCard(props) {
|
|
127
|
-
const { children, headerActions, footer, ...rest } = props;
|
|
128
|
-
const element = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
129
|
-
Card,
|
|
130
|
-
{
|
|
131
|
-
...rest,
|
|
132
|
-
headerActions: headerActions ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { dangerouslySetInnerHTML: { __html: headerActions } }) : void 0,
|
|
133
|
-
footer: footer ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { dangerouslySetInnerHTML: { __html: footer } }) : void 0,
|
|
134
|
-
children: children ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { dangerouslySetInnerHTML: { __html: children } }) : void 0
|
|
135
|
-
}
|
|
136
|
-
);
|
|
137
|
-
return renderToString(element);
|
|
138
|
-
}
|
|
139
|
-
function renderCardSync(props) {
|
|
140
|
-
const { children, headerActions, footer, ...rest } = props;
|
|
141
|
-
const element = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
142
|
-
Card,
|
|
143
|
-
{
|
|
144
|
-
...rest,
|
|
145
|
-
headerActions: headerActions ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { dangerouslySetInnerHTML: { __html: headerActions } }) : void 0,
|
|
146
|
-
footer: footer ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { dangerouslySetInnerHTML: { __html: footer } }) : void 0,
|
|
147
|
-
children: children ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { dangerouslySetInnerHTML: { __html: children } }) : void 0
|
|
148
|
-
}
|
|
149
|
-
);
|
|
150
|
-
return renderToStringSync(element);
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
// libs/ui/src/react/Badge.tsx
|
|
154
|
-
var import_styles2 = require("@frontmcp/uipack/styles");
|
|
155
|
-
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
156
|
-
function Badge({
|
|
157
|
-
variant = "default",
|
|
158
|
-
size = "md",
|
|
159
|
-
pill = false,
|
|
160
|
-
icon,
|
|
161
|
-
dot = false,
|
|
162
|
-
className,
|
|
163
|
-
removable = false,
|
|
164
|
-
onRemove,
|
|
165
|
-
children
|
|
166
|
-
}) {
|
|
167
|
-
if (dot) {
|
|
168
|
-
const dotClasses = (0, import_styles2.cn)(
|
|
169
|
-
"inline-block rounded-full",
|
|
170
|
-
(0, import_styles2.getBadgeDotSizeClasses)(size),
|
|
171
|
-
(0, import_styles2.getBadgeDotVariantClasses)(variant),
|
|
172
|
-
className
|
|
173
|
-
);
|
|
174
|
-
const label = typeof children === "string" ? children : void 0;
|
|
175
|
-
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: dotClasses, "aria-label": label, title: label });
|
|
176
|
-
}
|
|
177
|
-
const variantClasses = (0, import_styles2.getBadgeVariantClasses)(variant);
|
|
178
|
-
const sizeClasses = (0, import_styles2.getBadgeSizeClasses)(size);
|
|
179
|
-
const baseClasses = (0, import_styles2.cn)(
|
|
180
|
-
"inline-flex items-center font-medium",
|
|
181
|
-
pill ? "rounded-full" : "rounded-md",
|
|
182
|
-
variantClasses,
|
|
183
|
-
sizeClasses,
|
|
184
|
-
className
|
|
185
|
-
);
|
|
186
|
-
return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("span", { className: baseClasses, children: [
|
|
187
|
-
icon && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: "mr-1", children: icon }),
|
|
188
|
-
children,
|
|
189
|
-
removable && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
190
|
-
"button",
|
|
191
|
-
{
|
|
192
|
-
type: "button",
|
|
193
|
-
className: "ml-1.5 -mr-1 hover:opacity-70 transition-opacity",
|
|
194
|
-
"aria-label": "Remove",
|
|
195
|
-
onClick: onRemove,
|
|
196
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("svg", { className: "w-3 h-3", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M6 18L18 6M6 6l12 12" }) })
|
|
197
|
-
}
|
|
198
|
-
)
|
|
199
|
-
] });
|
|
200
|
-
}
|
|
201
|
-
async function renderBadge(props) {
|
|
202
|
-
const { children, icon, ...rest } = props;
|
|
203
|
-
const element = /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Badge, { ...rest, icon: icon ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { dangerouslySetInnerHTML: { __html: icon } }) : void 0, children });
|
|
204
|
-
return renderToString(element);
|
|
205
|
-
}
|
|
206
|
-
function renderBadgeSync(props) {
|
|
207
|
-
const { children, icon, ...rest } = props;
|
|
208
|
-
const element = /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Badge, { ...rest, icon: icon ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { dangerouslySetInnerHTML: { __html: icon } }) : void 0, children });
|
|
209
|
-
return renderToStringSync(element);
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
// libs/ui/src/react/Button.tsx
|
|
213
|
-
var import_styles3 = require("@frontmcp/uipack/styles");
|
|
214
|
-
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
215
|
-
function Button({
|
|
216
|
-
variant = "primary",
|
|
217
|
-
size = "md",
|
|
218
|
-
disabled = false,
|
|
219
|
-
loading = false,
|
|
220
|
-
fullWidth = false,
|
|
221
|
-
iconPosition = "left",
|
|
222
|
-
icon,
|
|
223
|
-
iconOnly = false,
|
|
224
|
-
type = "button",
|
|
225
|
-
className,
|
|
226
|
-
onClick,
|
|
227
|
-
children
|
|
228
|
-
}) {
|
|
229
|
-
const variantClasses = (0, import_styles3.getButtonVariantClasses)(variant);
|
|
230
|
-
const sizeClasses = (0, import_styles3.getButtonSizeClasses)(size, iconOnly);
|
|
231
|
-
const disabledClasses = disabled || loading ? "opacity-50 cursor-not-allowed" : "";
|
|
232
|
-
const widthClasses = fullWidth ? "w-full" : "";
|
|
233
|
-
const allClasses = (0, import_styles3.cn)(import_styles3.BUTTON_BASE_CLASSES, variantClasses, sizeClasses, disabledClasses, widthClasses, className);
|
|
234
|
-
const iconElement = icon && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: iconPosition === "left" ? "mr-2" : "ml-2", children: icon });
|
|
235
|
-
return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("button", { type, className: allClasses, disabled: disabled || loading, onClick, children: [
|
|
236
|
-
loading && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: "mr-2", dangerouslySetInnerHTML: { __html: import_styles3.LOADING_SPINNER } }),
|
|
237
|
-
!loading && icon && iconPosition === "left" && iconElement,
|
|
238
|
-
!iconOnly && children,
|
|
239
|
-
!loading && icon && iconPosition === "right" && iconElement
|
|
240
|
-
] });
|
|
241
|
-
}
|
|
242
|
-
async function renderButton(props) {
|
|
243
|
-
const { children, icon, ...rest } = props;
|
|
244
|
-
const element = /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Button, { ...rest, icon: icon ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { dangerouslySetInnerHTML: { __html: icon } }) : void 0, children });
|
|
245
|
-
return renderToString(element);
|
|
246
|
-
}
|
|
247
|
-
function renderButtonSync(props) {
|
|
248
|
-
const { children, icon, ...rest } = props;
|
|
249
|
-
const element = /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Button, { ...rest, icon: icon ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { dangerouslySetInnerHTML: { __html: icon } }) : void 0, children });
|
|
250
|
-
return renderToStringSync(element);
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
// libs/ui/src/react/Alert.tsx
|
|
254
|
-
var import_styles4 = require("@frontmcp/uipack/styles");
|
|
255
|
-
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
256
|
-
function Alert({
|
|
257
|
-
variant = "info",
|
|
258
|
-
title,
|
|
259
|
-
icon,
|
|
260
|
-
showIcon = true,
|
|
261
|
-
dismissible = false,
|
|
262
|
-
onDismiss,
|
|
263
|
-
className,
|
|
264
|
-
children
|
|
265
|
-
}) {
|
|
266
|
-
const variantStyles = (0, import_styles4.getAlertVariantClasses)(variant);
|
|
267
|
-
const allClasses = (0, import_styles4.cn)(import_styles4.ALERT_BASE_CLASSES, variantStyles.container, className);
|
|
268
|
-
const iconContent = icon || (showIcon ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
269
|
-
"span",
|
|
270
|
-
{
|
|
271
|
-
className: (0, import_styles4.cn)("flex-shrink-0", variantStyles.icon),
|
|
272
|
-
dangerouslySetInnerHTML: { __html: import_styles4.ALERT_ICONS[variant] }
|
|
273
|
-
}
|
|
274
|
-
) : null);
|
|
275
|
-
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: allClasses, role: "alert", children: /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "flex", children: [
|
|
276
|
-
iconContent && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "flex-shrink-0 mr-3", children: iconContent }),
|
|
277
|
-
/* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "flex-1", children: [
|
|
278
|
-
title && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h4", { className: "font-semibold mb-1", children: title }),
|
|
279
|
-
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "text-sm", children })
|
|
280
|
-
] }),
|
|
281
|
-
dismissible && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
282
|
-
"button",
|
|
283
|
-
{
|
|
284
|
-
type: "button",
|
|
285
|
-
className: "flex-shrink-0 ml-3 hover:opacity-70 transition-opacity",
|
|
286
|
-
"aria-label": "Dismiss",
|
|
287
|
-
onClick: onDismiss,
|
|
288
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { dangerouslySetInnerHTML: { __html: import_styles4.CLOSE_ICON } })
|
|
289
|
-
}
|
|
290
|
-
)
|
|
291
|
-
] }) });
|
|
292
|
-
}
|
|
293
|
-
async function renderAlert(props) {
|
|
294
|
-
const { children, icon, ...rest } = props;
|
|
295
|
-
const element = /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Alert, { ...rest, icon: icon ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { dangerouslySetInnerHTML: { __html: icon } }) : void 0, children });
|
|
296
|
-
return renderToString(element);
|
|
297
|
-
}
|
|
298
|
-
function renderAlertSync(props) {
|
|
299
|
-
const { children, icon, ...rest } = props;
|
|
300
|
-
const element = /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Alert, { ...rest, icon: icon ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { dangerouslySetInnerHTML: { __html: icon } }) : void 0, children });
|
|
301
|
-
return renderToStringSync(element);
|
|
302
|
-
}
|
|
303
|
-
|
|
304
40
|
// libs/ui/src/react/hooks/context.tsx
|
|
305
41
|
var import_react = require("react");
|
|
306
42
|
|
|
@@ -841,7 +577,7 @@ var FrontMcpBridge = class {
|
|
|
841
577
|
};
|
|
842
578
|
|
|
843
579
|
// libs/ui/src/react/hooks/context.tsx
|
|
844
|
-
var
|
|
580
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
845
581
|
var McpBridgeContext = (0, import_react.createContext)(null);
|
|
846
582
|
function McpBridgeProvider({ children, config, onReady, onError }) {
|
|
847
583
|
const [bridge, setBridge] = (0, import_react.useState)(null);
|
|
@@ -887,7 +623,7 @@ function McpBridgeProvider({ children, config, onReady, onError }) {
|
|
|
887
623
|
}),
|
|
888
624
|
[bridge, loading, error]
|
|
889
625
|
);
|
|
890
|
-
return /* @__PURE__ */ (0,
|
|
626
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(McpBridgeContext.Provider, { value: contextValue, children });
|
|
891
627
|
}
|
|
892
628
|
var SSR_DEFAULT_CONTEXT = {
|
|
893
629
|
bridge: null,
|
|
@@ -1185,32 +921,3 @@ function useOpenLink() {
|
|
|
1185
921
|
[bridge]
|
|
1186
922
|
);
|
|
1187
923
|
}
|
|
1188
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
1189
|
-
0 && (module.exports = {
|
|
1190
|
-
Alert,
|
|
1191
|
-
Badge,
|
|
1192
|
-
Button,
|
|
1193
|
-
Card,
|
|
1194
|
-
McpBridgeProvider,
|
|
1195
|
-
renderAlert,
|
|
1196
|
-
renderAlertSync,
|
|
1197
|
-
renderBadge,
|
|
1198
|
-
renderBadgeSync,
|
|
1199
|
-
renderButton,
|
|
1200
|
-
renderButtonSync,
|
|
1201
|
-
renderCard,
|
|
1202
|
-
renderCardSync,
|
|
1203
|
-
useCallTool,
|
|
1204
|
-
useCapability,
|
|
1205
|
-
useDisplayMode,
|
|
1206
|
-
useHostContext,
|
|
1207
|
-
useMcpBridge,
|
|
1208
|
-
useMcpBridgeContext,
|
|
1209
|
-
useOpenLink,
|
|
1210
|
-
useSendMessage,
|
|
1211
|
-
useStructuredContent,
|
|
1212
|
-
useTheme,
|
|
1213
|
-
useToolCalls,
|
|
1214
|
-
useToolInput,
|
|
1215
|
-
useToolOutput
|
|
1216
|
-
});
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type RuntimeContentType } from '../runtime/content-detector';
|
|
3
|
+
import type { RenderOptions, ContentRenderer, ContentType } from './types';
|
|
4
|
+
export type DetectedContentType = RuntimeContentType | 'pdf' | 'csv';
|
|
5
|
+
export declare function detectContentType(content: string): DetectedContentType;
|
|
6
|
+
/**
|
|
7
|
+
* Register a content renderer. Higher priority renderers are checked first.
|
|
8
|
+
* If a renderer with the same type is already registered, it is replaced.
|
|
9
|
+
*/
|
|
10
|
+
export declare function registerRenderer(renderer: ContentRenderer): void;
|
|
11
|
+
/**
|
|
12
|
+
* Clear all registered renderers. Useful for testing.
|
|
13
|
+
*/
|
|
14
|
+
export declare function clearRegistry(): void;
|
|
15
|
+
/**
|
|
16
|
+
* Get a renderer by content type string.
|
|
17
|
+
*/
|
|
18
|
+
export declare function getRenderer(type: string): ContentRenderer | undefined;
|
|
19
|
+
/**
|
|
20
|
+
* Get all registered renderers (sorted by priority, descending).
|
|
21
|
+
*/
|
|
22
|
+
export declare function getRegisteredRenderers(): readonly ContentRenderer[];
|
|
23
|
+
/**
|
|
24
|
+
* Render content by auto-detecting type and finding a matching renderer.
|
|
25
|
+
*/
|
|
26
|
+
export declare function renderContent(content: string, options?: RenderOptions): React.ReactElement;
|
|
27
|
+
export interface ContentViewProps {
|
|
28
|
+
content: string;
|
|
29
|
+
options?: RenderOptions;
|
|
30
|
+
fallback?: React.ReactNode;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* React component that auto-detects content type and renders it
|
|
34
|
+
* with Suspense boundary for lazy-loaded renderers.
|
|
35
|
+
*/
|
|
36
|
+
export declare function ContentView({ content, options, fallback }: ContentViewProps): React.ReactElement;
|
|
37
|
+
export { registerRenderer as addRenderer };
|
|
38
|
+
export type { ContentType };
|
|
39
|
+
//# sourceMappingURL=auto-detect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-detect.d.ts","sourceRoot":"","sources":["../../src/renderer/auto-detect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,EAAuC,KAAK,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC3G,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3E,MAAM,MAAM,mBAAmB,GAAG,kBAAkB,GAAG,KAAK,GAAG,KAAK,CAAC;AAsBrE,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,mBAAmB,CAItE;AAaD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAQhE;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAGpC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAErE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,SAAS,eAAe,EAAE,CAEnE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,KAAK,CAAC,YAAY,CAiB1F;AAMD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,gBAAgB,GAAG,KAAK,CAAC,YAAY,CAMhG;AAMD,OAAO,EAAE,gBAAgB,IAAI,WAAW,EAAE,CAAC;AAC3C,YAAY,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ContentRenderer, RenderOptions } from '../types';
|
|
3
|
+
export interface ChartData {
|
|
4
|
+
type: 'bar' | 'line' | 'area' | 'pie' | 'scatter' | 'radar' | 'composed';
|
|
5
|
+
data: Record<string, unknown>[];
|
|
6
|
+
xKey?: string;
|
|
7
|
+
yKeys?: string[];
|
|
8
|
+
colors?: string[];
|
|
9
|
+
labels?: Record<string, string>;
|
|
10
|
+
title?: string;
|
|
11
|
+
width?: number;
|
|
12
|
+
height?: number;
|
|
13
|
+
}
|
|
14
|
+
export declare function isChart(content: string): boolean;
|
|
15
|
+
export declare class ChartsRenderer implements ContentRenderer {
|
|
16
|
+
readonly type = "chart";
|
|
17
|
+
readonly priority = 80;
|
|
18
|
+
canHandle(content: string): boolean;
|
|
19
|
+
render(content: string, options?: RenderOptions): React.ReactElement;
|
|
20
|
+
}
|
|
21
|
+
export declare const chartsRenderer: ChartsRenderer;
|
|
22
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderer/charts/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAQvC,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAM/D,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;IACzE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAQD,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAIhD;AA4QD,qBAAa,cAAe,YAAW,eAAe;IACpD,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;CAWrE;AAED,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
|