@miragon/mcp-toolkit-ui 2.6.0 → 2.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -1
- package/dist/app/builder/BuilderBanners.d.ts +7 -2
- package/dist/app/builder/BuilderBanners.d.ts.map +1 -1
- package/dist/app/builder/BuilderBanners.js +8 -3
- package/dist/app/builder/BuilderBanners.js.map +1 -1
- package/dist/app/builder/CanvasRow.d.ts.map +1 -1
- package/dist/app/builder/CanvasRow.js +12 -14
- package/dist/app/builder/CanvasRow.js.map +1 -1
- package/dist/app/builder/CatalogueSheet.d.ts.map +1 -1
- package/dist/app/builder/CatalogueSheet.js +6 -5
- package/dist/app/builder/CatalogueSheet.js.map +1 -1
- package/dist/app/builder/EmptyHint.d.ts +4 -0
- package/dist/app/builder/EmptyHint.d.ts.map +1 -1
- package/dist/app/builder/EmptyHint.js +6 -1
- package/dist/app/builder/EmptyHint.js.map +1 -1
- package/dist/app/builder/LayoutSurface.js +3 -3
- package/dist/app/builder/LayoutSurface.js.map +1 -1
- package/dist/app/builder/PipelineStrip.d.ts +3 -1
- package/dist/app/builder/PipelineStrip.d.ts.map +1 -1
- package/dist/app/builder/PipelineStrip.js +11 -6
- package/dist/app/builder/PipelineStrip.js.map +1 -1
- package/dist/app/builder/SaveDialog.d.ts.map +1 -1
- package/dist/app/builder/SaveDialog.js +2 -2
- package/dist/app/builder/SaveDialog.js.map +1 -1
- package/dist/app/builder/Toolbar.d.ts +3 -1
- package/dist/app/builder/Toolbar.d.ts.map +1 -1
- package/dist/app/builder/Toolbar.js +9 -3
- package/dist/app/builder/Toolbar.js.map +1 -1
- package/dist/app/builder/Workspace.js +2 -2
- package/dist/app/builder/Workspace.js.map +1 -1
- package/dist/app/builder/builder-model.d.ts +3 -2
- package/dist/app/builder/builder-model.d.ts.map +1 -1
- package/dist/app/builder/builder-model.js +5 -4
- package/dist/app/builder/builder-model.js.map +1 -1
- package/dist/app/builder/labels.d.ts +13 -62
- package/dist/app/builder/labels.d.ts.map +1 -1
- package/dist/app/builder/labels.js +9 -58
- package/dist/app/builder/labels.js.map +1 -1
- package/dist/app/builder/status-chip.d.ts.map +1 -1
- package/dist/app/builder/status-chip.js +3 -2
- package/dist/app/builder/status-chip.js.map +1 -1
- package/dist/app/builder/use-builder-catalogue.d.ts +1 -0
- package/dist/app/builder/use-builder-catalogue.d.ts.map +1 -1
- package/dist/app/builder/use-builder-catalogue.js +6 -0
- package/dist/app/builder/use-builder-catalogue.js.map +1 -1
- package/dist/app/builder/use-save-dashboard.d.ts +3 -1
- package/dist/app/builder/use-save-dashboard.d.ts.map +1 -1
- package/dist/app/builder/use-save-dashboard.js +3 -1
- package/dist/app/builder/use-save-dashboard.js.map +1 -1
- package/dist/app/index.d.ts +1 -1
- package/dist/app/index.d.ts.map +1 -1
- package/dist/app/index.js.map +1 -1
- package/dist/app/layout-builder.d.ts +7 -2
- package/dist/app/layout-builder.d.ts.map +1 -1
- package/dist/app/layout-builder.js +17 -5
- package/dist/app/layout-builder.js.map +1 -1
- package/dist/app/mcp-app-view-chrome.d.ts +94 -20
- package/dist/app/mcp-app-view-chrome.d.ts.map +1 -1
- package/dist/app/mcp-app-view-chrome.js +109 -40
- package/dist/app/mcp-app-view-chrome.js.map +1 -1
- package/dist/app/mcp-app-view-states.d.ts +15 -0
- package/dist/app/mcp-app-view-states.d.ts.map +1 -0
- package/dist/app/mcp-app-view-states.js +34 -0
- package/dist/app/mcp-app-view-states.js.map +1 -0
- package/dist/app/mcp-app-view.d.ts +40 -5
- package/dist/app/mcp-app-view.d.ts.map +1 -1
- package/dist/app/mcp-app-view.js +174 -128
- package/dist/app/mcp-app-view.js.map +1 -1
- package/dist/app/mcp-toolkit-app.d.ts +2 -1
- package/dist/app/mcp-toolkit-app.d.ts.map +1 -1
- package/dist/app/mcp-toolkit-app.js +25 -3
- package/dist/app/mcp-toolkit-app.js.map +1 -1
- package/dist/app/use-view-lifecycle.d.ts +38 -0
- package/dist/app/use-view-lifecycle.d.ts.map +1 -0
- package/dist/app/use-view-lifecycle.js +79 -0
- package/dist/app/use-view-lifecycle.js.map +1 -0
- package/dist/app/view-lifecycle.d.ts +109 -0
- package/dist/app/view-lifecycle.d.ts.map +1 -0
- package/dist/app/view-lifecycle.js +120 -0
- package/dist/app/view-lifecycle.js.map +1 -0
- package/dist/app/widget-props-sheet.d.ts +3 -9
- package/dist/app/widget-props-sheet.d.ts.map +1 -1
- package/dist/app/widget-props-sheet.js +6 -13
- package/dist/app/widget-props-sheet.js.map +1 -1
- package/dist/app/widget-renderer.d.ts +41 -1
- package/dist/app/widget-renderer.d.ts.map +1 -1
- package/dist/app/widget-renderer.js +82 -31
- package/dist/app/widget-renderer.js.map +1 -1
- package/dist/components/DrillButton.d.ts.map +1 -1
- package/dist/components/DrillButton.js +2 -1
- package/dist/components/DrillButton.js.map +1 -1
- package/dist/components/EmptyState.d.ts +33 -0
- package/dist/components/EmptyState.d.ts.map +1 -0
- package/dist/components/EmptyState.js +17 -0
- package/dist/components/EmptyState.js.map +1 -0
- package/dist/components/ErrorState.d.ts +50 -0
- package/dist/components/ErrorState.d.ts.map +1 -0
- package/dist/components/ErrorState.js +60 -0
- package/dist/components/ErrorState.js.map +1 -0
- package/dist/components/FilterBar.d.ts +1 -1
- package/dist/components/FilterBar.d.ts.map +1 -1
- package/dist/components/FilterBar.js +7 -4
- package/dist/components/FilterBar.js.map +1 -1
- package/dist/components/GroupCard.d.ts.map +1 -1
- package/dist/components/GroupCard.js +2 -1
- package/dist/components/GroupCard.js.map +1 -1
- package/dist/components/KpiGrid.d.ts +10 -3
- package/dist/components/KpiGrid.d.ts.map +1 -1
- package/dist/components/KpiGrid.js +31 -9
- package/dist/components/KpiGrid.js.map +1 -1
- package/dist/components/ListFooter.d.ts +3 -2
- package/dist/components/ListFooter.d.ts.map +1 -1
- package/dist/components/ListFooter.js +14 -4
- package/dist/components/ListFooter.js.map +1 -1
- package/dist/components/Pills.d.ts +10 -6
- package/dist/components/Pills.d.ts.map +1 -1
- package/dist/components/Pills.js +12 -6
- package/dist/components/Pills.js.map +1 -1
- package/dist/components/Toast.d.ts +37 -0
- package/dist/components/Toast.d.ts.map +1 -0
- package/dist/components/Toast.js +91 -0
- package/dist/components/Toast.js.map +1 -0
- package/dist/components/WidgetHeader.js +1 -1
- package/dist/hooks/use-tool-result-recovery.d.ts +23 -1
- package/dist/hooks/use-tool-result-recovery.d.ts.map +1 -1
- package/dist/hooks/use-tool-result-recovery.js +21 -7
- package/dist/hooks/use-tool-result-recovery.js.map +1 -1
- package/dist/hooks/use-view-data.d.ts +6 -0
- package/dist/hooks/use-view-data.d.ts.map +1 -1
- package/dist/hooks/use-view-data.js +6 -1
- package/dist/hooks/use-view-data.js.map +1 -1
- package/dist/index.d.ts +12 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -4
- package/dist/index.js.map +1 -1
- package/dist/lib/focus-ring.d.ts +18 -0
- package/dist/lib/focus-ring.d.ts.map +1 -0
- package/dist/lib/focus-ring.js +18 -0
- package/dist/lib/focus-ring.js.map +1 -0
- package/dist/lib/icon-stroke.d.ts +12 -0
- package/dist/lib/icon-stroke.d.ts.map +1 -0
- package/dist/lib/icon-stroke.js +12 -0
- package/dist/lib/icon-stroke.js.map +1 -0
- package/dist/lib/toast-model.d.ts +46 -0
- package/dist/lib/toast-model.d.ts.map +1 -0
- package/dist/lib/toast-model.js +36 -0
- package/dist/lib/toast-model.js.map +1 -0
- package/dist/lib/tone-utils.d.ts +43 -9
- package/dist/lib/tone-utils.d.ts.map +1 -1
- package/dist/lib/tone-utils.js +36 -7
- package/dist/lib/tone-utils.js.map +1 -1
- package/dist/locale/index.d.ts +3 -1
- package/dist/locale/index.d.ts.map +1 -1
- package/dist/locale/index.js +2 -1
- package/dist/locale/index.js.map +1 -1
- package/dist/locale/locale-provider.d.ts +42 -1
- package/dist/locale/locale-provider.d.ts.map +1 -1
- package/dist/locale/locale-provider.js +44 -3
- package/dist/locale/locale-provider.js.map +1 -1
- package/dist/locale/message-types.d.ts +223 -0
- package/dist/locale/message-types.d.ts.map +1 -0
- package/dist/locale/message-types.js +7 -0
- package/dist/locale/message-types.js.map +1 -0
- package/dist/locale/messages-de.d.ts +9 -0
- package/dist/locale/messages-de.d.ts.map +1 -0
- package/dist/locale/messages-de.js +151 -0
- package/dist/locale/messages-de.js.map +1 -0
- package/dist/locale/messages-en.d.ts +8 -0
- package/dist/locale/messages-en.d.ts.map +1 -0
- package/dist/locale/messages-en.js +150 -0
- package/dist/locale/messages-en.js.map +1 -0
- package/dist/locale/toolkit-messages.d.ts +39 -0
- package/dist/locale/toolkit-messages.d.ts.map +1 -0
- package/dist/locale/toolkit-messages.js +50 -0
- package/dist/locale/toolkit-messages.js.map +1 -0
- package/dist/primitives/alert.d.ts.map +1 -1
- package/dist/primitives/alert.js +4 -2
- package/dist/primitives/alert.js.map +1 -1
- package/dist/primitives/badge.d.ts +1 -1
- package/dist/primitives/badge.d.ts.map +1 -1
- package/dist/primitives/badge.js +14 -6
- package/dist/primitives/badge.js.map +1 -1
- package/dist/primitives/button.d.ts.map +1 -1
- package/dist/primitives/button.js +12 -8
- package/dist/primitives/button.js.map +1 -1
- package/dist/primitives/card.js +4 -4
- package/dist/primitives/card.js.map +1 -1
- package/dist/primitives/dialog.d.ts +7 -3
- package/dist/primitives/dialog.d.ts.map +1 -1
- package/dist/primitives/dialog.js +14 -7
- package/dist/primitives/dialog.js.map +1 -1
- package/dist/primitives/input.d.ts.map +1 -1
- package/dist/primitives/input.js +4 -1
- package/dist/primitives/input.js.map +1 -1
- package/dist/primitives/scroll-area.js +1 -1
- package/dist/primitives/scroll-area.js.map +1 -1
- package/dist/primitives/select.d.ts.map +1 -1
- package/dist/primitives/select.js +5 -2
- package/dist/primitives/select.js.map +1 -1
- package/dist/primitives/sheet.d.ts +3 -1
- package/dist/primitives/sheet.d.ts.map +1 -1
- package/dist/primitives/sheet.js +12 -6
- package/dist/primitives/sheet.js.map +1 -1
- package/dist/primitives/skeleton.js +1 -1
- package/dist/primitives/skeleton.js.map +1 -1
- package/dist/primitives/switch.d.ts.map +1 -1
- package/dist/primitives/switch.js +2 -1
- package/dist/primitives/switch.js.map +1 -1
- package/dist/primitives/tabs.d.ts.map +1 -1
- package/dist/primitives/tabs.js +5 -3
- package/dist/primitives/tabs.js.map +1 -1
- package/dist/render-cases.d.ts.map +1 -1
- package/dist/render-cases.js +20 -2
- package/dist/render-cases.js.map +1 -1
- package/dist/render-scan.d.ts +25 -0
- package/dist/render-scan.d.ts.map +1 -0
- package/dist/render-scan.js +66 -0
- package/dist/render-scan.js.map +1 -0
- package/dist/theme/cd-tokens.d.ts +66 -0
- package/dist/theme/cd-tokens.d.ts.map +1 -0
- package/dist/theme/cd-tokens.js +64 -0
- package/dist/theme/cd-tokens.js.map +1 -0
- package/dist/theme/create-theme.d.ts +196 -39
- package/dist/theme/create-theme.d.ts.map +1 -1
- package/dist/theme/create-theme.js +189 -13
- package/dist/theme/create-theme.js.map +1 -1
- package/dist/theme/fonts.d.ts +38 -0
- package/dist/theme/fonts.d.ts.map +1 -0
- package/dist/theme/fonts.js +56 -0
- package/dist/theme/fonts.js.map +1 -0
- package/dist/theme/host-fonts.d.ts +39 -0
- package/dist/theme/host-fonts.d.ts.map +1 -0
- package/dist/theme/host-fonts.js +44 -0
- package/dist/theme/host-fonts.js.map +1 -0
- package/dist/theme/index.d.ts +8 -1
- package/dist/theme/index.d.ts.map +1 -1
- package/dist/theme/index.js +5 -1
- package/dist/theme/index.js.map +1 -1
- package/dist/theme/portal-container.d.ts +16 -0
- package/dist/theme/portal-container.d.ts.map +1 -0
- package/dist/theme/portal-container.js +19 -0
- package/dist/theme/portal-container.js.map +1 -0
- package/dist/theme/presets.d.ts +24 -9
- package/dist/theme/presets.d.ts.map +1 -1
- package/dist/theme/presets.js +44 -11
- package/dist/theme/presets.js.map +1 -1
- package/dist/theme/theme-provider.d.ts +27 -9
- package/dist/theme/theme-provider.d.ts.map +1 -1
- package/dist/theme/theme-provider.js +42 -20
- package/dist/theme/theme-provider.js.map +1 -1
- package/package.json +9 -4
- package/src/app/builder/BuilderBanners.tsx +26 -13
- package/src/app/builder/CanvasRow.tsx +22 -21
- package/src/app/builder/CatalogueSheet.tsx +16 -14
- package/src/app/builder/EmptyHint.tsx +16 -11
- package/src/app/builder/LayoutSurface.tsx +7 -7
- package/src/app/builder/PipelineStrip.tsx +26 -17
- package/src/app/builder/SaveDialog.tsx +11 -12
- package/src/app/builder/Toolbar.tsx +19 -7
- package/src/app/builder/Workspace.tsx +5 -3
- package/src/app/builder/builder-feedback.test.tsx +75 -0
- package/src/app/builder/builder-model.test.ts +5 -0
- package/src/app/builder/builder-model.ts +5 -4
- package/src/app/builder/labels.ts +15 -121
- package/src/app/builder/status-chip.tsx +8 -4
- package/src/app/builder/use-builder-catalogue.ts +6 -0
- package/src/app/builder/use-save-dashboard.ts +5 -0
- package/src/app/index.ts +8 -1
- package/src/app/layout-builder.tsx +23 -3
- package/src/app/mcp-app-view-chrome.test.tsx +347 -14
- package/src/app/mcp-app-view-chrome.tsx +278 -100
- package/src/app/mcp-app-view-states.tsx +100 -0
- package/src/app/mcp-app-view.test.tsx +258 -0
- package/src/app/mcp-app-view.tsx +292 -185
- package/src/app/mcp-toolkit-app.tsx +31 -7
- package/src/app/use-view-lifecycle.ts +116 -0
- package/src/app/view-lifecycle.test.ts +227 -0
- package/src/app/view-lifecycle.ts +174 -0
- package/src/app/widget-props-sheet.tsx +13 -26
- package/src/app/widget-renderer.render.test.tsx +131 -0
- package/src/app/widget-renderer.tsx +136 -38
- package/src/components/DrillButton.tsx +2 -1
- package/src/components/EmptyState.tsx +81 -0
- package/src/components/ErrorState.tsx +182 -0
- package/src/components/FilterBar.tsx +9 -6
- package/src/components/GroupCard.tsx +3 -2
- package/src/components/KpiGrid.tsx +75 -44
- package/src/components/ListFooter.tsx +17 -6
- package/src/components/Pills.tsx +20 -11
- package/src/components/Toast.tsx +188 -0
- package/src/components/WidgetHeader.tsx +1 -1
- package/src/components/feedback-states.test.tsx +225 -0
- package/src/components/tone-figures.test.tsx +54 -0
- package/src/fonts.css +19 -0
- package/src/globals.css +9 -165
- package/src/hooks/use-tool-result-recovery.test.ts +25 -1
- package/src/hooks/use-tool-result-recovery.ts +34 -6
- package/src/hooks/use-view-data.test.tsx +60 -0
- package/src/hooks/use-view-data.ts +12 -1
- package/src/i18n-coverage.test.tsx +323 -0
- package/src/index.ts +57 -5
- package/src/lib/focus-ring.ts +20 -0
- package/src/lib/icon-stroke.test.ts +59 -0
- package/src/lib/icon-stroke.ts +13 -0
- package/src/lib/toast-model.test.ts +68 -0
- package/src/lib/toast-model.ts +63 -0
- package/src/lib/tone-utils.test.ts +47 -14
- package/src/lib/tone-utils.ts +61 -13
- package/src/locale/index.ts +13 -1
- package/src/locale/locale-provider.test.tsx +87 -0
- package/src/locale/locale-provider.tsx +90 -3
- package/src/locale/message-types.ts +221 -0
- package/src/locale/messages-de.ts +159 -0
- package/src/locale/messages-en.ts +157 -0
- package/src/locale/toolkit-messages.test.ts +216 -0
- package/src/locale/toolkit-messages.ts +82 -0
- package/src/no-hardcoded-copy.test.ts +432 -0
- package/src/primitives/alert.tsx +4 -2
- package/src/primitives/badge.tsx +14 -7
- package/src/primitives/button.tsx +13 -8
- package/src/primitives/card.tsx +4 -4
- package/src/primitives/dialog.tsx +32 -7
- package/src/primitives/input.tsx +5 -3
- package/src/primitives/scroll-area.tsx +1 -1
- package/src/primitives/select.tsx +6 -3
- package/src/primitives/sheet.tsx +26 -6
- package/src/primitives/skeleton.tsx +1 -1
- package/src/primitives/switch.tsx +4 -2
- package/src/primitives/tabs.tsx +9 -6
- package/src/render-cases.tsx +45 -1
- package/src/render-scan.ts +75 -0
- package/src/theme/cd-tokens.generated.css +48 -0
- package/src/theme/cd-tokens.test.ts +107 -0
- package/src/theme/cd-tokens.ts +67 -0
- package/src/theme/create-theme.test.ts +243 -5
- package/src/theme/create-theme.ts +313 -41
- package/src/theme/fonts.test.ts +85 -0
- package/src/theme/fonts.ts +72 -0
- package/src/theme/host-fonts.test.ts +135 -0
- package/src/theme/host-fonts.ts +52 -0
- package/src/theme/index.ts +15 -1
- package/src/theme/portal-container.ts +20 -0
- package/src/theme/presets.ts +44 -11
- package/src/theme/theme-css.test.ts +568 -0
- package/src/theme/theme-provider.test.tsx +82 -0
- package/src/theme/theme-provider.tsx +60 -24
- package/src/theme.css +314 -0
- package/ui-catalog.json +344 -17
|
@@ -3,7 +3,6 @@ import { useCallback, useMemo, useReducer, useState } from "react";
|
|
|
3
3
|
import { Eye, Layers, SlidersHorizontal } from "lucide-react";
|
|
4
4
|
import { draftToLayout, entriesToKeys, initDraft, sizeToSpan } from "./builder/builder-model.js";
|
|
5
5
|
import { draftReducer, initBuilderState, } from "./builder/builder-reducer.js";
|
|
6
|
-
import { DEFAULT_LABELS } from "./builder/labels.js";
|
|
7
6
|
import { Toolbar } from "./builder/Toolbar.js";
|
|
8
7
|
import { PipelineStrip } from "./builder/PipelineStrip.js";
|
|
9
8
|
import { CatalogueSheet } from "./builder/CatalogueSheet.js";
|
|
@@ -17,11 +16,23 @@ import { useBuilderCatalogue } from "./builder/use-builder-catalogue.js";
|
|
|
17
16
|
import { useKeyStepEntries } from "./builder/use-key-step-entries.js";
|
|
18
17
|
import { useSaveDashboard } from "./builder/use-save-dashboard.js";
|
|
19
18
|
import { Tabs, TabsContent, TabsList, TabsTrigger } from "../primitives/tabs.js";
|
|
19
|
+
import { ToastProvider, useToast } from "../components/Toast.js";
|
|
20
|
+
import { useToolkitMessages } from "../locale/locale-provider.js";
|
|
20
21
|
// -------------------------------------------------------------------------- //
|
|
21
22
|
// Main component
|
|
22
23
|
// -------------------------------------------------------------------------- //
|
|
23
|
-
|
|
24
|
-
|
|
24
|
+
/**
|
|
25
|
+
* The visual view builder. Confirms a successful save with a toast (it mounts
|
|
26
|
+
* a `ToastProvider` when none is above it — inside `McpAppView` it shares the
|
|
27
|
+
* view's). Every caption follows the active locale (`labels` overrides).
|
|
28
|
+
*/
|
|
29
|
+
export function LayoutBuilder(props) {
|
|
30
|
+
return (_jsx(ToastProvider, { children: _jsx(LayoutBuilderImpl, { ...props }) }));
|
|
31
|
+
}
|
|
32
|
+
function LayoutBuilderImpl({ initialLayout, title, initialKeys, initialSteps, widgets, callTool, catalogueToolName = "get-builder-catalogue", saveToolName = "save-dashboard", dashboardId, labels, onSaved, onExit, }) {
|
|
33
|
+
const messages = useToolkitMessages();
|
|
34
|
+
const L = useMemo(() => ({ ...messages.builder, ...labels }), [messages.builder, labels]);
|
|
35
|
+
const toast = useToast();
|
|
25
36
|
// ── Draft layout (pure reducer) ─────────────────────────────────────────
|
|
26
37
|
// The draft plus the UI indices coupled to draft mutations
|
|
27
38
|
// (activeTabIndex / focusedRowIndex / editingTabIdx) live in a single pure
|
|
@@ -59,7 +70,7 @@ export function LayoutBuilder({ initialLayout, title, initialKeys, initialSteps,
|
|
|
59
70
|
// ── Catalogue fetch (mount + on key/step edits) ─────────────────────────
|
|
60
71
|
// The builder fetches its own catalogue from the app-only
|
|
61
72
|
// `get-builder-catalogue` tool; the LLM never sees this data.
|
|
62
|
-
const { liveReachable, liveUnreachable, liveCatalog, liveSteps, liveContext, validationIssues, status, refreshError, widgetById, propsSchemaByWidgetId, paletteByApp, liveKeyCount, stepsByApp, } = useBuilderCatalogue({ callTool, catalogueToolName, keyEntries, stepEntries });
|
|
73
|
+
const { liveReachable, liveUnreachable, liveCatalog, liveSteps, liveContext, validationIssues, status, refreshError, retryCatalogue, widgetById, propsSchemaByWidgetId, paletteByApp, liveKeyCount, stepsByApp, } = useBuilderCatalogue({ callTool, catalogueToolName, keyEntries, stepEntries });
|
|
63
74
|
// ── Save dialog ─────────────────────────────────────────────────────────
|
|
64
75
|
const { isBusy, saveOpen, setSaveOpen, saveName, setSaveName, saveDescription, setSaveDescription, saveError, setSaveError, saveDraft, } = useSaveDashboard({
|
|
65
76
|
callTool,
|
|
@@ -70,6 +81,7 @@ export function LayoutBuilder({ initialLayout, title, initialKeys, initialSteps,
|
|
|
70
81
|
stepEntries,
|
|
71
82
|
draft,
|
|
72
83
|
onSaved,
|
|
84
|
+
onSuccess: (name) => toast.show({ tone: "success", title: L.saved(name) }),
|
|
73
85
|
});
|
|
74
86
|
// ── DnD ──────────────────────────────────────────────────────────────────
|
|
75
87
|
const [dragOverRow, setDragOverRow] = useState(null);
|
|
@@ -150,7 +162,7 @@ export function LayoutBuilder({ initialLayout, title, initialKeys, initialSteps,
|
|
|
150
162
|
errors: liveContext.errors,
|
|
151
163
|
},
|
|
152
164
|
})
|
|
153
|
-
: undefined, hasAnyCell: hasAnyCell }), _jsx(BuilderBanners, { L: L, catalogueToolName: catalogueToolName, refreshError: refreshError, validationIssues: validationIssues }), _jsxs(Tabs, { value: view, onValueChange: (v) => setView(v), children: [_jsxs(TabsList, { children: [_jsxs(TabsTrigger, { value: "layout", children: [_jsx(Layers, { className: "size-3.5" }), L.viewLayoutTab] }), _jsxs(TabsTrigger, { value: "pipeline", children: [_jsx(SlidersHorizontal, { className: "size-3.5" }), L.viewPipelineTab, (keyEntries.length > 0 || stepEntries.length > 0) && (_jsxs("span", { className: "bg-muted text-muted-foreground ml-1 rounded px-1 font-mono text-[10px]", children: [keyEntries.length, "/", stepEntries.length] }))] }), _jsxs(TabsTrigger, { value: "preview", disabled: !hasAnyCell, children: [_jsx(Eye, { className: "size-3.5" }), L.viewPreviewTab] })] }), _jsx(TabsContent, { value: "layout", className: "mt-4", children: liveReachable.length === 0 && !hasAnyCell ? (_jsx(EmptyHint, { L: L, onGotoPipeline: () => setView("pipeline") })) : (_jsx(LayoutSurface, { L: L, draft: draft, activeTabIndex: activeTabIndex, setActiveTabIndex: setActiveTabIndex, editingTabIdx: editingTabIdx, setEditingTabIdx: setEditingTabIdx, renameRejected: renameRejected, commitRename: commitRename, onAddTab: addTab, onRemoveTab: removeTab, workspace: {
|
|
165
|
+
: undefined, hasAnyCell: hasAnyCell }), _jsx(BuilderBanners, { L: L, catalogueToolName: catalogueToolName, refreshError: refreshError, validationIssues: validationIssues, onRetry: retryCatalogue }), _jsxs(Tabs, { value: view, onValueChange: (v) => setView(v), children: [_jsxs(TabsList, { children: [_jsxs(TabsTrigger, { value: "layout", children: [_jsx(Layers, { className: "size-3.5" }), L.viewLayoutTab] }), _jsxs(TabsTrigger, { value: "pipeline", children: [_jsx(SlidersHorizontal, { className: "size-3.5" }), L.viewPipelineTab, (keyEntries.length > 0 || stepEntries.length > 0) && (_jsxs("span", { className: "bg-muted text-muted-foreground ml-1 rounded px-1 font-mono text-[10px]", children: [keyEntries.length, "/", stepEntries.length] }))] }), _jsxs(TabsTrigger, { value: "preview", disabled: !hasAnyCell, children: [_jsx(Eye, { className: "size-3.5" }), L.viewPreviewTab] })] }), _jsx(TabsContent, { value: "layout", className: "mt-4", children: liveReachable.length === 0 && !hasAnyCell ? (_jsx(EmptyHint, { L: L, onGotoPipeline: () => setView("pipeline") })) : (_jsx(LayoutSurface, { L: L, draft: draft, activeTabIndex: activeTabIndex, setActiveTabIndex: setActiveTabIndex, editingTabIdx: editingTabIdx, setEditingTabIdx: setEditingTabIdx, renameRejected: renameRejected, commitRename: commitRename, onAddTab: addTab, onRemoveTab: removeTab, workspace: {
|
|
154
166
|
L,
|
|
155
167
|
paletteByApp,
|
|
156
168
|
paletteCount: liveReachable.length,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout-builder.js","sourceRoot":"","sources":["../../src/app/layout-builder.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"layout-builder.js","sourceRoot":"","sources":["../../src/app/layout-builder.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Presentational chrome for `McpAppView` — the toolbar, the failed-steps
|
|
3
|
+
* alert, and the build/render body — plus the view-envelope types they share.
|
|
4
|
+
* The pre-payload states (waiting / error / cancelled) live in
|
|
5
|
+
* `mcp-app-view-states.tsx`. Split out of `mcp-app-view.tsx` so the shell
|
|
6
|
+
* component keeps only the host-sync and state logic while these files stay
|
|
7
|
+
* hook-light.
|
|
8
|
+
*/
|
|
9
|
+
import { type ReactNode } from "react";
|
|
1
10
|
import type { LayoutConfig, PipelineStepRef } from "@miragon/mcp-toolkit-core";
|
|
2
|
-
import { type
|
|
11
|
+
import { type ViewMessages } from "../locale/toolkit-messages.js";
|
|
12
|
+
import { type LayoutBuilderLabels, type LayoutBuilderProps } from "./layout-builder.js";
|
|
3
13
|
import { type WidgetComponent } from "./widget-renderer.js";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
+
/**
|
|
15
|
+
* Override strings of the view chrome (placeholder, error state, toolbar,
|
|
16
|
+
* step errors). Every field defaults to the active locale's toolkit catalog
|
|
17
|
+
* (`en`/`de`, see `useToolkitMessages`).
|
|
18
|
+
*/
|
|
19
|
+
export type McpAppViewLabels = Partial<ViewMessages>;
|
|
20
|
+
/**
|
|
21
|
+
* English chrome strings.
|
|
22
|
+
* @deprecated Read the active locale's strings with `useToolkitMessages().view`
|
|
23
|
+
* (or `TOOLKIT_MESSAGES.en.view`); this alias stays for existing imports.
|
|
24
|
+
*/
|
|
14
25
|
export declare const DEFAULT_LABELS: Required<McpAppViewLabels>;
|
|
26
|
+
/** How the toolbar shows the view title — so a view has exactly ONE title. */
|
|
27
|
+
export type ViewTitleMode = "show" | "hide" | "slot";
|
|
28
|
+
/** Heading level of the toolbar title. */
|
|
29
|
+
export type ViewTitleLevel = 1 | 2 | 3 | 4 | 5 | 6;
|
|
15
30
|
export interface RefreshParams {
|
|
16
31
|
keys?: Record<string, unknown>;
|
|
17
32
|
steps?: PipelineStepRef[];
|
|
@@ -50,28 +65,86 @@ export interface ViewData {
|
|
|
50
65
|
* recovery hook's `isValid` dependency.
|
|
51
66
|
*/
|
|
52
67
|
export declare function isCompleteViewData(value: unknown): value is ViewData;
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
68
|
+
/** What the LayoutBuilder hands back on Done. */
|
|
69
|
+
export interface BuilderCommit {
|
|
70
|
+
layout: LayoutConfig;
|
|
71
|
+
keys?: Record<string, unknown>;
|
|
72
|
+
steps?: PipelineStepRef[];
|
|
73
|
+
title?: string;
|
|
74
|
+
context?: ViewData["context"];
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Commit the builder's draft into the view payload so the renderer shows the
|
|
78
|
+
* just-built layout and Refresh re-issues it. Exported for tests.
|
|
79
|
+
*/
|
|
80
|
+
export declare function applyBuilderCommit(prev: ViewData, commit: BuilderCommit): ViewData;
|
|
81
|
+
/**
|
|
82
|
+
* Whether the Fullscreen toggle may render: the host offers fullscreen
|
|
83
|
+
* (mcp-use's negotiated `availableDisplayModes`, toolkit#178 K22), or the view
|
|
84
|
+
* is already there (its exit toggle must stay).
|
|
85
|
+
*/
|
|
86
|
+
export declare function fullscreenAvailable(displayMode: string, availableDisplayModes: readonly string[]): boolean;
|
|
58
87
|
export interface ViewToolbarProps {
|
|
59
88
|
/** The toolbar hides entirely while build mode owns the surface. */
|
|
60
89
|
hidden: boolean;
|
|
61
90
|
viewData: ViewData;
|
|
62
91
|
builderAvailable: boolean;
|
|
63
92
|
isFullscreen: boolean;
|
|
93
|
+
/** The host offers fullscreen (see {@link fullscreenAvailable}). */
|
|
94
|
+
canFullscreen: boolean;
|
|
64
95
|
isRefreshing: boolean;
|
|
65
96
|
labels: Required<McpAppViewLabels>;
|
|
97
|
+
titleMode: ViewTitleMode;
|
|
98
|
+
titleLevel: ViewTitleLevel;
|
|
99
|
+
renderTitle?: (title: string | undefined) => ReactNode;
|
|
66
100
|
onRefresh: () => Promise<void>;
|
|
67
101
|
onEnterBuildMode: () => void;
|
|
68
102
|
onToggleFullscreen: () => Promise<void>;
|
|
69
103
|
}
|
|
70
|
-
|
|
71
|
-
export declare function
|
|
72
|
-
|
|
104
|
+
/** Which toolbar controls render — pure, so the gates are unit-testable. */
|
|
105
|
+
export declare function toolbarControls(input: {
|
|
106
|
+
viewData: Pick<ViewData, "_refreshParams" | "layout" | "title">;
|
|
107
|
+
builderAvailable: boolean;
|
|
108
|
+
canFullscreen: boolean;
|
|
109
|
+
titleMode: ViewTitleMode;
|
|
110
|
+
}): {
|
|
111
|
+
title: boolean;
|
|
112
|
+
refresh: boolean;
|
|
113
|
+
edit: boolean;
|
|
114
|
+
fullscreen: boolean;
|
|
115
|
+
any: boolean;
|
|
116
|
+
};
|
|
117
|
+
/**
|
|
118
|
+
* The view toolbar: the title (per {@link ViewTitleMode}, so a widget that
|
|
119
|
+
* renders its own heading is not titled twice), then Edit, Refresh and
|
|
120
|
+
* Fullscreen. Refresh and Fullscreen are 32 px icon buttons named by
|
|
121
|
+
* `aria-label`; Fullscreen renders only when the host offers it. All three are
|
|
122
|
+
* chrome buttons in the CI pattern (CI §8: surface, border, shadow-1, blue
|
|
123
|
+
* hover; {@link CHROME_BUTTON}). A 16 px inset keeps the bar off the frame
|
|
124
|
+
* edge, also in fullscreen.
|
|
125
|
+
*/
|
|
126
|
+
export declare function ViewToolbar({ hidden, viewData, builderAvailable, isFullscreen, canFullscreen, isRefreshing, labels, titleMode, titleLevel, renderTitle, onRefresh, onEnterBuildMode, onToggleFullscreen, }: ViewToolbarProps): import("react").JSX.Element | null;
|
|
127
|
+
/** Resolves a human title for a pipeline step (`{ id, step }` from the view's steps). */
|
|
128
|
+
export type DescribeStep = (step: {
|
|
129
|
+
id: string;
|
|
130
|
+
step?: string;
|
|
131
|
+
}) => string | undefined;
|
|
132
|
+
/**
|
|
133
|
+
* The failed data steps as ONE inline alert: what happened (the title), which
|
|
134
|
+
* data is affected (each step by its human title, else its step id), what you
|
|
135
|
+
* can do (retry, or ask in the chat when the view cannot refresh). The raw
|
|
136
|
+
* step reasons stay under "Details", out of the user copy.
|
|
137
|
+
*/
|
|
138
|
+
export declare function StepErrors({ hidden, errors, steps, labels, describeStep, onRetry, }: {
|
|
139
|
+
/** Build mode surfaces its own diagnostics; the shell alert hides. */
|
|
73
140
|
hidden: boolean;
|
|
74
141
|
errors: ViewData["context"]["errors"];
|
|
142
|
+
/** The view's step refs (`_refreshParams.steps`), to name a failed step by its definition. */
|
|
143
|
+
steps?: PipelineStepRef[];
|
|
144
|
+
labels: Required<McpAppViewLabels>;
|
|
145
|
+
describeStep?: DescribeStep;
|
|
146
|
+
/** Re-runs the view (a refresh); omitted when the view cannot be refreshed. */
|
|
147
|
+
onRetry?: () => void;
|
|
75
148
|
}): import("react").JSX.Element | null;
|
|
76
149
|
export interface ViewBodyProps {
|
|
77
150
|
buildMode: boolean;
|
|
@@ -79,6 +152,7 @@ export interface ViewBodyProps {
|
|
|
79
152
|
widgets: Record<string, WidgetComponent>;
|
|
80
153
|
callTool: (name: string, args: object) => Promise<unknown>;
|
|
81
154
|
onExit: LayoutBuilderProps["onExit"];
|
|
155
|
+
builderLabels?: LayoutBuilderLabels;
|
|
82
156
|
}
|
|
83
|
-
export declare function ViewBody({ buildMode, viewData, widgets, callTool, onExit }: ViewBodyProps): import("react").JSX.Element | null;
|
|
157
|
+
export declare function ViewBody({ buildMode, viewData, widgets, callTool, onExit, builderLabels, }: ViewBodyProps): import("react").JSX.Element | null;
|
|
84
158
|
//# sourceMappingURL=mcp-app-view-chrome.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-app-view-chrome.d.ts","sourceRoot":"","sources":["../../src/app/mcp-app-view-chrome.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mcp-app-view-chrome.d.ts","sourceRoot":"","sources":["../../src/app/mcp-app-view-chrome.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAErD,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAG9E,OAAO,EAAoB,KAAK,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAEnF,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACxB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAE3E;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;AAEpD;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,gBAAgB,CAA4B,CAAA;AAElF,8EAA8E;AAC9E,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;AAEpD,0CAA0C;AAC1C,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAElD,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,KAAK,CAAC,EAAE,eAAe,EAAE,CAAA;IACzB,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,QAAQ;IACvB,cAAc,CAAC,EAAE,aAAa,CAAA;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAC7B,OAAO,EAAE,MAAM,EAAE,CAAA;QACjB,QAAQ,EAAE,MAAM,CACd,MAAM,EACN;YAAE,IAAI,EAAE,OAAO,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,CAClF,CAAA;QACD,MAAM,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAC7C,CAAA;IACD,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAGpE;AAED,iDAAiD;AACjD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,YAAY,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,KAAK,CAAC,EAAE,eAAe,EAAE,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAA;CAC9B;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,GAAG,QAAQ,CASlF;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,qBAAqB,EAAE,SAAS,MAAM,EAAE,GACvC,OAAO,CAET;AAMD,MAAM,WAAW,gBAAgB;IAC/B,oEAAoE;IACpE,MAAM,EAAE,OAAO,CAAA;IACf,QAAQ,EAAE,QAAQ,CAAA;IAClB,gBAAgB,EAAE,OAAO,CAAA;IACzB,YAAY,EAAE,OAAO,CAAA;IACrB,oEAAoE;IACpE,aAAa,EAAE,OAAO,CAAA;IACtB,YAAY,EAAE,OAAO,CAAA;IACrB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAA;IAClC,SAAS,EAAE,aAAa,CAAA;IACxB,UAAU,EAAE,cAAc,CAAA;IAC1B,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,SAAS,CAAA;IACtD,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9B,gBAAgB,EAAE,MAAM,IAAI,CAAA;IAC5B,kBAAkB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CACxC;AAuBD,4EAA4E;AAC5E,wBAAgB,eAAe,CAAC,KAAK,EAAE;IACrC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,gBAAgB,GAAG,QAAQ,GAAG,OAAO,CAAC,CAAA;IAC/D,gBAAgB,EAAE,OAAO,CAAA;IACzB,aAAa,EAAE,OAAO,CAAA;IACtB,SAAS,EAAE,aAAa,CAAA;CACzB,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,CAYzF;AAmED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,EAC1B,MAAM,EACN,QAAQ,EACR,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,MAAM,EACN,SAAS,EACT,UAAU,EACV,WAAW,EACX,SAAS,EACT,gBAAgB,EAChB,kBAAkB,GACnB,EAAE,gBAAgB,sCAiClB;AAMD,yFAAyF;AACzF,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,MAAM,GAAG,SAAS,CAAA;AAEtF;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,MAAM,EACN,KAAK,EACL,MAAM,EACN,YAAY,EACZ,OAAO,GACR,EAAE;IACD,sEAAsE;IACtE,MAAM,EAAE,OAAO,CAAA;IACf,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAA;IACrC,8FAA8F;IAC9F,KAAK,CAAC,EAAE,eAAe,EAAE,CAAA;IACzB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAA;IAClC,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,+EAA+E;IAC/E,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CACrB,sCAkCA;AAMD,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,QAAQ,CAAA;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IACxC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IAC1D,MAAM,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAA;IACpC,aAAa,CAAC,EAAE,mBAAmB,CAAA;CACpC;AAED,wBAAgB,QAAQ,CAAC,EACvB,SAAS,EACT,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,MAAM,EACN,aAAa,GACd,EAAE,aAAa,sCAyBf"}
|
|
@@ -1,24 +1,26 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
/**
|
|
3
|
-
* Presentational chrome for `McpAppView` — the
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* Split out of `mcp-app-view.tsx` so the shell
|
|
7
|
-
* host-sync and state logic while
|
|
3
|
+
* Presentational chrome for `McpAppView` — the toolbar, the failed-steps
|
|
4
|
+
* alert, and the build/render body — plus the view-envelope types they share.
|
|
5
|
+
* The pre-payload states (waiting / error / cancelled) live in
|
|
6
|
+
* `mcp-app-view-states.tsx`. Split out of `mcp-app-view.tsx` so the shell
|
|
7
|
+
* component keeps only the host-sync and state logic while these files stay
|
|
8
|
+
* hook-light.
|
|
8
9
|
*/
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
10
|
+
import { createElement } from "react";
|
|
11
|
+
import { LucideProvider, Maximize2, Minimize2, Pencil, RefreshCw } from "lucide-react";
|
|
12
|
+
import { ErrorState } from "../components/ErrorState.js";
|
|
13
|
+
import { DENSE_ICON_STROKE } from "../lib/icon-stroke.js";
|
|
14
|
+
import { TOOLKIT_MESSAGES } from "../locale/toolkit-messages.js";
|
|
15
|
+
import { Button } from "../primitives/button.js";
|
|
16
|
+
import { LayoutBuilder, } from "./layout-builder.js";
|
|
12
17
|
import { WidgetRenderer } from "./widget-renderer.js";
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
exitFullscreen: "Collapse",
|
|
20
|
-
build: "Build",
|
|
21
|
-
};
|
|
18
|
+
/**
|
|
19
|
+
* English chrome strings.
|
|
20
|
+
* @deprecated Read the active locale's strings with `useToolkitMessages().view`
|
|
21
|
+
* (or `TOOLKIT_MESSAGES.en.view`); this alias stays for existing imports.
|
|
22
|
+
*/
|
|
23
|
+
export const DEFAULT_LABELS = TOOLKIT_MESSAGES.en.view;
|
|
22
24
|
/**
|
|
23
25
|
* A renderable view payload: the envelope `render-view`/`show_*` tools emit
|
|
24
26
|
* as `structuredContent`. Module-level so it is referentially stable as the
|
|
@@ -28,35 +30,102 @@ export function isCompleteViewData(value) {
|
|
|
28
30
|
const v = value;
|
|
29
31
|
return Boolean(v?.context && v?.layout);
|
|
30
32
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
33
|
+
/**
|
|
34
|
+
* Commit the builder's draft into the view payload so the renderer shows the
|
|
35
|
+
* just-built layout and Refresh re-issues it. Exported for tests.
|
|
36
|
+
*/
|
|
37
|
+
export function applyBuilderCommit(prev, commit) {
|
|
38
|
+
const title = commit.title ?? prev.title;
|
|
39
|
+
return {
|
|
40
|
+
...prev,
|
|
41
|
+
layout: commit.layout,
|
|
42
|
+
title,
|
|
43
|
+
context: commit.context ?? prev.context,
|
|
44
|
+
_refreshParams: { keys: commit.keys, steps: commit.steps, layout: commit.layout, title },
|
|
45
|
+
};
|
|
39
46
|
}
|
|
40
|
-
|
|
41
|
-
|
|
47
|
+
/**
|
|
48
|
+
* Whether the Fullscreen toggle may render: the host offers fullscreen
|
|
49
|
+
* (mcp-use's negotiated `availableDisplayModes`, toolkit#178 K22), or the view
|
|
50
|
+
* is already there (its exit toggle must stay).
|
|
51
|
+
*/
|
|
52
|
+
export function fullscreenAvailable(displayMode, availableDisplayModes) {
|
|
53
|
+
return displayMode === "fullscreen" || availableDisplayModes.includes("fullscreen");
|
|
54
|
+
}
|
|
55
|
+
/** The toolbar title per {@link ViewTitleMode}: a heading, the consumer's slot, or nothing. */
|
|
56
|
+
function ToolbarTitle({ title, mode, level, renderTitle, }) {
|
|
57
|
+
if (mode === "slot")
|
|
58
|
+
return _jsx("div", { className: "min-w-0 flex-1", children: renderTitle?.(title) });
|
|
59
|
+
if (mode === "hide" || !title)
|
|
42
60
|
return null;
|
|
43
|
-
return (
|
|
44
|
-
void onRefresh();
|
|
45
|
-
}, disabled: isRefreshing, className: "hover:bg-accent hover:text-accent-foreground inline-flex items-center gap-1.5 rounded-md border px-3 py-1.5 text-sm font-medium transition-colors disabled:opacity-50", children: [_jsx(RefreshCw, { "aria-hidden": "true", className: `h-4 w-4 ${isRefreshing ? "animate-spin" : ""}` }), isRefreshing ? labels.refreshing : labels.refresh] })), builderAvailable && viewData._refreshParams && (_jsxs("button", { onClick: onEnterBuildMode, className: "hover:bg-accent hover:text-accent-foreground inline-flex items-center gap-1.5 rounded-md border px-3 py-1.5 text-sm font-medium transition-colors", children: [_jsx(Pencil, { className: "h-4 w-4" }), labels.build] })), _jsxs("button", { onClick: () => {
|
|
46
|
-
void onToggleFullscreen();
|
|
47
|
-
}, className: "hover:bg-accent hover:text-accent-foreground inline-flex items-center gap-1.5 rounded-md border px-3 py-1.5 text-sm font-medium transition-colors", children: [isFullscreen ? (_jsx(Minimize2, { "aria-hidden": "true", className: "h-4 w-4" })) : (_jsx(Maximize2, { "aria-hidden": "true", className: "h-4 w-4" })), isFullscreen ? labels.exitFullscreen : labels.enterFullscreen] })] })] }));
|
|
61
|
+
return createElement(`h${level}`, { className: "min-w-0 flex-1 truncate text-lg font-semibold tracking-tight" }, title);
|
|
48
62
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
63
|
+
/** Which toolbar controls render — pure, so the gates are unit-testable. */
|
|
64
|
+
export function toolbarControls(input) {
|
|
65
|
+
const refreshable = Boolean(input.viewData._refreshParams && input.viewData.layout);
|
|
66
|
+
const edit = input.builderAvailable && Boolean(input.viewData._refreshParams);
|
|
67
|
+
const title = input.titleMode === "slot" || (input.titleMode === "show" && Boolean(input.viewData.title));
|
|
68
|
+
return {
|
|
69
|
+
title,
|
|
70
|
+
refresh: refreshable,
|
|
71
|
+
edit,
|
|
72
|
+
fullscreen: input.canFullscreen,
|
|
73
|
+
any: title || refreshable || edit || input.canFullscreen,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* The CI §8 chrome button (Icon-Button, Chrome): surface, `--cd-linie` border,
|
|
78
|
+
* shadow-1, blue on hover. The `outline` variant brings the surface, the
|
|
79
|
+
* border and the blue hover (it is also CI §8's secondary button, which has no
|
|
80
|
+
* shadow), so the chrome adds `shadow-1` on top instead of changing it.
|
|
81
|
+
*/
|
|
82
|
+
const CHROME_BUTTON = { variant: "outline", className: "shadow-1" };
|
|
83
|
+
function RefreshButton({ isRefreshing, labels, onRefresh, }) {
|
|
84
|
+
const label = isRefreshing ? labels.refreshing : labels.refresh;
|
|
85
|
+
return (_jsx(Button, { type: "button", ...CHROME_BUTTON, size: "icon-sm", "aria-label": label, title: label, disabled: isRefreshing, onClick: () => {
|
|
86
|
+
void onRefresh();
|
|
87
|
+
}, children: _jsx(RefreshCw, { "aria-hidden": "true", className: isRefreshing ? "motion-safe:animate-spin" : undefined }) }));
|
|
88
|
+
}
|
|
89
|
+
function FullscreenButton({ isFullscreen, labels, onToggle, }) {
|
|
90
|
+
const label = isFullscreen ? labels.exitFullscreen : labels.enterFullscreen;
|
|
91
|
+
const Icon = isFullscreen ? Minimize2 : Maximize2;
|
|
92
|
+
return (_jsx(Button, { type: "button", ...CHROME_BUTTON, size: "icon-sm", "aria-label": label, title: label, onClick: () => {
|
|
93
|
+
void onToggle();
|
|
94
|
+
}, children: _jsx(Icon, { "aria-hidden": "true" }) }));
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* The view toolbar: the title (per {@link ViewTitleMode}, so a widget that
|
|
98
|
+
* renders its own heading is not titled twice), then Edit, Refresh and
|
|
99
|
+
* Fullscreen. Refresh and Fullscreen are 32 px icon buttons named by
|
|
100
|
+
* `aria-label`; Fullscreen renders only when the host offers it. All three are
|
|
101
|
+
* chrome buttons in the CI pattern (CI §8: surface, border, shadow-1, blue
|
|
102
|
+
* hover; {@link CHROME_BUTTON}). A 16 px inset keeps the bar off the frame
|
|
103
|
+
* edge, also in fullscreen.
|
|
104
|
+
*/
|
|
105
|
+
export function ViewToolbar({ hidden, viewData, builderAvailable, isFullscreen, canFullscreen, isRefreshing, labels, titleMode, titleLevel, renderTitle, onRefresh, onEnterBuildMode, onToggleFullscreen, }) {
|
|
106
|
+
const show = toolbarControls({ viewData, builderAvailable, canFullscreen, titleMode });
|
|
107
|
+
if (hidden || !show.any)
|
|
108
|
+
return null;
|
|
109
|
+
return (_jsx(LucideProvider, { strokeWidth: DENSE_ICON_STROKE, children: _jsxs("div", { "data-slot": "view-toolbar", className: "flex min-h-12 items-center gap-2 px-4 py-2", children: [_jsx(ToolbarTitle, { title: viewData.title, mode: titleMode, level: titleLevel, renderTitle: renderTitle }), _jsxs("div", { className: "ml-auto flex shrink-0 items-center gap-1", children: [show.edit && (_jsxs(Button, { type: "button", ...CHROME_BUTTON, size: "sm", onClick: onEnterBuildMode, children: [_jsx(Pencil, { "aria-hidden": "true" }), labels.build] })), show.refresh && (_jsx(RefreshButton, { isRefreshing: isRefreshing, labels: labels, onRefresh: onRefresh })), show.fullscreen && (_jsx(FullscreenButton, { isFullscreen: isFullscreen, labels: labels, onToggle: onToggleFullscreen }))] })] }) }));
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* The failed data steps as ONE inline alert: what happened (the title), which
|
|
113
|
+
* data is affected (each step by its human title, else its step id), what you
|
|
114
|
+
* can do (retry, or ask in the chat when the view cannot refresh). The raw
|
|
115
|
+
* step reasons stay under "Details", out of the user copy.
|
|
116
|
+
*/
|
|
117
|
+
export function StepErrors({ hidden, errors, steps, labels, describeStep, onRetry, }) {
|
|
53
118
|
if (hidden || errors.length === 0)
|
|
54
119
|
return null;
|
|
55
|
-
|
|
120
|
+
const failed = errors.map((err) => {
|
|
121
|
+
const ref = { id: err.stepId, step: steps?.find((s) => s.id === err.stepId)?.step };
|
|
122
|
+
return { ref, human: describeStep?.(ref), reason: err.reason };
|
|
123
|
+
});
|
|
124
|
+
return (_jsx("div", { className: "px-4 pb-4", children: _jsx(ErrorState, { variant: "inline", title: labels.stepErrorsTitle, retryLabel: labels.retry, onRetry: onRetry, detailsLabel: labels.errorDetails, details: failed.map(({ ref, reason }) => `${ref.step ?? ref.id}: ${reason}`).join("\n"), description: _jsxs(_Fragment, { children: [_jsx("ul", { className: "flex flex-col gap-1", children: failed.map(({ ref, human }) => (_jsx("li", { className: "break-words", children: human ? (_jsx("span", { className: "font-medium", children: human })) : (_jsx("span", { className: "font-mono text-xs", children: ref.step ?? ref.id })) }, ref.id))) }), _jsx("p", { className: "mt-1", children: onRetry ? labels.stepErrorsHint : labels.errorHintNoRetry })] }) }) }));
|
|
56
125
|
}
|
|
57
|
-
export function ViewBody({ buildMode, viewData, widgets, callTool, onExit }) {
|
|
126
|
+
export function ViewBody({ buildMode, viewData, widgets, callTool, onExit, builderLabels, }) {
|
|
58
127
|
if (buildMode) {
|
|
59
|
-
return (_jsx(LayoutBuilder, { initialLayout: viewData.layout, title: viewData.title, initialKeys: viewData._refreshParams?.keys, initialSteps: viewData._refreshParams?.steps, widgets: widgets, callTool: callTool, onExit: onExit }));
|
|
128
|
+
return (_jsx(LayoutBuilder, { initialLayout: viewData.layout, title: viewData.title, initialKeys: viewData._refreshParams?.keys, initialSteps: viewData._refreshParams?.steps, widgets: widgets, callTool: callTool, labels: builderLabels, onExit: onExit }));
|
|
60
129
|
}
|
|
61
130
|
if (!viewData.layout)
|
|
62
131
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-app-view-chrome.js","sourceRoot":"","sources":["../../src/app/mcp-app-view-chrome.tsx"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"mcp-app-view-chrome.js","sourceRoot":"","sources":["../../src/app/mcp-app-view-chrome.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { McpAppViewLabels } from "./mcp-app-view-chrome.js";
|
|
2
|
+
import type { ViewLifecycle } from "./view-lifecycle.js";
|
|
3
|
+
/** Human text for a raw error reason (e.g. map "503" to "the engine is down"). */
|
|
4
|
+
export type DescribeViewError = (reason: string | undefined) => {
|
|
5
|
+
title?: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
} | undefined;
|
|
8
|
+
export declare function ViewPlaceholder({ lifecycle, labels, onRetry, describeError, }: {
|
|
9
|
+
/** The current phase; `result` renders nothing (the view takes over). */
|
|
10
|
+
lifecycle: ViewLifecycle;
|
|
11
|
+
labels: Required<McpAppViewLabels>;
|
|
12
|
+
onRetry: () => void;
|
|
13
|
+
describeError?: DescribeViewError;
|
|
14
|
+
}): import("react").JSX.Element | null;
|
|
15
|
+
//# sourceMappingURL=mcp-app-view-states.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-app-view-states.d.ts","sourceRoot":"","sources":["../../src/app/mcp-app-view-states.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAExD,kFAAkF;AAClF,MAAM,MAAM,iBAAiB,GAAG,CAC9B,MAAM,EAAE,MAAM,GAAG,SAAS,KACvB;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAAA;AAEzD,wBAAgB,eAAe,CAAC,EAC9B,SAAS,EACT,MAAM,EACN,OAAO,EACP,aAAa,GACd,EAAE;IACD,yEAAyE;IACzE,SAAS,EAAE,aAAa,CAAA;IACxB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAA;IAClC,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,aAAa,CAAC,EAAE,iBAAiB,CAAA;CAClC,sCAyBA"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* The pre-payload states of `McpAppView`, one per lifecycle phase
|
|
4
|
+
* (`view-lifecycle.ts`): waiting (skeleton + status line + slow hint),
|
|
5
|
+
* cancelled, and error (icon, title, what to do, raw reason under "Details",
|
|
6
|
+
* retry when the originating tool is known). Hook-free and SSR-renderable, so
|
|
7
|
+
* each phase is pinned by a test.
|
|
8
|
+
*/
|
|
9
|
+
import { ErrorState } from "../components/ErrorState.js";
|
|
10
|
+
import { Skeleton } from "../primitives/skeleton.js";
|
|
11
|
+
export function ViewPlaceholder({ lifecycle, labels, onRetry, describeError, }) {
|
|
12
|
+
switch (lifecycle.phase) {
|
|
13
|
+
case "result":
|
|
14
|
+
return null;
|
|
15
|
+
case "cancelled":
|
|
16
|
+
return (_jsx("div", { className: "px-4 py-4", children: _jsx("p", { role: "status", className: "text-muted-foreground text-sm", children: labels.cancelled }) }));
|
|
17
|
+
case "error":
|
|
18
|
+
return (_jsx(ViewErrorState, { reason: lifecycle.reason, canRetry: lifecycle.canRetry, labels: labels, onRetry: onRetry, describeError: describeError }));
|
|
19
|
+
case "waiting":
|
|
20
|
+
return _jsx(ViewWaiting, { slow: lifecycle.slow, labels: labels });
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
function ViewWaiting({ slow, labels }) {
|
|
24
|
+
// No aria-busy on an ancestor of the live region: assistive technology may
|
|
25
|
+
// hold back changes inside a busy subtree, and the slow hint is one.
|
|
26
|
+
return (_jsxs("div", { className: "flex flex-col gap-4 px-4 py-4", children: [_jsx(Skeleton, { "aria-hidden": "true", className: "h-8 w-48" }), _jsx(Skeleton, { "aria-hidden": "true", className: "h-32 w-full" }), _jsxs("div", { role: "status", className: "text-muted-foreground flex flex-col gap-1 text-sm", children: [_jsx("p", { children: labels.loading }), slow && _jsx("p", { "data-slot": "slow-hint", children: labels.slowHint })] })] }));
|
|
27
|
+
}
|
|
28
|
+
function ViewErrorState({ reason, canRetry, labels, onRetry, describeError, }) {
|
|
29
|
+
const human = describeError?.(reason);
|
|
30
|
+
// The hint never promises a retry the state does not offer.
|
|
31
|
+
const hint = canRetry ? labels.errorHint : labels.errorHintNoRetry;
|
|
32
|
+
return (_jsx("div", { className: "px-4 py-4", children: _jsx(ErrorState, { title: human?.title ?? labels.errorTitle, description: human?.description ?? hint, details: reason, detailsLabel: labels.errorDetails, retryLabel: labels.retry, onRetry: canRetry ? onRetry : undefined }) }));
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=mcp-app-view-states.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-app-view-states.js","sourceRoot":"","sources":["../../src/app/mcp-app-view-states.tsx"],"names":[],"mappings":";AAAA;;;;;;GAMG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AASpD,MAAM,UAAU,eAAe,CAAC,EAC9B,SAAS,EACT,MAAM,EACN,OAAO,EACP,aAAa,GAOd;IACC,QAAQ,SAAS,CAAC,KAAK,EAAE,CAAC;QACxB,KAAK,QAAQ;YACX,OAAO,IAAI,CAAA;QACb,KAAK,WAAW;YACd,OAAO,CACL,cAAK,SAAS,EAAC,WAAW,YACxB,YAAG,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,+BAA+B,YACvD,MAAM,CAAC,SAAS,GACf,GACA,CACP,CAAA;QACH,KAAK,OAAO;YACV,OAAO,CACL,KAAC,cAAc,IACb,MAAM,EAAE,SAAS,CAAC,MAAM,EACxB,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAC5B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,aAAa,GAC5B,CACH,CAAA;QACH,KAAK,SAAS;YACZ,OAAO,KAAC,WAAW,IAAC,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAI,CAAA;IAChE,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAyD;IAC1F,2EAA2E;IAC3E,qEAAqE;IACrE,OAAO,CACL,eAAK,SAAS,EAAC,+BAA+B,aAC5C,KAAC,QAAQ,mBAAa,MAAM,EAAC,SAAS,EAAC,UAAU,GAAG,EACpD,KAAC,QAAQ,mBAAa,MAAM,EAAC,SAAS,EAAC,aAAa,GAAG,EAEvD,eAAK,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,mDAAmD,aAC9E,sBAAI,MAAM,CAAC,OAAO,GAAK,EACtB,IAAI,IAAI,yBAAa,WAAW,YAAE,MAAM,CAAC,QAAQ,GAAK,IACnD,IACF,CACP,CAAA;AACH,CAAC;AAED,SAAS,cAAc,CAAC,EACtB,MAAM,EACN,QAAQ,EACR,MAAM,EACN,OAAO,EACP,aAAa,GAOd;IACC,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC,MAAM,CAAC,CAAA;IACrC,4DAA4D;IAC5D,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAA;IAClE,OAAO,CACL,cAAK,SAAS,EAAC,WAAW,YACxB,KAAC,UAAU,IACT,KAAK,EAAE,KAAK,EAAE,KAAK,IAAI,MAAM,CAAC,UAAU,EACxC,WAAW,EAAE,KAAK,EAAE,WAAW,IAAI,IAAI,EACvC,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,CAAC,YAAY,EACjC,UAAU,EAAE,MAAM,CAAC,KAAK,EACxB,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,GACvC,GACE,CACP,CAAA;AACH,CAAC"}
|