@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,301 @@
|
|
|
1
|
+
# XTendRMT Parsedown Scheduling Pilot
|
|
2
|
+
|
|
3
|
+
- Status: active Docs App pilot since `ER-WP-40`, shell-first refactor active
|
|
4
|
+
- Contract: `xtend.docs.parsedown-rmt-scheduling.v1`
|
|
5
|
+
- Pilot Contract: `xtend.docs.parsedown-rmt-pilot.v1`
|
|
6
|
+
- Production-Hardening Contract: `xtend.epic13.docs-rmt-production-hardening.v1`
|
|
7
|
+
- Pilot document: `docs/xtendrmt-parsedown-docs.rmt`
|
|
8
|
+
- Current runtime: `docs/index.php` + `docs/utils/parsedown.php` + `docs/utils/pageloader.js`
|
|
9
|
+
|
|
10
|
+
## Purpose
|
|
11
|
+
|
|
12
|
+
The official XTend documentation is itself an XTend app. Markdown files in the `docs` folder are converted to HTML server-side through Parsedown and displayed client-side as an SPA through XRouter. The host now mirrors only the initially required HTML page into `window.xtendDocsPages`; additional Parsedown payloads are loaded per route through `window.xtendDocsPageEndpoint`.
|
|
13
|
+
|
|
14
|
+
The current state is shell-first: the visible page shell is no longer built purely imperatively in PageLoader, but rendered as a `dom_descriptor` from `docs.app.shell` in the RMT pilot document. Parsedown remains the host adapter and only fills the content slot. This lets the Docs App later load rich HTML or XPlayer tutorial content alongside Markdown as RMT-planned slots; the machine-readable content kind for this is `xplayerTutorial`. Parsedown and XTend are not embedded into the RMT kernel.
|
|
15
|
+
|
|
16
|
+
## ER-WP-40 Pilot Artifacts
|
|
17
|
+
|
|
18
|
+
| Artifact | Role |
|
|
19
|
+
|----------|------|
|
|
20
|
+
| `docs/xtendrmt-parsedown-docs.rmt` | RMT pilot document for shell-first templates, docs routes, Parsedown templates, schedules, rich-content slots and host adapter |
|
|
21
|
+
| `docs/index.php` | active parser host, sets `Parsedown::setSafeMode(true)` and mirrors `window.xtendDocsRmtDocument`, `window.xtendDocsRmtPilot` and `window.xtendDocsPagesMeta` |
|
|
22
|
+
| `docs/utils/pageloader.js` | renders `docs.app.shell` and `docs.header.search` from RMT `dom_descriptor` templates, marks content slots with `data-rmt-template`, `data-rmt-parse-schedule`, `data-rmt-trust-boundary` and `xtend.docs.parsedown-rmt-render.v1` |
|
|
23
|
+
| `tests/rmt/docs_rmt_pilot_suite.js` | gate for RMT normalization, runtime registry, Trusted DOM boundary and Docs App wiring |
|
|
24
|
+
| `package.json` | metadata under `xtend.docsRmtPilot` and script `npm run test:docs-rmt-pilot` |
|
|
25
|
+
|
|
26
|
+
The pilot is deliberately host-neutral: `docs/index.php` remains the parser host while RMT describes the shell, search UI, schedules and future content slots. PageLoader is therefore a host adapter for RMT descriptors.
|
|
27
|
+
|
|
28
|
+
Starting with `WP-E13-10`, the same path also has the production-hardening layer `xtend.epic13.docs-rmt-production-hardening.v1`. It stabilizes `docs.slot.content`, `docs.slot.rich-content`, `docs.slot.media` and `docs.slot.diagnostics` so Parsedown HTML, rich HTML through `docs.rich-content.prepare`, XPlayer tutorials through `docs.media.lazy` and diagnostics can be scheduled separately. The gate is `node scripts/run_xtend_tests.js epic13-docs-rmt-production-hardening --json`.
|
|
29
|
+
|
|
30
|
+
Since skeleton hardening, the pilot uses the native `xtend.loader.skeleton-loader.v1` and `xtend.loader.style-registry.v1`: the loader registry covers undefined XTend Custom Elements with declarative skeletons or hidden Light DOM, XRouter shows a per-route skeleton fallback during import and hydration, and `xtend-doc-page` uses the same loader for the Parsedown content slot. This keeps the app shell visible and stable while the heavy HTML commit happens only after first paint. `xtend.css` remains usable as the standard file name for host theming, but it is no longer a hard requirement for this FOUC protection.
|
|
31
|
+
|
|
32
|
+
## Current Docs App Flow
|
|
33
|
+
|
|
34
|
+
1. `docs/index.php` finds all `.md` files recursively.
|
|
35
|
+
2. `docs/utils/parsedown.php` converts only the initial or route-requested Markdown file to HTML.
|
|
36
|
+
3. `window.xtendDocsPagesMeta` contains SEO, schedule and RMT metadata by slug; `window.xtendDocsPages` contains only existing HTML payloads.
|
|
37
|
+
4. `<x-router mode="hash" skeleton="article">` routes to `xtend-doc-page`, lazy-loads its module and hydrates the route subtree through the loader.
|
|
38
|
+
5. `docs/utils/pageloader.js` reads `window.xtendDocsRmtDocument` and renders `docs.app.shell` shell-first.
|
|
39
|
+
6. The `data-rmt-slot="content"` slot shows a native SkeletonLoader until Parsedown HTML has been sanitized and inserted after first paint.
|
|
40
|
+
7. `docs.header.search` provides header search as an RMT descriptor for the `search` slot of `x-header`.
|
|
41
|
+
8. `docs/menu.json` defines the visible navigation hierarchy; `pageloader.js` groups and prioritizes it for drawer navigation.
|
|
42
|
+
|
|
43
|
+
Since the document-title rewrite, additional RMT route records are generated for every Markdown file and mirrored into `window.xtendDocsRmtDocument.routes`. `docs/index.php` extracts the first H1 as `title`, creates `documentTitle`, `titleTemplate`, `metaDescription` and `metaKeywords`, and renders the visible `<x-route>` attributes `title`, `document-title`, `title-template`, `meta-description` and `meta-keywords` from them. XRouter then performs the actual writes to `document.title` and the SEO meta tags. This keeps the use case declarative in RMT while browser side effects remain in the XRouter adapter.
|
|
44
|
+
|
|
45
|
+
This flow remains a host flow. RMT provides the shell and schedule records; DOM sinks, Parsedown and concrete event bindings remain in the Docs host adapter.
|
|
46
|
+
|
|
47
|
+
After sanitizing, the host adapter also normalizes inline code from Parsedown SafeMode. SafeMode escapes backtick content such as `` `<x-code>` `` twice in some cases (`&lt;...&gt;`). `pageloader.js` decodes these entities only inside `<code>` nodes and writes them back as `textContent`. This keeps the Trusted DOM boundary intact while component and API names remain readable in the documentation.
|
|
48
|
+
|
|
49
|
+
## Navigation Hierarchy
|
|
50
|
+
|
|
51
|
+
Since hierarchy hardening, docs navigation uses stable metadata per article:
|
|
52
|
+
|
|
53
|
+
- `id`: canonical article ID, for example `docs.components.xcode`
|
|
54
|
+
- `group`: visible navigation area such as `core`, `components`, `rmt` or `release`
|
|
55
|
+
- `parent`: optional parent slug for deep-dive branches
|
|
56
|
+
- `tier`: classification such as `basic`, `deep-dive`, `component-reference` or `release-deep-dive`
|
|
57
|
+
- `rank`: PageRank-like visibility value where high values appear first and directly visible
|
|
58
|
+
|
|
59
|
+
This means users first see foundations such as the start page, manifest, API, component overview or XTendRMT overview. Specific articles are offered cascaded under the respective entry point as deep dives.
|
|
60
|
+
|
|
61
|
+
## RMT Target Shape
|
|
62
|
+
|
|
63
|
+
Parsedown is described as its own host adapter:
|
|
64
|
+
|
|
65
|
+
```json
|
|
66
|
+
{
|
|
67
|
+
"id": "docs.parsedown",
|
|
68
|
+
"kind": "template_adapter",
|
|
69
|
+
"runtimeSurface": ["server", "browser_classic"],
|
|
70
|
+
"providedCapabilities": ["markdown", "htmlFragments", "slugIndex", "scheduleRefs"],
|
|
71
|
+
"kernelVisible": false
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
The Docs App remains XTend UI:
|
|
76
|
+
|
|
77
|
+
```json
|
|
78
|
+
{
|
|
79
|
+
"id": "docs.page",
|
|
80
|
+
"kind": "custom_element",
|
|
81
|
+
"adapter": "xtend.component",
|
|
82
|
+
"tag": "xtend-doc-page",
|
|
83
|
+
"schedule": "docs.page.hydrate"
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
The shell itself is an RMT template:
|
|
88
|
+
|
|
89
|
+
```json
|
|
90
|
+
{
|
|
91
|
+
"id": "docs.app.shell",
|
|
92
|
+
"mode": "dom_descriptor",
|
|
93
|
+
"schedule": "docs.shell.render",
|
|
94
|
+
"nodes": [
|
|
95
|
+
{
|
|
96
|
+
"tag": "x-section",
|
|
97
|
+
"attributes": {
|
|
98
|
+
"data-rmt-shell": "docs.app.shell",
|
|
99
|
+
"data-rmt-shell-mode": "shell-first"
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
]
|
|
103
|
+
}
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Parsedown work is planned as a schedule policy:
|
|
107
|
+
|
|
108
|
+
```json
|
|
109
|
+
{
|
|
110
|
+
"id": "docs.markdown.parse",
|
|
111
|
+
"endpointName": "xtendrmt.docs.parsedown.parse",
|
|
112
|
+
"scope": "docs.markdown",
|
|
113
|
+
"lane": "background",
|
|
114
|
+
"priority": 35,
|
|
115
|
+
"preferIdle": true,
|
|
116
|
+
"budgetClass": "background"
|
|
117
|
+
}
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## Pilot Document
|
|
121
|
+
|
|
122
|
+
The production pilot document lives at `docs/xtendrmt-parsedown-docs.rmt`. It contains three real docs routes:
|
|
123
|
+
|
|
124
|
+
- `/readme`
|
|
125
|
+
- `/enterprise-adoption`
|
|
126
|
+
- `/xtendrmt-parsedown-scheduling`
|
|
127
|
+
|
|
128
|
+
Abbreviated structure:
|
|
129
|
+
|
|
130
|
+
```json
|
|
131
|
+
{
|
|
132
|
+
"kind": "rmt_document",
|
|
133
|
+
"version": "1.0",
|
|
134
|
+
"documentId": "docs.xtend.developer-center",
|
|
135
|
+
"namespace": "docs",
|
|
136
|
+
"adapters": [
|
|
137
|
+
{
|
|
138
|
+
"id": "docs.parsedown",
|
|
139
|
+
"kind": "template_adapter",
|
|
140
|
+
"runtimeSurface": ["server"],
|
|
141
|
+
"providedCapabilities": ["markdown", "htmlFragments", "slugIndex", "scheduleRefs"],
|
|
142
|
+
"kernelVisible": false
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
"id": "xtend.xrouter",
|
|
146
|
+
"kind": "router_adapter",
|
|
147
|
+
"runtimeSurface": ["browser_classic"],
|
|
148
|
+
"providedCapabilities": ["routes", "navigation", "scheduleRefs"],
|
|
149
|
+
"kernelVisible": false
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
"id": "xtend.component",
|
|
153
|
+
"kind": "component_adapter",
|
|
154
|
+
"runtimeSurface": ["browser_classic"],
|
|
155
|
+
"providedCapabilities": ["components", "customElements", "hydration", "scheduleRefs"],
|
|
156
|
+
"kernelVisible": false
|
|
157
|
+
}
|
|
158
|
+
],
|
|
159
|
+
"components": [
|
|
160
|
+
{
|
|
161
|
+
"id": "docs.page",
|
|
162
|
+
"kind": "custom_element",
|
|
163
|
+
"adapter": "xtend.component",
|
|
164
|
+
"tag": "xtend-doc-page",
|
|
165
|
+
"schedule": "docs.page.hydrate"
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
"id": "docs.shell",
|
|
169
|
+
"kind": "template_component",
|
|
170
|
+
"adapter": "docs.rich-content",
|
|
171
|
+
"tag": "x-section",
|
|
172
|
+
"schedule": "docs.shell.render"
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"id": "docs.media.player",
|
|
176
|
+
"kind": "custom_element",
|
|
177
|
+
"adapter": "xtend.component",
|
|
178
|
+
"tag": "x-player",
|
|
179
|
+
"schedule": "docs.media.lazy"
|
|
180
|
+
}
|
|
181
|
+
],
|
|
182
|
+
"routes": [
|
|
183
|
+
{
|
|
184
|
+
"id": "docs.readme",
|
|
185
|
+
"path": "/readme",
|
|
186
|
+
"router": "xtend.xrouter",
|
|
187
|
+
"component": "docs.page",
|
|
188
|
+
"title": "XTend Developer Documentation",
|
|
189
|
+
"documentTitle": "XTend Developer Documentation | XTend Dokumentation",
|
|
190
|
+
"titleTemplate": "{{title}} | XTend Dokumentation",
|
|
191
|
+
"metaDescription": "Developer Documentation fuer XTend UI und XTendRMT.",
|
|
192
|
+
"template": "docs.readme.markdown",
|
|
193
|
+
"schedule": "docs.route.render"
|
|
194
|
+
}
|
|
195
|
+
],
|
|
196
|
+
"schedules": [
|
|
197
|
+
{
|
|
198
|
+
"id": "docs.shell.render",
|
|
199
|
+
"endpointName": "xtendrmt.shell.render",
|
|
200
|
+
"scope": "docs.shell",
|
|
201
|
+
"lane": "visible",
|
|
202
|
+
"priority": 90
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
"id": "docs.markdown.parse",
|
|
206
|
+
"endpointName": "xtendrmt.docs.parsedown.parse",
|
|
207
|
+
"scope": "docs.markdown",
|
|
208
|
+
"lane": "background",
|
|
209
|
+
"priority": 35,
|
|
210
|
+
"preferIdle": true
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
"id": "docs.route.render",
|
|
214
|
+
"endpointName": "xtendrmt.route.render",
|
|
215
|
+
"scope": "docs.route.render",
|
|
216
|
+
"lane": "visible",
|
|
217
|
+
"priority": 80
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
"id": "docs.page.hydrate",
|
|
221
|
+
"endpointName": "xtendrmt.component.hydrate",
|
|
222
|
+
"scope": "docs.page.hydrate",
|
|
223
|
+
"lane": "idle",
|
|
224
|
+
"priority": 40,
|
|
225
|
+
"preferIdle": true
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
"id": "docs.media.lazy",
|
|
229
|
+
"endpointName": "xtendrmt.docs.media.lazy",
|
|
230
|
+
"scope": "docs.media",
|
|
231
|
+
"lane": "idle",
|
|
232
|
+
"preferIdle": true
|
|
233
|
+
}
|
|
234
|
+
],
|
|
235
|
+
"templates": [
|
|
236
|
+
{
|
|
237
|
+
"id": "docs.readme.markdown",
|
|
238
|
+
"mode": "html_fragment",
|
|
239
|
+
"source": "docs/README.md",
|
|
240
|
+
"adapter": "docs.parsedown",
|
|
241
|
+
"security": {
|
|
242
|
+
"markupClass": "parsedownHtml",
|
|
243
|
+
"trustBoundary": "xtend.security.sanitizing-boundary.v1",
|
|
244
|
+
"sink": "trustedDomBoundary"
|
|
245
|
+
},
|
|
246
|
+
"hydration": {
|
|
247
|
+
"mode": "hydrate_prerendered",
|
|
248
|
+
"metadata": {
|
|
249
|
+
"endpointHint": "xtendrmt.docs.parsedown.parse"
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
]
|
|
254
|
+
}
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
## Responsibility Boundaries
|
|
258
|
+
|
|
259
|
+
| Responsibility | Location |
|
|
260
|
+
|----------------|----------|
|
|
261
|
+
| Read Markdown | Docs App or Docs host adapter |
|
|
262
|
+
| Execute Parsedown | `docs.parsedown` adapter |
|
|
263
|
+
| Provide HTML fragments | Docs App host boundary with `xtend.security.sanitizing-boundary.v1` |
|
|
264
|
+
| Render shell-first app shell | `docs.app.shell` through Docs host adapter |
|
|
265
|
+
| Render header search | `docs.header.search` through Docs host adapter |
|
|
266
|
+
| Prepare rich HTML and tutorial videos | `docs.rich-content` and `docs.media.lazy` |
|
|
267
|
+
| Register routes | `createRmtXRouterAdapter` |
|
|
268
|
+
| Hydrate page | `createRmtXtendComponentAdapter` |
|
|
269
|
+
| Mirror scheduling and diagnostics | `createRmtStateSchedulerDiagnosticsBridge` |
|
|
270
|
+
|
|
271
|
+
The RMT kernel receives only records, policies and diagnostics. It parses no Markdown, calls no PHP and sanitizes no HTML. Parsedown output counts as `parsedownHtml` despite `Parsedown::setSafeMode(true)` and must pass through the Trusted DOM policy from [Trusted DOM and Sanitizing](./trusted-dom-sanitizing.md).
|
|
272
|
+
|
|
273
|
+
## Implemented Pilot Steps
|
|
274
|
+
|
|
275
|
+
| Step | Status |
|
|
276
|
+
|------|--------|
|
|
277
|
+
| Convert Docs App flow to shell-first RMT shell | `done` |
|
|
278
|
+
| Create `.rmt` pilot for docs routes and Parsedown schedules | `done` |
|
|
279
|
+
| Describe `docs.parsedown` adapter as host layer | `done` |
|
|
280
|
+
| Render `docs.app.shell` as production RMT app shell | `done` |
|
|
281
|
+
| Render `docs.header.search` as RMT header-search template | `done` |
|
|
282
|
+
| Prepare rich-content and `x-player` slots as future-ready RMT schedules | `done` |
|
|
283
|
+
| Prove `xtend.security.sanitizing-boundary.v1` for Parsedown HTML in the host adapter | `done` |
|
|
284
|
+
| Use `createRmtFormat().normalizeDocument(...)` and `createRuntimeRegistries(...)` for docs routes | `done` |
|
|
285
|
+
| Add per-page RMT metadata to the Docs App | `done` |
|
|
286
|
+
| Make Parsedown parse jobs schedulable through `xtendrmt.docs.parsedown.parse` | `done` |
|
|
287
|
+
| Extend reference and RMT pilot gates | `done` |
|
|
288
|
+
|
|
289
|
+
Not yet part of the pilot: production XRouter routes are not registered from the RMT document. That remains a later runtime expansion. Also not active yet: rich HTML and XPlayer content are only prepared as slots and schedules, but not filled with external tutorial payloads.
|
|
290
|
+
|
|
291
|
+
## Minimum Gates
|
|
292
|
+
|
|
293
|
+
```bash
|
|
294
|
+
php -l docs/index.php
|
|
295
|
+
node scripts/run_xtend_tests.js docs-rmt-pilot --json
|
|
296
|
+
node scripts/run_xtend_tests.js references --json
|
|
297
|
+
node scripts/run_xtend_tests.js browser --json
|
|
298
|
+
node scripts/run_xtend_tests.js rmt-compatibility --json
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
The pilot is shell-first, but remains framework-agnostic. Until a production `docs.parsedown` runtime adapter replaces the PHP side, `docs/index.php` remains the active parser host.
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
# XTendRMT Runtime Bridge
|
|
2
|
+
|
|
3
|
+
- Status: current after Epic 05 completion
|
|
4
|
+
- Contract: `xtend.docs.xtendrmt-runtime-bridge.v1`
|
|
5
|
+
- Core contracts:
|
|
6
|
+
- `xtend.rmt.xrouter-adapter.v1`
|
|
7
|
+
- `xtend.rmt.xtend-component-adapter.v1`
|
|
8
|
+
- `xtend.rmt.state-scheduler-diagnostics-bridge.v1`
|
|
9
|
+
- `xtend.rmt.artifact-parity.v1`
|
|
10
|
+
|
|
11
|
+
## Purpose
|
|
12
|
+
|
|
13
|
+
The Runtime Bridge connects normalized RMT App DSL data with real host runtimes. It is deliberately adapter-based:
|
|
14
|
+
|
|
15
|
+
- RMT normalizes and indexes.
|
|
16
|
+
- XRouter registers and navigates routes.
|
|
17
|
+
- XTend Components mount and hydrate UI.
|
|
18
|
+
- The bridge mirrors adapter results, scheduler endpoints and diagnostics.
|
|
19
|
+
|
|
20
|
+
This keeps the RMT kernel host-neutral.
|
|
21
|
+
|
|
22
|
+
## Artifacts and Entry Points
|
|
23
|
+
|
|
24
|
+
| Artifact | Use |
|
|
25
|
+
|----------|-----|
|
|
26
|
+
| `xtendrmt/rmt-core.esm.js` | ESM Core, tests and build reference |
|
|
27
|
+
| `xtendrmt/rmt-runtime.esm.js` | ESM Runtime with production factories |
|
|
28
|
+
| `xtendrmt/rmt-runtime.browser.js` | Browser Classic bundle, installs `window.xtend.rmt` |
|
|
29
|
+
| `xtendrmt/rmt-core.d.ts` | TypeScript contract for public factories |
|
|
30
|
+
| `xtendrmt/rmt-manifest.json` | Product manifest and artifact-parity contract |
|
|
31
|
+
|
|
32
|
+
The browser bundle also provides `window.AppModules`. The production Classic surface is installed under `window.xtend.rmt`.
|
|
33
|
+
|
|
34
|
+
## ESM Usage
|
|
35
|
+
|
|
36
|
+
```js
|
|
37
|
+
import {
|
|
38
|
+
createRmtFormat,
|
|
39
|
+
createRmtXRouterAdapter,
|
|
40
|
+
createRmtXtendComponentAdapter,
|
|
41
|
+
createRmtStateSchedulerDiagnosticsBridge
|
|
42
|
+
} from './xtendrmt/rmt-runtime.esm.js';
|
|
43
|
+
|
|
44
|
+
const format = createRmtFormat();
|
|
45
|
+
const normalizedDocument = format.normalizeDocument(rmtDocument);
|
|
46
|
+
const registry = format.createRuntimeRegistries(normalizedDocument);
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Browser Classic Usage
|
|
50
|
+
|
|
51
|
+
```html
|
|
52
|
+
<script src="/xtendrmt/rmt-runtime.browser.js"></script>
|
|
53
|
+
<script type="module">
|
|
54
|
+
const appModules = window.AppModules;
|
|
55
|
+
const format = appModules.createRmtFormat();
|
|
56
|
+
const normalizedDocument = format.normalizeDocument(window.appRmtDocument);
|
|
57
|
+
</script>
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
The browser smoke `tests/browser/fixtures/rmt-xrouter-xtend-smoke.html` uses this path.
|
|
61
|
+
|
|
62
|
+
## XRouter Adapter
|
|
63
|
+
|
|
64
|
+
```js
|
|
65
|
+
const routeAdapter = createRmtXRouterAdapter({
|
|
66
|
+
routerElement: document.querySelector('x-router'),
|
|
67
|
+
xstate: window.xstate
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
const routeResult = routeAdapter.registerRoutes(registry);
|
|
71
|
+
routeAdapter.navigate({ routeId: 'settings' }, {
|
|
72
|
+
mapping: routeResult.handle.mapping
|
|
73
|
+
});
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
The adapter consumes `routeRegistry.byRouter["xtend.xrouter"]` and creates XRouter-compatible route records. RMT information remains visible as `data-rmt-*` attributes and route details.
|
|
77
|
+
|
|
78
|
+
## XTend Component Adapter
|
|
79
|
+
|
|
80
|
+
```js
|
|
81
|
+
const componentAdapter = createRmtXtendComponentAdapter({
|
|
82
|
+
document,
|
|
83
|
+
customElements,
|
|
84
|
+
manifest: {
|
|
85
|
+
'x-card': '/components/xcards.js'
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
const mapping = componentAdapter.mapComponents(registry);
|
|
90
|
+
componentAdapter.registerComponent(mapping);
|
|
91
|
+
componentAdapter.mountComponent(rootElement, 'settings.card', {
|
|
92
|
+
label: 'Settings'
|
|
93
|
+
});
|
|
94
|
+
componentAdapter.hydrateComponent(rootElement, 'settings.card');
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
The adapter is responsible for manifest lookup, Custom Element registration, DOM creation, props, attributes, slots, events and hydration.
|
|
98
|
+
|
|
99
|
+
## State/Scheduler/Diagnostics Bridge
|
|
100
|
+
|
|
101
|
+
```js
|
|
102
|
+
const bridge = createRmtStateSchedulerDiagnosticsBridge({
|
|
103
|
+
xstate: window.xstate,
|
|
104
|
+
scheduler: performanceRuntime,
|
|
105
|
+
diagnosticsHub
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
const stateBridge = bridge.createStateBridge();
|
|
109
|
+
stateBridge.set('rmt.demo.ready', true);
|
|
110
|
+
|
|
111
|
+
bridge.recordAdapterResult(routeResult, {
|
|
112
|
+
scheduleRef: 'route.visible.render'
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
bridge.recordTelemetrySnapshot(fabricSnapshot, {
|
|
116
|
+
scheduleRef: 'diagnostics.snapshot',
|
|
117
|
+
runInline: true
|
|
118
|
+
});
|
|
119
|
+
|
|
120
|
+
bridge.scheduleEndpoint(
|
|
121
|
+
'xtendrmt.component.hydrate',
|
|
122
|
+
'app.component.hydrate',
|
|
123
|
+
() => ({ ok: true }),
|
|
124
|
+
{ runInline: true }
|
|
125
|
+
);
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Among other values, the bridge writes:
|
|
129
|
+
|
|
130
|
+
- `rmt.bridge.ready`
|
|
131
|
+
- `rmt.telemetry.lastSnapshot`
|
|
132
|
+
- `rmt.backpressure.lastSignal`
|
|
133
|
+
- `rmt.backpressure.profile`
|
|
134
|
+
- `rmt.scheduler.lastEndpoint`
|
|
135
|
+
- `rmt.adapter.lastResult`
|
|
136
|
+
- `rmt.diagnostics.last`
|
|
137
|
+
- `rmt.route.<id>.lastResult`
|
|
138
|
+
- `rmt.component.<id>.lastResult`
|
|
139
|
+
|
|
140
|
+
If no external `xstate` exists, the bridge falls back to an in-memory state handle and reports a degraded but usable state.
|
|
141
|
+
|
|
142
|
+
## Multi-Host Rule
|
|
143
|
+
|
|
144
|
+
Non-XTend hosts use the same RMT flow with their own adapter ID. The browser-smoke fixture uses `vanilla.component` and `xtendrmt.vanilla.mount` to ensure that XTend is a first-class host but not a kernel requirement.
|
|
145
|
+
|
|
146
|
+
## Artifact Parity
|
|
147
|
+
|
|
148
|
+
After changes to runtime, schema, manifest or types, the parity gate must run:
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
node scripts/verify_xtendrmt_artifact_parity.js --json
|
|
152
|
+
node scripts/run_xtend_tests.js rmt-compatibility --json
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
The gate prevents drift between schema, manifest, type definitions, ESM bundles and browser bundle.
|
|
@@ -228,7 +228,7 @@ Die CI-Matrix trennt schnelle PR-Pruefung von Release-nahem Full Gate:
|
|
|
228
228
|
|------|---------|-------|
|
|
229
229
|
| PR Fast | `npm run test:pr:report` | schnelles Feedback fuer Pull Requests |
|
|
230
230
|
| Full Release | `npm run test:release:full:report` | komplette lokale Runner-Suite mit JSON Report |
|
|
231
|
-
| Nightly | `
|
|
231
|
+
| Nightly Build | `.github/workflows/xtend-nightly-build.yml` | wiederkehrender Node-26-Artefaktlauf mit Release-, RMT-Primitive- und Pack-Evidence |
|
|
232
232
|
|
|
233
233
|
Release-Kandidaten brauchen zusaetzlich:
|
|
234
234
|
|
|
@@ -243,6 +243,8 @@ npm run pack:dry-run
|
|
|
243
243
|
|
|
244
244
|
Conditional Network Gates:
|
|
245
245
|
|
|
246
|
+
Nightly Build Evidence wird als `xtend-nightly-build-node-26` hochgeladen und enthaelt `.xtend-test-results/xtend-nightly-build-manifest.json`. Browser-heavy Source-to-Sea Evidence und Audit/SBOM Network Evidence bleiben in diesem Workflow bewusst manuelle Jobs via `run_source_to_sea=true` und `run_conditional_network=true`.
|
|
247
|
+
|
|
246
248
|
```bash
|
|
247
249
|
npm audit --audit-level=moderate
|
|
248
250
|
npm sbom --sbom-format=cyclonedx --json
|
|
@@ -390,7 +392,7 @@ Weiterfuehrend: [RC1 Readiness](./rc1-readiness.md), [Release Owner Acceptance](
|
|
|
390
392
|
XTend ist nach `ER-WP-40`, `WP-E10-16` und `WP-E11-18` enterprise-adoptionsfaehig vorbereitet, aber noch kein finaler `1.0.0`-Release:
|
|
391
393
|
|
|
392
394
|
- `private: false` ist fuer RC1-Publish-Prep aktiv.
|
|
393
|
-
- Component Catalog Coverage steht nach `RC1TB-WP-03` bei
|
|
395
|
+
- Component Catalog Coverage steht nach `RC1TB-WP-03` bei 44/44 Source und Docs, 44/44 Component-Suites, Fixtures und Types, 43/44 A11y sowie 42 expliziten Runtime-/UI-Performance-Profilen. `x-input`, `x-select`, `x-checkbox`, `x-radio`, `x-rmt-lifecycle-demo-build`, `x-textarea`, `x-form`, `x-calendar`, `x-writer`, `x-status`, `x-progress`, `x-tooltip`, `x-popover`, `x-drawer`, `x-surface-manager`, `x-surface-portal`, `x-surface-region`, `x-surface-window`, `x-side-panel`, `x-modal`, `x-dialog`, `x-alert`, `x-toast`, `x-spinner`, `x-router`, `x-link`, `x-tabs`, `x-theme`, `x-button`, `x-icon`, `x-menu`, `x-footer`, `x-lightbox`, `x-masonry`, `x-code`, `x-header`, `x-hero`, `x-type`, `x-summary`, `x-section`, `x-cards` und `x-player` sind `enterprise-ready`; `xstate` ist seit `WP-E13-05` als Runtime-Boundary geschlossen; `x-utils` ist seit `WP-E13-05` als Utility-Boundary geschlossen. `x-icon` stellt den lokalen, CDN-freien Iconography Adapter mit internem Core Pack, lokalem Lucide Superset und RMT-kompatibler Pack-Schnittstelle bereit; `x-surface-manager`, `x-surface-portal`, `x-surface-region`, `x-surface-window` und `x-side-panel` bilden die native Multi-Window-, Portal-, Region- und SidePanel-Surface-Schicht.
|
|
394
396
|
- Performance-Profile sind fuer alle sichtbaren Runtime-/UI-Komponenten priorisiert und vorhanden; Infrastruktur-/Utility-Pfade werden ueber Boundary-Contracts bewertet.
|
|
395
397
|
- Netzwerkbasierte Supply-Chain-Gates sind Conditional Gates.
|
|
396
398
|
- `WP-E12-15` aktualisiert die oeffentliche Adoption-Flaeche: Long-Tail Closure, DOM-first Snapshot Gate, Design Token Productization, RMT DSL Authoring Polish, Known Residual Policy und RC0 Gate Matrix sind in `docs/rc0-adoption-guide.md` zusammengefuehrt.
|