@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,333 @@
|
|
|
1
|
+
# XTendRMT Native Authoring Guide
|
|
2
|
+
|
|
3
|
+
- Status: produktiv nach Epic 05 Abschluss, vNext-first aktualisiert
|
|
4
|
+
- Contract: `xtend.rmt.native-authoring-guide.v1`
|
|
5
|
+
- Mindestgates:
|
|
6
|
+
- `node scripts/run_xtend_tests.js rmt-compatibility --json`
|
|
7
|
+
- `node scripts/run_xtend_tests.js browser --json`
|
|
8
|
+
- `node scripts/run_xtend_tests.js references --json`
|
|
9
|
+
|
|
10
|
+
## Zweck
|
|
11
|
+
|
|
12
|
+
Dieser Guide beschreibt das produktive Authoring-Modell fuer native `.rmt`
|
|
13
|
+
Dokumente mit XTend UI und XRouter. Der empfohlene Weg fuer neue Apps ist RMT
|
|
14
|
+
vNext: App Shell, Surfaces, Routes, State, Events, Hydration und Fabric-Lanes
|
|
15
|
+
stehen in einer lesbaren RMT-Quelle. Legacy- und App-DSL-JSON bleiben
|
|
16
|
+
Compatibility Layer, Runtime Registry und Compiler-Target, aber nicht der
|
|
17
|
+
normale Autorenpfad.
|
|
18
|
+
|
|
19
|
+
`.rmt` ist der kanonische Dateityp. Server sollten ihn als
|
|
20
|
+
`application/vnd.xtendrmt.rmt+json` oder kompatibel als Text ausliefern; der
|
|
21
|
+
Runtime-Loader liest RMT-Dokumente als Text und parst sie ueber
|
|
22
|
+
`createRmtFormat().parseDocument(...)`. JSON-Endungen bleiben nur fuer
|
|
23
|
+
Edge-Case-Hosts ohne native MIME-Unterstuetzung vorgesehen.
|
|
24
|
+
|
|
25
|
+
Fuer einen kompakten Produktueberblick siehe [XTendRMT Developer
|
|
26
|
+
Overview](./xtendrmt-overview.md). Die referenzartige DSL-Beschreibung liegt in
|
|
27
|
+
[XTendRMT App-DSL Reference](./xtendrmt-app-dsl.md); Runtime-Factories und
|
|
28
|
+
Bridge-Verkabelung liegen in [XTendRMT Runtime Bridge](./xtendrmt-runtime-bridge.md).
|
|
29
|
+
|
|
30
|
+
Die Produktgrenze bleibt:
|
|
31
|
+
|
|
32
|
+
- XTend UI ist das UI-Builder- und Web-Component-Produkt.
|
|
33
|
+
- XTendRMT ist Scheduler, Runtime Kernel und Templating Engine.
|
|
34
|
+
- XRouter ist der erste produktive Router Adapter.
|
|
35
|
+
- XTend Components sind First-Class RMT Components ueber `xtend.component`.
|
|
36
|
+
- Nicht-XTend Hosts bleiben ueber eigene Adapter gleichberechtigt.
|
|
37
|
+
- Der RMT Kernel importiert keine XTend-, XRouter-, DOM- oder Browser-Typen.
|
|
38
|
+
|
|
39
|
+
Ab `WP-E13-09` ist [RMT Production Readiness](./rmt-production-readiness.md)
|
|
40
|
+
der RC1-Schnitt fuer diesen Pfad. Der Contract
|
|
41
|
+
`xtend.epic13.rmt-production-readiness.v1` wird lokal ueber
|
|
42
|
+
`node scripts/run_xtend_tests.js epic13-rmt-production-readiness --json`
|
|
43
|
+
geprueft und buendelt die bestehenden RMT-, Component-, Fabric- und
|
|
44
|
+
Telemetry-Gates.
|
|
45
|
+
|
|
46
|
+
Ab Epic 14 ist der native Authoring-Pfad auch toolgestuetzt:
|
|
47
|
+
|
|
48
|
+
- [RMT Linter und AI-Agent Repair Report](./rmt-linter.md) beschreibt
|
|
49
|
+
`xt rmt lint`, JSON-Reports, `--fail-on` und `--agent`.
|
|
50
|
+
- [RMT Language Server und Editor Setup](./rmt-language-server.md) beschreibt
|
|
51
|
+
LSP, Snippets und Editor-Anbindung fuer VS Code, JetBrains, Neovim und Helix.
|
|
52
|
+
- `node scripts/run_xtend_tests.js rmt-language-regression --json` prueft
|
|
53
|
+
valide, defekte, Legacy- und groessere RMT-Dokumente ueber Parser, Linter,
|
|
54
|
+
CLI, LSP und Agent-Report hinweg.
|
|
55
|
+
|
|
56
|
+
## Minimaler vNext-Aufbau
|
|
57
|
+
|
|
58
|
+
Neue App-Shells starten mit einer vNext-Quelle:
|
|
59
|
+
|
|
60
|
+
```rmt
|
|
61
|
+
template settings.app {
|
|
62
|
+
state settings.tab type string initial "profile"
|
|
63
|
+
|
|
64
|
+
selector settings.view from state settings.tab {
|
|
65
|
+
output SettingsView
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
action settings.save {
|
|
69
|
+
input tab string
|
|
70
|
+
reduce state.settings.tab = input.tab
|
|
71
|
+
emit settings.saved with action settings.save
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
portal surface.root root "#app-root" layer surface
|
|
75
|
+
|
|
76
|
+
surface settings.card kind page component x-card {
|
|
77
|
+
source selector settings.view
|
|
78
|
+
portal surface.root
|
|
79
|
+
|
|
80
|
+
lane visible weight 80 {
|
|
81
|
+
mount x-card
|
|
82
|
+
hydrate settings-card from selector settings.view
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
on submit target settings-form -> action settings.save {
|
|
86
|
+
payload tab from target.dataset.tab
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Der Compiler erzeugt daraus Core- und Kernel-Records fuer `adapters`,
|
|
93
|
+
`components`, `routes`, `schedules`, `surfaces` und `templates`. Diese Records
|
|
94
|
+
sind Runtime-Registry und Mirror; App-Autoren arbeiten in vNext.
|
|
95
|
+
|
|
96
|
+
## Adapter und Host-Grenze
|
|
97
|
+
|
|
98
|
+
Adapter beschreiben Host-Faehigkeiten. Sie sind Daten im RMT Dokument, keine
|
|
99
|
+
Kernel-Imports. Der aktuelle Produktpfad kennt diese stabilen Adapter-IDs:
|
|
100
|
+
|
|
101
|
+
- `xtend.xrouter` fuer native XRouter Routes.
|
|
102
|
+
- `xtend.component` fuer XTend Custom Elements.
|
|
103
|
+
- `xtend.surface` fuer SurfaceManager-, SidePanel- und Overlay-Handoffs.
|
|
104
|
+
- `rmt.state-scheduler-diagnostics` fuer Adapter Results, Scheduler Endpoints
|
|
105
|
+
und Diagnostics.
|
|
106
|
+
- `vanilla.component` als Beispiel fuer einen nicht-XTend Component Host.
|
|
107
|
+
|
|
108
|
+
`kernelVisible: false` bleibt fuer host-spezifische Adapterdaten der Normalfall.
|
|
109
|
+
Der Kernel darf Records normalisieren, indizieren und schedulen, aber keine
|
|
110
|
+
Host-Runtime laden.
|
|
111
|
+
|
|
112
|
+
## Components, Routes und Schedules in vNext
|
|
113
|
+
|
|
114
|
+
Components werden ueber `surface ... component ...` sichtbar. Route- und
|
|
115
|
+
Schedule-Informationen bleiben in der RMT-Quelle deklarativ und werden vom Host
|
|
116
|
+
ueber Adapter ausgefuehrt:
|
|
117
|
+
|
|
118
|
+
```rmt
|
|
119
|
+
template settings.routes {
|
|
120
|
+
portal surface.root root "#app-root" layer surface
|
|
121
|
+
|
|
122
|
+
surface settings.page kind page component x-section {
|
|
123
|
+
portal surface.root
|
|
124
|
+
|
|
125
|
+
lane visible weight 80 {
|
|
126
|
+
hydrate settings-shell from endpoint xtendrmt.route.render
|
|
127
|
+
hydrate settings-form from endpoint xtendrmt.component.hydrate
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
lane idle weight 20 {
|
|
131
|
+
hydrate settings-help from endpoint xtendrmt.component.hydrate
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Der Normalizer macht daraus Runtime-Registry-Eintraege, die Adapter ueber
|
|
138
|
+
`componentRegistry.byAdapter["xtend.component"]`, `componentRegistry.byTag[...]`
|
|
139
|
+
und Route-/Schedule-Indizes konsumieren. XRouter-Mapping, `registerRoutes`,
|
|
140
|
+
Custom-Element-Registration, DOM-Erzeugung und Hydration bleiben Host-Aufgabe.
|
|
141
|
+
|
|
142
|
+
## Surfaces und Templates
|
|
143
|
+
|
|
144
|
+
Komplexe App-Shells werden in vNext als Surfaces und Portals beschrieben:
|
|
145
|
+
|
|
146
|
+
```rmt
|
|
147
|
+
template workbench.app {
|
|
148
|
+
state workbench.selection type object initial null
|
|
149
|
+
|
|
150
|
+
portal surface.root root "#workbench-root" layer surface
|
|
151
|
+
|
|
152
|
+
surface workbench.manager kind workspace component x-surface-manager {
|
|
153
|
+
portal surface.root
|
|
154
|
+
|
|
155
|
+
lane visible weight 90 {
|
|
156
|
+
hydrate surface-manager from endpoint xtendrmt.component.mount
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
surface workbench.inspector kind window component x-surface-window {
|
|
161
|
+
source state workbench.selection
|
|
162
|
+
portal surface.root
|
|
163
|
+
|
|
164
|
+
lane user-blocking weight 95 {
|
|
165
|
+
hydrate inspector-window from state workbench.selection
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
Das Lowering kann daraus weiterhin `dom_descriptor` Template Records und
|
|
172
|
+
native `surfaces` Records erzeugen. `html_fragment` bleibt kompatibel, ist aber
|
|
173
|
+
DOM-untrusted und braucht `xtend.security.sanitizing-boundary.v1`. Der Kernel
|
|
174
|
+
sanitized kein HTML; Host Adapter besitzen den Trusted-DOM-Sink. Siehe
|
|
175
|
+
[Trusted DOM und Sanitizing](./trusted-dom-sanitizing.md).
|
|
176
|
+
|
|
177
|
+
Der abgeschlossene Surface-Authoring-Pfad liegt in [SurfaceManager Authoring
|
|
178
|
+
Guide](./surface-manager-authoring-guide.md) (`docs/surface-manager-authoring-guide.md`).
|
|
179
|
+
|
|
180
|
+
## Runtime-Verkabelung
|
|
181
|
+
|
|
182
|
+
Der produktive Browser-/ESM-Pfad bleibt stabil:
|
|
183
|
+
|
|
184
|
+
1. `createRmtFormat().normalizeDocument(document)`
|
|
185
|
+
2. `createRmtFormat().createRuntimeRegistries(normalizedDocument)`
|
|
186
|
+
3. `createRmtXRouterAdapter(...).registerRoutes(registry)`
|
|
187
|
+
4. `createRmtXtendComponentAdapter(...).mountComponent(...)` und
|
|
188
|
+
`hydrateComponent(...)`
|
|
189
|
+
|
|
190
|
+
Adapter Results koennen anschliessend ueber
|
|
191
|
+
`createRmtStateSchedulerDiagnosticsBridge(...).recordAdapterResult(...)` an
|
|
192
|
+
`xstate`, Scheduler und Diagnostics Hub gespiegelt werden.
|
|
193
|
+
|
|
194
|
+
Die stabilen Factory-Namen fuer Adapterdokumentation und Tooling bleiben
|
|
195
|
+
`createRmtXRouterAdapter`, `createRmtXtendComponentAdapter` und
|
|
196
|
+
`createRmtStateSchedulerDiagnosticsBridge`. Die Standard-Policies bleiben
|
|
197
|
+
`route.visible.render` fuer sichtbares Routing und `component.idle.hydrate`
|
|
198
|
+
fuer nachgelagerte Component-Hydration.
|
|
199
|
+
|
|
200
|
+
## Authoring Tooling
|
|
201
|
+
|
|
202
|
+
Empfohlener lokaler Ablauf:
|
|
203
|
+
|
|
204
|
+
```bash
|
|
205
|
+
xt rmt lint app.rmt
|
|
206
|
+
xt rmt lint app.rmt --json
|
|
207
|
+
xt rmt lint app.rmt --agent
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
Die IDE-Anbindung startet denselben Sprachkern ueber:
|
|
211
|
+
|
|
212
|
+
```bash
|
|
213
|
+
node tools/rmt-language-server/server.js
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
Wichtig: Linter, LSP, Code Actions und Agent Report teilen sich den gleichen
|
|
217
|
+
Diagnosekern. Editor-Packages und AI-Agenten sollen keine eigenen RMT-Regeln
|
|
218
|
+
implementieren.
|
|
219
|
+
|
|
220
|
+
Neue App-Shells koennen ueber den Snippet-Prefix `rmt-app` gestartet werden.
|
|
221
|
+
Weitere Prefixes sind `rmt-component`, `rmt-route`, `rmt-schedule`,
|
|
222
|
+
`rmt-template-dom`, `rmt-template-html` und `rmt-vnext-primitive-shell`.
|
|
223
|
+
|
|
224
|
+
## Fabric/Lane-Ingestion im Component Adapter
|
|
225
|
+
|
|
226
|
+
Der XTend Component Adapter wertet ab `xtend.component.fabric-lane-ingestion.v2`
|
|
227
|
+
Fabric- und Lane-Hints direkt beim Mounting und bei Hydration aus. Die
|
|
228
|
+
Precedence bleibt:
|
|
229
|
+
|
|
230
|
+
1. `rmt.schedule-record`
|
|
231
|
+
2. `rmt.component-metadata`
|
|
232
|
+
3. `fabric.runtime-override`
|
|
233
|
+
4. `component.static-contract`
|
|
234
|
+
5. `scaffold.blueprint-default`
|
|
235
|
+
|
|
236
|
+
In vNext kommt die bevorzugte Quelle aus `lane`- und Lifecycle-Klauseln. Der
|
|
237
|
+
Adapter stellt dafuer `resolveFabricContext(componentRef, operation, model,
|
|
238
|
+
options)` bereit. `mountComponent(...)` und `hydrateComponent(...)` spiegeln
|
|
239
|
+
den Context in `result.metadata.fabric` und setzen DOM-Attribute fuer Lane,
|
|
240
|
+
RMT-Lane, Fiber, Source und Endpoint. Konflikte erzeugen
|
|
241
|
+
`rmt.xtend.component.fabric_lane.conflict`.
|
|
242
|
+
|
|
243
|
+
Der lokale Gate ist:
|
|
244
|
+
|
|
245
|
+
```bash
|
|
246
|
+
node scripts/run_xtend_tests.js rmt-component-fabric-ingestion --json
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
## Component Lifecycle Telemetry
|
|
250
|
+
|
|
251
|
+
Ab `xtend.component.lifecycle-telemetry.v1` erzeugt derselbe Adapter
|
|
252
|
+
standardisierte Component Lifecycle Telemetry. RMT-Dokumente muessen dafuer
|
|
253
|
+
keinen XTend-Code importieren; sie liefern nur Component-, Route-, Schedule-
|
|
254
|
+
und Fabric-Kontext. Der Host kann `telemetryCollector`, `recordTelemetry` oder
|
|
255
|
+
eine Fabric-Instanz uebergeben.
|
|
256
|
+
|
|
257
|
+
```js
|
|
258
|
+
const records = [];
|
|
259
|
+
adapter.mountComponent(root, 'pages.settings', model, {
|
|
260
|
+
mapping,
|
|
261
|
+
telemetryCollector: records
|
|
262
|
+
});
|
|
263
|
+
|
|
264
|
+
const snapshot = fabric.createTelemetrySnapshot({
|
|
265
|
+
componentTelemetry: records
|
|
266
|
+
});
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
`snapshot.componentTelemetry` aggregiert `mount`, `hydrate`, `render`, `update`,
|
|
270
|
+
`event`, `unmount` und `error` nach Operation, Component und Lane. Component-
|
|
271
|
+
Fehler, Deadline-Ueberschreitungen und explizite `backpressureSignal` Metadata
|
|
272
|
+
koennen Backpressure erzeugen. Der Gate ist
|
|
273
|
+
`node scripts/run_xtend_tests.js rmt-component-lifecycle-telemetry --json`.
|
|
274
|
+
|
|
275
|
+
Hosts koennen Fabric Snapshots direkt an die produktive RMT Bridge uebergeben:
|
|
276
|
+
|
|
277
|
+
```js
|
|
278
|
+
bridge.recordTelemetrySnapshot(snapshot, {
|
|
279
|
+
scheduleRef: "diagnostics.snapshot"
|
|
280
|
+
});
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
Die Bridge spiegelt daraus `rmt.telemetry.lastSnapshot` und
|
|
284
|
+
`rmt.backpressure.*` und plant bei Bedarf den Diagnostics-Snapshot-Endpunkt.
|
|
285
|
+
|
|
286
|
+
## Multi-Host-Regel
|
|
287
|
+
|
|
288
|
+
Native RMT Components duerfen nicht implizit XTend bedeuten. Ein nicht-XTend
|
|
289
|
+
Host nutzt denselben vNext-Aufbau mit eigener Adapter-ID und eigener
|
|
290
|
+
Host-Ausfuehrung:
|
|
291
|
+
|
|
292
|
+
```rmt
|
|
293
|
+
template vanilla.app {
|
|
294
|
+
portal surface.root root "#vanilla-root" layer surface
|
|
295
|
+
|
|
296
|
+
surface vanilla.panel kind card component vanilla-panel {
|
|
297
|
+
portal surface.root
|
|
298
|
+
|
|
299
|
+
lane visible weight 60 {
|
|
300
|
+
hydrate vanilla-panel from endpoint xtendrmt.vanilla.mount
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
Der Browser-Smoke `tests/browser/fixtures/rmt-xrouter-xtend-smoke.html` prueft
|
|
307
|
+
genau diesen Pfad. Damit ist Framework-Agnostik nicht nur Architekturziel,
|
|
308
|
+
sondern Regression.
|
|
309
|
+
|
|
310
|
+
## Kernel Boundary
|
|
311
|
+
|
|
312
|
+
Der RMT Kernel darf nicht importieren oder voraussetzen:
|
|
313
|
+
|
|
314
|
+
- `x-router`
|
|
315
|
+
- konkrete `x-*` Komponenten
|
|
316
|
+
- XTend Manifest-Strukturen
|
|
317
|
+
- `window.XTend`
|
|
318
|
+
- `xstate`
|
|
319
|
+
- Browser DOM APIs
|
|
320
|
+
|
|
321
|
+
Der Kernel darf normalisieren, indizieren, validieren und Schedule Policies
|
|
322
|
+
beschreiben. Host-Ausfuehrung bleibt Adapterarbeit.
|
|
323
|
+
|
|
324
|
+
## Review-Checkliste
|
|
325
|
+
|
|
326
|
+
Vor einem neuen nativen `.rmt` Dokument pruefen:
|
|
327
|
+
|
|
328
|
+
- beschreibt die Quelle App Shell, Surfaces, Lanes und Events in RMT vNext?
|
|
329
|
+
- sind Legacy-/App-DSL-JSON nur noch Compiler-Output, Mirror oder Migration?
|
|
330
|
+
- bleiben XTend-spezifische Daten ausserhalb des Kernels?
|
|
331
|
+
- referenzieren Lifecycle-Operationen stabile Endpoints und Adaptergrenzen?
|
|
332
|
+
- existiert fuer nicht-XTend Hosts ein eigener Adapter statt XTend-Fallback?
|
|
333
|
+
- laufen `rmt-compatibility`, `browser` und `references` Gates?
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# XTendRMT Developer Overview
|
|
2
|
+
|
|
3
|
+
- Contract: `xtend.docs.xtendrmt-overview.v1`
|
|
4
|
+
- Produktversion: `XTendRMT 0.2.0`
|
|
5
|
+
|
|
6
|
+
XTendRMT ist die deklarative App-Schicht von XTend. Entwickler schreiben eine
|
|
7
|
+
lesbare `.rmt` Quelle; der Compiler erzeugt daraus Core Records, Kernel-
|
|
8
|
+
Artefakte, Source Maps und Adapter-Uebergaben. XTend UI bleibt das
|
|
9
|
+
Web-Component-System, XTendRMT beschreibt App-Struktur und Lifecycle.
|
|
10
|
+
|
|
11
|
+
## Produktgrenze
|
|
12
|
+
|
|
13
|
+
| Ebene | Verantwortung |
|
|
14
|
+
| --- | --- |
|
|
15
|
+
| RMT vNext | App Shell, Surfaces, State, Selectors, Actions, Events, Resources, Lanes |
|
|
16
|
+
| RMT Kernel | Normalisierung, Scheduling, Diagnostics, Source Maps, Kernel Records |
|
|
17
|
+
| Host Adapter | XTend Components, XRouter, DOM, Browser APIs, Framework-Bridges |
|
|
18
|
+
| XTend UI | Web Components, Styling, A11y, Interaktion, sichtbare UI |
|
|
19
|
+
| Fabric | Lanes, Fibers, Telemetry, Backpressure und Runtime-Diagnostics |
|
|
20
|
+
|
|
21
|
+
Der Kernel bleibt framework-agnostisch. Er importiert keine XTend Components,
|
|
22
|
+
kein XRouter-Modul, keine Browser-APIs und keine Host-Runtime. Alles, was DOM,
|
|
23
|
+
Routing, Component-Importe oder Browser-Zustaende braucht, gehoert in Adapter.
|
|
24
|
+
|
|
25
|
+
## Warum RMT vNext?
|
|
26
|
+
|
|
27
|
+
RMT vNext ist die bevorzugte Syntax fuer neue Apps:
|
|
28
|
+
|
|
29
|
+
- Eine App Shell entsteht aus einer Quelle statt aus verstreutem HTML,
|
|
30
|
+
Legacy-JSON und Host-Code.
|
|
31
|
+
- UI-Objekte bleiben ueber Primitive IDs, Source Maps, Kernel Records, Fabric
|
|
32
|
+
Fibers und DOM-Marker korrelierbar.
|
|
33
|
+
- State, Selectors, Actions, DataSources, Events, Portals, Overlays,
|
|
34
|
+
Resources und Surfaces sind erstklassige Authoring-Primitive.
|
|
35
|
+
- Editor-DX kommt direkt aus dem Language Server: Completion, Hover, Document
|
|
36
|
+
Symbols, Definition und Code Actions.
|
|
37
|
+
- Legacy- und App-Platform-JSON bleiben kompatible Targets, aber nicht der
|
|
38
|
+
normale Authoring-Pfad.
|
|
39
|
+
|
|
40
|
+
## Kleines mentales Modell
|
|
41
|
+
|
|
42
|
+
```text
|
|
43
|
+
app.rmt
|
|
44
|
+
-> vNext parser
|
|
45
|
+
-> semantic primitive graph
|
|
46
|
+
-> core document + kernel records
|
|
47
|
+
-> DOM descriptor renderer + component capability registry
|
|
48
|
+
-> host adapter
|
|
49
|
+
-> XTend Components / XRouter / Fabric
|
|
50
|
+
-> sichtbare App im Browser
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Ein Surface beschreibt einen sichtbaren Bereich. Eine Lane beschreibt, wann
|
|
54
|
+
und mit welcher Prioritaet Arbeit ausgefuehrt wird. Actions und Events
|
|
55
|
+
beschreiben Interaktion. Resources beschreiben Besitz und Cleanup. Adapter
|
|
56
|
+
setzen diese Beschreibung in echte Komponenten und Browser-Arbeit um.
|
|
57
|
+
|
|
58
|
+
## Kernartefakte
|
|
59
|
+
|
|
60
|
+
- `xtendrmt/rmt-core.esm.js`
|
|
61
|
+
- `xtendrmt/rmt-runtime.esm.js`
|
|
62
|
+
- `xtendrmt/rmt-runtime.browser.js`
|
|
63
|
+
- `xtendrmt/rmt-core.d.ts`
|
|
64
|
+
- `xtendrmt/rmt.schema.json`
|
|
65
|
+
- `xtendrmt/rmt-manifest.json`
|
|
66
|
+
|
|
67
|
+
## Wichtige APIs und Adapter
|
|
68
|
+
|
|
69
|
+
- Runtime Registry fuer Route- und Component-Indizes
|
|
70
|
+
- Component Capability Registry `createRmtComponentCapabilityRegistry`
|
|
71
|
+
- XRouter Adapter `createRmtXRouterAdapter`
|
|
72
|
+
- XTend Component Adapter `createRmtXtendComponentAdapter`
|
|
73
|
+
- State-/Scheduler-/Diagnostics Bridge `createRmtStateSchedulerDiagnosticsBridge`
|
|
74
|
+
- RMT Language Server fuer Editor-Integrationen
|
|
75
|
+
- Compiler-Ausgaben fuer Core, App-Platform und Kernel Records
|
|
76
|
+
|
|
77
|
+
## Offizielle Entwicklerdokumente
|
|
78
|
+
|
|
79
|
+
| Thema | Dokument |
|
|
80
|
+
| --- | --- |
|
|
81
|
+
| Erste App | [Quick Start Guide](./quick-start-guide.md) |
|
|
82
|
+
| vNext App Authoring | [RMT vNext Authoring Guide](./rmt-vnext-authoring.md) |
|
|
83
|
+
| RMT und XTend UI | [RMT vNext Component Primitives und XTend UI](./rmt-vnext-component-primitives.md) |
|
|
84
|
+
| Native Authoring | [XTendRMT Native Authoring Guide](./xtendrmt-native-authoring.md) |
|
|
85
|
+
| App-DSL Referenz | [XTendRMT App-DSL Reference](./xtendrmt-app-dsl.md) |
|
|
86
|
+
| Runtime Bridge und Adapter | [XTendRMT Runtime Bridge](./xtendrmt-runtime-bridge.md) |
|
|
87
|
+
| Migration aus alten Metadatenpfaden | [XTendRMT Native Migration Guide](./xtendrmt-migration-guide.md) |
|
|
88
|
+
| Editor Setup | [RMT Language Server und Editor Setup](./rmt-language-server.md) |
|
|
89
|
+
| Historie | [XTend Changelog](./changelog.md) |
|
|
90
|
+
|
|
91
|
+
## Lokaler Check fuer RMT-Arbeit
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
xt rmt lint app.rmt
|
|
95
|
+
node tools/rmt-language-server/server.js
|
|
96
|
+
node scripts/run_xtend_tests.js rmt-vnext-parser rmt-vnext-compiler rmt-vnext-tooling --json
|
|
97
|
+
node scripts/run_xtend_tests.js rmt-vnext-component-primitives --json
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Fuer Runtime- und Adapter-Paritaet bleiben zwei repo-lokale Gates wichtig:
|
|
101
|
+
|
|
102
|
+
- `tests/browser/fixtures/rmt-xrouter-xtend-smoke.html` prueft, dass RMT,
|
|
103
|
+
XRouter, XTend Components und Vanilla-Host zusammen sichtbar rendern.
|
|
104
|
+
- `node scripts/verify_xtendrmt_artifact_parity.js --json` prueft, dass
|
|
105
|
+
Schema, Manifest, Typen, ESM-Bundles und Browser-Bundle zusammenpassen.
|
|
106
|
+
|
|
107
|
+
Neue RMT-nahe Arbeit soll zuerst klaeren, ob sie Kernel-, Syntax-, Adapter-,
|
|
108
|
+
Host- oder Dokumentationsverantwortung ist. XTend-spezifisches Verhalten wird
|
|
109
|
+
ueber Adapter modelliert, nicht als Kernel-Sonderfall.
|