@miragon/mcp-toolkit-ui 2.6.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 +14 -5
- 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.d.ts +7 -2
- package/dist/app/builder/BuilderBanners.d.ts.map +1 -1
- package/dist/app/builder/BuilderBanners.js +8 -3
- package/dist/app/builder/BuilderBanners.js.map +1 -1
- package/dist/app/builder/CanvasRow.d.ts +4 -2
- package/dist/app/builder/CanvasRow.d.ts.map +1 -1
- package/dist/app/builder/CanvasRow.js +29 -17
- 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 +14 -6
- 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/EmptyHint.d.ts +4 -0
- package/dist/app/builder/EmptyHint.d.ts.map +1 -1
- package/dist/app/builder/EmptyHint.js +6 -1
- package/dist/app/builder/EmptyHint.js.map +1 -1
- package/dist/app/builder/LayoutSurface.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 +5 -2
- package/dist/app/builder/PipelineStrip.d.ts.map +1 -1
- package/dist/app/builder/PipelineStrip.js +33 -15
- 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 +9 -3
- package/dist/app/builder/SaveDialog.js.map +1 -1
- package/dist/app/builder/Toolbar.d.ts +14 -4
- package/dist/app/builder/Toolbar.d.ts.map +1 -1
- package/dist/app/builder/Toolbar.js +24 -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 +146 -3
- package/dist/app/builder/builder-model.d.ts.map +1 -1
- package/dist/app/builder/builder-model.js +196 -5
- package/dist/app/builder/builder-model.js.map +1 -1
- package/dist/app/builder/labels.d.ts +13 -62
- package/dist/app/builder/labels.d.ts.map +1 -1
- package/dist/app/builder/labels.js +9 -58
- package/dist/app/builder/labels.js.map +1 -1
- package/dist/app/builder/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/status-chip.d.ts.map +1 -1
- package/dist/app/builder/status-chip.js +3 -2
- package/dist/app/builder/status-chip.js.map +1 -1
- package/dist/app/builder/use-builder-catalogue.d.ts +5 -1
- package/dist/app/builder/use-builder-catalogue.d.ts.map +1 -1
- package/dist/app/builder/use-builder-catalogue.js +50 -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/builder/use-save-dashboard.d.ts +3 -1
- package/dist/app/builder/use-save-dashboard.d.ts.map +1 -1
- package/dist/app/builder/use-save-dashboard.js +3 -1
- package/dist/app/builder/use-save-dashboard.js.map +1 -1
- package/dist/app/index.d.ts +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 +18 -25
- package/dist/app/layout-builder.d.ts.map +1 -1
- package/dist/app/layout-builder.js +84 -78
- package/dist/app/layout-builder.js.map +1 -1
- package/dist/app/mcp-app-view-chrome.d.ts +103 -20
- package/dist/app/mcp-app-view-chrome.d.ts.map +1 -1
- package/dist/app/mcp-app-view-chrome.js +125 -40
- package/dist/app/mcp-app-view-chrome.js.map +1 -1
- package/dist/app/mcp-app-view-states.d.ts +23 -0
- package/dist/app/mcp-app-view-states.d.ts.map +1 -0
- package/dist/app/mcp-app-view-states.js +55 -0
- package/dist/app/mcp-app-view-states.js.map +1 -0
- package/dist/app/mcp-app-view.d.ts +72 -5
- package/dist/app/mcp-app-view.d.ts.map +1 -1
- package/dist/app/mcp-app-view.js +241 -141
- package/dist/app/mcp-app-view.js.map +1 -1
- package/dist/app/mcp-toolkit-app.d.ts +8 -2
- package/dist/app/mcp-toolkit-app.d.ts.map +1 -1
- package/dist/app/mcp-toolkit-app.js +33 -4
- 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 +42 -0
- package/dist/app/use-view-lifecycle.d.ts.map +1 -0
- package/dist/app/use-view-lifecycle.js +81 -0
- package/dist/app/use-view-lifecycle.js.map +1 -0
- package/dist/app/view-lifecycle.d.ts +185 -0
- package/dist/app/view-lifecycle.d.ts.map +1 -0
- package/dist/app/view-lifecycle.js +207 -0
- package/dist/app/view-lifecycle.js.map +1 -0
- 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 +6 -10
- package/dist/app/widget-props-sheet.d.ts.map +1 -1
- package/dist/app/widget-props-sheet.js +25 -20
- package/dist/app/widget-props-sheet.js.map +1 -1
- package/dist/app/widget-renderer.d.ts +41 -1
- package/dist/app/widget-renderer.d.ts.map +1 -1
- package/dist/app/widget-renderer.js +82 -31
- package/dist/app/widget-renderer.js.map +1 -1
- package/dist/components/DrillButton.d.ts +9 -6
- package/dist/components/DrillButton.d.ts.map +1 -1
- package/dist/components/DrillButton.js +9 -6
- package/dist/components/DrillButton.js.map +1 -1
- package/dist/components/EmptyState.d.ts +33 -0
- package/dist/components/EmptyState.d.ts.map +1 -0
- package/dist/components/EmptyState.js +19 -0
- package/dist/components/EmptyState.js.map +1 -0
- package/dist/components/ErrorState.d.ts +53 -0
- package/dist/components/ErrorState.d.ts.map +1 -0
- package/dist/components/ErrorState.js +77 -0
- package/dist/components/ErrorState.js.map +1 -0
- package/dist/components/FilterBar.d.ts +16 -5
- package/dist/components/FilterBar.d.ts.map +1 -1
- package/dist/components/FilterBar.js +13 -5
- package/dist/components/FilterBar.js.map +1 -1
- package/dist/components/GroupCard.d.ts.map +1 -1
- package/dist/components/GroupCard.js +2 -1
- package/dist/components/GroupCard.js.map +1 -1
- package/dist/components/KpiGrid.d.ts +70 -18
- package/dist/components/KpiGrid.d.ts.map +1 -1
- package/dist/components/KpiGrid.js +112 -23
- package/dist/components/KpiGrid.js.map +1 -1
- package/dist/components/ListFooter.d.ts +32 -4
- package/dist/components/ListFooter.d.ts.map +1 -1
- package/dist/components/ListFooter.js +35 -6
- 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 +36 -12
- package/dist/components/Pills.d.ts.map +1 -1
- package/dist/components/Pills.js +29 -8
- 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 +43 -0
- package/dist/components/Toast.d.ts.map +1 -0
- package/dist/components/Toast.js +106 -0
- package/dist/components/Toast.js.map +1 -0
- 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 +61 -44
- package/dist/hooks/use-tool-result-recovery.d.ts.map +1 -1
- package/dist/hooks/use-tool-result-recovery.js +62 -110
- package/dist/hooks/use-tool-result-recovery.js.map +1 -1
- package/dist/hooks/use-view-data.d.ts +55 -7
- package/dist/hooks/use-view-data.d.ts.map +1 -1
- package/dist/hooks/use-view-data.js +81 -11
- 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 +27 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +29 -7
- 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/focus-ring.d.ts +18 -0
- package/dist/lib/focus-ring.d.ts.map +1 -0
- package/dist/lib/focus-ring.js +18 -0
- package/dist/lib/focus-ring.js.map +1 -0
- package/dist/lib/icon-stroke.d.ts +12 -0
- package/dist/lib/icon-stroke.d.ts.map +1 -0
- package/dist/lib/icon-stroke.js +12 -0
- package/dist/lib/icon-stroke.js.map +1 -0
- package/dist/lib/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 +86 -0
- package/dist/lib/toast-model.d.ts.map +1 -0
- package/dist/lib/toast-model.js +102 -0
- package/dist/lib/toast-model.js.map +1 -0
- package/dist/lib/tone-utils.d.ts +95 -9
- package/dist/lib/tone-utils.d.ts.map +1 -1
- package/dist/lib/tone-utils.js +100 -9
- 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 +3 -1
- package/dist/locale/index.d.ts.map +1 -1
- package/dist/locale/index.js +2 -1
- package/dist/locale/index.js.map +1 -1
- package/dist/locale/locale-provider.d.ts +42 -1
- package/dist/locale/locale-provider.d.ts.map +1 -1
- package/dist/locale/locale-provider.js +44 -3
- package/dist/locale/locale-provider.js.map +1 -1
- package/dist/locale/message-types.d.ts +336 -0
- package/dist/locale/message-types.d.ts.map +1 -0
- package/dist/locale/message-types.js +7 -0
- package/dist/locale/message-types.js.map +1 -0
- package/dist/locale/messages-de.d.ts +9 -0
- package/dist/locale/messages-de.d.ts.map +1 -0
- package/dist/locale/messages-de.js +185 -0
- package/dist/locale/messages-de.js.map +1 -0
- package/dist/locale/messages-en.d.ts +8 -0
- package/dist/locale/messages-en.d.ts.map +1 -0
- package/dist/locale/messages-en.js +184 -0
- package/dist/locale/messages-en.js.map +1 -0
- package/dist/locale/toolkit-messages.d.ts +57 -0
- package/dist/locale/toolkit-messages.d.ts.map +1 -0
- package/dist/locale/toolkit-messages.js +103 -0
- package/dist/locale/toolkit-messages.js.map +1 -0
- package/dist/primitives/alert.d.ts +1 -1
- package/dist/primitives/alert.d.ts.map +1 -1
- package/dist/primitives/alert.js +6 -2
- package/dist/primitives/alert.js.map +1 -1
- package/dist/primitives/badge.d.ts +1 -1
- package/dist/primitives/badge.d.ts.map +1 -1
- package/dist/primitives/badge.js +19 -6
- package/dist/primitives/badge.js.map +1 -1
- package/dist/primitives/button.d.ts +1 -1
- package/dist/primitives/button.d.ts.map +1 -1
- package/dist/primitives/button.js +12 -8
- package/dist/primitives/button.js.map +1 -1
- package/dist/primitives/card.js +4 -4
- package/dist/primitives/card.js.map +1 -1
- package/dist/primitives/dialog.d.ts +7 -3
- package/dist/primitives/dialog.d.ts.map +1 -1
- package/dist/primitives/dialog.js +22 -8
- package/dist/primitives/dialog.js.map +1 -1
- package/dist/primitives/input.d.ts.map +1 -1
- package/dist/primitives/input.js +4 -1
- package/dist/primitives/input.js.map +1 -1
- package/dist/primitives/scroll-area.js +1 -1
- package/dist/primitives/scroll-area.js.map +1 -1
- package/dist/primitives/select.d.ts.map +1 -1
- package/dist/primitives/select.js +6 -3
- package/dist/primitives/select.js.map +1 -1
- package/dist/primitives/sheet.d.ts +3 -1
- package/dist/primitives/sheet.d.ts.map +1 -1
- package/dist/primitives/sheet.js +17 -7
- package/dist/primitives/sheet.js.map +1 -1
- package/dist/primitives/skeleton.js +1 -1
- package/dist/primitives/skeleton.js.map +1 -1
- package/dist/primitives/switch.d.ts.map +1 -1
- package/dist/primitives/switch.js +2 -1
- package/dist/primitives/switch.js.map +1 -1
- package/dist/primitives/tabs.d.ts.map +1 -1
- package/dist/primitives/tabs.js +5 -3
- package/dist/primitives/tabs.js.map +1 -1
- package/dist/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 +48 -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/render-scan.d.ts +25 -0
- package/dist/render-scan.d.ts.map +1 -0
- package/dist/render-scan.js +66 -0
- package/dist/render-scan.js.map +1 -0
- package/dist/theme/cd-tokens.d.ts +66 -0
- package/dist/theme/cd-tokens.d.ts.map +1 -0
- package/dist/theme/cd-tokens.js +64 -0
- package/dist/theme/cd-tokens.js.map +1 -0
- package/dist/theme/create-theme.d.ts +214 -39
- package/dist/theme/create-theme.d.ts.map +1 -1
- package/dist/theme/create-theme.js +204 -13
- package/dist/theme/create-theme.js.map +1 -1
- package/dist/theme/fonts.d.ts +38 -0
- package/dist/theme/fonts.d.ts.map +1 -0
- package/dist/theme/fonts.js +56 -0
- package/dist/theme/fonts.js.map +1 -0
- package/dist/theme/host-fonts.d.ts +39 -0
- package/dist/theme/host-fonts.d.ts.map +1 -0
- package/dist/theme/host-fonts.js +44 -0
- package/dist/theme/host-fonts.js.map +1 -0
- package/dist/theme/index.d.ts +8 -1
- package/dist/theme/index.d.ts.map +1 -1
- package/dist/theme/index.js +5 -1
- package/dist/theme/index.js.map +1 -1
- package/dist/theme/portal-container.d.ts +16 -0
- package/dist/theme/portal-container.d.ts.map +1 -0
- package/dist/theme/portal-container.js +19 -0
- package/dist/theme/portal-container.js.map +1 -0
- package/dist/theme/presets.d.ts +24 -9
- package/dist/theme/presets.d.ts.map +1 -1
- package/dist/theme/presets.js +44 -11
- package/dist/theme/presets.js.map +1 -1
- package/dist/theme/theme-provider.d.ts +27 -9
- package/dist/theme/theme-provider.d.ts.map +1 -1
- package/dist/theme/theme-provider.js +42 -20
- package/dist/theme/theme-provider.js.map +1 -1
- package/package.json +11 -5
- package/src/app/adapt-data-widget.tsx +2 -42
- package/src/app/builder/BuilderBanners.tsx +26 -13
- package/src/app/builder/CanvasRow.tsx +79 -32
- package/src/app/builder/CatalogueSheet.tsx +58 -35
- package/src/app/builder/CellPropsSheet.tsx +17 -2
- package/src/app/builder/DiscardDialog.tsx +59 -0
- package/src/app/builder/EmptyHint.tsx +16 -11
- package/src/app/builder/LayoutSurface.tsx +207 -67
- package/src/app/builder/PipelineStrip.tsx +265 -156
- package/src/app/builder/SaveDialog.tsx +25 -14
- package/src/app/builder/Toolbar.tsx +154 -57
- package/src/app/builder/Workspace.tsx +226 -56
- package/src/app/builder/builder-feedback.test.tsx +75 -0
- package/src/app/builder/builder-model.test.ts +5 -0
- package/src/app/builder/builder-model.ts +346 -6
- 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/labels.ts +15 -121
- package/src/app/builder/reveal.ts +10 -0
- package/src/app/builder/status-chip.tsx +8 -4
- package/src/app/builder/use-builder-catalogue.ts +62 -19
- package/src/app/builder/use-builder-session.ts +68 -0
- package/src/app/builder/use-display-resolver.ts +24 -0
- package/src/app/builder/use-save-dashboard.ts +5 -0
- package/src/app/index.ts +20 -3
- package/src/app/layout-builder.tsx +193 -186
- package/src/app/mcp-app-view-chrome.test.tsx +487 -14
- package/src/app/mcp-app-view-chrome.tsx +328 -100
- package/src/app/mcp-app-view-states.tsx +140 -0
- package/src/app/mcp-app-view.effects.test.tsx +292 -0
- package/src/app/mcp-app-view.test.tsx +478 -0
- package/src/app/mcp-app-view.tsx +447 -190
- package/src/app/mcp-toolkit-app.test.tsx +40 -0
- package/src/app/mcp-toolkit-app.tsx +39 -8
- 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 +122 -0
- package/src/app/view-lifecycle.test.ts +443 -0
- package/src/app/view-lifecycle.ts +334 -0
- 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 +67 -39
- package/src/app/widget-renderer.render.test.tsx +131 -0
- package/src/app/widget-renderer.tsx +136 -38
- package/src/components/DrillButton.tsx +24 -10
- package/src/components/EmptyState.tsx +83 -0
- package/src/components/ErrorState.tsx +204 -0
- package/src/components/FilterBar.test.tsx +82 -0
- package/src/components/FilterBar.tsx +56 -27
- package/src/components/GroupCard.tsx +3 -2
- package/src/components/KpiGrid.test.tsx +279 -0
- package/src/components/KpiGrid.tsx +329 -91
- package/src/components/ListFooter.test.tsx +116 -0
- package/src/components/ListFooter.tsx +110 -12
- 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 +78 -16
- package/src/components/SectionHeading.tsx +9 -3
- package/src/components/Toast.tsx +206 -0
- package/src/components/WidgetHeader.test.tsx +78 -0
- package/src/components/WidgetHeader.tsx +63 -16
- package/src/components/feedback-states.test.tsx +314 -0
- package/src/components/tone-figures.test.tsx +58 -0
- package/src/fonts.css +19 -0
- package/src/globals.css +9 -165
- 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 +28 -5
- package/src/hooks/use-tool-result-recovery.ts +101 -131
- package/src/hooks/use-view-data.test.tsx +169 -0
- package/src/hooks/use-view-data.ts +131 -10
- package/src/hooks/use-view-tool-query.ts +25 -19
- package/src/i18n-coverage.test.tsx +425 -0
- package/src/index.ts +102 -13
- package/src/lib/focus-return.test.ts +288 -0
- package/src/lib/focus-return.ts +96 -0
- package/src/lib/focus-ring.ts +20 -0
- package/src/lib/icon-stroke.test.ts +59 -0
- package/src/lib/icon-stroke.ts +13 -0
- package/src/lib/parse-tool-result.test.ts +46 -1
- package/src/lib/parse-tool-result.ts +40 -2
- package/src/lib/toast-model.test.ts +233 -0
- package/src/lib/toast-model.ts +165 -0
- package/src/lib/tone-utils.test.ts +125 -16
- package/src/lib/tone-utils.ts +144 -15
- 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 +14 -1
- package/src/locale/locale-provider.test.tsx +87 -0
- package/src/locale/locale-provider.tsx +90 -3
- package/src/locale/message-types.ts +337 -0
- package/src/locale/messages-de.ts +198 -0
- package/src/locale/messages-en.ts +196 -0
- package/src/locale/toolkit-messages.test.ts +349 -0
- package/src/locale/toolkit-messages.ts +143 -0
- package/src/no-hardcoded-copy.test.ts +432 -0
- package/src/primitives/alert.tsx +7 -2
- package/src/primitives/badge.tsx +19 -7
- package/src/primitives/button.tsx +13 -8
- package/src/primitives/card.tsx +4 -4
- package/src/primitives/dialog.tsx +42 -8
- package/src/primitives/input.tsx +5 -3
- package/src/primitives/scroll-area.tsx +1 -1
- package/src/primitives/select.tsx +7 -4
- package/src/primitives/sheet.tsx +33 -6
- package/src/primitives/skeleton.tsx +1 -1
- package/src/primitives/switch.tsx +4 -2
- package/src/primitives/tabs.tsx +9 -6
- 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 +82 -6
- package/src/render-effects.tsx +96 -0
- package/src/render-scan.ts +75 -0
- package/src/theme/cd-tokens.generated.css +48 -0
- package/src/theme/cd-tokens.test.ts +109 -0
- package/src/theme/cd-tokens.ts +67 -0
- package/src/theme/create-theme.test.ts +253 -5
- package/src/theme/create-theme.ts +341 -41
- package/src/theme/fonts.test.ts +85 -0
- package/src/theme/fonts.ts +72 -0
- package/src/theme/host-fonts.test.ts +135 -0
- package/src/theme/host-fonts.ts +52 -0
- package/src/theme/index.ts +15 -1
- package/src/theme/portal-container.ts +20 -0
- package/src/theme/presets.ts +44 -11
- package/src/theme/theme-css.test.ts +619 -0
- package/src/theme/theme-provider.test.tsx +82 -0
- package/src/theme/theme-provider.tsx +60 -24
- package/src/theme.css +344 -0
- package/ui-catalog.json +783 -49
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { normalizeLayout } from "@miragon/mcp-toolkit-core";
|
|
1
|
+
import { normalizeLayout, PROPS_SCHEMA_DISPLAY_KEYWORD, resolveLocalizedText, } from "@miragon/mcp-toolkit-core";
|
|
2
2
|
// -------------------------------------------------------------------------- //
|
|
3
3
|
// Draft <-> layout conversions
|
|
4
4
|
// -------------------------------------------------------------------------- //
|
|
@@ -92,17 +92,18 @@ export function entriesToKeys(entries) {
|
|
|
92
92
|
* Compact preview of a value as it currently lives in the pipeline.
|
|
93
93
|
* Used as the placeholder when the editor's `rawValue` is empty so the
|
|
94
94
|
* user can see what the server is actually working with right now
|
|
95
|
-
* without the editor overwriting their (empty) input.
|
|
95
|
+
* without the editor overwriting their (empty) input. `prefix` is the
|
|
96
|
+
* localized word for "live" (the builder passes its catalog's).
|
|
96
97
|
*/
|
|
97
|
-
export function formatLiveKeyValue(value) {
|
|
98
|
+
export function formatLiveKeyValue(value, prefix = "live") {
|
|
98
99
|
if (value === undefined)
|
|
99
100
|
return undefined;
|
|
100
101
|
if (value === "")
|
|
101
102
|
return undefined;
|
|
102
103
|
if (typeof value === "string")
|
|
103
|
-
return
|
|
104
|
+
return `${prefix}: ${value}`;
|
|
104
105
|
try {
|
|
105
|
-
return
|
|
106
|
+
return `${prefix}: ${JSON.stringify(value)}`;
|
|
106
107
|
}
|
|
107
108
|
catch {
|
|
108
109
|
return undefined;
|
|
@@ -171,4 +172,194 @@ export function toPipelineContext(ctx) {
|
|
|
171
172
|
}
|
|
172
173
|
return { steps, keys: ctx.keys, errors: ctx.errors };
|
|
173
174
|
}
|
|
175
|
+
/**
|
|
176
|
+
* A {@link DisplayKeyResolver} over a translate function that echoes unknown
|
|
177
|
+
* keys (the `createTranslator` / `useTranslate` contract): the echo, or a
|
|
178
|
+
* blank result, means "unknown", so the caller falls back to its inline text.
|
|
179
|
+
*/
|
|
180
|
+
export function keyResolverFrom(translate) {
|
|
181
|
+
return (key) => {
|
|
182
|
+
const text = translate(key).trim();
|
|
183
|
+
return text.length > 0 && text !== key ? text : undefined;
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* The i18n key's text when the resolver knows it, else the inline (per-locale)
|
|
188
|
+
* text. Display text crosses the wire (the catalogue, a `propsSchema`), so a
|
|
189
|
+
* key that is not a string is ignored instead of reaching the translator.
|
|
190
|
+
*/
|
|
191
|
+
function keyedText(key, text, locale, resolveKey) {
|
|
192
|
+
const viaKey = typeof key === "string" && resolveKey ? resolveKey(key) : undefined;
|
|
193
|
+
return viaKey ?? resolveLocalizedText(text, locale);
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* The builder's name for a widget or a step: its `titleKey` (when `resolveKey`
|
|
197
|
+
* knows it), its `title` in `locale`, else the id. The id comes back as `hint`
|
|
198
|
+
* only next to a real title. The `description` is the LLM's text and never
|
|
199
|
+
* appears here.
|
|
200
|
+
*/
|
|
201
|
+
export function displayLabel(entry, id, locale, resolveKey) {
|
|
202
|
+
const title = keyedText(entry.titleKey, entry.title, locale, resolveKey);
|
|
203
|
+
const summary = keyedText(entry.summaryKey, entry.summary, locale, resolveKey);
|
|
204
|
+
return {
|
|
205
|
+
label: title ?? id,
|
|
206
|
+
...(title !== undefined && title !== id ? { hint: id } : {}),
|
|
207
|
+
...(summary !== undefined ? { summary } : {}),
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
function isRecord(value) {
|
|
211
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* The props sheet's text for one `propsSchema` property. Label: the
|
|
215
|
+
* `x-display` title (key or text), else the standard JSON Schema `title`,
|
|
216
|
+
* else the property name. Help: the `x-display` summary, else the property's
|
|
217
|
+
* `description`.
|
|
218
|
+
*/
|
|
219
|
+
export function propFieldText(name, prop, locale, resolveKey) {
|
|
220
|
+
const raw = prop[PROPS_SCHEMA_DISPLAY_KEYWORD];
|
|
221
|
+
const display = isRecord(raw) ? raw : {};
|
|
222
|
+
const schemaTitle = typeof prop.title === "string" ? prop.title : undefined;
|
|
223
|
+
const label = keyedText(display.titleKey, display.title, locale, resolveKey) ??
|
|
224
|
+
resolveLocalizedText(schemaTitle, locale) ??
|
|
225
|
+
name;
|
|
226
|
+
const schemaHelp = typeof prop.description === "string" ? prop.description : undefined;
|
|
227
|
+
const help = keyedText(display.summaryKey, display.summary, locale, resolveKey) ??
|
|
228
|
+
resolveLocalizedText(schemaHelp, locale);
|
|
229
|
+
return {
|
|
230
|
+
label,
|
|
231
|
+
...(label !== name ? { hint: name } : {}),
|
|
232
|
+
...(help !== undefined ? { help } : {}),
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
// -------------------------------------------------------------------------- //
|
|
236
|
+
// Draft status — what Apply, Discard and the unsaved marker compare
|
|
237
|
+
// -------------------------------------------------------------------------- //
|
|
238
|
+
/**
|
|
239
|
+
* Whether the draft holds at least one element on ANY tab, not only the
|
|
240
|
+
* active one: a new, still empty tab must not disable "Save as dashboard" or
|
|
241
|
+
* the preview while another tab has content.
|
|
242
|
+
*/
|
|
243
|
+
export function draftHasCells(draft) {
|
|
244
|
+
const rows = draft.kind === "tabs" ? draft.tabs.flatMap((t) => t.rows) : draft.rows;
|
|
245
|
+
return rows.some((r) => r.row.length > 0);
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* A comparable fingerprint of what Apply and Save hand on: the layout, the
|
|
249
|
+
* keys (blank names dropped, values parsed) and the steps that name a step.
|
|
250
|
+
* An empty key or step row the user has not filled in changes nothing.
|
|
251
|
+
*/
|
|
252
|
+
export function builderSnapshot(draft, keyEntries, stepEntries) {
|
|
253
|
+
return JSON.stringify({
|
|
254
|
+
layout: draftToLayout(draft),
|
|
255
|
+
keys: entriesToKeys(keyEntries),
|
|
256
|
+
steps: stepEntries.filter((s) => s.step.trim().length > 0),
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* The commit of Apply: the layout, keys and steps exactly as a save would send
|
|
261
|
+
* them, and the live context in its wire shape (`stepIds` + keyed `stepData`)
|
|
262
|
+
* so the view renders the just-built layout without another round trip.
|
|
263
|
+
*/
|
|
264
|
+
export function toExitCommit(draft, keyEntries, stepEntries, title, live) {
|
|
265
|
+
return {
|
|
266
|
+
layout: draftToLayout(draft),
|
|
267
|
+
keys: entriesToKeys(keyEntries),
|
|
268
|
+
steps: stepEntries.filter((s) => s.step.trim().length > 0),
|
|
269
|
+
title,
|
|
270
|
+
context: {
|
|
271
|
+
keys: live.keys,
|
|
272
|
+
stepIds: Object.keys(live.steps),
|
|
273
|
+
stepData: Object.fromEntries(Object.entries(live.steps).map(([id, result]) => [
|
|
274
|
+
id,
|
|
275
|
+
{ data: result.data, keys: result.keys, _app: result._app, _dataType: result._dataType },
|
|
276
|
+
])),
|
|
277
|
+
errors: live.errors,
|
|
278
|
+
},
|
|
279
|
+
};
|
|
280
|
+
}
|
|
281
|
+
/** Compares the current {@link builderSnapshot} with the pre-edit one and the last saved one. */
|
|
282
|
+
export function draftStatus(current, baseline, saved) {
|
|
283
|
+
const changed = current !== baseline;
|
|
284
|
+
return { changed, unsaved: changed && current !== saved };
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* The builder's leave actions. Apply hands `commit()` to `onExit`. Discard
|
|
288
|
+
* calls `onExit()` WITHOUT a commit, so the view stays as it was before
|
|
289
|
+
* editing; without `onExit` it calls `onReset()`, which restores the draft in
|
|
290
|
+
* place. Discard asks first (`confirm`) only when the draft `changed` the
|
|
291
|
+
* view: a draft that matches the view before editing loses nothing, even when
|
|
292
|
+
* it differs from a saved dashboard.
|
|
293
|
+
*/
|
|
294
|
+
export function builderLeave({ changed, onExit, onReset, commit, confirm, }) {
|
|
295
|
+
// Never hands its own arguments on: a click event must not reach `onExit` as a commit.
|
|
296
|
+
const discardNow = () => {
|
|
297
|
+
if (onExit)
|
|
298
|
+
onExit();
|
|
299
|
+
else
|
|
300
|
+
onReset();
|
|
301
|
+
};
|
|
302
|
+
return {
|
|
303
|
+
...(onExit ? { apply: () => onExit(commit()) } : {}),
|
|
304
|
+
discard: () => {
|
|
305
|
+
if (changed)
|
|
306
|
+
confirm();
|
|
307
|
+
else
|
|
308
|
+
discardNow();
|
|
309
|
+
},
|
|
310
|
+
discardNow,
|
|
311
|
+
};
|
|
312
|
+
}
|
|
313
|
+
// -------------------------------------------------------------------------- //
|
|
314
|
+
// Keyboard — tab rename without a double-click
|
|
315
|
+
// -------------------------------------------------------------------------- //
|
|
316
|
+
/**
|
|
317
|
+
* What a key press on a tab trigger does: F2 renames any tab; Enter renames
|
|
318
|
+
* the tab that is already active (on another tab Enter keeps selecting it,
|
|
319
|
+
* the tabs' own behaviour). `null` leaves the key to the tabs.
|
|
320
|
+
*/
|
|
321
|
+
export function tabTriggerKeyAction(key, isActive) {
|
|
322
|
+
if (key === "F2")
|
|
323
|
+
return "rename";
|
|
324
|
+
if (key === "Enter" && isActive)
|
|
325
|
+
return "rename";
|
|
326
|
+
return null;
|
|
327
|
+
}
|
|
328
|
+
/** What a key press in a tab's rename field does: Enter commits, Escape cancels. */
|
|
329
|
+
export function renameFieldKeyAction(key) {
|
|
330
|
+
if (key === "Enter")
|
|
331
|
+
return "commit";
|
|
332
|
+
if (key === "Escape")
|
|
333
|
+
return "cancel";
|
|
334
|
+
return null;
|
|
335
|
+
}
|
|
336
|
+
/** A {@link TabRefocus} with no open request. */
|
|
337
|
+
export function createTabRefocus() {
|
|
338
|
+
let pending = null;
|
|
339
|
+
const request = (tabIdx) => {
|
|
340
|
+
pending = tabIdx;
|
|
341
|
+
};
|
|
342
|
+
const attach = (tabIdx, el) => {
|
|
343
|
+
if (el === null || pending !== tabIdx)
|
|
344
|
+
return;
|
|
345
|
+
pending = null;
|
|
346
|
+
el.focus();
|
|
347
|
+
};
|
|
348
|
+
return {
|
|
349
|
+
request,
|
|
350
|
+
attach,
|
|
351
|
+
forTab: (tabIdx) => ({
|
|
352
|
+
triggerRef: (el) => attach(tabIdx, el),
|
|
353
|
+
onRefocus: () => request(tabIdx),
|
|
354
|
+
}),
|
|
355
|
+
};
|
|
356
|
+
}
|
|
357
|
+
/** The builder's views in tab order: the data sources ("pipeline") only in advanced mode. */
|
|
358
|
+
export function builderViews(advanced) {
|
|
359
|
+
return advanced ? ["layout", "pipeline", "preview"] : ["layout", "preview"];
|
|
360
|
+
}
|
|
361
|
+
/** The view to show after advanced mode switches: a view that is now hidden falls back to the layout. */
|
|
362
|
+
export function viewAfterAdvancedToggle(view, advanced) {
|
|
363
|
+
return builderViews(advanced).includes(view) ? view : "layout";
|
|
364
|
+
}
|
|
174
365
|
//# sourceMappingURL=builder-model.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder-model.js","sourceRoot":"","sources":["../../../src/app/builder/builder-model.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"builder-model.js","sourceRoot":"","sources":["../../../src/app/builder/builder-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,69 +4,20 @@
|
|
|
4
4
|
* Extracted from `layout-builder.tsx` so the presentational sub-components
|
|
5
5
|
* (Toolbar, PipelineStrip, Workspace, CatalogueSheet, SaveDialog, PreviewPane)
|
|
6
6
|
* can depend on the labels without importing the orchestrating container —
|
|
7
|
-
* which would create an import cycle. React-free and `mcp-use`-free.
|
|
7
|
+
* which would create an import cycle. React-free and `mcp-use`-free. The
|
|
8
|
+
* strings themselves live in the toolkit catalog (`locale/messages-*.ts`).
|
|
9
|
+
*/
|
|
10
|
+
import { type BuilderMessages } from "../../locale/toolkit-messages.js";
|
|
11
|
+
/**
|
|
12
|
+
* Override strings for every user-facing caption in the builder. Each field
|
|
13
|
+
* defaults to the active locale's toolkit catalog (`useToolkitMessages().builder`).
|
|
14
|
+
*/
|
|
15
|
+
export type LayoutBuilderLabels = Partial<BuilderMessages>;
|
|
16
|
+
/**
|
|
17
|
+
* English builder strings.
|
|
18
|
+
* @deprecated Read the active locale's strings with `useToolkitMessages().builder`
|
|
19
|
+
* (or `TOOLKIT_MESSAGES.en.builder`); this alias stays for existing imports.
|
|
8
20
|
*/
|
|
9
|
-
export interface LayoutBuilderLabels {
|
|
10
|
-
title?: string;
|
|
11
|
-
builderBadge?: string;
|
|
12
|
-
previewBadge?: string;
|
|
13
|
-
catalogue?: string;
|
|
14
|
-
save?: string;
|
|
15
|
-
done?: string;
|
|
16
|
-
viewLayoutTab?: string;
|
|
17
|
-
viewPipelineTab?: string;
|
|
18
|
-
viewPreviewTab?: string;
|
|
19
|
-
saveDialogTitle?: string;
|
|
20
|
-
saveDialogDescription?: string;
|
|
21
|
-
saveNameLabel?: string;
|
|
22
|
-
saveDescriptionLabel?: string;
|
|
23
|
-
saveConfirm?: string;
|
|
24
|
-
cancel?: string;
|
|
25
|
-
pipelineHeader?: string;
|
|
26
|
-
keysHeader?: string;
|
|
27
|
-
stepsHeader?: string;
|
|
28
|
-
keyName?: string;
|
|
29
|
-
keyValue?: string;
|
|
30
|
-
stepContextId?: string;
|
|
31
|
-
stepPickerLabel?: string;
|
|
32
|
-
addKey?: string;
|
|
33
|
-
addStep?: string;
|
|
34
|
-
emptyKeys?: string;
|
|
35
|
-
emptySteps?: string;
|
|
36
|
-
statusUpToDate?: string;
|
|
37
|
-
statusPending?: string;
|
|
38
|
-
statusRefreshing?: string;
|
|
39
|
-
paletteHeader?: string;
|
|
40
|
-
paletteEmpty?: string;
|
|
41
|
-
canvasEmpty?: string;
|
|
42
|
-
canvasDropHint?: string;
|
|
43
|
-
addRow?: string;
|
|
44
|
-
addTab?: string;
|
|
45
|
-
removeRow?: string;
|
|
46
|
-
renameTab?: string;
|
|
47
|
-
removeTab?: string;
|
|
48
|
-
tabsLabel?: string;
|
|
49
|
-
catalogueDescription?: string;
|
|
50
|
-
catalogueKeys?: string;
|
|
51
|
-
catalogueSteps?: string;
|
|
52
|
-
catalogueUnreachable?: string;
|
|
53
|
-
catalogueUnreachableEmpty?: string;
|
|
54
|
-
catalogueProducedBy?: string;
|
|
55
|
-
catalogueConsumedBy?: string;
|
|
56
|
-
catalogueNeedsKeys?: string;
|
|
57
|
-
cataloguePickKey?: string;
|
|
58
|
-
catalogueAddProducingStep?: string;
|
|
59
|
-
catalogueLive?: string;
|
|
60
|
-
catalogueMissing?: string;
|
|
61
|
-
/** Banner shown when the catalogue fetch fails (prefixes the reason). */
|
|
62
|
-
catalogueError?: string;
|
|
63
|
-
/** Heading for the pipeline-validation warning banner. */
|
|
64
|
-
validationWarning?: string;
|
|
65
|
-
/** Inline message when a save fails (prefixes the reason). */
|
|
66
|
-
saveError?: string;
|
|
67
|
-
/** Inline message when a tab rename is rejected (duplicate label). */
|
|
68
|
-
renameDuplicate?: string;
|
|
69
|
-
}
|
|
70
21
|
export declare const DEFAULT_LABELS: Required<LayoutBuilderLabels>;
|
|
71
22
|
/**
|
|
72
23
|
* MIME type used to carry a widget id across the palette → canvas drag.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"labels.d.ts","sourceRoot":"","sources":["../../../src/app/builder/labels.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"labels.d.ts","sourceRoot":"","sources":["../../../src/app/builder/labels.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAoB,KAAK,eAAe,EAAE,MAAM,kCAAkC,CAAA;AAEzF;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;AAE1D;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,mBAAmB,CAA+B,CAAA;AAExF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,gCAAgC,CAAA;AAE7D,qEAAqE;AACrE,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,SAAS,GAAG,YAAY,CAAA"}
|
|
@@ -4,65 +4,16 @@
|
|
|
4
4
|
* Extracted from `layout-builder.tsx` so the presentational sub-components
|
|
5
5
|
* (Toolbar, PipelineStrip, Workspace, CatalogueSheet, SaveDialog, PreviewPane)
|
|
6
6
|
* can depend on the labels without importing the orchestrating container —
|
|
7
|
-
* which would create an import cycle. React-free and `mcp-use`-free.
|
|
7
|
+
* which would create an import cycle. React-free and `mcp-use`-free. The
|
|
8
|
+
* strings themselves live in the toolkit catalog (`locale/messages-*.ts`).
|
|
8
9
|
*/
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
viewLayoutTab: "Layout",
|
|
17
|
-
viewPipelineTab: "Pipeline",
|
|
18
|
-
viewPreviewTab: "Preview",
|
|
19
|
-
saveDialogTitle: "Save dashboard",
|
|
20
|
-
saveDialogDescription: "Persists the current layout along with the keys and steps that populate it.",
|
|
21
|
-
saveNameLabel: "Name",
|
|
22
|
-
saveDescriptionLabel: "Description",
|
|
23
|
-
saveConfirm: "Save dashboard",
|
|
24
|
-
cancel: "Cancel",
|
|
25
|
-
pipelineHeader: "Pipeline",
|
|
26
|
-
keysHeader: "Keys",
|
|
27
|
-
stepsHeader: "Steps",
|
|
28
|
-
keyName: "key",
|
|
29
|
-
keyValue: 'value, "literal", true, {…}',
|
|
30
|
-
stepContextId: "ctx id",
|
|
31
|
-
stepPickerLabel: "pick a step",
|
|
32
|
-
addKey: "Add key",
|
|
33
|
-
addStep: "Add step",
|
|
34
|
-
emptyKeys: "No keys seeded.",
|
|
35
|
-
emptySteps: "No steps configured.",
|
|
36
|
-
statusUpToDate: "Up to date",
|
|
37
|
-
statusPending: "Applying soon…",
|
|
38
|
-
statusRefreshing: "Applying…",
|
|
39
|
-
paletteHeader: "Palette",
|
|
40
|
-
paletteEmpty: "No widgets reachable yet — seed a key or add a step.",
|
|
41
|
-
canvasEmpty: "Drag a widget here, or click one in the palette.",
|
|
42
|
-
canvasDropHint: "Drop to add",
|
|
43
|
-
addRow: "Add row",
|
|
44
|
-
addTab: "Add tab",
|
|
45
|
-
removeRow: "Remove row",
|
|
46
|
-
renameTab: "Rename tab",
|
|
47
|
-
removeTab: "Remove tab",
|
|
48
|
-
tabsLabel: "Tabs",
|
|
49
|
-
catalogueDescription: "Every key and widget the framework knows about, whether or not it's reachable right now.",
|
|
50
|
-
catalogueKeys: "Keys",
|
|
51
|
-
catalogueSteps: "Steps",
|
|
52
|
-
catalogueUnreachable: "Unreachable widgets",
|
|
53
|
-
catalogueUnreachableEmpty: "Every registered widget is reachable.",
|
|
54
|
-
catalogueProducedBy: "produced by",
|
|
55
|
-
catalogueConsumedBy: "consumed by",
|
|
56
|
-
catalogueNeedsKeys: "needs",
|
|
57
|
-
cataloguePickKey: "Add as key",
|
|
58
|
-
catalogueAddProducingStep: "Add producing step",
|
|
59
|
-
catalogueLive: "live",
|
|
60
|
-
catalogueMissing: "missing",
|
|
61
|
-
catalogueError: "Couldn't refresh the builder catalogue",
|
|
62
|
-
validationWarning: "This pipeline won't render as configured",
|
|
63
|
-
saveError: "Couldn't save",
|
|
64
|
-
renameDuplicate: "A tab with that name already exists.",
|
|
65
|
-
};
|
|
10
|
+
import { TOOLKIT_MESSAGES } from "../../locale/toolkit-messages.js";
|
|
11
|
+
/**
|
|
12
|
+
* English builder strings.
|
|
13
|
+
* @deprecated Read the active locale's strings with `useToolkitMessages().builder`
|
|
14
|
+
* (or `TOOLKIT_MESSAGES.en.builder`); this alias stays for existing imports.
|
|
15
|
+
*/
|
|
16
|
+
export const DEFAULT_LABELS = TOOLKIT_MESSAGES.en.builder;
|
|
66
17
|
/**
|
|
67
18
|
* MIME type used to carry a widget id across the palette → canvas drag.
|
|
68
19
|
* Shared between the palette items and the canvas drop targets.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"labels.js","sourceRoot":"","sources":["../../../src/app/builder/labels.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"labels.js","sourceRoot":"","sources":["../../../src/app/builder/labels.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,gBAAgB,EAAwB,MAAM,kCAAkC,CAAA;AAQzF;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAkC,gBAAgB,CAAC,EAAE,CAAC,OAAO,CAAA;AAExF;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,6BAA6B,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Secondary builder controls (row, tab and cell actions) stay quiet until the
|
|
3
|
+
* pointer is over their group or focus is anywhere inside it, and are always
|
|
4
|
+
* visible where nothing can hover (touch screens). Spread it on the controls'
|
|
5
|
+
* container inside an element with `group`; a control that is never revealed
|
|
6
|
+
* by hover alone is a CI §12 rule ("alles per Tastatur bedienbar"), guarded by
|
|
7
|
+
* `builder-ux.test.tsx`.
|
|
8
|
+
*/
|
|
9
|
+
export declare const REVEAL_ON_INTENT = "opacity-0 transition-opacity group-hover:opacity-100 group-focus-within:opacity-100 focus-within:opacity-100 [@media(hover:none)]:opacity-100";
|
|
10
|
+
//# sourceMappingURL=reveal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reveal.d.ts","sourceRoot":"","sources":["../../../src/app/builder/reveal.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,kJACoH,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Secondary builder controls (row, tab and cell actions) stay quiet until the
|
|
3
|
+
* pointer is over their group or focus is anywhere inside it, and are always
|
|
4
|
+
* visible where nothing can hover (touch screens). Spread it on the controls'
|
|
5
|
+
* container inside an element with `group`; a control that is never revealed
|
|
6
|
+
* by hover alone is a CI §12 rule ("alles per Tastatur bedienbar"), guarded by
|
|
7
|
+
* `builder-ux.test.tsx`.
|
|
8
|
+
*/
|
|
9
|
+
export const REVEAL_ON_INTENT = "opacity-0 transition-opacity group-hover:opacity-100 group-focus-within:opacity-100 focus-within:opacity-100 [@media(hover:none)]:opacity-100";
|
|
10
|
+
//# sourceMappingURL=reveal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reveal.js","sourceRoot":"","sources":["../../../src/app/builder/reveal.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAC3B,+IAA+I,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status-chip.d.ts","sourceRoot":"","sources":["../../../src/app/builder/status-chip.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"status-chip.d.ts","sourceRoot":"","sources":["../../../src/app/builder/status-chip.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAErE;;;GAGG;AACH,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,CAAC,GACF,EAAE;IACD,MAAM,EAAE,aAAa,CAAA;IACrB,CAAC,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAA;CACjC,+BA0BA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { CircleDot, Loader2 } from "lucide-react";
|
|
3
|
+
import { TONE_DOT, TONE_TEXT } from "../../lib/tone-utils.js";
|
|
3
4
|
/**
|
|
4
5
|
* Compact auto-apply status chip. Shared by the Toolbar and the
|
|
5
6
|
* PipelineStrip so both surfaces show the same refresh state.
|
|
@@ -9,8 +10,8 @@ export function StatusChip({ status, L, }) {
|
|
|
9
10
|
return (_jsxs("span", { className: "text-muted-foreground inline-flex items-center gap-1.5", children: [_jsx(CircleDot, { className: "size-3" }), L.statusUpToDate] }));
|
|
10
11
|
}
|
|
11
12
|
if (status === "pending") {
|
|
12
|
-
return (_jsxs("span", { className:
|
|
13
|
+
return (_jsxs("span", { className: `inline-flex items-center gap-1.5 ${TONE_TEXT.warning}`, children: [_jsx("span", { "aria-hidden": "true", className: `size-1.5 animate-pulse rounded-full ${TONE_DOT.warning}` }), L.statusPending] }));
|
|
13
14
|
}
|
|
14
|
-
return (_jsxs("span", { className:
|
|
15
|
+
return (_jsxs("span", { className: `inline-flex items-center gap-1.5 ${TONE_TEXT.info}`, children: [_jsx(Loader2, { "aria-hidden": "true", className: "size-3 animate-spin" }), L.statusRefreshing] }));
|
|
15
16
|
}
|
|
16
17
|
//# sourceMappingURL=status-chip.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status-chip.js","sourceRoot":"","sources":["../../../src/app/builder/status-chip.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"status-chip.js","sourceRoot":"","sources":["../../../src/app/builder/status-chip.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAG7D;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,EACzB,MAAM,EACN,CAAC,GAIF;IACC,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO,CACL,gBAAM,SAAS,EAAC,wDAAwD,aACtE,KAAC,SAAS,IAAC,SAAS,EAAC,QAAQ,GAAG,EAC/B,CAAC,CAAC,cAAc,IACZ,CACR,CAAA;IACH,CAAC;IACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,CACL,gBAAM,SAAS,EAAE,oCAAoC,SAAS,CAAC,OAAO,EAAE,aACtE,8BACc,MAAM,EAClB,SAAS,EAAE,uCAAuC,QAAQ,CAAC,OAAO,EAAE,GACpE,EACD,CAAC,CAAC,aAAa,IACX,CACR,CAAA;IACH,CAAC;IACD,OAAO,CACL,gBAAM,SAAS,EAAE,oCAAoC,SAAS,CAAC,IAAI,EAAE,aACnE,KAAC,OAAO,mBAAa,MAAM,EAAC,SAAS,EAAC,qBAAqB,GAAG,EAC7D,CAAC,CAAC,gBAAgB,IACd,CACR,CAAA;AACH,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AvailableStep, KeyCatalogEntry, PipelineContext, PipelineStepRef, ReachableWidget, UnreachableWidget } from "@miragon/mcp-toolkit-core";
|
|
1
|
+
import type { AvailableStep, DisplayText, KeyCatalogEntry, PipelineContext, PipelineStepRef, ReachableWidget, UnreachableWidget } from "@miragon/mcp-toolkit-core";
|
|
2
2
|
import { type KeyEntry } from "./builder-model.js";
|
|
3
3
|
import type { RefreshStatus } from "./labels.js";
|
|
4
4
|
/**
|
|
@@ -23,9 +23,13 @@ export declare function useBuilderCatalogue({ callTool, catalogueToolName, keyEn
|
|
|
23
23
|
liveContext: PipelineContext;
|
|
24
24
|
validationIssues: string[];
|
|
25
25
|
status: RefreshStatus;
|
|
26
|
+
loaded: boolean;
|
|
26
27
|
refreshError: string | null;
|
|
28
|
+
retryCatalogue: () => void;
|
|
27
29
|
widgetById: Map<string, ReachableWidget>;
|
|
28
30
|
propsSchemaByWidgetId: Map<string, Record<string, unknown>>;
|
|
31
|
+
displayByWidgetId: Map<string, DisplayText>;
|
|
32
|
+
appDisplayByName: Map<string, DisplayText>;
|
|
29
33
|
paletteByApp: [string, ReachableWidget[]][];
|
|
30
34
|
liveKeyCount: number;
|
|
31
35
|
stepsByApp: [string, AvailableStep[]][];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-builder-catalogue.d.ts","sourceRoot":"","sources":["../../../src/app/builder/use-builder-catalogue.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,
|
|
1
|
+
{"version":3,"file":"use-builder-catalogue.d.ts","sourceRoot":"","sources":["../../../src/app/builder/use-builder-catalogue.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EAEb,WAAW,EACX,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,EACf,iBAAiB,EAClB,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAGL,KAAK,QAAQ,EAEd,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAmBhD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,EACR,iBAAiB,EACjB,UAAU,EACV,WAAW,GACZ,EAAE;IACD,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IAC1D,iBAAiB,EAAE,MAAM,CAAA;IACzB,UAAU,EAAE,QAAQ,EAAE,CAAA;IACtB,WAAW,EAAE,eAAe,EAAE,CAAA;CAC/B;;;;;;;;;;;;;;;;;;EA6KA"}
|
|
@@ -22,6 +22,9 @@ export function useBuilderCatalogue({ callTool, catalogueToolName, keyEntries, s
|
|
|
22
22
|
const [liveCatalog, setLiveCatalog] = useState([]);
|
|
23
23
|
const [liveSteps, setLiveSteps] = useState([]);
|
|
24
24
|
const [liveContext, setLiveContext] = useState(EMPTY_CONTEXT);
|
|
25
|
+
// The titled apps (the palette's group headings); the catalogue leaves the
|
|
26
|
+
// field out when no app has a title.
|
|
27
|
+
const [liveApps, setLiveApps] = useState([]);
|
|
25
28
|
// Pipeline validation issues from the catalogue (Finding [10]/[6]). The
|
|
26
29
|
// catalogue is fail-soft, but `render-view` is fail-hard, so we surface
|
|
27
30
|
// these so the user sees — before committing — that the pipeline as
|
|
@@ -33,6 +36,31 @@ export function useBuilderCatalogue({ callTool, catalogueToolName, keyEntries, s
|
|
|
33
36
|
// instead of only `console.warn`-ing, so the user knows the palette/context
|
|
34
37
|
// may be stale. Cleared on the next successful refresh.
|
|
35
38
|
const [refreshError, setRefreshError] = useState(null);
|
|
39
|
+
// The first fetch has settled (answer or failure). Until then the palette
|
|
40
|
+
// shows a loading state, not "no elements" (CI §9: a skeleton while loading).
|
|
41
|
+
const [loaded, setLoaded] = useState(false);
|
|
42
|
+
// Takes over what one catalogue response carries; a field it lacks keeps
|
|
43
|
+
// the last snapshot.
|
|
44
|
+
const applySnapshot = useCallback((sc) => {
|
|
45
|
+
if (sc?.reachableWidgets)
|
|
46
|
+
setLiveReachable(sc.reachableWidgets);
|
|
47
|
+
if (sc?.unreachableWidgets)
|
|
48
|
+
setLiveUnreachable(sc.unreachableWidgets);
|
|
49
|
+
if (sc?.availableSteps)
|
|
50
|
+
setLiveSteps(sc.availableSteps);
|
|
51
|
+
if (sc?.keyCatalog)
|
|
52
|
+
setLiveCatalog(sc.keyCatalog);
|
|
53
|
+
if (sc?.context)
|
|
54
|
+
setLiveContext(toPipelineContext(sc.context));
|
|
55
|
+
// Absent `apps` means no app has a title (not "unchanged").
|
|
56
|
+
if (sc)
|
|
57
|
+
setLiveApps(sc.apps ?? []);
|
|
58
|
+
// Pipeline issues are fail-soft in the catalogue but fail-hard in
|
|
59
|
+
// render-view; surface them so the user sees the render path wouldn't
|
|
60
|
+
// run as configured (Finding [10]/[6]). Coerce undefined → [] so a
|
|
61
|
+
// fixed pipeline clears a previously-shown warning.
|
|
62
|
+
setValidationIssues(sc?.validationIssues ?? []);
|
|
63
|
+
}, []);
|
|
36
64
|
const refreshBuilder = useCallback(async () => {
|
|
37
65
|
setStatus("refreshing");
|
|
38
66
|
try {
|
|
@@ -40,22 +68,7 @@ export function useBuilderCatalogue({ callTool, catalogueToolName, keyEntries, s
|
|
|
40
68
|
keys: entriesToKeys(keyEntries),
|
|
41
69
|
steps: stepEntries.filter((s) => s.step.trim().length > 0),
|
|
42
70
|
});
|
|
43
|
-
|
|
44
|
-
if (sc?.reachableWidgets)
|
|
45
|
-
setLiveReachable(sc.reachableWidgets);
|
|
46
|
-
if (sc?.unreachableWidgets)
|
|
47
|
-
setLiveUnreachable(sc.unreachableWidgets);
|
|
48
|
-
if (sc?.availableSteps)
|
|
49
|
-
setLiveSteps(sc.availableSteps);
|
|
50
|
-
if (sc?.keyCatalog)
|
|
51
|
-
setLiveCatalog(sc.keyCatalog);
|
|
52
|
-
if (sc?.context)
|
|
53
|
-
setLiveContext(toPipelineContext(sc.context));
|
|
54
|
-
// Pipeline issues are fail-soft in the catalogue but fail-hard in
|
|
55
|
-
// render-view; surface them so the user sees the render path wouldn't
|
|
56
|
-
// run as configured (Finding [10]/[6]). Coerce undefined → [] so a
|
|
57
|
-
// fixed pipeline clears a previously-shown warning.
|
|
58
|
-
setValidationIssues(sc?.validationIssues ?? []);
|
|
71
|
+
applySnapshot(parseToolResult(result));
|
|
59
72
|
// A successful fetch clears any stale failure banner.
|
|
60
73
|
setRefreshError(null);
|
|
61
74
|
}
|
|
@@ -73,12 +86,18 @@ export function useBuilderCatalogue({ callTool, catalogueToolName, keyEntries, s
|
|
|
73
86
|
}
|
|
74
87
|
finally {
|
|
75
88
|
setStatus("idle");
|
|
89
|
+
setLoaded(true);
|
|
76
90
|
}
|
|
77
|
-
}, [catalogueToolName, callTool, keyEntries, stepEntries]);
|
|
91
|
+
}, [applySnapshot, catalogueToolName, callTool, keyEntries, stepEntries]);
|
|
78
92
|
const refreshRef = useRef(refreshBuilder);
|
|
79
93
|
useEffect(() => {
|
|
80
94
|
refreshRef.current = refreshBuilder;
|
|
81
95
|
}, [refreshBuilder]);
|
|
96
|
+
// Retry of the catalogue error state: fetch again right away, with the
|
|
97
|
+
// current keys and steps.
|
|
98
|
+
const retryCatalogue = useCallback(() => {
|
|
99
|
+
void refreshRef.current();
|
|
100
|
+
}, []);
|
|
82
101
|
const isFirstRun = useRef(true);
|
|
83
102
|
useEffect(() => {
|
|
84
103
|
if (isFirstRun.current) {
|
|
@@ -117,6 +136,16 @@ export function useBuilderCatalogue({ callTool, catalogueToolName, keyEntries, s
|
|
|
117
136
|
}
|
|
118
137
|
return map;
|
|
119
138
|
}, [liveReachable, liveUnreachable]);
|
|
139
|
+
// Display text (title, summary, their keys) per widget id, from both lists:
|
|
140
|
+
// a canvas cell or the props sheet may name a widget the current keys do
|
|
141
|
+
// not reach.
|
|
142
|
+
const displayByWidgetId = useMemo(() => {
|
|
143
|
+
const map = new Map();
|
|
144
|
+
for (const w of [...liveUnreachable, ...liveReachable])
|
|
145
|
+
map.set(w.id, w);
|
|
146
|
+
return map;
|
|
147
|
+
}, [liveReachable, liveUnreachable]);
|
|
148
|
+
const appDisplayByName = useMemo(() => new Map(liveApps.map((app) => [app.name, app])), [liveApps]);
|
|
120
149
|
const paletteByApp = useMemo(() => {
|
|
121
150
|
const groups = new Map();
|
|
122
151
|
for (const w of liveReachable) {
|
|
@@ -144,9 +173,13 @@ export function useBuilderCatalogue({ callTool, catalogueToolName, keyEntries, s
|
|
|
144
173
|
liveContext,
|
|
145
174
|
validationIssues,
|
|
146
175
|
status,
|
|
176
|
+
loaded,
|
|
147
177
|
refreshError,
|
|
178
|
+
retryCatalogue,
|
|
148
179
|
widgetById,
|
|
149
180
|
propsSchemaByWidgetId,
|
|
181
|
+
displayByWidgetId,
|
|
182
|
+
appDisplayByName,
|
|
150
183
|
paletteByApp,
|
|
151
184
|
liveKeyCount,
|
|
152
185
|
stepsByApp,
|