@ccslabs/xtend 0.1.0-rc.1 → 0.1.2
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 +2 -0
- package/README.md +4 -0
- package/catalog/component-catalog-coverage.js +2 -0
- package/catalog/epic13-package-export-lock.js +11 -1
- package/catalog/epic13-rmt-production-readiness.js +0 -1
- package/catalog/epic18-rmt-action-effect-runtime.d.ts +36 -0
- package/catalog/epic18-rmt-action-effect-runtime.js +249 -0
- package/catalog/epic18-rmt-app-platform-authoring.d.ts +39 -0
- package/catalog/epic18-rmt-app-platform-authoring.js +319 -0
- package/catalog/epic18-rmt-app-platform-fixture.d.ts +33 -0
- package/catalog/epic18-rmt-app-platform-fixture.js +221 -0
- package/catalog/epic18-rmt-app-platform-release-handoff.d.ts +30 -0
- package/catalog/epic18-rmt-app-platform-release-handoff.js +231 -0
- package/catalog/epic18-rmt-app-platform-tooling.d.ts +38 -0
- package/catalog/epic18-rmt-app-platform-tooling.js +242 -0
- package/catalog/epic18-rmt-component-template-primitives.d.ts +33 -0
- package/catalog/epic18-rmt-component-template-primitives.js +240 -0
- package/catalog/epic18-rmt-dom-descriptor-renderer.d.ts +35 -0
- package/catalog/epic18-rmt-dom-descriptor-renderer.js +232 -0
- package/catalog/epic18-rmt-event-routing-runtime.d.ts +35 -0
- package/catalog/epic18-rmt-event-routing-runtime.js +234 -0
- package/catalog/epic18-rmt-state-selector-runtime.d.ts +34 -0
- package/catalog/epic18-rmt-state-selector-runtime.js +216 -0
- package/catalog/epic18-rmt-surface-resource-graph-runtime.d.ts +36 -0
- package/catalog/epic18-rmt-surface-resource-graph-runtime.js +256 -0
- package/catalog/surface-manager-controller.js +5 -1
- package/catalog/surface-manager-materialization.js +7 -1
- package/catalog/surface-manager-overlay-bridge.js +41 -6
- package/catalog/surface-manager-workbench-fixture.js +1 -1
- package/catalog/surface-type-capability-matrix.d.ts +61 -0
- package/catalog/surface-type-capability-matrix.js +183 -0
- package/catalog/type-exports-rmt.js +37 -1
- package/catalog/type-exports.js +3 -3
- package/components/icon-packs/lucide.js +4 -0
- package/components/manifest.json +2 -0
- package/components/prism-rmt.d.ts +34 -0
- package/components/prism-rmt.js +130 -0
- package/components/xcards.js +15 -0
- package/components/xcode.d.ts +36 -1
- package/components/xcode.js +215 -20
- package/components/xfooter.js +17 -0
- package/components/xheader.js +14 -0
- package/components/xhero.js +16 -1
- package/components/xlink.js +97 -14
- package/components/xmasonry.js +15 -0
- package/components/xplayer.d.ts +44 -2
- package/components/xplayer.js +242 -15
- package/components/xrouter.js +27 -2
- package/components/xsection.js +15 -0
- package/components/xsidepanel.js +10 -2
- package/components/xsurfacemanager-controller.d.ts +2 -1
- package/components/xsurfacemanager-controller.js +27 -3
- package/components/xsurfacemanager.d.ts +2 -0
- package/components/xsurfacemanager.js +20 -8
- package/components/xsurfaceoverlay-bridge.d.ts +20 -5
- package/components/xsurfaceoverlay-bridge.js +114 -18
- package/components/xsurfaceportal.d.ts +29 -0
- package/components/xsurfaceportal.js +122 -0
- package/components/xsurfaceregion.d.ts +50 -0
- package/components/xsurfaceregion.js +285 -0
- package/components/xsurfacewindow.js +2 -1
- package/components/xtooltip.js +89 -23
- package/docs/README.md +222 -298
- package/docs/changelog.md +107 -0
- package/docs/component-catalog-coverage.md +9 -9
- package/docs/component-platform.md +19 -1
- package/docs/component-ux-app-authoring.md +56 -63
- package/docs/components/xcode.md +83 -53
- package/docs/components/xsurfaceportal.md +32 -0
- package/docs/components/xsurfaceregion.md +37 -0
- package/docs/components.md +105 -69
- package/docs/de/README.md +264 -0
- package/docs/de/XTend-ADR.md +221 -0
- package/docs/de/a11y-keyboard-smokes.md +62 -0
- package/docs/de/about.md +18 -0
- package/docs/de/api.md +157 -0
- package/docs/de/best-practices.md +76 -0
- package/docs/de/changelog.md +107 -0
- package/docs/de/component-catalog-coverage.md +58 -0
- package/docs/de/component-lab.md +103 -0
- package/docs/de/component-long-tail-migration.md +41 -0
- package/docs/de/component-platform.md +177 -0
- package/docs/de/component-ux-app-authoring.md +123 -0
- package/docs/de/component-ux-authoring.md +96 -0
- package/docs/de/component-ux-gates.md +45 -0
- package/docs/de/components/x-rmt-lifecycle-demo-build.md +60 -0
- package/docs/de/components/xalert.md +81 -0
- package/docs/de/components/xbutton.md +103 -0
- package/docs/de/components/xcalendar.md +82 -0
- package/docs/de/components/xcards.md +128 -0
- package/docs/de/components/xcheckbox.md +102 -0
- package/docs/de/components/xcode.md +156 -0
- package/docs/de/components/xdialog.md +92 -0
- package/docs/de/components/xdrawer.md +84 -0
- package/docs/de/components/xfooter.md +126 -0
- package/docs/de/components/xform.md +128 -0
- package/docs/de/components/xheader.md +308 -0
- package/docs/de/components/xhero.md +142 -0
- package/docs/de/components/xicon.md +125 -0
- package/docs/de/components/xinput.md +129 -0
- package/docs/de/components/xlightbox.md +98 -0
- package/docs/de/components/xlink.md +109 -0
- package/docs/de/components/xmasonry.md +124 -0
- package/docs/de/components/xmenu.md +158 -0
- package/docs/de/components/xmodal.md +82 -0
- package/docs/de/components/xplayer.md +104 -0
- package/docs/de/components/xpopover.md +67 -0
- package/docs/de/components/xprogress.md +56 -0
- package/docs/de/components/xradio.md +103 -0
- package/docs/de/components/xrouter.md +260 -0
- package/docs/de/components/xsection.md +125 -0
- package/docs/de/components/xselect.md +105 -0
- package/docs/de/components/xsidepanel.md +30 -0
- package/docs/de/components/xspinner.md +102 -0
- package/docs/de/components/xstate.md +148 -0
- package/docs/de/components/xstatus.md +55 -0
- package/docs/de/components/xsummary.md +78 -0
- package/docs/de/components/xsurfacemanager.md +27 -0
- package/docs/de/components/xsurfacewindow.md +21 -0
- package/docs/de/components/xtabs.md +160 -0
- package/docs/de/components/xtextarea.md +98 -0
- package/docs/de/components/xtheme.md +167 -0
- package/docs/de/components/xtoast.md +62 -0
- package/docs/de/components/xtooltip.md +66 -0
- package/docs/de/components/xtype.md +82 -0
- package/docs/de/components/xutils.md +144 -0
- package/docs/de/components/xwriter.md +94 -0
- package/docs/de/components.md +153 -0
- package/docs/de/conditional-network-evidence-ci.md +38 -0
- package/docs/de/conditional-network-evidence.md +50 -0
- package/docs/de/core-migration-guide.md +110 -0
- package/docs/de/design-tokens.md +116 -0
- package/docs/de/docs-rmt-production-hardening.md +31 -0
- package/docs/de/enterprise-adoption.md +413 -0
- package/docs/de/enterprise-component-flex-release-handoff.md +129 -0
- package/docs/de/epic10-platform-gates.md +62 -0
- package/docs/de/epic10-release-handoff.md +81 -0
- package/docs/de/epic11-enterprise-ux-handoff.md +70 -0
- package/docs/de/epic12-rc0-handoff.md +61 -0
- package/docs/de/epic18-media-manager-vendor-upstream.md +318 -0
- package/docs/de/epic18-rmt-app-platform-release-handoff.md +67 -0
- package/docs/de/epic18-vendor-bugfixes.md +34 -0
- package/docs/de/existing-component-metadata.md +67 -0
- package/docs/de/hydration-performance-closure.md +34 -0
- package/docs/de/hydration-policies.md +71 -0
- package/docs/de/known-residual-triage.md +22 -0
- package/docs/de/manifest-import-policy.md +79 -0
- package/docs/de/manifest.md +112 -0
- package/docs/de/motion-contrast.md +67 -0
- package/docs/de/package-export-lock.md +44 -0
- package/docs/de/performance-measurements.md +106 -0
- package/docs/de/performance-regression.md +89 -0
- package/docs/de/performance.md +94 -0
- package/docs/de/previews/README.md +17 -0
- package/docs/de/prod-browser-csp-smokes.md +40 -0
- package/docs/de/public-component-types.md +79 -0
- package/docs/de/quick-start-guide.md +220 -0
- package/docs/de/rc0-adoption-guide.md +102 -0
- package/docs/de/rc0-gate-matrix.md +58 -0
- package/docs/de/rc1-gate-matrix-ci-handoff.md +56 -0
- package/docs/de/rc1-migration-notes.md +69 -0
- package/docs/de/rc1-readiness.md +46 -0
- package/docs/de/release-owner-acceptance.md +56 -0
- package/docs/de/release-report-pack-dry-run-evidence.md +39 -0
- package/docs/de/rmt-action-effect-runtime.md +81 -0
- package/docs/de/rmt-app-platform-authoring.md +54 -0
- package/docs/de/rmt-app-platform-fixture.md +46 -0
- package/docs/de/rmt-app-platform-migration-guide.md +88 -0
- package/docs/de/rmt-app-platform-tooling.md +79 -0
- package/docs/de/rmt-component-template-primitives.md +57 -0
- package/docs/de/rmt-dom-descriptor-renderer.md +64 -0
- package/docs/de/rmt-dsl-authoring-polish.md +145 -0
- package/docs/de/rmt-event-routing-runtime.md +81 -0
- package/docs/de/rmt-first-demo-app.md +77 -0
- package/docs/de/rmt-first-xtend-apps.md +129 -0
- package/docs/de/rmt-kernel-panic-recovery-incident-handoff.md +61 -0
- package/docs/de/rmt-kernel-security-hardening-migration.md +50 -0
- package/docs/de/rmt-kernel-trusted-output-authoring.md +69 -0
- package/docs/de/rmt-language-server.md +234 -0
- package/docs/de/rmt-lifecycle-demo.md +24 -0
- package/docs/de/rmt-linter.md +140 -0
- package/docs/de/rmt-node-ssr-adapter.md +100 -0
- package/docs/de/rmt-php-ssr-adapter.md +120 -0
- package/docs/de/rmt-production-readiness.md +63 -0
- package/docs/de/rmt-state-selector-runtime.md +47 -0
- package/docs/de/rmt-surface-resource-graph-runtime.md +92 -0
- package/docs/de/rmt-tooling-release-gates.md +77 -0
- package/docs/de/rmt-vnext-authoring.md +170 -0
- package/docs/de/rmt-vnext-component-primitives.md +188 -0
- package/docs/de/rmt-vnext-cross-surface-events.md +68 -0
- package/docs/de/rmt-vnext-enterprise-mfe-handoff.md +70 -0
- package/docs/de/rmt-vnext-fabric-bridge-evidence.md +81 -0
- package/docs/de/rmt-vnext-migration-notes.md +62 -0
- package/docs/de/rmt-vnext-primitive-authoring-tooling.md +247 -0
- package/docs/de/rmt-vnext-primitive-grammar-design.md +289 -0
- package/docs/de/rmt-vnext-primitive-lowering.md +108 -0
- package/docs/de/rmt-vnext-primitive-migration.md +119 -0
- package/docs/de/rmt-vnext-primitive-parser-ast.md +76 -0
- package/docs/de/rmt-vnext-primitive-semantic-graph.md +118 -0
- package/docs/de/rmt-vnext-primitives-compiler-backlog.md +739 -0
- package/docs/de/rmt-vnext-release-handoff.md +83 -0
- package/docs/de/rmt-vnext-remote-surfaces.md +90 -0
- package/docs/de/rmt-vnext-source-to-sea-gate.md +612 -0
- package/docs/de/rmt-vnext-surface-registry-enterprise.md +76 -0
- package/docs/de/screenreader-signals.md +56 -0
- package/docs/de/supply-chain-gates.md +100 -0
- package/docs/de/surface-manager-authoring-guide.md +94 -0
- package/docs/de/surface-manager-browser-lab.md +45 -0
- package/docs/de/surface-manager-component-lab.md +43 -0
- package/docs/de/surface-manager-controller.md +66 -0
- package/docs/de/surface-manager-layout-engines.md +32 -0
- package/docs/de/surface-manager-lazy-hydration.md +63 -0
- package/docs/de/surface-manager-migration-guide.md +122 -0
- package/docs/de/surface-manager-native-rmt-surfaces.md +38 -0
- package/docs/de/surface-manager-overlay-bridge.md +53 -0
- package/docs/de/surface-manager-persistence.md +30 -0
- package/docs/de/surface-manager-quality-gates.md +51 -0
- package/docs/de/surface-manager-release-handoff.md +68 -0
- package/docs/de/surface-manager-remote-policy.md +54 -0
- package/docs/de/surface-manager-rmt-authoring.md +102 -0
- package/docs/de/surface-manager-route-lifecycle.md +59 -0
- package/docs/de/surface-manager-runtime-release-handoff.md +69 -0
- package/docs/de/surface-manager-side-panel-runtime.md +36 -0
- package/docs/de/surface-manager-stack-policy.md +39 -0
- package/docs/de/surface-manager-window-runtime.md +47 -0
- package/docs/de/surface-manager-workbench-fixture.md +43 -0
- package/docs/de/third-party-design-authoring.md +406 -0
- package/docs/de/trusted-dom-boundary-browser-proof.md +32 -0
- package/docs/de/trusted-dom-sanitizing.md +110 -0
- package/docs/de/type-exports.md +61 -0
- package/docs/de/typescript-components.md +63 -0
- package/docs/de/visual-browser-regression.md +83 -0
- package/docs/de/visual-owner-artifacts.md +46 -0
- package/docs/de/visual-snapshot-automation.md +87 -0
- package/docs/de/xtend-api-types.md +55 -0
- package/docs/de/xtend-builder-types.md +55 -0
- package/docs/de/xtend-catalog-types.md +44 -0
- package/docs/de/xtend-fabric-rmt-lane-mapping.md +143 -0
- package/docs/de/xtend-fabric.md +474 -0
- package/docs/de/xtend-loader-types.md +58 -0
- package/docs/de/xtend-loader.md +265 -0
- package/docs/de/xtend-policy-types.md +38 -0
- package/docs/de/xtend-rmt-types.md +40 -0
- package/docs/de/xtend-vendor-types.md +36 -0
- package/docs/de/xtendrmt-app-dsl.md +334 -0
- package/docs/de/xtendrmt-migration-guide.md +266 -0
- package/docs/de/xtendrmt-native-authoring.md +333 -0
- package/docs/de/xtendrmt-overview.md +109 -0
- package/docs/de/xtendrmt-parsedown-scheduling.md +301 -0
- package/docs/de/xtendrmt-runtime-bridge.md +155 -0
- package/docs/en/README.md +163 -0
- package/docs/en/XTend-ADR.md +221 -0
- package/docs/en/a11y-keyboard-smokes.md +68 -0
- package/docs/en/about.md +25 -0
- package/docs/en/api.md +171 -0
- package/docs/en/best-practices.md +125 -0
- package/docs/en/changelog.md +104 -0
- package/docs/en/component-catalog-coverage.md +104 -0
- package/docs/en/component-lab.md +103 -0
- package/docs/en/component-long-tail-migration.md +41 -0
- package/docs/en/component-platform.md +243 -0
- package/docs/en/component-ux-app-authoring.md +118 -0
- package/docs/en/component-ux-authoring.md +96 -0
- package/docs/en/component-ux-gates.md +45 -0
- package/docs/en/components/x-rmt-lifecycle-demo-build.md +75 -0
- package/docs/en/components/xalert.md +94 -0
- package/docs/en/components/xbutton.md +118 -0
- package/docs/en/components/xcalendar.md +95 -0
- package/docs/en/components/xcards.md +139 -0
- package/docs/en/components/xcheckbox.md +118 -0
- package/docs/en/components/xcode.md +153 -0
- package/docs/en/components/xdialog.md +108 -0
- package/docs/en/components/xdrawer.md +110 -0
- package/docs/en/components/xfooter.md +138 -0
- package/docs/en/components/xform.md +147 -0
- package/docs/en/components/xheader.md +308 -0
- package/docs/en/components/xhero.md +157 -0
- package/docs/en/components/xicon.md +149 -0
- package/docs/en/components/xinput.md +147 -0
- package/docs/en/components/xlightbox.md +113 -0
- package/docs/en/components/xlink.md +130 -0
- package/docs/en/components/xmasonry.md +136 -0
- package/docs/en/components/xmenu.md +185 -0
- package/docs/en/components/xmodal.md +102 -0
- package/docs/en/components/xplayer.md +114 -0
- package/docs/en/components/xpopover.md +87 -0
- package/docs/en/components/xprogress.md +73 -0
- package/docs/en/components/xradio.md +119 -0
- package/docs/en/components/xrouter.md +260 -0
- package/docs/en/components/xsection.md +136 -0
- package/docs/en/components/xselect.md +122 -0
- package/docs/en/components/xsidepanel.md +48 -0
- package/docs/en/components/xspinner.md +118 -0
- package/docs/en/components/xstate.md +163 -0
- package/docs/en/components/xstatus.md +71 -0
- package/docs/en/components/xsummary.md +90 -0
- package/docs/en/components/xsurfacemanager.md +42 -0
- package/docs/en/components/xsurfacewindow.md +31 -0
- package/docs/en/components/xtabs.md +187 -0
- package/docs/en/components/xtextarea.md +115 -0
- package/docs/en/components/xtheme.md +203 -0
- package/docs/en/components/xtoast.md +78 -0
- package/docs/en/components/xtooltip.md +85 -0
- package/docs/en/components/xtype.md +91 -0
- package/docs/en/components/xutils.md +161 -0
- package/docs/en/components/xwriter.md +106 -0
- package/docs/en/components.md +151 -0
- package/docs/en/conditional-network-evidence-ci.md +38 -0
- package/docs/en/conditional-network-evidence.md +50 -0
- package/docs/en/core-migration-guide.md +110 -0
- package/docs/en/design-tokens.md +137 -0
- package/docs/en/docs-rmt-production-hardening.md +31 -0
- package/docs/en/enterprise-adoption.md +413 -0
- package/docs/en/enterprise-component-flex-release-handoff.md +129 -0
- package/docs/en/epic10-platform-gates.md +62 -0
- package/docs/en/epic10-release-handoff.md +81 -0
- package/docs/en/epic11-enterprise-ux-handoff.md +70 -0
- package/docs/en/epic12-rc0-handoff.md +61 -0
- package/docs/en/epic18-media-manager-vendor-upstream.md +232 -0
- package/docs/en/epic18-rmt-app-platform-release-handoff.md +60 -0
- package/docs/en/epic18-vendor-bugfixes.md +29 -0
- package/docs/en/existing-component-metadata.md +67 -0
- package/docs/en/hydration-performance-closure.md +34 -0
- package/docs/en/hydration-policies.md +75 -0
- package/docs/en/known-residual-triage.md +22 -0
- package/docs/en/manifest-import-policy.md +81 -0
- package/docs/en/manifest.md +135 -0
- package/docs/en/motion-contrast.md +67 -0
- package/docs/en/package-export-lock.md +44 -0
- package/docs/en/performance-measurements.md +106 -0
- package/docs/en/performance-regression.md +89 -0
- package/docs/en/performance.md +132 -0
- package/docs/en/previews/README.md +17 -0
- package/docs/en/prod-browser-csp-smokes.md +40 -0
- package/docs/en/public-component-types.md +79 -0
- package/docs/en/quick-start-guide.md +189 -0
- package/docs/en/rc0-adoption-guide.md +102 -0
- package/docs/en/rc0-gate-matrix.md +58 -0
- package/docs/en/rc1-gate-matrix-ci-handoff.md +56 -0
- package/docs/en/rc1-migration-notes.md +69 -0
- package/docs/en/rc1-readiness.md +46 -0
- package/docs/en/release-owner-acceptance.md +56 -0
- package/docs/en/release-report-pack-dry-run-evidence.md +39 -0
- package/docs/en/rmt-action-effect-runtime.md +101 -0
- package/docs/en/rmt-app-platform-authoring.md +47 -0
- package/docs/en/rmt-app-platform-fixture.md +35 -0
- package/docs/en/rmt-app-platform-migration-guide.md +75 -0
- package/docs/en/rmt-app-platform-tooling.md +58 -0
- package/docs/en/rmt-component-template-primitives.md +49 -0
- package/docs/en/rmt-dom-descriptor-renderer.md +54 -0
- package/docs/en/rmt-dsl-authoring-polish.md +143 -0
- package/docs/en/rmt-event-routing-runtime.md +98 -0
- package/docs/en/rmt-first-demo-app.md +87 -0
- package/docs/en/rmt-first-xtend-apps.md +127 -0
- package/docs/en/rmt-kernel-panic-recovery-incident-handoff.md +60 -0
- package/docs/en/rmt-kernel-security-hardening-migration.md +49 -0
- package/docs/en/rmt-kernel-trusted-output-authoring.md +68 -0
- package/docs/en/rmt-language-server.md +243 -0
- package/docs/en/rmt-lifecycle-demo.md +23 -0
- package/docs/en/rmt-linter.md +146 -0
- package/docs/en/rmt-node-ssr-adapter.md +99 -0
- package/docs/en/rmt-php-ssr-adapter.md +118 -0
- package/docs/en/rmt-production-readiness.md +63 -0
- package/docs/en/rmt-state-selector-runtime.md +34 -0
- package/docs/en/rmt-surface-resource-graph-runtime.md +68 -0
- package/docs/en/rmt-tooling-release-gates.md +77 -0
- package/docs/en/rmt-vnext-authoring.md +102 -0
- package/docs/en/rmt-vnext-component-primitives.md +185 -0
- package/docs/en/rmt-vnext-cross-surface-events.md +59 -0
- package/docs/en/rmt-vnext-enterprise-mfe-handoff.md +62 -0
- package/docs/en/rmt-vnext-fabric-bridge-evidence.md +64 -0
- package/docs/en/rmt-vnext-migration-notes.md +62 -0
- package/docs/en/rmt-vnext-primitive-authoring-tooling.md +174 -0
- package/docs/en/rmt-vnext-primitive-grammar-design.md +268 -0
- package/docs/en/rmt-vnext-primitive-lowering.md +91 -0
- package/docs/en/rmt-vnext-primitive-migration.md +93 -0
- package/docs/en/rmt-vnext-primitive-parser-ast.md +59 -0
- package/docs/en/rmt-vnext-primitive-semantic-graph.md +103 -0
- package/docs/en/rmt-vnext-primitives-compiler-backlog.md +327 -0
- package/docs/en/rmt-vnext-release-handoff.md +83 -0
- package/docs/en/rmt-vnext-remote-surfaces.md +81 -0
- package/docs/en/rmt-vnext-source-to-sea-gate.md +482 -0
- package/docs/en/rmt-vnext-surface-registry-enterprise.md +68 -0
- package/docs/en/screenreader-signals.md +56 -0
- package/docs/en/supply-chain-gates.md +106 -0
- package/docs/en/surface-manager-authoring-guide.md +94 -0
- package/docs/en/surface-manager-browser-lab.md +45 -0
- package/docs/en/surface-manager-component-lab.md +43 -0
- package/docs/en/surface-manager-controller.md +66 -0
- package/docs/en/surface-manager-layout-engines.md +32 -0
- package/docs/en/surface-manager-lazy-hydration.md +63 -0
- package/docs/en/surface-manager-migration-guide.md +113 -0
- package/docs/en/surface-manager-native-rmt-surfaces.md +38 -0
- package/docs/en/surface-manager-overlay-bridge.md +53 -0
- package/docs/en/surface-manager-persistence.md +30 -0
- package/docs/en/surface-manager-quality-gates.md +51 -0
- package/docs/en/surface-manager-release-handoff.md +68 -0
- package/docs/en/surface-manager-remote-policy.md +54 -0
- package/docs/en/surface-manager-rmt-authoring.md +89 -0
- package/docs/en/surface-manager-route-lifecycle.md +59 -0
- package/docs/en/surface-manager-runtime-release-handoff.md +69 -0
- package/docs/en/surface-manager-side-panel-runtime.md +36 -0
- package/docs/en/surface-manager-stack-policy.md +39 -0
- package/docs/en/surface-manager-window-runtime.md +47 -0
- package/docs/en/surface-manager-workbench-fixture.md +43 -0
- package/docs/en/third-party-design-authoring.md +406 -0
- package/docs/en/trusted-dom-boundary-browser-proof.md +32 -0
- package/docs/en/trusted-dom-sanitizing.md +124 -0
- package/docs/en/type-exports.md +61 -0
- package/docs/en/typescript-components.md +63 -0
- package/docs/en/visual-browser-regression.md +83 -0
- package/docs/en/visual-owner-artifacts.md +46 -0
- package/docs/en/visual-snapshot-automation.md +87 -0
- package/docs/en/xtend-api-types.md +55 -0
- package/docs/en/xtend-builder-types.md +55 -0
- package/docs/en/xtend-catalog-types.md +44 -0
- package/docs/en/xtend-fabric-rmt-lane-mapping.md +143 -0
- package/docs/en/xtend-fabric.md +474 -0
- package/docs/en/xtend-loader-types.md +58 -0
- package/docs/en/xtend-loader.md +265 -0
- package/docs/en/xtend-policy-types.md +38 -0
- package/docs/en/xtend-rmt-types.md +40 -0
- package/docs/en/xtend-vendor-types.md +36 -0
- package/docs/en/xtendrmt-app-dsl.md +331 -0
- package/docs/en/xtendrmt-migration-guide.md +256 -0
- package/docs/en/xtendrmt-native-authoring.md +336 -0
- package/docs/en/xtendrmt-overview.md +63 -0
- package/docs/en/xtendrmt-parsedown-scheduling.md +301 -0
- package/docs/en/xtendrmt-runtime-bridge.md +155 -0
- package/docs/enterprise-adoption.md +4 -2
- package/docs/epic18-media-manager-vendor-upstream.md +318 -0
- package/docs/epic18-rmt-app-platform-release-handoff.md +67 -0
- package/docs/epic18-vendor-bugfixes.md +34 -0
- package/docs/index.php +1056 -109
- package/docs/manifest.md +8 -2
- package/docs/menu.json +986 -133
- package/docs/package-export-lock.md +2 -2
- package/docs/public-component-types.md +2 -2
- package/docs/quick-start-guide.md +126 -58
- package/docs/rmt-action-effect-runtime.md +101 -0
- package/docs/rmt-app-platform-authoring.md +54 -0
- package/docs/rmt-app-platform-fixture.md +46 -0
- package/docs/rmt-app-platform-migration-guide.md +88 -0
- package/docs/rmt-app-platform-tooling.md +79 -0
- package/docs/rmt-component-template-primitives.md +57 -0
- package/docs/rmt-dom-descriptor-renderer.md +64 -0
- package/docs/rmt-dsl-authoring-polish.md +67 -44
- package/docs/rmt-event-routing-runtime.md +98 -0
- package/docs/rmt-first-demo-app.md +2 -2
- package/docs/rmt-first-xtend-apps.md +70 -46
- package/docs/rmt-language-server.md +61 -4
- package/docs/rmt-lifecycle-demo.md +1 -2
- package/docs/rmt-node-ssr-adapter.md +144 -0
- package/docs/rmt-php-ssr-adapter.md +158 -0
- package/docs/rmt-state-selector-runtime.md +47 -0
- package/docs/rmt-surface-resource-graph-runtime.md +92 -0
- package/docs/rmt-vnext-authoring.md +128 -18
- package/docs/rmt-vnext-component-primitives.md +188 -0
- package/docs/rmt-vnext-fabric-bridge-evidence.md +81 -0
- package/docs/rmt-vnext-primitive-authoring-tooling.md +247 -0
- package/docs/rmt-vnext-primitive-grammar-design.md +289 -0
- package/docs/rmt-vnext-primitive-lowering.md +108 -0
- package/docs/rmt-vnext-primitive-migration.md +119 -0
- package/docs/rmt-vnext-primitive-parser-ast.md +76 -0
- package/docs/rmt-vnext-primitive-semantic-graph.md +118 -0
- package/docs/rmt-vnext-primitives-compiler-backlog.md +742 -0
- package/docs/rmt-vnext-release-handoff.md +14 -0
- package/docs/rmt-vnext-source-to-sea-gate.md +629 -0
- package/docs/surface-manager-migration-guide.md +34 -6
- package/docs/surface-manager-overlay-bridge.md +9 -4
- package/docs/surface-manager-rmt-authoring.md +50 -34
- package/docs/surface-manager-workbench-fixture.md +1 -2
- package/docs/third-party-design-authoring.md +1 -1
- package/docs/type-exports.md +3 -3
- package/docs/utils/pageloader.js +811 -62
- package/docs/visual-browser-regression.md +1 -1
- package/docs/xtend-rmt-types.md +3 -2
- package/docs/xtendrmt-app-dsl.md +187 -122
- package/docs/xtendrmt-docs-shell-vnext.rmt +165 -0
- package/docs/xtendrmt-migration-guide.md +48 -17
- package/docs/xtendrmt-native-authoring.md +213 -217
- package/docs/xtendrmt-overview.md +81 -61
- package/docs/xtendrmt-parsedown-scheduling.md +23 -8
- package/fabric/package.json +1 -1
- package/package.json +684 -21
- package/tools/package.json +5 -1
- package/tools/rmt-editor/vscode/README.md +72 -5
- package/tools/rmt-editor/vscode/XTend-Logo.png +0 -0
- package/tools/rmt-editor/vscode/extension.d.ts +33 -0
- package/tools/rmt-editor/vscode/extension.js +1816 -7
- package/tools/rmt-editor/vscode/language-configuration.json +2 -1
- package/tools/rmt-editor/vscode/package.json +193 -2
- package/tools/rmt-editor/vscode/snippets/rmt.code-snippets +41 -0
- package/tools/rmt-editor/vscode/syntaxes/rmt.tmLanguage.json +103 -1
- package/tools/rmt-editor/vscode/templates/launch.json +70 -0
- package/tools/rmt-editor/vscode/templates/tasks.json +172 -0
- package/tools/rmt-editor/vscode/xtend-rmt-language-0.0.0-enterprise-readiness.vsix +0 -0
- package/tools/rmt-language/app-platform-tooling.d.ts +128 -0
- package/tools/rmt-language/app-platform-tooling.js +677 -0
- package/tools/rmt-language/completions.d.ts +5 -0
- package/tools/rmt-language/completions.js +185 -3
- package/tools/rmt-language/diagnostics.js +54 -0
- package/tools/rmt-language/hover.js +36 -0
- package/tools/rmt-language/rmt-tooling-public-types.d.ts +7 -0
- package/tools/rmt-language/rules/app-platform-policy.js +39 -0
- package/tools/rmt-language/rules/index.js +5 -1
- package/tools/rmt-language/semantic-graph.d.ts +6 -0
- package/tools/rmt-language/semantic-graph.js +928 -0
- package/tools/rmt-language/snippets/index.js +44 -0
- package/tools/rmt-language/snippets/rmt.code-snippets +41 -0
- package/tools/rmt-language/vnext-compatibility.d.ts +10 -0
- package/tools/rmt-language/vnext-compatibility.js +642 -0
- package/tools/rmt-language/vnext-compiler.d.ts +5 -0
- package/tools/rmt-language/vnext-compiler.js +863 -17
- package/tools/rmt-language/vnext-parser.js +725 -9
- package/tools/rmt-language/vnext-release.d.ts +1 -0
- package/tools/rmt-language/vnext-release.js +20 -0
- package/tools/rmt-language/vnext-source-to-sea.d.ts +33 -0
- package/tools/rmt-language/vnext-source-to-sea.js +2227 -0
- package/tools/rmt-language/vnext-surfaces.js +111 -52
- package/tools/rmt-language/vnext-tooling.d.ts +19 -1
- package/tools/rmt-language/vnext-tooling.js +1247 -5
- package/tools/rmt-language-server/protocol.js +3 -0
- package/tools/rmt-language-server/server.d.ts +2 -0
- package/tools/rmt-language-server/server.js +176 -22
- package/tools/rmt-linter/cli.d.ts +2 -0
- package/tools/rmt-linter/cli.js +62 -0
- package/xtend-builder/generators/registry.js +11 -0
- package/xtend-builder/generators/rmt-app-platform.js +239 -0
- package/xtend-builder/generators/rmt-lifecycle-demo.js +3 -11
- package/xtend-builder/lib/cli.js +38 -0
- package/xtend-builder/package.json +3 -3
- package/xtend-builder/scaffold.config.js +29 -2
- package/xtend.css +49 -2
- package/xtendrmt/package.json +49 -1
- package/xtendrmt/rmt-action-effect-runtime.d.ts +126 -0
- package/xtendrmt/rmt-action-effect-runtime.js +494 -0
- package/xtendrmt/rmt-component-capability-registry.d.ts +180 -0
- package/xtendrmt/rmt-component-capability-registry.js +636 -0
- package/xtendrmt/rmt-core.d.ts +6 -0
- package/xtendrmt/rmt-core.esm.js +32 -6
- package/xtendrmt/rmt-dom-descriptor-renderer.d.ts +107 -0
- package/xtendrmt/rmt-dom-descriptor-renderer.js +1066 -0
- package/xtendrmt/rmt-event-routing-runtime.d.ts +144 -0
- package/xtendrmt/rmt-event-routing-runtime.js +666 -0
- package/xtendrmt/rmt-lifecycle-demo.app.js +2 -2
- package/xtendrmt/rmt-lifecycle-demo.core.json +4 -0
- package/xtendrmt/rmt-lifecycle-demo.rmt-build.app.js +1 -1
- package/xtendrmt/rmt-lifecycle-demo.rmt-build.scaffold.json +2 -2
- package/xtendrmt/rmt-lifecycle-demo.scaffold.json +4 -4
- package/xtendrmt/rmt-native-shell-runtime.d.ts +77 -0
- package/xtendrmt/rmt-native-shell-runtime.js +309 -0
- package/xtendrmt/rmt-node-ssr-adapter.d.ts +197 -0
- package/xtendrmt/rmt-node-ssr-adapter.js +1006 -0
- package/xtendrmt/rmt-php-ssr-adapter.php +976 -0
- package/xtendrmt/rmt-runtime.browser.js +32 -6
- package/xtendrmt/rmt-runtime.esm.js +32 -6
- package/xtendrmt/rmt-state-selector-runtime.d.ts +166 -0
- package/xtendrmt/rmt-state-selector-runtime.js +866 -0
- package/xtendrmt/rmt-surface-resource-graph-runtime.d.ts +224 -0
- package/xtendrmt/rmt-surface-resource-graph-runtime.js +932 -0
- package/xtendrmt/rmt-vnext-enterprise-mfe-demo.core.json +3 -0
- package/xtendrmt/rmt-vnext-reference-demo.core.json +3 -0
- package/xtendrmt/xtendrmt-bestcase-demo.core.json +3420 -372
- package/xtendrmt/xtendrmt-bestcase-demo.js +424 -8
- package/xtendrmt/xtendrmt-bestcase-demo.rmt +214 -6
|
@@ -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,102 @@
|
|
|
1
|
+
# SurfaceManager RMT Authoring
|
|
2
|
+
|
|
3
|
+
Docs Contract: `xtend.docs.surface-manager-rmt-authoring.v1`
|
|
4
|
+
|
|
5
|
+
Der SurfaceManager ist der XTend App-Shell-Baustein fuer Multi Window
|
|
6
|
+
Oberflaechen, SidePanels und spaetere Surface-Typen in einer SPA. `WP-SM-01`
|
|
7
|
+
definiert zuerst das RMT Authoring Model; Runtime-Komponenten folgen in den
|
|
8
|
+
naechsten Paketen.
|
|
9
|
+
|
|
10
|
+
## Entscheidung
|
|
11
|
+
|
|
12
|
+
SurfaceManager wird als RMT-native Komponentenfamilie aufgebaut:
|
|
13
|
+
|
|
14
|
+
- `x-surface-manager`
|
|
15
|
+
- `x-surface-window`
|
|
16
|
+
- `x-side-panel`
|
|
17
|
+
|
|
18
|
+
Fabric bleibt darunter fuer Lanes, Fibers, Diagnostics und Telemetry. Der
|
|
19
|
+
SurfaceManager ersetzt Fabric nicht.
|
|
20
|
+
|
|
21
|
+
## MVP Authoring
|
|
22
|
+
|
|
23
|
+
Neue SurfaceManager-Beispiele werden vNext-first geschrieben. Der Compiler kann
|
|
24
|
+
daraus weiterhin vorhandene RMT `components` Records mit
|
|
25
|
+
`metadata.surfaceManager` und `metadata.surface` erzeugen:
|
|
26
|
+
|
|
27
|
+
```rmt
|
|
28
|
+
template workbench.surfaces {
|
|
29
|
+
state workbench.selection type object initial null
|
|
30
|
+
|
|
31
|
+
portal surface.root root "#workbench-root" layer surface
|
|
32
|
+
|
|
33
|
+
surface workbench.manager kind workspace component x-surface-manager {
|
|
34
|
+
portal surface.root
|
|
35
|
+
|
|
36
|
+
lane visible weight 90 {
|
|
37
|
+
mount x-surface-manager
|
|
38
|
+
hydrate surface-manager from endpoint surface.visible.render
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
surface workbench.inspector kind window component x-surface-window {
|
|
43
|
+
source state workbench.selection
|
|
44
|
+
portal surface.root
|
|
45
|
+
|
|
46
|
+
lane user-blocking weight 95 {
|
|
47
|
+
hydrate inspector-window from endpoint surface.user-blocking.open
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
lane transition weight 55 {
|
|
51
|
+
hydrate inspector-layout from endpoint surface.transition.layout
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
surface workbench.details kind panel component x-side-panel {
|
|
56
|
+
portal surface.root
|
|
57
|
+
|
|
58
|
+
lane visible weight 70 {
|
|
59
|
+
hydrate details-panel from state workbench.selection
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
`xtend.surface` und eine native RMT `surfaces` Domain bleiben die Runtime-
|
|
66
|
+
Projektion dieses vNext-Pfads. Legacy `components[*].metadata.surface` ist
|
|
67
|
+
Migrationsquelle und Mirror, aber nicht mehr die bevorzugte Schreibform.
|
|
68
|
+
|
|
69
|
+
## Schedules
|
|
70
|
+
|
|
71
|
+
| Schedule | Lane | Zweck |
|
|
72
|
+
|----------|------|-------|
|
|
73
|
+
| `surface.visible.render` | `visible` | Manager und sichtbare Surface Shell rendern |
|
|
74
|
+
| `surface.user-blocking.open` | `user-blocking` | Surface oeffnen und Fokus setzen |
|
|
75
|
+
| `surface.user-blocking.close` | `user-blocking` | Surface schliessen und Fokus restaurieren |
|
|
76
|
+
| `surface.transition.layout` | `transition` | Move, Resize, Docking und Snap committen |
|
|
77
|
+
| `surface.background.persist` | `background` | Layout Snapshot persistieren |
|
|
78
|
+
| `surface.diagnostics.snapshot` | `diagnostics` | Registry, Stack und Telemetry snapshotten |
|
|
79
|
+
| `a11y.user-blocking.announce` | `user-blocking` | Surface Status fuer Screenreader ansagen |
|
|
80
|
+
|
|
81
|
+
## Fixture
|
|
82
|
+
|
|
83
|
+
Das Referenzdokument liegt in:
|
|
84
|
+
|
|
85
|
+
```text
|
|
86
|
+
tests/fixtures/rmt-surface-manager-workbench.rmt
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Es beschreibt eine Shell-first Workbench mit zwei `x-surface-window` Records und
|
|
90
|
+
einem `x-side-panel` Record. Die naechste Dokumentationslinie sollte dieselbe
|
|
91
|
+
Workbench als RMT-vNext-Draft zeigen und die Records nur noch als
|
|
92
|
+
Compiler-/Compatibility-Output fuehren.
|
|
93
|
+
|
|
94
|
+
## Gate
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
node scripts/run_xtend_tests.js rmt-surface-authoring --json
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Der Gate prueft `xtend.rmt.surface-authoring.v1`, das Fixture,
|
|
101
|
+
Package-/Scaffold-Hooks, Runner-Registrierung, Docs und die
|
|
102
|
+
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.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# SurfaceManager Stack Policy
|
|
2
|
+
|
|
3
|
+
Ab `WP-SM-15` besitzt `x-surface-manager` den Contract `xtend.surface.stack-policy.v1` fuer gemischte Surface-Stacks aus Windows, SidePanels, Dialogen, Modals und Drawern.
|
|
4
|
+
|
|
5
|
+
## Ziel
|
|
6
|
+
|
|
7
|
+
`modal-policy` wird produktiv auf Manager-Ebene ausgewertet. Der SurfaceController bleibt die Registry-Quelle, waehrend der Manager die UI-nahe Stack-Policy auf vorhandene XTend-Komponenten anwendet:
|
|
8
|
+
|
|
9
|
+
- `snapshotStackPolicy()` liefert den aktuellen Report `xtend.surface.stack-policy-report.v1`.
|
|
10
|
+
- `applyStackPolicy()` wendet Layer Tokens, aktive Modalitaet, Inert, `aria-hidden`, `aria-modal`, Focus Trap, Focus Restore, Escape-Prioritaet und Scroll Lock an.
|
|
11
|
+
- bestehende Overlay-Komponenten behalten ihre lokalen APIs und Focus-/Escape-Implementierungen.
|
|
12
|
+
|
|
13
|
+
## Modal Policies
|
|
14
|
+
|
|
15
|
+
| Policy | Wirkung |
|
|
16
|
+
|--------|---------|
|
|
17
|
+
| `topmost` | die oberste modale Surface erhaelt aktive Modalitaet |
|
|
18
|
+
| `none` | keine Manager-Modalitaet, keine Inert- oder Scroll-Lock-Regel |
|
|
19
|
+
| `all-modal` | jede offene Surface kann als modal behandelt werden, aktiv ist die oberste |
|
|
20
|
+
| `surface-modal` | alle als modal deklarierten Surfaces werden erkannt, aktiv ist die oberste modale Surface |
|
|
21
|
+
|
|
22
|
+
## Laufzeitregeln
|
|
23
|
+
|
|
24
|
+
- Focus Restore: Beim Aktivieren einer modalen Surface merkt sich der Manager das vorherige Fokusziel und stellt es nach Close wieder her.
|
|
25
|
+
- Inert: Hintergrund-Surfaces erhalten `data-surface-inert="manager"`, `inert` und `aria-hidden`, solange eine aktive modale Surface existiert.
|
|
26
|
+
- Escape: Ein dokumentweiter Capture-Handler schliesst die aktive modale Surface oder sonst die oberste schliessbare Surface.
|
|
27
|
+
- Scroll Lock: Aktive Modalitaet setzt `data-xtend-surface-scroll-lock` auf `html` und `body`.
|
|
28
|
+
- Layer Tokens: Jede Surface erhaelt `data-surface-layer-token`, `--surface-layer-z` und kompatible Komponenten-Z-Variablen.
|
|
29
|
+
- Diagnostics: fehlende Labels, fehlende Fokusziele und Modalitaet unterhalb nicht-modaler Surfaces werden im Stack-Policy-Report sichtbar.
|
|
30
|
+
|
|
31
|
+
## Boundary
|
|
32
|
+
|
|
33
|
+
Die Stack Policy ist eine unterstuetzende XTend-UI-Schicht. Sie erzeugt keine zweite Registry, ersetzt weder Fabric noch den RMT Kernel und veraendert nicht die SurfaceController-Wahrheit. RMT kann `modal-policy` deklarieren, aber die Laufzeitentscheidung bleibt beim `x-surface-manager`.
|
|
34
|
+
|
|
35
|
+
Lokaler Gate:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
node scripts/run_xtend_tests.js surface-stack-policy --json
|
|
39
|
+
```
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# SurfaceManager Window Runtime
|
|
2
|
+
|
|
3
|
+
`WP-SM-03` macht den SurfaceManager erstmals sichtbar: `x-surface-manager` verwaltet den Controller und `x-surface-window` ist die erste WindowManager-Surface.
|
|
4
|
+
|
|
5
|
+
- Contract: `xtend.surface.window-runtime.v1`
|
|
6
|
+
- Manager: `components/xsurfacemanager.js`
|
|
7
|
+
- Window: `components/xsurfacewindow.js`
|
|
8
|
+
- Controller: `components/xsurfacemanager-controller.js`
|
|
9
|
+
- Gate: `node scripts/run_xtend_tests.js surface-manager --json`
|
|
10
|
+
|
|
11
|
+
## Beispiel
|
|
12
|
+
|
|
13
|
+
```html
|
|
14
|
+
<x-surface-manager id="workbench" manager-id="workbench.manager">
|
|
15
|
+
<x-surface-window
|
|
16
|
+
slot="windows"
|
|
17
|
+
surface-id="workbench.inspector"
|
|
18
|
+
label="Inspector"
|
|
19
|
+
open
|
|
20
|
+
draggable
|
|
21
|
+
resizable
|
|
22
|
+
initial-x="96"
|
|
23
|
+
initial-y="88"
|
|
24
|
+
initial-width="520"
|
|
25
|
+
initial-height="360">
|
|
26
|
+
<section>Inspector content</section>
|
|
27
|
+
</x-surface-window>
|
|
28
|
+
</x-surface-manager>
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Manager
|
|
32
|
+
|
|
33
|
+
`x-surface-manager` bietet `registerSurface`, `openSurface`, `closeSurface`, `focusSurface`, `updateSurface`, `moveSurface`, `resizeSurface`, `minimizeSurface`, `maximizeSurface`, `restoreSurface` und `snapshot`.
|
|
34
|
+
|
|
35
|
+
Slots: `windows`, `panels`, `overlays`, `default`.
|
|
36
|
+
|
|
37
|
+
Events: `surface-manager-ready`, `surface-registered`, `surface-opened`, `surface-closed`, `surface-focused`, `surface-updated`, `surface-layout-changed`.
|
|
38
|
+
|
|
39
|
+
## Window
|
|
40
|
+
|
|
41
|
+
`x-surface-window` bietet `toSurfaceRecord`, `applySurfaceSnapshot`, `openWindow`, `closeWindow`, `focusWindow`, `minimizeWindow`, `maximizeWindow` und `restoreWindow`.
|
|
42
|
+
|
|
43
|
+
Das Element sendet `surface-window-command`. Der Manager fuehrt daraus die Controller-Operation aus und spiegelt den Snapshot zurueck.
|
|
44
|
+
|
|
45
|
+
## Handoff
|
|
46
|
+
|
|
47
|
+
`WP-SM-04` erweitert diese Runtime um `x-side-panel` und responsive Surface Modes. Die Window-Runtime bleibt der erste Multi Window Beweis und darf keine zweite Registry neben dem Controller einfuehren.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# SurfaceManager Workbench Fixture
|
|
2
|
+
|
|
3
|
+
Docs Contract: `xtend.docs.surface-manager-workbench-fixture.v1`
|
|
4
|
+
|
|
5
|
+
Runtime Contract: `xtend.surface.workbench-fixture.v1`
|
|
6
|
+
|
|
7
|
+
`WP-SM-05` fuehrt die erste RMT-first Workbench fuer den SurfaceManager ein. Sie rendert eine App Shell aus RMT, bindet den SurfaceManager an eine Route und zeigt zwei Windows plus SidePanel mit gemeinsamem Snapshot.
|
|
8
|
+
|
|
9
|
+
## Artefakte
|
|
10
|
+
|
|
11
|
+
| Pfad | Zweck |
|
|
12
|
+
|------|-------|
|
|
13
|
+
| `xtendrmt/surface-workbench.rmt` | RMT-Dokument mit App Shell, Route, SurfaceManager, zwei Windows, SidePanel und Content |
|
|
14
|
+
| `tests/browser/fixtures/rmt-surface-workbench-smoke.html` | Host-/Smoke-Fixture ohne manuelle Surface-Komponenten |
|
|
15
|
+
| `xtendrmt/surface-workbench.js` | Workbench Renderer fuer `dom_descriptor`, Slots, Routes und Snapshot |
|
|
16
|
+
| `tests/browser/fixtures/rmt-surface-workbench-smoke.html` | vorbereiteter Browser-Smoke fuer spaetere Surface-Gates |
|
|
17
|
+
|
|
18
|
+
## Modell
|
|
19
|
+
|
|
20
|
+
Die Workbench nutzt weiter den MVP-Pfad aus `xtend.rmt.surface-authoring.v1`: Surfaces sind normale `components` Records mit `metadata.surface`. Die native RMT `surfaces` Domain bleibt reserviert.
|
|
21
|
+
|
|
22
|
+
Enthalten sind:
|
|
23
|
+
|
|
24
|
+
- `workbench.manager` als `x-surface-manager`
|
|
25
|
+
- `workbench.inspector` und `workbench.editor` als zwei Windows
|
|
26
|
+
- `workbench.properties` als `x-side-panel`
|
|
27
|
+
- `app.router` als route-bound Outlet
|
|
28
|
+
- `workbench` als Route fuer Surface Content
|
|
29
|
+
- `xtend.surface.snapshot` als shared Surface Snapshot Key
|
|
30
|
+
|
|
31
|
+
## Runtime
|
|
32
|
+
|
|
33
|
+
`xtendrmt/surface-workbench.js` rendert nur strukturierte DOM Nodes. Der Renderer verwendet kein `innerHTML`, sondern `renderDomDescriptor`, `renderSurfaceWorkbenchFromDocument` und `root.replaceChildren(shellFragment)`.
|
|
34
|
+
|
|
35
|
+
Der Snapshot wird ueber `collectSurfaceSnapshot(root)` gelesen. Wenn `x-surface-manager.snapshot()` verfuegbar ist, kommt der Snapshot direkt vom Manager; andernfalls liefert das Fixture einen DOM-Fallback fuer statische Gates.
|
|
36
|
+
|
|
37
|
+
## Gate
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
node scripts/run_xtend_tests.js surface-workbench-fixture --json
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Der Gate prueft Contract, RMT-Normalisierung, Host-Boundary, Runtime-Boundary, route-bound Content, zwei Windows, SidePanel, shared Surface Snapshot, Package-/Scaffold-Metadaten, Docs und Runner-Registrierung.
|