@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,79 @@
|
|
|
1
|
+
# RMT App Platform Tooling
|
|
2
|
+
|
|
3
|
+
- Contract: `xtend.epic18.rmt-app-platform-tooling.v1`
|
|
4
|
+
- Gate: `node scripts/run_xtend_tests.js rmt-app-platform-tooling --json`
|
|
5
|
+
- Workpackage: `WP-E18-11`
|
|
6
|
+
- Handoff: `WP-E18-12`
|
|
7
|
+
|
|
8
|
+
## Ziel
|
|
9
|
+
|
|
10
|
+
RMT App Sources sind jetzt vor der Runtime pruefbar und buildfaehig. Das
|
|
11
|
+
Tooling erzeugt Diagnostics, Source Maps und Scaffold Reports fuer generische
|
|
12
|
+
App-Platform-Primitives wie Surfaces, Overlays, Portale, Resources, Actions,
|
|
13
|
+
Events, DataSources und State.
|
|
14
|
+
|
|
15
|
+
Der Slice ist bewusst keine Media-Manager-Shell. Er liefert Werkzeuge, mit
|
|
16
|
+
denen Entwickler eigene App-Strukturen in XTend/RMT nativ anlegen koennen,
|
|
17
|
+
ohne produktseitige `innerHTML`-Renderer oder eigene Mini-Frameworks.
|
|
18
|
+
|
|
19
|
+
## Diagnostics
|
|
20
|
+
|
|
21
|
+
Der App-Platform-Linter blockiert typische spaete Runtime-Fehler bereits beim
|
|
22
|
+
Authoring:
|
|
23
|
+
|
|
24
|
+
- `rmt.app.no-manual-shell.html-sink` fuer `innerHTML`, `outerHTML`,
|
|
25
|
+
`insertAdjacentHTML` oder `document.write` in normaler App-UI.
|
|
26
|
+
- `rmt.app.unsafe-html.boundary-missing` fuer HTML-Fragmente ohne explizite
|
|
27
|
+
Trusted-DOM-Boundary.
|
|
28
|
+
- `rmt.app.repeat.key.missing` fuer wiederholte Surfaces ohne stabilen Key.
|
|
29
|
+
- `rmt.app.event.payload-contract.missing` fuer Events mit Action-Ziel ohne
|
|
30
|
+
Payload Contract.
|
|
31
|
+
- `rmt.app.resource.ownership.missing` fuer nicht klar besessene Ressourcen.
|
|
32
|
+
- `rmt.app.resource.unresolved`, `rmt.app.portal.unresolved` und
|
|
33
|
+
`rmt.app.surface.source.unresolved` fuer fehlerhafte App-Graph-Referenzen.
|
|
34
|
+
|
|
35
|
+
Die Regeln laufen als eigener App-Platform-Policy-Rule im bestehenden
|
|
36
|
+
RMT-Linter und als direkter Analyzer in
|
|
37
|
+
`./rmt-language/app-platform-tooling`.
|
|
38
|
+
|
|
39
|
+
## LSP
|
|
40
|
+
|
|
41
|
+
Completion und Hover kennen die neuen Primitives:
|
|
42
|
+
|
|
43
|
+
- Portal-IDs und Portal-Policies wie `stacked`, `toast-region` und
|
|
44
|
+
`clipping-escape`.
|
|
45
|
+
- Overlay-Kinds wie `tooltip`, `toast`, `popover`, `lightbox`, `menu` und
|
|
46
|
+
`dialog`.
|
|
47
|
+
- Resource-Kinds wie `object-url`, `stream`, `observer`, `timer` und
|
|
48
|
+
`lazy-import`.
|
|
49
|
+
- Event-Kinds und Surface-Initialstates.
|
|
50
|
+
|
|
51
|
+
Damit koennen App-Autoren RMT-Dokumente ohne Produkt-Surface-Taxonomie und ohne
|
|
52
|
+
externe Hilfslisten bearbeiten.
|
|
53
|
+
|
|
54
|
+
## Scaffold Build
|
|
55
|
+
|
|
56
|
+
Der Builder registriert den Befehl `rmt-app-platform`. Er liest eine `.rmt`
|
|
57
|
+
App Source und erzeugt unter `.xtend-build`:
|
|
58
|
+
|
|
59
|
+
- `*.app-platform-diagnostics.json`
|
|
60
|
+
- `*.app-platform-source-map.json`
|
|
61
|
+
- `*.app-platform-build.json`
|
|
62
|
+
|
|
63
|
+
Die Artefakte laufen ueber den Epic-17 WritePlan und tragen Scaffold-
|
|
64
|
+
Ownership. `--check` kann damit pruefen, ob lokale Build-Artefakte aktuell
|
|
65
|
+
sind.
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
node scripts/run_xtend_tests.js rmt-app-platform-tooling --json
|
|
69
|
+
node xtend-builder/lib/cli.js rmt-app-platform --source tests/fixtures/rmt-app-platform-tooling.rmt
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Grenzen
|
|
73
|
+
|
|
74
|
+
- Keine Produkt-Surface-Liste und kein Media-Manager-spezifischer Registry-
|
|
75
|
+
Repaint.
|
|
76
|
+
- Keine normalen UI-HTML-Sinks ausserhalb einer Trusted-DOM-Boundary.
|
|
77
|
+
- Keine Imports aus XTend-Komponenten in den RMT Kernel.
|
|
78
|
+
- Das Tooling baut Reports, Diagnostics und Source Maps; die produktnahe
|
|
79
|
+
generische App-Fixture folgt in `WP-E18-12`.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# RMT Component Template Primitives
|
|
2
|
+
|
|
3
|
+
- Contract: `xtend.epic18.rmt-component-template-primitives.v1`
|
|
4
|
+
- Fixture: `tests/fixtures/rmt-component-template-primitives.rmt`
|
|
5
|
+
- Runtime Basis: `xtendrmt/rmt-dom-descriptor-renderer.js`
|
|
6
|
+
- Local Gate: `node scripts/run_xtend_tests.js rmt-component-template-primitives --json`
|
|
7
|
+
- Workpackage: `WP-E18-06`
|
|
8
|
+
- Handoff: `WP-E18-07`
|
|
9
|
+
|
|
10
|
+
RMT kann XTend-Komponenten jetzt nativ komponieren, ohne dass Host-Apps
|
|
11
|
+
HTML-Strings zusammenbauen. Der Slice erweitert den DOM Descriptor Renderer um
|
|
12
|
+
component-nahe Primitives fuer App-Shells, Listen, Formulare, Tooltips, Icons,
|
|
13
|
+
leere Zustaende und Fehlerzustaende.
|
|
14
|
+
|
|
15
|
+
## Primitives
|
|
16
|
+
|
|
17
|
+
| Primitive | Zweck |
|
|
18
|
+
|-----------|-------|
|
|
19
|
+
| `component` | Loest eine Component-ID auf ein Custom Element wie `x-section`, `x-card`, `x-tooltip` oder beliebige Entwickler-Tags auf. |
|
|
20
|
+
| `props` | Setzt sichere DOM Properties und spiegelt primitive Werte als Attribute. |
|
|
21
|
+
| `attributes` | Setzt sichere Attribute ohne Inline-Event- oder URL-Sinks. |
|
|
22
|
+
| `parts` | Schreibt CSS Parts fuer themingfaehige Komponenten. |
|
|
23
|
+
| `slots` | Fuellt Slots mit Text, Templates, Komponenten oder Fragmenten. |
|
|
24
|
+
| `text` | Erzeugt Textknoten ueber `createTextNode`. |
|
|
25
|
+
| `when` | Rendert bedingte Teilbaeume. |
|
|
26
|
+
| `repeat` | Rendert Listen und nutzt `key` fuer stabile Knoten. |
|
|
27
|
+
| `empty` | Rendert einen expliziten leeren Zustand. |
|
|
28
|
+
| `fallback` | Rendert deklarative Ersatzinhalte. |
|
|
29
|
+
| `key` | Markiert wiederverwendbare Listenelemente mit `data-rmt-key`. |
|
|
30
|
+
| `ref` | Schreibt `data-rmt-ref` und legt die Elementreferenz in `refs` ab. |
|
|
31
|
+
| `class` | Mappt Klassen aus Strings, Arrays oder bedingten Objekten. |
|
|
32
|
+
| `style-token` | Spiegelt Design Tokens als `data-style-token-*` und `--xtend-*`. |
|
|
33
|
+
|
|
34
|
+
## Component-Familien
|
|
35
|
+
|
|
36
|
+
Die Fixture beweist generische Familien statt Produkt-Surfaces:
|
|
37
|
+
Icons, Tooltips, Form Controls (`x-input`, `x-select`, `x-checkbox`),
|
|
38
|
+
Navigation, Listen, Selection, Empty State, Error State und freie Custom
|
|
39
|
+
Elements. Die Komponenten bleiben Entwickler-definiert; RMT kennt nur
|
|
40
|
+
Descriptoren und Adapterfaehigkeiten.
|
|
41
|
+
|
|
42
|
+
## Component Capability Registry
|
|
43
|
+
|
|
44
|
+
Die vNext-Schicht fuehrt diese Primitives ueber
|
|
45
|
+
`xtendrmt/rmt-component-capability-registry.js` mit dem ganzen XTend-
|
|
46
|
+
Component-Stack zusammen. Die Registry normalisiert alle 44 public
|
|
47
|
+
Manifest-Eintraege, klassifiziert 40 renderbare UI-Komponenten und verbindet
|
|
48
|
+
Component Contracts, `xtendRmtMetadata`, `observedAttributes`, Events, Slots,
|
|
49
|
+
Parts, Form-State und Lazy Import mit den generischen DOM Descriptoren.
|
|
50
|
+
|
|
51
|
+
Damit bleiben `component`, `props`, `attributes`, `parts`, `slots`, `repeat`
|
|
52
|
+
und `key` dieselben Primitives, aber sie bekommen eine stack-weite
|
|
53
|
+
Kompatibilitaetsmatrix. Produktcode braucht keine Shadow-DOM-Patches, keine
|
|
54
|
+
privaten Component-Maps und keine komponentenspezifischen Renderer.
|
|
55
|
+
|
|
56
|
+
Details stehen in
|
|
57
|
+
[RMT vNext Component Primitives und XTend UI](./rmt-vnext-component-primitives.md).
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# RMT DOM Descriptor Renderer
|
|
2
|
+
|
|
3
|
+
- Contract: `xtend.epic18.rmt-dom-descriptor-renderer.v1`
|
|
4
|
+
- Fixture: `tests/fixtures/rmt-dom-descriptor-renderer.rmt`
|
|
5
|
+
- Runtime: `xtendrmt/rmt-dom-descriptor-renderer.js`
|
|
6
|
+
- Local Gate: `node scripts/run_xtend_tests.js rmt-dom-descriptor-renderer --json`
|
|
7
|
+
- Workpackage: `WP-E18-05`
|
|
8
|
+
|
|
9
|
+
Der Renderer fuehrt das `WP-E18-04` Authoring-Modell als generische App
|
|
10
|
+
Platform aus. Normale App-UI wird aus strukturierten Deskriptoren gebaut:
|
|
11
|
+
`createElement`, `createTextNode`, `createDocumentFragment`,
|
|
12
|
+
`replaceChildren`, sichere Attribute/Properties und keyed Child-Reuse.
|
|
13
|
+
|
|
14
|
+
## Descriptor-Regeln
|
|
15
|
+
|
|
16
|
+
| Bereich | Regel |
|
|
17
|
+
|---------|-------|
|
|
18
|
+
| Shell | Root-Render-Units verwenden `replaceChildren` und markieren den Root mit `data-rmt-rendered-shell`. |
|
|
19
|
+
| Elemente | Tags muessen einfache Custom-Element- oder HTML-Tagnamen sein. |
|
|
20
|
+
| Attribute | Inline-Handler, `srcdoc` und unsichere URL-Werte werden abgelehnt. |
|
|
21
|
+
| Properties | HTML-Sink-Properties sind fuer normale UI gesperrt. |
|
|
22
|
+
| Listen | `renderKeyed` erhaelt Knoten ueber `data-rmt-key` und patcht Attribute/Children. |
|
|
23
|
+
| Events | Events laufen ueber `addEventListener`, nicht ueber String-Attribute. |
|
|
24
|
+
| Diagnostics | Runtimefehler enthalten RMT-Source-Informationen wie `documentId`, `templateId` und `pointer`. |
|
|
25
|
+
|
|
26
|
+
## Component Registry Option
|
|
27
|
+
|
|
28
|
+
`render(...)` und `renderKeyed(...)` akzeptieren `componentRegistry`. Wenn ein
|
|
29
|
+
Descriptor `type: "component"` nutzt, normalisiert der Renderer Tag,
|
|
30
|
+
Attribute, Properties, Slots, Parts und Event-Bindings ueber die RMT vNext
|
|
31
|
+
Component Capability Registry:
|
|
32
|
+
|
|
33
|
+
```js
|
|
34
|
+
renderer.renderKeyed(root, descriptors, {
|
|
35
|
+
componentRegistry: registry,
|
|
36
|
+
dispatchEvent,
|
|
37
|
+
stateBridge
|
|
38
|
+
});
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Die Registry bindet XTend-Komponenten ueber public DOM APIs. Sie liest
|
|
42
|
+
Component Contracts und RMT-Metadaten, fuehrt lazy Import ueber Manifest-Pfade
|
|
43
|
+
aus und schreibt sichere Capability-Marker wie
|
|
44
|
+
`data-rmt-component-capability`. Der Renderer bleibt dadurch generisch: keine
|
|
45
|
+
Shadow-DOM-Patches, keine privaten Component-Maps und keine HTML-Sinks fuer
|
|
46
|
+
normale RMT-App-UI.
|
|
47
|
+
|
|
48
|
+
## Trusted Boundary
|
|
49
|
+
|
|
50
|
+
HTML-Fragmente sind kein normaler Template-Pfad. Sie duerfen nur als
|
|
51
|
+
`trusted_html` mit `xtend.rmt.trusted-dom-boundary.explicit` und einem
|
|
52
|
+
externen `trustedDomRenderer` gerendert werden. Der Standard-Renderer erzeugt
|
|
53
|
+
keine HTML-Fragmente aus Strings.
|
|
54
|
+
|
|
55
|
+
## No-Manual-HTML
|
|
56
|
+
|
|
57
|
+
Das Gate `createNoManualHtmlGate()` blockiert normale App-Shells mit
|
|
58
|
+
manuellen HTML-Sinks wie `root.innerHTML`, `element.innerHTML`,
|
|
59
|
+
`template.innerHTML`, `outerHTML`, `insertAdjacentHTML`, `document.write` und
|
|
60
|
+
`createContextualFragment`.
|
|
61
|
+
|
|
62
|
+
`WP-E18-06` und die vNext Component Capability Registry bauen auf diesem Slice
|
|
63
|
+
component-native Template-Primitives auf, ohne externe HTML-Hilfsrenderer
|
|
64
|
+
vorauszusetzen.
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# RMT DSL Authoring Polish
|
|
2
2
|
|
|
3
|
-
Der Contract `xtend.rmt.dsl-authoring-polish.v1` bereitet eine freundlichere
|
|
3
|
+
Der Contract `xtend.rmt.dsl-authoring-polish.v1` bereitet eine freundlichere
|
|
4
|
+
RMT-DSL fuer XTend Component Shells vor. Er macht RMT Authoring kuerzer, ohne
|
|
5
|
+
XTend in den RMT Kernel einzubetten.
|
|
4
6
|
|
|
5
7
|
Lokaler Gate:
|
|
6
8
|
|
|
@@ -10,7 +12,10 @@ node scripts/run_xtend_tests.js rmt-dsl-authoring-polish --json
|
|
|
10
12
|
|
|
11
13
|
## Warum dieses Paket existiert
|
|
12
14
|
|
|
13
|
-
Nach `WP-E12-12` besitzt XTend ein produktives Design-Token-Vokabular.
|
|
15
|
+
Nach `WP-E12-12` besitzt XTend ein produktives Design-Token-Vokabular.
|
|
16
|
+
`WP-E12-13` nutzt diese Tokens, damit Shells, Slots, Styles, A11y, Events,
|
|
17
|
+
Commands, Hydration, Fabric-Lanes und XRouter-Routen in RMT einfacher
|
|
18
|
+
beschrieben werden koennen.
|
|
14
19
|
|
|
15
20
|
RMT bleibt dabei host-neutral:
|
|
16
21
|
|
|
@@ -41,58 +46,71 @@ RMT bleibt dabei host-neutral:
|
|
|
41
46
|
|
|
42
47
|
## Beispiel
|
|
43
48
|
|
|
44
|
-
```
|
|
45
|
-
{
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
49
|
+
```rmt
|
|
50
|
+
template settings.shell {
|
|
51
|
+
state settings.theme type string initial "dark"
|
|
52
|
+
state settings.density type string initial "comfortable"
|
|
53
|
+
|
|
54
|
+
portal surface.root root "#settings-root" layer surface
|
|
55
|
+
|
|
56
|
+
surface settings.shell kind page component x-section {
|
|
57
|
+
portal surface.root
|
|
58
|
+
|
|
59
|
+
lane visible weight 80 {
|
|
60
|
+
hydrate settings-header {
|
|
61
|
+
slot header hydrate settings.header.template
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
hydrate feedback-toast from endpoint xtendrmt.component.hydrate {
|
|
65
|
+
slot feedback hydrate feedback.toast
|
|
66
|
+
}
|
|
52
67
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
"--xtend-surface": "var(--xtend-surface)",
|
|
59
|
-
"--xtend-color-primary": "var(--xtend-color-primary)"
|
|
68
|
+
|
|
69
|
+
lane idle weight 20 {
|
|
70
|
+
hydrate settings-shell-style from endpoint xtendrmt.component.hydrate {
|
|
71
|
+
trust boundary "xtend.security.sanitizing-boundary.v1"
|
|
72
|
+
}
|
|
60
73
|
}
|
|
61
|
-
},
|
|
62
|
-
"a11y": {
|
|
63
|
-
"role": "region",
|
|
64
|
-
"label": "Settings"
|
|
65
|
-
},
|
|
66
|
-
"hydrate": {
|
|
67
|
-
"policy": "visible",
|
|
68
|
-
"schedule": "component.visible.mount"
|
|
69
|
-
},
|
|
70
|
-
"lane": {
|
|
71
|
-
"lane": "visible",
|
|
72
|
-
"fiber": "component.render"
|
|
73
74
|
}
|
|
74
75
|
}
|
|
75
76
|
```
|
|
76
77
|
|
|
77
|
-
|
|
78
|
+
Token-Aliase bleiben Teil des Contracts: produktive Styles referenzieren
|
|
79
|
+
weiterhin stabile Custom Properties wie `--xtend-surface` und
|
|
80
|
+
`--xtend-color-primary`, waehrend vNext die Struktur, Slots und Hydration
|
|
81
|
+
beschreibt.
|
|
82
|
+
|
|
83
|
+
Der normalisierte Output wird zu `components[]`, `templates[]` und
|
|
84
|
+
`schedules[]`. RMT beschreibt die Struktur; XTend fuehrt die
|
|
85
|
+
Component-Hydration aus.
|
|
78
86
|
|
|
79
87
|
## Routing-Sugar
|
|
80
88
|
|
|
81
|
-
Routen koennen
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
"
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
89
|
+
Routen koennen authoringfreundlich als Surface-, Link- und Outlet-Struktur
|
|
90
|
+
beschrieben werden:
|
|
91
|
+
|
|
92
|
+
```rmt
|
|
93
|
+
template settings.routing {
|
|
94
|
+
portal surface.root root "#app-root" layer surface
|
|
95
|
+
|
|
96
|
+
surface settings.route kind page component x-section {
|
|
97
|
+
portal surface.root
|
|
98
|
+
|
|
99
|
+
lane visible weight 80 {
|
|
100
|
+
hydrate settings-shell from endpoint xtendrmt.route.render
|
|
101
|
+
hydrate settings-link from endpoint xtendrmt.component.hydrate
|
|
102
|
+
slot outlet hydrate primary
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
on click target settings-link -> action route.navigate {
|
|
106
|
+
payload href from "/settings"
|
|
107
|
+
}
|
|
108
|
+
}
|
|
92
109
|
}
|
|
93
110
|
```
|
|
94
111
|
|
|
95
|
-
Das wird zu `routes[]`, `components[]` und `templates[]` mit Adapter
|
|
112
|
+
Das wird zu `routes[]`, `components[]` und `templates[]` mit Adapter
|
|
113
|
+
`xtend.xrouter`. XRouter bleibt Host Adapter, nicht RMT-Kernel-Abhaengigkeit.
|
|
96
114
|
|
|
97
115
|
## Diagnostik
|
|
98
116
|
|
|
@@ -108,7 +126,8 @@ Der Polish-Plan definiert diese Diagnosecodes:
|
|
|
108
126
|
- `rmt.dsl.inline-runtime-code-refused`
|
|
109
127
|
- `rmt.dsl.kernel-boundary.refused`
|
|
110
128
|
|
|
111
|
-
Damit kann XTendRMT upstream freundlichere Parserfehler und Editor-Hints bauen,
|
|
129
|
+
Damit kann XTendRMT upstream freundlichere Parserfehler und Editor-Hints bauen,
|
|
130
|
+
ohne die XTend Runtime zu importieren.
|
|
112
131
|
|
|
113
132
|
## Artefakte
|
|
114
133
|
|
|
@@ -119,4 +138,8 @@ Damit kann XTendRMT upstream freundlichere Parserfehler und Editor-Hints bauen,
|
|
|
119
138
|
|
|
120
139
|
## RC0 Adoption Update
|
|
121
140
|
|
|
122
|
-
Seit `WP-E12-15` beschreibt der [RC0 Adoption Guide](./rc0-adoption-guide.md),
|
|
141
|
+
Seit `WP-E12-15` beschreibt der [RC0 Adoption Guide](./rc0-adoption-guide.md),
|
|
142
|
+
wie App Authors diese DSL-Polish-Schicht fuer Shell-first XTend Apps nutzen.
|
|
143
|
+
Die wichtigste Migrationsregel bleibt: RMT darf XTend-Komponenten,
|
|
144
|
+
XRouter-Routen und Content Slots konstruieren und schedulen, ohne XTend-Typen
|
|
145
|
+
in den RMT Kernel einzubetten.
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# RMT Event Routing Runtime
|
|
2
|
+
|
|
3
|
+
- Contract: `xtend.epic18.rmt-event-routing-runtime.v1`
|
|
4
|
+
- Workpackage: `WP-E18-09`
|
|
5
|
+
- Runtime: `xtendrmt/rmt-event-routing-runtime.js`
|
|
6
|
+
- Types: `xtendrmt/rmt-event-routing-runtime.d.ts`
|
|
7
|
+
- Fixture: `tests/fixtures/rmt-event-routing-runtime.rmt`
|
|
8
|
+
- Local gate: `node scripts/run_xtend_tests.js rmt-event-routing-runtime --json`
|
|
9
|
+
- Next: `WP-E18-10`
|
|
10
|
+
|
|
11
|
+
## Purpose
|
|
12
|
+
|
|
13
|
+
The Event Routing Runtime makes DOM and custom events first-class RMT app
|
|
14
|
+
platform primitives. Apps can bind events to actions declaratively, validate
|
|
15
|
+
payloads before action execution, apply governance policies and clean up
|
|
16
|
+
listeners by owner scope.
|
|
17
|
+
|
|
18
|
+
The runtime delegates execution to the Action Effect Runtime from `WP-E18-08`.
|
|
19
|
+
It does not create a second action framework and does not import XTend UI
|
|
20
|
+
components.
|
|
21
|
+
|
|
22
|
+
## Event Bindings
|
|
23
|
+
|
|
24
|
+
An event binding can declare:
|
|
25
|
+
|
|
26
|
+
- `event`
|
|
27
|
+
- `target`
|
|
28
|
+
- `component`
|
|
29
|
+
- `owner`
|
|
30
|
+
- `action`
|
|
31
|
+
- `actionMode`
|
|
32
|
+
- `payload`
|
|
33
|
+
- `payloadContract`
|
|
34
|
+
- `governance`
|
|
35
|
+
- `condition`
|
|
36
|
+
|
|
37
|
+
Targets are resolved through explicit refs, a passed `targets` map, a custom
|
|
38
|
+
target resolver or a DOM query from a provided root. Product-local
|
|
39
|
+
`event.target.closest(...)` delegation chains are not required for normal app
|
|
40
|
+
flows.
|
|
41
|
+
|
|
42
|
+
## Payload Contracts
|
|
43
|
+
|
|
44
|
+
Payloads are built from event data with expressions such as:
|
|
45
|
+
|
|
46
|
+
- `$event.target.value`
|
|
47
|
+
- `$detail.id`
|
|
48
|
+
- `$target.dataset.id`
|
|
49
|
+
- `$source.dataset.path`
|
|
50
|
+
|
|
51
|
+
Contracts use a small structural shape:
|
|
52
|
+
|
|
53
|
+
```json
|
|
54
|
+
{
|
|
55
|
+
"type": "object",
|
|
56
|
+
"required": ["id"],
|
|
57
|
+
"properties": {
|
|
58
|
+
"id": "string"
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Invalid payloads are blocked before the action runtime is called and emit
|
|
64
|
+
`rmt.event.payload_contract.invalid` diagnostics.
|
|
65
|
+
|
|
66
|
+
## Event Governance
|
|
67
|
+
|
|
68
|
+
Supported policies:
|
|
69
|
+
|
|
70
|
+
- `preventDefault`
|
|
71
|
+
- `stopPropagation`
|
|
72
|
+
- `stopImmediatePropagation`
|
|
73
|
+
- `capture`
|
|
74
|
+
- `passive`
|
|
75
|
+
- `once`
|
|
76
|
+
- `retarget`
|
|
77
|
+
|
|
78
|
+
Retargeting can use `target`, `current-target` or `composed-path`. This keeps
|
|
79
|
+
component interaction explicit without product-specific DOM walking.
|
|
80
|
+
|
|
81
|
+
## Ownership
|
|
82
|
+
|
|
83
|
+
`attach()` registers listeners and records their owner. `detachOwner(ownerId)`
|
|
84
|
+
removes only the listeners for that scope, while `detachAll()` removes the
|
|
85
|
+
remaining listeners. This is the bridge to the surface and resource lifecycle
|
|
86
|
+
work in `WP-E18-10`.
|
|
87
|
+
|
|
88
|
+
## Diagnostics
|
|
89
|
+
|
|
90
|
+
Diagnostics use `xtend.epic18.rmt-event-routing-diagnostic.v1` on
|
|
91
|
+
`rmt.app_platform.event_routing`. Route diagnostics include event id, component,
|
|
92
|
+
payload and action target so build and runtime reports can show why a user
|
|
93
|
+
interaction did or did not execute.
|
|
94
|
+
|
|
95
|
+
## Handoff
|
|
96
|
+
|
|
97
|
+
`WP-E18-10` can now harden surface, overlay, portal and resource graphs using
|
|
98
|
+
owner-scoped events plus the resource ownership model from `WP-E18-08`.
|
|
@@ -6,7 +6,7 @@ Die RMT-first Demo-App zeigt den Zielpfad fuer Epic 10: Eine XTend App wird nich
|
|
|
6
6
|
|
|
7
7
|
## Startpunkt
|
|
8
8
|
|
|
9
|
-
- Demo: `
|
|
9
|
+
- Demo / Browser Smoke: `tests/browser/fixtures/rmt-first-demo-app-smoke.html`
|
|
10
10
|
- RMT Document: `xtendrmt/rmt-first-demo-app.rmt`
|
|
11
11
|
- Runtime: `xtendrmt/rmt-first-demo-app.js`
|
|
12
12
|
- Browser Smoke: `tests/browser/fixtures/rmt-first-demo-app-smoke.html`
|
|
@@ -17,7 +17,7 @@ Die Hostseite enthaelt nur den RMT Root:
|
|
|
17
17
|
<div
|
|
18
18
|
id="rmt-first-demo-root"
|
|
19
19
|
data-rmt-host="rmt-first-demo"
|
|
20
|
-
data-rmt-document-src="xtendrmt/rmt-first-demo-app.rmt"></div>
|
|
20
|
+
data-rmt-document-src="/xtendrmt/rmt-first-demo-app.rmt"></div>
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
Die Shell selbst kommt aus `app.shell.template`.
|
|
@@ -2,7 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
Docs Contract: `xtend.docs.rmt-first-xtend-apps.v1`
|
|
4
4
|
|
|
5
|
-
Dieser Guide beschreibt den Zielpfad aus Epic 10: Eine vollstaendige XTend App
|
|
5
|
+
Dieser Guide beschreibt den Zielpfad aus Epic 10: Eine vollstaendige XTend App
|
|
6
|
+
wird als RMT-vNext-Dokument beschrieben. XTend liefert lokale Web Components,
|
|
7
|
+
RMT liefert Shell, Routes, Templates, Components, Schedules, Hydration
|
|
8
|
+
Policies, Fabric-Lanes und Diagnostics.
|
|
6
9
|
|
|
7
10
|
Der zugrunde liegende Authoring Contract ist:
|
|
8
11
|
|
|
@@ -12,12 +15,13 @@ xtend.rmt.first-class-app-authoring.v1
|
|
|
12
15
|
|
|
13
16
|
## Grundregeln
|
|
14
17
|
|
|
15
|
-
- RMT ist App-Authoring-Modell.
|
|
16
|
-
- XTend-Komponenten
|
|
18
|
+
- RMT vNext ist App-Authoring-Modell.
|
|
19
|
+
- XTend-Komponenten werden ueber Surfaces mit `component x-*` beschrieben und
|
|
20
|
+
in `xtend.component` Records kompiliert.
|
|
17
21
|
- XRouter wird ueber `xtend.xrouter` angebunden.
|
|
18
|
-
- Templates nutzen bevorzugt `dom_descriptor
|
|
19
|
-
- Event Bindings laufen als `
|
|
20
|
-
- Fabric-, Lane- und Fiber-Hints
|
|
22
|
+
- Templates nutzen bevorzugt `dom_descriptor` als generierten Output.
|
|
23
|
+
- Event Bindings laufen als `on ... -> action ...`.
|
|
24
|
+
- Fabric-, Lane- und Fiber-Hints kommen aus `lane`- und Lifecycle-Klauseln.
|
|
21
25
|
- Der RMT Kernel importiert keine XTend-Klassen oder XTend-Typen.
|
|
22
26
|
|
|
23
27
|
Die Boundary bleibt:
|
|
@@ -28,44 +32,42 @@ no-rmt-kernel-import-of-xtend-types
|
|
|
28
32
|
|
|
29
33
|
## Minimalstruktur
|
|
30
34
|
|
|
31
|
-
```
|
|
32
|
-
{
|
|
33
|
-
"
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
35
|
+
```rmt
|
|
36
|
+
template settings.app {
|
|
37
|
+
state settings.status type string initial "ready"
|
|
38
|
+
|
|
39
|
+
selector settings.feedback from state settings.status {
|
|
40
|
+
output StatusView
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
action settings.refresh {
|
|
44
|
+
reduce state.settings.status = "refreshing"
|
|
45
|
+
emit settings.refresh.requested with action settings.refresh
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
portal surface.root root "#app-root" layer surface
|
|
49
|
+
|
|
50
|
+
surface settings.status kind card component x-status {
|
|
51
|
+
source selector settings.feedback
|
|
52
|
+
portal surface.root
|
|
53
|
+
|
|
54
|
+
lane visible weight 80 {
|
|
55
|
+
mount x-status
|
|
56
|
+
hydrate settings-status from selector settings.feedback
|
|
52
57
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
],
|
|
57
|
-
"templates": [
|
|
58
|
-
{
|
|
59
|
-
"id": "settings.page",
|
|
60
|
-
"mode": "dom_descriptor",
|
|
61
|
-
"children": [
|
|
62
|
-
{ "component": "settings.status" }
|
|
63
|
-
]
|
|
58
|
+
|
|
59
|
+
on click target refresh-button -> action settings.refresh {
|
|
60
|
+
payload source from target.dataset.action
|
|
64
61
|
}
|
|
65
|
-
|
|
62
|
+
}
|
|
66
63
|
}
|
|
67
64
|
```
|
|
68
65
|
|
|
66
|
+
Der Compiler erzeugt daraus `xtend.component`, `xtend.xrouter`,
|
|
67
|
+
`rmt.state-scheduler-diagnostics`, `dom_descriptor` Templates und
|
|
68
|
+
Schedule-/Lane-Records. Diese JSON-Records sind Runtime-Mirror, nicht der
|
|
69
|
+
primaere Authoring-Pfad.
|
|
70
|
+
|
|
69
71
|
## Referenzpfade
|
|
70
72
|
|
|
71
73
|
- Contract: `development/XTend-RMT-First-Class-App-Authoring.md`
|
|
@@ -77,25 +79,47 @@ no-rmt-kernel-import-of-xtend-types
|
|
|
77
79
|
|
|
78
80
|
## Fabric und Telemetry
|
|
79
81
|
|
|
80
|
-
Komponenten erhalten Fabric-Kontext ueber Adapter Injection. Die kanonische
|
|
82
|
+
Komponenten erhalten Fabric-Kontext ueber Adapter Injection. Die kanonische
|
|
83
|
+
Boundary ist:
|
|
81
84
|
|
|
82
85
|
```text
|
|
83
86
|
adapter-injection-via-xtend-component-resolveFabricContext
|
|
84
87
|
```
|
|
85
88
|
|
|
86
|
-
`window.XTendFabric` kann durch Hosts genutzt werden, ist aber nicht die
|
|
89
|
+
`window.XTendFabric` kann durch Hosts genutzt werden, ist aber nicht die
|
|
90
|
+
Contract-Oberflaeche einer Komponente.
|
|
87
91
|
|
|
88
92
|
## Release-Handoff
|
|
89
93
|
|
|
90
|
-
Der Abschluss von Epic 10 wird in [Epic 10 Release
|
|
91
|
-
|
|
92
|
-
|
|
94
|
+
Der Abschluss von Epic 10 wird in [Epic 10 Release
|
|
95
|
+
Handoff](./epic10-release-handoff.md) dokumentiert. Die dortige Gate-Kette
|
|
96
|
+
entscheidet, ob ein RMT-first XTend App-Pfad releasefaehig genug fuer einen
|
|
97
|
+
Kandidaten ist.
|
|
98
|
+
|
|
99
|
+
Seit `WP-E13-09` buendelt [RMT Production
|
|
100
|
+
Readiness](./rmt-production-readiness.md) diesen Pfad unter
|
|
101
|
+
`xtend.epic13.rmt-production-readiness.v1`: Shell-first App Shell, Routing,
|
|
102
|
+
Components, Fabric/Lanes, Lifecycle Telemetry, Diagnostics und Artifact Parity
|
|
103
|
+
sind als RC1-Gate verbunden. `WP-E13-10` hat [Docs RMT Production
|
|
104
|
+
Hardening](./docs-rmt-production-hardening.md) abgeschlossen; `WP-E13-11` hat
|
|
105
|
+
[Trusted DOM Boundary Browser Proof](./trusted-dom-boundary-browser-proof.md)
|
|
106
|
+
und `xtend.epic13.trusted-dom-boundary.v1` abgeschlossen. `WP-E13-12` hat [RC1
|
|
107
|
+
Migration Notes](./rc1-migration-notes.md) und
|
|
108
|
+
`xtend.epic13.rc1-migration-notes-semver.v1` abgeschlossen. `WP-E13-13` hat
|
|
109
|
+
[RC1 Gate Matrix und CI-Handoff](./rc1-gate-matrix-ci-handoff.md) und
|
|
110
|
+
`xtend.epic13.rc1-gate-matrix-ci-handoff.v1` abgeschlossen.
|
|
93
111
|
|
|
94
112
|
## Component UX Authoring
|
|
95
113
|
|
|
96
|
-
Seit `WP-E11-16` ergaenzt [Component UX App Authoring](./component-ux-app-authoring.md)
|
|
114
|
+
Seit `WP-E11-16` ergaenzt [Component UX App Authoring](./component-ux-app-authoring.md)
|
|
115
|
+
diesen Guide um sichtbare UX-Regeln fuer RMT-first Apps. Dazu gehoeren Theme,
|
|
116
|
+
Motion, Density, Viewports, Browser-Smokes und die Component Shell Theme Matrix
|
|
117
|
+
`xtend.epic11.component-shell-theme-matrix.v1`.
|
|
97
118
|
|
|
98
|
-
Seit `WP-E11-17` beschreibt [Component Long-Tail
|
|
119
|
+
Seit `WP-E11-17` beschreibt [Component Long-Tail
|
|
120
|
+
Migration](./component-long-tail-migration.md), welche Legacy- und
|
|
121
|
+
Infrastrukturkomponenten zuerst fuer RMT-first App-Kompatibilitaet
|
|
122
|
+
nachgehaertet werden.
|
|
99
123
|
|
|
100
124
|
Der lokale Docs-Gate lautet:
|
|
101
125
|
|