@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,221 @@
|
|
|
1
|
+
# XTend Architecture Decision Record
|
|
2
|
+
|
|
3
|
+
- Status: Accepted
|
|
4
|
+
- Datum: 8. Mai 2026
|
|
5
|
+
- Contract: `xtend.docs.architecture-decision-record.v2`
|
|
6
|
+
- Typ: Produktarchitektur-Baseline fuer XTend UI, XTend-Fabric und XTendRMT
|
|
7
|
+
|
|
8
|
+
## Zweck
|
|
9
|
+
|
|
10
|
+
Dieses ADR ersetzt die fruehere Architekturaufnahme aus den ersten Epics. Die alte Fassung beschrieb noch eine Plattform im Umbau: Core-Konsolidierung, Loader-Rename, RMT-Fusion, Test-Harness und Component-Coverage waren damals teilweise erst Zielbild.
|
|
11
|
+
|
|
12
|
+
Die heutige Entscheidung beschreibt den aktuellen Architekturvertrag fuer XTend als Enterprise-Webframework:
|
|
13
|
+
|
|
14
|
+
- XTend UI ist das Web-Component- und UI-Builder-Produkt.
|
|
15
|
+
- XTendRMT ist Scheduler, Runtime-Kernel, Templating Engine und native `.rmt` Authoring-Sprache.
|
|
16
|
+
- XTend-Fabric ist die host-nahe Schutz-, Telemetry-, Lane- und Reporter-Schicht.
|
|
17
|
+
- Die Docs-App ist eine XTend-App mit RMT-generierter Shell und Parsedown als scheduled Content-Komponente.
|
|
18
|
+
- RMT Tooling, Linter und Language Server sind Teil der Authoring-Plattform.
|
|
19
|
+
|
|
20
|
+
## Entscheidung
|
|
21
|
+
|
|
22
|
+
XTend wird als **manifest- und state-zentriertes Web-Components-Framework** mit RMT-first App Authoring, Fabric Boundary und TypeScript-first Component Platform weitergefuehrt.
|
|
23
|
+
|
|
24
|
+
Dokumentation, Manifest und Laufzeit-APIs muessen kuenftig als zusammengehoerender Vertrag gepflegt werden.
|
|
25
|
+
|
|
26
|
+
Die Architektur trennt bewusst fuenf Verantwortungen:
|
|
27
|
+
|
|
28
|
+
| Ebene | Verantwortung | Darf wissen von | Darf nicht tun |
|
|
29
|
+
|-------|---------------|-----------------|----------------|
|
|
30
|
+
| XTend UI | Custom Elements, Shells, Styling, A11y, UX und Host-Komponenten | Manifest, Loader, Component Contracts, Fabric Context | RMT-Kernel-Semantik implementieren |
|
|
31
|
+
| XTend Loader | lokale ESM-Imports, Manifest Policy, Bootstrap, Component Loading | Manifest, Import Policy, Runtime API | CDN-Fallbacks erzwingen oder externe Quellen still laden |
|
|
32
|
+
| XTend-Fabric | Fehlergrenzen, Telemetry, Reporter Adapter, Fibers, Lanes, Backpressure | XTend Runtime, optionale RMT Adapter Results | RMT-Dokumente parsen oder XTendRMT ersetzen |
|
|
33
|
+
| XTendRMT | `.rmt` Source, DSL-Domains, Scheduling, Templates, Routes, Diagnostics | neutrale Adapter Records und Host Capabilities | XTend, XRouter, DOM, React, Vue oder `xstate` direkt importieren |
|
|
34
|
+
| Tooling | Linter, LSP, Snippets, Reports, Editor Bridges | RMT Source Model, Parser, Rule Engine, Schema | eigene Semantik neben dem RMT-Sprachkern pflegen |
|
|
35
|
+
|
|
36
|
+
## Architekturprinzipien
|
|
37
|
+
|
|
38
|
+
### 1. Native Web Standards bleiben der Kern
|
|
39
|
+
|
|
40
|
+
XTend basiert auf Custom Elements, Shadow DOM, Slots, CSS Custom Properties und ES-Modulen. Build- und TypeScript-Artefakte duerfen diese Laufzeit nicht hinter einem proprietaeren Abstraktionsmodell verstecken.
|
|
41
|
+
|
|
42
|
+
Komponenten sind weiterhin echte Web Components. Framework-Integrationen fuer React, Vue oder Custom Hosts entstehen als Adapter oder Host-Konventionen, nicht als Ersatz fuer die native Oberflaeche.
|
|
43
|
+
|
|
44
|
+
### 2. State-zentrierte UI
|
|
45
|
+
|
|
46
|
+
`xstate` bleibt die host-nahe State-Boundary fuer XTend UI. Der State ist die beobachtbare Wahrheit fuer UI-Zustaende, Route-Spiegel, Theme-Kontext, Feedback, Komponentenzustaende und Diagnostics.
|
|
47
|
+
|
|
48
|
+
Das **Digital Twin Principle** bleibt verbindlich: relevante UI-Aktionen muessen in einen nachvollziehbaren State-, Event- oder Diagnostic-Record zurueckschreiben. Lokale Flags duerfen nur abgeleitete Render-Caches sein.
|
|
49
|
+
|
|
50
|
+
### 3. RMT-first, aber framework-agnostisch
|
|
51
|
+
|
|
52
|
+
Neue App-Shells, Routes, Templates und Scheduling-Policies sollen primaer in nativen `.rmt` Dokumenten beschrieben werden. `.rmt.json` bleibt nur ein Edge-Case-Fallback fuer Hosts ohne passenden MIME-Typ oder fuer Legacy-Pfade.
|
|
53
|
+
|
|
54
|
+
RMT ist trotzdem kein XTend-Untermodul. XTend ist First-Class Host, aber nicht Pflicht-Host. Der RMT-Kernel sieht Adapter-Records wie `xtend.component` oder `xtend.xrouter`, importiert aber keine XTend-Komponenten und fuehrt keine DOM-Arbeit selbst aus.
|
|
55
|
+
|
|
56
|
+
### 4. Shell-first Rendering
|
|
57
|
+
|
|
58
|
+
App-Shells sollen zuerst stabil rendern. Content, Markdown, Rich HTML, Medien und schwere Komponenten werden anschliessend scheduled oder lazy nachgeladen.
|
|
59
|
+
|
|
60
|
+
Die Docs-App ist der Referenzpfad: RMT erzeugt die Shell, Parsedown ist eine scheduled Content-Komponente. Spaetere Inhalte wie XPlayer-Tutorials oder Rich-Content-Bloecke koennen in dieselbe Scheduling-Struktur aufgenommen werden.
|
|
61
|
+
|
|
62
|
+
### 5. Fabric als Sicherheits- und Telemetry-Schicht
|
|
63
|
+
|
|
64
|
+
XTend-Fabric ist der globale Host-Sicherheitslayer fuer Fehlergrenzen, Reporter Adapter, Telemetry, Lane/Fiber-Kontext, Backpressure und Qualitaetssignale.
|
|
65
|
+
|
|
66
|
+
Fabric darf RMT Adapter Results und Scheduler-Signale aufnehmen, aber nicht den RMT-Kernel ersetzen. Dadurch bleibt die Grenze klar:
|
|
67
|
+
|
|
68
|
+
```text
|
|
69
|
+
RMT Kernel -> Adapter / Bridge Result -> XTend-Fabric -> XTend UI / Reporter
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### 6. Performance-by-design
|
|
73
|
+
|
|
74
|
+
Performance ist kein spaeter Optimierungsschritt. Komponenten muessen ihre Hydration-, Visibility-, Idle-, Busy- und Measurement-Profile deklarieren. Loader, Fabric und RMT duerfen diese Profile fuer Scheduling und Diagnostics verwenden.
|
|
75
|
+
|
|
76
|
+
Die akzeptierten Baselines sind:
|
|
77
|
+
|
|
78
|
+
- lokales ESM statt CDN-Abhaengigkeit
|
|
79
|
+
- manifestbasierte Import Policy
|
|
80
|
+
- Lazy, Idle und Visible Hydration Policies
|
|
81
|
+
- Performance Regression Gates
|
|
82
|
+
- Component-level Performance Profiles
|
|
83
|
+
- Shell-first Rendering fuer App-Erstaufbau
|
|
84
|
+
|
|
85
|
+
### 7. A11y-by-design
|
|
86
|
+
|
|
87
|
+
A11y ist Teil des Component Contracts. Neue Komponenten muessen Keyboard-Verhalten, Focus, ARIA, Screenreader-Signale, Reduced Motion, Contrast und sichtbare States als Produktoberflaeche behandeln.
|
|
88
|
+
|
|
89
|
+
RMT darf A11y-relevante Shell- und Component-Metadaten beschreiben. Die konkrete Ausfuehrung bleibt bei XTend UI und den Host-Adaptern.
|
|
90
|
+
|
|
91
|
+
### 8. Tooling ist Teil des Produkts
|
|
92
|
+
|
|
93
|
+
RMT ist nicht nur Runtime-Format, sondern Authoring-Sprache. Deshalb gehoeren Linter, AI-Agent Repair Report, Snippets, LSP, Editor Bridges und Release Gates zur Plattform.
|
|
94
|
+
|
|
95
|
+
Der Language Server nutzt dieselbe Semantik wie `xt rmt lint`; Editor-Integrationen duerfen keine zweite RMT-Regelwelt pflegen.
|
|
96
|
+
|
|
97
|
+
## Systembild
|
|
98
|
+
|
|
99
|
+
```text
|
|
100
|
+
App / Host
|
|
101
|
+
|
|
|
102
|
+
| local ESM + manifest policy
|
|
103
|
+
v
|
|
104
|
+
XTend Loader
|
|
105
|
+
|
|
|
106
|
+
+-- XTend UI Components
|
|
107
|
+
| +-- x-router / x-link
|
|
108
|
+
| +-- x-header / x-menu / x-icon / x-hero / ...
|
|
109
|
+
| +-- form, feedback, overlay, media and layout components
|
|
110
|
+
|
|
|
111
|
+
+-- xstate / xtheme / api.js
|
|
112
|
+
|
|
|
113
|
+
+-- XTend-Fabric
|
|
114
|
+
|
|
|
115
|
+
+-- telemetry, fibers, lanes, reporter adapters
|
|
116
|
+
|
|
|
117
|
+
+-- optional RMT adapter results
|
|
118
|
+
|
|
119
|
+
XTendRMT
|
|
120
|
+
|
|
|
121
|
+
+-- .rmt source model
|
|
122
|
+
+-- templates, routes, components, schedules, adapters
|
|
123
|
+
+-- linter, language server, snippets, diagnostics
|
|
124
|
+
|
|
|
125
|
+
+-- host adapters: xtend.component, xtend.xrouter, docs.parsedown, custom hosts
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
## Laufzeitentscheidungen
|
|
129
|
+
|
|
130
|
+
### Loader und Manifest
|
|
131
|
+
|
|
132
|
+
Der kanonische Loader ist `xtend-loader.js`. Er arbeitet lokal, ESM-basiert und manifestgesteuert. Externe CDNs sind kein Normalpfad. Manifest-URLs und Component-Imports unterliegen der Import Policy.
|
|
133
|
+
|
|
134
|
+
### Komponenten
|
|
135
|
+
|
|
136
|
+
Komponenten folgen dem Component Contract v2 und der Epic-11-UX-Shell-Linie:
|
|
137
|
+
|
|
138
|
+
- TypeScript-first Source, wenn neue Komponenten entstehen
|
|
139
|
+
- Public Types
|
|
140
|
+
- RMT Metadata
|
|
141
|
+
- Fabric Boundary
|
|
142
|
+
- A11y- und Performance-Profil
|
|
143
|
+
- Component Fixture
|
|
144
|
+
- Component Suite
|
|
145
|
+
- Docs-Seite
|
|
146
|
+
|
|
147
|
+
`x-icon` ist der Referenzfall fuer eine framework-agnostische Erweiterung: internes Core Icon Pack, lokale Lucide-Erweiterung, Pack Registry und RMT-kompatibler Adapter ohne CDN-Pflicht.
|
|
148
|
+
|
|
149
|
+
### Routing
|
|
150
|
+
|
|
151
|
+
`x-router` bleibt die XTend-UI-Routing-Komponente. RMT kann Routes deklarieren und ueber den `xtend.xrouter` Adapter an XRouter uebergeben. Seitentitel, Route-Metadaten und shell-nahe Navigation duerfen in RMT beschrieben werden.
|
|
152
|
+
|
|
153
|
+
### Docs-App
|
|
154
|
+
|
|
155
|
+
Die Docs-App ist nicht nur Dokumentation, sondern ein Produktbeispiel. Sie soll zeigen:
|
|
156
|
+
|
|
157
|
+
- Shell-first Rendering mit RMT
|
|
158
|
+
- Parsedown als scheduled Content-Komponente
|
|
159
|
+
- stabile Navigation mit `x-router`
|
|
160
|
+
- Quick Start, RMT Authoring, Linter und LSP als offizielle Developer Journey
|
|
161
|
+
- keine App-spezifische Parallel-Logik, wenn eine fehlende Faehigkeit in XTend-Komponenten gehoert
|
|
162
|
+
|
|
163
|
+
## Non-Goals
|
|
164
|
+
|
|
165
|
+
Diese Entscheidung bedeutet ausdruecklich nicht:
|
|
166
|
+
|
|
167
|
+
- XTend wird zu einem React-/Vue-Ersatz mit eigenem virtuellen DOM.
|
|
168
|
+
- RMT wird an XTend gebunden.
|
|
169
|
+
- Fabric wird zum Parser, Router oder Scheduler-Kernel.
|
|
170
|
+
- `.rmt.json` wird als bevorzugtes Authoring-Format beworben.
|
|
171
|
+
- Editor-Plugins duerfen eigene RMT-Semantik einfuehren.
|
|
172
|
+
- Komponenten duerfen A11y oder Performance als optionale spaetere Politur behandeln.
|
|
173
|
+
|
|
174
|
+
## Konsequenzen
|
|
175
|
+
|
|
176
|
+
1. Neue Architekturarbeit muss zuerst einer Ebene zugeordnet werden: Loader, XTend UI, Fabric, RMT, Tooling oder Docs.
|
|
177
|
+
2. Wenn XTend-spezifisches Verhalten in RMT gebraucht wird, entsteht ein Adapter-Contract, kein Kernel-Sonderfall.
|
|
178
|
+
3. Wenn eine App Sonderlogik braucht, wird zuerst geprueft, ob eine generische Component-, Fabric- oder RMT-Faehigkeit fehlt.
|
|
179
|
+
4. Neue Dokumentation muss native `.rmt` Dateien empfehlen. `.rmt.json` darf nur als Fallback beschrieben werden.
|
|
180
|
+
5. Jede neue First-Class-Komponente braucht RMT-, Fabric-, A11y-, Performance-, Type- und Testabdeckung.
|
|
181
|
+
6. Release- und Reference-Gates bleiben Teil des Architekturvertrags.
|
|
182
|
+
|
|
183
|
+
## Verbindliche Gates
|
|
184
|
+
|
|
185
|
+
Die Architektur-Baseline wird durch lokale Gates abgesichert:
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
node scripts/run_xtend_tests.js architecture
|
|
189
|
+
node scripts/run_xtend_tests.js references --json
|
|
190
|
+
node scripts/run_xtend_tests.js rmt-compatibility --json
|
|
191
|
+
node scripts/run_xtend_tests.js epic14-lsp-handoff --json
|
|
192
|
+
npm run test:release:full:report
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
Fuer gezielte Arbeit bleiben die spezialisierten Gates massgeblich:
|
|
196
|
+
|
|
197
|
+
| Bereich | Gate |
|
|
198
|
+
|---------|------|
|
|
199
|
+
| Core Architektur | `node scripts/run_xtend_tests.js architecture` |
|
|
200
|
+
| Component Catalog | `npm run test:catalog-coverage` |
|
|
201
|
+
| RMT Tooling | `npm run test:rmt-tooling` |
|
|
202
|
+
| LSP Handoff | `npm run test:epic14-lsp-handoff` |
|
|
203
|
+
| Docs Referenzen | `node scripts/run_xtend_tests.js references --json` |
|
|
204
|
+
|
|
205
|
+
## Akzeptierte Folgeentscheidungen
|
|
206
|
+
|
|
207
|
+
Dieses ADR integriert die Ergebnisse der bisherigen Einzelentscheidungen:
|
|
208
|
+
|
|
209
|
+
- Loader und lokale Entwicklung: `xtend.loader.local-development.adr.v1`
|
|
210
|
+
- XTend-Fabric: `xtend.fabric.adr.v1`
|
|
211
|
+
- Security Trust Boundaries: `xtend.security.trust-boundaries.adr.v1`
|
|
212
|
+
- XTendRMT First-Class Fusion: `development/ADR-XTendRMT-First-Class-Fusion.md`
|
|
213
|
+
- RMT Tooling und LSP Handoff: `xtend.epic14.lsp-handoff.v1`
|
|
214
|
+
|
|
215
|
+
Die Einzel-ADRs bleiben als Detailquellen gueltig. Dieses Dokument ist die aktuelle Docs-App-Baseline fuer das Gesamtbild.
|
|
216
|
+
|
|
217
|
+
## Fazit
|
|
218
|
+
|
|
219
|
+
XTend ist heute kein loses Komponentenpaket mehr, sondern eine gekoppelte Plattform aus Web Components, Loader, State, Fabric, RMT und Authoring Tooling.
|
|
220
|
+
|
|
221
|
+
Der wichtigste Produktpfad ist jetzt nicht mehr die reine Flaechenerweiterung, sondern die konsequente Reife dieser Plattform: native `.rmt` Authoring-Erfahrung, bessere Editor-Unterstuetzung, stabile Component Shells, A11y, Performance, Security und nachvollziehbare Release Gates.
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# A11y Keyboard Smokes
|
|
2
|
+
|
|
3
|
+
Contract:
|
|
4
|
+
|
|
5
|
+
```text
|
|
6
|
+
xtend.docs.a11y-keyboard-smokes.v1
|
|
7
|
+
xtend.a11y.browser-keyboard-smoke.v1
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
XTend prueft ab `ER-WP-24` zentrale A11y-Interaktionen browsernah. Der Gate ist kein Ersatz fuer manuelle Screenreader-Reviews, aber er verhindert, dass Fokus- und Keyboard-Pfade unbemerkt aus Core-Komponenten herausfallen.
|
|
11
|
+
|
|
12
|
+
## Fixture
|
|
13
|
+
|
|
14
|
+
Die selbstpruefende Browser-Fixture liegt hier:
|
|
15
|
+
|
|
16
|
+
```text
|
|
17
|
+
tests/browser/fixtures/a11y-focus-keyboard-smoke.html
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Sie nutzt:
|
|
21
|
+
|
|
22
|
+
- `xtend-loader.js`
|
|
23
|
+
- `data-manifest="/tests/browser/fixtures/components/manifest.json"`
|
|
24
|
+
- lokale Component-Module
|
|
25
|
+
- `window.__xtendA11yKeyboardSmokeResult`
|
|
26
|
+
|
|
27
|
+
## Abgedeckte Pfade
|
|
28
|
+
|
|
29
|
+
| Bereich | Komponente | Erwartung |
|
|
30
|
+
|---------|------------|-----------|
|
|
31
|
+
| Routing | `x-link` + `x-router` | `Enter` und `Space` navigieren, `aria-current` folgt der Route |
|
|
32
|
+
| Form | `x-input` + `x-form` | Fokus wird delegiert, Eingabe synchronisiert `xstate` und Formdaten |
|
|
33
|
+
| Tabs | `x-tabs` | `ArrowRight`, `ArrowLeft` und `Enter` bleiben aktivierbar |
|
|
34
|
+
| Overlay | `x-modal` | Initialfokus, Fokusfalle, `Escape` und Fokusrestore funktionieren |
|
|
35
|
+
|
|
36
|
+
`x-dialog` nutzt denselben Overlay-Contract und wird im Gate source-seitig auf Fokusfalle, `Escape` und Fokusrestore geprueft.
|
|
37
|
+
|
|
38
|
+
## Lokale Gates
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
node scripts/run_xtend_tests.js browser --json
|
|
42
|
+
node scripts/run_xtend_tests.js a11y-hydration --json
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Optional kann der Browser-Smoke mit Safari WebDriver ausgefuehrt werden:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
XTEND_BROWSER_SMOKE_DRIVER=safari node scripts/run_xtend_tests.js browser
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Der Standardlauf bleibt deterministisch und benoetigt keinen externen Browser.
|
|
52
|
+
|
|
53
|
+
## Komponentenautoren
|
|
54
|
+
|
|
55
|
+
Neue oder modernisierte Komponenten sollen ihren A11y-Pfad aus dem Profil ableiten:
|
|
56
|
+
|
|
57
|
+
- Routing und Commands: `Enter`, optional `Space`, aktiver ARIA-State.
|
|
58
|
+
- Overlays: Initialfokus, Fokusfalle, `Escape`, Fokusrestore.
|
|
59
|
+
- Form Controls: delegierter Fokus, Eingabeereignisse, State-/Form-Synchronisierung.
|
|
60
|
+
- Composite Widgets: Pfeiltasten und aktueller ARIA-State.
|
|
61
|
+
|
|
62
|
+
Scaffolded Komponenten erhalten ab `ER-WP-23` ein `xtend.a11y.profile.v1`. ER-WP-24 liefert den browsernahen Gate, an den solche Profile spaeter komponentenspezifisch andocken koennen.
|
package/docs/de/about.md
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Über diese Dokumentations-Web App
|
|
2
|
+
|
|
3
|
+
Diese Webanwendung dient als interaktive Dokumentation für das XTend Web-Framework und basiert vollständig auf modernen Web Components. Sie bietet eine modulare, schnelle und benutzerfreundliche Oberfläche für Entwickler und Anwender.
|
|
4
|
+
|
|
5
|
+
## Verwendete Open-Source-Projekte
|
|
6
|
+
|
|
7
|
+
### Parsedown
|
|
8
|
+
Diese Anwendung nutzt für die Markdown-Verarbeitung das Projekt **Parsedown** von Emanuil Rusev.
|
|
9
|
+
|
|
10
|
+
> (c) Emanuil Rusev
|
|
11
|
+
> http://erusev.com
|
|
12
|
+
|
|
13
|
+
### XRouter PHP
|
|
14
|
+
Das Routing und die serverseitige Logik basieren auf einer PHP-Implementierung von XRouter, entwickelt von **CCS Networks**. Das Projekt ist nun unter dem Namen **xrouter.php** verfügbar.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
Weitere Informationen und Credits finden Sie in den jeweiligen Komponenten-Dokumentationen.
|
package/docs/de/api.md
ADDED
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
# XTend API
|
|
2
|
+
|
|
3
|
+
## Uebersicht
|
|
4
|
+
|
|
5
|
+
`api.js` ist die Orchestrierungsschicht zwischen Loader, Core-Komponenten und globalen Helper-APIs. Sie initialisiert die XTend-APIs idempotent, haertet den gemeinsamen UI-State und laedt API-relevante Komponenten aus dem Manifest nach.
|
|
6
|
+
|
|
7
|
+
## Initialisierung
|
|
8
|
+
|
|
9
|
+
Der Loader importiert `api.js` nach dem Manifest-Laden und ruft anschliessend `initXTendAPI(manifest)` auf.
|
|
10
|
+
|
|
11
|
+
```js
|
|
12
|
+
const api = await import('./api.js');
|
|
13
|
+
await api.initXTendAPI(manifest);
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Contract von `initXTendAPI(manifest)`
|
|
17
|
+
|
|
18
|
+
- initialisiert `ui` in `xstate` defensiv und zerstoert keinen bestehenden UI-State bei Mehrfachaufruf
|
|
19
|
+
- stellt Theme-State (`theme`, `themes`) nur dann bereit, wenn er noch nicht existiert
|
|
20
|
+
- laedt die API-relevanten Core-Module ueber Manifest-URLs als ES-Module
|
|
21
|
+
- bindet die globalen Helper erneut an den `window.XTend`-Namespace, falls die API erneut initialisiert wird
|
|
22
|
+
|
|
23
|
+
## Globale APIs
|
|
24
|
+
|
|
25
|
+
Nach erfolgreicher Initialisierung stehen folgende APIs zur Verfuegung:
|
|
26
|
+
|
|
27
|
+
- `window.XTheme`
|
|
28
|
+
- `window.XToast`
|
|
29
|
+
- `window.XAlert`
|
|
30
|
+
- `window.XDialog`
|
|
31
|
+
- `window.XModal`
|
|
32
|
+
|
|
33
|
+
Zusatzlich werden die APIs unter `window.XTend` gespiegelt:
|
|
34
|
+
|
|
35
|
+
- `window.XTend.theme`
|
|
36
|
+
- `window.XTend.toast`
|
|
37
|
+
- `window.XTend.alert`
|
|
38
|
+
- `window.XTend.dialog`
|
|
39
|
+
- `window.XTend.modal`
|
|
40
|
+
- `window.XTend.compliance`
|
|
41
|
+
|
|
42
|
+
Die Legacy-Helper bleiben verfuegbar:
|
|
43
|
+
|
|
44
|
+
- `window.showToast`
|
|
45
|
+
- `window.showAlert`
|
|
46
|
+
- `window.showDialog`
|
|
47
|
+
- `window.showModal`
|
|
48
|
+
|
|
49
|
+
## Compliance-API
|
|
50
|
+
|
|
51
|
+
`window.XTend.compliance` beschreibt den produktiven Core-Review-Contract. Verfuegbare Methoden:
|
|
52
|
+
|
|
53
|
+
- `getChecklist()`
|
|
54
|
+
- `getCoreContracts()`
|
|
55
|
+
- `getThemeTokens(themeName?)`
|
|
56
|
+
|
|
57
|
+
Die Runtime spiegelt diese Metadaten zusaetzlich in `xstate`:
|
|
58
|
+
|
|
59
|
+
- `xtend.compliance.version`
|
|
60
|
+
- `xtend.compliance.checklist`
|
|
61
|
+
- `xtend.compliance.contracts`
|
|
62
|
+
|
|
63
|
+
## UI-State
|
|
64
|
+
|
|
65
|
+
Die API verwaltet den gemeinsamen UI-State unter `xstate.get('ui')`.
|
|
66
|
+
|
|
67
|
+
```js
|
|
68
|
+
{
|
|
69
|
+
toasts: [],
|
|
70
|
+
alerts: [],
|
|
71
|
+
dialogs: [],
|
|
72
|
+
modals: []
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Die API aktualisiert diesen State nur differenziell. Re-Init fuehrt nicht mehr zu einem Reset laufender UI-Eintraege.
|
|
77
|
+
|
|
78
|
+
## Theme-API
|
|
79
|
+
|
|
80
|
+
`window.XTheme` ist die oeffentliche Theme-Fassade. Wichtige Methoden:
|
|
81
|
+
|
|
82
|
+
- `getCurrentTheme()`
|
|
83
|
+
- `getAvailableThemes()`
|
|
84
|
+
- `setTheme(themeName)`
|
|
85
|
+
- `set(name, value)`
|
|
86
|
+
- `get(name)`
|
|
87
|
+
- `subscribe(fn)`
|
|
88
|
+
- `registerTheme(name, properties)`
|
|
89
|
+
- `loadExternalTheme(themeName, cssUrl)`
|
|
90
|
+
- `toggleDarkMode()`
|
|
91
|
+
|
|
92
|
+
`set(name, value)` ist die Kompatibilitaets-Fassade:
|
|
93
|
+
|
|
94
|
+
- `set('dark')` schaltet auf ein Theme
|
|
95
|
+
- `set('--primary-color', '#0e4e81')` setzt eine CSS-Variable fuer das aktuelle Theme
|
|
96
|
+
|
|
97
|
+
## Dialog- und Modal-Flags
|
|
98
|
+
|
|
99
|
+
Die API schreibt Open-State kompatibel fuer bestehende Call-Sites:
|
|
100
|
+
|
|
101
|
+
- Dialog: `dialog-open-<id>`, `xdialog-open-<id>`
|
|
102
|
+
- Modal: `modal-open-<id>`
|
|
103
|
+
|
|
104
|
+
Der kanonische Zielpfad aus der Contract-Matrix bleibt fuer neue Arbeit relevant:
|
|
105
|
+
|
|
106
|
+
- `xtend.component.x-dialog.<id>.open`
|
|
107
|
+
- `xtend.component.x-modal.<id>.open`
|
|
108
|
+
|
|
109
|
+
## XTendRMT Runtime-API
|
|
110
|
+
|
|
111
|
+
XTendRMT ist nicht Teil von `api.js`, aber die oeffentliche XTend-Entwicklerdokumentation fuehrt den produktiven Integrationspfad mit. Die Runtime-Factories liegen in den Artefakten unter `xtendrmt/`:
|
|
112
|
+
|
|
113
|
+
- `createRmtFormat`
|
|
114
|
+
- `createRmtXRouterAdapter`
|
|
115
|
+
- `createRmtXtendComponentAdapter`
|
|
116
|
+
- `createRmtStateSchedulerDiagnosticsBridge`
|
|
117
|
+
|
|
118
|
+
ESM:
|
|
119
|
+
|
|
120
|
+
```js
|
|
121
|
+
import {
|
|
122
|
+
createRmtFormat,
|
|
123
|
+
createRmtXRouterAdapter,
|
|
124
|
+
createRmtXtendComponentAdapter,
|
|
125
|
+
createRmtStateSchedulerDiagnosticsBridge
|
|
126
|
+
} from './xtendrmt/rmt-runtime.esm.js';
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
Browser Classic:
|
|
130
|
+
|
|
131
|
+
```html
|
|
132
|
+
<script src="/xtendrmt/rmt-runtime.browser.js"></script>
|
|
133
|
+
<script type="module">
|
|
134
|
+
const format = window.AppModules.createRmtFormat();
|
|
135
|
+
const rmt = window.xtend.rmt;
|
|
136
|
+
</script>
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
RMT-nahe XTend-Integrationen sollen diese Factories verwenden, statt private Demo-Bruecken oder direkte Kernel-Kopplung aufzubauen. Details stehen in [XTendRMT Runtime Bridge](./xtendrmt-runtime-bridge.md).
|
|
140
|
+
|
|
141
|
+
## Hinweise
|
|
142
|
+
|
|
143
|
+
- `api.js` ist eine Runtime-Orchestrierung, keine statische Komponentenliste.
|
|
144
|
+
- Die API erwartet ein konsistentes Manifest und bereits verfügbare `xstate`-Bootstrap-Infrastruktur.
|
|
145
|
+
- Komponenten sollen weiterhin bevorzugt deklarativ verwendet werden; die API ist fuer dynamische Flows gedacht.
|
|
146
|
+
- Nach Core-Aenderungen sollte `node scripts/verify_xtend_core_contracts.js` ausgefuehrt werden.
|
|
147
|
+
|
|
148
|
+
## Weiterfuehrende Themen
|
|
149
|
+
|
|
150
|
+
- [Manifest-Format](./manifest.md)
|
|
151
|
+
- [XTend Loader](./xtend-loader.md)
|
|
152
|
+
- [xrouter](./components/xrouter.md)
|
|
153
|
+
- [xlink](./components/xlink.md)
|
|
154
|
+
- [xtheme](./components/xtheme.md)
|
|
155
|
+
- [Core Migration Guide](./core-migration-guide.md)
|
|
156
|
+
- [XTendRMT Developer Overview](./xtendrmt-overview.md)
|
|
157
|
+
- [XTendRMT Runtime Bridge](./xtendrmt-runtime-bridge.md)
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Best Practices für XTend
|
|
2
|
+
|
|
3
|
+
Diese Empfehlungen helfen dir, XTend-Projekte robust, performant und wartbar zu gestalten – sowohl für menschliche Entwickler als auch für AI-Coding-Agenten.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Komponenten-Nutzung
|
|
8
|
+
- **Deklarativ bevorzugen:** Nutze XTend-Komponenten möglichst direkt im HTML, nicht nur dynamisch per JS.
|
|
9
|
+
- **Lazy Loading:** Baue Seiten so, dass Komponenten erst geladen werden, wenn sie gebraucht werden (Viewport, User-Interaktion).
|
|
10
|
+
- **Shadow DOM:** Verwende Shadow DOM für Style-Kapselung und Konfliktvermeidung.
|
|
11
|
+
- **Slots & Attribute:** Nutze Slots und Attribute für flexible, wiederverwendbare Komponenten.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## State-Management
|
|
16
|
+
- **xstate nutzen:** Teile globalen und lokalen Zustand über das zentrale State-Management-Modul.
|
|
17
|
+
- **Abonnements:** Reagiere auf State-Änderungen mit `xstate.subscribe` statt aufwändiger DOM-Queries.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Theming & Styling
|
|
22
|
+
- **CSS Custom Properties:** Verwende Variablen für Farben, Abstände, etc. – so bleibt das Design flexibel.
|
|
23
|
+
- **xtheme nutzen:** Setze globale Styles und Theme-Änderungen zentral über das Theme-Modul.
|
|
24
|
+
- **Dark/Light-Mode:** Unterstütze beide Modi und respektiere Systempräferenzen.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Barrierefreiheit (Accessibility)
|
|
29
|
+
- **ARIA-Rollen:** Setze sinnvolle ARIA-Attribute und Rollen.
|
|
30
|
+
- **Keyboard-Navigation:** Stelle sicher, dass alle interaktiven Komponenten per Tastatur bedienbar sind.
|
|
31
|
+
- **Fokus-Management:** Dialoge, Modals und Menüs sollten den Fokus korrekt setzen und zurückgeben.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Performance
|
|
36
|
+
- **Minimiertes Manifest:** Entferne ungenutzte Komponenten aus dem Manifest für Produktions-Builds.
|
|
37
|
+
- **Kleine Bundles:** Halte Komponenten modular und klein, um Ladezeiten zu optimieren.
|
|
38
|
+
- **IntersectionObserver:** Nutze Lazy Loading für große oder selten genutzte Komponenten.
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Entwicklung & Wartung
|
|
43
|
+
- **Dokumentation:** Jede Komponente sollte eine eigene, aktuelle MD-Dokumentation besitzen.
|
|
44
|
+
- **Namenskonventionen:** Halte dich an das `x`-Prefix und sprechende Namen.
|
|
45
|
+
- **Testing:** Teste Komponenten isoliert und im Zusammenspiel.
|
|
46
|
+
- **Querverweise:** Pflege Querverweise in der Doku für bessere Orientierung.
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Testpflicht fuer neue Komponenten
|
|
51
|
+
- **Profil festlegen:** Ordne jede neue oder modernisierte Komponente einem Profil aus `development/XTend-Component-Level-Teststandard.md` zu.
|
|
52
|
+
- **Artefakte vollständig halten:** Komponente, Doku, Component-Suite, Fixture, Typdefinition und Manifest-Eintrag sind Pflicht, sofern nicht explizit begründet ausgenommen.
|
|
53
|
+
- **Scaffold als Standardpfad:** `XTend-Scaffold` muss die Testpflicht aus `development/XTend-Testpflicht-und-Scaffold-Anschluss.md` als Blueprint verwenden.
|
|
54
|
+
- **Lokale Gates ausführen:** Nutze mindestens `node scripts/run_xtend_tests.js components`, `a11y-hydration`, `references` und bei RMT-kompatiblen Scaffold-Artefakten `rmt-compatibility`; bei Core-Bezug zusätzlich `core`, `architecture` und `browser`.
|
|
55
|
+
- **Keine Platzhaltertests:** Testdateien ohne echte Assertions erfüllen die Testpflicht nicht.
|
|
56
|
+
|
|
57
|
+
## XTendRMT-kompatible Entwicklung
|
|
58
|
+
|
|
59
|
+
- **Native Domains bevorzugen:** Neue RMT-nahe Arbeit nutzt `adapters`, `components`, `routes`, `schedules` und `templates` statt operativer `manifest.metadata`-Bloecke.
|
|
60
|
+
- **Kernel-Grenze halten:** XTend, XRouter, DOM, `window.XTend` und `xstate` gehoeren in Adapter oder Host-Code, nicht in den RMT Kernel.
|
|
61
|
+
- **Produktive Factories nutzen:** Verwende `createRmtXRouterAdapter`, `createRmtXtendComponentAdapter` und `createRmtStateSchedulerDiagnosticsBridge` statt privater Demo-Brueckenlogik.
|
|
62
|
+
- **Multi-Host pruefen:** XTend ist First-Class Host, aber nicht Pflicht-Host. Ein nicht-XTend Pfad wie `vanilla.component` sollte bei Framework-nahen Aenderungen mitgedacht werden.
|
|
63
|
+
- **Trusted DOM respektieren:** RMT `dom_descriptor` ist bevorzugt. RMT `html_fragment` und Parsedown HTML brauchen `xtend.security.sanitizing-boundary.v1`; rohe `innerHTML`-Sinks gehoeren nicht in Komponenten oder Adapter.
|
|
64
|
+
- **Docs-App respektieren:** Die offizielle Dokumentation nutzt Parsedown als Parser-Host, rendert ihre Shell aber Shell-first ueber RMT. Neue Docs-Komfortfunktionen sollen `docs/xtendrmt-parsedown-scheduling.md`, `docs.app.shell` und die vorhandenen RMT-Schedules nutzen, statt neben dem Host-Adapter eine zweite SPA-Schicht aufzubauen.
|
|
65
|
+
- **Gates ausfuehren:** Fuer RMT-nahe Aenderungen mindestens `node scripts/run_xtend_tests.js rmt-compatibility --json`, `node scripts/run_xtend_tests.js references --json` und bei Browserpfad `node scripts/run_xtend_tests.js browser --json`.
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## AI-Optimierung
|
|
70
|
+
- **Konsistente API:** Halte Methoden und Attribute konsistent und sprechend.
|
|
71
|
+
- **Beispielcode:** Ergänze jede Doku um konkrete Codebeispiele.
|
|
72
|
+
- **Semantische Struktur:** Nutze klare Überschriften, Tabellen und Listen für AI-Parsing.
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
*Letzte Aktualisierung: 5. Mai 2026*
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# XTend Changelog
|
|
2
|
+
|
|
3
|
+
Dieser Artikel sammelt die historischen Epic-, Workpackage-, Handoff- und
|
|
4
|
+
Gate-Notizen, die frueher in vielen einzelnen Developer-Artikeln standen. Die
|
|
5
|
+
normalen Guides bleiben dadurch auf Produktnutzung und Developer Experience
|
|
6
|
+
fokussiert; dieser Changelog ist der kanonische Ort fuer Fortschritt,
|
|
7
|
+
Release-Signale und technische Historie.
|
|
8
|
+
|
|
9
|
+
## RMT vNext und App-Shell-Authoring
|
|
10
|
+
|
|
11
|
+
- `RMT-VNEXT-PRIM-01` bis `RMT-VNEXT-PRIM-04` haben Grammar, Parser, Semantic
|
|
12
|
+
Graph und Lowering fuer RMT-vNext-Primitives aufgebaut.
|
|
13
|
+
- `RMT-VNEXT-PRIM-05` hat Fabric Lane/Fiber Evidence fuer vNext-authorierte
|
|
14
|
+
Lanes, Route-Fibers und Component-Fibers nachgezogen.
|
|
15
|
+
- `RMT-VNEXT-PRIM-06` hat das Source-to-Sea-Gate aufgebaut: vNext Source,
|
|
16
|
+
Kernel Records, Fabric Telemetry, UI-Marker und Browser-Evidence werden
|
|
17
|
+
ueber Primitive IDs korreliert.
|
|
18
|
+
- `RMT-VNEXT-PRIM-07` hat die Authoring-DX abgeschlossen: Completions, Hover,
|
|
19
|
+
Symbols, Code Actions, Safe Fix-All und VS-Code-Bridge arbeiten aus echten
|
|
20
|
+
RMT-vNext-Quellen.
|
|
21
|
+
- `RMT-VNEXT-PRIM-08` hat Migration und Legacy-Backgrounding abgeschlossen:
|
|
22
|
+
App-Platform-Primitive-JSON bleibt Mirror/Compiler-Target, waehrend vNext
|
|
23
|
+
der Authoring-Pfad ist.
|
|
24
|
+
- `WP-E15-18` hat den vNext Release Handoff gebuendelt. Die Reference Demo
|
|
25
|
+
liegt in `xtendrmt/rmt-vnext-reference-demo.rmt`, der stabile Core-Output in
|
|
26
|
+
`xtendrmt/rmt-vnext-reference-demo.core.json`.
|
|
27
|
+
|
|
28
|
+
## RMT Tooling, LSP und Editor-Integration
|
|
29
|
+
|
|
30
|
+
- `WP-E14-02` bis `WP-E14-04` haben Source Model, Parser/Format Adapter und
|
|
31
|
+
Semantic Graph fuer native `.rmt` Dokumente stabilisiert.
|
|
32
|
+
- `WP-E14-05` bis `WP-E14-10` haben Linter, CLI, Completion, Hover, Document
|
|
33
|
+
Symbols, Definition und sichere Code Actions aufgebaut.
|
|
34
|
+
- `WP-E14-11` hat AI-Agent Repair Reports mit `repairPlan`, `fixOrder`,
|
|
35
|
+
`confidence`, `impact` und No-Op-Erklaerungen eingefuehrt.
|
|
36
|
+
- `WP-E14-12` hat Snippets, Editor Packaging und die VS-Code-Bridge
|
|
37
|
+
vorbereitet.
|
|
38
|
+
- `WP-E14-14` hat Quick Start, Linter- und Language-Server-Dokumentation
|
|
39
|
+
konsolidiert. Der Contract bleibt `xtend.rmt.tooling-docs.v1`; der lokale
|
|
40
|
+
Gate bleibt `node scripts/run_xtend_tests.js rmt-tooling-docs --json`.
|
|
41
|
+
- `WP-E14-15` und `WP-E14-16` haben RMT Tooling Release Gates und den LSP
|
|
42
|
+
Handoff abgeschlossen.
|
|
43
|
+
|
|
44
|
+
## XTendRMT Runtime, Kernel und Fabric
|
|
45
|
+
|
|
46
|
+
- Epic 05 hat XTendRMT als produktiven Scheduler-, Runtime- und
|
|
47
|
+
Templating-Pfad etabliert: native `.rmt` Domains, Runtime Registry, XRouter
|
|
48
|
+
Adapter, XTend Component Adapter und State-/Scheduler-/Diagnostics Bridge.
|
|
49
|
+
- `ER-WP-08` bis `ER-WP-21` haben Fabric als Host-Kern, Component
|
|
50
|
+
Lifecycle Error Boundary, Reporter Adapter, Diagnostics Bridge, Component
|
|
51
|
+
und Route Fibers, Telemetry Snapshots, Performance Measurements, Regression
|
|
52
|
+
und Hydration Policies aufgebaut.
|
|
53
|
+
- `ER-WP-13` hat Fabric-Lanes auf host-neutrale RMT Schedule Records
|
|
54
|
+
abgebildet. Die RMT-Kernel-Grenze bleibt framework-neutral.
|
|
55
|
+
- `RKSH-WP-11` hat Kernel-Migration, Trusted Output Authoring sowie Panic- und
|
|
56
|
+
Recovery-Incident-Handoff dokumentiert.
|
|
57
|
+
|
|
58
|
+
## Component Platform und App-Surfaces
|
|
59
|
+
|
|
60
|
+
- Epic 10 hat TypeScript-first Components, Component Contract v2,
|
|
61
|
+
RMT-first Apps und Platform Gates aufgebaut.
|
|
62
|
+
- Epic 11 hat Component UX, Shell Styling, A11y, Visual Regression,
|
|
63
|
+
Enterprise UX Handoff und Long-Tail-Migration vorbereitet.
|
|
64
|
+
- SurfaceManager-Pakete `WP-SM-01` bis `WP-SM-19` haben RMT Authoring,
|
|
65
|
+
Controller, Window Runtime, SidePanel, Workbench Fixture, Overlay Bridge,
|
|
66
|
+
Native RMT Surfaces, Route Lifecycles, Persistence, Layout Engines,
|
|
67
|
+
Component Lab und Runtime Release Handoff aufgebaut.
|
|
68
|
+
- Epic 18 hat App-Platform-Primitives, Media-Manager-Lessons-Learned,
|
|
69
|
+
Vendor-Bugfix-Backports und generische RMT App-Platform-Fixtures in den
|
|
70
|
+
Upstream-Stand ueberfuehrt.
|
|
71
|
+
|
|
72
|
+
## Quality, Security und Release
|
|
73
|
+
|
|
74
|
+
- Epic 12 hat RC0-Hardening, Visual Snapshot Automation, Design Token
|
|
75
|
+
Productization, RMT DSL Authoring Polish und Adoption Guides gebuendelt.
|
|
76
|
+
- Epic 13 hat RC1 Readiness, Release Owner Acceptance, Conditional Network
|
|
77
|
+
Evidence, Package Export Lock, Trusted DOM, RMT Production Readiness,
|
|
78
|
+
Visual Owner Artifacts und CI-Handoff konsolidiert.
|
|
79
|
+
- `DPF-WP-02` und `DPF-WP-03` haben Release Report, Pack Dry Run Evidence und
|
|
80
|
+
Conditional Network Evidence CI produktisiert.
|
|
81
|
+
- `WP-TypeExports-01` bis `WP-TypeExports-09` haben Package `types`
|
|
82
|
+
Conditions, RMT-/Loader-/API-/Policy-/Builder-/Catalog-/Vendor-Facades und
|
|
83
|
+
Drift Reports abgesichert.
|
|
84
|
+
|
|
85
|
+
## Was gehoert nicht mehr in Einzelartikel?
|
|
86
|
+
|
|
87
|
+
Developer Guides sollen nicht mehr als Release-Protokoll gelesen werden. Neue
|
|
88
|
+
oder ueberarbeitete Artikel sollen:
|
|
89
|
+
|
|
90
|
+
- produktive Nutzung, Syntax und Architektur erklaeren;
|
|
91
|
+
- lokale Befehle nur dort nennen, wo sie fuer den Arbeitsfluss gebraucht
|
|
92
|
+
werden;
|
|
93
|
+
- Epic-, WP-, Status- und Handoff-Historie hier im Changelog ablegen;
|
|
94
|
+
- auf `development/` nur verweisen, wenn ein internes Detail wirklich
|
|
95
|
+
nachvollzogen werden muss.
|
|
96
|
+
|
|
97
|
+
## Relevante Release-nahe Artikel
|
|
98
|
+
|
|
99
|
+
- [RMT vNext Release Handoff](./rmt-vnext-release-handoff.md)
|
|
100
|
+
- [RMT vNext Source-to-Sea Gate](./rmt-vnext-source-to-sea-gate.md)
|
|
101
|
+
- [RMT vNext Fabric Bridge Evidence](./rmt-vnext-fabric-bridge-evidence.md)
|
|
102
|
+
- [RMT vNext Primitive Authoring Tooling](./rmt-vnext-primitive-authoring-tooling.md)
|
|
103
|
+
- [RMT vNext Primitive Migration](./rmt-vnext-primitive-migration.md)
|
|
104
|
+
- [RC1 Readiness](./rc1-readiness.md)
|
|
105
|
+
- [RC1 Gate Matrix und CI-Handoff](./rc1-gate-matrix-ci-handoff.md)
|
|
106
|
+
- [Release Report und Pack Dry Run Evidence](./release-report-pack-dry-run-evidence.md)
|
|
107
|
+
- [TypeExports](./type-exports.md)
|