@12ui/design 0.2.72 → 0.2.73
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 +242 -54
- package/SKILL.md +28 -33
- package/dist/cli-arguments.d.ts.map +1 -1
- package/dist/cli-arguments.js +3 -0
- package/dist/cli-arguments.js.map +1 -1
- package/dist/cli-branch-command.d.ts.map +1 -1
- package/dist/cli-branch-command.js +4 -0
- package/dist/cli-branch-command.js.map +1 -1
- package/dist/cli-capabilities.d.ts +26 -1
- package/dist/cli-capabilities.d.ts.map +1 -1
- package/dist/cli-capabilities.js +26 -1
- package/dist/cli-capabilities.js.map +1 -1
- package/dist/cli-corpus-command.d.ts +5 -4
- package/dist/cli-corpus-command.d.ts.map +1 -1
- package/dist/cli-corpus-command.js +17 -26
- package/dist/cli-corpus-command.js.map +1 -1
- package/dist/cli-corpus-run.js +1 -1
- package/dist/cli-corpus-run.js.map +1 -1
- package/dist/cli-draft-command.js +1 -1
- package/dist/cli-draft-command.js.map +1 -1
- package/dist/cli-help/design.d.ts +26 -6
- package/dist/cli-help/design.d.ts.map +1 -1
- package/dist/cli-help/design.js +39 -7
- package/dist/cli-help/design.js.map +1 -1
- package/dist/cli-help/index.d.ts +113 -7
- package/dist/cli-help/index.d.ts.map +1 -1
- package/dist/cli-help/index.js +2 -0
- package/dist/cli-help/index.js.map +1 -1
- package/dist/cli-help/meta.d.ts +1 -1
- package/dist/cli-help/meta.d.ts.map +1 -1
- package/dist/cli-help/meta.js +2 -1
- package/dist/cli-help/meta.js.map +1 -1
- package/dist/cli-help/workflow.d.ts +90 -0
- package/dist/cli-help/workflow.d.ts.map +1 -0
- package/dist/cli-help/workflow.js +89 -0
- package/dist/cli-help/workflow.js.map +1 -0
- package/dist/cli-open-browser.d.ts +7 -0
- package/dist/cli-open-browser.d.ts.map +1 -0
- package/dist/cli-open-browser.js +25 -0
- package/dist/cli-open-browser.js.map +1 -0
- package/dist/cli-prototype-command.d.ts +3 -1
- package/dist/cli-prototype-command.d.ts.map +1 -1
- package/dist/cli-prototype-command.js +33 -7
- package/dist/cli-prototype-command.js.map +1 -1
- package/dist/cli-review-command.d.ts.map +1 -1
- package/dist/cli-review-command.js +1 -16
- package/dist/cli-review-command.js.map +1 -1
- package/dist/cli-run.d.ts.map +1 -1
- package/dist/cli-run.js +35 -3
- package/dist/cli-run.js.map +1 -1
- package/dist/cli-usage.d.ts.map +1 -1
- package/dist/cli-usage.js +39 -5
- package/dist/cli-usage.js.map +1 -1
- package/dist/cli-workflow-command.d.ts +8 -0
- package/dist/cli-workflow-command.d.ts.map +1 -0
- package/dist/cli-workflow-command.js +97 -0
- package/dist/cli-workflow-command.js.map +1 -0
- package/dist/cli-workspace-command.d.ts +25 -0
- package/dist/cli-workspace-command.d.ts.map +1 -0
- package/dist/cli-workspace-command.js +95 -0
- package/dist/cli-workspace-command.js.map +1 -0
- package/dist/config.d.ts +6 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +12 -4
- package/dist/config.js.map +1 -1
- package/dist/corpus-access.d.ts +11 -0
- package/dist/corpus-access.d.ts.map +1 -0
- package/dist/corpus-access.js +18 -0
- package/dist/corpus-access.js.map +1 -0
- package/dist/corpus-client.d.ts +11 -11
- package/dist/corpus-client.d.ts.map +1 -1
- package/dist/corpus-client.js +17 -6
- package/dist/corpus-client.js.map +1 -1
- package/dist/corpus-inspiration-failure.d.ts +1 -1
- package/dist/corpus-inspiration-failure.js +2 -2
- package/dist/corpus-inspiration-failure.js.map +1 -1
- package/dist/corpus-reference-download-retry.d.ts.map +1 -1
- package/dist/corpus-reference-download-retry.js +11 -1
- package/dist/corpus-reference-download-retry.js.map +1 -1
- package/dist/corpus-request-error.d.ts +2 -0
- package/dist/corpus-request-error.d.ts.map +1 -1
- package/dist/corpus-request-error.js +2 -0
- package/dist/corpus-request-error.js.map +1 -1
- package/dist/corpus-retry-guidance.d.ts +5 -0
- package/dist/corpus-retry-guidance.d.ts.map +1 -0
- package/dist/corpus-retry-guidance.js +18 -0
- package/dist/corpus-retry-guidance.js.map +1 -0
- package/dist/improve-pricing-plan.d.ts.map +1 -1
- package/dist/improve-pricing-plan.js +2 -4
- package/dist/improve-pricing-plan.js.map +1 -1
- package/dist/index.d.ts +10 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -1
- package/dist/index.js.map +1 -1
- package/dist/legacy-skill-catalog.d.ts.map +1 -1
- package/dist/legacy-skill-catalog.js +41 -0
- package/dist/legacy-skill-catalog.js.map +1 -1
- package/dist/mcp-slate-command.d.ts +31 -0
- package/dist/mcp-slate-command.d.ts.map +1 -0
- package/dist/mcp-slate-command.js +118 -0
- package/dist/mcp-slate-command.js.map +1 -0
- package/dist/mcp-slate-image.d.ts +22 -0
- package/dist/mcp-slate-image.d.ts.map +1 -0
- package/dist/mcp-slate-image.js +28 -0
- package/dist/mcp-slate-image.js.map +1 -0
- package/dist/mcp-slate-latest.d.ts +13 -0
- package/dist/mcp-slate-latest.d.ts.map +1 -0
- package/dist/mcp-slate-latest.js +34 -0
- package/dist/mcp-slate-latest.js.map +1 -0
- package/dist/mcp-slate-names.d.ts +25 -0
- package/dist/mcp-slate-names.d.ts.map +1 -0
- package/dist/mcp-slate-names.js +49 -0
- package/dist/mcp-slate-names.js.map +1 -0
- package/dist/mcp-slate-resource.d.ts +5 -0
- package/dist/mcp-slate-resource.d.ts.map +1 -0
- package/dist/mcp-slate-resource.js +37 -0
- package/dist/mcp-slate-resource.js.map +1 -0
- package/dist/mcp-slate-run.d.ts +41 -0
- package/dist/mcp-slate-run.d.ts.map +1 -0
- package/dist/mcp-slate-run.js +88 -0
- package/dist/mcp-slate-run.js.map +1 -0
- package/dist/mcp-slate-tool-defs.d.ts +61 -0
- package/dist/mcp-slate-tool-defs.d.ts.map +1 -0
- package/dist/mcp-slate-tool-defs.js +247 -0
- package/dist/mcp-slate-tool-defs.js.map +1 -0
- package/dist/mcp-slate-tools.d.ts +8 -0
- package/dist/mcp-slate-tools.d.ts.map +1 -0
- package/dist/mcp-slate-tools.js +45 -0
- package/dist/mcp-slate-tools.js.map +1 -0
- package/dist/mcp-slate-ui-copy.d.ts +134 -0
- package/dist/mcp-slate-ui-copy.d.ts.map +1 -0
- package/dist/mcp-slate-ui-copy.js +136 -0
- package/dist/mcp-slate-ui-copy.js.map +1 -0
- package/dist/mcp-slate-ui-script-bridge.d.ts +18 -0
- package/dist/mcp-slate-ui-script-bridge.d.ts.map +1 -0
- package/dist/mcp-slate-ui-script-bridge.js +137 -0
- package/dist/mcp-slate-ui-script-bridge.js.map +1 -0
- package/dist/mcp-slate-ui-script-browser.d.ts +12 -0
- package/dist/mcp-slate-ui-script-browser.d.ts.map +1 -0
- package/dist/mcp-slate-ui-script-browser.js +19 -0
- package/dist/mcp-slate-ui-script-browser.js.map +1 -0
- package/dist/mcp-slate-ui-script-dialog.d.ts +20 -0
- package/dist/mcp-slate-ui-script-dialog.d.ts.map +1 -0
- package/dist/mcp-slate-ui-script-dialog.js +332 -0
- package/dist/mcp-slate-ui-script-dialog.js.map +1 -0
- package/dist/mcp-slate-ui-script-inline.d.ts +10 -0
- package/dist/mcp-slate-ui-script-inline.d.ts.map +1 -0
- package/dist/mcp-slate-ui-script-inline.js +221 -0
- package/dist/mcp-slate-ui-script-inline.js.map +1 -0
- package/dist/mcp-slate-ui-script-inspiration.d.ts +12 -0
- package/dist/mcp-slate-ui-script-inspiration.d.ts.map +1 -0
- package/dist/mcp-slate-ui-script-inspiration.js +216 -0
- package/dist/mcp-slate-ui-script-inspiration.js.map +1 -0
- package/dist/mcp-slate-ui-script-more.d.ts +30 -0
- package/dist/mcp-slate-ui-script-more.d.ts.map +1 -0
- package/dist/mcp-slate-ui-script-more.js +225 -0
- package/dist/mcp-slate-ui-script-more.js.map +1 -0
- package/dist/mcp-slate-ui-script-progress.d.ts +7 -0
- package/dist/mcp-slate-ui-script-progress.d.ts.map +1 -0
- package/dist/mcp-slate-ui-script-progress.js +9 -0
- package/dist/mcp-slate-ui-script-progress.js.map +1 -0
- package/dist/mcp-slate-ui-script-remote.d.ts +28 -0
- package/dist/mcp-slate-ui-script-remote.d.ts.map +1 -0
- package/dist/mcp-slate-ui-script-remote.js +147 -0
- package/dist/mcp-slate-ui-script-remote.js.map +1 -0
- package/dist/mcp-slate-ui-script-scribble.d.ts +19 -0
- package/dist/mcp-slate-ui-script-scribble.d.ts.map +1 -0
- package/dist/mcp-slate-ui-script-scribble.js +114 -0
- package/dist/mcp-slate-ui-script-scribble.js.map +1 -0
- package/dist/mcp-slate-ui-script-select.d.ts +16 -0
- package/dist/mcp-slate-ui-script-select.d.ts.map +1 -0
- package/dist/mcp-slate-ui-script-select.js +73 -0
- package/dist/mcp-slate-ui-script-select.js.map +1 -0
- package/dist/mcp-slate-ui-script-stage.d.ts +11 -0
- package/dist/mcp-slate-ui-script-stage.d.ts.map +1 -0
- package/dist/mcp-slate-ui-script-stage.js +181 -0
- package/dist/mcp-slate-ui-script-stage.js.map +1 -0
- package/dist/mcp-slate-ui-script-state.d.ts +13 -0
- package/dist/mcp-slate-ui-script-state.d.ts.map +1 -0
- package/dist/mcp-slate-ui-script-state.js +306 -0
- package/dist/mcp-slate-ui-script-state.js.map +1 -0
- package/dist/mcp-slate-ui-script-thumbtools.d.ts +23 -0
- package/dist/mcp-slate-ui-script-thumbtools.d.ts.map +1 -0
- package/dist/mcp-slate-ui-script-thumbtools.js +103 -0
- package/dist/mcp-slate-ui-script-thumbtools.js.map +1 -0
- package/dist/mcp-slate-ui-script.d.ts +28 -0
- package/dist/mcp-slate-ui-script.d.ts.map +1 -0
- package/dist/mcp-slate-ui-script.js +58 -0
- package/dist/mcp-slate-ui-script.js.map +1 -0
- package/dist/mcp-slate-ui-styles-dialog.d.ts +17 -0
- package/dist/mcp-slate-ui-styles-dialog.d.ts.map +1 -0
- package/dist/mcp-slate-ui-styles-dialog.js +73 -0
- package/dist/mcp-slate-ui-styles-dialog.js.map +1 -0
- package/dist/mcp-slate-ui-styles-stage.d.ts +12 -0
- package/dist/mcp-slate-ui-styles-stage.d.ts.map +1 -0
- package/dist/mcp-slate-ui-styles-stage.js +53 -0
- package/dist/mcp-slate-ui-styles-stage.js.map +1 -0
- package/dist/mcp-slate-ui-styles-thumbtools.d.ts +10 -0
- package/dist/mcp-slate-ui-styles-thumbtools.d.ts.map +1 -0
- package/dist/mcp-slate-ui-styles-thumbtools.js +25 -0
- package/dist/mcp-slate-ui-styles-thumbtools.js.map +1 -0
- package/dist/mcp-slate-ui-styles.d.ts +13 -0
- package/dist/mcp-slate-ui-styles.d.ts.map +1 -0
- package/dist/mcp-slate-ui-styles.js +117 -0
- package/dist/mcp-slate-ui-styles.js.map +1 -0
- package/dist/mcp-slate-ui.d.ts +16 -0
- package/dist/mcp-slate-ui.d.ts.map +1 -0
- package/dist/mcp-slate-ui.js +58 -0
- package/dist/mcp-slate-ui.js.map +1 -0
- package/dist/mcp-slate-workspace-tools.d.ts +15 -0
- package/dist/mcp-slate-workspace-tools.d.ts.map +1 -0
- package/dist/mcp-slate-workspace-tools.js +155 -0
- package/dist/mcp-slate-workspace-tools.js.map +1 -0
- package/dist/mcp-tool-definitions.d.ts.map +1 -1
- package/dist/mcp-tool-definitions.js +9 -7
- package/dist/mcp-tool-definitions.js.map +1 -1
- package/dist/mcp-tool-handler.d.ts +8 -2
- package/dist/mcp-tool-handler.d.ts.map +1 -1
- package/dist/mcp-tool-handler.js +34 -13
- package/dist/mcp-tool-handler.js.map +1 -1
- package/dist/mcp-workflow-tools.d.ts +6 -0
- package/dist/mcp-workflow-tools.d.ts.map +1 -0
- package/dist/mcp-workflow-tools.js +108 -0
- package/dist/mcp-workflow-tools.js.map +1 -0
- package/dist/prototype-label-client.d.ts +5 -0
- package/dist/prototype-label-client.d.ts.map +1 -1
- package/dist/prototype-label-client.js.map +1 -1
- package/dist/prototype-poststep.d.ts +2 -2
- package/dist/prototype-poststep.d.ts.map +1 -1
- package/dist/prototype-poststep.js +3 -0
- package/dist/prototype-poststep.js.map +1 -1
- package/dist/prototype-run-record.d.ts +6 -2
- package/dist/prototype-run-record.d.ts.map +1 -1
- package/dist/prototype-run-record.js +6 -0
- package/dist/prototype-run-record.js.map +1 -1
- package/dist/prototype-runner.d.ts +2 -2
- package/dist/prototype-runner.d.ts.map +1 -1
- package/dist/prototype-runner.js +5 -2
- package/dist/prototype-runner.js.map +1 -1
- package/dist/prototype-workflow-contract.d.ts +13 -0
- package/dist/prototype-workflow-contract.d.ts.map +1 -0
- package/dist/prototype-workflow-contract.js +82 -0
- package/dist/prototype-workflow-contract.js.map +1 -0
- package/dist/prototype-workflow-labels.d.ts +29 -0
- package/dist/prototype-workflow-labels.d.ts.map +1 -0
- package/dist/prototype-workflow-labels.js +93 -0
- package/dist/prototype-workflow-labels.js.map +1 -0
- package/dist/run-journal-commands.d.ts.map +1 -1
- package/dist/run-journal-commands.js +18 -5
- package/dist/run-journal-commands.js.map +1 -1
- package/dist/server.d.ts +22 -2
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +44 -8
- package/dist/server.js.map +1 -1
- package/dist/slate-actions.d.ts +38 -0
- package/dist/slate-actions.d.ts.map +1 -0
- package/dist/slate-actions.js +102 -0
- package/dist/slate-actions.js.map +1 -0
- package/dist/slate-annotate.d.ts +36 -0
- package/dist/slate-annotate.d.ts.map +1 -0
- package/dist/slate-annotate.js +71 -0
- package/dist/slate-annotate.js.map +1 -0
- package/dist/slate-approvals.d.ts +61 -0
- package/dist/slate-approvals.d.ts.map +1 -0
- package/dist/slate-approvals.js +153 -0
- package/dist/slate-approvals.js.map +1 -0
- package/dist/slate-browser-decision.d.ts +30 -0
- package/dist/slate-browser-decision.d.ts.map +1 -0
- package/dist/slate-browser-decision.js +24 -0
- package/dist/slate-browser-decision.js.map +1 -0
- package/dist/slate-browser-host-script.d.ts +14 -0
- package/dist/slate-browser-host-script.d.ts.map +1 -0
- package/dist/slate-browser-host-script.js +125 -0
- package/dist/slate-browser-host-script.js.map +1 -0
- package/dist/slate-browser-host.d.ts +9 -0
- package/dist/slate-browser-host.d.ts.map +1 -0
- package/dist/slate-browser-host.js +37 -0
- package/dist/slate-browser-host.js.map +1 -0
- package/dist/slate-browser-server.d.ts +37 -0
- package/dist/slate-browser-server.d.ts.map +1 -0
- package/dist/slate-browser-server.js +186 -0
- package/dist/slate-browser-server.js.map +1 -0
- package/dist/slate-commit.d.ts +28 -0
- package/dist/slate-commit.d.ts.map +1 -0
- package/dist/slate-commit.js +218 -0
- package/dist/slate-commit.js.map +1 -0
- package/dist/slate-corpus.d.ts +14 -0
- package/dist/slate-corpus.d.ts.map +1 -0
- package/dist/slate-corpus.js +32 -0
- package/dist/slate-corpus.js.map +1 -0
- package/dist/slate-edit-prompt.d.ts +18 -0
- package/dist/slate-edit-prompt.d.ts.map +1 -0
- package/dist/slate-edit-prompt.js +41 -0
- package/dist/slate-edit-prompt.js.map +1 -0
- package/dist/slate-edit-runner.d.ts +4 -0
- package/dist/slate-edit-runner.d.ts.map +1 -0
- package/dist/slate-edit-runner.js +90 -0
- package/dist/slate-edit-runner.js.map +1 -0
- package/dist/slate-editability.d.ts +20 -0
- package/dist/slate-editability.d.ts.map +1 -0
- package/dist/slate-editability.js +19 -0
- package/dist/slate-editability.js.map +1 -0
- package/dist/slate-errors.d.ts +15 -0
- package/dist/slate-errors.d.ts.map +1 -0
- package/dist/slate-errors.js +21 -0
- package/dist/slate-errors.js.map +1 -0
- package/dist/slate-handoff-options.d.ts +40 -0
- package/dist/slate-handoff-options.d.ts.map +1 -0
- package/dist/slate-handoff-options.js +127 -0
- package/dist/slate-handoff-options.js.map +1 -0
- package/dist/slate-handoff.d.ts +11 -0
- package/dist/slate-handoff.d.ts.map +1 -0
- package/dist/slate-handoff.js +56 -0
- package/dist/slate-handoff.js.map +1 -0
- package/dist/slate-ids.d.ts +33 -0
- package/dist/slate-ids.d.ts.map +1 -0
- package/dist/slate-ids.js +47 -0
- package/dist/slate-ids.js.map +1 -0
- package/dist/slate-image-executor.d.ts +39 -0
- package/dist/slate-image-executor.d.ts.map +1 -0
- package/dist/slate-image-executor.js +52 -0
- package/dist/slate-image-executor.js.map +1 -0
- package/dist/slate-inspiration.d.ts +22 -0
- package/dist/slate-inspiration.d.ts.map +1 -0
- package/dist/slate-inspiration.js +112 -0
- package/dist/slate-inspiration.js.map +1 -0
- package/dist/slate-labels.d.ts +11 -0
- package/dist/slate-labels.d.ts.map +1 -0
- package/dist/slate-labels.js +32 -0
- package/dist/slate-labels.js.map +1 -0
- package/dist/slate-ledger.d.ts +29 -0
- package/dist/slate-ledger.d.ts.map +1 -0
- package/dist/slate-ledger.js +65 -0
- package/dist/slate-ledger.js.map +1 -0
- package/dist/slate-liveness.d.ts +26 -0
- package/dist/slate-liveness.d.ts.map +1 -0
- package/dist/slate-liveness.js +49 -0
- package/dist/slate-liveness.js.map +1 -0
- package/dist/slate-local-image.d.ts +19 -0
- package/dist/slate-local-image.d.ts.map +1 -0
- package/dist/slate-local-image.js +36 -0
- package/dist/slate-local-image.js.map +1 -0
- package/dist/slate-lock.d.ts +64 -0
- package/dist/slate-lock.d.ts.map +1 -0
- package/dist/slate-lock.js +178 -0
- package/dist/slate-lock.js.map +1 -0
- package/dist/slate-paths.d.ts +45 -0
- package/dist/slate-paths.d.ts.map +1 -0
- package/dist/slate-paths.js +132 -0
- package/dist/slate-paths.js.map +1 -0
- package/dist/slate-pick.d.ts +29 -0
- package/dist/slate-pick.d.ts.map +1 -0
- package/dist/slate-pick.js +55 -0
- package/dist/slate-pick.js.map +1 -0
- package/dist/slate-reference-ids.d.ts +6 -0
- package/dist/slate-reference-ids.d.ts.map +1 -0
- package/dist/slate-reference-ids.js +17 -0
- package/dist/slate-reference-ids.js.map +1 -0
- package/dist/slate-reference-store.d.ts +23 -0
- package/dist/slate-reference-store.d.ts.map +1 -0
- package/dist/slate-reference-store.js +46 -0
- package/dist/slate-reference-store.js.map +1 -0
- package/dist/slate-resume.d.ts +19 -0
- package/dist/slate-resume.d.ts.map +1 -0
- package/dist/slate-resume.js +94 -0
- package/dist/slate-resume.js.map +1 -0
- package/dist/slate-round-params.d.ts +20 -0
- package/dist/slate-round-params.d.ts.map +1 -0
- package/dist/slate-round-params.js +32 -0
- package/dist/slate-round-params.js.map +1 -0
- package/dist/slate-round-prompt.d.ts +18 -0
- package/dist/slate-round-prompt.d.ts.map +1 -0
- package/dist/slate-round-prompt.js +20 -0
- package/dist/slate-round-prompt.js.map +1 -0
- package/dist/slate-round-runner.d.ts +4 -0
- package/dist/slate-round-runner.d.ts.map +1 -0
- package/dist/slate-round-runner.js +125 -0
- package/dist/slate-round-runner.js.map +1 -0
- package/dist/slate-round-search.d.ts +7 -0
- package/dist/slate-round-search.d.ts.map +1 -0
- package/dist/slate-round-search.js +77 -0
- package/dist/slate-round-search.js.map +1 -0
- package/dist/slate-run-action.d.ts +14 -0
- package/dist/slate-run-action.d.ts.map +1 -0
- package/dist/slate-run-action.js +81 -0
- package/dist/slate-run-action.js.map +1 -0
- package/dist/slate-runner-context.d.ts +57 -0
- package/dist/slate-runner-context.d.ts.map +1 -0
- package/dist/slate-runner-context.js +79 -0
- package/dist/slate-runner-context.js.map +1 -0
- package/dist/slate-runner-failure.d.ts +8 -0
- package/dist/slate-runner-failure.d.ts.map +1 -0
- package/dist/slate-runner-failure.js +17 -0
- package/dist/slate-runner-failure.js.map +1 -0
- package/dist/slate-runner-flag.d.ts +3 -0
- package/dist/slate-runner-flag.d.ts.map +1 -0
- package/dist/slate-runner-flag.js +3 -0
- package/dist/slate-runner-flag.js.map +1 -0
- package/dist/slate-runner-main.d.ts +31 -0
- package/dist/slate-runner-main.d.ts.map +1 -0
- package/dist/slate-runner-main.js +132 -0
- package/dist/slate-runner-main.js.map +1 -0
- package/dist/slate-runner-spawn.d.ts +23 -0
- package/dist/slate-runner-spawn.d.ts.map +1 -0
- package/dist/slate-runner-spawn.js +27 -0
- package/dist/slate-runner-spawn.js.map +1 -0
- package/dist/slate-runtime.d.ts +38 -0
- package/dist/slate-runtime.d.ts.map +1 -0
- package/dist/slate-runtime.js +48 -0
- package/dist/slate-runtime.js.map +1 -0
- package/dist/slate-versions.d.ts +26 -0
- package/dist/slate-versions.d.ts.map +1 -0
- package/dist/slate-versions.js +110 -0
- package/dist/slate-versions.js.map +1 -0
- package/dist/slate-view-contract.d.ts +233 -0
- package/dist/slate-view-contract.d.ts.map +1 -0
- package/dist/slate-view-contract.js +17 -0
- package/dist/slate-view-contract.js.map +1 -0
- package/dist/slate-view-types.d.ts +2 -0
- package/dist/slate-view-types.d.ts.map +1 -0
- package/dist/slate-view-types.js +2 -0
- package/dist/slate-view-types.js.map +1 -0
- package/dist/slate-view.d.ts +19 -0
- package/dist/slate-view.d.ts.map +1 -0
- package/dist/slate-view.js +184 -0
- package/dist/slate-view.js.map +1 -0
- package/dist/slate-workspace-parse.d.ts +20 -0
- package/dist/slate-workspace-parse.d.ts.map +1 -0
- package/dist/slate-workspace-parse.js +437 -0
- package/dist/slate-workspace-parse.js.map +1 -0
- package/dist/slate-workspace-store.d.ts +44 -0
- package/dist/slate-workspace-store.d.ts.map +1 -0
- package/dist/slate-workspace-store.js +270 -0
- package/dist/slate-workspace-store.js.map +1 -0
- package/dist/slate-workspace-types.d.ts +176 -0
- package/dist/slate-workspace-types.d.ts.map +1 -0
- package/dist/slate-workspace-types.js +13 -0
- package/dist/slate-workspace-types.js.map +1 -0
- package/dist/workflow/adapter-12ui.d.ts +4 -0
- package/dist/workflow/adapter-12ui.d.ts.map +1 -0
- package/dist/workflow/adapter-12ui.js +147 -0
- package/dist/workflow/adapter-12ui.js.map +1 -0
- package/dist/workflow/adapter-layerdoc.d.ts +16 -0
- package/dist/workflow/adapter-layerdoc.d.ts.map +1 -0
- package/dist/workflow/adapter-layerdoc.js +116 -0
- package/dist/workflow/adapter-layerdoc.js.map +1 -0
- package/dist/workflow/adapter-openai.d.ts +4 -0
- package/dist/workflow/adapter-openai.d.ts.map +1 -0
- package/dist/workflow/adapter-openai.js +166 -0
- package/dist/workflow/adapter-openai.js.map +1 -0
- package/dist/workflow/adapter-process.d.ts +7 -0
- package/dist/workflow/adapter-process.d.ts.map +1 -0
- package/dist/workflow/adapter-process.js +174 -0
- package/dist/workflow/adapter-process.js.map +1 -0
- package/dist/workflow/adapter-prototype-labels.d.ts +15 -0
- package/dist/workflow/adapter-prototype-labels.d.ts.map +1 -0
- package/dist/workflow/adapter-prototype-labels.js +71 -0
- package/dist/workflow/adapter-prototype-labels.js.map +1 -0
- package/dist/workflow/adapter-types.d.ts +40 -0
- package/dist/workflow/adapter-types.d.ts.map +1 -0
- package/dist/workflow/adapter-types.js +2 -0
- package/dist/workflow/adapter-types.js.map +1 -0
- package/dist/workflow/adapter-utils.d.ts +11 -0
- package/dist/workflow/adapter-utils.d.ts.map +1 -0
- package/dist/workflow/adapter-utils.js +72 -0
- package/dist/workflow/adapter-utils.js.map +1 -0
- package/dist/workflow/adapters.d.ts +6 -0
- package/dist/workflow/adapters.d.ts.map +1 -0
- package/dist/workflow/adapters.js +25 -0
- package/dist/workflow/adapters.js.map +1 -0
- package/dist/workflow/artifact.d.ts +11 -0
- package/dist/workflow/artifact.d.ts.map +1 -0
- package/dist/workflow/artifact.js +94 -0
- package/dist/workflow/artifact.js.map +1 -0
- package/dist/workflow/bundle-collect.d.ts +8 -0
- package/dist/workflow/bundle-collect.d.ts.map +1 -0
- package/dist/workflow/bundle-collect.js +56 -0
- package/dist/workflow/bundle-collect.js.map +1 -0
- package/dist/workflow/bundle-export.d.ts +16 -0
- package/dist/workflow/bundle-export.d.ts.map +1 -0
- package/dist/workflow/bundle-export.js +174 -0
- package/dist/workflow/bundle-export.js.map +1 -0
- package/dist/workflow/bundle-paths.d.ts +7 -0
- package/dist/workflow/bundle-paths.d.ts.map +1 -0
- package/dist/workflow/bundle-paths.js +35 -0
- package/dist/workflow/bundle-paths.js.map +1 -0
- package/dist/workflow/bundle.d.ts +4 -0
- package/dist/workflow/bundle.d.ts.map +1 -0
- package/dist/workflow/bundle.js +4 -0
- package/dist/workflow/bundle.js.map +1 -0
- package/dist/workflow/capture.d.ts +36 -0
- package/dist/workflow/capture.d.ts.map +1 -0
- package/dist/workflow/capture.js +81 -0
- package/dist/workflow/capture.js.map +1 -0
- package/dist/workflow/continuation-branch.d.ts +15 -0
- package/dist/workflow/continuation-branch.d.ts.map +1 -0
- package/dist/workflow/continuation-branch.js +103 -0
- package/dist/workflow/continuation-branch.js.map +1 -0
- package/dist/workflow/continuation-plans.d.ts +38 -0
- package/dist/workflow/continuation-plans.d.ts.map +1 -0
- package/dist/workflow/continuation-plans.js +78 -0
- package/dist/workflow/continuation-plans.js.map +1 -0
- package/dist/workflow/continuation.d.ts +25 -0
- package/dist/workflow/continuation.d.ts.map +1 -0
- package/dist/workflow/continuation.js +89 -0
- package/dist/workflow/continuation.js.map +1 -0
- package/dist/workflow/layerdoc-reader.d.ts +27 -0
- package/dist/workflow/layerdoc-reader.d.ts.map +1 -0
- package/dist/workflow/layerdoc-reader.js +81 -0
- package/dist/workflow/layerdoc-reader.js.map +1 -0
- package/dist/workflow/project-evidence.d.ts +48 -0
- package/dist/workflow/project-evidence.d.ts.map +1 -0
- package/dist/workflow/project-evidence.js +200 -0
- package/dist/workflow/project-evidence.js.map +1 -0
- package/dist/workflow/providers.d.ts +35 -0
- package/dist/workflow/providers.d.ts.map +1 -0
- package/dist/workflow/providers.js +110 -0
- package/dist/workflow/providers.js.map +1 -0
- package/dist/workflow/recipes-layerdoc-validation.d.ts +4 -0
- package/dist/workflow/recipes-layerdoc-validation.d.ts.map +1 -0
- package/dist/workflow/recipes-layerdoc-validation.js +98 -0
- package/dist/workflow/recipes-layerdoc-validation.js.map +1 -0
- package/dist/workflow/recipes-result-validation.d.ts +6 -0
- package/dist/workflow/recipes-result-validation.d.ts.map +1 -0
- package/dist/workflow/recipes-result-validation.js +38 -0
- package/dist/workflow/recipes-result-validation.js.map +1 -0
- package/dist/workflow/recipes-schemas.d.ts +7 -0
- package/dist/workflow/recipes-schemas.d.ts.map +1 -0
- package/dist/workflow/recipes-schemas.js +67 -0
- package/dist/workflow/recipes-schemas.js.map +1 -0
- package/dist/workflow/recipes-validation.d.ts +14 -0
- package/dist/workflow/recipes-validation.d.ts.map +1 -0
- package/dist/workflow/recipes-validation.js +68 -0
- package/dist/workflow/recipes-validation.js.map +1 -0
- package/dist/workflow/recipes.d.ts +20 -0
- package/dist/workflow/recipes.d.ts.map +1 -0
- package/dist/workflow/recipes.js +167 -0
- package/dist/workflow/recipes.js.map +1 -0
- package/dist/workflow/routing.d.ts +4 -0
- package/dist/workflow/routing.d.ts.map +1 -0
- package/dist/workflow/routing.js +28 -0
- package/dist/workflow/routing.js.map +1 -0
- package/dist/workflow/schema.d.ts +5 -0
- package/dist/workflow/schema.d.ts.map +1 -0
- package/dist/workflow/schema.js +29 -0
- package/dist/workflow/schema.js.map +1 -0
- package/dist/workflow/service.d.ts +59 -0
- package/dist/workflow/service.d.ts.map +1 -0
- package/dist/workflow/service.js +170 -0
- package/dist/workflow/service.js.map +1 -0
- package/dist/workflow/store-json.d.ts +5 -0
- package/dist/workflow/store-json.d.ts.map +1 -0
- package/dist/workflow/store-json.js +35 -0
- package/dist/workflow/store-json.js.map +1 -0
- package/dist/workflow/store-lock.d.ts +3 -0
- package/dist/workflow/store-lock.d.ts.map +1 -0
- package/dist/workflow/store-lock.js +85 -0
- package/dist/workflow/store-lock.js.map +1 -0
- package/dist/workflow/store-paths.d.ts +17 -0
- package/dist/workflow/store-paths.d.ts.map +1 -0
- package/dist/workflow/store-paths.js +67 -0
- package/dist/workflow/store-paths.js.map +1 -0
- package/dist/workflow/store-validation.d.ts +7 -0
- package/dist/workflow/store-validation.d.ts.map +1 -0
- package/dist/workflow/store-validation.js +119 -0
- package/dist/workflow/store-validation.js.map +1 -0
- package/dist/workflow/store.d.ts +10 -0
- package/dist/workflow/store.d.ts.map +1 -0
- package/dist/workflow/store.js +193 -0
- package/dist/workflow/store.js.map +1 -0
- package/dist/workflow/types.d.ts +120 -0
- package/dist/workflow/types.d.ts.map +1 -0
- package/dist/workflow/types.js +15 -0
- package/dist/workflow/types.js.map +1 -0
- package/dist/workflow-transport.d.ts +28 -0
- package/dist/workflow-transport.d.ts.map +1 -0
- package/dist/workflow-transport.js +184 -0
- package/dist/workflow-transport.js.map +1 -0
- package/open-design.json +2 -2
- package/package.json +2 -1
- package/prototype-kit/tests/rules-check.mjs +9 -0
- package/runtime/codex-conversion/src/images/native-invoke.mjs +1 -1
- package/runtime/codex-conversion/src/images/native.mjs +8 -4
- package/runtime/layerdoc-validator.mjs +1860 -0
- package/skills/12ui-design/SKILL.md +17 -63
- package/skills/12ui-design/improve.md +5 -1
- package/skills/12ui-design/inspire.md +8 -5
- package/skills/12ui-design/outputs.md +23 -2
- package/skills/12ui-design/session.md +161 -0
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The four dialogs of the workspace: Design (new options or more like this,
|
|
3
|
+
* an optional steer note, and the inspiration selected in its tab), Edit (an
|
|
4
|
+
* instruction and a scribble over the image), Branch (what to build) and
|
|
5
|
+
* Convert (which format, with only the options that format has). Each is opened
|
|
6
|
+
* by its button, confirmed by one verb (Generate, Apply, Send, Send) and closed
|
|
7
|
+
* by Cancel or Escape; Select has no dialog.
|
|
8
|
+
*
|
|
9
|
+
* Common rules: a title, fields, an error line (role alert, empty by default),
|
|
10
|
+
* then Cancel and the primary. The primary keeps its label and disables while a
|
|
11
|
+
* call is in flight; on success the dialog closes at once. One id is minted
|
|
12
|
+
* when the dialog opens (the op id of Design and Edit, the hand-off id of
|
|
13
|
+
* Branch and Convert), so a double click sends one request.
|
|
14
|
+
*
|
|
15
|
+
* Design and Edit start work through the run tool, which returns as soon as
|
|
16
|
+
* the work is committed; Branch and Convert hand off to the agent through
|
|
17
|
+
* sendHandoff. Nothing here shows or asks for money.
|
|
18
|
+
*/
|
|
19
|
+
export const SLATE_UI_DIALOG = String.raw `
|
|
20
|
+
var DIALOG_TITLES = { design: COPY.design, edit: COPY.edit, branch: COPY.branch, convert: COPY.convert };
|
|
21
|
+
var DIALOG_VERBS = { design: COPY.generate, edit: COPY.apply, branch: COPY.send, convert: COPY.send };
|
|
22
|
+
|
|
23
|
+
function field(labelText, control, id) {
|
|
24
|
+
var wrap = el("div", "field");
|
|
25
|
+
var label = el("label", "lbl", labelText);
|
|
26
|
+
if (id) label.setAttribute("for", id);
|
|
27
|
+
wrap.appendChild(label);
|
|
28
|
+
wrap.appendChild(control);
|
|
29
|
+
return wrap;
|
|
30
|
+
}
|
|
31
|
+
function group(labelText, control) {
|
|
32
|
+
var wrap = el("div", "field");
|
|
33
|
+
wrap.appendChild(el("span", "lbl", labelText));
|
|
34
|
+
wrap.appendChild(control);
|
|
35
|
+
return wrap;
|
|
36
|
+
}
|
|
37
|
+
function textarea(id, rows, placeholder, max, onInput) {
|
|
38
|
+
var area = el("textarea");
|
|
39
|
+
area.id = id;
|
|
40
|
+
area.setAttribute("rows", String(rows));
|
|
41
|
+
area.placeholder = placeholder;
|
|
42
|
+
area.setAttribute("maxlength", String(max));
|
|
43
|
+
area.addEventListener("input", function () { onInput(area.value); updateDialogUi(); });
|
|
44
|
+
return area;
|
|
45
|
+
}
|
|
46
|
+
function radioRow(name, options, current, onChange) {
|
|
47
|
+
var row = el("div", "radios");
|
|
48
|
+
row.setAttribute("role", "radiogroup");
|
|
49
|
+
options.forEach(function (opt) {
|
|
50
|
+
var label = el("label", "radio");
|
|
51
|
+
var input = el("input");
|
|
52
|
+
input.type = "radio";
|
|
53
|
+
input.name = name;
|
|
54
|
+
input.value = String(opt.value);
|
|
55
|
+
input.checked = opt.value === current;
|
|
56
|
+
if (opt.disabled) input.disabled = true;
|
|
57
|
+
input.addEventListener("change", function () { onChange(opt.value); updateDialogUi(); });
|
|
58
|
+
label.appendChild(input);
|
|
59
|
+
label.appendChild(el("span", "", opt.label));
|
|
60
|
+
row.appendChild(label);
|
|
61
|
+
});
|
|
62
|
+
return row;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// ---- what this Mac can do now ----
|
|
66
|
+
function localImage() { return (state.view && state.view.local && state.view.local.image) || { ready: false, reason: null }; }
|
|
67
|
+
|
|
68
|
+
// ---- open and close ----
|
|
69
|
+
function openDialog(kind, opener) {
|
|
70
|
+
if (state.dialog || !state.view) return;
|
|
71
|
+
var v = selectedVersion();
|
|
72
|
+
if (kind !== "design" && !v) return;
|
|
73
|
+
if (kind === "edit" && !v.editable) return;
|
|
74
|
+
state.dialog = {
|
|
75
|
+
kind: kind, id: uuid4(), versionId: v ? v.versionId : null, opener: opener,
|
|
76
|
+
mode: "new", note: "", prompt: "", explanation: "",
|
|
77
|
+
format: CONVERT.choices[0].value, clean: "enhance", quality: "standard", width: "", layouts: "standard",
|
|
78
|
+
strokes: [], current: null, committing: false, error: "", els: {}
|
|
79
|
+
};
|
|
80
|
+
mountDialog();
|
|
81
|
+
}
|
|
82
|
+
function closeDialog() {
|
|
83
|
+
var d = state.dialog;
|
|
84
|
+
if (!d) return;
|
|
85
|
+
state.dialog = null;
|
|
86
|
+
stageEls.dialog.textContent = "";
|
|
87
|
+
if (d.opener && d.opener.isConnected !== false && d.opener.focus) d.opener.focus();
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// ---- what each dialog would send ----
|
|
91
|
+
// The one round action: the Design dialog and the Generate more panel both build it here. Only the panel sets a count.
|
|
92
|
+
function roundAction(request) {
|
|
93
|
+
var action = { kind: "round", mode: request.mode };
|
|
94
|
+
var note = (request.note || "").trim();
|
|
95
|
+
if (note) action.note = note;
|
|
96
|
+
if (request.count !== undefined) action.count = request.count;
|
|
97
|
+
if (request.mode === "like") action.fromVersionId = request.fromVersionId;
|
|
98
|
+
return action;
|
|
99
|
+
}
|
|
100
|
+
function editAction(d) {
|
|
101
|
+
var action = { kind: "edit", versionId: d.versionId, prompt: d.prompt.trim() };
|
|
102
|
+
if (d.strokes.length > 0) action.strokes = d.strokes.map(function (s) { return s.map(function (p) { return [p[0], p[1]]; }); });
|
|
103
|
+
return action;
|
|
104
|
+
}
|
|
105
|
+
// The hosted server takes the marked image from the screen (there is no server-side compositing), so an edit with
|
|
106
|
+
// strokes carries it; the local server draws its own from the strokes.
|
|
107
|
+
function editActionFor(d, version) {
|
|
108
|
+
var action = editAction(d);
|
|
109
|
+
if (TARGET !== "remote" || d.strokes.length === 0) return Promise.resolve(action);
|
|
110
|
+
return compositeMarked(version, d.strokes).then(function (marked) {
|
|
111
|
+
action.annotated = marked;
|
|
112
|
+
return action;
|
|
113
|
+
}, function (err) { throw new Error(tpl(COPY.markFailed, { detail: errText(err) })); });
|
|
114
|
+
}
|
|
115
|
+
function convertChoice(d) { return CONVERT.choices.filter(function (c) { return c.value === d.format; })[0]; }
|
|
116
|
+
// An empty width is fine (the service picks); anything else must be a whole number the CLI accepts.
|
|
117
|
+
function widthOf(d) {
|
|
118
|
+
var t = d.width.trim();
|
|
119
|
+
if (!t) return { ok: true, value: null };
|
|
120
|
+
var n = Number(t);
|
|
121
|
+
var ok = /^[0-9]+$/.test(t) && n >= 1 && n <= CONVERT.maxWidth;
|
|
122
|
+
return { ok: ok, value: ok ? n : null };
|
|
123
|
+
}
|
|
124
|
+
function convertOptions(d) {
|
|
125
|
+
var choice = convertChoice(d);
|
|
126
|
+
// The hosted server has one engine and two outputs; nothing else is a choice.
|
|
127
|
+
if (TARGET === "remote") return { engine: "local", output: choice.output };
|
|
128
|
+
if (choice.engine === "local") return { engine: "local", output: choice.output, cleanAssets: d.clean };
|
|
129
|
+
var options = { engine: "service", output: choice.output, model: d.quality };
|
|
130
|
+
var width = widthOf(d);
|
|
131
|
+
if (width.value !== null) options.width = width.value;
|
|
132
|
+
if (choice.output === "html") options.responsiveQuality = d.layouts;
|
|
133
|
+
return options;
|
|
134
|
+
}
|
|
135
|
+
function dialogReady(d) {
|
|
136
|
+
var v = ver(d.versionId);
|
|
137
|
+
if (d.kind === "design") return localImage().ready && (d.mode === "new" || pickable(v));
|
|
138
|
+
if (d.kind === "edit") return localImage().ready && !!v && v.editable && !!d.prompt.trim();
|
|
139
|
+
if (d.kind === "branch") return !!d.explanation.trim();
|
|
140
|
+
return !!convertChoice(d) && widthOf(d).ok;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
// ---- send ----
|
|
144
|
+
function runAction(action, opId) {
|
|
145
|
+
return callTool(TOOLS.run, { runDir: state.view.runDir, opId: opId, action: action }).then(function (result) {
|
|
146
|
+
var sc = result.structuredContent || {};
|
|
147
|
+
if (sc.view) applyView(sc.view, true);
|
|
148
|
+
// The hosted server has no runner: the person's agent does the work, and is told here (best effort, like Select).
|
|
149
|
+
if (TARGET === "remote") remoteTellRun(action, opId);
|
|
150
|
+
return sc;
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
// The one way a round starts: the selection is committed first, so the round uses the inspiration the person sees.
|
|
154
|
+
function startRound(opId, request) {
|
|
155
|
+
return whenSelectionSettled().then(function () { return runAction(roundAction(request), opId); });
|
|
156
|
+
}
|
|
157
|
+
function commitDialog() {
|
|
158
|
+
var d = state.dialog;
|
|
159
|
+
if (!d || d.committing || !dialogReady(d)) return;
|
|
160
|
+
d.committing = true;
|
|
161
|
+
d.error = "";
|
|
162
|
+
updateDialogUi();
|
|
163
|
+
var version = ver(d.versionId);
|
|
164
|
+
var work;
|
|
165
|
+
if (d.kind === "branch") work = sendHandoff("branch", version, d.id, { explanation: d.explanation.trim() });
|
|
166
|
+
else if (d.kind === "convert") work = sendHandoff("convert", version, d.id, convertOptions(d));
|
|
167
|
+
else if (d.kind === "edit") {
|
|
168
|
+
var edited = cand(version.candidateId);
|
|
169
|
+
work = editActionFor(d, version).then(function (action) { return runAction(action, d.id); }).then(function () {
|
|
170
|
+
// The new version is shown the moment it lands.
|
|
171
|
+
state.awaitEdit = { candidateId: version.candidateId, count: edited ? edited.versionIds.length : 0 };
|
|
172
|
+
});
|
|
173
|
+
} else work = startRound(d.id, { mode: d.mode, note: d.note, fromVersionId: d.versionId });
|
|
174
|
+
work.then(function () {
|
|
175
|
+
closeDialog();
|
|
176
|
+
}, function (err) {
|
|
177
|
+
if (state.dialog !== d) return;
|
|
178
|
+
d.committing = false;
|
|
179
|
+
d.error = errText(err);
|
|
180
|
+
updateDialogUi();
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
// ---- the dialog's elements ----
|
|
185
|
+
function designBody(d, box) {
|
|
186
|
+
var v = ver(d.versionId);
|
|
187
|
+
var modes = [{ value: "new", label: COPY.newOptions }, { value: "like", label: COPY.moreLikeThis, disabled: !pickable(v) }];
|
|
188
|
+
box.appendChild(radioRow("mode", modes, d.mode, function (value) { d.mode = value; }));
|
|
189
|
+
box.appendChild(field(COPY.noteLabel, textarea("dialognote", 2, COPY.notePlaceholder, 600, function (value) { d.note = value; }), "dialognote"));
|
|
190
|
+
var line = el("div", "refline");
|
|
191
|
+
var chosen = currentSelected().slice(0, MAX_SELECTED);
|
|
192
|
+
if (chosen.length > 0) {
|
|
193
|
+
var thumbs = el("span", "refthumbs");
|
|
194
|
+
chosen.forEach(function (id) {
|
|
195
|
+
var img = el("img", "refmini empty");
|
|
196
|
+
img.alt = "";
|
|
197
|
+
thumbs.appendChild(img);
|
|
198
|
+
bindReference(img, id, "thumb");
|
|
199
|
+
});
|
|
200
|
+
line.appendChild(thumbs);
|
|
201
|
+
}
|
|
202
|
+
line.appendChild(el("span", "", chosen.length > 0 ? COPY.usingSelected : COPY.usingFresh));
|
|
203
|
+
box.appendChild(line);
|
|
204
|
+
}
|
|
205
|
+
function editBody(d, box) {
|
|
206
|
+
var v = ver(d.versionId);
|
|
207
|
+
var wrap = el("div", "imgwrap");
|
|
208
|
+
wrap.style.setProperty("--ar", String(v.width / v.height));
|
|
209
|
+
var img = el("img", "stageimg empty");
|
|
210
|
+
img.alt = COPY.versionPrefix + v.label;
|
|
211
|
+
img.setAttribute("draggable", "false");
|
|
212
|
+
wrap.appendChild(img);
|
|
213
|
+
bindImage(img, v, "full", true);
|
|
214
|
+
var cached = state.thumbs[imageKey(v, "thumb")];
|
|
215
|
+
if (cached) img.src = cached;
|
|
216
|
+
scribbleAttach(wrap, d);
|
|
217
|
+
box.appendChild(wrap);
|
|
218
|
+
var tools = el("div", "dialogtools");
|
|
219
|
+
d.els.undo = button(COPY.undo, "", function () { scribbleUndo(d); });
|
|
220
|
+
d.els.clear = button(COPY.clear, "", function () { scribbleClear(d); });
|
|
221
|
+
tools.appendChild(d.els.undo);
|
|
222
|
+
tools.appendChild(d.els.clear);
|
|
223
|
+
box.appendChild(tools);
|
|
224
|
+
box.appendChild(field(COPY.editLabel, textarea("dialogedit", 3, COPY.editPlaceholder, 6000, function (value) { d.prompt = value; }), "dialogedit"));
|
|
225
|
+
}
|
|
226
|
+
function branchBody(d, box) {
|
|
227
|
+
box.appendChild(field(COPY.branchLabel, textarea("dialogbranch", 4, COPY.branchPlaceholder, 2000, function (value) { d.explanation = value; }), "dialogbranch"));
|
|
228
|
+
}
|
|
229
|
+
function convertBody(d, box) {
|
|
230
|
+
var select = el("select");
|
|
231
|
+
select.id = "dialogformat";
|
|
232
|
+
var service = el("optgroup");
|
|
233
|
+
service.setAttribute("label", COPY.serviceGroup);
|
|
234
|
+
CONVERT.choices.forEach(function (choice) {
|
|
235
|
+
var option = el("option", "", choice.label);
|
|
236
|
+
option.setAttribute("value", choice.value);
|
|
237
|
+
if (choice.value === d.format) option.setAttribute("selected", "");
|
|
238
|
+
(choice.engine === "local" ? select : service).appendChild(option);
|
|
239
|
+
});
|
|
240
|
+
if (service.childNodes.length > 0) select.appendChild(service);
|
|
241
|
+
select.addEventListener("change", function () { d.format = select.value; updateDialogUi(); });
|
|
242
|
+
box.appendChild(field(COPY.convertLabel, select, "dialogformat"));
|
|
243
|
+
// The hosted server builds from the image and has nothing else to ask: no assets, quality, width or layouts.
|
|
244
|
+
if (TARGET === "remote") return;
|
|
245
|
+
// Only the options the chosen format has are shown; the rest are hidden, not disabled.
|
|
246
|
+
d.els.local = group(COPY.cleanLabel, radioRow("clean", [{ value: "crop", label: COPY.crop }, { value: "enhance", label: COPY.enhance }], d.clean, function (value) { d.clean = value; }));
|
|
247
|
+
d.els.quality = group(COPY.qualityLabel, radioRow("quality", [{ value: "fast", label: COPY.fast }, { value: "standard", label: COPY.standard }, { value: "pro", label: COPY.pro }], d.quality, function (value) { d.quality = value; }));
|
|
248
|
+
var width = el("input");
|
|
249
|
+
width.type = "number";
|
|
250
|
+
width.id = "dialogwidth";
|
|
251
|
+
width.setAttribute("min", "1");
|
|
252
|
+
width.setAttribute("max", String(CONVERT.maxWidth));
|
|
253
|
+
width.setAttribute("placeholder", COPY.widthPlaceholder);
|
|
254
|
+
width.setAttribute("inputmode", "numeric");
|
|
255
|
+
width.addEventListener("input", function () { d.width = width.value; updateDialogUi(); });
|
|
256
|
+
d.els.width = field(COPY.widthLabel, width, "dialogwidth");
|
|
257
|
+
d.els.layouts = group(COPY.layoutsLabel, radioRow("layouts", [{ value: "standard", label: COPY.standard }, { value: "pro", label: COPY.pro }], d.layouts, function (value) { d.layouts = value; }));
|
|
258
|
+
[d.els.local, d.els.quality, d.els.width, d.els.layouts].forEach(function (node) { box.appendChild(node); });
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
function mountDialog() {
|
|
262
|
+
var d = state.dialog;
|
|
263
|
+
var host = stageEls.dialog;
|
|
264
|
+
host.textContent = "";
|
|
265
|
+
var backdrop = el("div", "modal");
|
|
266
|
+
backdrop.addEventListener("click", function (e) { if (e.target === backdrop && !d.committing) closeDialog(); });
|
|
267
|
+
var box = el("div", "modalbox" + (d.kind === "edit" ? " wide" : ""));
|
|
268
|
+
box.setAttribute("role", "dialog");
|
|
269
|
+
box.setAttribute("aria-modal", "true");
|
|
270
|
+
box.setAttribute("aria-label", DIALOG_TITLES[d.kind]);
|
|
271
|
+
box.appendChild(el("h2", "", DIALOG_TITLES[d.kind]));
|
|
272
|
+
if (d.kind === "design") designBody(d, box);
|
|
273
|
+
else if (d.kind === "edit") editBody(d, box);
|
|
274
|
+
else if (d.kind === "branch") branchBody(d, box);
|
|
275
|
+
else convertBody(d, box);
|
|
276
|
+
d.els.alert = el("p", "alert");
|
|
277
|
+
d.els.alert.setAttribute("role", "alert");
|
|
278
|
+
box.appendChild(d.els.alert);
|
|
279
|
+
var buttons = el("div", "dialogbtns");
|
|
280
|
+
buttons.appendChild(el("span", "spacer"));
|
|
281
|
+
buttons.appendChild(button(COPY.cancel, "", closeDialog));
|
|
282
|
+
d.els.primary = button(DIALOG_VERBS[d.kind], "primary", commitDialog);
|
|
283
|
+
buttons.appendChild(d.els.primary);
|
|
284
|
+
box.appendChild(buttons);
|
|
285
|
+
backdrop.appendChild(box);
|
|
286
|
+
host.appendChild(backdrop);
|
|
287
|
+
d.els.box = box;
|
|
288
|
+
updateDialogUi();
|
|
289
|
+
var first = box.querySelector("textarea") || box.querySelector("select") || box.querySelector("input:checked") || d.els.primary;
|
|
290
|
+
if (first && first.focus) first.focus();
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
function updateDialogUi() {
|
|
294
|
+
var d = state.dialog;
|
|
295
|
+
if (!d || !d.els.primary) return;
|
|
296
|
+
d.els.primary.disabled = d.committing || !dialogReady(d);
|
|
297
|
+
// A dialog that cannot run on this Mac says why, in the same line an error would use.
|
|
298
|
+
var local = localImage();
|
|
299
|
+
var blockedByLocal = (d.kind === "design" || d.kind === "edit") && !local.ready;
|
|
300
|
+
d.els.alert.textContent = d.error || (blockedByLocal && local.reason ? local.reason : "");
|
|
301
|
+
d.els.alert.classList.toggle("hidden", !d.els.alert.textContent);
|
|
302
|
+
if (d.els.undo) d.els.undo.disabled = d.strokes.length === 0 || d.committing;
|
|
303
|
+
if (d.els.clear) d.els.clear.disabled = d.strokes.length === 0 || d.committing;
|
|
304
|
+
if (d.kind === "convert" && TARGET !== "remote") {
|
|
305
|
+
var choice = convertChoice(d);
|
|
306
|
+
var isLocal = !!choice && choice.engine === "local";
|
|
307
|
+
d.els.local.classList.toggle("hidden", !isLocal);
|
|
308
|
+
d.els.quality.classList.toggle("hidden", isLocal);
|
|
309
|
+
d.els.width.classList.toggle("hidden", isLocal);
|
|
310
|
+
d.els.layouts.classList.toggle("hidden", isLocal || choice.output !== "html");
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
// Escape closes; Tab stays inside the dialog.
|
|
315
|
+
document.addEventListener("keydown", function (e) {
|
|
316
|
+
var d = state.dialog;
|
|
317
|
+
if (!d) return;
|
|
318
|
+
if (e.key === "Escape" && !d.committing) { closeDialog(); return; }
|
|
319
|
+
if (e.key !== "Tab" || !d.els.box) return;
|
|
320
|
+
var items = Array.prototype.filter.call(d.els.box.querySelectorAll("button, textarea, input, select"), function (n) {
|
|
321
|
+
if (n.disabled) return false;
|
|
322
|
+
for (var node = n; node && node.classList; node = node.parentElement) if (node.classList.contains("hidden")) return false;
|
|
323
|
+
return true;
|
|
324
|
+
});
|
|
325
|
+
if (items.length === 0) return;
|
|
326
|
+
var first = items[0];
|
|
327
|
+
var last = items[items.length - 1];
|
|
328
|
+
if (e.shiftKey && document.activeElement === first) { last.focus(); if (e.preventDefault) e.preventDefault(); }
|
|
329
|
+
else if (!e.shiftKey && document.activeElement === last) { first.focus(); if (e.preventDefault) e.preventDefault(); }
|
|
330
|
+
});
|
|
331
|
+
`;
|
|
332
|
+
//# sourceMappingURL=mcp-slate-ui-script-dialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-slate-ui-script-dialog.js","sourceRoot":"","sources":["../src/mcp-slate-ui-script-dialog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwTxC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The inline card: one large image of the selected option with a badge, one
|
|
3
|
+
* row under it with the strip of thumbnails (the newest round, plus the picked
|
|
4
|
+
* or viewed option of an older round) and Select, and one status line;
|
|
5
|
+
* an icon-only control opens the workspace. Also the view application, the
|
|
6
|
+
* large image and the thumbnail buttons shared with the workspace, and the
|
|
7
|
+
* tool-result entry point.
|
|
8
|
+
*/
|
|
9
|
+
export declare const SLATE_UI_INLINE: string;
|
|
10
|
+
//# sourceMappingURL=mcp-slate-ui-script-inline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-slate-ui-script-inline.d.ts","sourceRoot":"","sources":["../src/mcp-slate-ui-script-inline.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,QAmN3B,CAAC"}
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The inline card: one large image of the selected option with a badge, one
|
|
3
|
+
* row under it with the strip of thumbnails (the newest round, plus the picked
|
|
4
|
+
* or viewed option of an older round) and Select, and one status line;
|
|
5
|
+
* an icon-only control opens the workspace. Also the view application, the
|
|
6
|
+
* large image and the thumbnail buttons shared with the workspace, and the
|
|
7
|
+
* tool-result entry point.
|
|
8
|
+
*/
|
|
9
|
+
export const SLATE_UI_INLINE = String.raw `
|
|
10
|
+
// ---- apply a view: selection, announcements, polling, render ----
|
|
11
|
+
var pickRestored = null;
|
|
12
|
+
function applyView(view, fromPoll) {
|
|
13
|
+
if (!view || view.schema !== "12ui.slate.view/3" || !Array.isArray(view.candidates)) return;
|
|
14
|
+
var prev = state.view;
|
|
15
|
+
if (prev && prev.runDir !== view.runDir) {
|
|
16
|
+
state.sel = { candidateId: null, versionId: null, followLatest: true };
|
|
17
|
+
state.dialog = null;
|
|
18
|
+
state.wantEdit = null;
|
|
19
|
+
resetMore();
|
|
20
|
+
state.insp.local = null;
|
|
21
|
+
state.awaitEdit = null;
|
|
22
|
+
pickRestored = null;
|
|
23
|
+
}
|
|
24
|
+
if (prev) announceSettled(prev, view);
|
|
25
|
+
else view.ops.forEach(function (op) { state.lastOpStates[op.opId] = op.state; });
|
|
26
|
+
if (!prev || prev.stamp !== view.stamp) poll.step = 0;
|
|
27
|
+
state.view = view;
|
|
28
|
+
// An edit that was just applied is shown the moment its version exists.
|
|
29
|
+
if (state.awaitEdit) {
|
|
30
|
+
var edited = cand(state.awaitEdit.candidateId);
|
|
31
|
+
if (edited && edited.versionIds.length > state.awaitEdit.count) {
|
|
32
|
+
state.sel = { candidateId: edited.candidateId, versionId: edited.latestVersionId, followLatest: true };
|
|
33
|
+
state.awaitEdit = null;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
syncOpStatus(prev, view);
|
|
37
|
+
if (view.pick && pickRestored !== view.runDir) {
|
|
38
|
+
pickRestored = view.runDir;
|
|
39
|
+
var earlier = ver(view.pick.versionId);
|
|
40
|
+
if (earlier) state.sel = { candidateId: earlier.candidateId, versionId: earlier.versionId, followLatest: false };
|
|
41
|
+
if (!fromPoll && view.pick.fileState === "missing") setStatus(COPY.pickMissing, "err");
|
|
42
|
+
else if (!fromPoll && view.pick.fileState === "changed") setStatus(COPY.pickChanged, "err");
|
|
43
|
+
}
|
|
44
|
+
ensureSelection();
|
|
45
|
+
renderAll();
|
|
46
|
+
schedulePoll();
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
function renderAll() {
|
|
50
|
+
if (!state.view) return;
|
|
51
|
+
$("fatal").classList.add("hidden");
|
|
52
|
+
var full = isFullscreen();
|
|
53
|
+
$("app").classList.toggle("hidden", full);
|
|
54
|
+
$("stage").classList.toggle("hidden", !full);
|
|
55
|
+
if (full) renderStage(); else renderInline();
|
|
56
|
+
// Edit asked for from a thumbnail in the card: the workspace is showing now, so its dialog opens.
|
|
57
|
+
if (full) openWantedEdit();
|
|
58
|
+
// A dialog that is open follows the view: what this Mac can do now, for one.
|
|
59
|
+
if (state.dialog) updateDialogUi();
|
|
60
|
+
syncMore();
|
|
61
|
+
reportSize();
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// Rebuild a container only when what it shows changed, so polling never steals focus or discards typing.
|
|
65
|
+
function setIfChanged(node, signature, build) {
|
|
66
|
+
if (node.__sig === signature) return false;
|
|
67
|
+
node.__sig = signature;
|
|
68
|
+
node.textContent = "";
|
|
69
|
+
build(node);
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// ---- the large image, shared by the card and the workspace ----
|
|
74
|
+
function pickable(version) { return !!version && version.fileState === "ok"; }
|
|
75
|
+
// Why an option has no picture to show, or "" when it has one.
|
|
76
|
+
function optionNote(c) {
|
|
77
|
+
var v = latestVersion(c);
|
|
78
|
+
if (c.state === "failed") return c.error || optionName(c);
|
|
79
|
+
if (c.state === "pending") return optionName(c);
|
|
80
|
+
if (v && v.fileState === "missing") return COPY.fileMissing;
|
|
81
|
+
if (v && v.fileState === "changed") return COPY.fileChanged;
|
|
82
|
+
return "";
|
|
83
|
+
}
|
|
84
|
+
// The full picture jumps the queue; while it loads, the thumbnail (already fetched) stands in.
|
|
85
|
+
function heroInto(wrap, c, v) {
|
|
86
|
+
wrap.textContent = "";
|
|
87
|
+
wrap.classList.remove("note");
|
|
88
|
+
wrap.style.removeProperty("--ar");
|
|
89
|
+
if (!c) return;
|
|
90
|
+
if (!v || v.fileState !== "ok") {
|
|
91
|
+
wrap.classList.add("note");
|
|
92
|
+
var reason = !v ? optionNote(c) : v.fileState === "changed" ? COPY.fileChanged : COPY.fileMissing;
|
|
93
|
+
wrap.appendChild(el("div", "heronote" + (c.state === "pending" ? " shimmer" : ""), reason));
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
wrap.style.setProperty("--ar", String(v.width / v.height));
|
|
97
|
+
var img = el("img", "heroimg empty");
|
|
98
|
+
img.alt = COPY.versionPrefix + v.label;
|
|
99
|
+
img.setAttribute("draggable", "false");
|
|
100
|
+
wrap.appendChild(img);
|
|
101
|
+
bindImage(img, v, "full", true);
|
|
102
|
+
var cached = state.thumbs[imageKey(v, "thumb")];
|
|
103
|
+
if (cached) img.src = cached;
|
|
104
|
+
wrap.appendChild(el("span", "badge", v.label));
|
|
105
|
+
if (c.busy) wrap.appendChild(progressBar());
|
|
106
|
+
}
|
|
107
|
+
function heroSignature(c, v) {
|
|
108
|
+
return JSON.stringify([state.sel, v && [v.sha256, v.fileState, v.label], c && [c.state, c.error, c.busy]]);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
// ---- a small thumbnail button for an option: the strip in the card, the selection in the workspace ----
|
|
112
|
+
function thumbButton(c, cls) {
|
|
113
|
+
var b = button("", cls);
|
|
114
|
+
var selected = state.sel.candidateId === c.candidateId;
|
|
115
|
+
b.setAttribute("aria-label", optionName(c));
|
|
116
|
+
b.setAttribute("aria-pressed", selected ? "true" : "false");
|
|
117
|
+
if (selected) b.classList.add("selected");
|
|
118
|
+
b.setAttribute("data-option", c.label);
|
|
119
|
+
var v = latestVersion(c);
|
|
120
|
+
var note = optionNote(c);
|
|
121
|
+
if (note && c.state !== "pending") b.title = note;
|
|
122
|
+
if (c.state === "failed" || (v && v.fileState !== "ok")) b.classList.add("failed");
|
|
123
|
+
if (c.state === "pending") b.classList.add("shimmer");
|
|
124
|
+
var img = el("img", "thumb empty");
|
|
125
|
+
img.alt = "";
|
|
126
|
+
if (v && v.fileState === "ok" && c.state === "ready") bindImage(img, v, "thumb", false);
|
|
127
|
+
else img.setAttribute("data-nofile", "");
|
|
128
|
+
b.appendChild(img);
|
|
129
|
+
b.appendChild(el("b", "code", c.label));
|
|
130
|
+
b.addEventListener("click", function () { selectCandidate(c.candidateId); });
|
|
131
|
+
return b;
|
|
132
|
+
}
|
|
133
|
+
function thumbSignature(c) {
|
|
134
|
+
var lv = latestVersion(c);
|
|
135
|
+
return [c.candidateId, c.state, c.error, c.latestVersionId, c.versionIds.length, lv ? lv.fileState : ""];
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
function renderInline() {
|
|
139
|
+
var v = state.view;
|
|
140
|
+
var empty = v.candidates.length === 0;
|
|
141
|
+
$("empty").classList.toggle("hidden", !empty);
|
|
142
|
+
$("empty").textContent = COPY.empty;
|
|
143
|
+
$("card").classList.toggle("hidden", empty);
|
|
144
|
+
if (empty) { reportSize(); return; }
|
|
145
|
+
syncTabs();
|
|
146
|
+
var onDesigns = state.tab === "designs";
|
|
147
|
+
$("pane-designs").classList.toggle("hidden", !onDesigns);
|
|
148
|
+
$("pane-inspiration").classList.toggle("hidden", onDesigns);
|
|
149
|
+
if (!onDesigns) {
|
|
150
|
+
renderInspiration($("pane-inspiration"), "card");
|
|
151
|
+
syncControls();
|
|
152
|
+
reportSize();
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
syncProgressLine(v);
|
|
156
|
+
var c = selectedCandidate();
|
|
157
|
+
var sel = selectedVersion();
|
|
158
|
+
setIfChanged($("hero"), heroSignature(c, sel), function (node) { heroInto(node, c, sel); });
|
|
159
|
+
var strip = $("strip");
|
|
160
|
+
// Where keyboard focus sits among the strip's buttons (a thumbnail, its two controls, the tile), so a rebuild can put it back.
|
|
161
|
+
var focusAt = strip.contains(document.activeElement) ? Array.prototype.indexOf.call(strip.querySelectorAll("button"), document.activeElement) : -1;
|
|
162
|
+
var options = inlineCandidates();
|
|
163
|
+
var rebuilt = setIfChanged(strip, JSON.stringify([state.sel.candidateId, options.map(thumbSignature)]), function (node) {
|
|
164
|
+
options.forEach(function (x) { node.appendChild(thumbCell(x, "thumbbtn")); });
|
|
165
|
+
node.appendChild(moreTile());
|
|
166
|
+
});
|
|
167
|
+
// Choosing a thumbnail rebuilds the strip: keep keyboard focus at the same place in it.
|
|
168
|
+
var stripButtons = strip.querySelectorAll("button");
|
|
169
|
+
if (rebuilt && focusAt >= 0 && stripButtons[focusAt]) stripButtons[focusAt].focus();
|
|
170
|
+
var shown = Array.prototype.filter.call(strip.children, function (b) { return b.classList.contains("selected"); })[0];
|
|
171
|
+
if (rebuilt && shown && shown.scrollIntoView && strip.scrollWidth > strip.clientWidth) { try { shown.scrollIntoView({ inline: "nearest", block: "nearest" }); } catch (e) { /* best effort */ } }
|
|
172
|
+
strip.classList.toggle("fade", strip.scrollWidth > strip.clientWidth + 1);
|
|
173
|
+
syncControls();
|
|
174
|
+
reportSize();
|
|
175
|
+
}
|
|
176
|
+
window.addEventListener("resize", function () {
|
|
177
|
+
var strip = $("strip");
|
|
178
|
+
if (strip) strip.classList.toggle("fade", strip.scrollWidth > strip.clientWidth + 1);
|
|
179
|
+
});
|
|
180
|
+
|
|
181
|
+
function syncControls() {
|
|
182
|
+
if (!state.view) return;
|
|
183
|
+
var v = selectedVersion();
|
|
184
|
+
var same = samePick(v);
|
|
185
|
+
var label = same ? COPY.selected : COPY.select;
|
|
186
|
+
var disabled = !(pickable(v) && !state.busy && !same);
|
|
187
|
+
if (!isFullscreen()) {
|
|
188
|
+
var expand = $("expand");
|
|
189
|
+
expand.classList.toggle("hidden", !canFullscreen());
|
|
190
|
+
expand.disabled = state.view.candidates.length === 0;
|
|
191
|
+
$("select").disabled = disabled;
|
|
192
|
+
$("select").textContent = label;
|
|
193
|
+
}
|
|
194
|
+
if (typeof syncStageControls === "function") syncStageControls(label, disabled);
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
function expandWorkspace() {
|
|
198
|
+
if (!canFullscreen()) return;
|
|
199
|
+
requestMode("fullscreen");
|
|
200
|
+
}
|
|
201
|
+
function closeWorkspace() {
|
|
202
|
+
if (isFullscreen() && canInline()) requestMode("inline");
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
$("expand").addEventListener("click", expandWorkspace);
|
|
206
|
+
$("select").addEventListener("click", function () { doSelect(selectedVersion()); });
|
|
207
|
+
|
|
208
|
+
// ---- tool result: the workspace ----
|
|
209
|
+
function onToolResult(result) {
|
|
210
|
+
if (!result || result.isError) {
|
|
211
|
+
var t = result && result.content && result.content[0] && result.content[0].text;
|
|
212
|
+
fatal(COPY.toolError + (t ? ": " + t : "."));
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
var data = result.structuredContent;
|
|
216
|
+
if (!data || !Array.isArray(data.candidates)) { fatal(COPY.noView); return; }
|
|
217
|
+
applyView(data, false);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
`;
|
|
221
|
+
//# sourceMappingURL=mcp-slate-ui-script-inline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-slate-ui-script-inline.js","sourceRoot":"","sources":["../src/mcp-slate-ui-script-inline.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmNxC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The tabs (Designs and Inspiration, in the card and the workspace) and the
|
|
3
|
+
* Inspiration tab, which is the same in both places: a search row, the newest
|
|
4
|
+
* search's results, and one section per round with the references that
|
|
5
|
+
* produced its options. Every reference is a toggle. The selection lives in
|
|
6
|
+
* the view (`inspiration.selected`, at most eight, in click order) and is
|
|
7
|
+
* written whole through the inspiration tool, one write in flight at a time,
|
|
8
|
+
* last click wins locally; the next Design round reads it at commit. Nothing
|
|
9
|
+
* in this tab starts work.
|
|
10
|
+
*/
|
|
11
|
+
export declare const SLATE_UI_INSPIRATION: string;
|
|
12
|
+
//# sourceMappingURL=mcp-slate-ui-script-inspiration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-slate-ui-script-inspiration.d.ts","sourceRoot":"","sources":["../src/mcp-slate-ui-script-inspiration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,QA4MhC,CAAC"}
|