@miragon/mcp-toolkit-ui 2.6.0 → 2.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -1
- package/dist/app/builder/BuilderBanners.d.ts +7 -2
- package/dist/app/builder/BuilderBanners.d.ts.map +1 -1
- package/dist/app/builder/BuilderBanners.js +8 -3
- package/dist/app/builder/BuilderBanners.js.map +1 -1
- package/dist/app/builder/CanvasRow.d.ts.map +1 -1
- package/dist/app/builder/CanvasRow.js +12 -14
- package/dist/app/builder/CanvasRow.js.map +1 -1
- package/dist/app/builder/CatalogueSheet.d.ts.map +1 -1
- package/dist/app/builder/CatalogueSheet.js +6 -5
- package/dist/app/builder/CatalogueSheet.js.map +1 -1
- package/dist/app/builder/EmptyHint.d.ts +4 -0
- package/dist/app/builder/EmptyHint.d.ts.map +1 -1
- package/dist/app/builder/EmptyHint.js +6 -1
- package/dist/app/builder/EmptyHint.js.map +1 -1
- package/dist/app/builder/LayoutSurface.js +3 -3
- package/dist/app/builder/LayoutSurface.js.map +1 -1
- package/dist/app/builder/PipelineStrip.d.ts +3 -1
- package/dist/app/builder/PipelineStrip.d.ts.map +1 -1
- package/dist/app/builder/PipelineStrip.js +11 -6
- package/dist/app/builder/PipelineStrip.js.map +1 -1
- package/dist/app/builder/SaveDialog.d.ts.map +1 -1
- package/dist/app/builder/SaveDialog.js +2 -2
- package/dist/app/builder/SaveDialog.js.map +1 -1
- package/dist/app/builder/Toolbar.d.ts +3 -1
- package/dist/app/builder/Toolbar.d.ts.map +1 -1
- package/dist/app/builder/Toolbar.js +9 -3
- package/dist/app/builder/Toolbar.js.map +1 -1
- package/dist/app/builder/Workspace.js +2 -2
- package/dist/app/builder/Workspace.js.map +1 -1
- package/dist/app/builder/builder-model.d.ts +3 -2
- package/dist/app/builder/builder-model.d.ts.map +1 -1
- package/dist/app/builder/builder-model.js +5 -4
- package/dist/app/builder/builder-model.js.map +1 -1
- package/dist/app/builder/labels.d.ts +13 -62
- package/dist/app/builder/labels.d.ts.map +1 -1
- package/dist/app/builder/labels.js +9 -58
- package/dist/app/builder/labels.js.map +1 -1
- package/dist/app/builder/status-chip.d.ts.map +1 -1
- package/dist/app/builder/status-chip.js +3 -2
- package/dist/app/builder/status-chip.js.map +1 -1
- package/dist/app/builder/use-builder-catalogue.d.ts +1 -0
- package/dist/app/builder/use-builder-catalogue.d.ts.map +1 -1
- package/dist/app/builder/use-builder-catalogue.js +6 -0
- package/dist/app/builder/use-builder-catalogue.js.map +1 -1
- package/dist/app/builder/use-save-dashboard.d.ts +3 -1
- package/dist/app/builder/use-save-dashboard.d.ts.map +1 -1
- package/dist/app/builder/use-save-dashboard.js +3 -1
- package/dist/app/builder/use-save-dashboard.js.map +1 -1
- package/dist/app/index.d.ts +1 -1
- package/dist/app/index.d.ts.map +1 -1
- package/dist/app/index.js.map +1 -1
- package/dist/app/layout-builder.d.ts +7 -2
- package/dist/app/layout-builder.d.ts.map +1 -1
- package/dist/app/layout-builder.js +17 -5
- package/dist/app/layout-builder.js.map +1 -1
- package/dist/app/mcp-app-view-chrome.d.ts +94 -20
- package/dist/app/mcp-app-view-chrome.d.ts.map +1 -1
- package/dist/app/mcp-app-view-chrome.js +109 -40
- package/dist/app/mcp-app-view-chrome.js.map +1 -1
- package/dist/app/mcp-app-view-states.d.ts +15 -0
- package/dist/app/mcp-app-view-states.d.ts.map +1 -0
- package/dist/app/mcp-app-view-states.js +34 -0
- package/dist/app/mcp-app-view-states.js.map +1 -0
- package/dist/app/mcp-app-view.d.ts +40 -5
- package/dist/app/mcp-app-view.d.ts.map +1 -1
- package/dist/app/mcp-app-view.js +174 -128
- package/dist/app/mcp-app-view.js.map +1 -1
- package/dist/app/mcp-toolkit-app.d.ts +2 -1
- package/dist/app/mcp-toolkit-app.d.ts.map +1 -1
- package/dist/app/mcp-toolkit-app.js +25 -3
- package/dist/app/mcp-toolkit-app.js.map +1 -1
- package/dist/app/use-view-lifecycle.d.ts +38 -0
- package/dist/app/use-view-lifecycle.d.ts.map +1 -0
- package/dist/app/use-view-lifecycle.js +79 -0
- package/dist/app/use-view-lifecycle.js.map +1 -0
- package/dist/app/view-lifecycle.d.ts +109 -0
- package/dist/app/view-lifecycle.d.ts.map +1 -0
- package/dist/app/view-lifecycle.js +120 -0
- package/dist/app/view-lifecycle.js.map +1 -0
- package/dist/app/widget-props-sheet.d.ts +3 -9
- package/dist/app/widget-props-sheet.d.ts.map +1 -1
- package/dist/app/widget-props-sheet.js +6 -13
- package/dist/app/widget-props-sheet.js.map +1 -1
- package/dist/app/widget-renderer.d.ts +41 -1
- package/dist/app/widget-renderer.d.ts.map +1 -1
- package/dist/app/widget-renderer.js +82 -31
- package/dist/app/widget-renderer.js.map +1 -1
- package/dist/components/DrillButton.d.ts.map +1 -1
- package/dist/components/DrillButton.js +2 -1
- package/dist/components/DrillButton.js.map +1 -1
- package/dist/components/EmptyState.d.ts +33 -0
- package/dist/components/EmptyState.d.ts.map +1 -0
- package/dist/components/EmptyState.js +17 -0
- package/dist/components/EmptyState.js.map +1 -0
- package/dist/components/ErrorState.d.ts +50 -0
- package/dist/components/ErrorState.d.ts.map +1 -0
- package/dist/components/ErrorState.js +60 -0
- package/dist/components/ErrorState.js.map +1 -0
- package/dist/components/FilterBar.d.ts +1 -1
- package/dist/components/FilterBar.d.ts.map +1 -1
- package/dist/components/FilterBar.js +7 -4
- package/dist/components/FilterBar.js.map +1 -1
- package/dist/components/GroupCard.d.ts.map +1 -1
- package/dist/components/GroupCard.js +2 -1
- package/dist/components/GroupCard.js.map +1 -1
- package/dist/components/KpiGrid.d.ts +10 -3
- package/dist/components/KpiGrid.d.ts.map +1 -1
- package/dist/components/KpiGrid.js +31 -9
- package/dist/components/KpiGrid.js.map +1 -1
- package/dist/components/ListFooter.d.ts +3 -2
- package/dist/components/ListFooter.d.ts.map +1 -1
- package/dist/components/ListFooter.js +14 -4
- package/dist/components/ListFooter.js.map +1 -1
- package/dist/components/Pills.d.ts +10 -6
- package/dist/components/Pills.d.ts.map +1 -1
- package/dist/components/Pills.js +12 -6
- package/dist/components/Pills.js.map +1 -1
- package/dist/components/Toast.d.ts +37 -0
- package/dist/components/Toast.d.ts.map +1 -0
- package/dist/components/Toast.js +91 -0
- package/dist/components/Toast.js.map +1 -0
- package/dist/components/WidgetHeader.js +1 -1
- package/dist/hooks/use-tool-result-recovery.d.ts +23 -1
- package/dist/hooks/use-tool-result-recovery.d.ts.map +1 -1
- package/dist/hooks/use-tool-result-recovery.js +21 -7
- package/dist/hooks/use-tool-result-recovery.js.map +1 -1
- package/dist/hooks/use-view-data.d.ts +6 -0
- package/dist/hooks/use-view-data.d.ts.map +1 -1
- package/dist/hooks/use-view-data.js +6 -1
- package/dist/hooks/use-view-data.js.map +1 -1
- package/dist/index.d.ts +12 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -4
- package/dist/index.js.map +1 -1
- package/dist/lib/focus-ring.d.ts +18 -0
- package/dist/lib/focus-ring.d.ts.map +1 -0
- package/dist/lib/focus-ring.js +18 -0
- package/dist/lib/focus-ring.js.map +1 -0
- package/dist/lib/icon-stroke.d.ts +12 -0
- package/dist/lib/icon-stroke.d.ts.map +1 -0
- package/dist/lib/icon-stroke.js +12 -0
- package/dist/lib/icon-stroke.js.map +1 -0
- package/dist/lib/toast-model.d.ts +46 -0
- package/dist/lib/toast-model.d.ts.map +1 -0
- package/dist/lib/toast-model.js +36 -0
- package/dist/lib/toast-model.js.map +1 -0
- package/dist/lib/tone-utils.d.ts +43 -9
- package/dist/lib/tone-utils.d.ts.map +1 -1
- package/dist/lib/tone-utils.js +36 -7
- package/dist/lib/tone-utils.js.map +1 -1
- package/dist/locale/index.d.ts +3 -1
- package/dist/locale/index.d.ts.map +1 -1
- package/dist/locale/index.js +2 -1
- package/dist/locale/index.js.map +1 -1
- package/dist/locale/locale-provider.d.ts +42 -1
- package/dist/locale/locale-provider.d.ts.map +1 -1
- package/dist/locale/locale-provider.js +44 -3
- package/dist/locale/locale-provider.js.map +1 -1
- package/dist/locale/message-types.d.ts +223 -0
- package/dist/locale/message-types.d.ts.map +1 -0
- package/dist/locale/message-types.js +7 -0
- package/dist/locale/message-types.js.map +1 -0
- package/dist/locale/messages-de.d.ts +9 -0
- package/dist/locale/messages-de.d.ts.map +1 -0
- package/dist/locale/messages-de.js +151 -0
- package/dist/locale/messages-de.js.map +1 -0
- package/dist/locale/messages-en.d.ts +8 -0
- package/dist/locale/messages-en.d.ts.map +1 -0
- package/dist/locale/messages-en.js +150 -0
- package/dist/locale/messages-en.js.map +1 -0
- package/dist/locale/toolkit-messages.d.ts +39 -0
- package/dist/locale/toolkit-messages.d.ts.map +1 -0
- package/dist/locale/toolkit-messages.js +50 -0
- package/dist/locale/toolkit-messages.js.map +1 -0
- package/dist/primitives/alert.d.ts.map +1 -1
- package/dist/primitives/alert.js +4 -2
- package/dist/primitives/alert.js.map +1 -1
- package/dist/primitives/badge.d.ts +1 -1
- package/dist/primitives/badge.d.ts.map +1 -1
- package/dist/primitives/badge.js +14 -6
- package/dist/primitives/badge.js.map +1 -1
- package/dist/primitives/button.d.ts.map +1 -1
- package/dist/primitives/button.js +12 -8
- package/dist/primitives/button.js.map +1 -1
- package/dist/primitives/card.js +4 -4
- package/dist/primitives/card.js.map +1 -1
- package/dist/primitives/dialog.d.ts +7 -3
- package/dist/primitives/dialog.d.ts.map +1 -1
- package/dist/primitives/dialog.js +14 -7
- package/dist/primitives/dialog.js.map +1 -1
- package/dist/primitives/input.d.ts.map +1 -1
- package/dist/primitives/input.js +4 -1
- package/dist/primitives/input.js.map +1 -1
- package/dist/primitives/scroll-area.js +1 -1
- package/dist/primitives/scroll-area.js.map +1 -1
- package/dist/primitives/select.d.ts.map +1 -1
- package/dist/primitives/select.js +5 -2
- package/dist/primitives/select.js.map +1 -1
- package/dist/primitives/sheet.d.ts +3 -1
- package/dist/primitives/sheet.d.ts.map +1 -1
- package/dist/primitives/sheet.js +12 -6
- package/dist/primitives/sheet.js.map +1 -1
- package/dist/primitives/skeleton.js +1 -1
- package/dist/primitives/skeleton.js.map +1 -1
- package/dist/primitives/switch.d.ts.map +1 -1
- package/dist/primitives/switch.js +2 -1
- package/dist/primitives/switch.js.map +1 -1
- package/dist/primitives/tabs.d.ts.map +1 -1
- package/dist/primitives/tabs.js +5 -3
- package/dist/primitives/tabs.js.map +1 -1
- package/dist/render-cases.d.ts.map +1 -1
- package/dist/render-cases.js +20 -2
- package/dist/render-cases.js.map +1 -1
- package/dist/render-scan.d.ts +25 -0
- package/dist/render-scan.d.ts.map +1 -0
- package/dist/render-scan.js +66 -0
- package/dist/render-scan.js.map +1 -0
- package/dist/theme/cd-tokens.d.ts +66 -0
- package/dist/theme/cd-tokens.d.ts.map +1 -0
- package/dist/theme/cd-tokens.js +64 -0
- package/dist/theme/cd-tokens.js.map +1 -0
- package/dist/theme/create-theme.d.ts +196 -39
- package/dist/theme/create-theme.d.ts.map +1 -1
- package/dist/theme/create-theme.js +189 -13
- package/dist/theme/create-theme.js.map +1 -1
- package/dist/theme/fonts.d.ts +38 -0
- package/dist/theme/fonts.d.ts.map +1 -0
- package/dist/theme/fonts.js +56 -0
- package/dist/theme/fonts.js.map +1 -0
- package/dist/theme/host-fonts.d.ts +39 -0
- package/dist/theme/host-fonts.d.ts.map +1 -0
- package/dist/theme/host-fonts.js +44 -0
- package/dist/theme/host-fonts.js.map +1 -0
- package/dist/theme/index.d.ts +8 -1
- package/dist/theme/index.d.ts.map +1 -1
- package/dist/theme/index.js +5 -1
- package/dist/theme/index.js.map +1 -1
- package/dist/theme/portal-container.d.ts +16 -0
- package/dist/theme/portal-container.d.ts.map +1 -0
- package/dist/theme/portal-container.js +19 -0
- package/dist/theme/portal-container.js.map +1 -0
- package/dist/theme/presets.d.ts +24 -9
- package/dist/theme/presets.d.ts.map +1 -1
- package/dist/theme/presets.js +44 -11
- package/dist/theme/presets.js.map +1 -1
- package/dist/theme/theme-provider.d.ts +27 -9
- package/dist/theme/theme-provider.d.ts.map +1 -1
- package/dist/theme/theme-provider.js +42 -20
- package/dist/theme/theme-provider.js.map +1 -1
- package/package.json +9 -4
- package/src/app/builder/BuilderBanners.tsx +26 -13
- package/src/app/builder/CanvasRow.tsx +22 -21
- package/src/app/builder/CatalogueSheet.tsx +16 -14
- package/src/app/builder/EmptyHint.tsx +16 -11
- package/src/app/builder/LayoutSurface.tsx +7 -7
- package/src/app/builder/PipelineStrip.tsx +26 -17
- package/src/app/builder/SaveDialog.tsx +11 -12
- package/src/app/builder/Toolbar.tsx +19 -7
- package/src/app/builder/Workspace.tsx +5 -3
- package/src/app/builder/builder-feedback.test.tsx +75 -0
- package/src/app/builder/builder-model.test.ts +5 -0
- package/src/app/builder/builder-model.ts +5 -4
- package/src/app/builder/labels.ts +15 -121
- package/src/app/builder/status-chip.tsx +8 -4
- package/src/app/builder/use-builder-catalogue.ts +6 -0
- package/src/app/builder/use-save-dashboard.ts +5 -0
- package/src/app/index.ts +8 -1
- package/src/app/layout-builder.tsx +23 -3
- package/src/app/mcp-app-view-chrome.test.tsx +347 -14
- package/src/app/mcp-app-view-chrome.tsx +278 -100
- package/src/app/mcp-app-view-states.tsx +100 -0
- package/src/app/mcp-app-view.test.tsx +258 -0
- package/src/app/mcp-app-view.tsx +292 -185
- package/src/app/mcp-toolkit-app.tsx +31 -7
- package/src/app/use-view-lifecycle.ts +116 -0
- package/src/app/view-lifecycle.test.ts +227 -0
- package/src/app/view-lifecycle.ts +174 -0
- package/src/app/widget-props-sheet.tsx +13 -26
- package/src/app/widget-renderer.render.test.tsx +131 -0
- package/src/app/widget-renderer.tsx +136 -38
- package/src/components/DrillButton.tsx +2 -1
- package/src/components/EmptyState.tsx +81 -0
- package/src/components/ErrorState.tsx +182 -0
- package/src/components/FilterBar.tsx +9 -6
- package/src/components/GroupCard.tsx +3 -2
- package/src/components/KpiGrid.tsx +75 -44
- package/src/components/ListFooter.tsx +17 -6
- package/src/components/Pills.tsx +20 -11
- package/src/components/Toast.tsx +188 -0
- package/src/components/WidgetHeader.tsx +1 -1
- package/src/components/feedback-states.test.tsx +225 -0
- package/src/components/tone-figures.test.tsx +54 -0
- package/src/fonts.css +19 -0
- package/src/globals.css +9 -165
- package/src/hooks/use-tool-result-recovery.test.ts +25 -1
- package/src/hooks/use-tool-result-recovery.ts +34 -6
- package/src/hooks/use-view-data.test.tsx +60 -0
- package/src/hooks/use-view-data.ts +12 -1
- package/src/i18n-coverage.test.tsx +323 -0
- package/src/index.ts +57 -5
- package/src/lib/focus-ring.ts +20 -0
- package/src/lib/icon-stroke.test.ts +59 -0
- package/src/lib/icon-stroke.ts +13 -0
- package/src/lib/toast-model.test.ts +68 -0
- package/src/lib/toast-model.ts +63 -0
- package/src/lib/tone-utils.test.ts +47 -14
- package/src/lib/tone-utils.ts +61 -13
- package/src/locale/index.ts +13 -1
- package/src/locale/locale-provider.test.tsx +87 -0
- package/src/locale/locale-provider.tsx +90 -3
- package/src/locale/message-types.ts +221 -0
- package/src/locale/messages-de.ts +159 -0
- package/src/locale/messages-en.ts +157 -0
- package/src/locale/toolkit-messages.test.ts +216 -0
- package/src/locale/toolkit-messages.ts +82 -0
- package/src/no-hardcoded-copy.test.ts +432 -0
- package/src/primitives/alert.tsx +4 -2
- package/src/primitives/badge.tsx +14 -7
- package/src/primitives/button.tsx +13 -8
- package/src/primitives/card.tsx +4 -4
- package/src/primitives/dialog.tsx +32 -7
- package/src/primitives/input.tsx +5 -3
- package/src/primitives/scroll-area.tsx +1 -1
- package/src/primitives/select.tsx +6 -3
- package/src/primitives/sheet.tsx +26 -6
- package/src/primitives/skeleton.tsx +1 -1
- package/src/primitives/switch.tsx +4 -2
- package/src/primitives/tabs.tsx +9 -6
- package/src/render-cases.tsx +45 -1
- package/src/render-scan.ts +75 -0
- package/src/theme/cd-tokens.generated.css +48 -0
- package/src/theme/cd-tokens.test.ts +107 -0
- package/src/theme/cd-tokens.ts +67 -0
- package/src/theme/create-theme.test.ts +243 -5
- package/src/theme/create-theme.ts +313 -41
- package/src/theme/fonts.test.ts +85 -0
- package/src/theme/fonts.ts +72 -0
- package/src/theme/host-fonts.test.ts +135 -0
- package/src/theme/host-fonts.ts +52 -0
- package/src/theme/index.ts +15 -1
- package/src/theme/portal-container.ts +20 -0
- package/src/theme/presets.ts +44 -11
- package/src/theme/theme-css.test.ts +568 -0
- package/src/theme/theme-provider.test.tsx +82 -0
- package/src/theme/theme-provider.tsx +60 -24
- package/src/theme.css +314 -0
- package/ui-catalog.json +344 -17
package/README.md
CHANGED
|
@@ -21,7 +21,13 @@ Peer versions are pinned exactly — install the versions above.
|
|
|
21
21
|
| `@miragon/mcp-toolkit-ui` | Primitives (`Card`, `Table`, `Button`, …), composed components (`KpiGrid`, `WidgetHeader`, `FilterBar`), `useToolQuery`, `createTheme` / `ThemeProvider`, `cn`, `parseViewToolResult` | Free of `mcp-use/react` value imports (the view runtime + its ext-apps transitive) — safe for apps that never mount the shell. |
|
|
22
22
|
| `…-ui/app` | `mountMcpToolkitApp`, `McpToolkitApp`, `McpAppView`, `WidgetRenderer`, `useHostBridge`, `adaptDataWidget`, `WidgetFixtureHost` | The MCP app shell + host bridge — imports `mcp-use/react`. Never re-exported from the root barrel. |
|
|
23
23
|
| `…-ui/hooks` | `useViewToolQuery`, `useViewData`, `useToolQuery`, `useToolMutation` | View-tool hooks. |
|
|
24
|
-
| `…-ui/globals.css` | Tailwind v4
|
|
24
|
+
| `…-ui/globals.css` | Tailwind v4 + the design tokens (the Miragon theme by default, light and dark) | Import once in the app entry. |
|
|
25
|
+
| `…-ui/theme.css` | The design tokens without Tailwind's entry point | For a stylesheet that already imports Tailwind (add the toolkit `src` as `@source`). |
|
|
26
|
+
| `…-ui/fonts.css` | Opt-in Geist + Geist Mono, self-hosted through the bundler | Optional; `fontFaces({ baseUrl })` is the by-URL alternative. |
|
|
27
|
+
|
|
28
|
+
A customer brand overrides the role variables only (`--primary`, `--link`,
|
|
29
|
+
`--focus`, …; `ROLE_TOKENS`), see the
|
|
30
|
+
[white-labeling guide](https://github.com/Miragon/mcp-toolkit/blob/main/docs/guides/white-labeling.md).
|
|
25
31
|
|
|
26
32
|
## Component catalog
|
|
27
33
|
|
|
@@ -3,17 +3,22 @@ import type { LayoutBuilderLabels } from "./labels.js";
|
|
|
3
3
|
* Inline feedback strip under the toolbar. Surfaces two things the builder
|
|
4
4
|
* previously swallowed:
|
|
5
5
|
* - a `get-builder-catalogue` fetch failure (Finding [3]) — only console-
|
|
6
|
-
* logged before, so the user couldn't tell the palette was stale
|
|
6
|
+
* logged before, so the user couldn't tell the palette was stale. It is
|
|
7
|
+
* the kit's inline `ErrorState`: what happened, what to do, a retry, and
|
|
8
|
+
* the tool name with the raw reason under "Details" (never in the
|
|
9
|
+
* sentence the user reads), and
|
|
7
10
|
* - pipeline validation issues (Finding [10]/[6]) the catalogue reports
|
|
8
11
|
* fail-soft but `render-view` would reject fail-hard.
|
|
9
12
|
*
|
|
10
13
|
* Renders nothing when there's no error and no issues, so the happy path is
|
|
11
14
|
* visually unchanged.
|
|
12
15
|
*/
|
|
13
|
-
export declare function BuilderBanners({ L, catalogueToolName, refreshError, validationIssues, }: {
|
|
16
|
+
export declare function BuilderBanners({ L, catalogueToolName, refreshError, validationIssues, onRetry, }: {
|
|
14
17
|
L: Required<LayoutBuilderLabels>;
|
|
15
18
|
catalogueToolName: string;
|
|
16
19
|
refreshError: string | null;
|
|
17
20
|
validationIssues: string[];
|
|
21
|
+
/** Fetches the catalogue again; the error state offers it as its retry. */
|
|
22
|
+
onRetry?: () => void;
|
|
18
23
|
}): import("react").JSX.Element | null;
|
|
19
24
|
//# sourceMappingURL=BuilderBanners.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BuilderBanners.d.ts","sourceRoot":"","sources":["../../../src/app/builder/BuilderBanners.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BuilderBanners.d.ts","sourceRoot":"","sources":["../../../src/app/builder/BuilderBanners.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAMtD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,EAC7B,CAAC,EACD,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,OAAO,GACR,EAAE;IACD,CAAC,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAA;IAChC,iBAAiB,EAAE,MAAM,CAAA;IACzB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CACrB,sCAqCA"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { AlertTriangle } from "lucide-react";
|
|
3
|
+
import { ErrorState } from "../../components/ErrorState.js";
|
|
4
|
+
import { TONE_ICON } from "../../lib/tone-utils.js";
|
|
3
5
|
// -------------------------------------------------------------------------- //
|
|
4
6
|
// Builder banners — catalogue-fetch failure + pipeline validation warning
|
|
5
7
|
// -------------------------------------------------------------------------- //
|
|
@@ -7,16 +9,19 @@ import { AlertTriangle } from "lucide-react";
|
|
|
7
9
|
* Inline feedback strip under the toolbar. Surfaces two things the builder
|
|
8
10
|
* previously swallowed:
|
|
9
11
|
* - a `get-builder-catalogue` fetch failure (Finding [3]) — only console-
|
|
10
|
-
* logged before, so the user couldn't tell the palette was stale
|
|
12
|
+
* logged before, so the user couldn't tell the palette was stale. It is
|
|
13
|
+
* the kit's inline `ErrorState`: what happened, what to do, a retry, and
|
|
14
|
+
* the tool name with the raw reason under "Details" (never in the
|
|
15
|
+
* sentence the user reads), and
|
|
11
16
|
* - pipeline validation issues (Finding [10]/[6]) the catalogue reports
|
|
12
17
|
* fail-soft but `render-view` would reject fail-hard.
|
|
13
18
|
*
|
|
14
19
|
* Renders nothing when there's no error and no issues, so the happy path is
|
|
15
20
|
* visually unchanged.
|
|
16
21
|
*/
|
|
17
|
-
export function BuilderBanners({ L, catalogueToolName, refreshError, validationIssues, }) {
|
|
22
|
+
export function BuilderBanners({ L, catalogueToolName, refreshError, validationIssues, onRetry, }) {
|
|
18
23
|
if (!refreshError && validationIssues.length === 0)
|
|
19
24
|
return null;
|
|
20
|
-
return (_jsxs("div", { className: "flex flex-col gap-2",
|
|
25
|
+
return (_jsxs("div", { className: "flex flex-col gap-2", children: [refreshError && (_jsx(ErrorState, { variant: "inline", title: L.catalogueError, description: L.catalogueErrorHint, details: `${catalogueToolName}: ${refreshError}`, onRetry: onRetry })), validationIssues.length > 0 && (_jsxs("div", { role: "status", "aria-live": "polite", className: "border-warning bg-warning-soft text-foreground flex items-start gap-2 rounded-md border px-3 py-2 text-xs", children: [_jsx(AlertTriangle, { className: `mt-0.5 size-3.5 shrink-0 ${TONE_ICON.warning}`, "aria-hidden": "true" }), _jsxs("div", { className: "min-w-0", children: [_jsx("p", { className: "font-medium", children: L.validationWarning }), _jsx("ul", { className: "mt-0.5 list-inside list-disc space-y-0.5", children: validationIssues.map((issue, idx) => (_jsx("li", { className: "break-words", children: issue }, idx))) })] })] }))] }));
|
|
21
26
|
}
|
|
22
27
|
//# sourceMappingURL=BuilderBanners.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BuilderBanners.js","sourceRoot":"","sources":["../../../src/app/builder/BuilderBanners.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"BuilderBanners.js","sourceRoot":"","sources":["../../../src/app/builder/BuilderBanners.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAGnD,gFAAgF;AAChF,0EAA0E;AAC1E,gFAAgF;AAEhF;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,cAAc,CAAC,EAC7B,CAAC,EACD,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,OAAO,GAQR;IACC,IAAI,CAAC,YAAY,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAC/D,OAAO,CACL,eAAK,SAAS,EAAC,qBAAqB,aACjC,YAAY,IAAI,CACf,KAAC,UAAU,IACT,OAAO,EAAC,QAAQ,EAChB,KAAK,EAAE,CAAC,CAAC,cAAc,EACvB,WAAW,EAAE,CAAC,CAAC,kBAAkB,EACjC,OAAO,EAAE,GAAG,iBAAiB,KAAK,YAAY,EAAE,EAChD,OAAO,EAAE,OAAO,GAChB,CACH,EACA,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,CAC9B,eACE,IAAI,EAAC,QAAQ,eACH,QAAQ,EAClB,SAAS,EAAC,2GAA2G,aAErH,KAAC,aAAa,IACZ,SAAS,EAAE,4BAA4B,SAAS,CAAC,OAAO,EAAE,iBAC9C,MAAM,GAClB,EACF,eAAK,SAAS,EAAC,SAAS,aACtB,YAAG,SAAS,EAAC,aAAa,YAAE,CAAC,CAAC,iBAAiB,GAAK,EACpD,aAAI,SAAS,EAAC,0CAA0C,YACrD,gBAAgB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CACpC,aAAc,SAAS,EAAC,aAAa,YAClC,KAAK,IADC,GAAG,CAEP,CACN,CAAC,GACC,IACD,IACF,CACP,IACG,CACP,CAAA;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CanvasRow.d.ts","sourceRoot":"","sources":["../../../src/app/builder/CanvasRow.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAWpE,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAOtD,iBAAS,aAAa,CAAC,EACrB,CAAC,EACD,GAAG,EACH,MAAM,EACN,OAAO,EACP,OAAO,EACP,MAAM,EACN,QAAQ,EACR,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,SAAS,EACT,aAAa,EACb,YAAY,EACZ,WAAW,EACX,eAAe,EACf,qBAAqB,EACrB,OAAO,EACP,WAAW,GACZ,EAAE;IACD,CAAC,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAA;IAChC,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,OAAO,CAAA;IACf,QAAQ,EAAE,OAAO,CAAA;IACjB,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;IAC5C,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAA;IACtD,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACtE,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACvD,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9D,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1D,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IAC3D,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IACxC,WAAW,EAAE,WAAW,CAAA;CACzB,+
|
|
1
|
+
{"version":3,"file":"CanvasRow.d.ts","sourceRoot":"","sources":["../../../src/app/builder/CanvasRow.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAWpE,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAOtD,iBAAS,aAAa,CAAC,EACrB,CAAC,EACD,GAAG,EACH,MAAM,EACN,OAAO,EACP,OAAO,EACP,MAAM,EACN,QAAQ,EACR,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,SAAS,EACT,aAAa,EACb,YAAY,EACZ,WAAW,EACX,eAAe,EACf,qBAAqB,EACrB,OAAO,EACP,WAAW,GACZ,EAAE;IACD,CAAC,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAA;IAChC,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,OAAO,CAAA;IACf,QAAQ,EAAE,OAAO,CAAA;IACjB,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;IAC5C,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAA;IACtD,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACtE,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACvD,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9D,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1D,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IAC3D,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IACxC,WAAW,EAAE,WAAW,CAAA;CACzB,+BAuLA;AAED,eAAO,MAAM,SAAS,2DAAsB,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { memo, useCallback, useRef } from "react";
|
|
3
3
|
import { ChevronDown, ChevronUp, SlidersHorizontal, Trash2, X } from "lucide-react";
|
|
4
4
|
import { GridItem, GridLayout } from "../../components/GridLayout.js";
|
|
@@ -29,40 +29,38 @@ function CanvasRowImpl({ L, row, rowIdx, focused, isFirst, isLast, dragOver, set
|
|
|
29
29
|
e.preventDefault();
|
|
30
30
|
onAddWidget(id, rowIdx);
|
|
31
31
|
}
|
|
32
|
-
}, className: cn("group relative rounded-
|
|
32
|
+
}, className: cn("group relative rounded-md border-l-2 px-3 py-2 transition-colors", focused
|
|
33
33
|
? "border-l-primary bg-card"
|
|
34
|
-
: "bg-background hover:bg-card/60 border-l-transparent", dragOver && "bg-primary/5 border-l-primary"), children: [_jsxs("div", { className: "mb-2 flex items-center justify-between", children: [_jsxs("div", { className: "text-muted-foreground flex items-center gap-2 text-[11px]", children: [
|
|
34
|
+
: "bg-background hover:bg-card/60 border-l-transparent", dragOver && "bg-primary/5 border-l-primary"), children: [_jsxs("div", { className: "mb-2 flex items-center justify-between", children: [_jsxs("div", { className: "text-muted-foreground flex items-center gap-2 text-[11px]", children: [_jsx("span", { className: "font-mono", children: L.rowLabel(rowIdx + 1) }), _jsx("span", { className: "bg-muted/60 rounded px-1 py-0.5 text-[10px]", children: L.elementCount(row.row.length) })] }), _jsxs("div", { className: "opacity-0 transition-opacity group-hover:opacity-100 focus-within:opacity-100", children: [_jsx(Button, { variant: "ghost", size: "icon-xs", onClick: (e) => {
|
|
35
35
|
e.stopPropagation();
|
|
36
36
|
onMoveRow(rowIdx, -1);
|
|
37
|
-
}, disabled: isFirst, "aria-label":
|
|
37
|
+
}, disabled: isFirst, "aria-label": L.moveRowUp, children: _jsx(ChevronUp, {}) }), _jsx(Button, { variant: "ghost", size: "icon-xs", onClick: (e) => {
|
|
38
38
|
e.stopPropagation();
|
|
39
39
|
onMoveRow(rowIdx, 1);
|
|
40
|
-
}, disabled: isLast, "aria-label":
|
|
40
|
+
}, disabled: isLast, "aria-label": L.moveRowDown, children: _jsx(ChevronDown, {}) }), _jsx(Button, { variant: "ghost", size: "icon-xs", onClick: (e) => {
|
|
41
41
|
e.stopPropagation();
|
|
42
42
|
onRemoveRow(rowIdx);
|
|
43
43
|
}, "aria-label": L.removeRow, children: _jsx(Trash2, {}) })] })] }), row.row.length === 0 ? (_jsx("div", { className: cn("rounded-md border border-dashed py-6 text-center text-[11px] transition-colors", dragOver
|
|
44
|
-
? "border-
|
|
45
|
-
: "border-
|
|
44
|
+
? "border-focus bg-accent text-accent-foreground"
|
|
45
|
+
: "border-input text-muted-foreground"), children: dragOver ? L.canvasDropHint : L.canvasEmpty })) : (_jsx("div", { ref: gridRef, "data-row-grid": true, children: _jsx(GridLayout, { children: row.row.map((cell, cellIdx) => {
|
|
46
46
|
const span = cell.span ?? 12;
|
|
47
47
|
const Widget = widgets[cell.widget];
|
|
48
48
|
const hasPropsSchema = propsSchemaByWidgetId.has(cell.widget);
|
|
49
49
|
const propCount = cell.props ? Object.keys(cell.props).length : 0;
|
|
50
|
-
return (_jsx(GridItem, { span: span, children: _jsxs("div", { className: "border-border bg-card relative overflow-hidden rounded-md border
|
|
50
|
+
return (_jsx(GridItem, { span: span, children: _jsxs("div", { className: "border-border bg-card shadow-1 relative overflow-hidden rounded-md border", children: [_jsxs("div", { className: "text-muted-foreground bg-muted/30 flex items-center justify-between gap-2 border-b px-2 py-1 text-[10px]", children: [_jsx("span", { className: "truncate font-mono", children: cell.widget }), _jsxs("div", { className: "flex shrink-0 items-center gap-2", children: [_jsxs("label", { className: "text-muted-foreground inline-flex items-center gap-0.5 font-mono", children: [_jsx("span", { className: "sr-only", children: L.columnSpan }), _jsxs(Select, { value: String(span), onValueChange: (v) => onSetCellSpan(rowIdx, cellIdx, Number(v)), children: [_jsx(SelectTrigger, { size: "sm", className: "h-5 gap-0.5 border-none bg-transparent px-1 py-0 font-mono text-[10px] shadow-none", "aria-label": L.columnSpan, onClick: (e) => e.stopPropagation(), children: _jsx(SelectValue, {}) }), _jsx(SelectContent, { children: Array.from({ length: 12 }, (_, i) => i + 1).map((n) => (_jsx(SelectItem, { value: String(n), className: "font-mono text-xs", children: n }, n))) })] }), _jsx("span", { "aria-hidden": "true", children: "/12" })] }), hasPropsSchema && (_jsx(Button, { variant: "ghost", size: "icon-xs", onClick: (e) => {
|
|
51
51
|
e.stopPropagation();
|
|
52
52
|
onConfigureCell(rowIdx, cellIdx);
|
|
53
|
-
}, "aria-label":
|
|
54
|
-
? `Configure widget props (${propCount} set)`
|
|
55
|
-
: "Configure widget props", className: cn(propCount > 0 && "text-primary"), children: _jsx(SlidersHorizontal, {}) })), _jsx(Button, { variant: "ghost", size: "icon-xs", onClick: (e) => {
|
|
53
|
+
}, "aria-label": L.configureElement, title: propCount > 0 ? L.configureElementSet(propCount) : L.configureElement, className: cn(propCount > 0 && "text-link"), children: _jsx(SlidersHorizontal, {}) })), _jsx(Button, { variant: "ghost", size: "icon-xs", onClick: (e) => {
|
|
56
54
|
e.stopPropagation();
|
|
57
55
|
onRemoveCell(rowIdx, cellIdx);
|
|
58
|
-
}, "aria-label":
|
|
56
|
+
}, "aria-label": L.removeElement, children: _jsx(X, {}) })] })] }), _jsx("div", { className: "p-2", children: _jsx(RenderedWidget, { widget: Widget, widgetId: cell.widget, props: widgetProps, cellProps: cell.props, showEmptyHint: true, notBundledClassName: "text-muted-foreground rounded border border-dashed p-3 text-center text-[11px]" }) }), _jsx(ResizeHandle, { label: L.resizeElement, rowIdx: rowIdx, cellIdx: cellIdx, span: span, getGridEl: () => gridRef.current, onSetCellSpan: onSetCellSpan })] }) }, `${cell.widget}-${cellIdx}`));
|
|
59
57
|
}) }) }))] }));
|
|
60
58
|
}
|
|
61
59
|
export const CanvasRow = memo(CanvasRowImpl);
|
|
62
60
|
// -------------------------------------------------------------------------- //
|
|
63
61
|
// Resize handle
|
|
64
62
|
// -------------------------------------------------------------------------- //
|
|
65
|
-
function ResizeHandle({ rowIdx, cellIdx, span, getGridEl, onSetCellSpan, }) {
|
|
63
|
+
function ResizeHandle({ label, rowIdx, cellIdx, span, getGridEl, onSetCellSpan, }) {
|
|
66
64
|
const onPointerDown = useCallback((e) => {
|
|
67
65
|
e.preventDefault();
|
|
68
66
|
e.stopPropagation();
|
|
@@ -93,6 +91,6 @@ function ResizeHandle({ rowIdx, cellIdx, span, getGridEl, onSetCellSpan, }) {
|
|
|
93
91
|
e.stopPropagation();
|
|
94
92
|
onSetCellSpan(rowIdx, cellIdx, Math.max(1, Math.min(12, span + dir)));
|
|
95
93
|
}, [cellIdx, onSetCellSpan, rowIdx, span]);
|
|
96
|
-
return (_jsx("div", { onPointerDown: onPointerDown, onClick: (e) => e.stopPropagation(), onKeyDown: onKeyDown, tabIndex: 0, className: "hover:bg-primary/40 focus-visible:bg-primary/40 focus-visible:ring-
|
|
94
|
+
return (_jsx("div", { onPointerDown: onPointerDown, onClick: (e) => e.stopPropagation(), onKeyDown: onKeyDown, tabIndex: 0, className: "hover:bg-primary/40 focus-visible:bg-primary/40 focus-visible:ring-focus absolute top-0 right-0 h-full w-1.5 cursor-col-resize touch-none select-none focus-visible:ring-2 focus-visible:outline-hidden", "aria-label": label, role: "separator", "aria-orientation": "vertical", "aria-valuenow": span, "aria-valuemin": 1, "aria-valuemax": 12 }));
|
|
97
95
|
}
|
|
98
96
|
//# sourceMappingURL=CanvasRow.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CanvasRow.js","sourceRoot":"","sources":["../../../src/app/builder/CanvasRow.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,cAAc,CAAA;AAEnF,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AACnD,OAAO,EACL,MAAM,EACN,aAAa,EACb,UAAU,EACV,aAAa,EACb,WAAW,GACZ,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAA;AACvC,OAAO,EAAE,cAAc,EAAwB,MAAM,uBAAuB,CAAA;AAE5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAE9C,gFAAgF;AAChF,+DAA+D;AAC/D,gFAAgF;AAEhF,SAAS,aAAa,CAAC,EACrB,CAAC,EACD,GAAG,EACH,MAAM,EACN,OAAO,EACP,OAAO,EACP,MAAM,EACN,QAAQ,EACR,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,SAAS,EACT,aAAa,EACb,YAAY,EACZ,WAAW,EACX,eAAe,EACf,qBAAqB,EACrB,OAAO,EACP,WAAW,GAoBZ;IACC,MAAM,OAAO,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAA;IAEnD,OAAO,CACL,eACE,OAAO,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,EACzC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE;YAChB,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC;gBAAE,OAAM;YAC5D,CAAC,CAAC,cAAc,EAAE,CAAA;YAClB,CAAC,CAAC,YAAY,CAAC,UAAU,GAAG,MAAM,CAAA;YAClC,cAAc,CAAC,MAAM,CAAC,CAAA;QACxB,CAAC,EACD,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE;YACjB,IAAI,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAqB,CAAC;gBAAE,OAAM;YAC7D,cAAc,CAAC,IAAI,CAAC,CAAA;QACtB,CAAC,EACD,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;YACZ,MAAM,EAAE,GAAG,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAA;YACnD,cAAc,CAAC,IAAI,CAAC,CAAA;YACpB,IAAI,EAAE,EAAE,CAAC;gBACP,CAAC,CAAC,cAAc,EAAE,CAAA;gBAClB,WAAW,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;YACzB,CAAC;QACH,CAAC,EACD,SAAS,EAAE,EAAE,CACX,kEAAkE,EAClE,OAAO;YACL,CAAC,CAAC,0BAA0B;YAC5B,CAAC,CAAC,qDAAqD,EACzD,QAAQ,IAAI,+BAA+B,CAC5C,aAED,eAAK,SAAS,EAAC,wCAAwC,aACrD,eAAK,SAAS,EAAC,2DAA2D,aACxE,
|
|
1
|
+
{"version":3,"file":"CanvasRow.js","sourceRoot":"","sources":["../../../src/app/builder/CanvasRow.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CatalogueSheet.d.ts","sourceRoot":"","sources":["../../../src/app/builder/CatalogueSheet.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"CatalogueSheet.d.ts","sourceRoot":"","sources":["../../../src/app/builder/CatalogueSheet.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAalG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAMtD,wBAAgB,cAAc,CAAC,EAC7B,CAAC,EACD,IAAI,EACJ,YAAY,EACZ,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,SAAS,EACT,kBAAkB,GACnB,EAAE;IACD,CAAC,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAA;IAChC,IAAI,EAAE,OAAO,CAAA;IACb,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,UAAU,EAAE,eAAe,EAAE,CAAA;IAC7B,cAAc,EAAE,aAAa,EAAE,CAAA;IAC/B,kBAAkB,EAAE,iBAAiB,EAAE,CAAA;IACvC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;CAC1C,+BAkLA"}
|
|
@@ -5,6 +5,7 @@ import { Badge } from "../../primitives/badge.js";
|
|
|
5
5
|
import { Button } from "../../primitives/button.js";
|
|
6
6
|
import { ScrollArea } from "../../primitives/scroll-area.js";
|
|
7
7
|
import { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle, } from "../../primitives/sheet.js";
|
|
8
|
+
import { TONE_DOT, TONE_TEXT } from "../../lib/tone-utils.js";
|
|
8
9
|
import { cn } from "../../lib/utils.js";
|
|
9
10
|
// -------------------------------------------------------------------------- //
|
|
10
11
|
// Catalogue Sheet — slides in from the right
|
|
@@ -16,15 +17,15 @@ export function CatalogueSheet({ L, open, onOpenChange, keyCatalog, availableSte
|
|
|
16
17
|
map.set(e.key, e.producedBySteps[0]);
|
|
17
18
|
return map;
|
|
18
19
|
}, [keyCatalog]);
|
|
19
|
-
return (_jsx(Sheet, { open: open, onOpenChange: onOpenChange, children: _jsxs(SheetContent, { className: "w-full sm:max-w-md md:max-w-lg", children: [_jsxs(SheetHeader, { children: [_jsxs(SheetTitle, { className: "flex items-center gap-2 text-base", children: [_jsx(Library, { className: "size-4" }), L.catalogue] }), _jsx(SheetDescription, { children: L.catalogueDescription })] }), _jsx(ScrollArea, { className: "flex-1 px-4 pb-4", children: _jsxs("div", { className: "flex flex-col gap-6", children: [_jsxs("section", { className: "flex flex-col gap-2", children: [_jsx(CatalogueSectionHeader, { title: L.catalogueKeys, count: keyCatalog.length }), keyCatalog.length === 0 ? (_jsx("p", { className: "text-muted-foreground text-xs italic", children:
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
return (_jsx(Sheet, { open: open, onOpenChange: onOpenChange, children: _jsxs(SheetContent, { className: "w-full sm:max-w-md md:max-w-lg", children: [_jsxs(SheetHeader, { children: [_jsxs(SheetTitle, { className: "flex items-center gap-2 text-base", children: [_jsx(Library, { className: "size-4" }), L.catalogue] }), _jsx(SheetDescription, { children: L.catalogueDescription })] }), _jsx(ScrollArea, { className: "flex-1 px-4 pb-4", children: _jsxs("div", { className: "flex flex-col gap-6", children: [_jsxs("section", { className: "flex flex-col gap-2", children: [_jsx(CatalogueSectionHeader, { title: L.catalogueKeys, count: keyCatalog.length }), keyCatalog.length === 0 ? (_jsx("p", { className: "text-muted-foreground text-xs italic", children: L.noKeysRegistered })) : (_jsx("ul", { className: "flex flex-col gap-1", children: keyCatalog.map((entry) => (_jsxs("li", { className: "hover:bg-muted flex flex-col gap-1 rounded-md border px-2 py-1.5 text-xs", children: [_jsxs("div", { className: "flex items-start justify-between gap-2", children: [_jsx("span", { className: "truncate font-mono", children: entry.key }), _jsxs("span", { className: cn("inline-flex shrink-0 items-center gap-1 text-[10px]", entry.inContext ? TONE_TEXT.success : "text-muted-foreground"), children: [_jsx("span", { "aria-hidden": "true", className: cn("size-1.5 rounded-full", entry.inContext
|
|
21
|
+
? TONE_DOT.success
|
|
22
|
+
: "border-input border bg-transparent") }), entry.inContext ? L.catalogueLive : L.catalogueMissing] })] }), (entry.producedBySteps.length > 0 ||
|
|
22
23
|
entry.consumedBySteps.length > 0 ||
|
|
23
|
-
entry.consumedByWidgets.length > 0) && (_jsxs("div", { className: "text-muted-foreground
|
|
24
|
+
entry.consumedByWidgets.length > 0) && (_jsxs("div", { className: "text-muted-foreground flex flex-col gap-0.5 text-[10px]", children: [entry.producedBySteps.length > 0 && (_jsxs("span", { children: [L.catalogueProducedBy, " ", _jsx("span", { className: "font-mono", children: entry.producedBySteps.join(", ") })] })), entry.consumedBySteps.length > 0 && (_jsxs("span", { children: [L.catalogueStepPrefix, " ", L.catalogueConsumedBy, " ", _jsx("span", { className: "font-mono", children: entry.consumedBySteps.join(", ") })] })), entry.consumedByWidgets.length > 0 && (_jsxs("span", { children: [L.catalogueElementPrefix, " ", L.catalogueConsumedBy, " ", _jsx("span", { className: "font-mono", children: entry.consumedByWidgets.join(", ") })] }))] })), !entry.inContext && (_jsxs("div", { className: "mt-0.5 flex items-center gap-1", children: [_jsxs(Button, { variant: "ghost", size: "xs", onClick: () => onSeedKey(entry.key), children: [_jsx(Plus, {}), " ", L.cataloguePickKey] }), producerOf.get(entry.key) && (_jsxs(Button, { variant: "ghost", size: "xs", onClick: () => onAddProducingStep(entry.key), children: [_jsx(ArrowDownToLine, {}), " ", L.catalogueAddProducingStep] }))] }))] }, entry.key))) }))] }), _jsxs("section", { className: "flex flex-col gap-2", children: [_jsx(CatalogueSectionHeader, { title: L.catalogueSteps, count: availableSteps.length }), availableSteps.length === 0 ? (_jsx("p", { className: "text-muted-foreground text-xs italic", children: L.noStepsRegistered })) : (_jsx("ul", { className: "flex flex-col gap-1", children: availableSteps.map((s) => (_jsxs("li", { className: "flex flex-col gap-0.5 rounded-md border px-2 py-1.5 text-xs", children: [_jsx("span", { className: "truncate font-mono", children: s.id }), _jsxs("div", { className: "text-muted-foreground flex flex-wrap gap-x-3 text-[10px]", children: [_jsxs("span", { className: "font-mono", children: ["\u2190 ", s.requires.length ? s.requires.join(", ") : L.noInputs] }), _jsxs("span", { className: "font-mono", children: ["\u2192 ", s.produces.length ? s.produces.join(", ") : L.noOutputs] })] })] }, s.id))) }))] }), _jsxs("section", { className: "flex flex-col gap-2", children: [_jsx(CatalogueSectionHeader, { title: L.catalogueUnreachable, count: unreachableWidgets.length }), unreachableWidgets.length === 0 ? (_jsx("p", { className: "text-muted-foreground text-xs italic", children: L.catalogueUnreachableEmpty })) : (_jsx("ul", { className: "flex flex-col gap-1", children: unreachableWidgets.map((w) => {
|
|
24
25
|
const candidate = w.missingKeys
|
|
25
26
|
.map((k) => ({ key: k, step: producerOf.get(k) }))
|
|
26
27
|
.find((c) => c.step);
|
|
27
|
-
return (_jsxs("li", { className: "bg-muted/20 flex flex-col gap-1 rounded-md border px-2 py-1.5 text-xs", children: [_jsx("span", { className: "truncate font-mono", children: w.id }), _jsxs("span", { className: "text-muted-foreground
|
|
28
|
+
return (_jsxs("li", { className: "bg-muted/20 flex flex-col gap-1 rounded-md border px-2 py-1.5 text-xs", children: [_jsx("span", { className: "truncate font-mono", children: w.id }), _jsxs("span", { className: "text-muted-foreground text-[10px]", children: [L.catalogueNeedsKeys, " ", _jsx("span", { className: "font-mono", children: w.missingKeys.join(", ") })] }), _jsxs("div", { className: "mt-0.5 flex flex-wrap items-center gap-1", children: [w.missingKeys.map((k) => (_jsxs(Button, { variant: "ghost", size: "xs", onClick: () => onSeedKey(k), children: [_jsx(Plus, {}), _jsx("span", { className: "font-mono", children: k })] }, k))), candidate && (_jsxs(Button, { variant: "outline", size: "xs", onClick: () => onAddProducingStep(candidate.key), children: [_jsx(ArrowDownToLine, {}), " ", L.catalogueAddProducingStep] }))] })] }, w.id));
|
|
28
29
|
}) }))] })] }) })] }) }));
|
|
29
30
|
}
|
|
30
31
|
function CatalogueSectionHeader({ title, count }) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CatalogueSheet.js","sourceRoot":"","sources":["../../../src/app/builder/CatalogueSheet.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAE7D,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AAC5D,OAAO,EACL,KAAK,EACL,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,UAAU,GACX,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAA;AAGvC,gFAAgF;AAChF,6CAA6C;AAC7C,gFAAgF;AAEhF,MAAM,UAAU,cAAc,CAAC,EAC7B,CAAC,EACD,IAAI,EACJ,YAAY,EACZ,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,SAAS,EACT,kBAAkB,GAUnB;IACC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE;QAC9B,MAAM,GAAG,GAAG,IAAI,GAAG,EAA8B,CAAA;QACjD,KAAK,MAAM,CAAC,IAAI,UAAU;YAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAA;QAChE,OAAO,GAAG,CAAA;IACZ,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAA;IAEhB,OAAO,CACL,KAAC,KAAK,IAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,YAC3C,MAAC,YAAY,IAAC,SAAS,EAAC,gCAAgC,aACtD,MAAC,WAAW,eACV,MAAC,UAAU,IAAC,SAAS,EAAC,mCAAmC,aACvD,KAAC,OAAO,IAAC,SAAS,EAAC,QAAQ,GAAG,EAC7B,CAAC,CAAC,SAAS,IACD,EACb,KAAC,gBAAgB,cAAE,CAAC,CAAC,oBAAoB,GAAoB,IACjD,EAEd,KAAC,UAAU,IAAC,SAAS,EAAC,kBAAkB,YACtC,eAAK,SAAS,EAAC,qBAAqB,aAClC,mBAAS,SAAS,EAAC,qBAAqB,aACtC,KAAC,sBAAsB,IAAC,KAAK,EAAE,CAAC,CAAC,aAAa,EAAE,KAAK,EAAE,UAAU,CAAC,MAAM,GAAI,EAC3E,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACzB,YAAG,SAAS,EAAC,sCAAsC,
|
|
1
|
+
{"version":3,"file":"CatalogueSheet.js","sourceRoot":"","sources":["../../../src/app/builder/CatalogueSheet.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import type { LayoutBuilderLabels } from "./labels.js";
|
|
2
|
+
/**
|
|
3
|
+
* The builder's empty state. Its one next step (open the data sources) is the
|
|
4
|
+
* blue primary button: CI §9 "Leer: Empty-State-Karte mit blauem CTA".
|
|
5
|
+
*/
|
|
2
6
|
export declare function EmptyHint({ L, onGotoPipeline, }: {
|
|
3
7
|
L: Required<LayoutBuilderLabels>;
|
|
4
8
|
onGotoPipeline: () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmptyHint.d.ts","sourceRoot":"","sources":["../../../src/app/builder/EmptyHint.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"EmptyHint.d.ts","sourceRoot":"","sources":["../../../src/app/builder/EmptyHint.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAMtD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,EACxB,CAAC,EACD,cAAc,GACf,EAAE;IACD,CAAC,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAA;IAChC,cAAc,EAAE,MAAM,IAAI,CAAA;CAC3B,+BAcA"}
|
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Layers, SlidersHorizontal } from "lucide-react";
|
|
3
|
+
import { EmptyState } from "../../components/EmptyState.js";
|
|
3
4
|
import { Button } from "../../primitives/button.js";
|
|
4
5
|
// -------------------------------------------------------------------------- //
|
|
5
6
|
// Empty hint — shown on the Layout view before any widget is reachable
|
|
6
7
|
// -------------------------------------------------------------------------- //
|
|
8
|
+
/**
|
|
9
|
+
* The builder's empty state. Its one next step (open the data sources) is the
|
|
10
|
+
* blue primary button: CI §9 "Leer: Empty-State-Karte mit blauem CTA".
|
|
11
|
+
*/
|
|
7
12
|
export function EmptyHint({ L, onGotoPipeline, }) {
|
|
8
|
-
return (
|
|
13
|
+
return (_jsx(EmptyState, { className: "rounded-md border border-dashed", icon: _jsx(Layers, {}), title: L.emptyHintTitle, description: L.emptyHintBody, action: _jsxs(Button, { size: "sm", onClick: onGotoPipeline, children: [_jsx(SlidersHorizontal, { "aria-hidden": "true" }), " ", L.openDataSources] }) }));
|
|
9
14
|
}
|
|
10
15
|
//# sourceMappingURL=EmptyHint.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmptyHint.js","sourceRoot":"","sources":["../../../src/app/builder/EmptyHint.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAGnD,gFAAgF;AAChF,uEAAuE;AACvE,gFAAgF;AAEhF,MAAM,UAAU,SAAS,CAAC,EACxB,CAAC,EACD,cAAc,GAIf;IACC,OAAO,CACL,
|
|
1
|
+
{"version":3,"file":"EmptyHint.js","sourceRoot":"","sources":["../../../src/app/builder/EmptyHint.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAGnD,gFAAgF;AAChF,uEAAuE;AACvE,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,EACxB,CAAC,EACD,cAAc,GAIf;IACC,OAAO,CACL,KAAC,UAAU,IACT,SAAS,EAAC,iCAAiC,EAC3C,IAAI,EAAE,KAAC,MAAM,KAAG,EAChB,KAAK,EAAE,CAAC,CAAC,cAAc,EACvB,WAAW,EAAE,CAAC,CAAC,aAAa,EAC5B,MAAM,EACJ,MAAC,MAAM,IAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,cAAc,aACvC,KAAC,iBAAiB,mBAAa,MAAM,GAAG,OAAE,CAAC,CAAC,eAAe,IACpD,GAEX,CACH,CAAA;AACH,CAAC"}
|
|
@@ -26,7 +26,7 @@ export function LayoutSurface({ L, draft, activeTabIndex, setActiveTabIndex, edi
|
|
|
26
26
|
const idx = draft.tabs.findIndex((t) => t.label === label);
|
|
27
27
|
if (idx >= 0)
|
|
28
28
|
setActiveTabIndex(idx);
|
|
29
|
-
}, children: [_jsxs("div", { className: "mb-3 flex items-center gap-1", children: [_jsx(TabsList, { children: draft.tabs.map((tab, idx) => (_jsxs("div", { className: "group relative inline-flex", children: [_jsx(TabsTrigger, { value: tab.label, className: "pr-7", onDoubleClick: () => setEditingTabIdx(idx), title:
|
|
29
|
+
}, children: [_jsxs("div", { className: "mb-3 flex items-center gap-1", children: [_jsx(TabsList, { children: draft.tabs.map((tab, idx) => (_jsxs("div", { className: "group relative inline-flex", children: [_jsx(TabsTrigger, { value: tab.label, className: "pr-7", onDoubleClick: () => setEditingTabIdx(idx), title: L.renameTitle, children: editingTabIdx === idx ? (_jsx("input", { autoFocus: true, defaultValue: tab.label, "aria-invalid": renameRejected, onClick: (e) => e.stopPropagation(), onPointerDown: (e) => e.stopPropagation(), onKeyDown: (e) => {
|
|
30
30
|
if (e.key === "Enter") {
|
|
31
31
|
e.preventDefault();
|
|
32
32
|
commitRename(idx, e.currentTarget.value);
|
|
@@ -37,9 +37,9 @@ export function LayoutSurface({ L, draft, activeTabIndex, setActiveTabIndex, edi
|
|
|
37
37
|
}
|
|
38
38
|
}, onBlur: (e) => {
|
|
39
39
|
commitRename(idx, e.currentTarget.value);
|
|
40
|
-
}, className: cn("w-24 border-none bg-transparent p-0 text-inherit outline-
|
|
40
|
+
}, className: cn("focus-visible:ring-focus w-24 rounded-sm border-none bg-transparent p-0 text-inherit outline-hidden focus-visible:ring-2", renameRejected && "text-danger-ink"), size: Math.max(tab.label.length + 1, 6) })) : (_jsx("span", { children: tab.label })) }), _jsx("button", { type: "button", "aria-label": L.removeTab, title: L.removeTab, onPointerDown: (e) => e.stopPropagation(), onClick: (e) => {
|
|
41
41
|
e.stopPropagation();
|
|
42
42
|
onRemoveTab(idx);
|
|
43
|
-
}, className: "text-muted-foreground
|
|
43
|
+
}, className: "text-muted-foreground hover:text-foreground absolute top-1/2 right-1 -translate-y-1/2 rounded-sm p-0.5 opacity-0 transition-opacity group-hover:opacity-100 focus-visible:opacity-100 data-[state=active]:opacity-100", children: _jsx(X, { className: "size-3" }) })] }, tab.label))) }), _jsx(Button, { variant: "ghost", size: "icon-sm", onClick: onAddTab, "aria-label": L.addTab, title: L.addTab, children: _jsx(Plus, {}) }), _jsx("span", { className: "text-muted-foreground ml-2 hidden text-[10px] sm:inline", children: L.renameHint })] }), renameRejected && editingTabIdx !== null && (_jsx("p", { className: "text-danger-ink -mt-1 mb-2 text-[11px]", role: "alert", children: L.renameDuplicate })), draft.tabs.map((tab, idx) => (_jsx(TabsContent, { value: tab.label, className: "mt-0", children: idx === activeTabIndex ? _jsx(Workspace, { ...workspace }) : null }, tab.label)))] }));
|
|
44
44
|
}
|
|
45
45
|
//# sourceMappingURL=LayoutSurface.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LayoutSurface.js","sourceRoot":"","sources":["../../../src/app/builder/LayoutSurface.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AACnD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACnF,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAA;AAGvC,OAAO,EAAE,SAAS,EAAuB,MAAM,gBAAgB,CAAA;AAE/D,gFAAgF;AAChF,2EAA2E;AAC3E,iCAAiC;AACjC,gFAAgF;AAEhF;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,CAAC,EACD,KAAK,EACL,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,SAAS,GAaV;IACC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC1B,OAAO,KAAC,SAAS,OAAK,SAAS,EAAE,gBAAgB,QAAC,QAAQ,EAAE,QAAQ,GAAI,CAAA;IAC1E,CAAC;IACD,OAAO,CACL,MAAC,IAAI,IACH,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,KAAK,IAAI,EAAE,EAC9C,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;YACvB,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAA;YAC1D,IAAI,GAAG,IAAI,CAAC;gBAAE,iBAAiB,CAAC,GAAG,CAAC,CAAA;QACtC,CAAC,aAED,eAAK,SAAS,EAAC,8BAA8B,aAC3C,KAAC,QAAQ,cACN,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAC5B,eAAqB,SAAS,EAAC,4BAA4B,aACzD,KAAC,WAAW,IACV,KAAK,EAAE,GAAG,CAAC,KAAK,EAChB,SAAS,EAAC,MAAM,EAChB,aAAa,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAC1C,KAAK,
|
|
1
|
+
{"version":3,"file":"LayoutSurface.js","sourceRoot":"","sources":["../../../src/app/builder/LayoutSurface.tsx"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,8 @@ declare function PipelineStripImpl({ L, keyEntries, stepEntries, keyCatalog, ava
|
|
|
17
17
|
onRemoveStep: (idx: number) => void;
|
|
18
18
|
status: RefreshStatus;
|
|
19
19
|
}): import("react").JSX.Element;
|
|
20
|
-
|
|
20
|
+
/** A dense chrome bar: its Lucide icons draw at stroke 2 (CI §11), not the view's 2.5. */
|
|
21
|
+
declare function DensePipelineStrip(props: Parameters<typeof PipelineStripImpl>[0]): import("react").JSX.Element;
|
|
22
|
+
export declare const PipelineStrip: import("react").MemoExoticComponent<typeof DensePipelineStrip>;
|
|
21
23
|
export {};
|
|
22
24
|
//# sourceMappingURL=PipelineStrip.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PipelineStrip.d.ts","sourceRoot":"","sources":["../../../src/app/builder/PipelineStrip.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"PipelineStrip.d.ts","sourceRoot":"","sources":["../../../src/app/builder/PipelineStrip.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAYhG,OAAO,EAAsC,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AACtF,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAOrE,iBAAS,iBAAiB,CAAC,EACzB,CAAC,EACD,UAAU,EACV,WAAW,EACX,UAAU,EACV,cAAc,EACd,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,WAAW,EACX,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,MAAM,GACP,EAAE;IACD,CAAC,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAA;IAChC,UAAU,EAAE,QAAQ,EAAE,CAAA;IACtB,WAAW,EAAE,eAAe,EAAE,CAAA;IAC9B,UAAU,EAAE,eAAe,EAAE,CAAA;IAC7B,cAAc,EAAE,aAAa,EAAE,CAAA;IAC/B,UAAU,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,CAAA;IACvC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC,QAAQ,EAAE,CAAC,aAAa,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1C,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAA;IAC5D,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,SAAS,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACpC,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,eAAe,CAAC,KAAK,IAAI,CAAA;IACpE,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IACnC,MAAM,EAAE,aAAa,CAAA;CACtB,+BA6MA;AAED,0FAA0F;AAC1F,iBAAS,kBAAkB,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC,+BAMzE;AAED,eAAO,MAAM,aAAa,gEAA2B,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { memo, useMemo } from "react";
|
|
3
|
-
import { ArrowDownToLine, ArrowRightToLine, Plus, X } from "lucide-react";
|
|
3
|
+
import { ArrowDownToLine, ArrowRightToLine, LucideProvider, Plus, X } from "lucide-react";
|
|
4
|
+
import { DENSE_ICON_STROKE } from "../../lib/icon-stroke.js";
|
|
4
5
|
import { Badge } from "../../primitives/badge.js";
|
|
5
6
|
import { Button } from "../../primitives/button.js";
|
|
6
7
|
import { Input } from "../../primitives/input.js";
|
|
@@ -17,15 +18,19 @@ function PipelineStripImpl({ L, keyEntries, stepEntries, keyCatalog, availableSt
|
|
|
17
18
|
map.set(s.id, s);
|
|
18
19
|
return map;
|
|
19
20
|
}, [availableSteps]);
|
|
20
|
-
return (_jsxs("section", { className: "bg-muted/30 -mx-1 rounded-lg border px-3 py-3", children: [_jsxs("div", { className: "mb-2 flex items-center gap-2", children: [_jsx("span", { className: "text-muted-foreground text-[10px] font-semibold tracking-[0.12em] uppercase", children: L.pipelineHeader }),
|
|
21
|
-
const livePreview = formatLiveKeyValue(liveKeys[entry.name]);
|
|
21
|
+
return (_jsxs("section", { className: "bg-muted/30 -mx-1 rounded-lg border px-3 py-3", children: [_jsxs("div", { className: "mb-2 flex items-center gap-2", children: [_jsx("span", { className: "text-muted-foreground text-[10px] font-semibold tracking-[0.12em] uppercase", children: L.pipelineHeader }), _jsxs("span", { className: "text-muted-foreground text-[10px]", children: ["\u00B7 ", L.autoApplies] }), _jsx("div", { className: "ml-auto text-[11px]", children: _jsx(StatusChip, { status: status, L: L }) })] }), _jsxs("div", { className: "grid grid-cols-1 gap-x-6 gap-y-3 lg:grid-cols-2", children: [_jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsxs("div", { className: "text-muted-foreground flex items-center gap-1.5 text-[11px] font-semibold", children: [_jsx(ArrowRightToLine, { className: "size-3" }), L.keysHeader, _jsx(Badge, { variant: "outline", className: "px-1.5 text-[10px]", children: keyEntries.length })] }), keyEntries.length === 0 ? (_jsx("div", { className: "text-muted-foreground rounded-md border border-dashed px-2 py-1.5 text-xs italic", children: L.emptyKeys })) : (_jsx("ul", { className: "flex flex-col gap-1", children: keyEntries.map((entry, idx) => {
|
|
22
|
+
const livePreview = formatLiveKeyValue(liveKeys[entry.name], L.catalogueLive);
|
|
22
23
|
const usedNames = new Set(keyEntries.map((e, i) => (i === idx ? "" : e.name)).filter(Boolean));
|
|
23
24
|
const pickable = keyCatalog.filter((c) => c.key === entry.name || !usedNames.has(c.key));
|
|
24
|
-
return (_jsxs("li", { className: "grid grid-cols-2 items-center gap-1", children: [_jsxs(Select, { value: entry.name || undefined, onValueChange: (value) => onUpdateKey(idx, { name: value }), children: [_jsx(SelectTrigger, { className: "h-7 min-w-0 font-mono text-xs", children: _jsx(SelectValue, { placeholder: L.keyName }) }), _jsx(SelectContent, { children: pickable.length === 0 ? (_jsx("div", { className: "text-muted-foreground px-2 py-1.5 text-xs italic", children:
|
|
25
|
+
return (_jsxs("li", { className: "grid grid-cols-2 items-center gap-1", children: [_jsxs(Select, { value: entry.name || undefined, onValueChange: (value) => onUpdateKey(idx, { name: value }), children: [_jsx(SelectTrigger, { className: "h-7 min-w-0 font-mono text-xs", children: _jsx(SelectValue, { placeholder: L.keyName }) }), _jsx(SelectContent, { children: pickable.length === 0 ? (_jsx("div", { className: "text-muted-foreground px-2 py-1.5 text-xs italic", children: L.noMoreKeys })) : (pickable.map((c) => (_jsx(SelectItem, { value: c.key, className: "py-1.5", children: _jsxs("div", { className: "flex flex-col gap-0.5", children: [_jsx("span", { className: "font-mono text-xs", children: c.key }), c.consumedByWidgets.length + c.consumedBySteps.length > 0 && (_jsxs("span", { className: "text-muted-foreground font-mono text-[10px]", children: ["\u2192 ", [...c.consumedByWidgets, ...c.consumedBySteps].join(", ")] }))] }) }, c.key)))) })] }), _jsxs("div", { className: "flex min-w-0 items-center gap-1", children: [_jsxs("div", { className: "relative min-w-0 flex-1", children: [_jsx(Input, { value: entry.rawValue, onChange: (e) => onUpdateKey(idx, { rawValue: e.target.value }), placeholder: livePreview ?? L.keyValue, className: "h-7 pr-10 font-mono text-xs" }), _jsx("span", { className: "text-muted-foreground pointer-events-none absolute top-1/2 right-2 -translate-y-1/2 font-mono text-[10px] tabular-nums", title: L.parsedType, children: L.valueType(valueTypeLabel(entry.rawValue)) })] }), _jsx(Button, { variant: "ghost", size: "icon-xs", onClick: () => onRemoveKey(idx), "aria-label": L.removeKey, children: _jsx(X, {}) })] })] }, idx));
|
|
25
26
|
}) })), _jsxs(Button, { variant: "ghost", size: "xs", onClick: () => onAddKey(), className: "text-muted-foreground hover:text-foreground self-start", children: [_jsx(Plus, {}), " ", L.addKey] })] }), _jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsxs("div", { className: "text-muted-foreground flex items-center gap-1.5 text-[11px] font-semibold", children: [_jsx(ArrowDownToLine, { className: "size-3" }), L.stepsHeader, _jsx(Badge, { variant: "outline", className: "px-1.5 text-[10px]", children: stepEntries.length })] }), stepEntries.length === 0 ? (_jsx("div", { className: "text-muted-foreground rounded-md border border-dashed px-2 py-1.5 text-xs italic", children: L.emptySteps })) : (_jsx("ul", { className: "flex flex-col gap-1", children: stepEntries.map((step, idx) => {
|
|
26
27
|
const meta = stepLookup.get(step.step);
|
|
27
|
-
return (_jsxs("li", { className: "flex flex-col gap-0.5", children: [_jsxs("div", { className: "flex items-center gap-1", children: [_jsx(Input, { value: step.id, onChange: (e) => onUpdateStep(idx, { id: e.target.value }), placeholder: L.stepContextId, className: "h-7 w-24 font-mono text-xs" }), _jsxs(Select, { value: step.step || undefined, onValueChange: (value) => onUpdateStep(idx, { step: value }), children: [_jsx(SelectTrigger, { className: "h-7 flex-1 text-xs", children: _jsx(SelectValue, { placeholder: L.stepPickerLabel }) }), _jsx(SelectContent, { children: stepsByApp.map(([app, items]) => (_jsxs("div", { children: [_jsx("div", { className: "text-muted-foreground px-2 py-1 text-[10px] font-semibold tracking-wide uppercase", children: app }), items.map((s) => (_jsx(SelectItem, { value: s.id, className: "py-2", children: _jsxs("div", { className: "flex flex-col gap-0.5", children: [_jsx("span", { className: "font-mono text-xs", children: s.id }), _jsxs("div", { className: "text-muted-foreground flex flex-wrap gap-x-2 text-[10px]", children: [_jsxs("span", { className: "font-mono", children: ["\u2190
|
|
28
|
+
return (_jsxs("li", { className: "flex flex-col gap-0.5", children: [_jsxs("div", { className: "flex items-center gap-1", children: [_jsx(Input, { value: step.id, onChange: (e) => onUpdateStep(idx, { id: e.target.value }), placeholder: L.stepContextId, className: "h-7 w-24 font-mono text-xs" }), _jsxs(Select, { value: step.step || undefined, onValueChange: (value) => onUpdateStep(idx, { step: value }), children: [_jsx(SelectTrigger, { className: "h-7 flex-1 text-xs", children: _jsx(SelectValue, { placeholder: L.stepPickerLabel }) }), _jsx(SelectContent, { children: stepsByApp.map(([app, items]) => (_jsxs("div", { children: [_jsx("div", { className: "text-muted-foreground px-2 py-1 text-[10px] font-semibold tracking-wide uppercase", children: app }), items.map((s) => (_jsx(SelectItem, { value: s.id, className: "py-2", children: _jsxs("div", { className: "flex flex-col gap-0.5", children: [_jsx("span", { className: "font-mono text-xs", children: s.id }), _jsxs("div", { className: "text-muted-foreground flex flex-wrap gap-x-2 text-[10px]", children: [_jsxs("span", { className: "font-mono", children: ["\u2190 ", s.requires.length ? s.requires.join(", ") : L.noInputs] }), _jsxs("span", { className: "font-mono", children: ["\u2192 ", s.produces.length ? s.produces.join(", ") : L.noOutputs] })] })] }) }, s.id)))] }, app))) })] }), _jsx(Button, { variant: "ghost", size: "icon-xs", onClick: () => onRemoveStep(idx), "aria-label": L.removeStep, children: _jsx(X, {}) })] }), meta && (_jsxs("div", { className: "text-muted-foreground ml-1 flex flex-wrap gap-x-2 pl-24 text-[10px]", children: [_jsxs("span", { className: "font-mono", children: ["\u2190 ", meta.requires.length ? meta.requires.join(", ") : L.noInputs] }), _jsxs("span", { className: "font-mono", children: ["\u2192 ", meta.produces.length ? meta.produces.join(", ") : L.noOutputs] })] }))] }, idx));
|
|
28
29
|
}) })), _jsxs(Button, { variant: "ghost", size: "xs", onClick: () => onAddStep(), disabled: availableSteps.length === 0, className: "text-muted-foreground hover:text-foreground self-start", children: [_jsx(Plus, {}), " ", L.addStep] })] })] })] }));
|
|
29
30
|
}
|
|
30
|
-
|
|
31
|
+
/** A dense chrome bar: its Lucide icons draw at stroke 2 (CI §11), not the view's 2.5. */
|
|
32
|
+
function DensePipelineStrip(props) {
|
|
33
|
+
return (_jsx(LucideProvider, { strokeWidth: DENSE_ICON_STROKE, children: _jsx(PipelineStripImpl, { ...props }) }));
|
|
34
|
+
}
|
|
35
|
+
export const PipelineStrip = memo(DensePipelineStrip);
|
|
31
36
|
//# sourceMappingURL=PipelineStrip.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PipelineStrip.js","sourceRoot":"","sources":["../../../src/app/builder/PipelineStrip.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AACrC,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"PipelineStrip.js","sourceRoot":"","sources":["../../../src/app/builder/PipelineStrip.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AACrC,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,cAAc,CAAA;AAEzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAA;AACjD,OAAO,EACL,MAAM,EACN,aAAa,EACb,UAAU,EACV,aAAa,EACb,WAAW,GACZ,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAiB,MAAM,oBAAoB,CAAA;AAEtF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,gFAAgF;AAChF,mDAAmD;AACnD,gFAAgF;AAEhF,SAAS,iBAAiB,CAAC,EACzB,CAAC,EACD,UAAU,EACV,WAAW,EACX,UAAU,EACV,cAAc,EACd,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,WAAW,EACX,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,MAAM,GAgBP;IACC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE;QAC9B,MAAM,GAAG,GAAG,IAAI,GAAG,EAAyB,CAAA;QAC5C,KAAK,MAAM,CAAC,IAAI,cAAc;YAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;QAChD,OAAO,GAAG,CAAA;IACZ,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAA;IAEpB,OAAO,CACL,mBAAS,SAAS,EAAC,+CAA+C,aAChE,eAAK,SAAS,EAAC,8BAA8B,aAC3C,eAAM,SAAS,EAAC,6EAA6E,YAC1F,CAAC,CAAC,cAAc,GACZ,EACP,gBAAM,SAAS,EAAC,mCAAmC,wBAAI,CAAC,CAAC,WAAW,IAAQ,EAC5E,cAAK,SAAS,EAAC,qBAAqB,YAClC,KAAC,UAAU,IAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,GAAI,GAChC,IACF,EAEN,eAAK,SAAS,EAAC,iDAAiD,aAC9D,eAAK,SAAS,EAAC,uBAAuB,aACpC,eAAK,SAAS,EAAC,2EAA2E,aACxF,KAAC,gBAAgB,IAAC,SAAS,EAAC,QAAQ,GAAG,EACtC,CAAC,CAAC,UAAU,EACb,KAAC,KAAK,IAAC,OAAO,EAAC,SAAS,EAAC,SAAS,EAAC,oBAAoB,YACpD,UAAU,CAAC,MAAM,GACZ,IACJ,EACL,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACzB,cAAK,SAAS,EAAC,kFAAkF,YAC9F,CAAC,CAAC,SAAS,GACR,CACP,CAAC,CAAC,CAAC,CACF,aAAI,SAAS,EAAC,qBAAqB,YAChC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;oCAC7B,MAAM,WAAW,GAAG,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,CAAA;oCAC7E,MAAM,SAAS,GAAG,IAAI,GAAG,CACvB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CACpE,CAAA;oCACD,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAChC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CACrD,CAAA;oCACD,OAAO,CACL,cAAc,SAAS,EAAC,qCAAqC,aAC3D,MAAC,MAAM,IACL,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,SAAS,EAC9B,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,aAE3D,KAAC,aAAa,IAAC,SAAS,EAAC,+BAA+B,YACtD,KAAC,WAAW,IAAC,WAAW,EAAE,CAAC,CAAC,OAAO,GAAI,GACzB,EAChB,KAAC,aAAa,cACX,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACvB,cAAK,SAAS,EAAC,kDAAkD,YAC9D,CAAC,CAAC,UAAU,GACT,CACP,CAAC,CAAC,CAAC,CACF,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAClB,KAAC,UAAU,IAAa,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,SAAS,EAAC,QAAQ,YACtD,eAAK,SAAS,EAAC,uBAAuB,aACpC,eAAM,SAAS,EAAC,mBAAmB,YAAE,CAAC,CAAC,GAAG,GAAQ,EACjD,CAAC,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,CAC5D,gBAAM,SAAS,EAAC,6CAA6C,wBACxD,CAAC,GAAG,CAAC,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IACvD,CACR,IACG,IARS,CAAC,CAAC,GAAG,CAST,CACd,CAAC,CACH,GACa,IACT,EACT,eAAK,SAAS,EAAC,iCAAiC,aAC9C,eAAK,SAAS,EAAC,yBAAyB,aACtC,KAAC,KAAK,IACJ,KAAK,EAAE,KAAK,CAAC,QAAQ,EACrB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAC/D,WAAW,EAAE,WAAW,IAAI,CAAC,CAAC,QAAQ,EACtC,SAAS,EAAC,6BAA6B,GACvC,EACF,eACE,SAAS,EAAC,wHAAwH,EAClI,KAAK,EAAE,CAAC,CAAC,UAAU,YAElB,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GACvC,IACH,EACN,KAAC,MAAM,IACL,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,SAAS,EACd,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,gBACnB,CAAC,CAAC,SAAS,YAEvB,KAAC,CAAC,KAAG,GACE,IACL,KApDC,GAAG,CAqDP,CACN,CAAA;gCACH,CAAC,CAAC,GACC,CACN,EACD,MAAC,MAAM,IACL,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,EACzB,SAAS,EAAC,wDAAwD,aAElE,KAAC,IAAI,KAAG,OAAE,CAAC,CAAC,MAAM,IACX,IACL,EAEN,eAAK,SAAS,EAAC,uBAAuB,aACpC,eAAK,SAAS,EAAC,2EAA2E,aACxF,KAAC,eAAe,IAAC,SAAS,EAAC,QAAQ,GAAG,EACrC,CAAC,CAAC,WAAW,EACd,KAAC,KAAK,IAAC,OAAO,EAAC,SAAS,EAAC,SAAS,EAAC,oBAAoB,YACpD,WAAW,CAAC,MAAM,GACb,IACJ,EACL,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAC1B,cAAK,SAAS,EAAC,kFAAkF,YAC9F,CAAC,CAAC,UAAU,GACT,CACP,CAAC,CAAC,CAAC,CACF,aAAI,SAAS,EAAC,qBAAqB,YAChC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;oCAC7B,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;oCACtC,OAAO,CACL,cAAc,SAAS,EAAC,uBAAuB,aAC7C,eAAK,SAAS,EAAC,yBAAyB,aACtC,KAAC,KAAK,IACJ,KAAK,EAAE,IAAI,CAAC,EAAE,EACd,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAC1D,WAAW,EAAE,CAAC,CAAC,aAAa,EAC5B,SAAS,EAAC,4BAA4B,GACtC,EACF,MAAC,MAAM,IACL,KAAK,EAAE,IAAI,CAAC,IAAI,IAAI,SAAS,EAC7B,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,aAE5D,KAAC,aAAa,IAAC,SAAS,EAAC,oBAAoB,YAC3C,KAAC,WAAW,IAAC,WAAW,EAAE,CAAC,CAAC,eAAe,GAAI,GACjC,EAChB,KAAC,aAAa,cACX,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAChC,0BACE,cAAK,SAAS,EAAC,mFAAmF,YAC/F,GAAG,GACA,EACL,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAChB,KAAC,UAAU,IAAY,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,EAAC,MAAM,YAClD,eAAK,SAAS,EAAC,uBAAuB,aACpC,eAAM,SAAS,EAAC,mBAAmB,YAAE,CAAC,CAAC,EAAE,GAAQ,EACjD,eAAK,SAAS,EAAC,0DAA0D,aACvE,gBAAM,SAAS,EAAC,WAAW,wBACtB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,IACpD,EACP,gBAAM,SAAS,EAAC,WAAW,wBACtB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,IACrD,IACH,IACF,IAXS,CAAC,CAAC,EAAE,CAYR,CACd,CAAC,KAlBM,GAAG,CAmBP,CACP,CAAC,GACY,IACT,EACT,KAAC,MAAM,IACL,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,SAAS,EACd,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,gBACpB,CAAC,CAAC,UAAU,YAExB,KAAC,CAAC,KAAG,GACE,IACL,EACL,IAAI,IAAI,CACP,eAAK,SAAS,EAAC,qEAAqE,aAClF,gBAAM,SAAS,EAAC,WAAW,wBACtB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,IAC1D,EACP,gBAAM,SAAS,EAAC,WAAW,wBACtB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,IAC3D,IACH,CACP,KA1DM,GAAG,CA2DP,CACN,CAAA;gCACH,CAAC,CAAC,GACC,CACN,EACD,MAAC,MAAM,IACL,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,EAC1B,QAAQ,EAAE,cAAc,CAAC,MAAM,KAAK,CAAC,EACrC,SAAS,EAAC,wDAAwD,aAElE,KAAC,IAAI,KAAG,OAAE,CAAC,CAAC,OAAO,IACZ,IACL,IACF,IACE,CACX,CAAA;AACH,CAAC;AAED,0FAA0F;AAC1F,SAAS,kBAAkB,CAAC,KAA8C;IACxE,OAAO,CACL,KAAC,cAAc,IAAC,WAAW,EAAE,iBAAiB,YAC5C,KAAC,iBAAiB,OAAK,KAAK,GAAI,GACjB,CAClB,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SaveDialog.d.ts","sourceRoot":"","sources":["../../../src/app/builder/SaveDialog.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAMtD,wBAAgB,UAAU,CAAC,EACzB,CAAC,EACD,IAAI,EACJ,YAAY,EACZ,IAAI,EACJ,OAAO,EACP,WAAW,EACX,cAAc,EACd,QAAQ,EACR,IAAI,EACJ,KAAK,GACN,EAAE;IACD,CAAC,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAA;IAChC,IAAI,EAAE,OAAO,CAAA;IACb,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACnC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7B,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACrB,+
|
|
1
|
+
{"version":3,"file":"SaveDialog.d.ts","sourceRoot":"","sources":["../../../src/app/builder/SaveDialog.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAMtD,wBAAgB,UAAU,CAAC,EACzB,CAAC,EACD,IAAI,EACJ,YAAY,EACZ,IAAI,EACJ,OAAO,EACP,WAAW,EACX,cAAc,EACd,QAAQ,EACR,IAAI,EACJ,KAAK,GACN,EAAE;IACD,CAAC,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAA;IAChC,IAAI,EAAE,OAAO,CAAA;IACb,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACnC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7B,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACrB,+BAqDA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
2
|
+
import { ErrorState } from "../../components/ErrorState.js";
|
|
3
3
|
import { Button } from "../../primitives/button.js";
|
|
4
4
|
import { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from "../../primitives/dialog.js";
|
|
5
5
|
import { Input } from "../../primitives/input.js";
|
|
@@ -7,7 +7,7 @@ import { Input } from "../../primitives/input.js";
|
|
|
7
7
|
// Save dialog
|
|
8
8
|
// -------------------------------------------------------------------------- //
|
|
9
9
|
export function SaveDialog({ L, open, onOpenChange, name, setName, description, setDescription, onSubmit, busy, error, }) {
|
|
10
|
-
return (_jsx(Dialog, { open: open, onOpenChange: onOpenChange, children: _jsxs(DialogContent, { children: [_jsxs(DialogHeader, { children: [_jsx(DialogTitle, { children: L.saveDialogTitle }), _jsx(DialogDescription, { children: L.saveDialogDescription })] }), _jsxs("div", { className: "flex flex-col gap-3", children: [_jsxs("label", { className: "flex flex-col gap-1 text-sm", children: [_jsx("span", { className: "font-medium", children: L.saveNameLabel }), _jsx(Input, { value: name, onChange: (e) => setName(e.target.value), placeholder:
|
|
10
|
+
return (_jsx(Dialog, { open: open, onOpenChange: onOpenChange, children: _jsxs(DialogContent, { children: [_jsxs(DialogHeader, { children: [_jsx(DialogTitle, { children: L.saveDialogTitle }), _jsx(DialogDescription, { children: L.saveDialogDescription })] }), _jsxs("div", { className: "flex flex-col gap-3", children: [_jsxs("label", { className: "flex flex-col gap-1 text-sm", children: [_jsx("span", { className: "font-medium", children: L.saveNameLabel }), _jsx(Input, { value: name, onChange: (e) => setName(e.target.value), placeholder: L.saveNamePlaceholder, autoFocus: true })] }), _jsxs("label", { className: "flex flex-col gap-1 text-sm", children: [_jsx("span", { className: "font-medium", children: L.saveDescriptionLabel }), _jsx(Input, { value: description, onChange: (e) => setDescription(e.target.value), placeholder: L.saveDescriptionPlaceholder })] }), error && (_jsx(ErrorState, { variant: "inline", title: L.saveError, description: L.saveErrorHint, details: error }))] }), _jsxs(DialogFooter, { children: [_jsx(DialogClose, { asChild: true, children: _jsx(Button, { variant: "outline", children: L.cancel }) }), _jsx(Button, { disabled: !name.trim() || busy, onClick: () => {
|
|
11
11
|
void onSubmit();
|
|
12
12
|
}, children: L.saveConfirm })] })] }) }));
|
|
13
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SaveDialog.js","sourceRoot":"","sources":["../../../src/app/builder/SaveDialog.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"SaveDialog.js","sourceRoot":"","sources":["../../../src/app/builder/SaveDialog.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AACnD,OAAO,EACL,MAAM,EACN,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,WAAW,GACZ,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAA;AAGjD,gFAAgF;AAChF,cAAc;AACd,gFAAgF;AAEhF,MAAM,UAAU,UAAU,CAAC,EACzB,CAAC,EACD,IAAI,EACJ,YAAY,EACZ,IAAI,EACJ,OAAO,EACP,WAAW,EACX,cAAc,EACd,QAAQ,EACR,IAAI,EACJ,KAAK,GAYN;IACC,OAAO,CACL,KAAC,MAAM,IAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,YAC5C,MAAC,aAAa,eACZ,MAAC,YAAY,eACX,KAAC,WAAW,cAAE,CAAC,CAAC,eAAe,GAAe,EAC9C,KAAC,iBAAiB,cAAE,CAAC,CAAC,qBAAqB,GAAqB,IACnD,EACf,eAAK,SAAS,EAAC,qBAAqB,aAClC,iBAAO,SAAS,EAAC,6BAA6B,aAC5C,eAAM,SAAS,EAAC,aAAa,YAAE,CAAC,CAAC,aAAa,GAAQ,EACtD,KAAC,KAAK,IACJ,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACxC,WAAW,EAAE,CAAC,CAAC,mBAAmB,EAClC,SAAS,SACT,IACI,EACR,iBAAO,SAAS,EAAC,6BAA6B,aAC5C,eAAM,SAAS,EAAC,aAAa,YAAE,CAAC,CAAC,oBAAoB,GAAQ,EAC7D,KAAC,KAAK,IACJ,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC/C,WAAW,EAAE,CAAC,CAAC,0BAA0B,GACzC,IACI,EAGP,KAAK,IAAI,CACR,KAAC,UAAU,IACT,OAAO,EAAC,QAAQ,EAChB,KAAK,EAAE,CAAC,CAAC,SAAS,EAClB,WAAW,EAAE,CAAC,CAAC,aAAa,EAC5B,OAAO,EAAE,KAAK,GACd,CACH,IACG,EACN,MAAC,YAAY,eACX,KAAC,WAAW,IAAC,OAAO,kBAClB,KAAC,MAAM,IAAC,OAAO,EAAC,SAAS,YAAE,CAAC,CAAC,MAAM,GAAU,GACjC,EACd,KAAC,MAAM,IACL,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,EAC9B,OAAO,EAAE,GAAG,EAAE;gCACZ,KAAK,QAAQ,EAAE,CAAA;4BACjB,CAAC,YAEA,CAAC,CAAC,WAAW,GACP,IACI,IACD,GACT,CACV,CAAA;AACH,CAAC"}
|