@ccslabs/xtend 0.1.0-rc.1
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/CHANGELOG.md +65 -0
- package/LICENSE +201 -0
- package/README.md +184 -0
- package/a11y/motion-contrast-policy.d.ts +32 -0
- package/a11y/motion-contrast-policy.js +261 -0
- package/a11y/runtime-a11y-contract.d.ts +44 -0
- package/a11y/runtime-a11y-contract.js +385 -0
- package/a11y/screenreader-signals.d.ts +32 -0
- package/a11y/screenreader-signals.js +372 -0
- package/api.d.ts +168 -0
- package/api.js +864 -0
- package/catalog/catalog-public-types.d.ts +66 -0
- package/catalog/component-catalog-coverage.d.ts +20 -0
- package/catalog/component-catalog-coverage.js +377 -0
- package/catalog/component-long-tail-migration.d.ts +18 -0
- package/catalog/component-long-tail-migration.js +305 -0
- package/catalog/component-regression-priority.d.ts +20 -0
- package/catalog/component-regression-priority.js +305 -0
- package/catalog/enterprise-component-flex-release-handoff.d.ts +32 -0
- package/catalog/enterprise-component-flex-release-handoff.js +437 -0
- package/catalog/enterprise-component-style-audit.d.ts +22 -0
- package/catalog/enterprise-component-style-audit.js +353 -0
- package/catalog/enterprise-form-control-theme-a11y.d.ts +19 -0
- package/catalog/enterprise-form-control-theme-a11y.js +220 -0
- package/catalog/enterprise-icon-control-audit.d.ts +21 -0
- package/catalog/enterprise-icon-control-audit.js +258 -0
- package/catalog/enterprise-layout-display-media-tokenization.d.ts +20 -0
- package/catalog/enterprise-layout-display-media-tokenization.js +237 -0
- package/catalog/enterprise-navigation-routing-state-hardening.d.ts +20 -0
- package/catalog/enterprise-navigation-routing-state-hardening.js +255 -0
- package/catalog/enterprise-overlay-mode-token-parity.d.ts +15 -0
- package/catalog/enterprise-overlay-mode-token-parity.js +178 -0
- package/catalog/enterprise-third-party-authoring-guide.d.ts +23 -0
- package/catalog/enterprise-third-party-authoring-guide.js +310 -0
- package/catalog/enterprise-visual-dom-snapshot-matrix.d.ts +31 -0
- package/catalog/enterprise-visual-dom-snapshot-matrix.js +357 -0
- package/catalog/epic10-existing-component-metadata.d.ts +25 -0
- package/catalog/epic10-existing-component-metadata.js +534 -0
- package/catalog/epic10-p0-component-wave.d.ts +28 -0
- package/catalog/epic10-p0-component-wave.js +688 -0
- package/catalog/epic10-platform-gates.d.ts +31 -0
- package/catalog/epic10-platform-gates.js +425 -0
- package/catalog/epic10-release-handoff.d.ts +30 -0
- package/catalog/epic10-release-handoff.js +195 -0
- package/catalog/epic11-enterprise-ux-handoff.d.ts +29 -0
- package/catalog/epic11-enterprise-ux-handoff.js +403 -0
- package/catalog/epic12-docs-adoption.d.ts +29 -0
- package/catalog/epic12-docs-adoption.js +183 -0
- package/catalog/epic12-rc0-gate-matrix.d.ts +36 -0
- package/catalog/epic12-rc0-gate-matrix.js +439 -0
- package/catalog/epic12-rc0-handoff.d.ts +30 -0
- package/catalog/epic12-rc0-handoff.js +385 -0
- package/catalog/epic13-conditional-network-evidence-ci.d.ts +35 -0
- package/catalog/epic13-conditional-network-evidence-ci.js +278 -0
- package/catalog/epic13-conditional-network-evidence.d.ts +34 -0
- package/catalog/epic13-conditional-network-evidence.js +280 -0
- package/catalog/epic13-docs-rmt-production-hardening.d.ts +39 -0
- package/catalog/epic13-docs-rmt-production-hardening.js +286 -0
- package/catalog/epic13-hydration-performance-closure.d.ts +33 -0
- package/catalog/epic13-hydration-performance-closure.js +234 -0
- package/catalog/epic13-known-residual-triage.d.ts +32 -0
- package/catalog/epic13-known-residual-triage.js +339 -0
- package/catalog/epic13-package-export-lock.d.ts +41 -0
- package/catalog/epic13-package-export-lock.js +604 -0
- package/catalog/epic13-prod-browser-csp-smoke.d.ts +35 -0
- package/catalog/epic13-prod-browser-csp-smoke.js +218 -0
- package/catalog/epic13-rc1-gate-matrix-ci-handoff.d.ts +36 -0
- package/catalog/epic13-rc1-gate-matrix-ci-handoff.js +418 -0
- package/catalog/epic13-rc1-migration-notes.d.ts +36 -0
- package/catalog/epic13-rc1-migration-notes.js +271 -0
- package/catalog/epic13-rc1-readiness.d.ts +33 -0
- package/catalog/epic13-rc1-readiness.js +487 -0
- package/catalog/epic13-release-owner-acceptance.d.ts +33 -0
- package/catalog/epic13-release-owner-acceptance.js +354 -0
- package/catalog/epic13-release-report-pack-dry-run-evidence.d.ts +36 -0
- package/catalog/epic13-release-report-pack-dry-run-evidence.js +253 -0
- package/catalog/epic13-rmt-production-readiness.d.ts +35 -0
- package/catalog/epic13-rmt-production-readiness.js +314 -0
- package/catalog/epic13-trusted-dom-boundary.d.ts +36 -0
- package/catalog/epic13-trusted-dom-boundary.js +230 -0
- package/catalog/epic13-visual-owner-artifact.d.ts +35 -0
- package/catalog/epic13-visual-owner-artifact.js +233 -0
- package/catalog/epic14-lsp-handoff.d.ts +28 -0
- package/catalog/epic14-lsp-handoff.js +312 -0
- package/catalog/epic14-rmt-tooling.d.ts +33 -0
- package/catalog/epic14-rmt-tooling.js +282 -0
- package/catalog/surface-manager-adapter-runtime.d.ts +37 -0
- package/catalog/surface-manager-adapter-runtime.js +203 -0
- package/catalog/surface-manager-browser-lab.d.ts +39 -0
- package/catalog/surface-manager-browser-lab.js +225 -0
- package/catalog/surface-manager-controller.d.ts +43 -0
- package/catalog/surface-manager-controller.js +290 -0
- package/catalog/surface-manager-layout-engines.d.ts +32 -0
- package/catalog/surface-manager-layout-engines.js +161 -0
- package/catalog/surface-manager-lazy-loading.d.ts +35 -0
- package/catalog/surface-manager-lazy-loading.js +173 -0
- package/catalog/surface-manager-materialization.d.ts +37 -0
- package/catalog/surface-manager-materialization.js +202 -0
- package/catalog/surface-manager-native-rmt-surfaces.d.ts +48 -0
- package/catalog/surface-manager-native-rmt-surfaces.js +325 -0
- package/catalog/surface-manager-overlay-bridge.d.ts +42 -0
- package/catalog/surface-manager-overlay-bridge.js +247 -0
- package/catalog/surface-manager-persistence.d.ts +37 -0
- package/catalog/surface-manager-persistence.js +178 -0
- package/catalog/surface-manager-quality-gates.d.ts +48 -0
- package/catalog/surface-manager-quality-gates.js +324 -0
- package/catalog/surface-manager-release-handoff.d.ts +47 -0
- package/catalog/surface-manager-release-handoff.js +274 -0
- package/catalog/surface-manager-remote-policy.d.ts +34 -0
- package/catalog/surface-manager-remote-policy.js +199 -0
- package/catalog/surface-manager-rmt-authoring.d.ts +44 -0
- package/catalog/surface-manager-rmt-authoring.js +368 -0
- package/catalog/surface-manager-route-lifecycle.d.ts +32 -0
- package/catalog/surface-manager-route-lifecycle.js +162 -0
- package/catalog/surface-manager-runtime-release-handoff.d.ts +36 -0
- package/catalog/surface-manager-runtime-release-handoff.js +245 -0
- package/catalog/surface-manager-side-panel-runtime.d.ts +46 -0
- package/catalog/surface-manager-side-panel-runtime.js +307 -0
- package/catalog/surface-manager-stack-policy.d.ts +32 -0
- package/catalog/surface-manager-stack-policy.js +169 -0
- package/catalog/surface-manager-window-runtime.d.ts +45 -0
- package/catalog/surface-manager-window-runtime.js +285 -0
- package/catalog/surface-manager-workbench-fixture.d.ts +50 -0
- package/catalog/surface-manager-workbench-fixture.js +315 -0
- package/catalog/type-exports-api.js +236 -0
- package/catalog/type-exports-builder.js +405 -0
- package/catalog/type-exports-catalog.js +394 -0
- package/catalog/type-exports-loader.js +266 -0
- package/catalog/type-exports-policy.js +461 -0
- package/catalog/type-exports-rmt.js +407 -0
- package/catalog/type-exports-vendor.js +365 -0
- package/catalog/type-exports.js +574 -0
- package/components/icon-packs/core.js +154 -0
- package/components/icon-packs/lucide.js +136 -0
- package/components/manifest.json +44 -0
- package/components/prism.d.ts +73 -0
- package/components/prism.js +300 -0
- package/components/turndown.d.ts +34 -0
- package/components/turndown.js +107 -0
- package/components/x-rmt-lifecycle-demo-build.d.ts +78 -0
- package/components/x-rmt-lifecycle-demo-build.js +1175 -0
- package/components/x-rmt-lifecycle-demo.d.ts +83 -0
- package/components/x-rmt-lifecycle-demo.js +1175 -0
- package/components/xalert.d.ts +42 -0
- package/components/xalert.js +538 -0
- package/components/xbutton.d.ts +127 -0
- package/components/xbutton.js +612 -0
- package/components/xcalendar.d.ts +39 -0
- package/components/xcalendar.js +338 -0
- package/components/xcards.d.ts +34 -0
- package/components/xcards.js +253 -0
- package/components/xcheckbox.d.ts +48 -0
- package/components/xcheckbox.js +448 -0
- package/components/xcode.d.ts +35 -0
- package/components/xcode.js +370 -0
- package/components/xdialog.d.ts +48 -0
- package/components/xdialog.js +763 -0
- package/components/xdrawer.d.ts +61 -0
- package/components/xdrawer.js +654 -0
- package/components/xfooter.d.ts +41 -0
- package/components/xfooter.js +351 -0
- package/components/xform.d.ts +43 -0
- package/components/xform.js +456 -0
- package/components/xheader.d.ts +68 -0
- package/components/xheader.js +1253 -0
- package/components/xhero.d.ts +42 -0
- package/components/xhero.js +475 -0
- package/components/xicon.d.ts +146 -0
- package/components/xicon.js +688 -0
- package/components/xinput.d.ts +37 -0
- package/components/xinput.js +444 -0
- package/components/xlightbox.d.ts +48 -0
- package/components/xlightbox.js +571 -0
- package/components/xlink.d.ts +63 -0
- package/components/xlink.js +565 -0
- package/components/xmasonry.d.ts +35 -0
- package/components/xmasonry.js +666 -0
- package/components/xmenu.d.ts +118 -0
- package/components/xmenu.js +1005 -0
- package/components/xmodal.d.ts +64 -0
- package/components/xmodal.js +831 -0
- package/components/xplayer.d.ts +57 -0
- package/components/xplayer.js +1748 -0
- package/components/xpopover.d.ts +54 -0
- package/components/xpopover.js +466 -0
- package/components/xprogress.d.ts +40 -0
- package/components/xprogress.js +345 -0
- package/components/xradio.d.ts +50 -0
- package/components/xradio.js +474 -0
- package/components/xrouter.d.ts +244 -0
- package/components/xrouter.js +1841 -0
- package/components/xsection.d.ts +34 -0
- package/components/xsection.js +253 -0
- package/components/xselect.d.ts +46 -0
- package/components/xselect.js +463 -0
- package/components/xsidepanel.d.ts +56 -0
- package/components/xsidepanel.js +728 -0
- package/components/xspinner.d.ts +38 -0
- package/components/xspinner.js +388 -0
- package/components/xstate.d.ts +137 -0
- package/components/xstate.js +493 -0
- package/components/xstatus.d.ts +41 -0
- package/components/xstatus.js +381 -0
- package/components/xsummary.d.ts +43 -0
- package/components/xsummary.js +293 -0
- package/components/xsurfacemanager-controller.d.ts +130 -0
- package/components/xsurfacemanager-controller.js +699 -0
- package/components/xsurfacemanager.d.ts +452 -0
- package/components/xsurfacemanager.js +3775 -0
- package/components/xsurfaceoverlay-bridge.d.ts +43 -0
- package/components/xsurfaceoverlay-bridge.js +238 -0
- package/components/xsurfacewindow.d.ts +50 -0
- package/components/xsurfacewindow.js +576 -0
- package/components/xtabs.d.ts +73 -0
- package/components/xtabs.js +611 -0
- package/components/xtend-public-types.d.ts +208 -0
- package/components/xtextarea.d.ts +46 -0
- package/components/xtextarea.js +451 -0
- package/components/xtheme.d.ts +253 -0
- package/components/xtheme.js +1438 -0
- package/components/xtoast.d.ts +39 -0
- package/components/xtoast.js +389 -0
- package/components/xtooltip.d.ts +53 -0
- package/components/xtooltip.js +432 -0
- package/components/xtype.d.ts +42 -0
- package/components/xtype.js +244 -0
- package/components/xutils.d.ts +164 -0
- package/components/xutils.js +496 -0
- package/components/xwriter.d.ts +67 -0
- package/components/xwriter.js +854 -0
- package/design-tokens/themes/enterprise-light.json +40 -0
- package/design-tokens/themes/xtend-signature.json +126 -0
- package/design-tokens/xtend-design-tokens.d.ts +95 -0
- package/design-tokens/xtend-design-tokens.js +395 -0
- package/design-tokens/xtheme-token-alias-layer.d.ts +84 -0
- package/design-tokens/xtheme-token-alias-layer.js +423 -0
- package/docs/.htaccess +51 -0
- package/docs/README.md +340 -0
- package/docs/XTend-ADR.md +221 -0
- package/docs/a11y-keyboard-smokes.md +62 -0
- package/docs/about.md +18 -0
- package/docs/api.md +157 -0
- package/docs/best-practices.md +76 -0
- package/docs/component-catalog-coverage.md +58 -0
- package/docs/component-lab.md +103 -0
- package/docs/component-long-tail-migration.md +41 -0
- package/docs/component-platform.md +159 -0
- package/docs/component-ux-app-authoring.md +130 -0
- package/docs/component-ux-authoring.md +96 -0
- package/docs/component-ux-gates.md +45 -0
- package/docs/components/x-rmt-lifecycle-demo-build.md +60 -0
- package/docs/components/xalert.md +81 -0
- package/docs/components/xbutton.md +103 -0
- package/docs/components/xcalendar.md +82 -0
- package/docs/components/xcards.md +128 -0
- package/docs/components/xcheckbox.md +102 -0
- package/docs/components/xcode.md +126 -0
- package/docs/components/xdialog.md +92 -0
- package/docs/components/xdrawer.md +84 -0
- package/docs/components/xfooter.md +126 -0
- package/docs/components/xform.md +128 -0
- package/docs/components/xheader.md +308 -0
- package/docs/components/xhero.md +142 -0
- package/docs/components/xicon.md +125 -0
- package/docs/components/xinput.md +129 -0
- package/docs/components/xlightbox.md +98 -0
- package/docs/components/xlink.md +109 -0
- package/docs/components/xmasonry.md +124 -0
- package/docs/components/xmenu.md +158 -0
- package/docs/components/xmodal.md +82 -0
- package/docs/components/xplayer.md +104 -0
- package/docs/components/xpopover.md +67 -0
- package/docs/components/xprogress.md +56 -0
- package/docs/components/xradio.md +103 -0
- package/docs/components/xrouter.md +260 -0
- package/docs/components/xsection.md +125 -0
- package/docs/components/xselect.md +105 -0
- package/docs/components/xsidepanel.md +30 -0
- package/docs/components/xspinner.md +102 -0
- package/docs/components/xstate.md +148 -0
- package/docs/components/xstatus.md +55 -0
- package/docs/components/xsummary.md +78 -0
- package/docs/components/xsurfacemanager.md +27 -0
- package/docs/components/xsurfacewindow.md +21 -0
- package/docs/components/xtabs.md +160 -0
- package/docs/components/xtextarea.md +98 -0
- package/docs/components/xtheme.md +167 -0
- package/docs/components/xtoast.md +62 -0
- package/docs/components/xtooltip.md +66 -0
- package/docs/components/xtype.md +82 -0
- package/docs/components/xutils.md +144 -0
- package/docs/components/xwriter.md +94 -0
- package/docs/components.md +117 -0
- package/docs/conditional-network-evidence-ci.md +38 -0
- package/docs/conditional-network-evidence.md +50 -0
- package/docs/core-migration-guide.md +110 -0
- package/docs/design-tokens.md +116 -0
- package/docs/docs-rmt-production-hardening.md +31 -0
- package/docs/enterprise-adoption.md +411 -0
- package/docs/enterprise-component-flex-release-handoff.md +129 -0
- package/docs/epic10-platform-gates.md +62 -0
- package/docs/epic10-release-handoff.md +81 -0
- package/docs/epic11-enterprise-ux-handoff.md +70 -0
- package/docs/epic12-rc0-handoff.md +61 -0
- package/docs/existing-component-metadata.md +67 -0
- package/docs/hydration-performance-closure.md +34 -0
- package/docs/hydration-policies.md +71 -0
- package/docs/index.php +1625 -0
- package/docs/known-residual-triage.md +22 -0
- package/docs/manifest-import-policy.md +79 -0
- package/docs/manifest.md +106 -0
- package/docs/menu.json +1190 -0
- package/docs/motion-contrast.md +67 -0
- package/docs/package-export-lock.md +44 -0
- package/docs/performance-measurements.md +106 -0
- package/docs/performance-regression.md +89 -0
- package/docs/performance.md +94 -0
- package/docs/previews/README.md +17 -0
- package/docs/prod-browser-csp-smokes.md +40 -0
- package/docs/public-component-types.md +79 -0
- package/docs/quick-start-guide.md +152 -0
- package/docs/rc0-adoption-guide.md +102 -0
- package/docs/rc0-gate-matrix.md +58 -0
- package/docs/rc1-gate-matrix-ci-handoff.md +56 -0
- package/docs/rc1-migration-notes.md +69 -0
- package/docs/rc1-readiness.md +46 -0
- package/docs/release-owner-acceptance.md +56 -0
- package/docs/release-report-pack-dry-run-evidence.md +39 -0
- package/docs/rmt-dsl-authoring-polish.md +122 -0
- package/docs/rmt-first-demo-app.md +77 -0
- package/docs/rmt-first-xtend-apps.md +105 -0
- package/docs/rmt-kernel-panic-recovery-incident-handoff.md +61 -0
- package/docs/rmt-kernel-security-hardening-migration.md +50 -0
- package/docs/rmt-kernel-trusted-output-authoring.md +69 -0
- package/docs/rmt-language-server.md +177 -0
- package/docs/rmt-lifecycle-demo.md +25 -0
- package/docs/rmt-linter.md +140 -0
- package/docs/rmt-production-readiness.md +63 -0
- package/docs/rmt-tooling-release-gates.md +77 -0
- package/docs/rmt-vnext-authoring.md +60 -0
- package/docs/rmt-vnext-cross-surface-events.md +68 -0
- package/docs/rmt-vnext-enterprise-mfe-handoff.md +70 -0
- package/docs/rmt-vnext-migration-notes.md +62 -0
- package/docs/rmt-vnext-release-handoff.md +69 -0
- package/docs/rmt-vnext-remote-surfaces.md +90 -0
- package/docs/rmt-vnext-surface-registry-enterprise.md +76 -0
- package/docs/screenreader-signals.md +56 -0
- package/docs/supply-chain-gates.md +100 -0
- package/docs/surface-manager-authoring-guide.md +94 -0
- package/docs/surface-manager-browser-lab.md +45 -0
- package/docs/surface-manager-component-lab.md +43 -0
- package/docs/surface-manager-controller.md +66 -0
- package/docs/surface-manager-layout-engines.md +32 -0
- package/docs/surface-manager-lazy-hydration.md +63 -0
- package/docs/surface-manager-migration-guide.md +94 -0
- package/docs/surface-manager-native-rmt-surfaces.md +38 -0
- package/docs/surface-manager-overlay-bridge.md +53 -0
- package/docs/surface-manager-persistence.md +30 -0
- package/docs/surface-manager-quality-gates.md +51 -0
- package/docs/surface-manager-release-handoff.md +68 -0
- package/docs/surface-manager-remote-policy.md +54 -0
- package/docs/surface-manager-rmt-authoring.md +86 -0
- package/docs/surface-manager-route-lifecycle.md +59 -0
- package/docs/surface-manager-runtime-release-handoff.md +69 -0
- package/docs/surface-manager-side-panel-runtime.md +36 -0
- package/docs/surface-manager-stack-policy.md +39 -0
- package/docs/surface-manager-window-runtime.md +47 -0
- package/docs/surface-manager-workbench-fixture.md +43 -0
- package/docs/third-party-design-authoring.md +406 -0
- package/docs/trusted-dom-boundary-browser-proof.md +32 -0
- package/docs/trusted-dom-sanitizing.md +110 -0
- package/docs/type-exports.md +61 -0
- package/docs/typescript-components.md +63 -0
- package/docs/utils/fabric-runtime.js +650 -0
- package/docs/utils/pageloader.js +2823 -0
- package/docs/utils/parsedown.php +298 -0
- package/docs/visual-browser-regression.md +83 -0
- package/docs/visual-owner-artifacts.md +46 -0
- package/docs/visual-snapshot-automation.md +87 -0
- package/docs/xtend-api-types.md +55 -0
- package/docs/xtend-builder-types.md +55 -0
- package/docs/xtend-catalog-types.md +44 -0
- package/docs/xtend-fabric-rmt-lane-mapping.md +143 -0
- package/docs/xtend-fabric.md +474 -0
- package/docs/xtend-loader-types.md +58 -0
- package/docs/xtend-loader.md +265 -0
- package/docs/xtend-policy-types.md +38 -0
- package/docs/xtend-rmt-types.md +39 -0
- package/docs/xtend-vendor-types.md +36 -0
- package/docs/xtendrmt-app-dsl.md +269 -0
- package/docs/xtendrmt-migration-guide.md +235 -0
- package/docs/xtendrmt-native-authoring.md +337 -0
- package/docs/xtendrmt-overview.md +89 -0
- package/docs/xtendrmt-parsedown-docs.rmt +956 -0
- package/docs/xtendrmt-parsedown-scheduling.md +301 -0
- package/docs/xtendrmt-runtime-bridge.md +155 -0
- package/fabric/hydration-policy.d.ts +27 -0
- package/fabric/hydration-policy.js +306 -0
- package/fabric/package.json +58 -0
- package/fabric/rmt-lane-mapping.d.ts +47 -0
- package/fabric/rmt-lane-mapping.js +504 -0
- package/fabric/xtend-fabric.d.ts +81 -0
- package/fabric/xtend-fabric.js +2669 -0
- package/fabric/xtend-policy-public-types.d.ts +135 -0
- package/package.json +8225 -0
- package/security/README.md +54 -0
- package/security/manifest-import-policy.d.ts +43 -0
- package/security/manifest-import-policy.js +260 -0
- package/security/supply-chain-gate-policy.d.ts +45 -0
- package/security/supply-chain-gate-policy.js +249 -0
- package/security/trusted-dom-policy.d.ts +36 -0
- package/security/trusted-dom-policy.js +316 -0
- package/tools/package.json +77 -0
- package/tools/rmt-editor/vscode/README.md +33 -0
- package/tools/rmt-editor/vscode/extension.d.ts +9 -0
- package/tools/rmt-editor/vscode/extension.js +55 -0
- package/tools/rmt-editor/vscode/language-configuration.json +28 -0
- package/tools/rmt-editor/vscode/package.json +83 -0
- package/tools/rmt-editor/vscode/snippets/rmt.code-snippets +243 -0
- package/tools/rmt-editor/vscode/syntaxes/rmt.tmLanguage.json +13 -0
- package/tools/rmt-editor/vscode/xtend-rmt-language-0.0.0-enterprise-readiness.vsix +0 -0
- package/tools/rmt-language/code-actions.d.ts +15 -0
- package/tools/rmt-language/code-actions.js +566 -0
- package/tools/rmt-language/completions.d.ts +22 -0
- package/tools/rmt-language/completions.js +475 -0
- package/tools/rmt-language/definitions.d.ts +13 -0
- package/tools/rmt-language/definitions.js +212 -0
- package/tools/rmt-language/diagnostics.d.ts +23 -0
- package/tools/rmt-language/diagnostics.js +486 -0
- package/tools/rmt-language/format-adapter.d.ts +16 -0
- package/tools/rmt-language/format-adapter.js +270 -0
- package/tools/rmt-language/hover.d.ts +12 -0
- package/tools/rmt-language/hover.js +326 -0
- package/tools/rmt-language/kernel-escalation.d.ts +122 -0
- package/tools/rmt-language/kernel-escalation.js +427 -0
- package/tools/rmt-language/kernel-panic-monitor.d.ts +176 -0
- package/tools/rmt-language/kernel-panic-monitor.js +674 -0
- package/tools/rmt-language/kernel-policy-parity.d.ts +142 -0
- package/tools/rmt-language/kernel-policy-parity.js +629 -0
- package/tools/rmt-language/kernel-recovery.d.ts +173 -0
- package/tools/rmt-language/kernel-recovery.js +666 -0
- package/tools/rmt-language/kernel-scheduler-failure.d.ts +136 -0
- package/tools/rmt-language/kernel-scheduler-failure.js +486 -0
- package/tools/rmt-language/kernel-security-regression.d.ts +154 -0
- package/tools/rmt-language/kernel-security-regression.js +465 -0
- package/tools/rmt-language/kernel-trust-authority.d.ts +120 -0
- package/tools/rmt-language/kernel-trust-authority.js +549 -0
- package/tools/rmt-language/parser.d.ts +14 -0
- package/tools/rmt-language/parser.js +111 -0
- package/tools/rmt-language/rmt-tooling-public-types.d.ts +179 -0
- package/tools/rmt-language/rules/boundary-policy.js +81 -0
- package/tools/rmt-language/rules/document-policy.js +65 -0
- package/tools/rmt-language/rules/index.js +29 -0
- package/tools/rmt-language/rules/route-policy.js +81 -0
- package/tools/rmt-language/rules/scheduler-policy.js +66 -0
- package/tools/rmt-language/rules/template-policy.js +130 -0
- package/tools/rmt-language/semantic-graph.d.ts +18 -0
- package/tools/rmt-language/semantic-graph.js +827 -0
- package/tools/rmt-language/snippets/README.md +17 -0
- package/tools/rmt-language/snippets/index.d.ts +17 -0
- package/tools/rmt-language/snippets/index.js +417 -0
- package/tools/rmt-language/snippets/rmt.code-snippets +243 -0
- package/tools/rmt-language/source-model.d.ts +14 -0
- package/tools/rmt-language/source-model.js +731 -0
- package/tools/rmt-language/symbols.d.ts +13 -0
- package/tools/rmt-language/symbols.js +183 -0
- package/tools/rmt-language/vnext-compatibility.d.ts +28 -0
- package/tools/rmt-language/vnext-compatibility.js +675 -0
- package/tools/rmt-language/vnext-compiler.d.ts +17 -0
- package/tools/rmt-language/vnext-compiler.js +716 -0
- package/tools/rmt-language/vnext-composition.d.ts +30 -0
- package/tools/rmt-language/vnext-composition.js +595 -0
- package/tools/rmt-language/vnext-conditions.d.ts +25 -0
- package/tools/rmt-language/vnext-conditions.js +474 -0
- package/tools/rmt-language/vnext-cross-surface-events.d.ts +30 -0
- package/tools/rmt-language/vnext-cross-surface-events.js +607 -0
- package/tools/rmt-language/vnext-degradation.d.ts +23 -0
- package/tools/rmt-language/vnext-degradation.js +428 -0
- package/tools/rmt-language/vnext-enterprise-fixtures.d.ts +28 -0
- package/tools/rmt-language/vnext-enterprise-fixtures.js +487 -0
- package/tools/rmt-language/vnext-enterprise-registry.d.ts +21 -0
- package/tools/rmt-language/vnext-enterprise-registry.js +495 -0
- package/tools/rmt-language/vnext-enterprise-release.d.ts +44 -0
- package/tools/rmt-language/vnext-enterprise-release.js +472 -0
- package/tools/rmt-language/vnext-event-governance.d.ts +29 -0
- package/tools/rmt-language/vnext-event-governance.js +488 -0
- package/tools/rmt-language/vnext-events.d.ts +44 -0
- package/tools/rmt-language/vnext-events.js +680 -0
- package/tools/rmt-language/vnext-import-resolver.d.ts +28 -0
- package/tools/rmt-language/vnext-import-resolver.js +642 -0
- package/tools/rmt-language/vnext-lifecycle.d.ts +22 -0
- package/tools/rmt-language/vnext-lifecycle.js +404 -0
- package/tools/rmt-language/vnext-parser.d.ts +21 -0
- package/tools/rmt-language/vnext-parser.js +1391 -0
- package/tools/rmt-language/vnext-regression.d.ts +25 -0
- package/tools/rmt-language/vnext-regression.js +394 -0
- package/tools/rmt-language/vnext-release.d.ts +29 -0
- package/tools/rmt-language/vnext-release.js +293 -0
- package/tools/rmt-language/vnext-remote-compatibility.d.ts +33 -0
- package/tools/rmt-language/vnext-remote-compatibility.js +892 -0
- package/tools/rmt-language/vnext-remote-compiler.d.ts +14 -0
- package/tools/rmt-language/vnext-remote-compiler.js +520 -0
- package/tools/rmt-language/vnext-remote-manifest.d.ts +33 -0
- package/tools/rmt-language/vnext-remote-manifest.js +538 -0
- package/tools/rmt-language/vnext-remote-security.d.ts +27 -0
- package/tools/rmt-language/vnext-remote-security.js +380 -0
- package/tools/rmt-language/vnext-remote-tooling.d.ts +25 -0
- package/tools/rmt-language/vnext-remote-tooling.js +805 -0
- package/tools/rmt-language/vnext-scheduler.d.ts +24 -0
- package/tools/rmt-language/vnext-scheduler.js +469 -0
- package/tools/rmt-language/vnext-security.d.ts +28 -0
- package/tools/rmt-language/vnext-security.js +597 -0
- package/tools/rmt-language/vnext-streaming.d.ts +28 -0
- package/tools/rmt-language/vnext-streaming.js +593 -0
- package/tools/rmt-language/vnext-surfaces.d.ts +24 -0
- package/tools/rmt-language/vnext-surfaces.js +406 -0
- package/tools/rmt-language/vnext-tooling.d.ts +25 -0
- package/tools/rmt-language/vnext-tooling.js +728 -0
- package/tools/rmt-language-server/protocol.d.ts +22 -0
- package/tools/rmt-language-server/protocol.js +352 -0
- package/tools/rmt-language-server/server.d.ts +15 -0
- package/tools/rmt-language-server/server.js +622 -0
- package/tools/rmt-linter/cli.d.ts +14 -0
- package/tools/rmt-linter/cli.js +450 -0
- package/tools/rmt-linter/reporter.d.ts +16 -0
- package/tools/rmt-linter/reporter.js +472 -0
- package/xtend-builder/README.md +83 -0
- package/xtend-builder/a11y/README.md +42 -0
- package/xtend-builder/a11y/component-a11y-profile.d.ts +14 -0
- package/xtend-builder/a11y/component-a11y-profile.js +314 -0
- package/xtend-builder/blueprints/README.md +105 -0
- package/xtend-builder/blueprints/component-blueprint.contract.d.ts +16 -0
- package/xtend-builder/blueprints/component-blueprint.contract.js +343 -0
- package/xtend-builder/builder-public-types.d.ts +234 -0
- package/xtend-builder/extensions/README.md +26 -0
- package/xtend-builder/extensions/component-extension-points.d.ts +11 -0
- package/xtend-builder/extensions/component-extension-points.js +277 -0
- package/xtend-builder/generators/README.md +149 -0
- package/xtend-builder/generators/component-files.d.ts +5 -0
- package/xtend-builder/generators/component-files.js +769 -0
- package/xtend-builder/generators/component-plan.d.ts +4 -0
- package/xtend-builder/generators/component-plan.js +104 -0
- package/xtend-builder/generators/registry.d.ts +6 -0
- package/xtend-builder/generators/registry.js +118 -0
- package/xtend-builder/generators/rmt-build.js +738 -0
- package/xtend-builder/generators/rmt-lifecycle-demo.js +922 -0
- package/xtend-builder/lib/cli.d.ts +9 -0
- package/xtend-builder/lib/cli.js +543 -0
- package/xtend-builder/lib/layout.d.ts +6 -0
- package/xtend-builder/lib/layout.js +153 -0
- package/xtend-builder/lib/package-resolver.js +25 -0
- package/xtend-builder/package.json +90 -0
- package/xtend-builder/performance/README.md +31 -0
- package/xtend-builder/performance/component-performance-profile.d.ts +11 -0
- package/xtend-builder/performance/component-performance-profile.js +347 -0
- package/xtend-builder/performance/component-ux-performance-contract.d.ts +27 -0
- package/xtend-builder/performance/component-ux-performance-contract.js +424 -0
- package/xtend-builder/preview/README.md +61 -0
- package/xtend-builder/preview/component-lab-ux-inspector.d.ts +20 -0
- package/xtend-builder/preview/component-lab-ux-inspector.js +448 -0
- package/xtend-builder/preview/component-lab.d.ts +14 -0
- package/xtend-builder/preview/component-lab.js +278 -0
- package/xtend-builder/preview/component-preview.d.ts +5 -0
- package/xtend-builder/preview/component-preview.js +160 -0
- package/xtend-builder/scaffold.config.d.ts +4 -0
- package/xtend-builder/scaffold.config.js +2056 -0
- package/xtend-builder/scaffold.d.ts +3 -0
- package/xtend-builder/scaffold.js +11 -0
- package/xtend-builder/templates/README.md +33 -0
- package/xtend-builder/templates/component/a11y.template.ts +11 -0
- package/xtend-builder/templates/component/component-suite.template.d.ts +2 -0
- package/xtend-builder/templates/component/component-suite.template.js +108 -0
- package/xtend-builder/templates/component/contract.template.ts +10 -0
- package/xtend-builder/templates/component/demo-plan.template.md +73 -0
- package/xtend-builder/templates/component/docs.template.md +301 -0
- package/xtend-builder/templates/component/fixture-data.template.ts +28 -0
- package/xtend-builder/templates/component/fixture.template.html +37 -0
- package/xtend-builder/templates/component/manifest-plan.template.json +22 -0
- package/xtend-builder/templates/component/performance.template.ts +13 -0
- package/xtend-builder/templates/component/rmt.template.ts +12 -0
- package/xtend-builder/templates/component/source.template.d.ts +2 -0
- package/xtend-builder/templates/component/source.template.js +137 -0
- package/xtend-builder/templates/component/source.template.ts +110 -0
- package/xtend-builder/templates/component/types.template.d.ts +423 -0
- package/xtend-builder/templates/loader.d.ts +4 -0
- package/xtend-builder/templates/loader.js +51 -0
- package/xtend-builder/templates/registry.d.ts +6 -0
- package/xtend-builder/templates/registry.js +119 -0
- package/xtend-builder/typing/README.md +130 -0
- package/xtend-builder/typing/component-contract-v2.d.ts +15 -0
- package/xtend-builder/typing/component-contract-v2.js +248 -0
- package/xtend-builder/typing/component-network-contract.d.ts +22 -0
- package/xtend-builder/typing/component-network-contract.js +478 -0
- package/xtend-builder/typing/component-shell-contract.d.ts +21 -0
- package/xtend-builder/typing/component-shell-contract.js +312 -0
- package/xtend-builder/typing/component-styling-contract.d.ts +22 -0
- package/xtend-builder/typing/component-styling-contract.js +301 -0
- package/xtend-builder/typing/component-types.d.ts +10 -0
- package/xtend-builder/typing/component-types.js +551 -0
- package/xtend-builder/typing/enterprise-component-flex-hardening-contract.d.ts +20 -0
- package/xtend-builder/typing/enterprise-component-flex-hardening-contract.js +332 -0
- package/xtend-builder/typing/feedback-status-ux-contract.d.ts +25 -0
- package/xtend-builder/typing/feedback-status-ux-contract.js +347 -0
- package/xtend-builder/typing/form-controls-ux-contract.d.ts +25 -0
- package/xtend-builder/typing/form-controls-ux-contract.js +357 -0
- package/xtend-builder/typing/layout-display-media-ux-contract.d.ts +25 -0
- package/xtend-builder/typing/layout-display-media-ux-contract.js +420 -0
- package/xtend-builder/typing/navigation-routing-ux-contract.d.ts +17 -0
- package/xtend-builder/typing/navigation-routing-ux-contract.js +297 -0
- package/xtend-builder/typing/overlay-interaction-ux-contract.d.ts +25 -0
- package/xtend-builder/typing/overlay-interaction-ux-contract.js +383 -0
- package/xtend-builder/typing/rmt-dsl-authoring-polish.d.ts +27 -0
- package/xtend-builder/typing/rmt-dsl-authoring-polish.js +419 -0
- package/xtend-builder/typing/rmt-shell-authoring-contract.d.ts +26 -0
- package/xtend-builder/typing/rmt-shell-authoring-contract.js +315 -0
- package/xtend-builder/utils/README.md +8 -0
- package/xtend-builder/utils/naming.d.ts +7 -0
- package/xtend-builder/utils/naming.js +36 -0
- package/xtend-builder/utils/validation.d.ts +5 -0
- package/xtend-builder/utils/validation.js +95 -0
- package/xtend-builder/wiring/README.md +46 -0
- package/xtend-builder/wiring/features.d.ts +5 -0
- package/xtend-builder/wiring/features.js +165 -0
- package/xtend-builder/wiring/hydration.d.ts +4 -0
- package/xtend-builder/wiring/hydration.js +44 -0
- package/xtend-builder/wiring/manifest.d.ts +5 -0
- package/xtend-builder/wiring/manifest.js +48 -0
- package/xtend-builder/workflows/README.md +47 -0
- package/xtend-builder/workflows/developer-workflow.d.ts +6 -0
- package/xtend-builder/workflows/developer-workflow.js +125 -0
- package/xtend-builder/writing/manifest-patcher.d.ts +49 -0
- package/xtend-builder/writing/manifest-patcher.js +391 -0
- package/xtend-builder/writing/write-plan.d.ts +148 -0
- package/xtend-builder/writing/write-plan.js +646 -0
- package/xtend-dev.d.ts +23 -0
- package/xtend-dev.js +4 -0
- package/xtend-loader.d.ts +201 -0
- package/xtend-loader.js +1704 -0
- package/xtend.css +402 -0
- package/xtendrmt/package.json +64 -0
- package/xtendrmt/rmt-core.d.ts +4452 -0
- package/xtendrmt/rmt-core.esm.js +25793 -0
- package/xtendrmt/rmt-first-demo-app.js +265 -0
- package/xtendrmt/rmt-first-demo-app.rmt +737 -0
- package/xtendrmt/rmt-lifecycle-demo.app.js +493 -0
- package/xtendrmt/rmt-lifecycle-demo.core.json +810 -0
- package/xtendrmt/rmt-lifecycle-demo.rmt +35 -0
- package/xtendrmt/rmt-lifecycle-demo.rmt-build.app.js +153 -0
- package/xtendrmt/rmt-lifecycle-demo.rmt-build.core.json +810 -0
- package/xtendrmt/rmt-lifecycle-demo.rmt-build.scaffold.json +202 -0
- package/xtendrmt/rmt-lifecycle-demo.scaffold.json +187 -0
- package/xtendrmt/rmt-manifest.json +548 -0
- package/xtendrmt/rmt-runtime.browser.js +26183 -0
- package/xtendrmt/rmt-runtime.esm.js +26214 -0
- package/xtendrmt/rmt-vnext-enterprise-mfe-demo.core.json +849 -0
- package/xtendrmt/rmt-vnext-enterprise-mfe-demo.rmt +50 -0
- package/xtendrmt/rmt-vnext-reference-demo.core.json +1069 -0
- package/xtendrmt/rmt-vnext-reference-demo.rmt +50 -0
- package/xtendrmt/rmt.schema.json +3145 -0
- package/xtendrmt/surface-workbench.js +316 -0
- package/xtendrmt/surface-workbench.rmt +762 -0
- package/xtendrmt/xtendrmt-bestcase-demo.core.json +1187 -0
- package/xtendrmt/xtendrmt-bestcase-demo.js +1728 -0
- package/xtendrmt/xtendrmt-bestcase-demo.rmt +57 -0
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# SurfaceManager Migration Guide
|
|
2
|
+
|
|
3
|
+
- Contract: `xtend.surface.release-handoff.v1`
|
|
4
|
+
- Native Domain: `xtend.rmt.surfaces-domain.v1`
|
|
5
|
+
- Adapter Handoff: `xtend.surface.adapter.v1`
|
|
6
|
+
- Gate: `node scripts/run_xtend_tests.js surface-release-handoff --json`
|
|
7
|
+
|
|
8
|
+
## Ziel
|
|
9
|
+
|
|
10
|
+
Dieser Guide beschreibt die additive Migration von Surface-Metadata in Component Records zu nativen RMT Surface Records. Die Migration ist bewusst ohne Big Bang: bestehende `components[*].metadata.surface` Records bleiben gueltig, waehrend neue App Shells `surfaces[*]` bevorzugen.
|
|
11
|
+
|
|
12
|
+
## Migrationsschritte
|
|
13
|
+
|
|
14
|
+
| Schritt | Ergebnis |
|
|
15
|
+
|---------|----------|
|
|
16
|
+
| `inventory-component-metadata-surfaces` | alle bestehenden `metadata.surface` Records und State Keys erfassen |
|
|
17
|
+
| `stabilize-surface-ids-and-state-keys` | IDs, `type`, `manager` und `stateKey` einfrieren |
|
|
18
|
+
| `add-native-surfaces-records` | parallele `surfaces[*]` Records mit gleicher Identitaet anlegen |
|
|
19
|
+
| `keep-dual-records-during-handoff` | Component-Metadata und native Records im Gate vergleichen |
|
|
20
|
+
| `switch-authoring-default-to-surfaces-domain` | neue komplexe Shells direkt in `surfaces[*]` schreiben |
|
|
21
|
+
| `close-xtend-surface-runtime-after-adapter-implementation` | historisches Adapter-Handoff aus `WP-SM-09` durch `WP-SM-19` Runtime-Gates schliessen |
|
|
22
|
+
|
|
23
|
+
## Vorher
|
|
24
|
+
|
|
25
|
+
```json
|
|
26
|
+
{
|
|
27
|
+
"id": "workbench.properties",
|
|
28
|
+
"tag": "x-side-panel",
|
|
29
|
+
"metadata": {
|
|
30
|
+
"surface": {
|
|
31
|
+
"schema": "xtend.surface.record.v1",
|
|
32
|
+
"id": "surface.properties",
|
|
33
|
+
"type": "side-panel",
|
|
34
|
+
"manager": "workbench.manager",
|
|
35
|
+
"stateKey": "xtend.surface.properties.state"
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Nachher als Dual Record
|
|
42
|
+
|
|
43
|
+
```json
|
|
44
|
+
{
|
|
45
|
+
"surfaces": [
|
|
46
|
+
{
|
|
47
|
+
"id": "surface.properties",
|
|
48
|
+
"schema": "xtend.surface.record.v1",
|
|
49
|
+
"type": "side-panel",
|
|
50
|
+
"adapter": "xtend.surface",
|
|
51
|
+
"manager": "workbench.manager",
|
|
52
|
+
"component": "workbench.properties",
|
|
53
|
+
"route": "workbench",
|
|
54
|
+
"schedule": "surface.visible.render",
|
|
55
|
+
"stateKey": "xtend.surface.properties.state"
|
|
56
|
+
}
|
|
57
|
+
]
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Die Component-Metadata bleibt waehrend des Handoffs im Component Record und verweist optional mit `nativeRecord` auf den nativen Record.
|
|
62
|
+
|
|
63
|
+
## Review-Checkliste
|
|
64
|
+
|
|
65
|
+
- Jede native Surface besitzt einen stabilen `id`.
|
|
66
|
+
- `component` zeigt auf genau einen Component Record.
|
|
67
|
+
- `manager` zeigt auf den `x-surface-manager` Record.
|
|
68
|
+
- `route` und `schedule` loesen auf native RMT Records auf.
|
|
69
|
+
- `stateKey` ist identisch zwischen `components[*].metadata.surface` und `surfaces[*]`.
|
|
70
|
+
- `xtend.surface` ist als `surface_adapter` deklariert und seit `WP-SM-19` ueber die Runtime-Gates produktiv beworben.
|
|
71
|
+
- Die Gates `surface-native-rmt`, `surface-release-handoff` und `surface-runtime-release-handoff` sind gruen.
|
|
72
|
+
|
|
73
|
+
Details zur generischen RMT-Migration stehen in [XTendRMT Native Migration Guide](./xtendrmt-migration-guide.md). Details zum Surface-Authoring stehen in [SurfaceManager Authoring Guide](./surface-manager-authoring-guide.md).
|
|
74
|
+
|
|
75
|
+
## WP-SM-19 Runtime Migration Notes
|
|
76
|
+
|
|
77
|
+
`WP-SM-19` akzeptiert `xtend.surface.runtime-migration-notes.v1` als finale Migrationslinie fuer die produktive Surface Runtime.
|
|
78
|
+
|
|
79
|
+
Erweiterte Gate-Reihenfolge fuer Migrationen:
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
node scripts/run_xtend_tests.js surface-adapter-runtime --json
|
|
83
|
+
node scripts/run_xtend_tests.js surface-native-materialization --json
|
|
84
|
+
node scripts/run_xtend_tests.js surface-persistence --json
|
|
85
|
+
node scripts/run_xtend_tests.js surface-lazy-hydration --json
|
|
86
|
+
node scripts/run_xtend_tests.js surface-route-lifecycle --json
|
|
87
|
+
node scripts/run_xtend_tests.js surface-stack-policy --json
|
|
88
|
+
node scripts/run_xtend_tests.js surface-layout-engines --json
|
|
89
|
+
node scripts/run_xtend_tests.js surface-remote-policy --json
|
|
90
|
+
node scripts/run_xtend_tests.js surface-browser-lab --json
|
|
91
|
+
node scripts/run_xtend_tests.js surface-runtime-release-handoff --json
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Bestehende `components[*].metadata.surface` Records bleiben erlaubt. Der Zielzustand fuer neue Shells ist dennoch `surfaces[*]`, weil Tooling, Materialisierung, Persistenz, Routing, Remote Policy und Browser-Lab-Stabilitaet dort gemeinsam pruefbar sind.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# SurfaceManager Native RMT Surfaces
|
|
2
|
+
|
|
3
|
+
`WP-SM-08` fuehrt `xtend.rmt.surfaces-domain.v1` und den Adapter-Handoff `xtend.surface.adapter.v1` ein.
|
|
4
|
+
|
|
5
|
+
## Lokaler Gate
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
node scripts/run_xtend_tests.js surface-native-rmt --json
|
|
9
|
+
npm run test:surface-native-rmt
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## Domain
|
|
13
|
+
|
|
14
|
+
`surfaces` ist eine optionale Top-Level-Domain in `.rmt` Dokumenten. Ein Surface Record referenziert weiter normale RMT-Domains:
|
|
15
|
+
|
|
16
|
+
- `adapter`: `xtend.surface`
|
|
17
|
+
- `manager`: `x-surface-manager` Component Record
|
|
18
|
+
- `component`: sichtbare Surface-Komponente, zum Beispiel `x-surface-window`, `x-side-panel`, `x-modal`, `x-dialog` oder `x-drawer`
|
|
19
|
+
- `route`: Route Record
|
|
20
|
+
- `schedule`: Schedule Record
|
|
21
|
+
|
|
22
|
+
Die Fixture `tests/fixtures/rmt-surface-native-domain.rmt` zeigt sechs Surface Records: zwei Windows, ein SidePanel, Modal, Dialog und Drawer.
|
|
23
|
+
|
|
24
|
+
## Adapter
|
|
25
|
+
|
|
26
|
+
`xtend.surface` ist als `surface_adapter` registrierbar. In `WP-SM-08` war `runtimeImplemented: false` Absicht und der Adapter blieb ein Handoff-Contract. Seit `WP-SM-19` ist die produktive Runtime-Linie im [SurfaceManager Runtime Release Handoff](./surface-manager-runtime-release-handoff.md) gatebar: Die Runtime konsumiert `surfaces[*]`, ruft den SurfaceController und haelt DOM, xstate und Fabric ausserhalb des RMT Kernels.
|
|
27
|
+
|
|
28
|
+
## Migration
|
|
29
|
+
|
|
30
|
+
Bestehende Component Records mit `metadata.surface` bleiben gueltig. Neue native Records koennen parallel gefuehrt werden, solange `id`, `type`, `manager`, `component`, `route`, `schedule` und `stateKey` stabil zusammenpassen.
|
|
31
|
+
|
|
32
|
+
## Tooling
|
|
33
|
+
|
|
34
|
+
Schema, Type Artifact, Normalizer, Semantic Graph, Completion Provider und Linter kennen `surfaces`. Damit kann der Language Server Surface Records referenzieren und Completion fuer `surfaces[*].component`, `surfaces[*].adapter`, `surfaces[*].route`, `surfaces[*].schedule` und `surfaces[*].type` anbieten.
|
|
35
|
+
|
|
36
|
+
## Handoff
|
|
37
|
+
|
|
38
|
+
`WP-SM-09` finalisiert Docs, Component Lab und Migration Guide auf dieser Contract-Basis. Der Abschluss liegt in [SurfaceManager Release Handoff](./surface-manager-release-handoff.md) (`docs/surface-manager-release-handoff.md`) und wird ueber `node scripts/run_xtend_tests.js surface-release-handoff --json` geprueft.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# SurfaceManager Overlay Bridge
|
|
2
|
+
|
|
3
|
+
`WP-SM-06` fuehrt `xtend.surface.overlay-stack-bridge.v1` ein. Die Bridge macht `x-modal`, `x-dialog` und `x-drawer` optional kompatibel mit dem `x-surface-manager` Surface Stack.
|
|
4
|
+
|
|
5
|
+
## Was sich aendert
|
|
6
|
+
|
|
7
|
+
`x-surface-manager` registriert im `overlays` Slot nun auch:
|
|
8
|
+
|
|
9
|
+
- `x-modal` als Surface Type `modal`
|
|
10
|
+
- `x-dialog` als Surface Type `dialog`
|
|
11
|
+
- `x-drawer` als Surface Type `drawer`
|
|
12
|
+
|
|
13
|
+
Die bestehenden Overlay APIs bleiben erhalten. Ein Modal kann weiter ueber `open()` und `close()` gesteuert werden, ein Drawer weiter ueber `openDrawer()` und `closeDrawer()`. Die Legacy Events `modal-opened`, `dialog-opened` und `drawer-opened` bleiben sichtbar.
|
|
14
|
+
|
|
15
|
+
## Command Bridge
|
|
16
|
+
|
|
17
|
+
Overlays koennen innerhalb des Managers ein `surface-overlay-command` Event nutzen:
|
|
18
|
+
|
|
19
|
+
```js
|
|
20
|
+
manager.dispatchEvent(new CustomEvent('surface-overlay-command', {
|
|
21
|
+
bubbles: true,
|
|
22
|
+
composed: true,
|
|
23
|
+
detail: {
|
|
24
|
+
surfaceId: 'settings.dialog',
|
|
25
|
+
command: 'open'
|
|
26
|
+
}
|
|
27
|
+
}));
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Unterstuetzt werden die vorhandenen Surface-Operationen wie `open`, `close`, `focus` und `update`. Der Manager nutzt dafuer denselben Controller Stack wie Windows und SidePanels.
|
|
31
|
+
|
|
32
|
+
## Stack-Verhalten
|
|
33
|
+
|
|
34
|
+
Die Bridge spiegelt den Surface Snapshot in Overlay CSS Custom Properties:
|
|
35
|
+
|
|
36
|
+
- `--surface-overlay-z`
|
|
37
|
+
- `--surface-overlay-backdrop-z`
|
|
38
|
+
|
|
39
|
+
Ausserhalb eines SurfaceManagers behalten `x-modal`, `x-dialog` und `x-drawer` ihre bisherigen Default-z-Indizes.
|
|
40
|
+
|
|
41
|
+
## RMT und Lifecycle
|
|
42
|
+
|
|
43
|
+
RMT bleibt fuer diese Stufe bei `xtend.component`. Die Bridge erzeugt intern `xtend.surface.record.v1`, aber sie aktiviert noch keine native `xtend.surface` Domain.
|
|
44
|
+
|
|
45
|
+
Der lokale Gate:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
node scripts/run_xtend_tests.js surface-overlay-bridge --json
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Abgrenzung
|
|
52
|
+
|
|
53
|
+
`WP-SM-06` bereitet die Stack-Kompatibilitaet vor. Browser-, A11y-, Performance- und Visual-Smokes folgen in `WP-SM-07`; die native RMT `surfaces` Domain folgt spaeter in `WP-SM-08`.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# SurfaceManager Persistence
|
|
2
|
+
|
|
3
|
+
`x-surface-manager` kann Surface-Layouts unter einem `restore-key` speichern und beim naechsten Start wieder ueber den SurfaceController einspielen.
|
|
4
|
+
|
|
5
|
+
## Attribute
|
|
6
|
+
|
|
7
|
+
| Attribut | Werte | Zweck |
|
|
8
|
+
| --- | --- | --- |
|
|
9
|
+
| `restore-key` | string | Stabiler Schluessel fuer das App-Shell-Layout |
|
|
10
|
+
| `persistence-mode` | `none`, `memory`, `session`, `local` | Storage-Backend fuer Snapshots |
|
|
11
|
+
| `restore-policy` | `auto`, `manual`, `reset` | Auto-Restore beim Connect oder manuelle Steuerung |
|
|
12
|
+
|
|
13
|
+
Ohne `restore-key` bleibt Persistenz aus. Mit `restore-key` und ohne explizites `persistence-mode` nutzt die Runtime `session`.
|
|
14
|
+
|
|
15
|
+
## API
|
|
16
|
+
|
|
17
|
+
- `snapshotPersistence()` gibt den aktiven Persistenzcontract zurueck.
|
|
18
|
+
- `persistSnapshot(snapshot, options)` speichert einen layout-only Snapshot.
|
|
19
|
+
- `restorePersistedSnapshot(options)` liest und hydriert einen gespeicherten Snapshot.
|
|
20
|
+
- `clearPersistedSnapshot(options)` entfernt den gespeicherten Snapshot.
|
|
21
|
+
- `resetSurfaceLayout(options)` loescht Persistenz und registriert die deklarierten Surface-Elemente neu.
|
|
22
|
+
|
|
23
|
+
Gespeichert wird `xtend.surface.persisted-snapshot.v1`. Content-Payloads werden nicht persistiert; erhalten bleiben Surface IDs, Bounds, Stack, Active Surface, Panel Modes, Status und Content-Refs.
|
|
24
|
+
|
|
25
|
+
## Boundaries
|
|
26
|
+
|
|
27
|
+
- Der SurfaceController bleibt die einzige Registry-Wahrheit.
|
|
28
|
+
- Restore laeuft ueber Controller-Operationen, nicht durch direktes Mutieren einer zweiten Registry.
|
|
29
|
+
- Ungueltige oder inkompatible Snapshots fuehren zu einem kontrollierten Skip mit Diagnostic.
|
|
30
|
+
- Der RMT-Kernel importiert keine XTend-Komponenten.
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# SurfaceManager Quality Gates
|
|
2
|
+
|
|
3
|
+
`WP-SM-07` fuehrt `xtend.surface.quality-gates.v1` ein. Der Gate prueft den SurfaceManager ueber vier Domaenen: Browser, A11y, Performance und Visual.
|
|
4
|
+
|
|
5
|
+
## Lokale Gates
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
node scripts/run_xtend_tests.js surface-manager-quality --json
|
|
9
|
+
node scripts/run_xtend_tests.js surface-manager-browser --json
|
|
10
|
+
node scripts/run_xtend_tests.js surface-manager-a11y --json
|
|
11
|
+
node scripts/run_xtend_tests.js surface-manager-performance --json
|
|
12
|
+
node scripts/run_xtend_tests.js surface-manager-visual --json
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Die Domain-Gates laufen ueber denselben Contract und koennen gezielt in lokalen Checks oder CI-Matrizen referenziert werden.
|
|
16
|
+
|
|
17
|
+
## Browser
|
|
18
|
+
|
|
19
|
+
Das Fixture `tests/browser/fixtures/surface-manager-quality-smoke.html` baut eine gemischte Surface-Oberflaeche:
|
|
20
|
+
|
|
21
|
+
- zwei `x-surface-window`
|
|
22
|
+
- ein `x-side-panel`
|
|
23
|
+
- ein `x-modal`
|
|
24
|
+
- ein `x-dialog`
|
|
25
|
+
- ein `x-drawer`
|
|
26
|
+
|
|
27
|
+
Overlays werden ueber `surface-overlay-command` geoeffnet und in denselben Surface Stack aufgenommen.
|
|
28
|
+
|
|
29
|
+
## A11y
|
|
30
|
+
|
|
31
|
+
Der Gate prueft Contract- und Fixture-Signale fuer:
|
|
32
|
+
|
|
33
|
+
- Rollen: `application`, `dialog`, `complementary`
|
|
34
|
+
- `aria-live` Status
|
|
35
|
+
- Focus Restore
|
|
36
|
+
- Escape-Topmost-Verhalten
|
|
37
|
+
- Tab Focus Trap
|
|
38
|
+
- Reduced Motion
|
|
39
|
+
- Forced Colors und sichtbaren Fokus
|
|
40
|
+
|
|
41
|
+
## Performance
|
|
42
|
+
|
|
43
|
+
Der Contract definiert Budgets fuer Open/Close, Focus, Layout Transition, Snapshot und Registration. Das Browser-Fixture setzt zusaetzlich die Performance-Messung `surface-quality-open-close`.
|
|
44
|
+
|
|
45
|
+
## Visual
|
|
46
|
+
|
|
47
|
+
Die DOM-Baseline `tests/browser/visual-baselines/surface-manager-quality.dom-baseline.json` deckt Desktop, Mobile, Topmost Overlay und Forced Colors ab. Sie bleibt bewusst JSON-only, damit der lokale Gate stabil ohne Browser-Pixel-Diff laufen kann.
|
|
48
|
+
|
|
49
|
+
## Handoff
|
|
50
|
+
|
|
51
|
+
`WP-SM-08` kann auf den Quality-Gates aufsetzen und die native RMT `surfaces` Domain gegen dieselben sichtbaren Stack-Zustaende validieren.
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# SurfaceManager Release Handoff
|
|
2
|
+
|
|
3
|
+
- Contract: `xtend.surface.release-handoff.v1`
|
|
4
|
+
- Report: `xtend.surface.release-handoff-report.v1`
|
|
5
|
+
- Workpackage: `WP-SM-09`
|
|
6
|
+
- Local Gate: `node scripts/run_xtend_tests.js surface-release-handoff --json`
|
|
7
|
+
- Package Script: `npm run test:surface-release-handoff`
|
|
8
|
+
|
|
9
|
+
## Status
|
|
10
|
+
|
|
11
|
+
Die erste SurfaceManager-Linie ist mit `WP-SM-09` authoring- und gatebereit. XTend kann App Shells mit Multi Window, SidePanels, Overlay-Kompatibilitaet, Quality Gates und nativen RMT Surface Records beschreiben.
|
|
12
|
+
|
|
13
|
+
Historische `WP-SM-09` Release Boundary:
|
|
14
|
+
|
|
15
|
+
```text
|
|
16
|
+
no-public-runtime-claim-for-xtend.surface-adapter-yet
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Das bedeutete im `WP-SM-09` Authoring-Handoff: `surfaces[*]` und `xtend.surface.adapter.v1` waren stabiler Handoff fuer Tooling und die naechste Runtime-Arbeit. Seit `WP-SM-19` ist diese Runtime-Arbeit ueber [SurfaceManager Runtime Release Handoff](./surface-manager-runtime-release-handoff.md) geschlossen und der produktive `xtend.surface` Adapter-Claim gatebar.
|
|
20
|
+
|
|
21
|
+
## Gate-Kette
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
node scripts/run_xtend_tests.js rmt-surface-authoring --json
|
|
25
|
+
node scripts/run_xtend_tests.js surface-controller --json
|
|
26
|
+
node scripts/run_xtend_tests.js surface-manager --json
|
|
27
|
+
node scripts/run_xtend_tests.js surface-side-panel --json
|
|
28
|
+
node scripts/run_xtend_tests.js surface-workbench-fixture --json
|
|
29
|
+
node scripts/run_xtend_tests.js surface-overlay-bridge --json
|
|
30
|
+
node scripts/run_xtend_tests.js surface-manager-quality --json
|
|
31
|
+
node scripts/run_xtend_tests.js surface-native-rmt --json
|
|
32
|
+
node scripts/run_xtend_tests.js surface-release-handoff --json
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Handoff
|
|
36
|
+
|
|
37
|
+
Bereit:
|
|
38
|
+
|
|
39
|
+
- App-Shell Authoring ueber Component Records und Surface-Metadata
|
|
40
|
+
- native `surfaces[*]` Records fuer komplexe Workbench-Oberflaechen
|
|
41
|
+
- Component Lab Fixture fuer Surface Preview, Native RMT Inspector, Migration Diff, Quality Gates und Source Links
|
|
42
|
+
- Migration Guide fuer `components[*].metadata.surface` zu `surfaces[*]`
|
|
43
|
+
- lokale statische Gates fuer RMT-Normalisierung, Semantic Graph, Docs und Referenzpfade
|
|
44
|
+
|
|
45
|
+
Historische Folgearbeit aus `WP-SM-09`:
|
|
46
|
+
|
|
47
|
+
- produktive `xtend.surface` Adapter Runtime, geschlossen durch `WP-SM-19`
|
|
48
|
+
- optionaler Browser-Lab-Server oder visuelle Pixel-Baselines
|
|
49
|
+
- weitere Surface-Typen wie docked workspaces, command palettes und split panes
|
|
50
|
+
- Release-Hardening gegen echte App-Shell-Projekte
|
|
51
|
+
|
|
52
|
+
## WP-SM-19 Runtime-Handoff
|
|
53
|
+
|
|
54
|
+
`WP-SM-19` schliesst diese Folgearbeit fuer die produktive Runtime-Linie ab. Der neue Contract `xtend.surface.runtime-release-handoff.v1` dokumentiert die produktive Runtime-Linie aus Adapter Runtime, nativer Materialisierung, Persistenz, Lazy Hydration, Route Lifecycle, Stack Policy, Layout Engines, Remote Policy und Browser Lab.
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
node scripts/run_xtend_tests.js surface-runtime-release-handoff --json
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Damit bleibt `WP-SM-09` der historische Authoring-Handoff, waehrend `WP-SM-19` den produktiven Runtime-Claim gatebar macht. Offene Scopes wie projektbezogene Pixel-Artefakte, Release-Owner-Signoff vor npm Publish und optionale weitere Surface-Typen bleiben im Runtime-Handoff explizit benannt.
|
|
61
|
+
|
|
62
|
+
## Referenzen
|
|
63
|
+
|
|
64
|
+
- [SurfaceManager Authoring Guide](./surface-manager-authoring-guide.md)
|
|
65
|
+
- [SurfaceManager Component Lab](./surface-manager-component-lab.md)
|
|
66
|
+
- [SurfaceManager Migration Guide](./surface-manager-migration-guide.md)
|
|
67
|
+
- [SurfaceManager Native RMT Surfaces](./surface-manager-native-rmt-surfaces.md)
|
|
68
|
+
- [SurfaceManager Runtime Release Handoff](./surface-manager-runtime-release-handoff.md)
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# SurfaceManager Remote Policy Bridge
|
|
2
|
+
|
|
3
|
+
`WP-SM-17` bindet E16 Remote-Surface-Records an die XTend-UI-Surface-Runtime an. Der Contract `xtend.surface.remote-policy-bridge.v1` gehoert zum `x-surface-manager`; der RMT Kernel bleibt deklarativ und fuehrt keine Remote Runtime aus.
|
|
4
|
+
|
|
5
|
+
## Entscheidungen
|
|
6
|
+
|
|
7
|
+
Remote Surfaces werden hostseitig in genau eine Entscheidung ueberfuehrt. Die akzeptierte Trust Boundary lautet `xtend.security.remote-surface.v1`.
|
|
8
|
+
|
|
9
|
+
- `mounted`: Owner, Version, Origin, Integrity, Trust Boundary, Capabilities, Sandbox/CSP und Event-Governance sind passend.
|
|
10
|
+
- `degraded`: eine Policy-Verletzung liegt vor, aber ein expliziter Fallback ist verfuegbar.
|
|
11
|
+
- `refused`: die Surface darf nicht registriert werden, weil eine harte Policy-Verletzung ohne Fallback vorliegt.
|
|
12
|
+
|
|
13
|
+
Der SurfaceController bleibt die einzige Registry. Die Policy Bridge legt keine zweite Registry an; sie fuehrt nur Host-Entscheidungen, Diagnostics und Fallback-Mapping.
|
|
14
|
+
|
|
15
|
+
## Manager API
|
|
16
|
+
|
|
17
|
+
- `evaluateRemoteSurfacePolicy(record, options)` prueft einen Remote Surface Record ohne Commit.
|
|
18
|
+
- `applyRemoteSurfacePolicy(record, options)` prueft und registriert bei `commit: true` eine gemountete oder degradierte Surface.
|
|
19
|
+
- `registerRemoteSurface(record, options)` ist der produktive Mount-Pfad fuer `xtend.surface`.
|
|
20
|
+
- `snapshotRemoteSurfacePolicy()` liefert `xtend.surface.remote-policy-report.v1`.
|
|
21
|
+
- `governRemoteSurfaceEvent(event, payload, options)` prueft Cross-Surface Events ohne impliziten globalen Event-Bus.
|
|
22
|
+
|
|
23
|
+
Wichtige Host-Attribute:
|
|
24
|
+
|
|
25
|
+
- `remote-surface-policy="strict|audit|off"`
|
|
26
|
+
- `remote-origin-allowlist="https://cdn.example"`
|
|
27
|
+
- `remote-capabilities="surface.mount,event.emit,event.consume"`
|
|
28
|
+
|
|
29
|
+
## Adapter Boundary
|
|
30
|
+
|
|
31
|
+
Der `xtend.surface` Adapter konsumiert E16 Remote-Surface-Records, normalisiert sie als Surface-Intent und reicht sie an den SurfaceManager weiter. Er materialisiert hoechstens eine lokale Shell oder einen Fallback. Er laedt keine Remote Bundles, startet kein `import()` und fuehrt kein Remote Runtime Loading im RMT Kernel aus.
|
|
32
|
+
|
|
33
|
+
## Diagnostics
|
|
34
|
+
|
|
35
|
+
Policy-Verletzungen sind diagnostizierbar, darunter:
|
|
36
|
+
|
|
37
|
+
- `xtend.surface.remote-policy.owner-missing`
|
|
38
|
+
- `xtend.surface.remote-policy.version-missing`
|
|
39
|
+
- `xtend.surface.remote-policy.origin-not-allowed`
|
|
40
|
+
- `xtend.surface.remote-policy.integrity-missing`
|
|
41
|
+
- `xtend.surface.remote-policy.trust-boundary-refused`
|
|
42
|
+
- `xtend.surface.remote-policy.capability-refused`
|
|
43
|
+
- `xtend.surface.remote-policy.event-payload-missing`
|
|
44
|
+
- `xtend.surface.remote-policy.event-scope-refused`
|
|
45
|
+
- `xtend.surface.remote-policy.degradation-blocked`
|
|
46
|
+
- `xtend.surface.remote-policy.fallback-missing`
|
|
47
|
+
|
|
48
|
+
## Gate
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
node scripts/run_xtend_tests.js surface-remote-policy --json
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Der Gate prueft Runtime-Methoden, Public Types, RMT-Adapter-Anbindung, Enterprise-MFE-Fixture, Degradation/Fallback, Event-Governance, Package-Metadaten und die Boundaries `keine zweite Registry` sowie `kein Remote Runtime Loading im RMT Kernel`.
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# SurfaceManager RMT Authoring
|
|
2
|
+
|
|
3
|
+
Docs Contract: `xtend.docs.surface-manager-rmt-authoring.v1`
|
|
4
|
+
|
|
5
|
+
Der SurfaceManager ist der geplante XTend App-Shell-Baustein fuer Multi Window Oberflaechen, SidePanels und spaetere Surface-Typen in einer SPA. `WP-SM-01` definiert zuerst das RMT Authoring Model; Runtime-Komponenten folgen in den naechsten Paketen.
|
|
6
|
+
|
|
7
|
+
## Entscheidung
|
|
8
|
+
|
|
9
|
+
SurfaceManager wird als RMT-native Komponentenfamilie aufgebaut:
|
|
10
|
+
|
|
11
|
+
- `x-surface-manager`
|
|
12
|
+
- `x-surface-window`
|
|
13
|
+
- `x-side-panel`
|
|
14
|
+
|
|
15
|
+
Fabric bleibt darunter fuer Lanes, Fibers, Diagnostics und Telemetry. Der SurfaceManager ersetzt Fabric nicht.
|
|
16
|
+
|
|
17
|
+
## MVP Authoring
|
|
18
|
+
|
|
19
|
+
Der MVP nutzt vorhandene RMT `components` Records mit `metadata.surfaceManager` und `metadata.surface`:
|
|
20
|
+
|
|
21
|
+
```json
|
|
22
|
+
{
|
|
23
|
+
"id": "workbench.manager",
|
|
24
|
+
"kind": "custom_element",
|
|
25
|
+
"adapter": "xtend.component",
|
|
26
|
+
"tag": "x-surface-manager",
|
|
27
|
+
"schedule": "surface.visible.render",
|
|
28
|
+
"metadata": {
|
|
29
|
+
"surfaceManager": {
|
|
30
|
+
"schema": "xtend.surface.manager.v1",
|
|
31
|
+
"stateKey": "xtend.surface.registry",
|
|
32
|
+
"defaultLayer": "workspace"
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
```json
|
|
39
|
+
{
|
|
40
|
+
"id": "workbench.inspector",
|
|
41
|
+
"kind": "custom_element",
|
|
42
|
+
"adapter": "xtend.component",
|
|
43
|
+
"tag": "x-surface-window",
|
|
44
|
+
"schedule": "surface.user-blocking.open",
|
|
45
|
+
"metadata": {
|
|
46
|
+
"surface": {
|
|
47
|
+
"schema": "xtend.surface.record.v1",
|
|
48
|
+
"type": "window",
|
|
49
|
+
"manager": "workbench.manager",
|
|
50
|
+
"stateKey": "xtend.surface.inspector.state"
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
`xtend.surface` und eine native RMT `surfaces` Domain sind reserviert, aber noch nicht aktiv.
|
|
57
|
+
|
|
58
|
+
## Schedules
|
|
59
|
+
|
|
60
|
+
| Schedule | Lane | Zweck |
|
|
61
|
+
|----------|------|-------|
|
|
62
|
+
| `surface.visible.render` | `visible` | Manager und sichtbare Surface Shell rendern |
|
|
63
|
+
| `surface.user-blocking.open` | `user-blocking` | Surface oeffnen und Fokus setzen |
|
|
64
|
+
| `surface.user-blocking.close` | `user-blocking` | Surface schliessen und Fokus restaurieren |
|
|
65
|
+
| `surface.transition.layout` | `transition` | Move, Resize, Docking und Snap committen |
|
|
66
|
+
| `surface.background.persist` | `background` | Layout Snapshot persistieren |
|
|
67
|
+
| `surface.diagnostics.snapshot` | `diagnostics` | Registry, Stack und Telemetry snapshotten |
|
|
68
|
+
| `a11y.user-blocking.announce` | `user-blocking` | Surface Status fuer Screenreader ansagen |
|
|
69
|
+
|
|
70
|
+
## Fixture
|
|
71
|
+
|
|
72
|
+
Das Referenzdokument liegt in:
|
|
73
|
+
|
|
74
|
+
```text
|
|
75
|
+
tests/fixtures/rmt-surface-manager-workbench.rmt
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Es beschreibt eine Shell-first Workbench mit zwei `x-surface-window` Records und einem `x-side-panel` Record.
|
|
79
|
+
|
|
80
|
+
## Gate
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
node scripts/run_xtend_tests.js rmt-surface-authoring --json
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Der Gate prueft `xtend.rmt.surface-authoring.v1`, das Fixture, Package-/Scaffold-Hooks, Runner-Registrierung, Docs und die RMT-Core-Normalisierung ohne Browser- oder Netzwerkpflicht.
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# SurfaceManager Route Lifecycle
|
|
2
|
+
|
|
3
|
+
Docs Contract: `xtend.docs.surface-manager-route-lifecycle.v1`
|
|
4
|
+
|
|
5
|
+
`WP-SM-14` bindet Surfaces an XRouter-Routen, ohne eine zweite Routing- oder Surface-Registry einzufuehren. XRouter bleibt Route-State-Quelle. SurfaceManager bleibt Lifecycle-Quelle fuer Surfaces.
|
|
6
|
+
|
|
7
|
+
## Contract
|
|
8
|
+
|
|
9
|
+
- Route Lifecycle: `xtend.surface.route-lifecycle.v1`
|
|
10
|
+
- Report: `xtend.surface.route-lifecycle-report.v1`
|
|
11
|
+
- XRouter Bezug: `xtend.rmt.xrouter-adapter.v1`
|
|
12
|
+
- Gate: `node scripts/run_xtend_tests.js surface-route-lifecycle --json`
|
|
13
|
+
|
|
14
|
+
## Manager
|
|
15
|
+
|
|
16
|
+
Route-Lifecycles sind explizit. Ein Manager reagiert nur, wenn `route-aware` gesetzt ist:
|
|
17
|
+
|
|
18
|
+
```html
|
|
19
|
+
<x-surface-manager
|
|
20
|
+
manager-id="app.manager"
|
|
21
|
+
route-aware="true"
|
|
22
|
+
route-lifecycle-policy="open-close">
|
|
23
|
+
...
|
|
24
|
+
</x-surface-manager>
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
`snapshotRouteLifecycle()` liefert einen Report mit Route-State, Surface-Policy, Match-Status und den Boundaries `controllerRemainsRegistryTruth`, `xrouterOwnsRouteState` und `createsSecondRegistry: false`.
|
|
28
|
+
|
|
29
|
+
`applyRouteLifecycle(routeInput, options)` kann von Tests, Host-Adaptern oder XRouter-Events genutzt werden. Der normale Runtime-Pfad reagiert auf `route-changed`, `routechange`, `xrouter-after-navigate`, `xtend-route-changed`, `popstate` und `hashchange`.
|
|
30
|
+
|
|
31
|
+
## Surface Policies
|
|
32
|
+
|
|
33
|
+
Surfaces werden ueber `data-surface-route` und `data-surface-route-policy` gebunden:
|
|
34
|
+
|
|
35
|
+
| Policy | Match | Kein Match |
|
|
36
|
+
|--------|-------|------------|
|
|
37
|
+
| `global` | bleibt unveraendert | bleibt unveraendert |
|
|
38
|
+
| `open-close` | open/restore und route-hydrate | close |
|
|
39
|
+
| `open-collapse` | open/restore/expand und route-hydrate | SidePanels collapse, Windows minimize |
|
|
40
|
+
| `open-minimize` | open/restore und route-hydrate | minimize, mit Collapse-Fallback |
|
|
41
|
+
| `open-keep` | open/restore und route-hydrate | bleibt offen |
|
|
42
|
+
| `hydrate-only` | route-hydrate | kein Lifecycle-Wechsel |
|
|
43
|
+
| `manual` | kein automatischer Wechsel | kein automatischer Wechsel |
|
|
44
|
+
|
|
45
|
+
globale Surfaces, Command Palettes oder Persistenz-Surfaces koennen mit `data-surface-route-policy="global"` oder `data-surface-route-persistent="true"` routewechselstabil bleiben.
|
|
46
|
+
|
|
47
|
+
## RMT
|
|
48
|
+
|
|
49
|
+
RMT-materialisierte Surfaces tragen Route-Informationen als DOM-Attribute:
|
|
50
|
+
|
|
51
|
+
- `data-surface-route`
|
|
52
|
+
- `data-surface-route-policy`
|
|
53
|
+
- `data-surface-hydration-policy="route"` als Default, wenn eine Surface eine Route besitzt und keine explizite Hydration-Policy gesetzt ist
|
|
54
|
+
|
|
55
|
+
Der RMT Kernel importiert keine XTend-Typen. Der Adapter materialisiert nur Attribute; die Runtime-Entscheidung bleibt im SurfaceManager.
|
|
56
|
+
|
|
57
|
+
## Keine konkurrierenden Lifecycle-Quellen
|
|
58
|
+
|
|
59
|
+
Standalone `x-side-panel route-aware` behaelt seinen alten Fallback. Sobald ein Panel aber von `x-surface-manager` verwaltet wird, delegiert es Routewechsel an den Manager. Damit gibt es fuer verwaltete Surfaces keine konkurrierenden Lifecycle-Quellen.
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# SurfaceManager Runtime Release Handoff
|
|
2
|
+
|
|
3
|
+
`WP-SM-19` finalisiert die Surface Runtime als produktive XTend-UI-Schicht fuer App Shells. Der Contract `xtend.surface.runtime-release-handoff.v1` buendelt die Arbeit aus `WP-SM-10` bis `WP-SM-18` und macht den Runtime-Claim lokal gatebar.
|
|
4
|
+
|
|
5
|
+
## Produktive Runtime Claims
|
|
6
|
+
|
|
7
|
+
| Claim | Gate |
|
|
8
|
+
| --- | --- |
|
|
9
|
+
| `productive-xtend-surface-adapter-runtime` | `surface-adapter-runtime` |
|
|
10
|
+
| `native-surfaces-materialize-xtend-ui-components` | `surface-native-materialization` |
|
|
11
|
+
| `restore-key-snapshot-hydration` | `surface-persistence` |
|
|
12
|
+
| `shell-first-skeleton-hydration` | `surface-lazy-hydration` |
|
|
13
|
+
| `xrouter-bound-surface-lifecycle` | `surface-route-lifecycle` |
|
|
14
|
+
| `modal-focus-inert-stack-policy` | `surface-stack-policy` |
|
|
15
|
+
| `layout-engines-docking-split-tile-stacked` | `surface-layout-engines` |
|
|
16
|
+
| `remote-surface-trust-policy` | `surface-remote-policy` |
|
|
17
|
+
| `browser-lab-visual-stability` | `surface-browser-lab` |
|
|
18
|
+
|
|
19
|
+
Der abschliessende Gate ist:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
node scripts/run_xtend_tests.js surface-runtime-release-handoff --json
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Authoring
|
|
26
|
+
|
|
27
|
+
Neue komplexe App Shells sollen native `surfaces[*]` nutzen. `components[*].metadata.surface` bleibt als Compatibility-Pfad bestehen, vor allem fuer bestehende Fixtures und additive Migrationen.
|
|
28
|
+
|
|
29
|
+
Der produktive Pfad ist:
|
|
30
|
+
|
|
31
|
+
1. Surface Records in `surfaces[*]` modellieren.
|
|
32
|
+
2. Component Records als Manager- und Content-Bindings referenzieren.
|
|
33
|
+
3. Route, Schedule, State Key und Restore Key stabil halten.
|
|
34
|
+
4. `surface-adapter-runtime` und `surface-native-materialization` pruefen.
|
|
35
|
+
5. App-Shell-Stabilitaet ueber `surface-browser-lab` pruefen.
|
|
36
|
+
|
|
37
|
+
## Release Gate Matrix
|
|
38
|
+
|
|
39
|
+
Der Runtime-Handoff erwartet die bestehende Baseline plus die gehaertete Runtime-Linie:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
node scripts/run_xtend_tests.js rmt-surface-authoring surface-controller surface-manager surface-side-panel surface-workbench-fixture surface-overlay-bridge surface-manager-quality surface-native-rmt surface-release-handoff --json
|
|
43
|
+
node scripts/run_xtend_tests.js surface-adapter-runtime surface-native-materialization surface-persistence surface-lazy-hydration surface-route-lifecycle surface-stack-policy surface-layout-engines surface-remote-policy surface-browser-lab surface-runtime-release-handoff --json
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Compatibility Notes
|
|
47
|
+
|
|
48
|
+
`xtend.surface.runtime-compatibility-notes.v1` haelt fest:
|
|
49
|
+
|
|
50
|
+
- bestehende Component-Metadata-Surfaces bleiben lauffaehig
|
|
51
|
+
- die Workbench- und Browser-Lab-Fixtures bleiben im Gate
|
|
52
|
+
- Docs-App Parsedown bleibt Host-Boundary und wird nicht in SurfaceManager verschoben
|
|
53
|
+
- Remote Runtime Loading bleibt ausserhalb des RMT-Kernels
|
|
54
|
+
- SurfaceManager ersetzt weder Fabric noch den RMT Kernel
|
|
55
|
+
- SurfaceController bleibt die einzige Registry
|
|
56
|
+
|
|
57
|
+
## Offene Scopes
|
|
58
|
+
|
|
59
|
+
Diese Punkte sind bewusst nicht Teil des Runtime-Claims:
|
|
60
|
+
|
|
61
|
+
- `project-specific-pixel-artifact-storage`
|
|
62
|
+
- `release-owner-signoff-before-public-npm-publish`
|
|
63
|
+
- `optional-command-palette-and-workspace-surface-types`
|
|
64
|
+
- `remote-runtime-loading-remains-out-of-scope`
|
|
65
|
+
- `docs-app-php-parsedown-host-boundary-remains`
|
|
66
|
+
|
|
67
|
+
## SemVer
|
|
68
|
+
|
|
69
|
+
Die Klassifizierung fuer den aktuellen Stand lautet `0.x-minor-with-migration-notes`. Vor externem Publish bleiben Release-Owner-Signoff, Changelog und die allgemeine Release Checklist erforderlich.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# SurfaceManager SidePanel Runtime
|
|
2
|
+
|
|
3
|
+
`WP-SM-04` fuehrt `x-side-panel` als native Surface-Komponente ein. Der Contract `xtend.surface.side-panel-runtime.v1` erweitert die Window Runtime um App-Shell-nahe SidePanels mit Docking, Pinning, Collapse, Overlay und responsive Fullscreen-Verhalten.
|
|
4
|
+
|
|
5
|
+
## Komponenten
|
|
6
|
+
|
|
7
|
+
- `x-surface-manager`: erkennt `x-side-panel` im `panels`-Slot und verarbeitet `surface-panel-command`.
|
|
8
|
+
- `x-side-panel`: erzeugt `xtend.surface.record.v1` mit `type: "side-panel"`.
|
|
9
|
+
- `components/xsurfacemanager-controller.js`: bleibt die einzige Registry- und Snapshot-Wahrheit.
|
|
10
|
+
|
|
11
|
+
## Modes
|
|
12
|
+
|
|
13
|
+
| Mode | Einsatz |
|
|
14
|
+
|------|---------|
|
|
15
|
+
| Docked | dauerhafte App-Shell-Seitenleiste |
|
|
16
|
+
| Pinned | geoeffnetes, persistentes Panel |
|
|
17
|
+
| Overlay | temporaeres Panel ueber dem Workspace |
|
|
18
|
+
| Collapsed | kompakte Panel-Leiste |
|
|
19
|
+
| Fullscreen | responsive Fallback fuer kleine Viewports |
|
|
20
|
+
|
|
21
|
+
Placements: `left`, `right`, `bottom`, `inline`.
|
|
22
|
+
|
|
23
|
+
## Commands
|
|
24
|
+
|
|
25
|
+
`x-side-panel` sendet `surface-panel-command` mit `open`, `close`, `focus`, `resize`, `pin`, `unpin`, `collapse`, `expand`, `dock`, `restore` oder `update`.
|
|
26
|
+
|
|
27
|
+
Der Manager mappt diese Commands auf `openSurface`, `closeSurface`, `focusSurface`, `resizeSurface`, `updateSurface`, `pinSurface`, `collapseSurface`, `expandSurface`, `dockSurface` und `restoreSurface`.
|
|
28
|
+
|
|
29
|
+
## Gates
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
node scripts/run_xtend_tests.js surface-side-panel --json
|
|
33
|
+
npm run test:surface-side-panel -- --json
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
`WP-SM-05` baut darauf das RMT-first Workbench Fixture mit zwei Windows, SidePanel, route-bound Content und shared Surface Snapshot.
|