@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
|
@@ -32,8 +32,23 @@ export interface ViewLifecycleInput {
|
|
|
32
32
|
cancelled: boolean;
|
|
33
33
|
/** Message of the original call's error, when it failed. */
|
|
34
34
|
callErrorReason: string | undefined;
|
|
35
|
-
/**
|
|
35
|
+
/**
|
|
36
|
+
* The automatic stripped-result recovery ran and failed, or was needed but
|
|
37
|
+
* could not run because the host names no tool.
|
|
38
|
+
*/
|
|
36
39
|
recoveryFailed: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* The host did not pass the result to the view, and the recovery policy
|
|
42
|
+
* forbids re-running the tool: it ran, but the view never got its result.
|
|
43
|
+
* Default `false`.
|
|
44
|
+
*/
|
|
45
|
+
recoveryBlocked?: boolean;
|
|
46
|
+
/**
|
|
47
|
+
* The host reports the originating tool as writing (`readOnlyHint: false`
|
|
48
|
+
* or `destructiveHint: true`). A blocked state then offers no retry: one
|
|
49
|
+
* click would run the write a second time. Default `false`.
|
|
50
|
+
*/
|
|
51
|
+
toolWrites?: boolean;
|
|
37
52
|
/** The user-triggered retry. */
|
|
38
53
|
retryState: RetryState;
|
|
39
54
|
/** Loading has outlasted the slow-hint delay. */
|
|
@@ -41,6 +56,12 @@ export interface ViewLifecycleInput {
|
|
|
41
56
|
/** The originating tool is known, so a retry can re-run it. */
|
|
42
57
|
canRetry: boolean;
|
|
43
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* What an `error` phase stands for: `"failed"` (the call, the recovery or the
|
|
61
|
+
* retry failed) or `"blocked"` (the tool ran, but the host did not pass its
|
|
62
|
+
* result to the view, and the recovery policy keeps the view from re-running it).
|
|
63
|
+
*/
|
|
64
|
+
export type ViewErrorKind = "failed" | "blocked";
|
|
44
65
|
export type ViewLifecycle = {
|
|
45
66
|
phase: "result";
|
|
46
67
|
} | {
|
|
@@ -52,13 +73,16 @@ export type ViewLifecycle = {
|
|
|
52
73
|
phase: "error";
|
|
53
74
|
reason: string | undefined;
|
|
54
75
|
canRetry: boolean;
|
|
76
|
+
/** Absent for a failure; `"blocked"` for a result the view must not re-load. */
|
|
77
|
+
kind?: ViewErrorKind;
|
|
55
78
|
};
|
|
56
79
|
/**
|
|
57
80
|
* Resolve the single phase the view is in. Precedence: a payload always wins;
|
|
58
81
|
* a running retry is waiting; a failed retry is an error with ITS reason; a
|
|
59
|
-
* cancellation is terminal; a failed call
|
|
60
|
-
*
|
|
61
|
-
*
|
|
82
|
+
* cancellation is terminal; a failed call is an error; a blocked recovery is
|
|
83
|
+
* a `blocked` error, retryable only for a tool not reported as writing; a
|
|
84
|
+
* failed recovery or a latched non-view result nothing can recover is an
|
|
85
|
+
* error; everything else is still waiting.
|
|
62
86
|
*/
|
|
63
87
|
export declare function resolveViewLifecycle(input: ViewLifecycleInput): ViewLifecycle;
|
|
64
88
|
/**
|
|
@@ -104,6 +128,58 @@ export type ViewResultOutcome<T> = {
|
|
|
104
128
|
* the shell cannot render (no reason).
|
|
105
129
|
*/
|
|
106
130
|
export declare function decodeViewResult<T>(result: unknown, isValid: (value: unknown) => value is T): ViewResultOutcome<T>;
|
|
131
|
+
/** What {@link describeViewForModel} reports on. */
|
|
132
|
+
export interface ViewModelContextInput {
|
|
133
|
+
lifecycle: ViewLifecycle;
|
|
134
|
+
/** The originating tool, when the host names it. */
|
|
135
|
+
toolName: string | undefined;
|
|
136
|
+
/** The shown payload's failed data steps (result phase). */
|
|
137
|
+
stepErrors?: readonly {
|
|
138
|
+
stepId: string;
|
|
139
|
+
reason: string;
|
|
140
|
+
}[];
|
|
141
|
+
/** The step-error alert offers a retry (the view can refresh). */
|
|
142
|
+
stepsRetryable?: boolean;
|
|
143
|
+
/**
|
|
144
|
+
* When the view re-loaded the shown payload itself (epoch ms, see
|
|
145
|
+
* {@link reloadedAtOf}); `null` for a payload the host delivered.
|
|
146
|
+
*/
|
|
147
|
+
reloadedAt?: number | null;
|
|
148
|
+
/**
|
|
149
|
+
* How it re-loaded: it re-ran the tool because the host did not pass the
|
|
150
|
+
* result along (`"recovery"`, the default: its own recovery or the user's
|
|
151
|
+
* retry), the user refreshed the view (`"refresh"`), or the user applied an
|
|
152
|
+
* edit from the view builder, which ran the data steps again (`"builder"`).
|
|
153
|
+
*/
|
|
154
|
+
reloadedBy?: "recovery" | "refresh" | "builder";
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Where the shown payload came from: the host's tool result, the view's own
|
|
158
|
+
* re-execution when the host stripped it, the user's retry, a refresh, or the
|
|
159
|
+
* user's Apply in the view builder (its figures are the builder's own run of
|
|
160
|
+
* the data steps).
|
|
161
|
+
*/
|
|
162
|
+
export type ViewSource = "host" | "recovered" | "retry" | "refresh" | "builder";
|
|
163
|
+
/**
|
|
164
|
+
* When a payload counts as re-loaded by the view itself (N23): `at` when its
|
|
165
|
+
* figures can differ from the result the chat answered from, else `null`. A
|
|
166
|
+
* recovery, a refresh and a builder Apply always; a retry only after a call
|
|
167
|
+
* whose result reached the chat (a stripped or unusable one), never after a
|
|
168
|
+
* failed or cancelled call, of which the model never had figures. The host's
|
|
169
|
+
* own payload never.
|
|
170
|
+
*/
|
|
171
|
+
export declare function reloadedAtOf(source: ViewSource, at: number, callFailed: boolean): number | null;
|
|
172
|
+
/**
|
|
173
|
+
* The view's own line of model context (toolkit#176 K20): what failed and
|
|
174
|
+
* that the user sees an error instead of the view; a blocked recovery (the
|
|
175
|
+
* tool ran, its result never reached the view, and the model must not re-run
|
|
176
|
+
* it just to show the view); failed data steps; a payload the view re-loaded
|
|
177
|
+
* itself (a recovery, a retry, a refresh, a builder Apply), whose figures can
|
|
178
|
+
* differ from the tool result the model answered from (N23). `null` while
|
|
179
|
+
* there is nothing to report (waiting, or a plain host-delivered view).
|
|
180
|
+
* English: it is read by the model, never shown.
|
|
181
|
+
*/
|
|
182
|
+
export declare function describeViewForModel(input: ViewModelContextInput): string | null;
|
|
107
183
|
/** A displayable message for anything thrown. */
|
|
108
184
|
export declare function errorMessage(err: unknown): string | undefined;
|
|
109
185
|
//# sourceMappingURL=view-lifecycle.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view-lifecycle.d.ts","sourceRoot":"","sources":["../../src/app/view-lifecycle.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"view-lifecycle.d.ts","sourceRoot":"","sources":["../../src/app/view-lifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
* waiting ──result──▶ result
|
|
7
7
|
* │ ╲
|
|
8
8
|
* │ ╲──tool error / failed recovery / unrecoverable result──▶ error ──retry──▶ waiting
|
|
9
|
+
* │ ╲
|
|
10
|
+
* │ ╲──stripped result the policy must not re-load──▶ error (blocked)
|
|
9
11
|
* │
|
|
10
12
|
* └──host cancelled──▶ cancelled (terminal: the user stopped it)
|
|
11
13
|
*
|
|
@@ -14,6 +16,10 @@
|
|
|
14
16
|
* skeleton, and a retry re-runs the originating tool once on the user's click.
|
|
15
17
|
* A latched result that is no view on a host that names no originating tool
|
|
16
18
|
* is an `error` too: nothing could recover it, so waiting would never end.
|
|
19
|
+
* A `blocked` error is no failure: the tool ran, the host kept its result
|
|
20
|
+
* from the view, and the recovery policy forbids re-running it. It offers to
|
|
21
|
+
* load the view only for a tool the host does not report as writing, so one
|
|
22
|
+
* click never runs a write a second time (CI §9).
|
|
17
23
|
* Pure functions only: the hook in `use-view-lifecycle.ts` feeds them.
|
|
18
24
|
*/
|
|
19
25
|
import { parseToolResult } from "../lib/parse-tool-result.js";
|
|
@@ -32,9 +38,10 @@ export function retryReducer(state, action) {
|
|
|
32
38
|
/**
|
|
33
39
|
* Resolve the single phase the view is in. Precedence: a payload always wins;
|
|
34
40
|
* a running retry is waiting; a failed retry is an error with ITS reason; a
|
|
35
|
-
* cancellation is terminal; a failed call
|
|
36
|
-
*
|
|
37
|
-
*
|
|
41
|
+
* cancellation is terminal; a failed call is an error; a blocked recovery is
|
|
42
|
+
* a `blocked` error, retryable only for a tool not reported as writing; a
|
|
43
|
+
* failed recovery or a latched non-view result nothing can recover is an
|
|
44
|
+
* error; everything else is still waiting.
|
|
38
45
|
*/
|
|
39
46
|
export function resolveViewLifecycle(input) {
|
|
40
47
|
if (input.hasViewData)
|
|
@@ -50,6 +57,10 @@ export function resolveViewLifecycle(input) {
|
|
|
50
57
|
if (input.callStatus === "error") {
|
|
51
58
|
return { phase: "error", reason: input.callErrorReason, canRetry: input.canRetry };
|
|
52
59
|
}
|
|
60
|
+
if (input.recoveryBlocked) {
|
|
61
|
+
const canRetry = input.canRetry && !input.toolWrites;
|
|
62
|
+
return { phase: "error", reason: undefined, canRetry, kind: "blocked" };
|
|
63
|
+
}
|
|
53
64
|
if (input.recoveryFailed)
|
|
54
65
|
return { phase: "error", reason: undefined, canRetry: input.canRetry };
|
|
55
66
|
// A latched result without a renderable view: the recovery re-runs the
|
|
@@ -109,6 +120,82 @@ export function decodeViewResult(result, isValid) {
|
|
|
109
120
|
? { ok: true, data: decoded }
|
|
110
121
|
: { ok: false, isError: false, reason: undefined };
|
|
111
122
|
}
|
|
123
|
+
/**
|
|
124
|
+
* When a payload counts as re-loaded by the view itself (N23): `at` when its
|
|
125
|
+
* figures can differ from the result the chat answered from, else `null`. A
|
|
126
|
+
* recovery, a refresh and a builder Apply always; a retry only after a call
|
|
127
|
+
* whose result reached the chat (a stripped or unusable one), never after a
|
|
128
|
+
* failed or cancelled call, of which the model never had figures. The host's
|
|
129
|
+
* own payload never.
|
|
130
|
+
*/
|
|
131
|
+
export function reloadedAtOf(source, at, callFailed) {
|
|
132
|
+
if (source === "host")
|
|
133
|
+
return null;
|
|
134
|
+
if (source === "retry" && callFailed)
|
|
135
|
+
return null;
|
|
136
|
+
return at;
|
|
137
|
+
}
|
|
138
|
+
/** How the view says, to the model, that it loaded the shown figures itself. */
|
|
139
|
+
const RELOADED_BY = {
|
|
140
|
+
recovery: (at) => `re-ran the tool at ${at} because the host did not pass the original result to the view`,
|
|
141
|
+
refresh: (at) => `was refreshed by the user at ${at}`,
|
|
142
|
+
builder: (at) => `was edited by the user in the view builder, which loaded its data again at ${at}`,
|
|
143
|
+
};
|
|
144
|
+
/**
|
|
145
|
+
* The view's own line of model context (toolkit#176 K20): what failed and
|
|
146
|
+
* that the user sees an error instead of the view; a blocked recovery (the
|
|
147
|
+
* tool ran, its result never reached the view, and the model must not re-run
|
|
148
|
+
* it just to show the view); failed data steps; a payload the view re-loaded
|
|
149
|
+
* itself (a recovery, a retry, a refresh, a builder Apply), whose figures can
|
|
150
|
+
* differ from the tool result the model answered from (N23). `null` while
|
|
151
|
+
* there is nothing to report (waiting, or a plain host-delivered view).
|
|
152
|
+
* English: it is read by the model, never shown.
|
|
153
|
+
*/
|
|
154
|
+
export function describeViewForModel(input) {
|
|
155
|
+
const subject = input.toolName ? `The view of ${input.toolName}` : "The view";
|
|
156
|
+
const { lifecycle } = input;
|
|
157
|
+
if (lifecycle.phase === "error") {
|
|
158
|
+
if (lifecycle.kind === "blocked") {
|
|
159
|
+
return describeBlockedForModel(subject, input.toolName, lifecycle.canRetry);
|
|
160
|
+
}
|
|
161
|
+
const reason = lifecycle.reason ? ` (reason: ${lifecycle.reason})` : "";
|
|
162
|
+
const offer = lifecycle.canRetry ? "an error message with a retry button" : "an error message";
|
|
163
|
+
return `${subject} could not be shown${reason}. The user sees ${offer} instead of the view.`;
|
|
164
|
+
}
|
|
165
|
+
if (lifecycle.phase === "cancelled") {
|
|
166
|
+
return `${subject} was cancelled before it rendered. The user sees a note that the call was cancelled.`;
|
|
167
|
+
}
|
|
168
|
+
if (lifecycle.phase === "waiting")
|
|
169
|
+
return null;
|
|
170
|
+
const lines = [];
|
|
171
|
+
if (input.reloadedAt != null) {
|
|
172
|
+
const at = new Date(input.reloadedAt).toISOString();
|
|
173
|
+
const how = RELOADED_BY[input.reloadedBy ?? "recovery"](at);
|
|
174
|
+
lines.push(`${subject} ${how}; its figures are live as of then and can differ from the original result.`);
|
|
175
|
+
}
|
|
176
|
+
const failed = input.stepErrors ?? [];
|
|
177
|
+
if (failed.length > 0) {
|
|
178
|
+
const steps = failed.map((e) => `${e.stepId}: ${e.reason}`).join("; ");
|
|
179
|
+
const lead = lines.length > 0 ? "Some" : `${subject} is shown, but some`;
|
|
180
|
+
const offer = input.stepsRetryable ? "an alert with a retry button" : "an alert";
|
|
181
|
+
lines.push(`${lead} of its data could not be loaded (${steps}). The user sees ${offer}.`);
|
|
182
|
+
}
|
|
183
|
+
return lines.length > 0 ? lines.join(" ") : null;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* The model's line for a blocked recovery: the tool ran (nothing failed), the
|
|
187
|
+
* host kept its result from the view, the view did not re-run it, and the
|
|
188
|
+
* model must not re-run it just to show the view, a write least of all.
|
|
189
|
+
*/
|
|
190
|
+
function describeBlockedForModel(subject, toolName, canRetry) {
|
|
191
|
+
const tool = toolName ?? "the tool";
|
|
192
|
+
const offer = canRetry
|
|
193
|
+
? "a note with a button that loads the view"
|
|
194
|
+
: "a note to ask in the chat for the current state";
|
|
195
|
+
return (`${subject} is not shown: ${tool} ran, but the host did not pass its result to the view, ` +
|
|
196
|
+
`and the view did not re-run it. The user sees ${offer} instead of the view. ` +
|
|
197
|
+
`Do not re-run ${tool} just to show the view.`);
|
|
198
|
+
}
|
|
112
199
|
/** A displayable message for anything thrown. */
|
|
113
200
|
export function errorMessage(err) {
|
|
114
201
|
if (err instanceof Error)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view-lifecycle.js","sourceRoot":"","sources":["../../src/app/view-lifecycle.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"view-lifecycle.js","sourceRoot":"","sources":["../../src/app/view-lifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -130,9 +130,12 @@ export interface WidgetFixtureHostProps {
|
|
|
130
130
|
*/
|
|
131
131
|
tools?: Record<string, FixtureToolEntry>;
|
|
132
132
|
/**
|
|
133
|
-
* Host context overrides, merged over {@link DEFAULT_GLOBALS}.
|
|
134
|
-
*
|
|
135
|
-
*
|
|
133
|
+
* Host context overrides, merged over {@link DEFAULT_GLOBALS}. Two keys
|
|
134
|
+
* influence the simulated host: `theme` (`"light"` | `"dark"`, reported by
|
|
135
|
+
* `useHostBridge().theme`) and `locale` (a BCP 47 tag: the toolkit's own
|
|
136
|
+
* strings and number format follow it, exactly as under `McpAppView`; a
|
|
137
|
+
* `LocaleProvider` around or inside the widget still wins). The other keys
|
|
138
|
+
* are accepted for compatibility with existing playground setups.
|
|
136
139
|
*/
|
|
137
140
|
globals?: Record<string, unknown>;
|
|
138
141
|
/**
|
|
@@ -167,6 +170,10 @@ export declare function buildFixtureWidgetProps(data: Record<string, unknown>, d
|
|
|
167
170
|
* would (adapted widgets report through this bridge outside a real view).
|
|
168
171
|
* - **The toolkit `AppQueryProvider`** — so widgets that fetch via `useToolQuery`
|
|
169
172
|
* (e.g. generated `use*` hooks) resolve against the same registry.
|
|
173
|
+
* - **What `McpAppView` gives a widget** — the toolkit's strings in the host
|
|
174
|
+
* locale (`globals.locale`, as `McpAppView` does with the host's), the
|
|
175
|
+
* toast stack (`useToast()` shows real toasts) and the icon stroke of the
|
|
176
|
+
* view (2.5), so the preview matches what a host renders.
|
|
170
177
|
*
|
|
171
178
|
* ### Boundaries
|
|
172
179
|
* The harness simulates the **host-portable pattern** (`useHostBridge`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"widget-fixture.d.ts","sourceRoot":"","sources":["../../src/app/widget-fixture.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"widget-fixture.d.ts","sourceRoot":"","sources":["../../src/app/widget-fixture.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { createContext, useContext, useMemo } from "react";
|
|
3
|
+
import { LucideProvider } from "lucide-react";
|
|
4
|
+
import { ToastProvider } from "../components/Toast.js";
|
|
5
|
+
import { ICON_STROKE } from "../lib/icon-stroke.js";
|
|
6
|
+
import { ToolkitLocaleFallback } from "../locale/locale-provider.js";
|
|
3
7
|
import { AppQueryProvider } from "../providers/query-provider.js";
|
|
4
8
|
import { HostBridgeProvider, createStandaloneHostBridge } from "./host-bridge.js";
|
|
5
9
|
/**
|
|
@@ -81,10 +85,10 @@ export function useFixtureHost() {
|
|
|
81
85
|
return useContext(FixtureHostContext);
|
|
82
86
|
}
|
|
83
87
|
/**
|
|
84
|
-
* Default host-context values the harness reports.
|
|
85
|
-
* the mcp-use 2.x move (the other host globals were consumed by
|
|
86
|
-
* `window.openai` shim); the object keeps its shape so existing
|
|
87
|
-
* setups that spread overrides keep compiling.
|
|
88
|
+
* Default host-context values the harness reports. `theme` and `locale` are
|
|
89
|
+
* read since the mcp-use 2.x move (the other host globals were consumed by
|
|
90
|
+
* the 1.x `window.openai` shim); the object keeps its shape so existing
|
|
91
|
+
* playground setups that spread overrides keep compiling.
|
|
88
92
|
*/
|
|
89
93
|
const DEFAULT_GLOBALS = {
|
|
90
94
|
theme: "light",
|
|
@@ -133,6 +137,10 @@ export function buildFixtureWidgetProps(data, dataType) {
|
|
|
133
137
|
* would (adapted widgets report through this bridge outside a real view).
|
|
134
138
|
* - **The toolkit `AppQueryProvider`** — so widgets that fetch via `useToolQuery`
|
|
135
139
|
* (e.g. generated `use*` hooks) resolve against the same registry.
|
|
140
|
+
* - **What `McpAppView` gives a widget** — the toolkit's strings in the host
|
|
141
|
+
* locale (`globals.locale`, as `McpAppView` does with the host's), the
|
|
142
|
+
* toast stack (`useToast()` shows real toasts) and the icon stroke of the
|
|
143
|
+
* view (2.5), so the preview matches what a host renders.
|
|
136
144
|
*
|
|
137
145
|
* ### Boundaries
|
|
138
146
|
* The harness simulates the **host-portable pattern** (`useHostBridge`,
|
|
@@ -153,10 +161,13 @@ export function WidgetFixtureHost({ widget: Widget, data = {}, dataType, tools,
|
|
|
153
161
|
// The standalone host bridge is the harness's single simulation source: it
|
|
154
162
|
// logs every verb through the `HostActionLog` channel for the playground's
|
|
155
163
|
// activity log. Depends on the callback props directly — a fresh Provider
|
|
156
|
-
// value on callback change is fine for a dev harness.
|
|
157
|
-
//
|
|
158
|
-
// `window.openai` shim).
|
|
164
|
+
// value on callback change is fine for a dev harness. `globals.theme` and
|
|
165
|
+
// `globals.locale` influence the simulated host (the remaining globals fed
|
|
166
|
+
// the 1.x `window.openai` shim).
|
|
159
167
|
const bridgeTheme = (globals?.theme ?? DEFAULT_GLOBALS.theme) === "dark" ? "dark" : "light";
|
|
168
|
+
const hostLocale = typeof globals?.locale === "string" && globals.locale.trim() !== ""
|
|
169
|
+
? globals.locale
|
|
170
|
+
: DEFAULT_GLOBALS.locale;
|
|
160
171
|
const bridge = useMemo(() => createStandaloneHostBridge({
|
|
161
172
|
callTool: (name, args) => {
|
|
162
173
|
onHostAction?.({ type: "callTool", name, args });
|
|
@@ -172,6 +183,8 @@ export function WidgetFixtureHost({ widget: Widget, data = {}, dataType, tools,
|
|
|
172
183
|
// Spread `widgetProps` (keys/context) AND a `data` alias so both adapted
|
|
173
184
|
// widgets and raw `({ data })` widgets read their fixture from one mount.
|
|
174
185
|
const RenderWidget = Widget;
|
|
175
|
-
|
|
186
|
+
// The same scope `McpAppView` puts around a widget: the toolkit's strings
|
|
187
|
+
// in the host locale, the CI icon stroke and a toast stack.
|
|
188
|
+
return (_jsx(FixtureHostContext.Provider, { value: value, children: _jsx(HostBridgeProvider, { bridge: bridge, children: _jsx(AppQueryProvider, { callTool: callTool, children: _jsx(ToolkitLocaleFallback, { locale: hostLocale, children: _jsx(LucideProvider, { strokeWidth: ICON_STROKE, children: _jsx(ToastProvider, { children: _jsx(RenderWidget, { ...widgetProps, data: data }) }) }) }) }) }) }));
|
|
176
189
|
}
|
|
177
190
|
//# sourceMappingURL=widget-fixture.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"widget-fixture.js","sourceRoot":"","sources":["../../src/app/widget-fixture.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAsC,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"widget-fixture.js","sourceRoot":"","sources":["../../src/app/widget-fixture.tsx"],"names":[],"mappings":"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"}
|
|
@@ -5,10 +5,12 @@ export interface WidgetPropsSheetProps {
|
|
|
5
5
|
open: boolean;
|
|
6
6
|
onOpenChange: (open: boolean) => void;
|
|
7
7
|
widgetId: string;
|
|
8
|
+
/** The widget's human name (its title); the id then shows as a quiet hint under it. */
|
|
9
|
+
widgetTitle?: string;
|
|
8
10
|
schema: Record<string, unknown> | undefined;
|
|
9
11
|
value: Record<string, unknown> | undefined;
|
|
10
12
|
onApply: (next: Record<string, unknown> | undefined) => void;
|
|
11
13
|
labels?: WidgetPropsSheetLabels;
|
|
12
14
|
}
|
|
13
|
-
export declare function WidgetPropsSheet({ open, onOpenChange, widgetId, schema, value, onApply, labels, }: WidgetPropsSheetProps): import("react").JSX.Element;
|
|
15
|
+
export declare function WidgetPropsSheet({ open, onOpenChange, widgetId, widgetTitle, schema, value, onApply, labels, }: WidgetPropsSheetProps): import("react").JSX.Element;
|
|
14
16
|
//# sourceMappingURL=widget-props-sheet.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"widget-props-sheet.d.ts","sourceRoot":"","sources":["../../src/app/widget-props-sheet.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"widget-props-sheet.d.ts","sourceRoot":"","sources":["../../src/app/widget-props-sheet.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AA0CvE,yFAAyF;AACzF,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAA;AAIhE,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,OAAO,CAAA;IACb,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,QAAQ,EAAE,MAAM,CAAA;IAChB,uFAAuF;IACvF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;IAC3C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;IAC1C,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,KAAK,IAAI,CAAA;IAC5D,MAAM,CAAC,EAAE,sBAAsB,CAAA;CAChC;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,MAAM,EACN,KAAK,EACL,OAAO,EACP,MAAM,GACP,EAAE,qBAAqB,+BAkFvB"}
|
|
@@ -6,9 +6,12 @@ import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "
|
|
|
6
6
|
import { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle, } from "../primitives/sheet.js";
|
|
7
7
|
import { Switch } from "../primitives/switch.js";
|
|
8
8
|
import { useToolkitMessages } from "../locale/locale-provider.js";
|
|
9
|
+
import { propFieldText } from "./builder/builder-model.js";
|
|
10
|
+
import { useDisplayResolver } from "./builder/use-display-resolver.js";
|
|
9
11
|
const UNSET_SENTINEL = "__unset__";
|
|
10
|
-
export function WidgetPropsSheet({ open, onOpenChange, widgetId, schema, value, onApply, labels, }) {
|
|
12
|
+
export function WidgetPropsSheet({ open, onOpenChange, widgetId, widgetTitle, schema, value, onApply, labels, }) {
|
|
11
13
|
const messages = useToolkitMessages();
|
|
14
|
+
const { locale, resolveKey } = useDisplayResolver();
|
|
12
15
|
const L = { ...messages.propsSheet, ...labels };
|
|
13
16
|
const obj = (schema ?? {});
|
|
14
17
|
const [draft, setDraft] = useState(value ?? {});
|
|
@@ -34,7 +37,7 @@ export function WidgetPropsSheet({ open, onOpenChange, widgetId, schema, value,
|
|
|
34
37
|
onApply(Object.keys(cleaned).length > 0 ? cleaned : undefined);
|
|
35
38
|
onOpenChange(false);
|
|
36
39
|
};
|
|
37
|
-
return (_jsx(Sheet, { open: open, onOpenChange: onOpenChange, children: _jsxs(SheetContent, { className: "w-[400px] sm:max-w-md", children: [_jsxs(SheetHeader, { children: [_jsx(SheetTitle, { children: L.title }), _jsxs(SheetDescription, { className: "flex flex-col items-start gap-1", children: [_jsx("span", { children: L.description }), _jsx("span", { className: "bg-muted rounded px-1 font-mono
|
|
40
|
+
return (_jsx(Sheet, { open: open, onOpenChange: onOpenChange, children: _jsxs(SheetContent, { className: "w-[400px] sm:max-w-md", children: [_jsxs(SheetHeader, { children: [_jsx(SheetTitle, { children: L.title }), _jsxs(SheetDescription, { className: "flex flex-col items-start gap-1", children: [_jsx("span", { children: L.description }), widgetTitle && _jsx("span", { className: "text-foreground font-medium", children: widgetTitle }), _jsx("span", { className: "bg-muted text-small rounded px-1 font-mono", children: widgetId })] })] }), _jsx("div", { className: "flex flex-col gap-4 px-4 py-4", children: propEntries.length === 0 ? (_jsx("p", { className: "text-muted-foreground text-sm", children: L.noProps })) : (propEntries.map(([key, prop]) => (_jsx(PropertyField, { name: key, text: propFieldText(key, prop, locale, resolveKey), prop: prop, value: draft[key], unsetLabel: L.unsetOption, unsupportedLabel: L.unsupportedType, onChange: (v) => setDraft((prev) => {
|
|
38
41
|
if (v === undefined) {
|
|
39
42
|
const rest = {};
|
|
40
43
|
for (const [k, val] of Object.entries(prev)) {
|
|
@@ -46,20 +49,20 @@ export function WidgetPropsSheet({ open, onOpenChange, widgetId, schema, value,
|
|
|
46
49
|
return { ...prev, [key]: v };
|
|
47
50
|
}) }, key)))) }), _jsxs("div", { className: "flex items-center justify-end gap-2 border-t px-4 py-3", children: [_jsx(Button, { variant: "ghost", onClick: () => setDraft({}), children: L.reset }), _jsx(Button, { variant: "outline", onClick: () => onOpenChange(false), children: L.cancel }), _jsx(Button, { onClick: handleApply, children: L.apply })] })] }) }));
|
|
48
51
|
}
|
|
49
|
-
function PropertyField({ name, prop, value, unsetLabel, unsupportedLabel, onChange, }) {
|
|
52
|
+
function PropertyField({ name, text, prop, value, unsetLabel, unsupportedLabel, onChange, }) {
|
|
50
53
|
const id = `prop-${name}`;
|
|
51
54
|
if (prop.type === "string" && Array.isArray(prop.enum)) {
|
|
52
55
|
const options = prop.enum.filter((v) => typeof v === "string");
|
|
53
56
|
const current = typeof value === "string" && value !== "" ? value : UNSET_SENTINEL;
|
|
54
|
-
return (_jsx(FieldShell, { id: id,
|
|
57
|
+
return (_jsx(FieldShell, { id: id, text: text, children: _jsxs(Select, { value: current, onValueChange: (v) => onChange(v === UNSET_SENTINEL ? undefined : v), children: [_jsx(SelectTrigger, { id: id, "aria-describedby": helpId(id, text), children: _jsx(SelectValue, { placeholder: unsetLabel }) }), _jsxs(SelectContent, { children: [_jsx(SelectItem, { value: UNSET_SENTINEL, children: unsetLabel }), options.map((opt) => (_jsx(SelectItem, { value: opt, children: opt }, opt)))] })] }) }));
|
|
55
58
|
}
|
|
56
59
|
if (prop.type === "string") {
|
|
57
60
|
const current = typeof value === "string" ? value : "";
|
|
58
|
-
return (_jsx(FieldShell, { id: id,
|
|
61
|
+
return (_jsx(FieldShell, { id: id, text: text, children: _jsx(Input, { id: id, "aria-describedby": helpId(id, text), value: current, onChange: (e) => onChange(e.target.value === "" ? undefined : e.target.value) }) }));
|
|
59
62
|
}
|
|
60
63
|
if (prop.type === "number" || prop.type === "integer") {
|
|
61
64
|
const current = typeof value === "number" ? String(value) : "";
|
|
62
|
-
return (_jsx(FieldShell, { id: id,
|
|
65
|
+
return (_jsx(FieldShell, { id: id, text: text, children: _jsx(Input, { id: id, "aria-describedby": helpId(id, text), type: "number", value: current, onChange: (e) => {
|
|
63
66
|
const raw = e.target.value;
|
|
64
67
|
if (raw === "")
|
|
65
68
|
return onChange(undefined);
|
|
@@ -70,11 +73,20 @@ function PropertyField({ name, prop, value, unsetLabel, unsupportedLabel, onChan
|
|
|
70
73
|
}
|
|
71
74
|
if (prop.type === "boolean") {
|
|
72
75
|
const current = value === true;
|
|
73
|
-
return (_jsx(FieldShell, { id: id,
|
|
76
|
+
return (_jsx(FieldShell, { id: id, text: text, children: _jsx(Switch, { id: id, "aria-describedby": helpId(id, text), checked: current, onCheckedChange: (checked) => onChange(checked || undefined) }) }));
|
|
74
77
|
}
|
|
75
|
-
return (_jsx(FieldShell, { id: id,
|
|
78
|
+
return (_jsx(FieldShell, { id: id, text: text, children: _jsx("p", { className: "text-muted-foreground text-small italic", children: unsupportedLabel(prop.type ?? "?") }) }));
|
|
76
79
|
}
|
|
77
|
-
|
|
78
|
-
|
|
80
|
+
/** The id of a field's help line, when it has one (its `aria-describedby`). */
|
|
81
|
+
function helpId(id, text) {
|
|
82
|
+
return text.help ? `${id}-help` : undefined;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Label (the human title), the raw property name as a quiet hint beside it
|
|
86
|
+
* (outside the label, so the accessible name stays the title), the control,
|
|
87
|
+
* and the help line it is described by.
|
|
88
|
+
*/
|
|
89
|
+
function FieldShell({ id, text, children, }) {
|
|
90
|
+
return (_jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsxs("div", { className: "flex flex-wrap items-baseline gap-x-2", children: [_jsx("label", { htmlFor: id, className: "text-sm font-medium", children: text.label }), text.hint && (_jsx("code", { "data-slot": "prop-name", className: "text-muted-foreground text-small font-mono", children: text.hint }))] }), children, text.help ? (_jsx("p", { id: helpId(id, text), className: "text-muted-foreground text-small", children: text.help })) : null] }));
|
|
79
91
|
}
|
|
80
92
|
//# sourceMappingURL=widget-props-sheet.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"widget-props-sheet.js","sourceRoot":"","sources":["../../src/app/widget-props-sheet.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAA;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAC9C,OAAO,EACL,MAAM,EACN,aAAa,EACb,UAAU,EACV,aAAa,EACb,WAAW,GACZ,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,KAAK,EACL,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,UAAU,GACX,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;
|
|
1
|
+
{"version":3,"file":"widget-props-sheet.js","sourceRoot":"","sources":["../../src/app/widget-props-sheet.tsx"],"names":[],"mappings":"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"}
|
|
@@ -78,7 +78,7 @@ export function WidgetCrashFallback({ widgetId, error, onRetry, }) {
|
|
|
78
78
|
/** A layout cell names a widget the bundle does not contain: say so, quietly. */
|
|
79
79
|
export function UnavailableWidget({ widgetId, className = "text-muted-foreground rounded-md border border-dashed p-4 text-sm", }) {
|
|
80
80
|
const messages = useToolkitMessages();
|
|
81
|
-
return (_jsxs("div", { "data-slot": "widget-unavailable", "data-widget-id": widgetId, className: className, children: [_jsx("p", { children: messages.renderer.widgetUnavailable }), _jsx("p", { className: "mt-1 font-mono
|
|
81
|
+
return (_jsxs("div", { "data-slot": "widget-unavailable", "data-widget-id": widgetId, className: className, children: [_jsx("p", { children: messages.renderer.widgetUnavailable }), _jsx("p", { className: "text-small mt-1 font-mono break-all", children: widgetId })] }));
|
|
82
82
|
}
|
|
83
83
|
/**
|
|
84
84
|
* True when the pipeline context carries no widget data at all — no step
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"widget-renderer.js","sourceRoot":"","sources":["../../src/app/widget-renderer.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"widget-renderer.js","sourceRoot":"","sources":["../../src/app/widget-renderer.tsx"],"names":[],"mappings":"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"}
|