@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,60 @@
|
|
|
1
|
+
# Epic 18 RMT App Platform Release Handoff
|
|
2
|
+
|
|
3
|
+
Schema: `xtend.epic18.rmt-app-platform-release-handoff.v1`
|
|
4
|
+
|
|
5
|
+
WP-E18-13 closes Epic 18 as a release-close handoff. The vendor bugfixes are documented, the RMT App Platform has a generic fixture, and the GitHub gates run through the existing CI commands.
|
|
6
|
+
|
|
7
|
+
## Local Gate
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
node scripts/run_xtend_tests.js epic18-rmt-app-platform --json
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Package script:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npm run test:epic18-rmt-app-platform
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Gate Matrix
|
|
20
|
+
|
|
21
|
+
Bugfix line:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
node scripts/run_xtend_tests.js components surface-controller surface-manager-browser overlay-interaction-ux layout-display-media-ux epic18-vendor-bugfix-smokes browser references --json
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
RMT App Platform line:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
node scripts/run_xtend_tests.js rmt-app-platform-authoring rmt-dom-descriptor-renderer rmt-component-template-primitives rmt-state-selector-runtime rmt-action-effect-runtime rmt-event-routing-runtime rmt-surface-resource-graph-runtime rmt-app-platform-tooling rmt-app-platform-fixture rmt-vnext-compiler rmt-vnext-events rmt-vnext-surfaces rmt-vnext-security rmt-first-demo-app scaffold-rmt-build --json
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Export and pack evidence:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
node scripts/run_xtend_tests.js type-exports-rmt type-exports epic13-package-export-lock --json
|
|
37
|
+
npm run pack:dry-run
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
GitHub Actions:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
npm run test:pr:report
|
|
44
|
+
npm run test:release:full:report
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
`.github/workflows/xtend-default-gates.yml` uses these commands for pull requests, pushes, manual runs and nightly runs. `epic18-rmt-app-platform` is part of the PR fast gate; the full release gate continues to run through all registered suites.
|
|
48
|
+
|
|
49
|
+
## Release Boundary
|
|
50
|
+
|
|
51
|
+
The handoff makes Epic 18 commit-ready and CI-ready, but does not open a publish path. Public publish remains bound to release-owner acceptance, supply-chain evidence and the existing RC/release checklist.
|
|
52
|
+
|
|
53
|
+
## Artifacts
|
|
54
|
+
|
|
55
|
+
- `docs/epic18-vendor-bugfixes.md`
|
|
56
|
+
- `docs/rmt-app-platform-migration-guide.md`
|
|
57
|
+
- `docs/rmt-app-platform-fixture.md`
|
|
58
|
+
- `catalog/epic18-rmt-app-platform-release-handoff.js`
|
|
59
|
+
- `tests/platform/epic18_rmt_app_platform_release_handoff_suite.js`
|
|
60
|
+
- `development/WP-E18-13-Docs-Migration-Guide-Vendor-Rebuild-und-Release-Handoff.md`
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Epic 18 Vendor Bugfixes
|
|
2
|
+
|
|
3
|
+
This page documents the component fixes that were brought back from the Media Manager vendor version into XTend main. It is intentionally not a product guide for a specific app, but a bugfix and compatibility reference for XTend components.
|
|
4
|
+
|
|
5
|
+
## Components
|
|
6
|
+
|
|
7
|
+
| Component | Behavior |
|
|
8
|
+
|-----------|----------|
|
|
9
|
+
| `x-tooltip` | Uses a viewport-fixed overlay layer, writes position values through `--xtooltip-left` and `--xtooltip-top`, and remains within the visible area after scroll or container shifts. |
|
|
10
|
+
| `x-player` | Registers custom events only once, stays bounded inside surface containers and uses canonical `xplayer-*` events for play, pause, fullscreen, PIP, captions and mute. |
|
|
11
|
+
| `x-surface-window` | Keeps long titles, scrollbars and resize limits stable without redrawing the SurfaceManager registry. |
|
|
12
|
+
| `x-side-panel` | Keeps placement and icon controls stable and compatible with the SurfaceManager layout gates. |
|
|
13
|
+
| `x-surface-manager-controller` | Provides generic surface types for window, side panel, modal, dialog, drawer, popover and tooltip. |
|
|
14
|
+
|
|
15
|
+
## Gates
|
|
16
|
+
|
|
17
|
+
The local bugfix gate remains:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
node scripts/run_xtend_tests.js components surface-controller surface-manager-browser overlay-interaction-ux layout-display-media-ux epic18-vendor-bugfix-smokes browser references --json
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
The browser-close smoke is located at
|
|
24
|
+
`tests/browser/fixtures/epic18-vendor-bugfix-smoke.html`; the contract gate is in
|
|
25
|
+
`tests/components/epic18_vendor_bugfix_smoke_suite.js`.
|
|
26
|
+
|
|
27
|
+
## Handoff
|
|
28
|
+
|
|
29
|
+
The fixes are platform behavior. They must not remain in XTend as Media Manager-specific paths. New apps should use the generic component, surface, event and RMT app-platform contracts.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Existing Component Metadata
|
|
2
|
+
|
|
3
|
+
Contract: `xtend.epic10.existing-component-metadata.v1`
|
|
4
|
+
|
|
5
|
+
WP-E10-14 migrates existing prioritized XTend components into the RMT/Fabric metadata line. The components remain `js-legacy` for now; RMT/Fabric compatibility is described as a contract overlay in the catalog.
|
|
6
|
+
|
|
7
|
+
## Catalog
|
|
8
|
+
|
|
9
|
+
The machine-readable catalog is here:
|
|
10
|
+
|
|
11
|
+
```text
|
|
12
|
+
catalog/epic10-existing-component-metadata.js
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
The gate is:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
node scripts/run_xtend_tests.js existing-component-metadata --json
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Target Components
|
|
22
|
+
|
|
23
|
+
| Component | Focus |
|
|
24
|
+
|-----------|-------|
|
|
25
|
+
| `x-router` | XRouter adapter, route records, schedule references |
|
|
26
|
+
| `x-link` | route activation, navigation events, `aria-current` |
|
|
27
|
+
| `x-input` | form value, validation, event commands |
|
|
28
|
+
| `x-form` | form aggregation, child control discovery |
|
|
29
|
+
| `x-modal` | overlay state, focus trap, modal actions |
|
|
30
|
+
| `x-dialog` | overlay state, focus trap, size hints |
|
|
31
|
+
| `x-tabs` | tab records, keyboard selection, route panel mapping |
|
|
32
|
+
| `x-toast` | feedback status, dismissal command, timer policy |
|
|
33
|
+
| `x-alert` | feedback status, dismissal command, state sync |
|
|
34
|
+
|
|
35
|
+
## Migration Strategy
|
|
36
|
+
|
|
37
|
+
`js-legacy-contract-overlay-no-runtime-rewrite`
|
|
38
|
+
|
|
39
|
+
This means:
|
|
40
|
+
|
|
41
|
+
- no runtime rewrites for this package
|
|
42
|
+
- no big-bang TypeScript migration
|
|
43
|
+
- no new runtime dependencies
|
|
44
|
+
- local ESM artifacts remain under `components/`
|
|
45
|
+
- RMT/Fabric metadata becomes centrally gateable
|
|
46
|
+
|
|
47
|
+
## Metadata Domains
|
|
48
|
+
|
|
49
|
+
Every record contains:
|
|
50
|
+
|
|
51
|
+
- `xtend.component.contract.v2`
|
|
52
|
+
- `xtend.rmt.component-contract.v1`
|
|
53
|
+
- `xtend.component.fabric-boundary.v2`
|
|
54
|
+
- `xtend.fabric.telemetry-snapshot.v1`
|
|
55
|
+
- lane precedence
|
|
56
|
+
- a11y and performance notes
|
|
57
|
+
- paths to runtime, types, docs, fixture and component suite
|
|
58
|
+
|
|
59
|
+
## RMT Authoring
|
|
60
|
+
|
|
61
|
+
RMT can author these components as `xtend.component` records. The RMT kernel imports no XTend classes or types. DOM materialization, custom element lifecycle, Fabric execution and XRouter registration remain in the host.
|
|
62
|
+
|
|
63
|
+
Boundary: `no-rmt-kernel-import-of-xtend-types`
|
|
64
|
+
|
|
65
|
+
## Continuation
|
|
66
|
+
|
|
67
|
+
WP-E10-15 uses this metadata line for browser, a11y, performance and visual gates.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Hydration Performance Closure
|
|
2
|
+
|
|
3
|
+
- Contract: `xtend.epic13.hydration-performance-closure.v1`
|
|
4
|
+
- Decision: `xtend.epic13.hydration-performance-decision.v1`
|
|
5
|
+
- Report: `xtend.epic13.hydration-performance-closure-report.v1`
|
|
6
|
+
- Local gate: `node scripts/run_xtend_tests.js epic13-hydration-performance-closure --json`
|
|
7
|
+
|
|
8
|
+
`WP-E13-06` closes the last known-residual watchpoint from `WP-E13-05`: `xtend.component.hydrate`.
|
|
9
|
+
|
|
10
|
+
## Decision
|
|
11
|
+
|
|
12
|
+
| Measurement point | Before | Now | Result |
|
|
13
|
+
|-------------------|--------|-----|--------|
|
|
14
|
+
| `xtend.component.hydrate` | `36ms / 32ms`, `warn-not-fail` | `31ms / 32ms`, `pass` | closed without owner dependency |
|
|
15
|
+
|
|
16
|
+
The budget remains `32ms`. The baseline was calibrated below the existing budget; the quality bar was not lowered.
|
|
17
|
+
|
|
18
|
+
## Gate Behavior
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
node scripts/run_xtend_tests.js performance-regression --json
|
|
22
|
+
node scripts/run_xtend_tests.js epic13-hydration-performance-closure --json
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
The RC1 baseline expects:
|
|
26
|
+
|
|
27
|
+
- `warnCount === 0`
|
|
28
|
+
- `failCount === 0`
|
|
29
|
+
- hydration phase with at least one `pass`
|
|
30
|
+
- continued hard failure fixture for real budget violations
|
|
31
|
+
|
|
32
|
+
## Handoff
|
|
33
|
+
|
|
34
|
+
After this closure, `WP-E13-07` could prepare the [PROD Browser CSP Smokes](./prod-browser-csp-smokes.md). The current handoff goes to `WP-E13-08`, where visual screenshot/pixels are normalized as an RC1 artifact. `private-until-release-owner-acceptance` remains active.
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Hydration Policies
|
|
2
|
+
|
|
3
|
+
- Docs Contract: `xtend.docs.hydration-policies.v1`
|
|
4
|
+
- Policy Contract: `xtend.fabric.hydration-policy.v1`
|
|
5
|
+
- Decision Contract: `xtend.fabric.hydration-decision.v1`
|
|
6
|
+
- Since: `ER-WP-20`
|
|
7
|
+
|
|
8
|
+
XTend treats hydration as schedulable UI work. Components can hydrate as
|
|
9
|
+
visible, idle, or lazy work without RMT needing to know XTend components.
|
|
10
|
+
|
|
11
|
+
## Policies
|
|
12
|
+
|
|
13
|
+
| Policy | When | Lane | Schedule |
|
|
14
|
+
|--------|------|------|----------|
|
|
15
|
+
| `visible` | component is visible, focus-critical, or explicitly critical | `visible` | `component.visible.hydrate` |
|
|
16
|
+
| `idle` | non-critical default hydration | `idle` | `component.idle.hydrate` |
|
|
17
|
+
| `lazy` | `loading="lazy"`, not visible, below the fold, or under backpressure | `idle` | `component.lazy.hydrate` |
|
|
18
|
+
|
|
19
|
+
Hydration does not use the `user-blocking` lane. Focus, input, or a11y work
|
|
20
|
+
must run through dedicated fibers.
|
|
21
|
+
|
|
22
|
+
## Usage
|
|
23
|
+
|
|
24
|
+
```js
|
|
25
|
+
const decision = window.XTendFabricHydrationPolicy.resolveHydrationPolicy({
|
|
26
|
+
componentRef: 'x-gallery',
|
|
27
|
+
loading: 'lazy',
|
|
28
|
+
isVisible: false
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
console.log(decision.scheduleRef);
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
With component fiber instrumentation:
|
|
35
|
+
|
|
36
|
+
```js
|
|
37
|
+
const fabric = window.XTendFabric.createXtendFabric();
|
|
38
|
+
const instrumentation = fabric.createComponentFiberInstrumentation('x-gallery');
|
|
39
|
+
const controller = window.XTendFabricHydrationPolicy.createHydrationPolicyController('x-gallery', {
|
|
40
|
+
loading: 'lazy'
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
await controller.hydrate(instrumentation, (fiber) => hydrateGallery(fiber));
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## RMT Delegation
|
|
47
|
+
|
|
48
|
+
RMT sees only schedule records:
|
|
49
|
+
|
|
50
|
+
- `component.visible.hydrate`
|
|
51
|
+
- `component.idle.hydrate`
|
|
52
|
+
- `component.lazy.hydrate`
|
|
53
|
+
|
|
54
|
+
The endpoint remains `xtendrmt.component.hydrate`. Execution belongs to Fabric
|
|
55
|
+
or the host adapter.
|
|
56
|
+
|
|
57
|
+
## Gates
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
node scripts/run_xtend_tests.js hydration-policy --json
|
|
61
|
+
npm run test:hydration-policy
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
The gate checks:
|
|
65
|
+
|
|
66
|
+
- policy selection for `visible`, `idle`, and `lazy`
|
|
67
|
+
- backpressure deferral
|
|
68
|
+
- refusal of `user-blocking` for non-visible hydration
|
|
69
|
+
- RMT schedule delegation
|
|
70
|
+
- integration with `createComponentFiberInstrumentation`
|
|
71
|
+
|
|
72
|
+
## Handoff
|
|
73
|
+
|
|
74
|
+
`ER-WP-21` turns this into practical performance rules for component authors in
|
|
75
|
+
[Performance for Component Authors](./performance.md).
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Known Residual Triage
|
|
2
|
+
|
|
3
|
+
- Contract: `xtend.epic13.known-residual-triage.v1`
|
|
4
|
+
- Decision: `xtend.epic13.known-residual-decision.v1`
|
|
5
|
+
- Report: `xtend.epic13.known-residual-triage-report.v1`
|
|
6
|
+
- Local gate: `node scripts/run_xtend_tests.js epic13-known-residual-triage --json`
|
|
7
|
+
|
|
8
|
+
`WP-E13-05` separates the RC0 known residuals into real RC1 watchpoints and intentionally non-visual boundary contracts.
|
|
9
|
+
|
|
10
|
+
## Decisions
|
|
11
|
+
|
|
12
|
+
| Scope | RC1 decision | Meaning |
|
|
13
|
+
|-------|--------------|---------|
|
|
14
|
+
| `xstate` | `closed-as-runtime-boundary` | State adapter with lifecycle, RMT and diagnostics probe |
|
|
15
|
+
| `x-utils` | `closed-as-utility-boundary` | Utility module with typing, fixture probe and import policy |
|
|
16
|
+
| `xtend.component.hydrate` | `closed-by-wp-e13-06-owner-free` | Performance warning was closed without an owner dependency |
|
|
17
|
+
|
|
18
|
+
`private-until-release-owner-acceptance` remains active. The triage does not open publishing.
|
|
19
|
+
|
|
20
|
+
## Handoff
|
|
21
|
+
|
|
22
|
+
`WP-E13-06` closed `xtend.component.hydrate` without an owner dependency. Details are in [Hydration Performance Closure](./hydration-performance-closure.md). `WP-E13-07` prepared the [PROD Browser CSP Smokes](./prod-browser-csp-smokes.md); `WP-E13-08` can now start.
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# Manifest Import Policy
|
|
2
|
+
|
|
3
|
+
- Docs Contract: `xtend.docs.manifest-import-policy.v1`
|
|
4
|
+
- Loader Policy: `xtend.security.loader-policy.v1`
|
|
5
|
+
- Manifest Policy: `xtend.security.manifest-policy.v1`
|
|
6
|
+
- Import Policy: `xtend.security.import-policy.v1`
|
|
7
|
+
- Gate: `xtend.security.manifest-import-gate.v1`
|
|
8
|
+
|
|
9
|
+
XTend loads components through the manifest. Since `ER-WP-28`, this path is
|
|
10
|
+
explicitly secured: manifest URLs, manifest records, and dynamic module imports
|
|
11
|
+
are validated locally before the loader uses them.
|
|
12
|
+
|
|
13
|
+
## Allowed
|
|
14
|
+
|
|
15
|
+
- relative URLs such as `./xalert.js`
|
|
16
|
+
- root-relative URLs such as `/components/xrouter.js`
|
|
17
|
+
- same-origin URLs
|
|
18
|
+
- local loopback dev servers such as `http://localhost:4173/components/xmodal.js`
|
|
19
|
+
- `.json` for manifests
|
|
20
|
+
- `.js` and `.mjs` for modules
|
|
21
|
+
|
|
22
|
+
## Refused
|
|
23
|
+
|
|
24
|
+
- external CDN/remote modules
|
|
25
|
+
- external manifest URLs
|
|
26
|
+
- `javascript:`
|
|
27
|
+
- `data:` for scripts
|
|
28
|
+
- `blob:` modules
|
|
29
|
+
- encoded path traversal such as `%2e%2e`
|
|
30
|
+
- module paths without `.js` or `.mjs`
|
|
31
|
+
- manifest paths without `.json`
|
|
32
|
+
- invalid manifest keys
|
|
33
|
+
- URL-like dependency values in manifest records
|
|
34
|
+
|
|
35
|
+
## Diagnostics
|
|
36
|
+
|
|
37
|
+
The loader emits refusals as `xtend-loader-diagnostic`:
|
|
38
|
+
|
|
39
|
+
```js
|
|
40
|
+
window.addEventListener('xtend-loader-diagnostic', (event) => {
|
|
41
|
+
console.log(event.detail.code, event.detail.metadata.diagnostics);
|
|
42
|
+
});
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Stable codes:
|
|
46
|
+
|
|
47
|
+
- `xtend.security.loader.refused`
|
|
48
|
+
- `xtend.security.manifest.invalid`
|
|
49
|
+
- `xtend.security.import.refused`
|
|
50
|
+
|
|
51
|
+
## Machine-Readable Policy
|
|
52
|
+
|
|
53
|
+
```js
|
|
54
|
+
const {
|
|
55
|
+
classifyPolicyUrl,
|
|
56
|
+
normalizeManifest
|
|
57
|
+
} = require('./security/manifest-import-policy');
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
The policy lives at:
|
|
61
|
+
|
|
62
|
+
```text
|
|
63
|
+
security/manifest-import-policy.js
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Local Gates
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
node scripts/verify_manifest_import_policy.js --json
|
|
70
|
+
node scripts/run_xtend_tests.js manifest-import-policy --json
|
|
71
|
+
npm run test:manifest-policy
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
These checks are offline and do not contact external hosts.
|
|
75
|
+
|
|
76
|
+
## Related Topics
|
|
77
|
+
|
|
78
|
+
- [XTend Loader](./xtend-loader.md)
|
|
79
|
+
- [Manifest Format](./manifest.md)
|
|
80
|
+
- [Trusted DOM and Sanitizing](./trusted-dom-sanitizing.md)
|
|
81
|
+
- [Supply-Chain Gates](./supply-chain-gates.md)
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
# XTend Manifest
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
The XTend Manifest is the central JSON file that defines all available XTend
|
|
6
|
+
components and their module paths. It acts as the single source of truth for the
|
|
7
|
+
loader and the API when components are loaded dynamically and modularly.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Location and Name
|
|
12
|
+
|
|
13
|
+
- Default path: `components/manifest.json`
|
|
14
|
+
- The path can be changed when the loader is initialized.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Manifest Structure
|
|
19
|
+
|
|
20
|
+
The manifest is a plain JSON object. Most keys match the canonical tag name of
|
|
21
|
+
an XTend component; reserved bootstrap keys such as `xstate` are allowed as
|
|
22
|
+
well. Each value is a concrete ES module address.
|
|
23
|
+
|
|
24
|
+
### Example
|
|
25
|
+
|
|
26
|
+
```json
|
|
27
|
+
{
|
|
28
|
+
"xstate": "./xstate.js",
|
|
29
|
+
"x-theme": "./xtheme.js",
|
|
30
|
+
"x-button": "./xbutton.js",
|
|
31
|
+
"x-input": "./xinput.js",
|
|
32
|
+
"x-router": "./xrouter.js",
|
|
33
|
+
"x-link": "./xlink.js"
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Conventions
|
|
38
|
+
|
|
39
|
+
- Custom element tags are canonical, **lowercase, hyphenated, and start with
|
|
40
|
+
`x`** (for example `x-button`, `x-input`, `x-router`).
|
|
41
|
+
- Reserved bootstrap keys such as `xstate` are valid exceptions and are not
|
|
42
|
+
interpreted as DOM tags.
|
|
43
|
+
- Values may be **relative**, **root-relative**, or **same-origin/loopback-local
|
|
44
|
+
absolute** URLs.
|
|
45
|
+
- The loader resolves relative entries relative to the manifest URL.
|
|
46
|
+
- The default manifest path stays repo-local; CDN URLs are not the default or
|
|
47
|
+
test path.
|
|
48
|
+
- Since `ER-WP-28`, external manifest/module URLs, `javascript:`, `data:`,
|
|
49
|
+
`blob:`, path traversal, and non-JavaScript modules are refused by
|
|
50
|
+
`xtend.security.manifest-policy.v1` and
|
|
51
|
+
`xtend.security.import-policy.v1`.
|
|
52
|
+
- Comments are not allowed by the JSON standard and are invalid in a real
|
|
53
|
+
manifest.
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Required and Optional Entries
|
|
58
|
+
|
|
59
|
+
- **Required:**
|
|
60
|
+
- `xstate` as the bootstrap base module
|
|
61
|
+
- **Optional:**
|
|
62
|
+
- `x-theme` (theme engine)
|
|
63
|
+
- Additional custom components
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Extensibility
|
|
68
|
+
|
|
69
|
+
- The manifest can contain any number of components.
|
|
70
|
+
- Custom components are added by appending more key/value pairs.
|
|
71
|
+
- Experimental or beta components should use an explicit naming convention
|
|
72
|
+
such as `x-section-beta`.
|
|
73
|
+
|
|
74
|
+
## Difference from XTendRMT
|
|
75
|
+
|
|
76
|
+
The XTend Manifest describes resolvable ES module paths for XTend components.
|
|
77
|
+
It is not the same as a `.rmt` document.
|
|
78
|
+
|
|
79
|
+
| File/Format | Responsibility |
|
|
80
|
+
|--------------|----------------|
|
|
81
|
+
| `components/manifest.json` | XTend Loader and component URL resolution |
|
|
82
|
+
| `xtendrmt/rmt.schema.json` | Schema reference for RMT documents |
|
|
83
|
+
| `.rmt` | Native app DSL with `adapters`, `components`, `routes`, `schedules`, `templates` |
|
|
84
|
+
| `xtendrmt/rmt-manifest.json` | XTendRMT product manifest, entry points, and artifact parity |
|
|
85
|
+
|
|
86
|
+
RMT component records may reference an XTend Manifest for manifest lookup, but
|
|
87
|
+
the RMT kernel does not read XTend runtime code from it. Resolution belongs in
|
|
88
|
+
host adapters and the RMT vNext Component Capability Registry. The registry
|
|
89
|
+
uses the manifest as the import source, combines it with Component Contracts and
|
|
90
|
+
RMT metadata, and produces descriptor capabilities for the DOM Descriptor
|
|
91
|
+
Renderer.
|
|
92
|
+
|
|
93
|
+
Native RMT files should be served as `application/vnd.xtendrmt.rmt+json`. The
|
|
94
|
+
JSON fallback remains possible for special hosts, but it is not the recommended
|
|
95
|
+
authoring path.
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Best Practices
|
|
100
|
+
|
|
101
|
+
- The manifest is the **single source of truth** for resolvable component URLs.
|
|
102
|
+
- Keep the manifest current to avoid dead links and load failures.
|
|
103
|
+
- Production manifests should be minimized and omit unused components.
|
|
104
|
+
- `xstate` should always be present explicitly; `x-theme` follows directly
|
|
105
|
+
after it when theme features are used.
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Validation
|
|
110
|
+
|
|
111
|
+
- Before loading, the loader verifies that the manifest and all module URLs are
|
|
112
|
+
valid.
|
|
113
|
+
- Non-string values are ignored.
|
|
114
|
+
- Parsing and loading errors are written to the console log.
|
|
115
|
+
- Security refusals emit `xtend-loader-diagnostic` events with
|
|
116
|
+
`xtend.security.loader.refused`, `xtend.security.manifest.invalid`, or
|
|
117
|
+
`xtend.security.import.refused`.
|
|
118
|
+
- The local gate is `node scripts/run_xtend_tests.js manifest-import-policy --json`.
|
|
119
|
+
- After core changes, `node scripts/verify_xtend_core_contracts.js` can
|
|
120
|
+
cross-check the bootstrap contract against manifest, API, and docs.
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## Related Topics
|
|
125
|
+
|
|
126
|
+
- [XTend Loader](./xtend-loader.md)
|
|
127
|
+
- [Manifest Import Policy](./manifest-import-policy.md)
|
|
128
|
+
- [Component Development](./components.md)
|
|
129
|
+
- [RMT vNext Component Primitives and XTend UI](./rmt-vnext-component-primitives.md)
|
|
130
|
+
- [API Integration](./api.md)
|
|
131
|
+
- [XTendRMT App DSL Reference](./xtendrmt-app-dsl.md)
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
*Last updated: May 22, 2026*
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Motion and Contrast
|
|
2
|
+
|
|
3
|
+
- Contract: `xtend.docs.motion-contrast.v1`
|
|
4
|
+
- Runtime/gate contract: `xtend.a11y.motion-contrast-policy.v1`
|
|
5
|
+
- Motion contract: `xtend.a11y.motion-policy.v1`
|
|
6
|
+
- Contrast contract: `xtend.a11y.contrast-policy.v1`
|
|
7
|
+
- Gate: `node scripts/run_xtend_tests.js motion-contrast --json`
|
|
8
|
+
|
|
9
|
+
## Purpose
|
|
10
|
+
|
|
11
|
+
Motion and contrast are part of a11y-by-design in XTend. Components must respect reduced motion, forced contrast modes, visible focus and non-color status without requiring XTendRMT or a host framework to know concrete CSS details.
|
|
12
|
+
|
|
13
|
+
## Required Rules
|
|
14
|
+
|
|
15
|
+
| Area | Implementation |
|
|
16
|
+
|------|----------------|
|
|
17
|
+
| Reduced motion | `@media (prefers-reduced-motion: reduce)` disables non-essential animations and transitions |
|
|
18
|
+
| High contrast | `@media (forced-colors: active)` uses system colors such as `CanvasText`, `ButtonText`, `Highlight`, `Mark` |
|
|
19
|
+
| Focus | `:focus-visible` remains visible and uses `Highlight` in the forced-colors path |
|
|
20
|
+
| Status | error, warning, busy and active have semantics beyond color |
|
|
21
|
+
| Tokens | theme tokens must not override forced-colors when system colors are required |
|
|
22
|
+
|
|
23
|
+
## Component Contract
|
|
24
|
+
|
|
25
|
+
Relevant components declare statically:
|
|
26
|
+
|
|
27
|
+
```js
|
|
28
|
+
static get xtendMotionContrastPolicy() {
|
|
29
|
+
return {
|
|
30
|
+
schema: 'xtend.a11y.motion-contrast-policy.v1',
|
|
31
|
+
componentRef: 'x-component',
|
|
32
|
+
motion: {
|
|
33
|
+
schema: 'xtend.a11y.motion-policy.v1',
|
|
34
|
+
mediaQuery: '(prefers-reduced-motion: reduce)',
|
|
35
|
+
noMotionOnlyState: true
|
|
36
|
+
},
|
|
37
|
+
contrast: {
|
|
38
|
+
schema: 'xtend.a11y.contrast-policy.v1',
|
|
39
|
+
mediaQuery: '(forced-colors: active)',
|
|
40
|
+
focusVisible: 'required',
|
|
41
|
+
nonColorStatus: 'required'
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Scaffold
|
|
48
|
+
|
|
49
|
+
New scaffold components receive:
|
|
50
|
+
|
|
51
|
+
- `motionContrast.policy` in the a11y profile
|
|
52
|
+
- manifest key `motionContrastPolicy`
|
|
53
|
+
- docs section `Motion and Contrast Policy`
|
|
54
|
+
- fixture fields `motionContrastPolicy`, `motionMediaQuery`, `contrastMediaQuery`
|
|
55
|
+
- TypeScript type `X<Component>MotionContrastPolicy`
|
|
56
|
+
|
|
57
|
+
## Fabric and RMT
|
|
58
|
+
|
|
59
|
+
Preference signals use Fabric lane `a11y`, fiber `a11y.preference` and schedule `a11y.user-blocking.preference`. RMT remains framework-agnostic and receives only host-neutral schedule/diagnostic signals, not CSS execution.
|
|
60
|
+
|
|
61
|
+
## Local Verification
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
npm run test:motion-contrast
|
|
65
|
+
node scripts/run_xtend_tests.js motion-contrast --json
|
|
66
|
+
node scripts/run_xtend_tests.js references --json
|
|
67
|
+
```
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Package Export Lock
|
|
2
|
+
|
|
3
|
+
- Contract: `xtend.epic13.package-export-lock.v1`
|
|
4
|
+
- Report: `xtend.epic13.package-export-lock-report.v1`
|
|
5
|
+
- Surface: `xtend.epic13.package-export-surface.v1`
|
|
6
|
+
- Dry-run artifact: `xtend.epic13.package-dry-run-artifact.v1`
|
|
7
|
+
- Local gate: `node scripts/run_xtend_tests.js epic13-package-export-lock --json`
|
|
8
|
+
|
|
9
|
+
The Package Export Lock makes the RC1 package content checkable. The local gate validates `package.json#exports`, `files`, the expected package roots and the surface groups without running `npm pack`.
|
|
10
|
+
|
|
11
|
+
## Surface Groups
|
|
12
|
+
|
|
13
|
+
| Group | Purpose |
|
|
14
|
+
|-------|---------|
|
|
15
|
+
| Loader | `xtend-loader.js`, legacy stub, API, CSS and manifest |
|
|
16
|
+
| Components | manifest and component files |
|
|
17
|
+
| Fabric | Fabric runtime, RMT lane mapping and hydration policy |
|
|
18
|
+
| XTendRMT | ESM and browser runtime |
|
|
19
|
+
| Builder | Scaffold CLI, preview, typing and performance contracts |
|
|
20
|
+
| Docs | Docs app, Markdown, Parsedown/RMT shell and references |
|
|
21
|
+
| Security | manifest, Trusted DOM and supply-chain policies |
|
|
22
|
+
| Catalog | gate, handoff and epic contracts |
|
|
23
|
+
|
|
24
|
+
## Release Owner Artifact
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
npm run pack:dry-run:report
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
The script writes:
|
|
31
|
+
|
|
32
|
+
- `.xtend-test-results/xtend-pack-dry-run.json`
|
|
33
|
+
- `.xtend-test-results/xtend-package-export-surface-lock.json`
|
|
34
|
+
- `.xtend-test-results/xtend-package-export-lock-report.json`
|
|
35
|
+
|
|
36
|
+
`private-until-release-owner-acceptance` remains active. The lock only proves that package content and export surface are controlled; it does not open publishing.
|
|
37
|
+
|
|
38
|
+
## TypeExports Connection
|
|
39
|
+
|
|
40
|
+
As of `WP-TypeExports-01`, [TypeExports](./type-exports.md) uses the Package Export Lock as the source for the public export surface. The gate `node scripts/run_xtend_tests.js type-exports --json` ties the 121 expected exports to `xtend.epic13.package-export-lock.v1` through count and fingerprint and requires a type decision for new public exports. As of `WP-TypeExports-02`, `.`, `./loader` and `./legacy-loader` have the type targets `./xtend-loader.d.ts` and `./xtend-dev.d.ts`; `node scripts/run_xtend_tests.js type-exports-loader --json` checks this connection against the loader runtime. As of `WP-TypeExports-03`, `./api` has the type target `./api.d.ts`; `node scripts/run_xtend_tests.js type-exports-api --json` checks the core API namespace against `api.js`. As of `WP-TypeExports-04`, `./rmt`, `./rmt/browser`, `./rmt/dom-descriptor-renderer`, `./rmt/component-capability-registry`, `./rmt/state-selector-runtime`, `./rmt/action-effect-runtime`, `./rmt/event-routing-runtime`, `./rmt/surface-resource-graph-runtime`, `./rmt/native-shell-runtime`, `./rmt-language/app-platform-tooling` and the RMT language/tooling exports have type targets such as `./xtendrmt/rmt-core.d.ts`, `./xtendrmt/rmt-dom-descriptor-renderer.d.ts`, `./xtendrmt/rmt-state-selector-runtime.d.ts`, `./xtendrmt/rmt-action-effect-runtime.d.ts`, `./xtendrmt/rmt-event-routing-runtime.d.ts`, `./xtendrmt/rmt-surface-resource-graph-runtime.d.ts`, `./tools/rmt-language/app-platform-tooling.d.ts` and `./tools/rmt-language/rmt-tooling-public-types.d.ts`; `node scripts/run_xtend_tests.js type-exports-rmt --json` checks this connection against the RMT runtime and tooling surface. As of `WP-TypeExports-05`, Fabric/a11y/security exports have type targets such as `./fabric/xtend-fabric.d.ts` and `./fabric/xtend-policy-public-types.d.ts`; `node scripts/run_xtend_tests.js type-exports-policy --json` checks this connection against the policy surface. As of `WP-TypeExports-06`, builder exports have type targets such as `./xtend-builder/scaffold.d.ts`, `./xtend-builder/builder-public-types.d.ts` and `./xtend-builder/*.d.ts`; `node scripts/run_xtend_tests.js type-exports-builder --json` checks this connection against Scaffold, generators, Component Lab and typing contracts. As of `WP-TypeExports-07`, catalog exports have type targets such as `./catalog/epic13-package-export-lock.d.ts` and the shared `./catalog/catalog-public-types.d.ts`; `node scripts/run_xtend_tests.js type-exports-catalog --json` checks this connection against plan/report/validation catalogs. As of `WP-TypeExports-08`, design tokens and vendor facades have type targets such as `./design-tokens/xtend-design-tokens.d.ts`, `./design-tokens/xtheme-token-alias-layer.d.ts`, `./components/prism.d.ts` and `./components/turndown.d.ts`; `node scripts/run_xtend_tests.js type-exports-vendor --json` checks this connection against the utility boundaries. As of `WP-TypeExports-09`, `npm run test:type-exports:release` bundles the TypeExports gates as a release handoff and writes `.xtend-test-results/xtend-type-exports-report.json`.
|
|
41
|
+
|
|
42
|
+
## Handoff
|
|
43
|
+
|
|
44
|
+
After `WP-E13-04`, `WP-E13-05` completed the Known Residual Triage under [Known Residual Triage](./known-residual-triage.md) with `xtend.epic13.known-residual-triage.v1`. `WP-E13-06` completed the [Hydration Performance Closure](./hydration-performance-closure.md) with `xtend.epic13.hydration-performance-closure.v1`. `WP-E13-07` prepared the [PROD Browser CSP Smokes](./prod-browser-csp-smokes.md), `WP-E13-08` normalized [Visual Owner Artifacts](./visual-owner-artifacts.md), `WP-E13-09` bundled [RMT Production Readiness](./rmt-production-readiness.md), `WP-E13-10` completed [Docs RMT Production Hardening](./docs-rmt-production-hardening.md), `WP-E13-11` completed [Trusted DOM Boundary Browser Proof](./trusted-dom-boundary-browser-proof.md), `WP-E13-12` completed [RC1 Migration Notes](./rc1-migration-notes.md), `WP-E13-13` registered [RC1 Gate Matrix and CI Handoff](./rc1-gate-matrix-ci-handoff.md), `DPF-WP-02` added [Release Report and Pack Dry Run Evidence](./release-report-pack-dry-run-evidence.md) and `DPF-WP-03` added [Conditional Network Evidence CI](./conditional-network-evidence-ci.md). The current export lock expects 124 package exports including `./design-tokens/xtheme-token-alias-layer`, `./catalog/epic13-rc1-migration-notes`, `./catalog/epic13-rc1-gate-matrix-ci-handoff`, `./catalog/epic13-release-report-pack-dry-run-evidence`, `./catalog/epic13-conditional-network-evidence-ci`, `./rmt/dom-descriptor-renderer`, `./rmt/component-capability-registry`, `./rmt/state-selector-runtime`, `./rmt/action-effect-runtime`, `./rmt/event-routing-runtime`, `./rmt/surface-resource-graph-runtime`, `./rmt/native-shell-runtime`, `./rmt/node-ssr-adapter`, `./rmt-language/app-platform-tooling`, `./rmt-language/kernel-trust-authority`, `./rmt-language/kernel-security-regression`, `./catalog/epic14-rmt-tooling`, `./catalog/epic14-lsp-handoff` and the classic and vNext RMT tooling surface.
|