@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,83 @@
|
|
|
1
|
+
# Visual Browser Regression
|
|
2
|
+
|
|
3
|
+
- Contract: `xtend.docs.visual-browser-regression.v1`
|
|
4
|
+
- Plan Contract: `xtend.catalog.component-regression-priority-plan.v1`
|
|
5
|
+
- Gate Contract: `xtend.catalog.component-regression-priority-gate.v1`
|
|
6
|
+
- Snapshot Contract: `xtend.epic12.visual-snapshot-automation-contract.v1`
|
|
7
|
+
- Workpackage: `ER-WP-35`
|
|
8
|
+
|
|
9
|
+
Diese Seite beschreibt den aktuellen XTend-Plan fuer visuelle und browsernahe Regression. ER-WP-35 fuehrt noch keinen Screenshot-Runner ein. Stattdessen erzeugt XTend einen stabilen Prioritaetsplan, der pro Manifest-Komponente festlegt, welche Browser-Smokes, Viewports, Theme-Varianten, visuellen Zustaende und Performance-Profile zuerst automatisiert werden muessen.
|
|
10
|
+
|
|
11
|
+
## Lokal pruefen
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
node scripts/run_xtend_tests.js regression-priority
|
|
15
|
+
node scripts/run_xtend_tests.js regression-priority --json
|
|
16
|
+
npm run test:regression-priority
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Der Gate ist Teil des lokalen Test-Runners und nutzt die Component Catalog Coverage Matrix als Quelle. Er bleibt CDN-frei und braucht keine externe Browser-Automation.
|
|
20
|
+
|
|
21
|
+
## Mindestabdeckung
|
|
22
|
+
|
|
23
|
+
Jede Komponente im Plan erhaelt:
|
|
24
|
+
|
|
25
|
+
- Viewports: `desktop-1280`, `mobile-390`
|
|
26
|
+
- Theme-/Preference-Varianten: `light`, `dark`, `forced-colors`, `reduced-motion`
|
|
27
|
+
- Performance-Profil: `xtend.performance.component-profile.v1`
|
|
28
|
+
- Handoff-Gates: `browser`, `performance-regression`, `catalog-coverage`, `references`
|
|
29
|
+
|
|
30
|
+
P0-Komponenten wie `x-router`, `x-link`, `x-modal`, `x-input`, `x-select`, `x-checkbox`, `x-radio`, `x-textarea`, `x-tooltip`, `x-popover`, `x-drawer`, `x-form`, `x-calendar`, `x-writer`, `x-dialog` und `x-lightbox` werden als `p0-browser-critical` eingeordnet. P1-Komponenten wie `x-status` und `x-progress` bilden die visuelle und Performance-Baseline. P2-Komponenten bleiben als Long-Tail sichtbar.
|
|
31
|
+
|
|
32
|
+
## Profil-Regeln
|
|
33
|
+
|
|
34
|
+
| Profil | Browser-Smokes | Visuelle Zustaende |
|
|
35
|
+
|--------|----------------|--------------------|
|
|
36
|
+
| `routing` | Route-Wechsel, Keyboard Navigation, History State, RMT Route Adapter | Initial Route, Active Route, RMT Scheduled Route |
|
|
37
|
+
| `form` | Input Sync, Validation Feedback, Keyboard Entry, Form Submit | Default, Focus, Invalid, Disabled |
|
|
38
|
+
| `overlay` | Focus Trap, Escape Close, Scroll Lock, Focus Restore | Closed, Open, Focus Trapped, Reduced Motion Open |
|
|
39
|
+
| `feedback` | Live Region, Dismiss Timer, Reduced Motion | Info, Warning, Error, Dismissed |
|
|
40
|
+
| `interactive` | Keyboard Activation, Focus Visible, Mobile Tap | Default, Hover, Focus Visible, Active, Disabled |
|
|
41
|
+
| `media` | Media Controls, Poster Load, Fullscreen Toggle | Poster, Playing, Controls Focus |
|
|
42
|
+
| `theme` | Theme Switch, Token Contrast, Forced Colors | Light Theme, Dark Theme, Forced Colors |
|
|
43
|
+
| `display` | Layout Stability, Responsive Overflow | Default Layout, Narrow Layout |
|
|
44
|
+
| `iconography` | Layout Stability, Theme Token Color | Default Layout, High Contrast CurrentColor |
|
|
45
|
+
| `utility` | Utility Integration Probe | Helper Ready |
|
|
46
|
+
|
|
47
|
+
## Boundary-Abschluss
|
|
48
|
+
|
|
49
|
+
Der Plan haelt die frueheren Boundary-Luecken nachvollziehbar, aber nicht mehr als offene RC1-Restpunkte:
|
|
50
|
+
|
|
51
|
+
- 0 Manifest-Eintraege brauchen noch Suite-, Fixture- oder Type-Nacharbeit.
|
|
52
|
+
- `xstate` ist seit `WP-E13-05` als Runtime-Boundary geschlossen.
|
|
53
|
+
- `x-utils` ist seit `WP-E13-05` als Utility-Boundary geschlossen.
|
|
54
|
+
- Die 42 sichtbaren Runtime-/UI-Komponenten behalten explizite Performance-Profile; `xstate` und `x-utils` werden nicht kuenstlich zu visuellen Profiltraegern umgedeutet.
|
|
55
|
+
|
|
56
|
+
Damit ist klar, dass `ER-WP-35` priorisiert, aber die eigentliche Screenshot-/Pixel-Regression an CI und Release Readiness uebergibt.
|
|
57
|
+
|
|
58
|
+
## Snapshot Automation Contract
|
|
59
|
+
|
|
60
|
+
Seit `WP-E12-10` ist der naechste Schritt ueber `xtend.epic12.visual-snapshot-automation-contract.v1` festgelegt:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
node scripts/run_xtend_tests.js visual-snapshot-automation --json
|
|
64
|
+
npm run test:visual-snapshot-automation
|
|
65
|
+
node scripts/run_xtend_tests.js visual-snapshots --json
|
|
66
|
+
npm run test:visual-snapshots
|
|
67
|
+
node scripts/run_xtend_tests.js design-tokens --json
|
|
68
|
+
npm run test:design-tokens
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Der Snapshot-Contract uebernimmt die 360 Kombinationen aus der Component Shell Theme Matrix und beschreibt `shell-structure`, `visual-state`, `theme-token-state`, `motion-density-state`, `viewport-layout`, `focus-a11y-state` und `rmt-shell-descriptor` als Snapshot Scopes. Die Diff-Strategie ist `dom-first-pixel-ready`: DOM-Struktur und CSS Token werden mit Toleranz `0` behandelt. Seit `WP-E12-11` vergleicht `xtend.epic12.visual-snapshot-runner.v1` die lokale Fixture gegen eine textuelle JSON DOM-Baseline. Pixel-Diff ist als `optional-local-pixel-diff` vorbereitet und bleibt ausserhalb des Node-Contract-Gates. Seit `WP-E12-12` werden diese CSS Token als `xtend.design-tokens.product-contract.v1` produktisiert und ueber dieselben `--xtend-*` Namen in `x-theme`, Theme Matrix und Snapshot Baseline geprueft.
|
|
72
|
+
|
|
73
|
+
## Handoff
|
|
74
|
+
|
|
75
|
+
- `WP-E12-10`: Visual Snapshot Automation Contract ist abgeschlossen.
|
|
76
|
+
- `WP-E12-11`: lokales Snapshot Fixture und DOM-first Runner ist abgeschlossen.
|
|
77
|
+
- `WP-E12-12`: Enterprise Design System Token Productization ist abgeschlossen.
|
|
78
|
+
- `ER-WP-36`: CI Workflow fuer Default Gates und Regression Priority Gate produktisieren.
|
|
79
|
+
- `ER-WP-38`: Release Checklist um Browser-/Visual-Regression, Artefakte und SemVer-Risiken erweitern.
|
|
80
|
+
- `ER-WP-39`: Enterprise Adoption Guide mit QS-Empfehlungen und Baseline-Strategie ist abgeschlossen.
|
|
81
|
+
- `ER-WP-40`: Docs-App mit RMT Parsedown Scheduling Pilot ist abgeschlossen.
|
|
82
|
+
|
|
83
|
+
Die maschinenlesbare Umsetzung liegt in `catalog/component-regression-priority.js`. Die Architekturentscheidung liegt in `development/XTend-Visuelle-und-Browsernahe-Regression-Prioritaetsplan.md`.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Visual Owner Artifacts
|
|
2
|
+
|
|
3
|
+
- Contract: `xtend.epic13.visual-owner-artifact.v1`
|
|
4
|
+
- Manifest Contract: `xtend.epic13.visual-owner-artifact-manifest.v1`
|
|
5
|
+
- Report: `xtend.epic13.visual-owner-artifact-report.v1`
|
|
6
|
+
- Workpackage: `WP-E13-08`
|
|
7
|
+
- Lokaler Gate: `node scripts/run_xtend_tests.js epic13-visual-owner-artifact --json`
|
|
8
|
+
- Package Script: `npm run test:epic13-visual-owner-artifact`
|
|
9
|
+
- Manifest: `tests/browser/visual-baselines/rc1-visual-owner-artifact.manifest.json`
|
|
10
|
+
- Publish Boundary: `private-until-release-owner-acceptance`
|
|
11
|
+
|
|
12
|
+
## Zweck
|
|
13
|
+
|
|
14
|
+
Visual Owner Artifacts verbinden die bestehende DOM-first Visual Snapshot Automation mit einem reproduzierbaren Screenshot-/Pixel-Artefaktpfad fuer RC1. Der lokale Gate validiert Contract, Manifest und DOM-Snapshot-Zustand. Die eigentliche Screenshot-Erzeugung bleibt optional und gehoert in stabile Browser- oder CI-Umgebungen.
|
|
15
|
+
|
|
16
|
+
## Pfadkonvention
|
|
17
|
+
|
|
18
|
+
```text
|
|
19
|
+
.xtend-test-results/visual-snapshots/rc1/{family}/{viewport}/{theme}/{density}/{motion}.png
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Der Report liegt unter:
|
|
23
|
+
|
|
24
|
+
```text
|
|
25
|
+
.xtend-test-results/visual-snapshots/rc1/visual-owner-artifact-report.json
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Die Fixture bleibt `tests/browser/fixtures/visual-snapshots-fixture.html`, die DOM-Baseline bleibt `tests/browser/visual-baselines/visual-snapshots.dom-baseline.json`.
|
|
29
|
+
|
|
30
|
+
## Lokale Nutzung
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
npm run test:epic13-visual-owner-artifact
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Der lokale Modus ist `static-artifact-manifest-plus-dom-snapshot-gate`. `pixelDiffRequiredInLocalGate`, `screenshotRequiredInLocalGate` und `binaryBaselineCommitted` sind `false`.
|
|
37
|
+
|
|
38
|
+
## Beziehung zu vorhandenen Gates
|
|
39
|
+
|
|
40
|
+
- Die DOM-Struktur kommt aus [Visual Snapshot Automation](./visual-snapshot-automation.md).
|
|
41
|
+
- Die PROD-nahe Browser-/CSP-Vorbereitung kommt aus [PROD Browser CSP Smokes](./prod-browser-csp-smokes.md).
|
|
42
|
+
- Das Owner-Artefakt bleibt `optional-browser-driver-or-ci-artifact`, bis eine stabile Browser-Capture-Umgebung als verpflichtender Release-Gate entschieden wird.
|
|
43
|
+
|
|
44
|
+
## Handoff
|
|
45
|
+
|
|
46
|
+
`WP-E13-08` ist abgeschlossen. `WP-E13-09` hat `xtend.epic13.rmt-production-readiness.v1` unter [RMT Production Readiness](./rmt-production-readiness.md) gebuendelt. `WP-E13-10` hat [Docs RMT Production Hardening](./docs-rmt-production-hardening.md) abgeschlossen. `WP-E13-11` hat [Trusted DOM Boundary Browser Proof](./trusted-dom-boundary-browser-proof.md) und `xtend.epic13.trusted-dom-boundary.v1` abgeschlossen. `WP-E13-12` hat [RC1 Migration Notes](./rc1-migration-notes.md) und `xtend.epic13.rc1-migration-notes-semver.v1` abgeschlossen. `WP-E13-13` hat [RC1 Gate Matrix und CI-Handoff](./rc1-gate-matrix-ci-handoff.md) und `xtend.epic13.rc1-gate-matrix-ci-handoff.v1` abgeschlossen.
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# Visual Snapshot Automation
|
|
2
|
+
|
|
3
|
+
- Contract: `xtend.epic12.visual-snapshot-automation-contract.v1`
|
|
4
|
+
- Entry Contract: `xtend.epic12.visual-snapshot-automation-entry.v1`
|
|
5
|
+
- Automation Report Contract: `xtend.epic12.visual-snapshot-automation-report.v1`
|
|
6
|
+
- Runner Contract: `xtend.epic12.visual-snapshot-runner.v1`
|
|
7
|
+
- Fixture Contract: `xtend.epic12.visual-snapshot-fixture.v1`
|
|
8
|
+
- Runner Report Contract: `xtend.epic12.visual-snapshot-runner-report.v1`
|
|
9
|
+
- Design Token Contract: `xtend.design-tokens.product-contract.v1`
|
|
10
|
+
- Workpackages: `WP-E12-10`, `WP-E12-11`, `WP-E12-12`
|
|
11
|
+
- Contract Gate: `node scripts/run_xtend_tests.js visual-snapshot-automation --json`
|
|
12
|
+
- Snapshot Gate: `node scripts/run_xtend_tests.js visual-snapshots --json`
|
|
13
|
+
|
|
14
|
+
XTend Visual Snapshot Automation ist die Epic-12-Linie fuer lokale visuelle Regression. `WP-E12-10` definiert Scopes, Matrix, Toleranzen und Artefaktpolitik. `WP-E12-11` setzt darauf einen lokalen DOM-first Snapshot Runner mit JSON-Baseline auf.
|
|
15
|
+
|
|
16
|
+
## Lokal pruefen
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
node scripts/run_xtend_tests.js visual-snapshot-automation
|
|
20
|
+
node scripts/run_xtend_tests.js visual-snapshot-automation --json
|
|
21
|
+
npm run test:visual-snapshot-automation
|
|
22
|
+
node scripts/run_xtend_tests.js visual-snapshots --json
|
|
23
|
+
npm run test:visual-snapshots
|
|
24
|
+
node scripts/run_xtend_tests.js design-tokens --json
|
|
25
|
+
npm run test:design-tokens
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Der Gate ist local-only, CDN-frei und nutzt keine externen Browserdienste.
|
|
29
|
+
|
|
30
|
+
## Matrix
|
|
31
|
+
|
|
32
|
+
Der Contract uebernimmt die 360 Kombinationen der Component Shell Theme Matrix:
|
|
33
|
+
|
|
34
|
+
- Themes: `light`, `dark`, `high-contrast`, `forced-colors`
|
|
35
|
+
- Motion: `default-motion`, `reduced-motion`
|
|
36
|
+
- Density: `comfortable`, `compact`, `dense`
|
|
37
|
+
- Viewports: `desktop-1280`, `tablet-768`, `mobile-390`
|
|
38
|
+
- UX-Familien: `form-controls`, `feedback-status`, `navigation-routing`, `overlay-interaction`, `layout-display-media`
|
|
39
|
+
|
|
40
|
+
## Snapshot Scopes
|
|
41
|
+
|
|
42
|
+
- `shell-structure`
|
|
43
|
+
- `visual-state`
|
|
44
|
+
- `theme-token-state`
|
|
45
|
+
- `motion-density-state`
|
|
46
|
+
- `viewport-layout`
|
|
47
|
+
- `focus-a11y-state`
|
|
48
|
+
- `rmt-shell-descriptor`
|
|
49
|
+
|
|
50
|
+
Die RMT-Grenze bleibt `no-rmt-kernel-import-of-xtend-types`: RMT beschreibt und scheduled Shells, importiert aber keine XTend-Typen in den Kernel.
|
|
51
|
+
|
|
52
|
+
Ab `WP-E12-12` nutzt die Snapshot-Fixture dieselben Produkt-Tokens wie `x-theme` und die Component Shell Theme Matrix. Die DOM-Baseline trackt `--xtend-surface`, `--xtend-text`, `--xtend-color-primary`, `--xtend-density-spacing` und `--xtend-radius`; lokale Fixture-Namen wie `--snapshot-*` sind entfernt.
|
|
53
|
+
|
|
54
|
+
## Diff-Strategie
|
|
55
|
+
|
|
56
|
+
`WP-E12-10` legt `dom-first-pixel-ready` fest, `WP-E12-11` fuehrt den lokalen DOM-Diff aus:
|
|
57
|
+
|
|
58
|
+
- DOM-Struktur und CSS Token haben Toleranz `0`.
|
|
59
|
+
- Pixel-Diff ist vorbereitet als `optional-local-pixel-diff`, laeuft im Node-Contract-Gate aber nicht.
|
|
60
|
+
- Maximaler Pixel-Mismatch ist `0.01`.
|
|
61
|
+
- Layout Shift ist auf `1px` begrenzt.
|
|
62
|
+
- Vor Capture muss der Runner auf Custom Elements, Fonts, Loader-Abschluss und einen Animation Frame warten.
|
|
63
|
+
|
|
64
|
+
## Artefakte
|
|
65
|
+
|
|
66
|
+
| Artefakt | Pfad |
|
|
67
|
+
|----------|------|
|
|
68
|
+
| Contract | `development/XTend-Visual-Snapshot-Automation-Contract.md` |
|
|
69
|
+
| Plan | `tests/browser/visual-snapshot-automation-plan.js` |
|
|
70
|
+
| Automation Suite | `tests/browser/visual_snapshot_automation_suite.js` |
|
|
71
|
+
| Runner | `tests/browser/visual-snapshots-runner.js` |
|
|
72
|
+
| Fixture | `tests/browser/fixtures/visual-snapshots-fixture.html` |
|
|
73
|
+
| DOM Baseline | `tests/browser/visual-baselines/visual-snapshots.dom-baseline.json` |
|
|
74
|
+
| Snapshot Suite | `tests/browser/visual_snapshots_suite.js` |
|
|
75
|
+
| Output Root | `.xtend-test-results/visual-snapshots` |
|
|
76
|
+
| Report Path | `.xtend-test-results/visual-snapshots/visual-snapshots-report.json` |
|
|
77
|
+
| RC1 Owner Manifest | `tests/browser/visual-baselines/rc1-visual-owner-artifact.manifest.json` |
|
|
78
|
+
|
|
79
|
+
Die Baseline ist in `WP-E12-11` textuell und reviewbar. Binary- oder Screenshot-Baselines bleiben einem optionalen lokalen Pixel-Diff-Modus vorbehalten.
|
|
80
|
+
|
|
81
|
+
## RC1 Visual Owner Artifact
|
|
82
|
+
|
|
83
|
+
Ab `WP-E13-08` nutzt [Visual Owner Artifacts](./visual-owner-artifacts.md) diese DOM-first Linie als Quelle fuer `xtend.epic13.visual-owner-artifact.v1`. Der lokale Gate `node scripts/run_xtend_tests.js epic13-visual-owner-artifact --json` normalisiert Artifact Root, Report-Pfad, Screenshot-Template und Viewports. Die Screenshot-/Pixel-Erzeugung bleibt `optional-browser-driver-or-ci-artifact`.
|
|
84
|
+
|
|
85
|
+
## RC0 Adoption Update
|
|
86
|
+
|
|
87
|
+
Seit `WP-E12-15` verweist der [RC0 Adoption Guide](./rc0-adoption-guide.md) auf diesen DOM-first Snapshot-Pfad als RC0-Baseline. Component Authors behandeln `visual-snapshots`, `design-tokens` und `component-shell-theme-matrix` gemeinsam als lokale Review-Kette; Pixel-Baselines bleiben optional und duerfen den lokalen RC0 Dry Run nicht blockieren.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# XTend API Types
|
|
2
|
+
|
|
3
|
+
- Contract: `xtend.type-exports.api-declarations.v1`
|
|
4
|
+
- Workpackage: `WP-TypeExports-03`
|
|
5
|
+
- Gate: `node scripts/run_xtend_tests.js type-exports-api --json`
|
|
6
|
+
- Report: `.xtend-test-results/xtend-type-exports-api-report.json`
|
|
7
|
+
- Declaration: `api.d.ts`
|
|
8
|
+
|
|
9
|
+
## Zweck
|
|
10
|
+
|
|
11
|
+
`api.d.ts` beschreibt die oeffentliche Core-API aus `api.js`: `initXTendAPI(manifest)`, den globalen Namespace `window.XTend.*`, die Legacy-Aliase und das Event `xtend-api-ready`. Die Declaration ist types-only; `api.js` bleibt runtime-unveraendert.
|
|
12
|
+
|
|
13
|
+
## Namespace
|
|
14
|
+
|
|
15
|
+
Der zentrale Namespace-Typ heisst `XTendNamespace`.
|
|
16
|
+
|
|
17
|
+
| API | Typ |
|
|
18
|
+
| --- | --- |
|
|
19
|
+
| `window.XTend.compliance` | `XTendComplianceApi` |
|
|
20
|
+
| `window.XTend.theme` | `XTendThemeApi` |
|
|
21
|
+
| `window.XTend.toast` | `XTendToastApi` |
|
|
22
|
+
| `window.XTend.alert` | `XTendAlertApi` |
|
|
23
|
+
| `window.XTend.dialog` | `XTendDialogApi` |
|
|
24
|
+
| `window.XTend.modal` | `XTendModalApi` |
|
|
25
|
+
|
|
26
|
+
## Legacy-Aliase
|
|
27
|
+
|
|
28
|
+
`api.d.ts` typisiert weiterhin die bestehenden globalen Komfort-Aliase:
|
|
29
|
+
|
|
30
|
+
- `window.XTheme`
|
|
31
|
+
- `window.XToast`
|
|
32
|
+
- `window.XAlert`
|
|
33
|
+
- `window.XDialog`
|
|
34
|
+
- `window.XModal`
|
|
35
|
+
- `window.showToast`
|
|
36
|
+
- `window.showAlert`
|
|
37
|
+
- `window.showDialog`
|
|
38
|
+
- `window.showModal`
|
|
39
|
+
|
|
40
|
+
## Event
|
|
41
|
+
|
|
42
|
+
`WindowEventMap` enthaelt `xtend-api-ready` mit `XTendApiReadyDetail`. Der Payload meldet, ob Toast, Alert, Dialog, Modal und Theme APIs initialisiert sind.
|
|
43
|
+
|
|
44
|
+
## Package Export
|
|
45
|
+
|
|
46
|
+
Der Package-Export `./api` besitzt ab `WP-TypeExports-03` die `types`-Condition `./api.d.ts`. `browser` und `default` zeigen weiter auf `./api.js`.
|
|
47
|
+
|
|
48
|
+
## Drift Gate
|
|
49
|
+
|
|
50
|
+
Der Gate `type-exports-api` prueft:
|
|
51
|
+
|
|
52
|
+
- `api.d.ts` existiert und ist im Package enthalten.
|
|
53
|
+
- `./api` zeigt per `types` auf `./api.d.ts`.
|
|
54
|
+
- `initXTendAPI`, `window.XTend.*`, Legacy-Aliase und `xtend-api-ready` sind in Runtime und Declaration sichtbar.
|
|
55
|
+
- `api.js` importiert keine Declaration-Datei.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# XTend Builder Types
|
|
2
|
+
|
|
3
|
+
Status: `completed`
|
|
4
|
+
Workpackage: `WP-TypeExports-06`
|
|
5
|
+
Schema: `xtend.type-exports.builder-declarations.v1`
|
|
6
|
+
Gate: `node scripts/run_xtend_tests.js type-exports-builder --json`
|
|
7
|
+
|
|
8
|
+
## Scope
|
|
9
|
+
|
|
10
|
+
`WP-TypeExports-06` typisiert die Builder-, Scaffold- und Component-Lab-Programm-APIs, ohne die CLI oder die Generatoren nach TypeScript zu portieren.
|
|
11
|
+
|
|
12
|
+
Die gemeinsame Grundlage liegt in `./xtend-builder/builder-public-types.d.ts`:
|
|
13
|
+
|
|
14
|
+
- `XtendBuilderComponentInput`
|
|
15
|
+
- `XtendBuilderComponentPlan`
|
|
16
|
+
- `XtendBuilderComponentFilesResult`
|
|
17
|
+
- `XtendBuilderWorkflow`
|
|
18
|
+
- `XtendBuilderComponentLabPlan`
|
|
19
|
+
|
|
20
|
+
## Declaration Pack
|
|
21
|
+
|
|
22
|
+
Die Root- und Workflow-APIs sind ueber diese Facades stabilisiert:
|
|
23
|
+
|
|
24
|
+
- `./xtend-builder/scaffold.d.ts`
|
|
25
|
+
- `./xtend-builder/lib/cli.d.ts`
|
|
26
|
+
- `./xtend-builder/blueprints/component-blueprint.contract.d.ts`
|
|
27
|
+
- `./xtend-builder/generators/component-plan.d.ts`
|
|
28
|
+
- `./xtend-builder/generators/component-files.d.ts`
|
|
29
|
+
- `./xtend-builder/generators/registry.d.ts`
|
|
30
|
+
- `./xtend-builder/workflows/developer-workflow.d.ts`
|
|
31
|
+
|
|
32
|
+
Component-Lab- und Preview-Consumer erhalten eigene Contracts:
|
|
33
|
+
|
|
34
|
+
- `./xtend-builder/preview/component-preview.d.ts`
|
|
35
|
+
- `./xtend-builder/preview/component-lab.d.ts`
|
|
36
|
+
- `./xtend-builder/preview/component-lab-ux-inspector.d.ts`
|
|
37
|
+
|
|
38
|
+
Die bereits exportierten Typing- und UX-Contract-Module sind als schmale Facades abgebildet, darunter `component-shell-contract`, `component-styling-contract`, `component-network-contract`, `rmt-shell-authoring-contract`, `rmt-dsl-authoring-polish`, die Form-/Feedback-/Navigation-/Overlay-/Layout-UX Contracts und `component-ux-performance-contract`.
|
|
39
|
+
|
|
40
|
+
## Package Exports
|
|
41
|
+
|
|
42
|
+
Die Package-Exports `./builder`, `./builder/*` sowie die expliziten Builder-Subexports erhalten `types`-Conditions. Beispiel:
|
|
43
|
+
|
|
44
|
+
```json
|
|
45
|
+
"./builder": {
|
|
46
|
+
"types": "./xtend-builder/scaffold.d.ts",
|
|
47
|
+
"default": "./xtend-builder/scaffold.js"
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
`./builder/*` bleibt als generischer Anschluss fuer repo-lokale Builder-Module erhalten und zeigt auf `./xtend-builder/*.d.ts`.
|
|
52
|
+
|
|
53
|
+
## Boundary
|
|
54
|
+
|
|
55
|
+
Die Declarations bleiben `types-only-no-runtime-imports`. Sie importieren keine Builder-Runtime, keine Komponenten, keinen RMT-Kernel und keine Loader-/API-Laufzeit. Der lokale Gate vergleicht Runtime-Exports, Package-`types`-Conditions, vorhandene Declaration-Dateien und die gemeinsame Builder-Type-Basis.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# XTend Catalog Types
|
|
2
|
+
|
|
3
|
+
- Contract: `xtend.type-exports.catalog-declarations.v1`
|
|
4
|
+
- Workpackage: `WP-TypeExports-07`
|
|
5
|
+
- Gate: `node scripts/run_xtend_tests.js type-exports-catalog --json`
|
|
6
|
+
- Report: `.xtend-test-results/xtend-type-exports-catalog-report.json`
|
|
7
|
+
|
|
8
|
+
## Zweck
|
|
9
|
+
|
|
10
|
+
Catalog-Module beschreiben XTend-Gates, Handoffs, Release-Plaene und SurfaceManager-Runtime-Scopes als maschinenlesbare Plan-/Report-Strukturen. `WP-TypeExports-07` fuehrt dafuer ein gemeinsames Declaration-Pattern ein, damit neue Catalogs nicht pro Property neu typisiert werden muessen.
|
|
11
|
+
|
|
12
|
+
`./catalog/catalog-public-types.d.ts` definiert die gemeinsamen Basistypen `XtendCatalogPlan`, `XtendCatalogReport`, `XtendCatalogGate`, `XtendCatalogFactory`, `XtendCatalogValidator` und `XtendCatalogDiagnostic`. Die einzelnen Catalog-Facades exportieren die Runtime-Symbole des jeweiligen `.js`-Moduls und binden Funktionen wie `create*Plan`, `create*Report`, `create*Gate` und `validate*Plan` an diese Basistypen.
|
|
13
|
+
|
|
14
|
+
## Package Surface
|
|
15
|
+
|
|
16
|
+
Alle oeffentlichen `./catalog/*` Package-Exports besitzen nun eine eigene `types`-Condition. Beispiele:
|
|
17
|
+
|
|
18
|
+
```json
|
|
19
|
+
"./catalog/epic13-package-export-lock": {
|
|
20
|
+
"types": "./catalog/epic13-package-export-lock.d.ts",
|
|
21
|
+
"default": "./catalog/epic13-package-export-lock.js"
|
|
22
|
+
}
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Das Runtime-Ziel bleibt unveraendert. Die Declarations importieren keine Runtime-Dateien und sind als Consumer-Facades gedacht.
|
|
26
|
+
|
|
27
|
+
## Catalog Familien
|
|
28
|
+
|
|
29
|
+
Der Gate klassifiziert drei fuer XTend wichtige Catalog-Familien:
|
|
30
|
+
|
|
31
|
+
- SurfaceManager-Catalogs bleiben interne XTend-UI-Unterstuetzung und dokumentieren App-Shell-, Surface-, Routing- und Runtime-Handoffs.
|
|
32
|
+
- Epic-Catalogs beschreiben Workpackage-, Gate- und Contract-Plaene ueber mehrere Epics hinweg.
|
|
33
|
+
- Release-Catalogs bündeln Handoff-, Readiness-, Export-Lock- und Migration-Entscheidungen.
|
|
34
|
+
|
|
35
|
+
Die SurfaceManager-Catalogs ersetzen keine Fabric-, RMT-Kernel- oder Runtime-Schicht. Sie bleiben deklarative Plaene und Reports, die UI-Surfaces unterstuetzen.
|
|
36
|
+
|
|
37
|
+
## Drift Gate
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
node scripts/run_xtend_tests.js type-exports-catalog --json
|
|
41
|
+
npm run test:type-exports-catalog
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Der Gate prueft, dass Package-Catalogs ihre `types`-Conditions besitzen, dass alle Catalog-Runtime-Exports in den `.d.ts`-Facades auftauchen, dass SurfaceManager-/Epic-/Release-Catalogs klassifiziert sind und dass keine Runtime-Dateien Declaration-Imports erhalten.
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
# XTend-Fabric RMT Lane Mapping
|
|
2
|
+
|
|
3
|
+
- Status: produktiver Mapping-Contract ab `ER-WP-13`
|
|
4
|
+
- Contract: `xtend.docs.xtend-fabric-rmt-lane-mapping.v1`
|
|
5
|
+
- Mapping Contract: `xtend.fabric.rmt-lane-mapping.v1`
|
|
6
|
+
- Runtime: `fabric/rmt-lane-mapping.js`
|
|
7
|
+
- Test: `tests/fabric/fabric_rmt_lane_mapping_suite.js`
|
|
8
|
+
|
|
9
|
+
## Zweck
|
|
10
|
+
|
|
11
|
+
`fabric/rmt-lane-mapping.js` verbindet Fabric-Lanes mit RMT Schedule Policies, ohne XTend in den RMT Kernel einzubauen.
|
|
12
|
+
|
|
13
|
+
Fabric beschreibt UI-Arbeit semantisch: `user-blocking`, `a11y`, `visible`, `transition`, `idle`, `background`, `diagnostics`. RMT bleibt host-neutral und sieht weiterhin nur Schedule Records mit `endpointName`, `scope`, `lane`, `priority`, `deadlineMs`, `preferIdle`, `coalesceKey` und `budgetClass`.
|
|
14
|
+
|
|
15
|
+
Seit `WP-E13-09` referenziert [RMT Production Readiness](./rmt-production-readiness.md) dieses Mapping unter `xtend.epic13.rmt-production-readiness.v1`, damit RMT-first Apps Fabric/Lane-Signale produktionsnah ingestieren koennen, ohne die RMT-Kernel-Boundary zu verletzen.
|
|
16
|
+
|
|
17
|
+
## Lane Mapping
|
|
18
|
+
|
|
19
|
+
| Fabric-Lane | RMT Schedule Lane | Grund |
|
|
20
|
+
|-------------|-------------------|-------|
|
|
21
|
+
| `user-blocking` | `user-blocking` | Eingabe, Navigation und Fokus sind kritisch |
|
|
22
|
+
| `a11y` | `user-blocking` | Screenreader- und Fokus-Signale sind user-facing; RMT hat noch keine eigene `a11y` Lane |
|
|
23
|
+
| `visible` | `visible` | sichtbare Component-Arbeit |
|
|
24
|
+
| `transition` | `transition` | Route- und UI-Uebergaenge |
|
|
25
|
+
| `idle` | `idle` | nicht sichtbare Hydration und Follow-up |
|
|
26
|
+
| `background` | `background` | best-effort Arbeit |
|
|
27
|
+
| `diagnostics` | `diagnostics` | Telemetry und Snapshots |
|
|
28
|
+
|
|
29
|
+
`a11y` bleibt also eine Fabric-Lane. Das erzeugte RMT Schedule Record traegt die RMT-Lane `user-blocking` und bewahrt `metadata.fabricLane = "a11y"`, damit Reporter und spaetere Adapter die urspruengliche Semantik sehen koennen.
|
|
30
|
+
|
|
31
|
+
## API
|
|
32
|
+
|
|
33
|
+
```js
|
|
34
|
+
const mapping = window.XTendFabricRmtLaneMapping.createFabricRmtLaneMapping();
|
|
35
|
+
|
|
36
|
+
const result = mapping.resolveFiber({
|
|
37
|
+
kind: 'component.hydrate',
|
|
38
|
+
lane: 'idle',
|
|
39
|
+
scope: 'x-alert#secondary',
|
|
40
|
+
componentRef: 'x-alert'
|
|
41
|
+
});
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Wichtige Funktionen:
|
|
45
|
+
|
|
46
|
+
| API | Zweck |
|
|
47
|
+
|-----|-------|
|
|
48
|
+
| `createFabricRmtLaneMapping(options)` | erzeugt ein Mapping-Objekt mit Lane-Map und Schedule Records |
|
|
49
|
+
| `createRmtScheduleRecords(options)` | erzeugt host-neutrale RMT Schedule Records fuer Fabric-Lanes |
|
|
50
|
+
| `resolveRmtScheduleForFiber(fiber, options)` | loest eine Fiber auf ein Schedule Record auf |
|
|
51
|
+
| `normalizeFabricLaneForRmt(lane)` | uebersetzt eine einzelne Fabric-Lane in eine RMT-Lane |
|
|
52
|
+
|
|
53
|
+
## Beispiel Schedule Records
|
|
54
|
+
|
|
55
|
+
```json
|
|
56
|
+
{
|
|
57
|
+
"schema": "xtend.fabric.rmt-lane-schedule.v1",
|
|
58
|
+
"id": "component.idle.hydrate",
|
|
59
|
+
"endpointName": "xtendrmt.component.hydrate",
|
|
60
|
+
"scope": "xtend.fabric.idle",
|
|
61
|
+
"lane": "idle",
|
|
62
|
+
"priority": 35,
|
|
63
|
+
"deadlineMs": 500,
|
|
64
|
+
"preferIdle": true,
|
|
65
|
+
"coalesceKey": "xtend.fabric.idle",
|
|
66
|
+
"budgetClass": "background",
|
|
67
|
+
"metadata": {
|
|
68
|
+
"contract": "xtend.fabric.rmt-lane-mapping.v1",
|
|
69
|
+
"fabricLane": "idle",
|
|
70
|
+
"rmtLane": "idle"
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Seit `ER-WP-20` gibt es zusaetzlich `component.lazy.hydrate` fuer unterhalb des Fold oder bei Backpressure verschobene Hydration. Die RMT-Lane bleibt `idle`; der Unterschied liegt in `scheduleRef`, Scope und Coalescing.
|
|
76
|
+
|
|
77
|
+
```json
|
|
78
|
+
{
|
|
79
|
+
"schema": "xtend.fabric.rmt-lane-schedule.v1",
|
|
80
|
+
"id": "a11y.user-blocking.announce",
|
|
81
|
+
"endpointName": "xtendrmt.a11y.announce",
|
|
82
|
+
"scope": "xtend.fabric.a11y",
|
|
83
|
+
"lane": "user-blocking",
|
|
84
|
+
"priority": 95,
|
|
85
|
+
"deadlineMs": 80,
|
|
86
|
+
"preferIdle": false,
|
|
87
|
+
"coalesceKey": "xtend.fabric.a11y.announce",
|
|
88
|
+
"budgetClass": "critical",
|
|
89
|
+
"metadata": {
|
|
90
|
+
"contract": "xtend.fabric.rmt-lane-mapping.v1",
|
|
91
|
+
"fabricLane": "a11y",
|
|
92
|
+
"rmtLane": "user-blocking",
|
|
93
|
+
"reason": "RMT schedules-domain has no dedicated a11y lane in xtend.rmt.schedules-domain.v1."
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Kernel Boundary
|
|
99
|
+
|
|
100
|
+
Das Mapping importiert keinen XTendRMT Kernel und parst keine `.rmt` Dokumente. Es kann bereits normalisierte Schedule Records aus einem Host oder Test-Fixture entgegennehmen und `scheduleRef` oder `endpointNameHint` darauf aufloesen.
|
|
101
|
+
|
|
102
|
+
Erlaubt:
|
|
103
|
+
|
|
104
|
+
- Fabric-Fiber auf RMT Schedule Records mappen
|
|
105
|
+
- generierte Schedule Records als App-/Adapter-Hints verwenden
|
|
106
|
+
- bestehende `schedules[*]` Records aus normalisierten RMT-Dokumenten referenzieren
|
|
107
|
+
- `metadata.fabricLane` fuer Diagnostics und Reporter erhalten
|
|
108
|
+
|
|
109
|
+
Nicht erlaubt:
|
|
110
|
+
|
|
111
|
+
- RMT Runtime oder Kernel in Fabric importieren
|
|
112
|
+
- `a11y` als RMT-Kernel-Lane erzwingen
|
|
113
|
+
- XTend-Komponenten im RMT Kernel ausfuehren
|
|
114
|
+
- RMT Schema-Validierung in Fabric duplizieren
|
|
115
|
+
|
|
116
|
+
## Adapter-Ingestion
|
|
117
|
+
|
|
118
|
+
Ab Epic 10 / `WP-E10-05` nutzt der produktive `xtend.component` Adapter dieselbe Semantik als Runtime-Context. Der Contract heisst `xtend.component.fabric-lane-ingestion.v2`.
|
|
119
|
+
|
|
120
|
+
Precedence im Adapter:
|
|
121
|
+
|
|
122
|
+
1. `rmt.schedule-record`
|
|
123
|
+
2. `rmt.component-metadata`
|
|
124
|
+
3. `fabric.runtime-override`
|
|
125
|
+
4. `component.static-contract`
|
|
126
|
+
5. `scaffold.blueprint-default`
|
|
127
|
+
|
|
128
|
+
Der Adapter importiert Fabric nicht in den RMT Kernel. Er loest beim Mounting und bei Hydration nur den Fabric Context auf, setzt `result.metadata.fabric` und markiert DOM-Hosts mit `data-xtend-fabric-lane`, `data-xtend-rmt-lane`, `data-xtend-fabric-fiber`, `data-xtend-fabric-source` und `data-rmt-endpoint`.
|
|
129
|
+
|
|
130
|
+
## Gates
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
node scripts/run_xtend_tests.js fabric-lane-mapping --json
|
|
134
|
+
node scripts/run_xtend_tests.js rmt-component-fabric-ingestion --json
|
|
135
|
+
node scripts/run_xtend_tests.js hydration-policy --json
|
|
136
|
+
npm run test:fabric-lanes
|
|
137
|
+
npm run test:rmt-component-fabric-ingestion
|
|
138
|
+
npm run test:hydration-policy
|
|
139
|
+
node scripts/run_xtend_tests.js references --json
|
|
140
|
+
npm test
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
`ER-WP-20` ist darauf aufgebaut und haertet Lazy/Idle/Visible Hydration Policies mit konkreten `scheduleRef`-Entscheidungen. Route Render und XRouter Navigation bleiben ueber `ER-WP-15` korrelierbar.
|