@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
|
@@ -37,8 +37,8 @@ Das Script schreibt:
|
|
|
37
37
|
|
|
38
38
|
## TypeExports Anschluss
|
|
39
39
|
|
|
40
|
-
Ab `WP-TypeExports-01` nutzt [TypeExports](./type-exports.md) den Package Export Lock als Quelle fuer die Public Export Surface. Der Gate `node scripts/run_xtend_tests.js type-exports --json` koppelt die
|
|
40
|
+
Ab `WP-TypeExports-01` nutzt [TypeExports](./type-exports.md) den Package Export Lock als Quelle fuer die Public Export Surface. Der Gate `node scripts/run_xtend_tests.js type-exports --json` koppelt die 124 erwarteten Exports ueber Count und Fingerprint an `xtend.epic13.package-export-lock.v1` und erzwingt fuer neue Public Exports eine Type-Entscheidung. Ab `WP-TypeExports-02` besitzen `.`, `./loader` und `./legacy-loader` die Type-Ziele `./xtend-loader.d.ts` und `./xtend-dev.d.ts`; `node scripts/run_xtend_tests.js type-exports-loader --json` prueft diesen Anschluss gegen die Loader-Runtime. Ab `WP-TypeExports-03` besitzt `./api` das Type-Ziel `./api.d.ts`; `node scripts/run_xtend_tests.js type-exports-api --json` prueft den Core-API-Namespace gegen `api.js`. Ab `WP-TypeExports-04` besitzen `./rmt`, `./rmt/browser`, `./rmt/dom-descriptor-renderer`, `./rmt/component-capability-registry`, `./rmt/state-selector-runtime`, `./rmt/action-effect-runtime`, `./rmt/event-routing-runtime`, `./rmt/surface-resource-graph-runtime`, `./rmt/native-shell-runtime`, `./rmt/node-ssr-adapter`, `./rmt-language/app-platform-tooling` und die RMT-Language-/Tooling-Exports Type-Ziele wie `./xtendrmt/rmt-core.d.ts`, `./xtendrmt/rmt-dom-descriptor-renderer.d.ts`, `./xtendrmt/rmt-component-capability-registry.d.ts`, `./xtendrmt/rmt-state-selector-runtime.d.ts`, `./xtendrmt/rmt-action-effect-runtime.d.ts`, `./xtendrmt/rmt-event-routing-runtime.d.ts`, `./xtendrmt/rmt-surface-resource-graph-runtime.d.ts`, `./xtendrmt/rmt-native-shell-runtime.d.ts`, `./xtendrmt/rmt-node-ssr-adapter.d.ts`, `./tools/rmt-language/app-platform-tooling.d.ts` und `./tools/rmt-language/rmt-tooling-public-types.d.ts`; `node scripts/run_xtend_tests.js type-exports-rmt --json` prueft diesen Anschluss gegen die RMT Runtime- und Tooling-Surface. Ab `WP-TypeExports-05` besitzen Fabric/A11y/Security Exports Type-Ziele wie `./fabric/xtend-fabric.d.ts` und `./fabric/xtend-policy-public-types.d.ts`; `node scripts/run_xtend_tests.js type-exports-policy --json` prueft diesen Anschluss gegen die Policy-Surface. Ab `WP-TypeExports-06` besitzen Builder-Exports Type-Ziele wie `./xtend-builder/scaffold.d.ts`, `./xtend-builder/builder-public-types.d.ts` und `./xtend-builder/*.d.ts`; `node scripts/run_xtend_tests.js type-exports-builder --json` prueft diesen Anschluss gegen Scaffold, Generatoren, Component Lab und Typing Contracts. Ab `WP-TypeExports-07` besitzen Catalog-Exports Type-Ziele wie `./catalog/epic13-package-export-lock.d.ts` und das gemeinsame `./catalog/catalog-public-types.d.ts`; `node scripts/run_xtend_tests.js type-exports-catalog --json` prueft diesen Anschluss gegen Plan-/Report-/Validation-Catalogs. Ab `WP-TypeExports-08` besitzen Design Tokens und Vendor-Facades Type-Ziele wie `./design-tokens/xtend-design-tokens.d.ts`, `./design-tokens/xtheme-token-alias-layer.d.ts`, `./components/prism.d.ts` und `./components/turndown.d.ts`; `node scripts/run_xtend_tests.js type-exports-vendor --json` prueft diesen Anschluss gegen die Utility-Grenzen. Ab `WP-TypeExports-09` buendelt `npm run test:type-exports:release` die TypeExports-Gates als Release-Handoff und schreibt `.xtend-test-results/xtend-type-exports-report.json`.
|
|
41
41
|
|
|
42
42
|
## Handoff
|
|
43
43
|
|
|
44
|
-
Nach `WP-E13-04` hat `WP-E13-05` die Known Residual Triage unter [Known Residual Triage](./known-residual-triage.md) mit `xtend.epic13.known-residual-triage.v1` abgeschlossen. `WP-E13-06` hat die [Hydration Performance Closure](./hydration-performance-closure.md) mit `xtend.epic13.hydration-performance-closure.v1` abgeschlossen. `WP-E13-07` hat die [PROD Browser CSP Smokes](./prod-browser-csp-smokes.md) vorbereitet, `WP-E13-08` hat [Visual Owner Artifacts](./visual-owner-artifacts.md) normalisiert, `WP-E13-09` hat [RMT Production Readiness](./rmt-production-readiness.md) gebuendelt, `WP-E13-10` hat [Docs RMT Production Hardening](./docs-rmt-production-hardening.md) abgeschlossen, `WP-E13-11` hat [Trusted DOM Boundary Browser Proof](./trusted-dom-boundary-browser-proof.md) abgeschlossen, `WP-E13-12` hat [RC1 Migration Notes](./rc1-migration-notes.md) abgeschlossen, `WP-E13-13` hat [RC1 Gate Matrix und CI-Handoff](./rc1-gate-matrix-ci-handoff.md) registriert, `DPF-WP-02` hat [Release Report und Pack Dry Run Evidence](./release-report-pack-dry-run-evidence.md) nachgezogen und `DPF-WP-03` hat [Conditional Network Evidence CI](./conditional-network-evidence-ci.md) nachgezogen. Der aktuelle Export Lock erwartet
|
|
44
|
+
Nach `WP-E13-04` hat `WP-E13-05` die Known Residual Triage unter [Known Residual Triage](./known-residual-triage.md) mit `xtend.epic13.known-residual-triage.v1` abgeschlossen. `WP-E13-06` hat die [Hydration Performance Closure](./hydration-performance-closure.md) mit `xtend.epic13.hydration-performance-closure.v1` abgeschlossen. `WP-E13-07` hat die [PROD Browser CSP Smokes](./prod-browser-csp-smokes.md) vorbereitet, `WP-E13-08` hat [Visual Owner Artifacts](./visual-owner-artifacts.md) normalisiert, `WP-E13-09` hat [RMT Production Readiness](./rmt-production-readiness.md) gebuendelt, `WP-E13-10` hat [Docs RMT Production Hardening](./docs-rmt-production-hardening.md) abgeschlossen, `WP-E13-11` hat [Trusted DOM Boundary Browser Proof](./trusted-dom-boundary-browser-proof.md) abgeschlossen, `WP-E13-12` hat [RC1 Migration Notes](./rc1-migration-notes.md) abgeschlossen, `WP-E13-13` hat [RC1 Gate Matrix und CI-Handoff](./rc1-gate-matrix-ci-handoff.md) registriert, `DPF-WP-02` hat [Release Report und Pack Dry Run Evidence](./release-report-pack-dry-run-evidence.md) nachgezogen und `DPF-WP-03` hat [Conditional Network Evidence CI](./conditional-network-evidence-ci.md) nachgezogen. Der aktuelle Export Lock erwartet 124 Package-Exports inklusive `./design-tokens/xtheme-token-alias-layer`, `./catalog/epic13-rc1-migration-notes`, `./catalog/epic13-rc1-gate-matrix-ci-handoff`, `./catalog/epic13-release-report-pack-dry-run-evidence`, `./catalog/epic13-conditional-network-evidence-ci`, `./rmt/dom-descriptor-renderer`, `./rmt/component-capability-registry`, `./rmt/state-selector-runtime`, `./rmt/action-effect-runtime`, `./rmt/event-routing-runtime`, `./rmt/surface-resource-graph-runtime`, `./rmt/native-shell-runtime`, `./rmt/node-ssr-adapter`, `./rmt-language/app-platform-tooling`, `./rmt-language/kernel-trust-authority`, `./rmt-language/kernel-security-regression`, `./catalog/epic14-rmt-tooling`, `./catalog/epic14-lsp-handoff` sowie der klassischen und vNext RMT-Tooling-Surface.
|
|
@@ -66,13 +66,13 @@ Jede Komponenten-Datei beschreibt:
|
|
|
66
66
|
node scripts/run_xtend_tests.js components
|
|
67
67
|
```
|
|
68
68
|
|
|
69
|
-
Die Component-Suite enthaelt ab `ER-WP-34` den Sub-Gate `component-public-types`. Nach `RC1TB-WP-03` prueft er die Shared-Type-Helfer, alle
|
|
69
|
+
Die Component-Suite enthaelt ab `ER-WP-34` den Sub-Gate `component-public-types`. Nach `RC1TB-WP-03` prueft er die Shared-Type-Helfer, alle 44 priorisierten `.d.ts` Dateien, Eventnamen, Detail-Typen, API-Methoden und Element-/Window-Mappings.
|
|
70
70
|
|
|
71
71
|
Ab `WP-TypeExports-09` ist der Component-Wildcard-Export auch im produktiven TypeExports-Handoff abgedeckt. `./components/*` bleibt eine adjacent-Declaration-Grenze: Consumer bekommen `components/*.d.ts` ueber die nebenliegenden Dateien, waehrend `node scripts/run_xtend_tests.js type-exports --json` verhindert, dass neue Public Component Exports ohne Type-Entscheidung in die Package Surface geraten.
|
|
72
72
|
|
|
73
73
|
## Coverage-Status
|
|
74
74
|
|
|
75
|
-
Nach `RC1TB-WP-03` stehen `types` in der Component Catalog Coverage Matrix bei `
|
|
75
|
+
Nach `RC1TB-WP-03` stehen `types` in der Component Catalog Coverage Matrix bei `44/44`. `x-input`, `x-select`, `x-checkbox`, `x-radio`, `x-rmt-lifecycle-demo-build`, `x-textarea`, `x-form`, `x-calendar`, `x-writer`, `x-status`, `x-progress`, `x-tooltip`, `x-popover`, `x-drawer`, `x-surface-manager`, `x-surface-portal`, `x-surface-region`, `x-surface-window`, `x-side-panel`, `x-modal`, `x-dialog`, `x-alert`, `x-toast`, `x-spinner`, `x-router`, `x-link`, `x-tabs`, `x-theme`, `x-button`, `x-icon`, `x-menu`, `x-footer`, `x-lightbox`, `x-masonry`, `x-code`, `x-header`, `x-hero`, `x-type`, `x-summary`, `x-section`, `x-cards` und `x-player` sind die aktuelle `enterprise-ready` Referenzlinie mit Public Types, Component-Suite, Fixture, A11y und Performance-Profil. `xstate` besitzt Public Types fuer Boundary Contract, RMT State Adapter, Lifecycle Events und Diagnostics. `x-utils` besitzt Public Types fuer Utility Contract, Import Policy, Boundary Snapshot, UI Effects, Template API sowie die Events `xutils:import-policy-check` und `xutils:ui-effects-change`.
|
|
76
76
|
|
|
77
77
|
Es gibt nach `WP-E12-09` keinen verbleibenden Type-Gap. Seit `WP-E13-05` sind auch die frueheren Boundary-Residuals geschlossen: `xstate` ist `closed-as-runtime-boundary`, `x-utils` ist `closed-as-utility-boundary`. Beide bleiben Public-Type-Boundaries, aber keine offenen Type- oder Performance-Aufgaben.
|
|
78
78
|
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# Quick Start Guide
|
|
2
2
|
|
|
3
|
-
Dieser Guide bringt
|
|
3
|
+
Dieser Guide bringt dich von einer lokalen XTend-Seite zu einer kleinen
|
|
4
|
+
RMT-vNext-App-Shell. Der schnellste Einstieg bleibt HTML mit Web Components;
|
|
5
|
+
der empfohlene Ausbaupfad fuer Apps ist RMT-first.
|
|
4
6
|
|
|
5
7
|
## Voraussetzungen
|
|
6
8
|
|
|
@@ -8,7 +10,7 @@ Dieser Guide bringt eine minimale XTend-App lokal zum Laufen. Ziel ist ein klein
|
|
|
8
10
|
- ein lokaler Checkout des XTend-Repositories
|
|
9
11
|
- ein Browser mit Custom-Elements- und ES-Module-Support
|
|
10
12
|
|
|
11
|
-
|
|
13
|
+
Starte den lokalen Dev Server:
|
|
12
14
|
|
|
13
15
|
```bash
|
|
14
16
|
npm run dev:local
|
|
@@ -16,7 +18,7 @@ npm run dev:local
|
|
|
16
18
|
|
|
17
19
|
Der Server liefert die App normalerweise unter `http://127.0.0.1:4173/` aus.
|
|
18
20
|
|
|
19
|
-
##
|
|
21
|
+
## 1. Minimalen Host starten
|
|
20
22
|
|
|
21
23
|
Lege im Projekt eine HTML-Datei an, zum Beispiel `quick-start.html`:
|
|
22
24
|
|
|
@@ -35,8 +37,6 @@ Lege im Projekt eine HTML-Datei an, zum Beispiel `quick-start.html`:
|
|
|
35
37
|
</script>
|
|
36
38
|
</head>
|
|
37
39
|
<body>
|
|
38
|
-
<x-theme></x-theme>
|
|
39
|
-
|
|
40
40
|
<main>
|
|
41
41
|
<x-section layout="column" label="Quick Start">
|
|
42
42
|
<h1>Hallo XTend</h1>
|
|
@@ -48,68 +48,129 @@ Lege im Projekt eine HTML-Datei an, zum Beispiel `quick-start.html`:
|
|
|
48
48
|
</html>
|
|
49
49
|
```
|
|
50
50
|
|
|
51
|
-
|
|
51
|
+
Oeffne danach `http://127.0.0.1:4173/quick-start.html`.
|
|
52
52
|
|
|
53
|
-
|
|
53
|
+
Was passiert hier?
|
|
54
54
|
|
|
55
|
-
- `xtend-loader.js` ist der
|
|
56
|
-
- `components/manifest.json` ist die
|
|
57
|
-
-
|
|
58
|
-
- `
|
|
59
|
-
|
|
60
|
-
- `
|
|
55
|
+
- `xtend-loader.js` ist der lokale Loader.
|
|
56
|
+
- `components/manifest.json` ist die Component Registry.
|
|
57
|
+
- `meta name="xtend-preload"` laedt kritische Komponenten frueh.
|
|
58
|
+
- `x-theme` ist ein Infrastrukturmodul; `x-section` und `x-button` sind
|
|
59
|
+
normale XTend Web Components.
|
|
60
|
+
- `/xtend.css` ist optional und dient Host-Theming.
|
|
61
61
|
|
|
62
|
-
|
|
62
|
+
## 2. App Shell in RMT vNext beschreiben
|
|
63
63
|
|
|
64
|
-
|
|
64
|
+
Wenn aus der Seite eine App wird, soll die Shell in RMT liegen. RMT vNext
|
|
65
|
+
beschreibt UI-Struktur, State, Actions, Events, Surfaces und Scheduling in
|
|
66
|
+
einer lesbaren `.rmt` Quelle.
|
|
65
67
|
|
|
66
|
-
|
|
68
|
+
Lege zum Beispiel `app.rmt` an:
|
|
67
69
|
|
|
68
|
-
|
|
70
|
+
```rmt
|
|
71
|
+
template quickstart.app {
|
|
72
|
+
state counter type number initial 0
|
|
69
73
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
74
|
+
selector counterLabel from state counter {
|
|
75
|
+
output text
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
action increment {
|
|
79
|
+
input amount number
|
|
80
|
+
reduce state.counter = input.amount
|
|
81
|
+
emit counter.changed with action increment
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
portal app root "#app-root" layer surface
|
|
85
|
+
|
|
86
|
+
surface home kind page component x-section {
|
|
87
|
+
source state counter
|
|
88
|
+
portal app
|
|
89
|
+
key route.path
|
|
90
|
+
|
|
91
|
+
lane visible weight 80 {
|
|
92
|
+
hydrate x-section from state counter
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
on click target button.primary -> action increment {
|
|
96
|
+
payload amount from 1
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
83
100
|
```
|
|
84
101
|
|
|
85
|
-
|
|
102
|
+
Dieses Dokument ist kein Runtime-Import und keine Framework-Komponente. Es ist
|
|
103
|
+
die App-Beschreibung: Der Compiler erzeugt daraus Core-/Kernel-Records, die
|
|
104
|
+
Host-Adapter mit XTend Components, XRouter und Fabric verbinden koennen.
|
|
105
|
+
|
|
106
|
+
## 3. XTend UI aus RMT materialisieren
|
|
107
|
+
|
|
108
|
+
Fuer Runtime-Hosts verbindet die Component Capability Registry RMT-Descriptoren
|
|
109
|
+
mit den vorhandenen XTend-Komponenten aus dem Manifest. Dadurch bleiben
|
|
110
|
+
Component Contracts, Events, Slots, Parts und State-Bindings die gemeinsame
|
|
111
|
+
Quelle der Wahrheit:
|
|
112
|
+
|
|
113
|
+
```js
|
|
114
|
+
import {
|
|
115
|
+
createRmtComponentCapabilityRegistry
|
|
116
|
+
} from '@ccslabs/xtend/rmt/component-capability-registry';
|
|
117
|
+
import {
|
|
118
|
+
createRmtDomDescriptorRenderer
|
|
119
|
+
} from '@ccslabs/xtend/rmt/dom-descriptor-renderer';
|
|
120
|
+
|
|
121
|
+
const registry = createRmtComponentCapabilityRegistry({ manifest, sourceTexts });
|
|
122
|
+
const renderer = createRmtDomDescriptorRenderer({ documentTarget: document });
|
|
123
|
+
|
|
124
|
+
renderer.renderKeyed(root, [
|
|
125
|
+
registry.buildComponentDescriptor({
|
|
126
|
+
tag: 'x-button',
|
|
127
|
+
key: 'primary-action',
|
|
128
|
+
attributes: { variant: 'primary' },
|
|
129
|
+
slots: { default: { text: 'Loslegen' } },
|
|
130
|
+
events: { click: 'quickstart.increment' }
|
|
131
|
+
})
|
|
132
|
+
], {
|
|
133
|
+
componentRegistry: registry,
|
|
134
|
+
dispatchEvent: actions.dispatch,
|
|
135
|
+
stateBridge
|
|
136
|
+
});
|
|
137
|
+
```
|
|
86
138
|
|
|
87
|
-
|
|
139
|
+
So koennen RMT-Primitives XTend UI nutzen, ohne Shadow-DOM-Patches,
|
|
140
|
+
komponentenspezifische Renderer oder manuelle HTML-Sinks einzubauen.
|
|
88
141
|
|
|
89
|
-
|
|
142
|
+
## 4. Serverseitig vorhydrieren
|
|
90
143
|
|
|
91
|
-
|
|
144
|
+
Node-Hosts koennen dieselbe RMT-Beschreibung fuer SSR und inkrementelles JSONL
|
|
145
|
+
nutzen. Der Adapter bleibt framework-neutral und startet keinen eigenen
|
|
146
|
+
HTTP-Server:
|
|
92
147
|
|
|
93
|
-
|
|
148
|
+
```js
|
|
149
|
+
import {
|
|
150
|
+
createRmtNodeSsrAdapter
|
|
151
|
+
} from '@ccslabs/xtend/rmt/node-ssr-adapter';
|
|
94
152
|
|
|
95
|
-
|
|
96
|
-
{
|
|
97
|
-
"id": "home",
|
|
98
|
-
"path": "/home",
|
|
99
|
-
"router": "xtend.xrouter",
|
|
100
|
-
"component": "page.home",
|
|
101
|
-
"title": "Home",
|
|
102
|
-
"documentTitle": "Home | Quick Start",
|
|
103
|
-
"template": "home.shell",
|
|
104
|
-
"schedule": "route.visible.render"
|
|
105
|
-
}
|
|
153
|
+
const adapter = createRmtNodeSsrAdapter({ manifest, sourceTexts });
|
|
154
|
+
const result = await adapter.render({ source, filePath: 'app.rmt' });
|
|
106
155
|
```
|
|
107
156
|
|
|
108
|
-
|
|
157
|
+
PHP/Laravel-Hosts nutzen denselben clientseitigen Wire-Shape ueber das
|
|
158
|
+
Single-File-Modul:
|
|
109
159
|
|
|
110
|
-
|
|
160
|
+
```php
|
|
161
|
+
require __DIR__ . '/xtendrmt/rmt-php-ssr-adapter.php';
|
|
111
162
|
|
|
112
|
-
|
|
163
|
+
$adapter = createRmtPhpSsrAdapter(['manifest' => $manifest]);
|
|
164
|
+
$result = $adapter->render(['coreDocument' => $coreDocument]);
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
Mehr dazu:
|
|
168
|
+
[RMT Node SSR Adapter](./rmt-node-ssr-adapter.md) und
|
|
169
|
+
[RMT PHP/Laravel SSR Adapter](./rmt-php-ssr-adapter.md).
|
|
170
|
+
|
|
171
|
+
## 5. RMT lokal pruefen
|
|
172
|
+
|
|
173
|
+
Der Standardcheck fuer ein einzelnes Dokument ist:
|
|
113
174
|
|
|
114
175
|
```bash
|
|
115
176
|
xt rmt lint app.rmt
|
|
@@ -127,9 +188,11 @@ AI-Agenten koennen den Repair Report nutzen:
|
|
|
127
188
|
xt rmt lint app.rmt --agent
|
|
128
189
|
```
|
|
129
190
|
|
|
130
|
-
Der Agent Report enthaelt `repairPlan`, `fixOrder`, `confidence`, `impact`,
|
|
191
|
+
Der Agent Report enthaelt `repairPlan`, `fixOrder`, `confidence`, `impact`,
|
|
192
|
+
`relatedDiagnostics` und erklaerte No-Ops fuer bewusst nicht automatisierte
|
|
193
|
+
Reparaturen.
|
|
131
194
|
|
|
132
|
-
## Editor-Unterstuetzung
|
|
195
|
+
## 6. Editor-Unterstuetzung aktivieren
|
|
133
196
|
|
|
134
197
|
Der RMT Language Server startet lokal ueber:
|
|
135
198
|
|
|
@@ -137,16 +200,21 @@ Der RMT Language Server startet lokal ueber:
|
|
|
137
200
|
node tools/rmt-language-server/server.js
|
|
138
201
|
```
|
|
139
202
|
|
|
140
|
-
Er liefert Diagnostics, Completion, Hover, Document Symbols, Definition und
|
|
141
|
-
|
|
142
|
-
|
|
203
|
+
Er liefert Diagnostics, Completion, Hover, Document Symbols, Definition und
|
|
204
|
+
Code Actions. VS Code, JetBrains, Neovim und Helix koennen den Server ueber
|
|
205
|
+
stdio anbinden. Fuer eine minimale native App-Shell kannst du in einer IDE mit
|
|
206
|
+
RMT Snippets den Prefix `rmt-app` nutzen; fuer vNext-Primitives ist
|
|
207
|
+
`rmt-vnext-primitive-shell` der schnellste Start.
|
|
143
208
|
|
|
144
209
|
## Naechste Schritte
|
|
145
210
|
|
|
211
|
+
- [RMT vNext Authoring Guide](./rmt-vnext-authoring.md)
|
|
212
|
+
- [RMT vNext Component Primitives und XTend UI](./rmt-vnext-component-primitives.md)
|
|
213
|
+
- [RMT Node SSR Adapter](./rmt-node-ssr-adapter.md)
|
|
214
|
+
- [RMT PHP/Laravel SSR Adapter](./rmt-php-ssr-adapter.md)
|
|
215
|
+
- [XTendRMT Developer Overview](./xtendrmt-overview.md)
|
|
216
|
+
- [RMT Linter und AI-Agent Repair Report](./rmt-linter.md)
|
|
217
|
+
- [RMT Language Server und Editor Setup](./rmt-language-server.md)
|
|
146
218
|
- [XTend Loader](./xtend-loader.md)
|
|
147
219
|
- [Manifest-Format](./manifest.md)
|
|
148
220
|
- [Komponenten-Entwicklung](./components.md)
|
|
149
|
-
- [XTendRMT App-DSL Reference](./xtendrmt-app-dsl.md)
|
|
150
|
-
- [RMT-first XTend Apps](./rmt-first-xtend-apps.md)
|
|
151
|
-
- [RMT Linter und AI-Agent Repair Report](./rmt-linter.md)
|
|
152
|
-
- [RMT Language Server und Editor Setup](./rmt-language-server.md)
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# RMT Action Effect Runtime
|
|
2
|
+
|
|
3
|
+
- Contract: `xtend.epic18.rmt-action-effect-runtime.v1`
|
|
4
|
+
- Workpackage: `WP-E18-08`
|
|
5
|
+
- Runtime: `xtendrmt/rmt-action-effect-runtime.js`
|
|
6
|
+
- Types: `xtendrmt/rmt-action-effect-runtime.d.ts`
|
|
7
|
+
- Fixture: `tests/fixtures/rmt-action-effect-runtime.rmt`
|
|
8
|
+
- Local gate: `node scripts/run_xtend_tests.js rmt-action-effect-runtime --json`
|
|
9
|
+
- Next: `WP-E18-09`
|
|
10
|
+
|
|
11
|
+
## Purpose
|
|
12
|
+
|
|
13
|
+
The Action Effect Runtime turns common app flows into native RMT platform
|
|
14
|
+
primitives. Apps can load fixture, REST, SSR or host-adapter data; update typed
|
|
15
|
+
state; publish feedback; navigate; focus controls; lazy-load modules; and own
|
|
16
|
+
resources without product-local action frameworks.
|
|
17
|
+
|
|
18
|
+
The runtime is deliberately domain-neutral. It does not define product surfaces
|
|
19
|
+
or record taxonomies. Developers provide their own actions, contracts, adapters,
|
|
20
|
+
effects and resources.
|
|
21
|
+
|
|
22
|
+
## DataSources
|
|
23
|
+
|
|
24
|
+
Supported datasource kinds:
|
|
25
|
+
|
|
26
|
+
- `fixture`: returns static fixture records for local app fixtures and tests.
|
|
27
|
+
- `rest`: calls an injected adapter with an endpoint and payload.
|
|
28
|
+
- `ssr`: reads a prehydrated payload and can project it with `resultPath`.
|
|
29
|
+
- `host`: calls an explicit host adapter for mutations or platform commands.
|
|
30
|
+
|
|
31
|
+
Runtime code never reaches for global network APIs directly. REST and host work
|
|
32
|
+
through injected adapters so browser, server, test and shell environments can
|
|
33
|
+
choose their own transport policy.
|
|
34
|
+
|
|
35
|
+
## Actions
|
|
36
|
+
|
|
37
|
+
An action can declare:
|
|
38
|
+
|
|
39
|
+
- `datasource`
|
|
40
|
+
- `resultState`
|
|
41
|
+
- `loadingState`
|
|
42
|
+
- `statusState`
|
|
43
|
+
- `effects`
|
|
44
|
+
- `resources`
|
|
45
|
+
- `resourceOwner`
|
|
46
|
+
- `cancelable`
|
|
47
|
+
|
|
48
|
+
`runAction(id, payload)` moves the action through loading, success, error or
|
|
49
|
+
cancelled states. If a typed state runtime is passed in, loading and status are
|
|
50
|
+
written through `setState` and `patchState`, while datasource results can be
|
|
51
|
+
stored in `resultState`.
|
|
52
|
+
|
|
53
|
+
## Effects
|
|
54
|
+
|
|
55
|
+
Supported effect kinds:
|
|
56
|
+
|
|
57
|
+
- `toast` and `feedback`
|
|
58
|
+
- `navigation`
|
|
59
|
+
- `focus`
|
|
60
|
+
- `lazy-import`
|
|
61
|
+
- `side-effect`
|
|
62
|
+
|
|
63
|
+
Feedback, navigation, focus and custom side effects use injected adapters.
|
|
64
|
+
Lazy imports are modeled as resources, which means they can share the same
|
|
65
|
+
ownership and cleanup model as other runtime resources.
|
|
66
|
+
|
|
67
|
+
## Resource Ownership
|
|
68
|
+
|
|
69
|
+
Supported resource kinds:
|
|
70
|
+
|
|
71
|
+
- `object-url`
|
|
72
|
+
- `stream`
|
|
73
|
+
- `observer`
|
|
74
|
+
- `timer`
|
|
75
|
+
- `lazy-import`
|
|
76
|
+
|
|
77
|
+
Resources are acquired under an owner, normally the action id. The resource
|
|
78
|
+
manager exposes `releaseOwner(ownerId)` so surface destroy, render-unit destroy
|
|
79
|
+
or action cancel can clean up only the resources they own.
|
|
80
|
+
|
|
81
|
+
## Diagnostics
|
|
82
|
+
|
|
83
|
+
The runtime emits diagnostics with
|
|
84
|
+
`xtend.epic18.rmt-action-effect-diagnostic.v1` on the
|
|
85
|
+
`rmt.app_platform.action_effect` channel. Loading, success, error and cancel
|
|
86
|
+
are all visible in the local runtime history and in an optional diagnostics hub.
|
|
87
|
+
|
|
88
|
+
## Boundaries
|
|
89
|
+
|
|
90
|
+
- The RMT kernel imports no XTend UI components.
|
|
91
|
+
- Data access goes through injected adapters.
|
|
92
|
+
- Product-local action frameworks are not part of the platform contract.
|
|
93
|
+
- Product flow names remain app code, not framework defaults.
|
|
94
|
+
- Normal app UI still uses RMT templates and DOM descriptors instead of HTML
|
|
95
|
+
string renderers.
|
|
96
|
+
|
|
97
|
+
## Handoff
|
|
98
|
+
|
|
99
|
+
`WP-E18-09` builds on this runtime by connecting declarative DOM and custom
|
|
100
|
+
events to actions. The event layer should reuse the Action Effect Runtime
|
|
101
|
+
instead of creating another action execution path.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# RMT App Platform Authoring
|
|
2
|
+
|
|
3
|
+
- Contract: `xtend.epic18.rmt-app-platform-authoring.v1`
|
|
4
|
+
- Fixture: `tests/fixtures/rmt-app-platform-authoring.rmt`
|
|
5
|
+
- Local Gate: `node scripts/run_xtend_tests.js rmt-app-platform-authoring --json`
|
|
6
|
+
- Workpackage: `WP-E18-04`
|
|
7
|
+
|
|
8
|
+
## Zweck
|
|
9
|
+
|
|
10
|
+
Dieses Authoring-Modell definiert RMT als generische App Platform. Es ist keine
|
|
11
|
+
Portierung einer konkreten Produktoberflaeche. Entwickler koennen eigene
|
|
12
|
+
App-Domains, Record-Vertraege, Komponentenfamilien, Surfaces, State-Graphen,
|
|
13
|
+
Actions, DataSources, Resources und Events kombinieren.
|
|
14
|
+
|
|
15
|
+
## Primitives
|
|
16
|
+
|
|
17
|
+
| Primitive | Zweck |
|
|
18
|
+
|-----------|-------|
|
|
19
|
+
| `app` | App-Metadaten, Shell, Domain, Record-Contract und Einstiegspunkte |
|
|
20
|
+
| `route` | URL- oder Navigationszustand auf Surface und Template mappen |
|
|
21
|
+
| `surface` | keyed App-Bereiche mit Lifecycle, Placement, State und Persistence |
|
|
22
|
+
| `slot` | benannte Kompositionspunkte zwischen Templates und Komponenten |
|
|
23
|
+
| `template` | strukturierte UI als DOM Descriptor, nicht als HTML-String |
|
|
24
|
+
| `component` | beliebige Custom Elements ueber einen Faehigkeitskatalog binden |
|
|
25
|
+
| `state` | typed App-State fuer Collections, Auswahl, Filter und Formwerte |
|
|
26
|
+
| `selector` | abgeleitete Lesesichten auf State |
|
|
27
|
+
| `derive` | computed Values mit klarem Output-Typ |
|
|
28
|
+
| `repeat` | keyed Listen ohne Produkt-Renderer |
|
|
29
|
+
| `when` | deklarative Bedingungen, Empty- und Fallback-Zustaende |
|
|
30
|
+
| `bind` | State, Selectors oder Derived Values auf Attribute/Properties mappen |
|
|
31
|
+
| `action` | deklarative Commands fuer App-Flows |
|
|
32
|
+
| `effect` | async Ausfuehrung mit Lanes und Feedback |
|
|
33
|
+
| `datasource` | Fixture-, REST-, SSR- oder spaetere Host-Datenadapter |
|
|
34
|
+
| `resource` | lazy/preload/cleanup Ressourcen inklusive Trusted-HTML-Sonderfall |
|
|
35
|
+
| `event` | scoped Event-Routing ohne impliziten globalen Event-Bus |
|
|
36
|
+
|
|
37
|
+
## Boundaries
|
|
38
|
+
|
|
39
|
+
- `no-media-manager-product-surface-clone`
|
|
40
|
+
- `no-product-record-contract-required`
|
|
41
|
+
- `structured-ui-before-trusted-html`
|
|
42
|
+
- `trusted-html-explicit-boundary-only`
|
|
43
|
+
- `no-rmt-kernel-import-of-xtend-types`
|
|
44
|
+
- `no-external-innerhtml-helper-required`
|
|
45
|
+
|
|
46
|
+
Normale App-UI muss ueber strukturierte Templates modellierbar sein. HTML bleibt
|
|
47
|
+
eine explizite Trusted-DOM-Boundary fuer Sonderfaelle und ist nicht der
|
|
48
|
+
Standardweg fuer Komponentenentwicklung.
|
|
49
|
+
|
|
50
|
+
## Handoff
|
|
51
|
+
|
|
52
|
+
`WP-E18-04` legt nur das Authoring-Modell fest. `WP-E18-05` baut danach den
|
|
53
|
+
sicheren DOM Descriptor Renderer und den No-Manual-HTML-Gate. `WP-E18-06`
|
|
54
|
+
setzt darauf die component-nativen Template Primitives um.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# RMT App Platform Fixture
|
|
2
|
+
|
|
3
|
+
WP-E18-12 liefert die generische Referenz-Fixture fuer die RMT App Platform.
|
|
4
|
+
Sie beweist, dass die Epic-18-Primitives nicht an eine Produktoberflaeche
|
|
5
|
+
gekoppelt sind: dieselben RMT-Bausteine tragen einen `generic-catalog`, eine
|
|
6
|
+
`admin-queue` und ein `content-board`.
|
|
7
|
+
|
|
8
|
+
## Vertrag
|
|
9
|
+
|
|
10
|
+
- Schema: `xtend.epic18.rmt-app-platform-fixture.v1`
|
|
11
|
+
- Fixture Schema: `xtend.epic18.rmt-app-platform-fixture-source.v1`
|
|
12
|
+
- Lokaler Gate: `node scripts/run_xtend_tests.js rmt-app-platform-fixture --json`
|
|
13
|
+
- Package Script: `npm run test:rmt-app-platform-fixture`
|
|
14
|
+
- Handoff: `WP-E18-13`
|
|
15
|
+
|
|
16
|
+
## Abgedeckte Plattformfaehigkeiten
|
|
17
|
+
|
|
18
|
+
- konfigurierbare Record-Contracts ohne feste Record-Klasse
|
|
19
|
+
- Listen-, Detail-, Toolbar-, Feedback- und Overlay-Komposition mit DOM
|
|
20
|
+
Descriptor Templates
|
|
21
|
+
- Actions mit Fixture-, REST-, SSR- und Host-DataSources
|
|
22
|
+
- Feedback-, Navigation-, Focus-, Lazy-Import- und Side-Effect-Flows
|
|
23
|
+
- dynamische Surfaces fuer mehrere Domains aus denselben Primitives
|
|
24
|
+
- Portals und Overlays inklusive Stack-Verhalten
|
|
25
|
+
- Resource Ownership und Cleanup fuer Streams, Observer, Timer, Object URLs und
|
|
26
|
+
Lazy Imports
|
|
27
|
+
- Scaffold Build Evidence ueber den RMT App Platform Generator
|
|
28
|
+
|
|
29
|
+
## Grenzen
|
|
30
|
+
|
|
31
|
+
Normale RMT UI bleibt deklarativ. `innerHTML`, `outerHTML`,
|
|
32
|
+
`insertAdjacentHTML` und `document.write` gehoeren nicht in die App-Fixture;
|
|
33
|
+
der No-Manual-HTML-Gate prueft das explizit. Produktgebundene Surface-Listen
|
|
34
|
+
werden ebenfalls vermieden. Entwickler sollen in XTend App-Strukturen bauen
|
|
35
|
+
koennen, ohne externe Shell-Renderer oder lokale Registry-Umbauten zu brauchen.
|
|
36
|
+
|
|
37
|
+
## Fixture-Artefakte
|
|
38
|
+
|
|
39
|
+
- `catalog/epic18-rmt-app-platform-fixture.js`
|
|
40
|
+
- `tests/fixtures/rmt-app-platform-fixture.rmt`
|
|
41
|
+
- `tests/rmt/rmt_app_platform_fixture_suite.js`
|
|
42
|
+
- `development/WP-E18-12-Generische-RMT-App-Platform-Fixture-bauen.md`
|
|
43
|
+
|
|
44
|
+
Der Gate rendert die Fixture mit dem DOM Descriptor Renderer, routet Events in
|
|
45
|
+
Actions, tauscht DataSources, materialisiert Surfaces, oeffnet Overlays und
|
|
46
|
+
belegt Cleanup durch Resource-Disposals.
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# RMT App Platform Migration Guide
|
|
2
|
+
|
|
3
|
+
Dieser Guide beschreibt den Weg von externen Host-Hilfen wie
|
|
4
|
+
`root.innerHTML`, produktgebundenen Surface-Listen oder lokalen Registry-
|
|
5
|
+
Repaints hin zu nativen RMT-App-Platform-Primitives.
|
|
6
|
+
|
|
7
|
+
## Zielbild
|
|
8
|
+
|
|
9
|
+
- Neue UI wird in RMT vNext beschrieben; DOM Descriptor, App-Platform-JSON und
|
|
10
|
+
Component Records sind generierter Output oder Compatibility Mirror.
|
|
11
|
+
- State, Selectors und Derived Values liegen in der RMT State Selector Runtime.
|
|
12
|
+
- Interaktionen laufen ueber deklarative Events und Actions.
|
|
13
|
+
- DataSources bleiben austauschbar: `fixture`, `rest`, `ssr` und `host`.
|
|
14
|
+
- Surfaces, Overlays, Portals und Resources werden ueber den Surface Resource
|
|
15
|
+
Graph materialisiert und aufgeraeumt.
|
|
16
|
+
|
|
17
|
+
```rmt
|
|
18
|
+
template migration.catalog {
|
|
19
|
+
state records type collection initial []
|
|
20
|
+
|
|
21
|
+
selector visibleRecords from state records {
|
|
22
|
+
output CatalogRecord[]
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
datasource catalog from fixture records.generic-items {
|
|
26
|
+
contract CatalogRecord[]
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
action load-records {
|
|
30
|
+
effect fetch datasource catalog
|
|
31
|
+
on success -> reduce state.records = result.records
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
portal surface.root root "#app-root" layer surface
|
|
35
|
+
|
|
36
|
+
surface catalog.board kind workspace component x-cards {
|
|
37
|
+
repeat from selector visibleRecords
|
|
38
|
+
key record.id
|
|
39
|
+
portal surface.root
|
|
40
|
+
|
|
41
|
+
lane visible weight 80 {
|
|
42
|
+
hydrate catalog-cards from selector visibleRecords
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
on card-click target item -> action load-records {
|
|
46
|
+
payload source from target.dataset.source
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Migration
|
|
53
|
+
|
|
54
|
+
1. Externe HTML-Host-Renderer identifizieren.
|
|
55
|
+
Suchen nach `innerHTML`, `outerHTML`, `insertAdjacentHTML` und
|
|
56
|
+
`document.write`.
|
|
57
|
+
2. Shell-Struktur in RMT vNext ueberfuehren.
|
|
58
|
+
Normale App-UI nutzt `template`, `surface`, `portal`, `lane`, `hydrate` und
|
|
59
|
+
Events; `mode: "dom_descriptor"` entsteht erst im Output.
|
|
60
|
+
3. Produktlisten entkoppeln.
|
|
61
|
+
Statt einer festen Record-Klasse werden konfigurierbare Record-Contracts
|
|
62
|
+
mit stabilen IDs und Keys genutzt.
|
|
63
|
+
4. Interaktionen deklarieren.
|
|
64
|
+
DOM- oder Custom-Events erhalten `payloadContract` und routen zu Actions.
|
|
65
|
+
5. DataSources austauschbar halten.
|
|
66
|
+
Lokale Fixture-Daten, SSR-Bootstrap, REST-Suche und Host-Mutation teilen
|
|
67
|
+
denselben Action-Pfad.
|
|
68
|
+
6. Surface Lifecycle pruefen.
|
|
69
|
+
Jede Surface mit `resource`-Eintraegen braucht einen Owner, Overlays laufen ueber
|
|
70
|
+
Portals, und Destroy/Close muss Ressourcen freigeben.
|
|
71
|
+
7. Scaffold Evidence erzeugen.
|
|
72
|
+
Der RMT App Platform Builder schreibt Diagnostics, Source Map und Build
|
|
73
|
+
Report.
|
|
74
|
+
|
|
75
|
+
## Referenz
|
|
76
|
+
|
|
77
|
+
Die Referenz-Fixture liegt in `tests/fixtures/rmt-app-platform-fixture.rmt` und
|
|
78
|
+
belegt `generic-catalog`, `admin-queue` und `content-board` mit denselben
|
|
79
|
+
Primitives.
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
node scripts/run_xtend_tests.js rmt-app-platform-fixture --json
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Grenze
|
|
86
|
+
|
|
87
|
+
Trusted HTML bleibt ein expliziter Sonderfall mit Trusted-DOM-Boundary. Normale
|
|
88
|
+
App-UI darf keine HTML-Strings als Renderpfad verwenden.
|