@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,129 @@
|
|
|
1
|
+
# Enterprise Component Flex Release Handoff
|
|
2
|
+
|
|
3
|
+
- Contract: `xtend.enterprise.component-flex-release-handoff.v1`
|
|
4
|
+
- Workpackage: `ECH-WP-12`
|
|
5
|
+
- Status: `accepted-enterprise-design-system-ready-handoff`
|
|
6
|
+
- Target: `enterprise-design-system-ready-release-candidate`
|
|
7
|
+
- Current Version: `0.1.0-rc.1`
|
|
8
|
+
- Proposed Version: `0.1.0-enterprise-design-system-rc.1`
|
|
9
|
+
- Publish Boundary: `private-until-release-owner-acceptance`
|
|
10
|
+
- Local Gate: `node scripts/run_xtend_tests.js enterprise-component-flex-release-handoff --json`
|
|
11
|
+
- Package Script: `npm run test:enterprise-component-flex-release-handoff`
|
|
12
|
+
|
|
13
|
+
## Purpose
|
|
14
|
+
|
|
15
|
+
This handoff closes the Enterprise Component flexibility and theme-hardening wave. It evaluates the SemVer impact of the new attributes, tokens, parts and docs surfaces, documents deprecated aliases, describes the migration for existing apps and names the remaining adoption risks before release-owner review.
|
|
16
|
+
|
|
17
|
+
The package is release-ready, but it is not published automatically. `package.json` has already been set to `private: false` for RC1 publish prep; publishing still requires the manual release-owner command and, if needed, conditional network evidence.
|
|
18
|
+
|
|
19
|
+
## SemVer Assessment
|
|
20
|
+
|
|
21
|
+
The hardening wave is classified as `minor-pre-1.0-additive-public-api-hardening`.
|
|
22
|
+
|
|
23
|
+
| Area | Classification | Default compatible | Migration required | Note |
|
|
24
|
+
|------|----------------|--------------------|--------------------|------|
|
|
25
|
+
| `x-header-menu-presentation-modes` | `minor-additive-public-api` | yes | no | `menu-mode`, placement, modality and sizing are additive; the default remains `drawer`. |
|
|
26
|
+
| `xtheme-token-alias-layer` | `minor-additive-token-api` | yes | no | Normalized `--xtend-*` aliases are added while legacy names remain bridged. |
|
|
27
|
+
| `icon-control-hardening` | `patch-compatible-a11y-hardening` | yes | no | Visible text glyphs were replaced by real icon controls without breaking host command intent. |
|
|
28
|
+
| `overlay-layout-form-navigation-parts` | `minor-additive-css-parts-and-tokens` | yes | no | New parts and component tokens extend skinning surfaces without removing documented defaults. |
|
|
29
|
+
| `visual-dom-snapshot-matrix` | `test-artifact-only` | yes | no | DOM baselines and Visual Quality Reports are local gates, not runtime-breaking changes. |
|
|
30
|
+
| `third-party-authoring-guide` | `docs-only-adoption-handoff` | yes | no | Corporate Design Authoring is documented as a supported override path. |
|
|
31
|
+
|
|
32
|
+
SemVer decision:
|
|
33
|
+
|
|
34
|
+
- Existing defaults remain compatible.
|
|
35
|
+
- New modes are additive features.
|
|
36
|
+
- Breaking changes: none.
|
|
37
|
+
- Public surface changes are intentional and documented: attributes, tokens, CSS parts, slots, XTheme bridges and docs gates.
|
|
38
|
+
- Proposed version: `0.1.0-enterprise-design-system-rc.1`.
|
|
39
|
+
|
|
40
|
+
## Deprecated Aliases
|
|
41
|
+
|
|
42
|
+
Deprecated aliases remain bridged for existing apps. Removal or renaming is only allowed in a future major or in an explicit migration window.
|
|
43
|
+
|
|
44
|
+
| Type | Deprecated | Replacement | Removal |
|
|
45
|
+
|------|------------|-------------|---------|
|
|
46
|
+
| CSS Token | `--xtend-glass-bg` | `--xtend-surface-overlay` | `not-before-next-major-or-explicit-migration-window` |
|
|
47
|
+
| CSS Token | `--xtend-shadow` | `--xtend-elevation-2` | `not-before-next-major-or-explicit-migration-window` |
|
|
48
|
+
| CSS Token | `--xtend-radius` | `--xtend-radius-md` | `not-before-next-major-or-explicit-migration-window` |
|
|
49
|
+
| CSS Token | `--xtend-font-family` | `--xtend-font-family-body` | `not-before-next-major-or-explicit-migration-window` |
|
|
50
|
+
| CSS Token | `--xtend-overlay-bg` | `--xtend-surface-overlay` | `not-before-next-major-or-explicit-migration-window` |
|
|
51
|
+
| CSS Token | `--xtend-border-color` | `--xtend-border-subtle` | `not-before-next-major-or-explicit-migration-window` |
|
|
52
|
+
| CSS Token | `--header-bg` | `--xtend-header-surface` | `not-before-next-major-or-explicit-migration-window` |
|
|
53
|
+
| CSS Token | `--header-fg` | `--xtend-header-text` | `not-before-next-major-or-explicit-migration-window` |
|
|
54
|
+
| CSS Token | `--drawer-bg` | `--xtend-drawer-surface` | `not-before-next-major-or-explicit-migration-window` |
|
|
55
|
+
| CSS Token | `--drawer-color` | `--xtend-drawer-text` | `not-before-next-major-or-explicit-migration-window` |
|
|
56
|
+
| CSS Token | `--button-text-color` | `--xtend-button-text` | `not-before-next-major-or-explicit-migration-window` |
|
|
57
|
+
| CSS Part | `drawer` | `menu` | `not-before-next-major-or-explicit-migration-window` |
|
|
58
|
+
| CSS Part | `drawer-surface` | `menu-surface` | `not-before-next-major-or-explicit-migration-window` |
|
|
59
|
+
| Slot | `utility` | `actions` | `not-before-next-major-or-explicit-migration-window` |
|
|
60
|
+
| Density | `spacious` | `comfortable` | `normalized-at-runtime` |
|
|
61
|
+
|
|
62
|
+
## Migration Notes
|
|
63
|
+
|
|
64
|
+
| ID | Owner | Action | Risk |
|
|
65
|
+
|----|-------|--------|------|
|
|
66
|
+
| `adopt-token-alias-layer` | Design System | Map corporate tokens to `--xtend-*` aliases before overriding component internals. | Legacy token overrides can drift away from XTheme and Forced Colors. |
|
|
67
|
+
| `replace-glyph-controls-with-icons` | Component Authors | Use `x-icon`, inline SVG or registered icon packs for close, menu, disclosure and status controls. | Text-glyph controls are no longer accepted in enterprise-ready components. |
|
|
68
|
+
| `choose-xheader-menu-mode` | App Shell | Keep the default `drawer` or explicitly choose `side-panel`, `popover`, `fullscreen` or `inline-main`. | Custom CSS that assumes a hard-wired full-width drawer must move to tokens and parts. |
|
|
69
|
+
| `map-overlay-form-nav-parts` | Component Authors | Use `surface`, `backdrop`, `close`, `content`, `control`, `label`, `icon` and `nav` parts for skinning. | Shadow DOM deep selectors remain unsupported and can break on updates. |
|
|
70
|
+
| `run-visual-dom-matrix` | Quality | Run the WP-10 DOM Snapshot Matrix for header modes, themes, densities, motion and typography. | Corporate themes can pass static token checks and still lose contrast, focus or layout. |
|
|
71
|
+
| `publish-third-party-guide` | Docs | Use the WP-11 Authoring Guide as the standard onboarding path for external design systems. | Teams may otherwise fork components instead of using XTheme, XTend.css, parts, slots and icon packs. |
|
|
72
|
+
| `keep-release-owner-boundary` | Release Owner | Keep publishing blocked until owner review gates, migration notes and optional artifacts are accepted. | This handoff makes the wave release-ready, not automatically published. |
|
|
73
|
+
|
|
74
|
+
## Release Checklist
|
|
75
|
+
|
|
76
|
+
- `package-private`
|
|
77
|
+
- `all-ech-gates-green`
|
|
78
|
+
- `semver-classification-recorded`
|
|
79
|
+
- `deprecated-aliases-documented`
|
|
80
|
+
- `migration-notes-complete`
|
|
81
|
+
- `third-party-authoring-guide-linked`
|
|
82
|
+
- `visual-dom-matrix-clean`
|
|
83
|
+
- `references-clean`
|
|
84
|
+
- `release-owner-review-required`
|
|
85
|
+
- `conditional-network-evidence-if-publish`
|
|
86
|
+
|
|
87
|
+
## Adoption Risks
|
|
88
|
+
|
|
89
|
+
| ID | Severity | Mitigation |
|
|
90
|
+
|----|----------|------------|
|
|
91
|
+
| `shadow-dom-deep-selector-risk` | medium | Use CSS parts and custom properties instead of private Shadow DOM selectors. |
|
|
92
|
+
| `legacy-token-drift-risk` | medium | Map legacy tokens to normalized aliases and keep XTheme plus XTend.css synchronized. |
|
|
93
|
+
| `forced-colors-brand-risk` | high | Run forced-colors paths with `Canvas`, `CanvasText`, `Highlight` and `HighlightText`. |
|
|
94
|
+
| `visual-signature-generic-risk` | medium | Run Signature UI and Visual DOM Matrix gates when corporate palettes are applied. |
|
|
95
|
+
| `publish-boundary-risk` | high | Keep the private package boundary until release-owner acceptance. |
|
|
96
|
+
|
|
97
|
+
## Gate Matrix
|
|
98
|
+
|
|
99
|
+
Source gates:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
node scripts/run_xtend_tests.js signature-ui-visual-quality --json
|
|
103
|
+
node scripts/run_xtend_tests.js enterprise-component-flex-hardening-contract --json
|
|
104
|
+
node scripts/run_xtend_tests.js enterprise-component-style-audit --json
|
|
105
|
+
node scripts/run_xtend_tests.js xtheme-token-alias-layer --json
|
|
106
|
+
node scripts/run_xtend_tests.js enterprise-icon-control-audit --json
|
|
107
|
+
node scripts/run_xtend_tests.js xheader-menu-modes --json
|
|
108
|
+
node scripts/run_xtend_tests.js enterprise-overlay-mode-token-parity --json
|
|
109
|
+
node scripts/run_xtend_tests.js enterprise-layout-display-media-tokenization --json
|
|
110
|
+
node scripts/run_xtend_tests.js enterprise-form-control-theme-a11y --json
|
|
111
|
+
node scripts/run_xtend_tests.js enterprise-navigation-routing-state-hardening --json
|
|
112
|
+
node scripts/run_xtend_tests.js enterprise-visual-dom-snapshot-matrix --json
|
|
113
|
+
node scripts/run_xtend_tests.js enterprise-third-party-authoring-guide --json
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Release handoff gates:
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
node scripts/run_xtend_tests.js enterprise-component-flex-release-handoff --json
|
|
120
|
+
node scripts/run_xtend_tests.js component-shell-theme-matrix --json
|
|
121
|
+
node scripts/run_xtend_tests.js references --json
|
|
122
|
+
node scripts/run_xtend_tests.js design-tokens --json
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## Handoff Decision
|
|
126
|
+
|
|
127
|
+
Decision: `enterprise-design-system-ready-release-owner-review`
|
|
128
|
+
|
|
129
|
+
The next step is not another workpackage in this backlog package, but release-owner review. The publish boundary `private-until-release-owner-acceptance` remains active until the checklist has been accepted and optional network artifacts for a real publish are available.
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Epic 10 Platform Gates
|
|
2
|
+
|
|
3
|
+
Contract: `xtend.epic10.platform-gates.v1`
|
|
4
|
+
|
|
5
|
+
This document describes the gate chain from `WP-E10-15`. It bundles browser, a11y, performance and visual gates for the Epic 10 Component Platform.
|
|
6
|
+
|
|
7
|
+
## Local Gate
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
node scripts/run_xtend_tests.js epic10-platform-gates --json
|
|
11
|
+
npm run test:epic10-platform-gates
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Gate Domains
|
|
15
|
+
|
|
16
|
+
- `component-contract`: Component Contract v2 and Existing Component Metadata
|
|
17
|
+
- `rmt-first-app`: RMT-first demo app without manual shell
|
|
18
|
+
- `browser-smoke`: local browser-close fixtures
|
|
19
|
+
- `a11y`: keyboard, screenreader, reduced motion and contrast
|
|
20
|
+
- `performance`: measurements, regression and hydration policies
|
|
21
|
+
- `visual-browser-regression`: viewports, theme variants and visual states
|
|
22
|
+
- `ci-handoff`: Fast PR and release composition
|
|
23
|
+
|
|
24
|
+
## Fast PR
|
|
25
|
+
|
|
26
|
+
The Fast PR gate includes the new Epic 10 platform rules, but remains without release-only performance regression:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
node scripts/run_xtend_tests.js component-contract-v2 epic10-p0-component-wave component-lab-rmt-inspector rmt-first-demo-app existing-component-metadata browser a11y-hydration screenreader-signals motion-contrast regression-priority references --json
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
`npm run test:pr` runs this line together with core, Fabric, security and Docs RMT gates.
|
|
33
|
+
|
|
34
|
+
## Release
|
|
35
|
+
|
|
36
|
+
Release gates additionally run:
|
|
37
|
+
|
|
38
|
+
- `fabric-performance-measurements`
|
|
39
|
+
- `performance-regression`
|
|
40
|
+
- `hydration-policy`
|
|
41
|
+
|
|
42
|
+
The complete release path remains:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
npm run test:release:full
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Browser Smokes
|
|
49
|
+
|
|
50
|
+
The gate chain expects these local fixtures:
|
|
51
|
+
|
|
52
|
+
- `tests/browser/fixtures/custom-elements-smoke.html`
|
|
53
|
+
- `tests/browser/fixtures/core-flows-smoke.html`
|
|
54
|
+
- `tests/browser/fixtures/rmt-xrouter-xtend-smoke.html`
|
|
55
|
+
- `tests/browser/fixtures/rmt-first-demo-app-smoke.html`
|
|
56
|
+
- `tests/browser/fixtures/a11y-focus-keyboard-smoke.html`
|
|
57
|
+
|
|
58
|
+
CDN loads are not allowed in this line.
|
|
59
|
+
|
|
60
|
+
## Handoff
|
|
61
|
+
|
|
62
|
+
`WP-E10-15` closes the testability of the Epic 10 platform line. Since `WP-E10-16`, the closure gate `epic10-release-handoff` has been part of the Fast PR/release handoff view, so documentation, guide structure and publish boundary are checked together with the platform gates.
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# Epic 10 Release Handoff
|
|
2
|
+
|
|
3
|
+
Contract: `xtend.epic10.release-handoff.v1`
|
|
4
|
+
|
|
5
|
+
This document is the official closure and handoff point for Epic 10.
|
|
6
|
+
|
|
7
|
+
## Status
|
|
8
|
+
|
|
9
|
+
Epic 10 is complete. All 16 workpackages are `completed`.
|
|
10
|
+
|
|
11
|
+
The local gate is:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
node scripts/run_xtend_tests.js epic10-release-handoff --json
|
|
15
|
+
npm run test:epic10-release-handoff
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Canonical Guides
|
|
19
|
+
|
|
20
|
+
| Topic | Guide |
|
|
21
|
+
|-------|-------|
|
|
22
|
+
| Component Platform | [Component Platform](./component-platform.md) |
|
|
23
|
+
| TypeScript-first components | [TypeScript Components](./typescript-components.md) |
|
|
24
|
+
| RMT-first XTend apps | [RMT-first XTend Apps](./rmt-first-xtend-apps.md) |
|
|
25
|
+
| Component Lab | [Component Lab](./component-lab.md) |
|
|
26
|
+
| Existing Component Metadata | [Existing Component Metadata](./existing-component-metadata.md) |
|
|
27
|
+
| Platform Gates | [Epic 10 Platform Gates](./epic10-platform-gates.md) |
|
|
28
|
+
| Enterprise Adoption | [Enterprise Adoption](./enterprise-adoption.md) |
|
|
29
|
+
|
|
30
|
+
## Fabric Boundary
|
|
31
|
+
|
|
32
|
+
The canonical component Fabric boundary is:
|
|
33
|
+
|
|
34
|
+
```text
|
|
35
|
+
adapter-injection-via-xtend-component-resolveFabricContext
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Components receive Fabric, lane and fiber context through the `xtend.component` adapter. `window.XTendFabric` remains usable for hosts and enterprise integration, but is not the component contract. The RMT boundary remains `no-rmt-kernel-import-of-xtend-types`.
|
|
39
|
+
|
|
40
|
+
## Migration Notes
|
|
41
|
+
|
|
42
|
+
For apps and components from the state before Epic 10:
|
|
43
|
+
|
|
44
|
+
- New components are planned TypeScript-first under `src/components/<tag>/`.
|
|
45
|
+
- Runtime artifacts remain local ES modules under `components/`.
|
|
46
|
+
- `xtend-loader.js` is canonical; `xtend-dev.js` remains the legacy boundary.
|
|
47
|
+
- Complete XTend apps are described in RMT.
|
|
48
|
+
- Existing JS components are first connected through RMT/Fabric metadata overlays.
|
|
49
|
+
- Big-bang TypeScript migrations are not part of the target path.
|
|
50
|
+
- Performance, a11y and visual gates are part of the component definition.
|
|
51
|
+
- CDN paths remain removed from default, demo and test paths.
|
|
52
|
+
|
|
53
|
+
## Release Candidate Gate
|
|
54
|
+
|
|
55
|
+
Before a release candidate:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
npm run test:pr:report
|
|
59
|
+
npm run test:release:full:report
|
|
60
|
+
npm run release:report
|
|
61
|
+
npm run pack:dry-run
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Conditional network gates:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
npm audit --audit-level=moderate
|
|
68
|
+
npm sbom --sbom-format=cyclonedx --json
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Publishing remains blocked until a release owner explicitly approves `private-until-release-owner-acceptance`.
|
|
72
|
+
|
|
73
|
+
## Next-Wave Handoff
|
|
74
|
+
|
|
75
|
+
The next product wave should pick up:
|
|
76
|
+
|
|
77
|
+
- long-tail component runtime migration
|
|
78
|
+
- remaining performance profile authoring
|
|
79
|
+
- component catalog completion
|
|
80
|
+
- release candidate packaging
|
|
81
|
+
- XTendRMT upstream DSL polish
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# Epic 11 Enterprise UX Handoff
|
|
2
|
+
|
|
3
|
+
Docs contract: `xtend.epic11.enterprise-ux-handoff.v1`
|
|
4
|
+
|
|
5
|
+
Epic 11 closes the visible enterprise UX maturity of the XTend components. Shell, styling, runtime a11y, performance, component network, RMT shell authoring, Component Lab, browser smokes, theme matrix, authoring guides and long-tail migration are now connected as local gates.
|
|
6
|
+
|
|
7
|
+
## Completion Mode
|
|
8
|
+
|
|
9
|
+
```text
|
|
10
|
+
completed-with-accepted-long-tail-handoff
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
This means: the central Component UX platform is accepted. Open long-tail points continue as product handoff, not as unrecognized residual work.
|
|
14
|
+
|
|
15
|
+
## Local Gate
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
node scripts/run_xtend_tests.js epic11-enterprise-ux-handoff --json
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Historical Accepted Residuals
|
|
22
|
+
|
|
23
|
+
This table describes the state of the Epic 11 handoff. The current RC1 state is continued by [Known Residual Triage](./known-residual-triage.md).
|
|
24
|
+
|
|
25
|
+
| Component | Priority | Goal | Residual dimension |
|
|
26
|
+
|-----------|----------|------|--------------------|
|
|
27
|
+
| `xstate` | P1 | `ux-baseline-probe` | historical: a11y, performance |
|
|
28
|
+
| `x-utils` | P2 | `ux-baseline-probe` | historical: suite, fixture, types, performance |
|
|
29
|
+
|
|
30
|
+
`x-tabs` is closed by `WP-E12-02`/`WP-E12-03`. `x-theme` is closed by `WP-E12-04`/`WP-E12-05`. `x-button` is closed by `WP-E12-06`. `x-menu` is closed by `WP-E12-07` and is now `enterprise-ready`. Since `WP-E12-08`, `xstate` has suite, fixture, public types, lifecycle events, Fabric diagnostics and RMT state adapter. Since `WP-E12-09`, `x-utils` has utility contract, import policy, fixture and public types. The later [Known Residual Triage](./known-residual-triage.md) closes both scopes for RC1 as runtime and utility boundary respectively.
|
|
31
|
+
|
|
32
|
+
## Gate Chain
|
|
33
|
+
|
|
34
|
+
- `component-shell-contract`
|
|
35
|
+
- `component-styling-contract`
|
|
36
|
+
- `runtime-a11y-contract`
|
|
37
|
+
- `component-ux-performance`
|
|
38
|
+
- `component-network-contract`
|
|
39
|
+
- `rmt-shell-authoring-ux`
|
|
40
|
+
- `form-controls-ux`
|
|
41
|
+
- `feedback-status-ux`
|
|
42
|
+
- `navigation-routing-ux`
|
|
43
|
+
- `overlay-interaction-ux`
|
|
44
|
+
- `layout-display-media-ux`
|
|
45
|
+
- `component-lab-ux-inspector`
|
|
46
|
+
- `component-ux-browser-smokes`
|
|
47
|
+
- `component-shell-theme-matrix`
|
|
48
|
+
- `component-ux-authoring-docs`
|
|
49
|
+
- `component-long-tail-migration`
|
|
50
|
+
- `catalog-coverage`
|
|
51
|
+
- `regression-priority`
|
|
52
|
+
- `references`
|
|
53
|
+
|
|
54
|
+
## Release Boundary
|
|
55
|
+
|
|
56
|
+
`package.json` remains `private: true`. Publishing remains blocked until Release Owner Acceptance:
|
|
57
|
+
|
|
58
|
+
```text
|
|
59
|
+
private-until-release-owner-acceptance
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Next-Wave Handoff
|
|
63
|
+
|
|
64
|
+
- Long-tail runtime implementation
|
|
65
|
+
- Visual snapshot automation
|
|
66
|
+
- Enterprise design system token productization
|
|
67
|
+
- RMT DSL authoring polish
|
|
68
|
+
- Release candidate owner acceptance
|
|
69
|
+
|
|
70
|
+
The RMT kernel boundary remains `no-rmt-kernel-import-of-xtend-types`.
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# Epic 12 RC0 Handoff
|
|
2
|
+
|
|
3
|
+
- Contract: `xtend.epic12.rc0-handoff.v1`
|
|
4
|
+
- Report: `xtend.epic12.rc0-handoff-report.v1`
|
|
5
|
+
- Workpackage: `WP-E12-16`
|
|
6
|
+
- Local gate: `node scripts/run_xtend_tests.js epic12-rc0-handoff --json`
|
|
7
|
+
- Decision: `ready-for-release-owner-review-not-publish`
|
|
8
|
+
|
|
9
|
+
Epic 12 is complete. XTend now has a concrete RC0 path for release owner review without opening the publish boundary.
|
|
10
|
+
|
|
11
|
+
## What RC0 Contains
|
|
12
|
+
|
|
13
|
+
| Area | State |
|
|
14
|
+
|------|-------|
|
|
15
|
+
| Long-tail | `x-tabs`, `x-theme`, `x-button`, `x-menu` closed |
|
|
16
|
+
| Boundary residuals | `xstate`, `x-utils`, `xtend.component.hydrate` accepted and visible |
|
|
17
|
+
| Visual snapshot | DOM-first runner with JSON baseline |
|
|
18
|
+
| Design tokens | `--xtend-*` product token line |
|
|
19
|
+
| RMT DSL | authoring polish for shells, routes, links, slots, commands, hydration and lanes |
|
|
20
|
+
| Docs | RC0 Adoption Guide and Migration Notes current |
|
|
21
|
+
| Release gate | RC0 Gate Matrix executable locally |
|
|
22
|
+
|
|
23
|
+
## Owner Review
|
|
24
|
+
|
|
25
|
+
Before a publish decision, the release owner needs:
|
|
26
|
+
|
|
27
|
+
- Full Release Gate Report
|
|
28
|
+
- RC0 Gate Matrix Report
|
|
29
|
+
- Epic 12 RC0 Handoff Report
|
|
30
|
+
- Package Dry Run output
|
|
31
|
+
- Conditional Network Gate Status
|
|
32
|
+
- Known Residual Policy
|
|
33
|
+
- Migration Notes
|
|
34
|
+
- Publish Boundary decision
|
|
35
|
+
|
|
36
|
+
## Local Gates
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
node scripts/run_xtend_tests.js epic12-rc0-handoff --json
|
|
40
|
+
node scripts/run_xtend_tests.js epic12-docs-adoption --json
|
|
41
|
+
node scripts/run_xtend_tests.js rc0-gate-matrix --json
|
|
42
|
+
npm run test:release:full:report
|
|
43
|
+
npm run pack:dry-run
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Conditional network gates:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
npm audit --audit-level=moderate
|
|
50
|
+
npm sbom --sbom-format=cyclonedx --json
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Publish Boundary
|
|
54
|
+
|
|
55
|
+
`private-until-release-owner-approval` remains active. A green RC0 handoff means:
|
|
56
|
+
|
|
57
|
+
```text
|
|
58
|
+
ready-for-release-owner-review-not-publish
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
The next decision is `release-owner-acceptance`.
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
# Epic 18 RMT App Platform and Media Manager Vendor Upstream
|
|
2
|
+
|
|
3
|
+
- Contract: `xtend.epic18.rmt-app-platform-vendor-upstream.v1`
|
|
4
|
+
- Status: `planned`
|
|
5
|
+
- Backlog: `development/BACKLOG-EPIC-18-XTendRMT-App-Platform-und-Media-Manager-Vendor-Upstream.md`
|
|
6
|
+
- Initial Workpackage: `development/WP-E18-01-Epic-18-Scope-Vendor-Baseline-und-App-Platform-Leitplanken-finalisieren.md`
|
|
7
|
+
- Source vendor snapshot: `@ccslabs/xtend@0.1.0-rc.1`
|
|
8
|
+
- Vendor source commit: `fab0e2d1281336d1b6813217e61ee2453ede09e7`
|
|
9
|
+
- Vendor package date: `2026-05-17`
|
|
10
|
+
- Source docs:
|
|
11
|
+
- `/home/konni/Dokumente/net.ccs.cloud/media-manager/docs/xtend-component-bugfixes.md`
|
|
12
|
+
- `/home/konni/Dokumente/net.ccs.cloud/media-manager/docs/vendor-build.md`
|
|
13
|
+
- `/home/konni/Dokumente/net.ccs.cloud/media-manager/docs/architecture.md`
|
|
14
|
+
- Target: XTend main branch, source components, tests, docs, RMT/App Shell runtime and vendor build.
|
|
15
|
+
|
|
16
|
+
## Goal
|
|
17
|
+
|
|
18
|
+
Epic 18 brings the Media Manager vendor fixes back into XTend main in a controlled way and uses the Media Manager lessons learned as proof of need for a much more capable RMT App Platform. The short-term scope is vendor parity for the diverging XTend components. The strategic scope is more generic: developers should be able to model app shells, components, state, events, actions, data sources, resources, overlays and dynamic layouts natively in XTend/RMT without product-side `innerHTML` renderers, manual event delegation or custom mini-frameworks.
|
|
19
|
+
|
|
20
|
+
The Media Manager is not a product template to copy. Its surfaces and records remain example material. The target API is flexible App Platform primitives that can also build admin, content, dashboard, editor or media apps.
|
|
21
|
+
|
|
22
|
+
## Vendor Parity Finding
|
|
23
|
+
|
|
24
|
+
The comparison of XTend main against `/home/konni/Dokumente/net.ccs.cloud/media-manager/vendor/xtend` shows:
|
|
25
|
+
|
|
26
|
+
| Area | Finding |
|
|
27
|
+
|------|---------|
|
|
28
|
+
| `components/` | 5 diverging files, 241 insertions, 41 deletions |
|
|
29
|
+
| `xtend-builder/` | no functional divergence, only local `.DS_Store` |
|
|
30
|
+
| `tools/` | no functional divergence, only local `.DS_Store` |
|
|
31
|
+
| `xtendrmt/` | no functional divergence, only local `.DS_Store` |
|
|
32
|
+
| `fabric/` | identical |
|
|
33
|
+
| `a11y/` | identical |
|
|
34
|
+
| `security/` | identical |
|
|
35
|
+
| `design-tokens/` | identical |
|
|
36
|
+
| `catalog/` | identical |
|
|
37
|
+
| Top-level Loader/API/CSS | identical |
|
|
38
|
+
|
|
39
|
+
The bugfix wave can therefore stay tightly scoped: no unfocused vendor copy, but a targeted adoption of the five component deltas plus tests, documentation and release/pack gates.
|
|
40
|
+
|
|
41
|
+
## P0 Bugfix Wave
|
|
42
|
+
|
|
43
|
+
| Module | Vendor Delta | Upstream Target |
|
|
44
|
+
|--------|--------------|-----------------|
|
|
45
|
+
| `components/xtooltip.js` | Tooltip surface is positioned as `viewport-fixed-layer` instead of as a local anchor layer. Resize/scroll schedule a position update through `requestAnimationFrame`. | Tooltips in shells and surfaces must no longer be clipped by `overflow: hidden` and must not change toolbar height. |
|
|
46
|
+
| `components/xplayer.js` | Removes module-scope `this.shadowRoot`, guards `customElements.define`, introduces host/player containment, `ResizeObserver`, long-title ellipsis, visible volume overflow and canonical media events. | `x-player` stays bounded in resizable surfaces, imports cleanly as an ES module and dispatches `xplayer-play`/`xplayer-pause` from native media state transitions. |
|
|
47
|
+
| `components/xsurfacewindow.js` | Content scrolls vertically; horizontal scrolling is suppressed at the surface boundary. | Long content creates no horizontal surface scrollbars. |
|
|
48
|
+
| `components/xsidepanel.js` | Content scrolls vertically and horizontal scrolling is suppressed; collapse icon follows `placement` and `collapsed`. | Side panels keep stable bounds and correctly readable collapse signals for left, right, inline and bottom. |
|
|
49
|
+
| `components/xsurfacemanager-controller.js` | `registerSurface` preserves `bounds`, `previousBounds`, `minimized`, `maximized`, `pinned`, `collapsed`, `placement` and `mode` when re-registering. | Dynamically added surfaces must not reset runtime bounds, z-order or persistence state of existing surfaces. |
|
|
50
|
+
|
|
51
|
+
## P0 Acceptance Tests
|
|
52
|
+
|
|
53
|
+
- Open `x-tooltip` in a toolbar inside a resizable `x-surface-window`. Expected: tooltip is above the shell, not clipped and causes no layout shift.
|
|
54
|
+
- Import `x-player` as an ES module and mount an instance. Expected: no module-scope error, `customElements.define` is idempotent, native `title` attributes are removed only after Shadow DOM setup.
|
|
55
|
+
- Test `x-player` with `width="100%" height="100%"` in a resizable `x-surface-window`. Expected: host, `.player`, media element, title line, controls and volume slider stay inside the surface.
|
|
56
|
+
- Start `x-player` by button, keyboard and `xstate.set("xplayer-state-<id>", { playing: true })`. Expected: exactly one `xplayer-play` after real media start; `xplayer-pause` comes from the native `pause` event.
|
|
57
|
+
- Render long unbroken content in `x-surface-window` and `x-side-panel`. Expected: no horizontal surface scrollbar; content must wrap, truncate or clip itself.
|
|
58
|
+
- Move/resize a surface, then dynamically slot a second surface into `x-surface-manager`. Expected: the first surface keeps bounds, status, `active/zIndex`, minimize/maximize state and side-panel attributes.
|
|
59
|
+
|
|
60
|
+
## Blind Spots from the Media Manager
|
|
61
|
+
|
|
62
|
+
The Media Manager already starts shell-first through an RMT host adapter, but still has to render its actual UI imperatively in `media-manager-shell.js`. Epic 18 closes this gap not by a 1:1 port of the Media Manager surface, but through generic RMT App Platform capabilities.
|
|
63
|
+
|
|
64
|
+
### BS1 RMT Template Runtime
|
|
65
|
+
|
|
66
|
+
RMT must be able to express normal UI: components, attributes, text nodes, conditional regions, keyed lists, empty states, slots, tooltips, icons and form controls. Product code should no longer have to build HTML strings for normal app UI.
|
|
67
|
+
|
|
68
|
+
Acceptance: lists, detail areas, toolbars, feedback zones and arbitrary custom-element compositions can be described as RMT templates and executed as render units.
|
|
69
|
+
|
|
70
|
+
### BS2 Safe DOM Descriptor Renderer
|
|
71
|
+
|
|
72
|
+
The compiler needs DOM descriptors or generated render functions that work with `createElement`, `replaceChildren`, keyed diffing and safe attribute setters. Direct HTML sinks remain an explicit Trusted HTML boundary of the framework.
|
|
73
|
+
|
|
74
|
+
Acceptance: normal RMT shell templates use no product-side `root.innerHTML`, `element.innerHTML` or `template.innerHTML` writes.
|
|
75
|
+
|
|
76
|
+
### BS3 Typed State and XState Bridge
|
|
77
|
+
|
|
78
|
+
App state such as collection, filters, sorting, active selection, form values, panel states or dynamic instances becomes modelable as an RMT state graph with selectors, derived values, reducers and XState bindings.
|
|
79
|
+
|
|
80
|
+
Acceptance: selection changes can synchronize attributes/ARIA state incrementally without rehydrating lists or losing scroll/focus.
|
|
81
|
+
|
|
82
|
+
### BS4 Actions, Effects and Feedback
|
|
83
|
+
|
|
84
|
+
Async flows such as load data, reindex, upload, delete, lazy imports, navigation, preview open or external component commands run through declarative RMT actions and effects with loading, success, error and feedback results.
|
|
85
|
+
|
|
86
|
+
Acceptance: `x-toast` can be preloaded as an RMT feedback surface and controlled through action results; product code no longer calls ad-hoc toast handlers for standard flows.
|
|
87
|
+
|
|
88
|
+
### BS5 DataSources and Contracts
|
|
89
|
+
|
|
90
|
+
RMT needs data sources for fixture, REST, SSR and later Electron/Node, including schema validation, normalization and pagination.
|
|
91
|
+
|
|
92
|
+
Acceptance: freely definable record contracts flow into template, selector and action types; backend endpoints remain pure data, stream and mutation adapters.
|
|
93
|
+
|
|
94
|
+
### BS6 Surface Graph Runtime
|
|
95
|
+
|
|
96
|
+
Dynamic surface instances must be expressible framework-natively as keyed surface repeaters. Minimize, restore, close, destroy, focus, persistence, bounds, placement and layout modes belong in the Surface Graph.
|
|
97
|
+
|
|
98
|
+
Acceptance: developers can create custom surface models from arbitrary records without writing product-side registry repaints or bounds recovery.
|
|
99
|
+
|
|
100
|
+
### BS7 Island Diffing and Preserve Rules
|
|
101
|
+
|
|
102
|
+
Island hydration needs structural patches. Selection changes must not rewrite lists, scroll/focus must not be lost and component Shadow DOM must not be recreated unnecessarily.
|
|
103
|
+
|
|
104
|
+
Acceptance: hydration keys distinguish structural changes from pure selection/state sync; browser smokes verify scroll and focus preservation.
|
|
105
|
+
|
|
106
|
+
### BS8 Event Routing
|
|
107
|
+
|
|
108
|
+
DOM events such as `click`, `change`, `input`, `drop`, `surface-closed`, `xplayer-play` and `lightbox-closed` run into actions through declarative RMT event bindings. Product-side `event.target.closest(...)` chains are now only host-adapter fallback.
|
|
109
|
+
|
|
110
|
+
Acceptance: RMT build diagnostics can show event source, action target and payload contract.
|
|
111
|
+
|
|
112
|
+
### BS9 Overlay and Portal Layer
|
|
113
|
+
|
|
114
|
+
`x-tooltip`, `x-toast`, `x-lightbox`, popovers, menus, dialogs and other overlays need a shared portal layer for z-index, focus, escape, pointer, scroll and clipping. This layer must be addressable through RMT.
|
|
115
|
+
|
|
116
|
+
Acceptance: the tooltip fix is the first slice; other overlays then share portal/layer policy instead of app-shell workarounds.
|
|
117
|
+
|
|
118
|
+
### BS10 Resource Lifecycle Manager
|
|
119
|
+
|
|
120
|
+
Custom Elements, Object URLs, ResizeObserver, idle handles, streams, timers and dynamic imports need declarative ownership. Destroying a surface or render unit cleans up only the resources for that instance.
|
|
121
|
+
|
|
122
|
+
Acceptance: close destroys surface DOM and instance-bound resources; minimize preserves DOM, Shadow DOM and runtime state.
|
|
123
|
+
|
|
124
|
+
### BS11 SSR and Prehydration Contract
|
|
125
|
+
|
|
126
|
+
Backend adapters should be able to provide initial records, surface snapshots and optionally prehydrated data as RMT data payloads. The client initializes the same state graph from them.
|
|
127
|
+
|
|
128
|
+
Acceptance: a generic App Platform fixture can start with fixture or SSR payload without duplicate product-side boot state.
|
|
129
|
+
|
|
130
|
+
### BS12 Diagnostics and Gates
|
|
131
|
+
|
|
132
|
+
The build must detect when product shells introduce direct `innerHTML` sinks, manual full-root repaints or non-keyed lists.
|
|
133
|
+
|
|
134
|
+
Acceptance: a gate marks normal app UI `innerHTML` writes outside the Trusted DOM boundary as regression.
|
|
135
|
+
|
|
136
|
+
## Workpackages
|
|
137
|
+
|
|
138
|
+
The operative order is in the backlog `development/BACKLOG-EPIC-18-XTendRMT-App-Platform-und-Media-Manager-Vendor-Upstream.md`. The backlog line is intentionally split in two: first concrete vendor stabilization, then RMT as a generic App Platform.
|
|
139
|
+
|
|
140
|
+
| ID | Priority | Status | Workstream | Title |
|
|
141
|
+
|----|----------|--------|------------|-------|
|
|
142
|
+
| `WP-E18-01` | P0 | completed | WS0 | Finalize Epic 18 scope, vendor baseline and App Platform guardrails |
|
|
143
|
+
| `WP-E18-02` | P0 | completed | WS1 | Vendor component bugfix backport into main |
|
|
144
|
+
| `WP-E18-03` | P0 | completed | WS1 | Build bugfix contract and browser smokes |
|
|
145
|
+
| `WP-E18-04` | P0 | completed | WS2 | Extend RMT App Platform authoring model |
|
|
146
|
+
| `WP-E18-05` | P0 | completed | WS2 | Build safe DOM descriptor renderer and no-manual-HTML gate |
|
|
147
|
+
| `WP-E18-06` | P0 | completed | WS3 | Implement component-native template primitives for RMT |
|
|
148
|
+
| `WP-E18-07` | P0 | completed | WS4 | Build typed state, selectors and XState bridge for apps |
|
|
149
|
+
| `WP-E18-08` | P1 | completed | WS5 | Connect actions, effects, data sources and resource runtime |
|
|
150
|
+
| `WP-E18-09` | P1 | completed | WS6 | Build declarative event routing and component interaction contracts |
|
|
151
|
+
| `WP-E18-10` | P1 | completed | WS7 | Harden surface, overlay, portal and resource graph generically |
|
|
152
|
+
| `WP-E18-11` | P1 | completed | WS8 | Extend scaffold, linter, LSP and diagnostics for RMT apps |
|
|
153
|
+
| `WP-E18-12` | P1 | completed | WS9 | Build generic RMT App Platform fixture |
|
|
154
|
+
| `WP-E18-13` | P2 | completed | WS10 | Docs, migration guide, vendor rebuild and release handoff |
|
|
155
|
+
|
|
156
|
+
Next startable packages:
|
|
157
|
+
|
|
158
|
+
- No internal Epic 18 workpackage is open.
|
|
159
|
+
|
|
160
|
+
Completed WP-E18-12 fixture gate:
|
|
161
|
+
`node scripts/run_xtend_tests.js rmt-app-platform-fixture --json`.
|
|
162
|
+
|
|
163
|
+
Completed WP-E18-11 tooling gate:
|
|
164
|
+
`node scripts/run_xtend_tests.js rmt-app-platform-tooling --json`.
|
|
165
|
+
|
|
166
|
+
Completed WP-E18-13 handoff gate:
|
|
167
|
+
`node scripts/run_xtend_tests.js epic18-rmt-app-platform --json`.
|
|
168
|
+
|
|
169
|
+
Release handoff schema:
|
|
170
|
+
`xtend.epic18.rmt-app-platform-release-handoff.v1`.
|
|
171
|
+
|
|
172
|
+
`WP-E18-12` does not copy a 1:1 Media Manager surface structure. The fixture proves with `generic-catalog`, `admin-queue` and `content-board` that the same RMT primitives can flexibly carry different app domains.
|
|
173
|
+
|
|
174
|
+
## Module Upgrade Matrix
|
|
175
|
+
|
|
176
|
+
| XTend Module | Upgrade in Epic 18 |
|
|
177
|
+
|--------------|--------------------|
|
|
178
|
+
| `components/` | P0 backports for Tooltip, Player, Surface Window, Side Panel and Surface Controller. |
|
|
179
|
+
| `tests/components/` | contract tests for re-register preserve, SidePanel placement icons and component-level regressions. |
|
|
180
|
+
| `tests/browser/` | browser-near fixtures for tooltip clipping, player resize, volume hover, long title, XState playback and surface scrollbar boundaries. |
|
|
181
|
+
| `docs/components/` | user-facing documentation of the new behavior guarantees and acceptance examples. |
|
|
182
|
+
| `docs/epic18-vendor-bugfixes.md` | central bugfix docs for Tooltip, Player, Surface Window, Side Panel and SurfaceManager Controller. |
|
|
183
|
+
| `docs/rmt-app-platform-migration-guide.md` | migration away from external HTML hosts toward DOM Descriptor, Actions, DataSources, Surfaces, Overlays and Resource Cleanup. |
|
|
184
|
+
| `docs/epic18-rmt-app-platform-release-handoff.md` | Epic 18 handoff with gate matrix, GitHub Actions and pack/export-lock evidence. |
|
|
185
|
+
| `xtendrmt/` | App Platform authoring model, shell render units, DOM Descriptor Renderer (`xtendrmt/rmt-dom-descriptor-renderer.js`), component-native template primitives, State Selector Runtime (`xtendrmt/rmt-state-selector-runtime.js`), Action Effect Runtime (`xtendrmt/rmt-action-effect-runtime.js`), Event Routing Runtime (`xtendrmt/rmt-event-routing-runtime.js`), Surface Resource Graph Runtime (`xtendrmt/rmt-surface-resource-graph-runtime.js`), DataSources, Events, Surfaces, Overlays, Portals and Resources; the WP12 fixture connects these building blocks end to end. |
|
|
186
|
+
| `tools/rmt-language/` | linter, diagnostics, completion and hover support for `state`, `derive`, `repeat`, `when`, `bind`, `effect`, `datasource`, `resource`, `portal`, `overlay`, component bindings and no-manual-shell gates; `tools/rmt-language/app-platform-tooling.js` provides analyzer, source maps and scaffold plan. |
|
|
187
|
+
| `fabric/` | diagnostics, lane mapping, resource lifecycle and runtime signals for render units, component instances and surface graphs. |
|
|
188
|
+
| `xtend-builder/` | use of the Epic 17 build pipeline for generic RMT app artifacts, fixture generation, browser smokes and vendor rebuild; `rmt-app-platform` produces diagnostics, source maps and build reports. |
|
|
189
|
+
| `catalog/` | Epic 18 App Platform authoring, DOM Descriptor Renderer, Component Template Primitives, State Selector, Action Effect, Event Routing, Surface Resource Graph Runtime, App Platform Tooling, App Platform Fixture and Release Handoff contracts for runtime and tooling slices. |
|
|
190
|
+
| `package.json` | add new test scripts only with implemented suites; `test:rmt-app-platform-authoring`, `test:rmt-dom-descriptor-renderer`, `test:rmt-component-template-primitives`, `test:rmt-state-selector-runtime`, `test:rmt-action-effect-runtime`, `test:rmt-event-routing-runtime`, `test:rmt-surface-resource-graph-runtime`, `test:rmt-app-platform-tooling`, `test:rmt-app-platform-fixture` and `test:epic18-rmt-app-platform` are available. |
|
|
191
|
+
|
|
192
|
+
## Planned Gate Chain
|
|
193
|
+
|
|
194
|
+
Short-term for the bugfix wave:
|
|
195
|
+
|
|
196
|
+
```bash
|
|
197
|
+
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
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
For the RMT/App Shell slice:
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
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
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
For the Epic handoff:
|
|
207
|
+
|
|
208
|
+
```bash
|
|
209
|
+
node scripts/run_xtend_tests.js epic18-rmt-app-platform --json
|
|
210
|
+
npm run test:pr:report
|
|
211
|
+
npm run test:release:full:report
|
|
212
|
+
npm run pack:dry-run
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
The Epic 18 umbrella gate is created in `WP-E18-13`. It verifies docs, migration, GitHub gate handoff, package metadata and pack/export-lock evidence.
|
|
216
|
+
|
|
217
|
+
## Definition of Done
|
|
218
|
+
|
|
219
|
+
- All five vendor component deltas have been adopted into main or deliberately rejected with technical rationale.
|
|
220
|
+
- The backports are protected by component and browser smokes.
|
|
221
|
+
- The Media Manager lessons learned have been translated into concrete workpackages as generic RMT App Platform scope.
|
|
222
|
+
- RMT can execute at least one flexible app-shell island without product-side HTML-string renderer.
|
|
223
|
+
- Dynamic surfaces, component bindings, feedback, lazy resources, data sources, event routing and resource cleanup are proven as repo-native, domain-neutral fixture or demo.
|
|
224
|
+
- Vendor build, package export lock and release handoff are updated.
|
|
225
|
+
|
|
226
|
+
## Non-Goals
|
|
227
|
+
|
|
228
|
+
- No unverified full copy from `vendor/xtend` into main.
|
|
229
|
+
- No 1:1 rebuild of the Media Manager surfaces as the XTend default app.
|
|
230
|
+
- No adoption of Media Manager-specific theme or Shadow DOM monkeypatches as global XTend defaults.
|
|
231
|
+
- No break of the boundary `no-rmt-kernel-import-of-xtend-types`.
|
|
232
|
+
- No production Electron/Node backend adapter in the XTend framework; backend remains fixture or host-adapter responsibility.
|