@miragon/mcp-toolkit-ui 2.7.0 → 2.8.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 -4
- package/dist/app/adapt-data-widget.d.ts +1 -22
- package/dist/app/adapt-data-widget.d.ts.map +1 -1
- package/dist/app/adapt-data-widget.js +1 -35
- package/dist/app/adapt-data-widget.js.map +1 -1
- package/dist/app/builder/BuilderBanners.js +1 -1
- package/dist/app/builder/BuilderBanners.js.map +1 -1
- package/dist/app/builder/CanvasRow.d.ts +4 -2
- package/dist/app/builder/CanvasRow.d.ts.map +1 -1
- package/dist/app/builder/CanvasRow.js +21 -7
- 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 +11 -4
- package/dist/app/builder/CatalogueSheet.js.map +1 -1
- package/dist/app/builder/CellPropsSheet.d.ts +7 -3
- package/dist/app/builder/CellPropsSheet.d.ts.map +1 -1
- package/dist/app/builder/CellPropsSheet.js +10 -3
- package/dist/app/builder/CellPropsSheet.js.map +1 -1
- package/dist/app/builder/DiscardDialog.d.ts +18 -0
- package/dist/app/builder/DiscardDialog.d.ts.map +1 -0
- package/dist/app/builder/DiscardDialog.js +18 -0
- package/dist/app/builder/DiscardDialog.js.map +1 -0
- package/dist/app/builder/LayoutSurface.d.ts +33 -9
- package/dist/app/builder/LayoutSurface.d.ts.map +1 -1
- package/dist/app/builder/LayoutSurface.js +74 -23
- package/dist/app/builder/LayoutSurface.js.map +1 -1
- package/dist/app/builder/PipelineStrip.d.ts +2 -1
- package/dist/app/builder/PipelineStrip.d.ts.map +1 -1
- package/dist/app/builder/PipelineStrip.js +26 -13
- package/dist/app/builder/PipelineStrip.js.map +1 -1
- package/dist/app/builder/SaveDialog.d.ts +9 -1
- package/dist/app/builder/SaveDialog.d.ts.map +1 -1
- package/dist/app/builder/SaveDialog.js +8 -2
- package/dist/app/builder/SaveDialog.js.map +1 -1
- package/dist/app/builder/Toolbar.d.ts +12 -4
- package/dist/app/builder/Toolbar.d.ts.map +1 -1
- package/dist/app/builder/Toolbar.js +18 -7
- package/dist/app/builder/Toolbar.js.map +1 -1
- package/dist/app/builder/Workspace.d.ts +23 -3
- package/dist/app/builder/Workspace.d.ts.map +1 -1
- package/dist/app/builder/Workspace.js +58 -8
- package/dist/app/builder/Workspace.js.map +1 -1
- package/dist/app/builder/builder-model.d.ts +143 -1
- package/dist/app/builder/builder-model.d.ts.map +1 -1
- package/dist/app/builder/builder-model.js +191 -1
- package/dist/app/builder/builder-model.js.map +1 -1
- package/dist/app/builder/reveal.d.ts +10 -0
- package/dist/app/builder/reveal.d.ts.map +1 -0
- package/dist/app/builder/reveal.js +10 -0
- package/dist/app/builder/reveal.js.map +1 -0
- package/dist/app/builder/use-builder-catalogue.d.ts +4 -1
- package/dist/app/builder/use-builder-catalogue.d.ts.map +1 -1
- package/dist/app/builder/use-builder-catalogue.js +44 -17
- package/dist/app/builder/use-builder-catalogue.js.map +1 -1
- package/dist/app/builder/use-builder-session.d.ts +30 -0
- package/dist/app/builder/use-builder-session.d.ts.map +1 -0
- package/dist/app/builder/use-builder-session.js +58 -0
- package/dist/app/builder/use-builder-session.js.map +1 -0
- package/dist/app/builder/use-display-resolver.d.ts +17 -0
- package/dist/app/builder/use-display-resolver.d.ts.map +1 -0
- package/dist/app/builder/use-display-resolver.js +16 -0
- package/dist/app/builder/use-display-resolver.js.map +1 -0
- package/dist/app/index.d.ts +8 -3
- package/dist/app/index.d.ts.map +1 -1
- package/dist/app/index.js +8 -2
- package/dist/app/index.js.map +1 -1
- package/dist/app/layout-builder.d.ts +13 -25
- package/dist/app/layout-builder.d.ts.map +1 -1
- package/dist/app/layout-builder.js +75 -81
- package/dist/app/layout-builder.js.map +1 -1
- package/dist/app/mcp-app-view-chrome.d.ts +12 -3
- package/dist/app/mcp-app-view-chrome.d.ts.map +1 -1
- package/dist/app/mcp-app-view-chrome.js +21 -5
- package/dist/app/mcp-app-view-chrome.js.map +1 -1
- package/dist/app/mcp-app-view-states.d.ts +11 -3
- package/dist/app/mcp-app-view-states.d.ts.map +1 -1
- package/dist/app/mcp-app-view-states.js +29 -8
- package/dist/app/mcp-app-view-states.js.map +1 -1
- package/dist/app/mcp-app-view.d.ts +33 -1
- package/dist/app/mcp-app-view.d.ts.map +1 -1
- package/dist/app/mcp-app-view.js +181 -127
- package/dist/app/mcp-app-view.js.map +1 -1
- package/dist/app/mcp-toolkit-app.d.ts +6 -1
- package/dist/app/mcp-toolkit-app.d.ts.map +1 -1
- package/dist/app/mcp-toolkit-app.js +8 -1
- package/dist/app/mcp-toolkit-app.js.map +1 -1
- package/dist/app/mcp-use-host-bridge.d.ts +15 -6
- package/dist/app/mcp-use-host-bridge.d.ts.map +1 -1
- package/dist/app/mcp-use-host-bridge.js +51 -22
- package/dist/app/mcp-use-host-bridge.js.map +1 -1
- package/dist/app/model-context.d.ts +71 -0
- package/dist/app/model-context.d.ts.map +1 -0
- package/dist/app/model-context.js +101 -0
- package/dist/app/model-context.js.map +1 -0
- package/dist/app/use-build-mode-focus.d.ts +33 -0
- package/dist/app/use-build-mode-focus.d.ts.map +1 -0
- package/dist/app/use-build-mode-focus.js +59 -0
- package/dist/app/use-build-mode-focus.js.map +1 -0
- package/dist/app/use-view-actions.d.ts +31 -0
- package/dist/app/use-view-actions.d.ts.map +1 -0
- package/dist/app/use-view-actions.js +81 -0
- package/dist/app/use-view-actions.js.map +1 -0
- package/dist/app/use-view-lifecycle.d.ts +4 -0
- package/dist/app/use-view-lifecycle.d.ts.map +1 -1
- package/dist/app/use-view-lifecycle.js +2 -0
- package/dist/app/use-view-lifecycle.js.map +1 -1
- package/dist/app/view-lifecycle.d.ts +80 -4
- package/dist/app/view-lifecycle.d.ts.map +1 -1
- package/dist/app/view-lifecycle.js +90 -3
- package/dist/app/view-lifecycle.js.map +1 -1
- package/dist/app/widget-fixture.d.ts +10 -3
- package/dist/app/widget-fixture.d.ts.map +1 -1
- package/dist/app/widget-fixture.js +21 -8
- package/dist/app/widget-fixture.js.map +1 -1
- package/dist/app/widget-props-sheet.d.ts +3 -1
- package/dist/app/widget-props-sheet.d.ts.map +1 -1
- package/dist/app/widget-props-sheet.js +22 -10
- package/dist/app/widget-props-sheet.js.map +1 -1
- package/dist/app/widget-renderer.js +1 -1
- package/dist/app/widget-renderer.js.map +1 -1
- package/dist/components/DrillButton.d.ts +9 -6
- package/dist/components/DrillButton.d.ts.map +1 -1
- package/dist/components/DrillButton.js +8 -6
- package/dist/components/DrillButton.js.map +1 -1
- package/dist/components/EmptyState.d.ts.map +1 -1
- package/dist/components/EmptyState.js +4 -2
- package/dist/components/EmptyState.js.map +1 -1
- package/dist/components/ErrorState.d.ts +5 -2
- package/dist/components/ErrorState.d.ts.map +1 -1
- package/dist/components/ErrorState.js +25 -8
- package/dist/components/ErrorState.js.map +1 -1
- package/dist/components/FilterBar.d.ts +15 -4
- package/dist/components/FilterBar.d.ts.map +1 -1
- package/dist/components/FilterBar.js +11 -6
- package/dist/components/FilterBar.js.map +1 -1
- package/dist/components/KpiGrid.d.ts +66 -21
- package/dist/components/KpiGrid.d.ts.map +1 -1
- package/dist/components/KpiGrid.js +101 -34
- package/dist/components/KpiGrid.js.map +1 -1
- package/dist/components/ListFooter.d.ts +31 -4
- package/dist/components/ListFooter.d.ts.map +1 -1
- package/dist/components/ListFooter.js +30 -11
- package/dist/components/ListFooter.js.map +1 -1
- package/dist/components/PagedListFooter.d.ts +57 -0
- package/dist/components/PagedListFooter.d.ts.map +1 -0
- package/dist/components/PagedListFooter.js +27 -0
- package/dist/components/PagedListFooter.js.map +1 -0
- package/dist/components/Pills.d.ts +27 -7
- package/dist/components/Pills.d.ts.map +1 -1
- package/dist/components/Pills.js +21 -6
- package/dist/components/Pills.js.map +1 -1
- package/dist/components/SectionHeading.d.ts +3 -1
- package/dist/components/SectionHeading.d.ts.map +1 -1
- package/dist/components/SectionHeading.js +6 -2
- package/dist/components/SectionHeading.js.map +1 -1
- package/dist/components/Toast.d.ts +9 -3
- package/dist/components/Toast.d.ts.map +1 -1
- package/dist/components/Toast.js +31 -16
- package/dist/components/Toast.js.map +1 -1
- package/dist/components/WidgetHeader.d.ts +34 -10
- package/dist/components/WidgetHeader.d.ts.map +1 -1
- package/dist/components/WidgetHeader.js +11 -6
- package/dist/components/WidgetHeader.js.map +1 -1
- package/dist/hooks/index.d.ts +4 -4
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +1 -1
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/tool-result-recovery-model.d.ts +155 -0
- package/dist/hooks/tool-result-recovery-model.d.ts.map +1 -0
- package/dist/hooks/tool-result-recovery-model.js +273 -0
- package/dist/hooks/tool-result-recovery-model.js.map +1 -0
- package/dist/hooks/use-tool-query.d.ts +56 -14
- package/dist/hooks/use-tool-query.d.ts.map +1 -1
- package/dist/hooks/use-tool-query.js +102 -25
- package/dist/hooks/use-tool-query.js.map +1 -1
- package/dist/hooks/use-tool-result-recovery.d.ts +47 -52
- package/dist/hooks/use-tool-result-recovery.d.ts.map +1 -1
- package/dist/hooks/use-tool-result-recovery.js +58 -120
- package/dist/hooks/use-tool-result-recovery.js.map +1 -1
- package/dist/hooks/use-view-data.d.ts +52 -10
- package/dist/hooks/use-view-data.d.ts.map +1 -1
- package/dist/hooks/use-view-data.js +81 -16
- package/dist/hooks/use-view-data.js.map +1 -1
- package/dist/hooks/use-view-tool-query.d.ts +12 -7
- package/dist/hooks/use-view-tool-query.d.ts.map +1 -1
- package/dist/hooks/use-view-tool-query.js +15 -14
- package/dist/hooks/use-view-tool-query.js.map +1 -1
- package/dist/index.d.ts +17 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -6
- package/dist/index.js.map +1 -1
- package/dist/lib/focus-return.d.ts +61 -0
- package/dist/lib/focus-return.d.ts.map +1 -0
- package/dist/lib/focus-return.js +46 -0
- package/dist/lib/focus-return.js.map +1 -0
- package/dist/lib/parse-tool-result.d.ts +23 -1
- package/dist/lib/parse-tool-result.d.ts.map +1 -1
- package/dist/lib/parse-tool-result.js +38 -2
- package/dist/lib/parse-tool-result.js.map +1 -1
- package/dist/lib/toast-model.d.ts +41 -1
- package/dist/lib/toast-model.d.ts.map +1 -1
- package/dist/lib/toast-model.js +67 -1
- package/dist/lib/toast-model.js.map +1 -1
- package/dist/lib/tone-utils.d.ts +58 -6
- package/dist/lib/tone-utils.d.ts.map +1 -1
- package/dist/lib/tone-utils.js +66 -4
- package/dist/lib/tone-utils.js.map +1 -1
- package/dist/lib/tool-query.d.ts +107 -0
- package/dist/lib/tool-query.d.ts.map +1 -0
- package/dist/lib/tool-query.js +182 -0
- package/dist/lib/tool-query.js.map +1 -0
- package/dist/lib/tool-result-observer.d.ts +108 -0
- package/dist/lib/tool-result-observer.d.ts.map +1 -0
- package/dist/lib/tool-result-observer.js +158 -0
- package/dist/lib/tool-result-observer.js.map +1 -0
- package/dist/lib/typography.d.ts +37 -0
- package/dist/lib/typography.d.ts.map +1 -0
- package/dist/lib/typography.js +41 -0
- package/dist/lib/typography.js.map +1 -0
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +11 -1
- package/dist/lib/utils.js.map +1 -1
- package/dist/locale/index.d.ts +1 -1
- package/dist/locale/index.d.ts.map +1 -1
- package/dist/locale/message-types.d.ts +117 -4
- package/dist/locale/message-types.d.ts.map +1 -1
- package/dist/locale/messages-de.d.ts.map +1 -1
- package/dist/locale/messages-de.js +44 -10
- package/dist/locale/messages-de.js.map +1 -1
- package/dist/locale/messages-en.d.ts.map +1 -1
- package/dist/locale/messages-en.js +44 -10
- package/dist/locale/messages-en.js.map +1 -1
- package/dist/locale/toolkit-messages.d.ts +19 -1
- package/dist/locale/toolkit-messages.d.ts.map +1 -1
- package/dist/locale/toolkit-messages.js +54 -1
- package/dist/locale/toolkit-messages.js.map +1 -1
- package/dist/primitives/alert.d.ts +1 -1
- package/dist/primitives/alert.d.ts.map +1 -1
- package/dist/primitives/alert.js +2 -0
- 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 +9 -4
- package/dist/primitives/badge.js.map +1 -1
- package/dist/primitives/button.d.ts +1 -1
- package/dist/primitives/button.js +1 -1
- package/dist/primitives/button.js.map +1 -1
- package/dist/primitives/dialog.d.ts +1 -1
- package/dist/primitives/dialog.d.ts.map +1 -1
- package/dist/primitives/dialog.js +10 -3
- package/dist/primitives/dialog.js.map +1 -1
- package/dist/primitives/select.js +1 -1
- package/dist/primitives/select.js.map +1 -1
- package/dist/primitives/sheet.d.ts +1 -1
- package/dist/primitives/sheet.d.ts.map +1 -1
- package/dist/primitives/sheet.js +6 -2
- package/dist/primitives/sheet.js.map +1 -1
- package/dist/providers/query-provider.d.ts +32 -1
- package/dist/providers/query-provider.d.ts.map +1 -1
- package/dist/providers/query-provider.js +53 -4
- package/dist/providers/query-provider.js.map +1 -1
- package/dist/render-cases-primitives.js +1 -1
- package/dist/render-cases-primitives.js.map +1 -1
- package/dist/render-cases.d.ts.map +1 -1
- package/dist/render-cases.js +30 -6
- package/dist/render-cases.js.map +1 -1
- package/dist/render-effects.d.ts +42 -0
- package/dist/render-effects.d.ts.map +1 -0
- package/dist/render-effects.js +81 -0
- package/dist/render-effects.js.map +1 -0
- package/dist/theme/create-theme.d.ts +19 -1
- package/dist/theme/create-theme.d.ts.map +1 -1
- package/dist/theme/create-theme.js +15 -0
- package/dist/theme/create-theme.js.map +1 -1
- package/package.json +5 -4
- package/src/app/adapt-data-widget.tsx +2 -42
- package/src/app/builder/BuilderBanners.tsx +1 -1
- package/src/app/builder/CanvasRow.tsx +63 -17
- package/src/app/builder/CatalogueSheet.tsx +50 -29
- package/src/app/builder/CellPropsSheet.tsx +17 -2
- package/src/app/builder/DiscardDialog.tsx +59 -0
- package/src/app/builder/LayoutSurface.tsx +206 -66
- package/src/app/builder/PipelineStrip.tsx +253 -153
- package/src/app/builder/SaveDialog.tsx +14 -2
- package/src/app/builder/Toolbar.tsx +144 -59
- package/src/app/builder/Workspace.tsx +226 -58
- package/src/app/builder/builder-model.ts +341 -2
- package/src/app/builder/builder-model.ux.test.ts +456 -0
- package/src/app/builder/builder-ux.test.tsx +844 -0
- package/src/app/builder/reveal.ts +10 -0
- package/src/app/builder/use-builder-catalogue.ts +56 -19
- package/src/app/builder/use-builder-session.ts +68 -0
- package/src/app/builder/use-display-resolver.ts +24 -0
- package/src/app/index.ts +12 -2
- package/src/app/layout-builder.tsx +178 -191
- package/src/app/mcp-app-view-chrome.test.tsx +141 -1
- package/src/app/mcp-app-view-chrome.tsx +56 -6
- package/src/app/mcp-app-view-states.tsx +51 -11
- package/src/app/mcp-app-view.effects.test.tsx +292 -0
- package/src/app/mcp-app-view.test.tsx +222 -2
- package/src/app/mcp-app-view.tsx +267 -117
- package/src/app/mcp-toolkit-app.test.tsx +40 -0
- package/src/app/mcp-toolkit-app.tsx +8 -1
- package/src/app/mcp-use-host-bridge.test.tsx +180 -0
- package/src/app/mcp-use-host-bridge.tsx +67 -24
- package/src/app/model-context.test.tsx +116 -0
- package/src/app/model-context.tsx +125 -0
- package/src/app/use-build-mode-focus.ts +62 -0
- package/src/app/use-view-actions.ts +89 -0
- package/src/app/use-view-lifecycle.ts +6 -0
- package/src/app/view-lifecycle.test.ts +216 -0
- package/src/app/view-lifecycle.ts +165 -5
- package/src/app/widget-fixture.effects.test.tsx +51 -0
- package/src/app/widget-fixture.render.test.tsx +81 -0
- package/src/app/widget-fixture.tsx +34 -11
- package/src/app/widget-props-sheet.tsx +57 -16
- package/src/app/widget-renderer.tsx +1 -1
- package/src/components/DrillButton.tsx +23 -10
- package/src/components/EmptyState.tsx +6 -4
- package/src/components/ErrorState.tsx +31 -9
- package/src/components/FilterBar.test.tsx +82 -0
- package/src/components/FilterBar.tsx +52 -26
- package/src/components/KpiGrid.test.tsx +279 -0
- package/src/components/KpiGrid.tsx +297 -90
- package/src/components/ListFooter.test.tsx +116 -0
- package/src/components/ListFooter.tsx +102 -15
- package/src/components/PagedListFooter.test.tsx +140 -0
- package/src/components/PagedListFooter.tsx +107 -0
- package/src/components/Pills.test.tsx +77 -0
- package/src/components/Pills.tsx +63 -10
- package/src/components/SectionHeading.tsx +9 -3
- package/src/components/Toast.tsx +37 -19
- package/src/components/WidgetHeader.test.tsx +78 -0
- package/src/components/WidgetHeader.tsx +63 -16
- package/src/components/feedback-states.test.tsx +98 -9
- package/src/components/tone-figures.test.tsx +8 -4
- package/src/hooks/index.ts +6 -3
- package/src/hooks/tool-result-recovery-model.test.ts +744 -0
- package/src/hooks/tool-result-recovery-model.ts +418 -0
- package/src/hooks/use-tool-query.effects.test.tsx +205 -0
- package/src/hooks/use-tool-query.ts +156 -33
- package/src/hooks/use-tool-result-recovery.effects.test.tsx +141 -0
- package/src/hooks/use-tool-result-recovery.test.ts +3 -4
- package/src/hooks/use-tool-result-recovery.ts +84 -142
- package/src/hooks/use-view-data.test.tsx +118 -9
- package/src/hooks/use-view-data.ts +128 -18
- package/src/hooks/use-view-tool-query.ts +25 -19
- package/src/i18n-coverage.test.tsx +104 -2
- package/src/index.ts +48 -11
- package/src/lib/focus-return.test.ts +288 -0
- package/src/lib/focus-return.ts +96 -0
- package/src/lib/parse-tool-result.test.ts +46 -1
- package/src/lib/parse-tool-result.ts +40 -2
- package/src/lib/toast-model.test.ts +166 -1
- package/src/lib/toast-model.ts +104 -2
- package/src/lib/tone-utils.test.ts +86 -10
- package/src/lib/tone-utils.ts +89 -8
- package/src/lib/tool-query.test.ts +569 -0
- package/src/lib/tool-query.ts +253 -0
- package/src/lib/tool-result-observer.test.ts +296 -0
- package/src/lib/tool-result-observer.ts +211 -0
- package/src/lib/typography.test.ts +45 -0
- package/src/lib/typography.ts +47 -0
- package/src/lib/utils.ts +12 -1
- package/src/locale/index.ts +1 -0
- package/src/locale/message-types.ts +118 -2
- package/src/locale/messages-de.ts +49 -10
- package/src/locale/messages-en.ts +49 -10
- package/src/locale/toolkit-messages.test.ts +133 -0
- package/src/locale/toolkit-messages.ts +63 -2
- package/src/primitives/alert.tsx +3 -0
- package/src/primitives/badge.tsx +9 -4
- package/src/primitives/button.tsx +1 -1
- package/src/primitives/dialog.tsx +10 -1
- package/src/primitives/select.tsx +1 -1
- package/src/primitives/sheet.tsx +7 -0
- package/src/providers/query-provider.test.tsx +154 -0
- package/src/providers/query-provider.tsx +66 -5
- package/src/render-cases-primitives.tsx +1 -1
- package/src/render-cases.tsx +38 -6
- package/src/render-effects.tsx +96 -0
- package/src/theme/cd-tokens.test.ts +3 -1
- package/src/theme/create-theme.test.ts +10 -0
- package/src/theme/create-theme.ts +28 -0
- package/src/theme/theme-css.test.ts +51 -0
- package/src/theme.css +31 -1
- package/ui-catalog.json +448 -41
|
@@ -1,43 +1,63 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useCallback, useMemo, useReducer, useState } from "react";
|
|
3
3
|
import { Eye, Layers, SlidersHorizontal } from "lucide-react";
|
|
4
|
-
import {
|
|
4
|
+
import { builderLeave, builderSnapshot, draftHasCells, initDraft, sizeToSpan, toExitCommit, } from "./builder/builder-model.js";
|
|
5
5
|
import { draftReducer, initBuilderState, } from "./builder/builder-reducer.js";
|
|
6
6
|
import { Toolbar } from "./builder/Toolbar.js";
|
|
7
7
|
import { PipelineStrip } from "./builder/PipelineStrip.js";
|
|
8
8
|
import { CatalogueSheet } from "./builder/CatalogueSheet.js";
|
|
9
9
|
import { SaveDialog } from "./builder/SaveDialog.js";
|
|
10
|
+
import { DiscardDialog } from "./builder/DiscardDialog.js";
|
|
10
11
|
import { PreviewPane } from "./builder/PreviewPane.js";
|
|
11
12
|
import { LayoutSurface } from "./builder/LayoutSurface.js";
|
|
12
13
|
import { BuilderBanners } from "./builder/BuilderBanners.js";
|
|
13
14
|
import { EmptyHint } from "./builder/EmptyHint.js";
|
|
14
15
|
import { CellPropsSheet } from "./builder/CellPropsSheet.js";
|
|
15
16
|
import { useBuilderCatalogue } from "./builder/use-builder-catalogue.js";
|
|
17
|
+
import { useBuilderMode, useDraftStatus, useRenameFeedback } from "./builder/use-builder-session.js";
|
|
16
18
|
import { useKeyStepEntries } from "./builder/use-key-step-entries.js";
|
|
17
19
|
import { useSaveDashboard } from "./builder/use-save-dashboard.js";
|
|
18
20
|
import { Tabs, TabsContent, TabsList, TabsTrigger } from "../primitives/tabs.js";
|
|
19
21
|
import { ToastProvider, useToast } from "../components/Toast.js";
|
|
20
22
|
import { useToolkitMessages } from "../locale/locale-provider.js";
|
|
23
|
+
import { builderMountFocusTarget, useFocusOnMount } from "./use-build-mode-focus.js";
|
|
21
24
|
// -------------------------------------------------------------------------- //
|
|
22
25
|
// Main component
|
|
23
26
|
// -------------------------------------------------------------------------- //
|
|
24
27
|
/**
|
|
25
|
-
* The visual view builder.
|
|
26
|
-
*
|
|
28
|
+
* The visual view builder. People see widgets and steps by their titles
|
|
29
|
+
* (`title`/`titleKey` of the definitions, else the id); the data sources, the
|
|
30
|
+
* catalogue and the technical ids sit behind "Advanced". "Apply" shows the
|
|
31
|
+
* draft in the view, "Save as dashboard" stores it, "Discard" restores the
|
|
32
|
+
* view as it was. Confirms a successful save with a toast (it mounts a
|
|
33
|
+
* `ToastProvider` when none is above it — inside `McpAppView` it shares the
|
|
27
34
|
* view's). Every caption follows the active locale (`labels` overrides).
|
|
28
35
|
*/
|
|
29
36
|
export function LayoutBuilder(props) {
|
|
30
|
-
|
|
37
|
+
// Discard without an `onExit` restores the initial props by remounting.
|
|
38
|
+
const [generation, setGeneration] = useState(0);
|
|
39
|
+
const reset = useCallback(() => setGeneration((g) => g + 1), []);
|
|
40
|
+
return (_jsx(ToastProvider, { children: _jsx(LayoutBuilderImpl, { ...props, onReset: reset, mountFocus: builderMountFocusTarget(generation) }, generation) }));
|
|
31
41
|
}
|
|
32
|
-
|
|
42
|
+
/**
|
|
43
|
+
* The catalog strings, overrides merged; a `labels` override of the deprecated
|
|
44
|
+
* `done` still labels Apply (a catalog override of it already did, in
|
|
45
|
+
* `resolveToolkitMessages`).
|
|
46
|
+
*/
|
|
47
|
+
function useBuilderLabels(labels) {
|
|
33
48
|
const messages = useToolkitMessages();
|
|
34
|
-
|
|
49
|
+
return useMemo(() => ({
|
|
50
|
+
...messages.builder,
|
|
51
|
+
...labels,
|
|
52
|
+
apply: labels?.apply ?? labels?.done ?? messages.builder.apply,
|
|
53
|
+
}), [messages.builder, labels]);
|
|
54
|
+
}
|
|
55
|
+
function LayoutBuilderImpl({ initialLayout, title, initialKeys, initialSteps, widgets, callTool, catalogueToolName = "get-builder-catalogue", saveToolName = "save-dashboard", dashboardId, labels, onSaved, onExit, onReset, mountFocus, }) {
|
|
56
|
+
const L = useBuilderLabels(labels);
|
|
35
57
|
const toast = useToast();
|
|
58
|
+
// A reset remounts the builder: the element that had the focus is gone.
|
|
59
|
+
const rootRef = useFocusOnMount(mountFocus);
|
|
36
60
|
// ── Draft layout (pure reducer) ─────────────────────────────────────────
|
|
37
|
-
// The draft plus the UI indices coupled to draft mutations
|
|
38
|
-
// (activeTabIndex / focusedRowIndex / editingTabIdx) live in a single pure
|
|
39
|
-
// reducer (see ./builder/builder-reducer.ts) so every mutation is testable
|
|
40
|
-
// and the old setState-in-updater pattern is gone.
|
|
41
61
|
const [builderState, dispatch] = useReducer(draftReducer, initialLayout, (layout) => initBuilderState(initDraft(layout)));
|
|
42
62
|
const { draft, activeTabIndex, focusedRowIndex, editingTabIdx, renameRejectedAt } = builderState;
|
|
43
63
|
const setActiveTabIndex = useCallback((idx) => dispatch({ type: "selectTab", tabIdx: idx }), []);
|
|
@@ -45,34 +65,20 @@ function LayoutBuilderImpl({ initialLayout, title, initialKeys, initialSteps, wi
|
|
|
45
65
|
const setEditingTabIdx = useCallback((idx) => {
|
|
46
66
|
dispatch(idx === null ? { type: "stopEditingTab" } : { type: "startEditingTab", tabIdx: idx });
|
|
47
67
|
}, []);
|
|
48
|
-
const
|
|
68
|
+
const { advanced, view, setView, toggleAdvanced, openDataSources } = useBuilderMode();
|
|
49
69
|
const [catalogueOpen, setCatalogueOpen] = useState(false);
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
// (Phase 1 signal). Mirror each bump into a transient flag so the rename
|
|
53
|
-
// input can show "name already exists" inline (Finding [3]). Tracked via
|
|
54
|
-
// the render-phase setState pattern used elsewhere in this codebase; cleared
|
|
55
|
-
// when the inline editor closes (editingTabIdx → null).
|
|
56
|
-
const [renameRejected, setRenameRejected] = useState(false);
|
|
57
|
-
const [prevRenameRejectedAt, setPrevRenameRejectedAt] = useState(renameRejectedAt);
|
|
58
|
-
if (renameRejectedAt !== prevRenameRejectedAt) {
|
|
59
|
-
setPrevRenameRejectedAt(renameRejectedAt);
|
|
60
|
-
setRenameRejected(true);
|
|
61
|
-
}
|
|
62
|
-
const [prevEditingTabIdx, setPrevEditingTabIdx] = useState(editingTabIdx);
|
|
63
|
-
if (editingTabIdx !== prevEditingTabIdx) {
|
|
64
|
-
setPrevEditingTabIdx(editingTabIdx);
|
|
65
|
-
if (editingTabIdx === null)
|
|
66
|
-
setRenameRejected(false);
|
|
67
|
-
}
|
|
70
|
+
const [discardOpen, setDiscardOpen] = useState(false);
|
|
71
|
+
const renameRejected = useRenameFeedback(renameRejectedAt, editingTabIdx);
|
|
68
72
|
// ── Keys + steps editor state ───────────────────────────────────────────
|
|
69
73
|
const { keyEntries, stepEntries, addKey, updateKey, removeKey, addStep, updateStep, removeStep } = useKeyStepEntries({ initialKeys, initialSteps });
|
|
74
|
+
// ── Draft status: what Apply / Discard / the unsaved marker compare ─────
|
|
75
|
+
const snapshot = useMemo(() => builderSnapshot(draft, keyEntries, stepEntries), [draft, keyEntries, stepEntries]);
|
|
76
|
+
const draftState = useDraftStatus(snapshot);
|
|
70
77
|
// ── Catalogue fetch (mount + on key/step edits) ─────────────────────────
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
const { liveReachable, liveUnreachable, liveCatalog, liveSteps, liveContext, validationIssues, status, refreshError, retryCatalogue, widgetById, propsSchemaByWidgetId, paletteByApp, liveKeyCount, stepsByApp, } = useBuilderCatalogue({ callTool, catalogueToolName, keyEntries, stepEntries });
|
|
78
|
+
const catalogue = useBuilderCatalogue({ callTool, catalogueToolName, keyEntries, stepEntries });
|
|
79
|
+
const { liveReachable, liveCatalog, liveContext, widgetById } = catalogue;
|
|
74
80
|
// ── Save dialog ─────────────────────────────────────────────────────────
|
|
75
|
-
const
|
|
81
|
+
const save = useSaveDashboard({
|
|
76
82
|
callTool,
|
|
77
83
|
saveToolName,
|
|
78
84
|
dashboardId,
|
|
@@ -81,15 +87,13 @@ function LayoutBuilderImpl({ initialLayout, title, initialKeys, initialSteps, wi
|
|
|
81
87
|
stepEntries,
|
|
82
88
|
draft,
|
|
83
89
|
onSaved,
|
|
84
|
-
onSuccess: (name) =>
|
|
90
|
+
onSuccess: (name) => {
|
|
91
|
+
draftState.markSaved(snapshot);
|
|
92
|
+
toast.show({ tone: "success", title: L.saved(name) });
|
|
93
|
+
},
|
|
85
94
|
});
|
|
86
|
-
// ── DnD
|
|
95
|
+
// ── DnD + the cell whose props are being configured ─────────────────────
|
|
87
96
|
const [dragOverRow, setDragOverRow] = useState(null);
|
|
88
|
-
// Which cell (if any) is having its props configured. The
|
|
89
|
-
// WidgetPropsSheet is mounted once at the LayoutBuilder root so that
|
|
90
|
-
// exactly one editor can be open at a time across the entire workspace
|
|
91
|
-
// — including across tabs. Stored as `{ rowIdx, cellIdx }` against the
|
|
92
|
-
// currently active draft surface (rows or active tab's rows).
|
|
93
97
|
const [configuringCell, setConfiguringCell] = useState(null);
|
|
94
98
|
const activeRows = draft.kind === "tabs" ? (draft.tabs[activeTabIndex]?.rows ?? []) : draft.rows;
|
|
95
99
|
// ── Layout mutations (dispatch pure actions) ────────────────────────────
|
|
@@ -109,18 +113,13 @@ function LayoutBuilderImpl({ initialLayout, title, initialKeys, initialSteps, wi
|
|
|
109
113
|
const moveRow = useCallback((rowIdx, direction) => dispatch({ type: "moveRow", rowIdx, direction }), []);
|
|
110
114
|
const setCellSpan = useCallback((rowIdx, cellIdx, span) => dispatch({ type: "setCellSpan", rowIdx, cellIdx, span }), []);
|
|
111
115
|
const removeCell = useCallback((rowIdx, cellIdx) => dispatch({ type: "removeCell", rowIdx, cellIdx }), []);
|
|
112
|
-
// Sets (or clears, when `next` is undefined)
|
|
113
|
-
//
|
|
114
|
-
// `undefined` rather than `{}` keeps the saved layout's wire format
|
|
115
|
-
// identical to one a hand-coded LLM call would produce — the field is
|
|
116
|
-
// simply absent.
|
|
116
|
+
// Sets (or clears, when `next` is undefined) a cell's per-instance `props`
|
|
117
|
+
// from the props sheet's Apply; `undefined` keeps the field absent on the wire.
|
|
117
118
|
const setCellProps = useCallback((rowIdx, cellIdx, next) => dispatch({ type: "setCellProps", rowIdx, cellIdx, next }), []);
|
|
118
119
|
const addTab = useCallback(() => dispatch({ type: "addTab" }), []);
|
|
119
|
-
// Commit an inline tab rename
|
|
120
|
-
//
|
|
121
|
-
//
|
|
122
|
-
// can drive the inline "name already exists" feedback instead of the editor
|
|
123
|
-
// silently snapping shut on the old label.
|
|
120
|
+
// Commit an inline tab rename. A label that collides with another tab keeps
|
|
121
|
+
// the editor open (the reducer's rejection drives the inline error); the
|
|
122
|
+
// return value tells the field whether it closed.
|
|
124
123
|
const commitRename = useCallback((tabIdx, label) => {
|
|
125
124
|
dispatch({ type: "renameTab", tabIdx, label });
|
|
126
125
|
const trimmed = label.trim();
|
|
@@ -129,6 +128,7 @@ function LayoutBuilderImpl({ initialLayout, title, initialKeys, initialSteps, wi
|
|
|
129
128
|
draft.tabs.some((t, i) => i !== tabIdx && t.label === trimmed);
|
|
130
129
|
if (!isDuplicate)
|
|
131
130
|
setEditingTabIdx(null);
|
|
131
|
+
return !isDuplicate;
|
|
132
132
|
}, [draft, setEditingTabIdx]);
|
|
133
133
|
const removeTab = useCallback((tabIdx) => dispatch({ type: "removeTab", tabIdx }), []);
|
|
134
134
|
// ── Smart action: add a producing step for a missing key ────────────────
|
|
@@ -138,34 +138,23 @@ function LayoutBuilderImpl({ initialLayout, title, initialKeys, initialSteps, wi
|
|
|
138
138
|
return;
|
|
139
139
|
addStep(producer);
|
|
140
140
|
}, [addStep, liveCatalog]);
|
|
141
|
+
// ── Leaving: Apply commits, Discard restores (asking first when the view loses changes) ─
|
|
142
|
+
const leave = builderLeave({
|
|
143
|
+
changed: draftState.changed,
|
|
144
|
+
onExit,
|
|
145
|
+
onReset,
|
|
146
|
+
commit: () => toExitCommit(draft, keyEntries, stepEntries, title, liveContext),
|
|
147
|
+
confirm: () => setDiscardOpen(true),
|
|
148
|
+
});
|
|
141
149
|
const widgetProps = useMemo(() => ({ keys: liveContext.keys, context: liveContext }), [liveContext]);
|
|
142
|
-
const hasAnyCell =
|
|
143
|
-
|
|
144
|
-
return (_jsxs("div", { className: "flex min-h-[60vh] flex-col gap-4 p-1", children: [_jsx(Toolbar, { L: L, previewMode: view === "preview", isBusy: isBusy, status: status, liveKeys: liveKeyCount, reachableCount: liveReachable.length, unreachableCount: liveUnreachable.length, onOpenCatalogue: () => setCatalogueOpen(true), onOpenSave: () => setSaveOpen(true), onDone: onExit
|
|
145
|
-
? () => onExit({
|
|
146
|
-
layout: draftToLayout(draft),
|
|
147
|
-
keys: entriesToKeys(keyEntries),
|
|
148
|
-
steps: stepEntries.filter((s) => s.step.trim().length > 0),
|
|
149
|
-
title,
|
|
150
|
-
context: {
|
|
151
|
-
keys: liveContext.keys,
|
|
152
|
-
stepIds: Object.keys(liveContext.steps),
|
|
153
|
-
stepData: Object.fromEntries(Object.entries(liveContext.steps).map(([id, result]) => [
|
|
154
|
-
id,
|
|
155
|
-
{
|
|
156
|
-
data: result.data,
|
|
157
|
-
keys: result.keys,
|
|
158
|
-
_app: result._app,
|
|
159
|
-
_dataType: result._dataType,
|
|
160
|
-
},
|
|
161
|
-
])),
|
|
162
|
-
errors: liveContext.errors,
|
|
163
|
-
},
|
|
164
|
-
})
|
|
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: {
|
|
150
|
+
const hasAnyCell = draftHasCells(draft);
|
|
151
|
+
return (_jsxs("div", { ref: rootRef, className: "flex min-h-[60vh] flex-col gap-4 p-1", children: [_jsx(Toolbar, { L: L, previewMode: view === "preview", isBusy: save.isBusy, status: catalogue.status, liveKeys: catalogue.liveKeyCount, reachableCount: liveReachable.length, unreachableCount: catalogue.liveUnreachable.length, advanced: advanced, onToggleAdvanced: toggleAdvanced, unsaved: draftState.unsaved, onOpenCatalogue: () => setCatalogueOpen(true), onOpenSave: () => save.setSaveOpen(true), onDiscard: leave.discard, onApply: leave.apply, hasAnyCell: hasAnyCell }), _jsx(BuilderBanners, { L: L, catalogueToolName: catalogueToolName, refreshError: catalogue.refreshError, validationIssues: catalogue.validationIssues, onRetry: catalogue.retryCatalogue }), _jsxs(Tabs, { value: view, onValueChange: (v) => setView(v), children: [_jsxs(TabsList, { children: [_jsxs(TabsTrigger, { value: "layout", children: [_jsx(Layers, { "aria-hidden": "true", className: "size-3.5" }), L.viewLayoutTab] }), advanced && (_jsxs(TabsTrigger, { value: "pipeline", children: [_jsx(SlidersHorizontal, { "aria-hidden": "true", className: "size-3.5" }), L.viewPipelineTab, (keyEntries.length > 0 || stepEntries.length > 0) && (_jsxs("span", { className: "bg-muted text-muted-foreground text-small ml-1 rounded px-1 tabular-nums", children: [keyEntries.length, "/", stepEntries.length] }))] })), _jsxs(TabsTrigger, { value: "preview", disabled: !hasAnyCell, children: [_jsx(Eye, { "aria-hidden": "true", className: "size-3.5" }), L.viewPreviewTab] })] }), _jsx(TabsContent, { value: "layout", className: "mt-4", children: catalogue.loaded && liveReachable.length === 0 && !hasAnyCell ? (_jsx(EmptyHint, { L: L, onGotoPipeline: openDataSources })) : (_jsx(LayoutSurface, { L: L, draft: draft, activeTabIndex: activeTabIndex, setActiveTabIndex: setActiveTabIndex, editingTabIdx: editingTabIdx, setEditingTabIdx: setEditingTabIdx, renameRejected: renameRejected, commitRename: commitRename, onAddTab: addTab, onRemoveTab: removeTab, workspace: {
|
|
166
152
|
L,
|
|
167
|
-
paletteByApp,
|
|
153
|
+
paletteByApp: catalogue.paletteByApp,
|
|
154
|
+
appDisplayByName: catalogue.appDisplayByName,
|
|
168
155
|
paletteCount: liveReachable.length,
|
|
156
|
+
paletteLoading: !catalogue.loaded,
|
|
157
|
+
onOpenDataSources: openDataSources,
|
|
169
158
|
activeRows,
|
|
170
159
|
focusedRowIndex,
|
|
171
160
|
setFocusedRowIndex,
|
|
@@ -178,10 +167,12 @@ function LayoutBuilderImpl({ initialLayout, title, initialKeys, initialSteps, wi
|
|
|
178
167
|
onRemoveCell: removeCell,
|
|
179
168
|
onAddWidget: addWidgetToRow,
|
|
180
169
|
onConfigureCell: (rowIdx, cellIdx) => setConfiguringCell({ rowIdx, cellIdx }),
|
|
181
|
-
propsSchemaByWidgetId,
|
|
170
|
+
propsSchemaByWidgetId: catalogue.propsSchemaByWidgetId,
|
|
171
|
+
displayByWidgetId: catalogue.displayByWidgetId,
|
|
172
|
+
advanced,
|
|
182
173
|
widgets,
|
|
183
174
|
widgetProps,
|
|
184
|
-
} })) }), _jsx(TabsContent, { value: "pipeline", className: "mt-4", children: _jsx(PipelineStrip, { L: L, keyEntries: keyEntries, stepEntries: stepEntries, keyCatalog: liveCatalog, availableSteps: liveSteps, stepsByApp: stepsByApp, liveKeys:
|
|
175
|
+
} })) }), advanced && (_jsx(TabsContent, { value: "pipeline", className: "mt-4", children: _jsx(PipelineStrip, { L: L, keyEntries: keyEntries, stepEntries: stepEntries, keyCatalog: liveCatalog, availableSteps: catalogue.liveSteps, stepsByApp: catalogue.stepsByApp, liveKeys: liveContext.keys, onAddKey: addKey, onUpdateKey: updateKey, onRemoveKey: removeKey, onAddStep: addStep, onUpdateStep: updateStep, onRemoveStep: removeStep, status: catalogue.status }) })), _jsx(TabsContent, { value: "preview", className: "mt-4", children: _jsx(PreviewPane, { draft: draft, activeTabIndex: activeTabIndex, setActiveTabIndex: setActiveTabIndex, widgets: widgets, widgetProps: widgetProps }) })] }), _jsx(CatalogueSheet, { L: L, open: catalogueOpen, onOpenChange: setCatalogueOpen, keyCatalog: liveCatalog, availableSteps: catalogue.liveSteps, unreachableWidgets: catalogue.liveUnreachable, onSeedKey: (name) => {
|
|
185
176
|
addKey(name);
|
|
186
177
|
setCatalogueOpen(false);
|
|
187
178
|
setView("pipeline");
|
|
@@ -189,11 +180,14 @@ function LayoutBuilderImpl({ initialLayout, title, initialKeys, initialSteps, wi
|
|
|
189
180
|
addProducingStepFor(key);
|
|
190
181
|
setCatalogueOpen(false);
|
|
191
182
|
setView("pipeline");
|
|
192
|
-
} }), _jsx(SaveDialog, { L: L, open: saveOpen, onOpenChange: (open) => {
|
|
183
|
+
} }), _jsx(SaveDialog, { L: L, open: save.saveOpen, canApply: onExit !== undefined, onOpenChange: (open) => {
|
|
193
184
|
// Clear any stale save error whenever the dialog is opened or
|
|
194
185
|
// dismissed so a fresh attempt starts clean.
|
|
195
|
-
setSaveError(null);
|
|
196
|
-
setSaveOpen(open);
|
|
197
|
-
}, name: saveName, setName: setSaveName, description: saveDescription, setDescription: setSaveDescription, onSubmit: saveDraft, busy: isBusy, error: saveError }), _jsx(
|
|
186
|
+
save.setSaveError(null);
|
|
187
|
+
save.setSaveOpen(open);
|
|
188
|
+
}, name: save.saveName, setName: save.setSaveName, description: save.saveDescription, setDescription: save.setSaveDescription, onSubmit: save.saveDraft, busy: save.isBusy, error: save.saveError }), _jsx(DiscardDialog, { L: L, open: discardOpen, onOpenChange: setDiscardOpen, changesSaved: !draftState.unsaved, onConfirm: () => {
|
|
189
|
+
setDiscardOpen(false);
|
|
190
|
+
leave.discardNow();
|
|
191
|
+
} }), _jsx(CellPropsSheet, { configuringCell: configuringCell, activeRows: activeRows, propsSchemaByWidgetId: catalogue.propsSchemaByWidgetId, displayByWidgetId: catalogue.displayByWidgetId, onApply: setCellProps, onClose: () => setConfiguringCell(null) })] }));
|
|
198
192
|
}
|
|
199
193
|
//# sourceMappingURL=layout-builder.js.map
|
|
@@ -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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"}
|
|
@@ -65,7 +65,7 @@ export interface ViewData {
|
|
|
65
65
|
* recovery hook's `isValid` dependency.
|
|
66
66
|
*/
|
|
67
67
|
export declare function isCompleteViewData(value: unknown): value is ViewData;
|
|
68
|
-
/** What the LayoutBuilder hands back on
|
|
68
|
+
/** What the LayoutBuilder hands back on Apply. */
|
|
69
69
|
export interface BuilderCommit {
|
|
70
70
|
layout: LayoutConfig;
|
|
71
71
|
keys?: Record<string, unknown>;
|
|
@@ -100,6 +100,13 @@ export interface ViewToolbarProps {
|
|
|
100
100
|
onRefresh: () => Promise<void>;
|
|
101
101
|
onEnterBuildMode: () => void;
|
|
102
102
|
onToggleFullscreen: () => Promise<void>;
|
|
103
|
+
/**
|
|
104
|
+
* The pre-formatted time of a view that loaded its data again on its own
|
|
105
|
+
* (toolkit#176 N23): the toolbar stamps it in a quiet line under the title,
|
|
106
|
+
* so the figures read as live data of that time, not the result the chat
|
|
107
|
+
* answered from.
|
|
108
|
+
*/
|
|
109
|
+
dataAsOf?: string;
|
|
103
110
|
}
|
|
104
111
|
/** Which toolbar controls render — pure, so the gates are unit-testable. */
|
|
105
112
|
export declare function toolbarControls(input: {
|
|
@@ -121,9 +128,11 @@ export declare function toolbarControls(input: {
|
|
|
121
128
|
* `aria-label`; Fullscreen renders only when the host offers it. All three are
|
|
122
129
|
* chrome buttons in the CI pattern (CI §8: surface, border, shadow-1, blue
|
|
123
130
|
* hover; {@link CHROME_BUTTON}). A 16 px inset keeps the bar off the frame
|
|
124
|
-
* edge, also in fullscreen.
|
|
131
|
+
* edge, also in fullscreen. The controls never shrink; the stamp of re-loaded
|
|
132
|
+
* data sits under the title ({@link ToolbarHeading}), so neither the title
|
|
133
|
+
* nor the stamp competes with the controls for width.
|
|
125
134
|
*/
|
|
126
|
-
export declare function ViewToolbar({ hidden, viewData, builderAvailable, isFullscreen, canFullscreen, isRefreshing, labels, titleMode, titleLevel, renderTitle, onRefresh, onEnterBuildMode, onToggleFullscreen, }: ViewToolbarProps): import("react").JSX.Element | null;
|
|
135
|
+
export declare function ViewToolbar({ hidden, viewData, builderAvailable, isFullscreen, canFullscreen, isRefreshing, labels, titleMode, titleLevel, renderTitle, onRefresh, onEnterBuildMode, onToggleFullscreen, dataAsOf, }: ViewToolbarProps): import("react").JSX.Element | null;
|
|
127
136
|
/** Resolves a human title for a pipeline step (`{ id, step }` from the view's steps). */
|
|
128
137
|
export type DescribeStep = (step: {
|
|
129
138
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
1
|
+
{"version":3,"file":"mcp-app-view-chrome.d.ts","sourceRoot":"","sources":["../../src/app/mcp-app-view-chrome.tsx"],"names":[],"mappings":"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"}
|
|
@@ -60,6 +60,20 @@ function ToolbarTitle({ title, mode, level, renderTitle, }) {
|
|
|
60
60
|
return null;
|
|
61
61
|
return createElement(`h${level}`, { className: "min-w-0 flex-1 truncate text-lg font-semibold tracking-tight" }, title);
|
|
62
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* The title, and under it the stamp of data the view re-loaded itself. The
|
|
65
|
+
* stamp is a second line of the title column, never an item beside the
|
|
66
|
+
* controls: the title keeps the row's width (it is the user's orientation),
|
|
67
|
+
* and the stamp truncates only against its own column. Its words carry its
|
|
68
|
+
* meaning, so it needs no tooltip that touch and keyboard users never reach.
|
|
69
|
+
* Without a stamp the title renders as before, straight in the row.
|
|
70
|
+
*/
|
|
71
|
+
function ToolbarHeading({ title, mode, level, renderTitle, stamp, }) {
|
|
72
|
+
const heading = _jsx(ToolbarTitle, { title: title, mode: mode, level: level, renderTitle: renderTitle });
|
|
73
|
+
if (!stamp)
|
|
74
|
+
return heading;
|
|
75
|
+
return (_jsxs("div", { "data-slot": "view-heading", className: "min-w-0 flex-1", children: [heading, _jsx("p", { "data-slot": "view-data-as-of", className: "text-muted-foreground truncate text-sm", children: stamp })] }));
|
|
76
|
+
}
|
|
63
77
|
/** Which toolbar controls render — pure, so the gates are unit-testable. */
|
|
64
78
|
export function toolbarControls(input) {
|
|
65
79
|
const refreshable = Boolean(input.viewData._refreshParams && input.viewData.layout);
|
|
@@ -100,13 +114,15 @@ function FullscreenButton({ isFullscreen, labels, onToggle, }) {
|
|
|
100
114
|
* `aria-label`; Fullscreen renders only when the host offers it. All three are
|
|
101
115
|
* chrome buttons in the CI pattern (CI §8: surface, border, shadow-1, blue
|
|
102
116
|
* hover; {@link CHROME_BUTTON}). A 16 px inset keeps the bar off the frame
|
|
103
|
-
* edge, also in fullscreen.
|
|
117
|
+
* edge, also in fullscreen. The controls never shrink; the stamp of re-loaded
|
|
118
|
+
* data sits under the title ({@link ToolbarHeading}), so neither the title
|
|
119
|
+
* nor the stamp competes with the controls for width.
|
|
104
120
|
*/
|
|
105
|
-
export function ViewToolbar({ hidden, viewData, builderAvailable, isFullscreen, canFullscreen, isRefreshing, labels, titleMode, titleLevel, renderTitle, onRefresh, onEnterBuildMode, onToggleFullscreen, }) {
|
|
121
|
+
export function ViewToolbar({ hidden, viewData, builderAvailable, isFullscreen, canFullscreen, isRefreshing, labels, titleMode, titleLevel, renderTitle, onRefresh, onEnterBuildMode, onToggleFullscreen, dataAsOf, }) {
|
|
106
122
|
const show = toolbarControls({ viewData, builderAvailable, canFullscreen, titleMode });
|
|
107
|
-
if (hidden || !show.any)
|
|
123
|
+
if (hidden || (!show.any && !dataAsOf))
|
|
108
124
|
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(
|
|
125
|
+
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(ToolbarHeading, { title: viewData.title, mode: titleMode, level: titleLevel, renderTitle: renderTitle, stamp: dataAsOf ? labels.dataAsOf(dataAsOf) : undefined }), _jsxs("div", { className: "ml-auto flex shrink-0 items-center gap-1", children: [show.edit && (_jsxs(Button, { type: "button", ...CHROME_BUTTON, size: "sm", "data-slot": "view-edit", 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
126
|
}
|
|
111
127
|
/**
|
|
112
128
|
* The failed data steps as ONE inline alert: what happened (the title), which
|
|
@@ -121,7 +137,7 @@ export function StepErrors({ hidden, errors, steps, labels, describeStep, onRetr
|
|
|
121
137
|
const ref = { id: err.stepId, step: steps?.find((s) => s.id === err.stepId)?.step };
|
|
122
138
|
return { ref, human: describeStep?.(ref), reason: err.reason };
|
|
123
139
|
});
|
|
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
|
|
140
|
+
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: "text-small font-mono", children: ref.step ?? ref.id })) }, ref.id))) }), _jsx("p", { className: "mt-1", children: onRetry ? labels.stepErrorsHint : labels.errorHintNoRetry })] }) }) }));
|
|
125
141
|
}
|
|
126
142
|
export function ViewBody({ buildMode, viewData, widgets, callTool, onExit, builderLabels, }) {
|
|
127
143
|
if (buildMode) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-app-view-chrome.js","sourceRoot":"","sources":["../../src/app/mcp-app-view-chrome.tsx"],"names":[],"mappings":";AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,aAAa,EAAkB,MAAM,OAAO,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAEtF,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAqB,MAAM,+BAA+B,CAAA;AACnF,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,OAAO,EACL,aAAa,GAGd,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,cAAc,EAAwB,MAAM,sBAAsB,CAAA;AAS3E;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAA+B,gBAAgB,CAAC,EAAE,CAAC,IAAI,CAAA;AAqClF;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,MAAM,CAAC,GAAG,KAAoC,CAAA;IAC9C,OAAO,OAAO,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC,EAAE,MAAM,CAAC,CAAA;AACzC,CAAC;AAWD;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAc,EAAE,MAAqB;IACtE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAA;IACxC,OAAO;QACL,GAAG,IAAI;QACP,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,KAAK;QACL,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO;QACvC,cAAc,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE;KACzF,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CACjC,WAAmB,EACnB,qBAAwC;IAExC,OAAO,WAAW,KAAK,YAAY,IAAI,qBAAqB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;AACrF,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp-app-view-chrome.js","sourceRoot":"","sources":["../../src/app/mcp-app-view-chrome.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
import type { McpAppViewLabels } from "./mcp-app-view-chrome.js";
|
|
2
|
-
import type { ViewLifecycle } from "./view-lifecycle.js";
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
import type { ViewErrorKind, ViewLifecycle } from "./view-lifecycle.js";
|
|
3
|
+
export type { ViewErrorKind } from "./view-lifecycle.js";
|
|
4
|
+
/**
|
|
5
|
+
* Human text for a raw error reason (e.g. map "503" to "the engine is down").
|
|
6
|
+
* `info.kind` tells a failure (`"failed"`) from a result the chat did not pass
|
|
7
|
+
* to the view (`"blocked"`, no reason); return `undefined` to keep the
|
|
8
|
+
* toolkit's words for that state.
|
|
9
|
+
*/
|
|
10
|
+
export type DescribeViewError = (reason: string | undefined, info?: {
|
|
11
|
+
kind: ViewErrorKind;
|
|
12
|
+
}) => {
|
|
5
13
|
title?: string;
|
|
6
14
|
description?: string;
|
|
7
15
|
} | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-app-view-states.d.ts","sourceRoot":"","sources":["../../src/app/mcp-app-view-states.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mcp-app-view-states.d.ts","sourceRoot":"","sources":["../../src/app/mcp-app-view-states.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEvE,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAExD;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAC9B,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,IAAI,CAAC,EAAE;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,KAC3B;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,sCA0BA"}
|
|
@@ -3,8 +3,10 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
3
3
|
* The pre-payload states of `McpAppView`, one per lifecycle phase
|
|
4
4
|
* (`view-lifecycle.ts`): waiting (skeleton + status line + slow hint),
|
|
5
5
|
* cancelled, and error (icon, title, what to do, raw reason under "Details",
|
|
6
|
-
* retry when the originating tool is known).
|
|
7
|
-
*
|
|
6
|
+
* retry when the originating tool is known). A `blocked` error is a notice in
|
|
7
|
+
* the info tone, not a failure: the tool ran, but the chat did not pass its
|
|
8
|
+
* result to the view. Hook-free and SSR-renderable, so each phase is pinned
|
|
9
|
+
* by a test.
|
|
8
10
|
*/
|
|
9
11
|
import { ErrorState } from "../components/ErrorState.js";
|
|
10
12
|
import { Skeleton } from "../primitives/skeleton.js";
|
|
@@ -15,7 +17,7 @@ export function ViewPlaceholder({ lifecycle, labels, onRetry, describeError, })
|
|
|
15
17
|
case "cancelled":
|
|
16
18
|
return (_jsx("div", { className: "px-4 py-4", children: _jsx("p", { role: "status", className: "text-muted-foreground text-sm", children: labels.cancelled }) }));
|
|
17
19
|
case "error":
|
|
18
|
-
return (_jsx(ViewErrorState, { reason: lifecycle.reason, canRetry: lifecycle.canRetry, labels: labels, onRetry: onRetry, describeError: describeError }));
|
|
20
|
+
return (_jsx(ViewErrorState, { kind: lifecycle.kind, reason: lifecycle.reason, canRetry: lifecycle.canRetry, labels: labels, onRetry: onRetry, describeError: describeError }));
|
|
19
21
|
case "waiting":
|
|
20
22
|
return _jsx(ViewWaiting, { slow: lifecycle.slow, labels: labels });
|
|
21
23
|
}
|
|
@@ -25,10 +27,29 @@ function ViewWaiting({ slow, labels }) {
|
|
|
25
27
|
// hold back changes inside a busy subtree, and the slow hint is one.
|
|
26
28
|
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
29
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
/** The words and tone of an error phase; the hint never promises a retry the state does not offer. */
|
|
31
|
+
function errorStateCopy(kind, canRetry, labels) {
|
|
32
|
+
if (kind === "blocked") {
|
|
33
|
+
// Nothing failed: a quiet notice that says what happened and what to do.
|
|
34
|
+
return {
|
|
35
|
+
tone: "info",
|
|
36
|
+
role: "status",
|
|
37
|
+
title: labels.blockedTitle,
|
|
38
|
+
hint: canRetry ? labels.blockedHint : labels.blockedHintNoRetry,
|
|
39
|
+
retry: labels.blockedRetry,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
return {
|
|
43
|
+
tone: "danger",
|
|
44
|
+
role: "alert",
|
|
45
|
+
title: labels.errorTitle,
|
|
46
|
+
hint: canRetry ? labels.errorHint : labels.errorHintNoRetry,
|
|
47
|
+
retry: labels.retry,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
function ViewErrorState({ kind = "failed", reason, canRetry, labels, onRetry, describeError, }) {
|
|
51
|
+
const human = describeError?.(reason, { kind });
|
|
52
|
+
const copy = errorStateCopy(kind, canRetry, labels);
|
|
53
|
+
return (_jsx("div", { className: "px-4 py-4", children: _jsx(ErrorState, { tone: copy.tone, role: copy.role, title: human?.title ?? copy.title, description: human?.description ?? copy.hint, details: reason, detailsLabel: labels.errorDetails, retryLabel: copy.retry, onRetry: canRetry ? onRetry : undefined }) }));
|
|
33
54
|
}
|
|
34
55
|
//# sourceMappingURL=mcp-app-view-states.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-app-view-states.js","sourceRoot":"","sources":["../../src/app/mcp-app-view-states.tsx"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"mcp-app-view-states.js","sourceRoot":"","sources":["../../src/app/mcp-app-view-states.tsx"],"names":[],"mappings":"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"}
|