@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,336 @@
|
|
|
1
|
+
# XTendRMT Native Authoring Guide
|
|
2
|
+
|
|
3
|
+
- Status: productive after Epic 05 completion, updated vNext-first
|
|
4
|
+
- Contract: `xtend.rmt.native-authoring-guide.v1`
|
|
5
|
+
- Minimum gates:
|
|
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
|
+
## Purpose
|
|
11
|
+
|
|
12
|
+
This guide describes the productive authoring model for native `.rmt` documents
|
|
13
|
+
with XTend UI and XRouter. The recommended path for new apps is RMT vNext: app
|
|
14
|
+
shell, surfaces, routes, state, events, hydration, and Fabric lanes live in a
|
|
15
|
+
readable RMT source. Legacy and App-DSL JSON remain compatibility layer,
|
|
16
|
+
runtime registry, and compiler target, but they are not the normal authoring
|
|
17
|
+
path.
|
|
18
|
+
|
|
19
|
+
`.rmt` is the canonical file type. Servers should serve it as
|
|
20
|
+
`application/vnd.xtendrmt.rmt+json` or compatibly as text; the runtime loader
|
|
21
|
+
reads RMT documents as text and parses them through
|
|
22
|
+
`createRmtFormat().parseDocument(...)`. JSON extensions are intended only for
|
|
23
|
+
edge-case hosts without native MIME support.
|
|
24
|
+
|
|
25
|
+
For a compact product overview, see
|
|
26
|
+
[XTendRMT Developer Overview](./xtendrmt-overview.md). The reference-style DSL
|
|
27
|
+
description lives in [XTendRMT App DSL Reference](./xtendrmt-app-dsl.md);
|
|
28
|
+
runtime factories and bridge wiring live in
|
|
29
|
+
[XTendRMT Runtime Bridge](./xtendrmt-runtime-bridge.md).
|
|
30
|
+
|
|
31
|
+
The product boundary remains:
|
|
32
|
+
|
|
33
|
+
- XTend UI is the UI builder and Web Component product.
|
|
34
|
+
- XTendRMT is the scheduler, runtime kernel, and templating engine.
|
|
35
|
+
- XRouter is the first productive router adapter.
|
|
36
|
+
- XTend Components are first-class RMT components through `xtend.component`.
|
|
37
|
+
- Non-XTend hosts remain equal through their own adapters.
|
|
38
|
+
- The RMT kernel imports no XTend, XRouter, DOM, or browser types.
|
|
39
|
+
|
|
40
|
+
Starting with `WP-E13-09`,
|
|
41
|
+
[RMT Production Readiness](./rmt-production-readiness.md) is the RC1 boundary
|
|
42
|
+
for this path. The contract `xtend.epic13.rmt-production-readiness.v1` is
|
|
43
|
+
checked locally through
|
|
44
|
+
`node scripts/run_xtend_tests.js epic13-rmt-production-readiness --json` and
|
|
45
|
+
bundles the existing RMT, component, Fabric, and telemetry gates.
|
|
46
|
+
|
|
47
|
+
Starting with Epic 14, the native authoring path is tool-supported as well:
|
|
48
|
+
|
|
49
|
+
- [RMT Linter and AI-Agent Repair Report](./rmt-linter.md) describes
|
|
50
|
+
`xt rmt lint`, JSON reports, `--fail-on`, and `--agent`.
|
|
51
|
+
- [RMT Language Server and Editor Setup](./rmt-language-server.md) describes
|
|
52
|
+
LSP, snippets, and editor integration for VS Code, JetBrains, Neovim, and
|
|
53
|
+
Helix.
|
|
54
|
+
- `node scripts/run_xtend_tests.js rmt-language-regression --json` checks
|
|
55
|
+
valid, broken, legacy, and larger RMT documents across parser, linter, CLI,
|
|
56
|
+
LSP, and agent report.
|
|
57
|
+
|
|
58
|
+
## Minimal vNext Structure
|
|
59
|
+
|
|
60
|
+
New app shells start with a vNext source:
|
|
61
|
+
|
|
62
|
+
```rmt
|
|
63
|
+
template settings.app {
|
|
64
|
+
state settings.tab type string initial "profile"
|
|
65
|
+
|
|
66
|
+
selector settings.view from state settings.tab {
|
|
67
|
+
output SettingsView
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
action settings.save {
|
|
71
|
+
input tab string
|
|
72
|
+
reduce state.settings.tab = input.tab
|
|
73
|
+
emit settings.saved with action settings.save
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
portal surface.root root "#app-root" layer surface
|
|
77
|
+
|
|
78
|
+
surface settings.card kind page component x-card {
|
|
79
|
+
source selector settings.view
|
|
80
|
+
portal surface.root
|
|
81
|
+
|
|
82
|
+
lane visible weight 80 {
|
|
83
|
+
mount x-card
|
|
84
|
+
hydrate settings-card from selector settings.view
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
on submit target settings-form -> action settings.save {
|
|
88
|
+
payload tab from target.dataset.tab
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
The compiler creates core and kernel records for `adapters`, `components`,
|
|
95
|
+
`routes`, `schedules`, `surfaces`, and `templates`. These records are runtime
|
|
96
|
+
registry and mirror; app authors work in vNext.
|
|
97
|
+
|
|
98
|
+
## Adapter and Host Boundary
|
|
99
|
+
|
|
100
|
+
Adapters describe host capabilities. They are data in the RMT document, not
|
|
101
|
+
kernel imports. The current product path knows these stable adapter IDs:
|
|
102
|
+
|
|
103
|
+
- `xtend.xrouter` for native XRouter routes.
|
|
104
|
+
- `xtend.component` for XTend Custom Elements.
|
|
105
|
+
- `xtend.surface` for SurfaceManager, SidePanel, and overlay handoffs.
|
|
106
|
+
- `rmt.state-scheduler-diagnostics` for adapter results, scheduler endpoints,
|
|
107
|
+
and diagnostics.
|
|
108
|
+
- `vanilla.component` as an example for a non-XTend component host.
|
|
109
|
+
|
|
110
|
+
`kernelVisible: false` remains the default for host-specific adapter data. The
|
|
111
|
+
kernel may normalize, index, and schedule records, but it must not load host
|
|
112
|
+
runtime.
|
|
113
|
+
|
|
114
|
+
## Components, Routes, and Schedules in vNext
|
|
115
|
+
|
|
116
|
+
Components become visible through `surface ... component ...`. Route and
|
|
117
|
+
schedule information stays declarative in the RMT source and is executed by the
|
|
118
|
+
host through adapters:
|
|
119
|
+
|
|
120
|
+
```rmt
|
|
121
|
+
template settings.routes {
|
|
122
|
+
portal surface.root root "#app-root" layer surface
|
|
123
|
+
|
|
124
|
+
surface settings.page kind page component x-section {
|
|
125
|
+
portal surface.root
|
|
126
|
+
|
|
127
|
+
lane visible weight 80 {
|
|
128
|
+
hydrate settings-shell from endpoint xtendrmt.route.render
|
|
129
|
+
hydrate settings-form from endpoint xtendrmt.component.hydrate
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
lane idle weight 20 {
|
|
133
|
+
hydrate settings-help from endpoint xtendrmt.component.hydrate
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
The normalizer turns this into runtime registry entries consumed by adapters
|
|
140
|
+
through `componentRegistry.byAdapter["xtend.component"]`,
|
|
141
|
+
`componentRegistry.byTag[...]`, and route/schedule indexes. XRouter mapping,
|
|
142
|
+
`registerRoutes`, Custom Element registration, DOM creation, and hydration
|
|
143
|
+
remain host work.
|
|
144
|
+
|
|
145
|
+
## Surfaces and Templates
|
|
146
|
+
|
|
147
|
+
Complex app shells are described in vNext as surfaces and portals:
|
|
148
|
+
|
|
149
|
+
```rmt
|
|
150
|
+
template workbench.app {
|
|
151
|
+
state workbench.selection type object initial null
|
|
152
|
+
|
|
153
|
+
portal surface.root root "#workbench-root" layer surface
|
|
154
|
+
|
|
155
|
+
surface workbench.manager kind workspace component x-surface-manager {
|
|
156
|
+
portal surface.root
|
|
157
|
+
|
|
158
|
+
lane visible weight 90 {
|
|
159
|
+
hydrate surface-manager from endpoint xtendrmt.component.mount
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
surface workbench.inspector kind window component x-surface-window {
|
|
164
|
+
source state workbench.selection
|
|
165
|
+
portal surface.root
|
|
166
|
+
|
|
167
|
+
lane user-blocking weight 95 {
|
|
168
|
+
hydrate inspector-window from state workbench.selection
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
Lowering can still create `dom_descriptor` template records and native
|
|
175
|
+
`surfaces` records from this. `html_fragment` remains compatible, but it is
|
|
176
|
+
DOM-untrusted and requires `xtend.security.sanitizing-boundary.v1`. The kernel
|
|
177
|
+
does not sanitize HTML; host adapters own the Trusted DOM sink. See
|
|
178
|
+
[Trusted DOM and Sanitizing](./trusted-dom-sanitizing.md).
|
|
179
|
+
|
|
180
|
+
The completed surface authoring path lives in
|
|
181
|
+
[SurfaceManager Authoring Guide](./surface-manager-authoring-guide.md)
|
|
182
|
+
(`docs/surface-manager-authoring-guide.md`).
|
|
183
|
+
|
|
184
|
+
## Runtime Wiring
|
|
185
|
+
|
|
186
|
+
The productive browser/ESM path remains stable:
|
|
187
|
+
|
|
188
|
+
1. `createRmtFormat().normalizeDocument(document)`
|
|
189
|
+
2. `createRmtFormat().createRuntimeRegistries(normalizedDocument)`
|
|
190
|
+
3. `createRmtXRouterAdapter(...).registerRoutes(registry)`
|
|
191
|
+
4. `createRmtXtendComponentAdapter(...).mountComponent(...)` and
|
|
192
|
+
`hydrateComponent(...)`
|
|
193
|
+
|
|
194
|
+
Adapter results can then be mirrored to `xstate`, scheduler, and diagnostics
|
|
195
|
+
hub through
|
|
196
|
+
`createRmtStateSchedulerDiagnosticsBridge(...).recordAdapterResult(...)`.
|
|
197
|
+
|
|
198
|
+
The stable factory names for adapter documentation and tooling remain
|
|
199
|
+
`createRmtXRouterAdapter`, `createRmtXtendComponentAdapter`, and
|
|
200
|
+
`createRmtStateSchedulerDiagnosticsBridge`. The default policies remain
|
|
201
|
+
`route.visible.render` for visible routing and `component.idle.hydrate` for
|
|
202
|
+
downstream component hydration.
|
|
203
|
+
|
|
204
|
+
## Authoring Tooling
|
|
205
|
+
|
|
206
|
+
Recommended local flow:
|
|
207
|
+
|
|
208
|
+
```bash
|
|
209
|
+
xt rmt lint app.rmt
|
|
210
|
+
xt rmt lint app.rmt --json
|
|
211
|
+
xt rmt lint app.rmt --agent
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
IDE integration starts the same language core through:
|
|
215
|
+
|
|
216
|
+
```bash
|
|
217
|
+
node tools/rmt-language-server/server.js
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
Important: linter, LSP, code actions, and agent report share the same
|
|
221
|
+
diagnostic core. Editor packages and AI agents should not implement their own
|
|
222
|
+
RMT rules.
|
|
223
|
+
|
|
224
|
+
New app shells can start from the snippet prefix `rmt-app`. Other prefixes are
|
|
225
|
+
`rmt-component`, `rmt-route`, `rmt-schedule`, `rmt-template-dom`,
|
|
226
|
+
`rmt-template-html`, and `rmt-vnext-primitive-shell`.
|
|
227
|
+
|
|
228
|
+
## Fabric/Lane Ingestion in the Component Adapter
|
|
229
|
+
|
|
230
|
+
Starting with `xtend.component.fabric-lane-ingestion.v2`, the XTend Component
|
|
231
|
+
Adapter evaluates Fabric and lane hints directly during mounting and hydration.
|
|
232
|
+
Precedence remains:
|
|
233
|
+
|
|
234
|
+
1. `rmt.schedule-record`
|
|
235
|
+
2. `rmt.component-metadata`
|
|
236
|
+
3. `fabric.runtime-override`
|
|
237
|
+
4. `component.static-contract`
|
|
238
|
+
5. `scaffold.blueprint-default`
|
|
239
|
+
|
|
240
|
+
In vNext, the preferred source is `lane` and lifecycle clauses. The adapter
|
|
241
|
+
provides `resolveFabricContext(componentRef, operation, model, options)` for
|
|
242
|
+
that. `mountComponent(...)` and `hydrateComponent(...)` mirror the context into
|
|
243
|
+
`result.metadata.fabric` and set DOM attributes for lane, RMT lane, fiber,
|
|
244
|
+
source, and endpoint. Conflicts produce
|
|
245
|
+
`rmt.xtend.component.fabric_lane.conflict`.
|
|
246
|
+
|
|
247
|
+
The local gate is:
|
|
248
|
+
|
|
249
|
+
```bash
|
|
250
|
+
node scripts/run_xtend_tests.js rmt-component-fabric-ingestion --json
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
## Component Lifecycle Telemetry
|
|
254
|
+
|
|
255
|
+
Starting with `xtend.component.lifecycle-telemetry.v1`, the same adapter
|
|
256
|
+
creates standardized component lifecycle telemetry. RMT documents do not need
|
|
257
|
+
to import XTend code for this; they only provide component, route, schedule,
|
|
258
|
+
and Fabric context. The host can pass `telemetryCollector`, `recordTelemetry`,
|
|
259
|
+
or a Fabric instance.
|
|
260
|
+
|
|
261
|
+
```js
|
|
262
|
+
const records = [];
|
|
263
|
+
adapter.mountComponent(root, 'pages.settings', model, {
|
|
264
|
+
mapping,
|
|
265
|
+
telemetryCollector: records
|
|
266
|
+
});
|
|
267
|
+
|
|
268
|
+
const snapshot = fabric.createTelemetrySnapshot({
|
|
269
|
+
componentTelemetry: records
|
|
270
|
+
});
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
`snapshot.componentTelemetry` aggregates `mount`, `hydrate`, `render`,
|
|
274
|
+
`update`, `event`, `unmount`, and `error` by operation, component, and lane.
|
|
275
|
+
Component errors, deadline misses, and explicit `backpressureSignal` metadata
|
|
276
|
+
can create backpressure. The gate is
|
|
277
|
+
`node scripts/run_xtend_tests.js rmt-component-lifecycle-telemetry --json`.
|
|
278
|
+
|
|
279
|
+
Hosts can pass Fabric snapshots directly to the productive RMT bridge:
|
|
280
|
+
|
|
281
|
+
```js
|
|
282
|
+
bridge.recordTelemetrySnapshot(snapshot, {
|
|
283
|
+
scheduleRef: "diagnostics.snapshot"
|
|
284
|
+
});
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
The bridge mirrors `rmt.telemetry.lastSnapshot` and `rmt.backpressure.*` from
|
|
288
|
+
that and schedules the diagnostics snapshot endpoint when needed.
|
|
289
|
+
|
|
290
|
+
## Multi-Host Rule
|
|
291
|
+
|
|
292
|
+
Native RMT components must not implicitly mean XTend. A non-XTend host uses the
|
|
293
|
+
same vNext structure with its own adapter ID and host execution:
|
|
294
|
+
|
|
295
|
+
```rmt
|
|
296
|
+
template vanilla.app {
|
|
297
|
+
portal surface.root root "#vanilla-root" layer surface
|
|
298
|
+
|
|
299
|
+
surface vanilla.panel kind card component vanilla-panel {
|
|
300
|
+
portal surface.root
|
|
301
|
+
|
|
302
|
+
lane visible weight 60 {
|
|
303
|
+
hydrate vanilla-panel from endpoint xtendrmt.vanilla.mount
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
The browser smoke `tests/browser/fixtures/rmt-xrouter-xtend-smoke.html` checks
|
|
310
|
+
exactly this path. Framework agnosticism is therefore not only an architecture
|
|
311
|
+
goal, but a regression.
|
|
312
|
+
|
|
313
|
+
## Kernel Boundary
|
|
314
|
+
|
|
315
|
+
The RMT kernel must not import or assume:
|
|
316
|
+
|
|
317
|
+
- `x-router`
|
|
318
|
+
- concrete `x-*` components
|
|
319
|
+
- XTend manifest structures
|
|
320
|
+
- `window.XTend`
|
|
321
|
+
- `xstate`
|
|
322
|
+
- browser DOM APIs
|
|
323
|
+
|
|
324
|
+
The kernel may normalize, index, validate, and describe schedule policies. Host
|
|
325
|
+
execution remains adapter work.
|
|
326
|
+
|
|
327
|
+
## Review Checklist
|
|
328
|
+
|
|
329
|
+
Before a new native `.rmt` document, check:
|
|
330
|
+
|
|
331
|
+
- does the source describe app shell, surfaces, lanes, and events in RMT vNext?
|
|
332
|
+
- are legacy/App-DSL JSON only compiler output, mirror, or migration?
|
|
333
|
+
- do XTend-specific data stay outside the kernel?
|
|
334
|
+
- do lifecycle operations reference stable endpoints and adapter boundaries?
|
|
335
|
+
- does each non-XTend host have its own adapter instead of an XTend fallback?
|
|
336
|
+
- do the `rmt-compatibility`, `browser`, and `references` gates pass?
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# XTendRMT Developer Overview
|
|
2
|
+
|
|
3
|
+
- Contract: `xtend.docs.xtendrmt-overview.v1`
|
|
4
|
+
- Product version: `XTendRMT 0.2.0`
|
|
5
|
+
|
|
6
|
+
XTendRMT is XTend's declarative app layer. Developers write a readable `.rmt` source; the compiler produces Core records, kernel artifacts, source maps, and adapter handoffs. XTend UI remains the Web Component system, while XTendRMT describes app structure and lifecycle.
|
|
7
|
+
|
|
8
|
+
## Product Boundary
|
|
9
|
+
|
|
10
|
+
| Layer | Responsibility |
|
|
11
|
+
| --- | --- |
|
|
12
|
+
| RMT vNext | App shell, surfaces, state, selectors, actions, events, resources, lanes |
|
|
13
|
+
| RMT Kernel | Normalization, scheduling, diagnostics, source maps, kernel records |
|
|
14
|
+
| Host Adapter | XTend Components, XRouter, DOM, browser APIs, framework bridges |
|
|
15
|
+
| XTend UI | Web Components, styling, accessibility, interaction, visible UI |
|
|
16
|
+
| Fabric | Lanes, fibers, telemetry, backpressure, runtime diagnostics |
|
|
17
|
+
|
|
18
|
+
The kernel stays framework-agnostic. It imports no XTend Components, no XRouter module, no browser APIs, and no host runtime. Anything that needs DOM, routing, component imports, or browser state belongs in adapters.
|
|
19
|
+
|
|
20
|
+
## Why RMT vNext?
|
|
21
|
+
|
|
22
|
+
- An app shell comes from one source instead of scattered HTML, legacy JSON, and host code.
|
|
23
|
+
- UI objects remain correlatable through primitive IDs, source maps, kernel records, Fabric fibers, and DOM markers.
|
|
24
|
+
- State, selectors, actions, data sources, events, portals, overlays, resources, and surfaces are first-class authoring primitives.
|
|
25
|
+
- Editor DX comes directly from the Language Server: completion, hover, document symbols, definition, and code actions.
|
|
26
|
+
- Legacy and App Platform JSON remain compatible targets, but they are not the normal authoring path.
|
|
27
|
+
|
|
28
|
+
```text
|
|
29
|
+
app.rmt
|
|
30
|
+
-> vNext parser
|
|
31
|
+
-> semantic primitive graph
|
|
32
|
+
-> core document + kernel records
|
|
33
|
+
-> DOM descriptor renderer + component capability registry
|
|
34
|
+
-> host adapter
|
|
35
|
+
-> XTend Components / XRouter / Fabric
|
|
36
|
+
-> visible app in the browser
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
The Component Capability Registry is the shared RMT interface for XTend UI. It
|
|
40
|
+
keeps the kernel framework-agnostic while allowing descriptors to resolve
|
|
41
|
+
manifest-backed components, public contracts, events, slots, parts, and state
|
|
42
|
+
bridges.
|
|
43
|
+
|
|
44
|
+
## Official Developer Docs
|
|
45
|
+
|
|
46
|
+
| Topic | Document |
|
|
47
|
+
| --- | --- |
|
|
48
|
+
| First app | [Quick Start Guide](./quick-start-guide.md) |
|
|
49
|
+
| vNext app authoring | [RMT vNext Authoring Guide](./rmt-vnext-authoring.md) |
|
|
50
|
+
| RMT and XTend UI | [RMT vNext Component Primitives and XTend UI](./rmt-vnext-component-primitives.md) |
|
|
51
|
+
| Native authoring | [XTendRMT Native Authoring Guide](./xtendrmt-native-authoring.md) |
|
|
52
|
+
| App DSL reference | [XTendRMT App DSL Reference](./xtendrmt-app-dsl.md) |
|
|
53
|
+
| Runtime bridge and adapters | [XTendRMT Runtime Bridge](./xtendrmt-runtime-bridge.md) |
|
|
54
|
+
| Editor setup | [RMT Language Server and Editor Setup](./rmt-language-server.md) |
|
|
55
|
+
|
|
56
|
+
## Local Check
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
xt rmt lint app.rmt
|
|
60
|
+
node tools/rmt-language-server/server.js
|
|
61
|
+
node scripts/run_xtend_tests.js rmt-vnext-parser rmt-vnext-compiler rmt-vnext-tooling --json
|
|
62
|
+
node scripts/run_xtend_tests.js rmt-vnext-component-primitives --json
|
|
63
|
+
```
|