@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,265 @@
|
|
|
1
|
+
# XTend Loader
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
The canonical XTend loader is `xtend-loader.js`.
|
|
6
|
+
|
|
7
|
+
It is a local ES module entry for XTend UI and handles dynamic loading of the manifest, Core modules, explicitly preloaded components, components used in the DOM and `api.js`.
|
|
8
|
+
|
|
9
|
+
`xtend-dev.js` is now only a legacy stub. New demos, browser smokes, scaffold output and official examples use `xtend-loader.js`.
|
|
10
|
+
|
|
11
|
+
Since `ER-WP-05`, the default demo and fixture paths are formally fixed to the canonical loader or to deliberately classified special smokes. Since `ER-WP-18`, the loader measures manifest load, module load and Custom Element definition through local performance marks. Since `ER-WP-28`, it validates manifest and module URLs against `xtend.security.loader-policy.v1`, `xtend.security.manifest-policy.v1` and `xtend.security.import-policy.v1`.
|
|
12
|
+
|
|
13
|
+
## Integration
|
|
14
|
+
|
|
15
|
+
```html
|
|
16
|
+
<script type="module" src="./xtend-loader.js"></script>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Optionally, a local manifest can be set:
|
|
20
|
+
|
|
21
|
+
```html
|
|
22
|
+
<script
|
|
23
|
+
type="module"
|
|
24
|
+
src="./xtend-loader.js"
|
|
25
|
+
data-manifest="./components/manifest.json">
|
|
26
|
+
</script>
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
By default, the loader uses:
|
|
30
|
+
|
|
31
|
+
```text
|
|
32
|
+
components/manifest.json
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Contract
|
|
36
|
+
|
|
37
|
+
The loader contract is:
|
|
38
|
+
|
|
39
|
+
```text
|
|
40
|
+
xtend.loader.contract.v1
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Security contracts:
|
|
44
|
+
|
|
45
|
+
```text
|
|
46
|
+
xtend.security.loader-policy.v1
|
|
47
|
+
xtend.security.manifest-policy.v1
|
|
48
|
+
xtend.security.import-policy.v1
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Near the browser, the loader exposes this surface:
|
|
52
|
+
|
|
53
|
+
```js
|
|
54
|
+
window.XTendLoader
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
The automatic boot promise is available under:
|
|
58
|
+
|
|
59
|
+
```js
|
|
60
|
+
window.__XTendLoaderBootPromise
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Verbose Mode
|
|
64
|
+
|
|
65
|
+
The PROD loader is quiet in the console by default. The loader file contains a direct flag near the top:
|
|
66
|
+
|
|
67
|
+
```js
|
|
68
|
+
const verbose_mode = 'auto';
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Supported values:
|
|
72
|
+
|
|
73
|
+
| Value | Behavior |
|
|
74
|
+
|-------|----------|
|
|
75
|
+
| `'true'` | Verbose is permanently active. Loader module operations and connected Core runtime logs are printed in the browser console. |
|
|
76
|
+
| `'false'` | Verbose is locked. It can only be re-enabled by changing the loader file. |
|
|
77
|
+
| `'auto'` | Verbose is off on first start and can be enabled in the browser console for the current tab session. |
|
|
78
|
+
|
|
79
|
+
Browser console:
|
|
80
|
+
|
|
81
|
+
```js
|
|
82
|
+
XTendLoader.verbose(true)
|
|
83
|
+
XTendLoader.verbose(false)
|
|
84
|
+
XTendLoader.verbose()
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Alternatively:
|
|
88
|
+
|
|
89
|
+
```js
|
|
90
|
+
XTendLoader.enableVerbose()
|
|
91
|
+
XTendLoader.disableVerbose()
|
|
92
|
+
XTendLoader.getVerboseState()
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
In `auto`, the loader stores the console decision in `sessionStorage`. After `XTendLoader.verbose(true)`, a reload is enough to also see the initial module-loading operations in the same browser session. `XTendLoader.verbose(false)` makes the session quiet again.
|
|
96
|
+
|
|
97
|
+
Structured diagnostics (`xtend-loader-diagnostic`) and performance events (`xtend-loader-performance`) remain available independently of verbose mode.
|
|
98
|
+
|
|
99
|
+
## How It Works
|
|
100
|
+
|
|
101
|
+
1. The loader initializes `xtend.loader.style-registry.v1` and injects runtime-critical styles for tokens, UI effects, skeletons and undefined XTend Custom Elements.
|
|
102
|
+
2. It waits for window load.
|
|
103
|
+
3. It validates `data-manifest` or `components/manifest.json` against the loader policy.
|
|
104
|
+
4. It loads the manifest and resolves manifest URLs relative to the manifest URL.
|
|
105
|
+
5. It validates every manifest record against the manifest and import policies.
|
|
106
|
+
6. It can version module URLs through `data-module-cache-bust` so live systems do not pull stale component modules from the browser cache.
|
|
107
|
+
7. It loads `xstate` and then `x-theme` when both are listed in the manifest. `xstate` is deliberately not cache-busted so no second state module instance is created.
|
|
108
|
+
8. It loads entries from `<meta name="xtend-preload">`.
|
|
109
|
+
9. It detects XTend tags used in the DOM and loads visible components immediately.
|
|
110
|
+
10. It observes non-visible components through `IntersectionObserver`.
|
|
111
|
+
11. It provides `xtend.loader.skeleton-loader.v1` for shell, route and dynamic subtree fallbacks.
|
|
112
|
+
12. It validates and imports local `api.js`, then calls `api.initXTendAPI(manifest)`.
|
|
113
|
+
|
|
114
|
+
## StyleRegistry
|
|
115
|
+
|
|
116
|
+
The loader exports the native StyleRegistry:
|
|
117
|
+
|
|
118
|
+
```js
|
|
119
|
+
window.XTendStyleRegistry
|
|
120
|
+
window.XTendLoader.styles
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
When `xtend-loader.js` is evaluated, the loader immediately calls `ensureRuntimeStyles()`. This ensures the critical CSS rules exist before components are imported or hydrated. `xtend.css` remains the canonical standard file name for host theming and docs/app layout, but it is no longer a hard requirement for skeletons, UI effects, base tokens or FOUC protection for undefined XTend Custom Elements.
|
|
124
|
+
|
|
125
|
+
Hosts can read the theme stylesheet state:
|
|
126
|
+
|
|
127
|
+
```js
|
|
128
|
+
XTendLoader.getThemeStylesheetState()
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
Components can register their own styles and apply them to shadow roots:
|
|
132
|
+
|
|
133
|
+
```js
|
|
134
|
+
const style = XTendLoader.defineComponentStyle('x-example', ':host { display: block; }');
|
|
135
|
+
XTendLoader.adoptStyle(this.shadowRoot, style);
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## SkeletonLoader
|
|
139
|
+
|
|
140
|
+
The loader exports a native SkeletonLoader for shell-first apps:
|
|
141
|
+
|
|
142
|
+
```js
|
|
143
|
+
window.XTendLoader.showSkeleton(target, { lines: 8, schedule: 'docs.page.hydrate' });
|
|
144
|
+
window.XTendLoader.hideSkeleton(target);
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Hosts can show undefined XTend Custom Elements as skeletons through `data-xtend-skeleton`. Known XTend tags without skeleton opt-in remain invisible until definition so Light DOM text does not flash unstyled. These rules come from the StyleRegistry and also work without external `xtend.css`.
|
|
148
|
+
|
|
149
|
+
## Preload
|
|
150
|
+
|
|
151
|
+
Components can still be explicitly preloaded:
|
|
152
|
+
|
|
153
|
+
```html
|
|
154
|
+
<meta name="xtend-preload" content="x-router,x-link,x-dialog,x-modal">
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
The values are component IDs from the manifest, not free-form URLs.
|
|
158
|
+
|
|
159
|
+
## Live Deployment Cache Busting
|
|
160
|
+
|
|
161
|
+
Shell apps can load the loader, manifest and component modules with a version:
|
|
162
|
+
|
|
163
|
+
```html
|
|
164
|
+
<script
|
|
165
|
+
type="module"
|
|
166
|
+
src="/xtend-loader.js?v=20260507"
|
|
167
|
+
data-manifest="/components/manifest.json?v=20260507"
|
|
168
|
+
data-module-cache-bust="20260507">
|
|
169
|
+
</script>
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
The loader appends this value to manifest modules as the `xtend-cache` query parameter. `xstate` is excluded because components import it themselves through `./xstate.js` and XTend should keep exactly one state instance.
|
|
173
|
+
|
|
174
|
+
## Manifest Example
|
|
175
|
+
|
|
176
|
+
```json
|
|
177
|
+
{
|
|
178
|
+
"xstate": "./xstate.js",
|
|
179
|
+
"x-theme": "./xtheme.js",
|
|
180
|
+
"x-router": "./xrouter.js",
|
|
181
|
+
"x-link": "./xlink.js",
|
|
182
|
+
"x-dialog": "./xdialog.js",
|
|
183
|
+
"x-modal": "./xmodal.js"
|
|
184
|
+
}
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
## Legacy Strategy
|
|
188
|
+
|
|
189
|
+
`xtend-dev.js` remains as a compatibility stub for a short migration phase.
|
|
190
|
+
|
|
191
|
+
The stub:
|
|
192
|
+
|
|
193
|
+
- warns in the console
|
|
194
|
+
- imports `./xtend-loader.js`
|
|
195
|
+
- contains no loader logic of its own
|
|
196
|
+
|
|
197
|
+
Default demos and tests must no longer use the legacy name as the canonical loader path.
|
|
198
|
+
|
|
199
|
+
## Security and Runtime Boundaries
|
|
200
|
+
|
|
201
|
+
The loader remains local and ESM-based.
|
|
202
|
+
|
|
203
|
+
CDN is not a default or test path. Since `ER-WP-03`, `api.js`, `components/manifest.json`, Core components and browser fixtures use repo-local XTend paths. Since `ER-WP-05`, reference and browser gates also verify that default demos do not fall back to `xtend-dev.js` or XTend CDN bridges. Since `ER-WP-28`, the loader refuses external manifest and module URLs, `javascript:`, `data:`, `blob:`, mismatched file extensions and path traversal with structured security diagnostics.
|
|
204
|
+
|
|
205
|
+
The loader emits structured local diagnostics as the `xtend-loader-diagnostic` event and thereby prepares later integration with `XTend-Fabric`.
|
|
206
|
+
|
|
207
|
+
Security refusals use these codes:
|
|
208
|
+
|
|
209
|
+
- `xtend.security.loader.refused`
|
|
210
|
+
- `xtend.security.manifest.invalid`
|
|
211
|
+
- `xtend.security.import.refused`
|
|
212
|
+
|
|
213
|
+
## Performance Measurements
|
|
214
|
+
|
|
215
|
+
The loader creates `performance.mark` and `performance.measure` entries for:
|
|
216
|
+
|
|
217
|
+
| Measure | Phase |
|
|
218
|
+
|---------|-------|
|
|
219
|
+
| `xtend.loader.manifest` | `load` |
|
|
220
|
+
| `xtend.loader.module` | `load` |
|
|
221
|
+
| `xtend.component.define` | `define` |
|
|
222
|
+
|
|
223
|
+
After module load, `xtend.component.define` briefly waits for `customElements.whenDefined(tag)`, but does not block the loader permanently when a manifest entry does not register a Custom Element.
|
|
224
|
+
|
|
225
|
+
In addition, it emits a local event for every measurement:
|
|
226
|
+
|
|
227
|
+
```js
|
|
228
|
+
window.addEventListener('xtend-loader-performance', (event) => {
|
|
229
|
+
console.log(event.detail.name, event.detail.durationMs);
|
|
230
|
+
});
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
The boot promise contains the local loader measurements:
|
|
234
|
+
|
|
235
|
+
```js
|
|
236
|
+
const boot = await window.__XTendLoaderBootPromise;
|
|
237
|
+
console.log(boot.performanceMeasurements);
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
Fabric telemetry snapshots normalize these entries as `xtend.performance.measurement.v1`.
|
|
241
|
+
|
|
242
|
+
## Gates
|
|
243
|
+
|
|
244
|
+
Relevant local checks:
|
|
245
|
+
|
|
246
|
+
```bash
|
|
247
|
+
npm run dev:local
|
|
248
|
+
npm run test:browser:local
|
|
249
|
+
node scripts/run_xtend_tests.js browser --json
|
|
250
|
+
node scripts/run_xtend_tests.js manifest-import-policy --json
|
|
251
|
+
node scripts/run_xtend_tests.js fabric-performance-measurements --json
|
|
252
|
+
node scripts/run_xtend_tests.js references --json
|
|
253
|
+
npm test
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
`npm run dev:local` starts `scripts/serve_xtend_dev.js` on port `4173`. The browser-smoke harness uses the same server module in test mode with port `0`.
|
|
257
|
+
|
|
258
|
+
## Further Topics
|
|
259
|
+
|
|
260
|
+
- [Manifest Format](./manifest.md)
|
|
261
|
+
- [Manifest Import Policy](./manifest-import-policy.md)
|
|
262
|
+
- [Performance Measurements](./performance-measurements.md)
|
|
263
|
+
- [API Integration](./api.md)
|
|
264
|
+
- [Component Development](./components.md)
|
|
265
|
+
- [Best Practices](./best-practices.md)
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# XTend Policy Types
|
|
2
|
+
|
|
3
|
+
- Contract: `xtend.type-exports.policy-declarations.v1`
|
|
4
|
+
- Workpackage: `WP-TypeExports-05`
|
|
5
|
+
- Gate: `node scripts/run_xtend_tests.js type-exports-policy --json`
|
|
6
|
+
- Report: `.xtend-test-results/xtend-type-exports-policy-report.json`
|
|
7
|
+
- Boundary: `types-only-no-runtime-imports`
|
|
8
|
+
- Boundary: `no-rmt-kernel-import-of-xtend-types`
|
|
9
|
+
- Boundary: `declarations-follow-js-runtime-surface`
|
|
10
|
+
|
|
11
|
+
## Purpose
|
|
12
|
+
|
|
13
|
+
`WP-TypeExports-05` makes the Fabric, a11y and security policy APIs importable for TypeScript consumers. The JS runtime remains unchanged; `package.json#exports` only adds package-native `types` conditions.
|
|
14
|
+
|
|
15
|
+
## Declaration Pack
|
|
16
|
+
|
|
17
|
+
| Area | Package export | Declaration |
|
|
18
|
+
| --- | --- | --- |
|
|
19
|
+
| Fabric Runtime | `./fabric` | `./fabric/xtend-fabric.d.ts` |
|
|
20
|
+
| Fabric/RMT Policy | `./fabric/rmt-lane-mapping`, `./fabric/hydration-policy` | `./fabric/*.d.ts` |
|
|
21
|
+
| A11y Policies | `./a11y/screenreader-signals`, `./a11y/motion-contrast-policy`, `./a11y/runtime-a11y-contract` | `./a11y/*.d.ts` |
|
|
22
|
+
| Security Policies | `./security/manifest-import-policy`, `./security/trusted-dom-policy`, `./security/supply-chain-gate-policy` | `./security/*.d.ts` |
|
|
23
|
+
|
|
24
|
+
The shared type core is in `fabric/xtend-policy-public-types.d.ts` and includes `XtendPolicyDiagnostic`, `XtendPolicyReport`, `XtendFabricFiberInput`, `XtendA11ySignal` and `XtendSecurityClassification`.
|
|
25
|
+
|
|
26
|
+
## Drift Gate
|
|
27
|
+
|
|
28
|
+
The gate verifies:
|
|
29
|
+
|
|
30
|
+
- every policy package export condition points to the expected `.d.ts`
|
|
31
|
+
- every declaration file exists and exports the runtime symbols of the corresponding JS module
|
|
32
|
+
- central diagnostic, report, fiber, a11y and security classification types remain present
|
|
33
|
+
- Fabric/a11y/security runtime files import no `.d.ts`
|
|
34
|
+
- no policy introduces runtime dependencies into components, loader, API or RMT kernel
|
|
35
|
+
|
|
36
|
+
## Handoff
|
|
37
|
+
|
|
38
|
+
`WP-TypeExports-06` can now type Builder, Scaffold and Component Lab program APIs. The policy pack continues the pattern for integration modules: existing JS runtime, narrow declaration facades, package-native `types` conditions and a drift gate against export deviations.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# XTend RMT Types
|
|
2
|
+
|
|
3
|
+
- Contract: `xtend.type-exports.rmt-declarations.v1`
|
|
4
|
+
- Workpackage: `WP-TypeExports-04`
|
|
5
|
+
- Gate: `node scripts/run_xtend_tests.js type-exports-rmt --json`
|
|
6
|
+
- Report: `.xtend-test-results/xtend-type-exports-rmt-report.json`
|
|
7
|
+
- Boundary: `types-only-no-runtime-imports`
|
|
8
|
+
- Boundary: `no-rmt-kernel-import-of-xtend-types`
|
|
9
|
+
- Boundary: `declarations-follow-js-runtime-surface`
|
|
10
|
+
|
|
11
|
+
## Purpose
|
|
12
|
+
|
|
13
|
+
`WP-TypeExports-04` makes the XTendRMT runtime, browser entry and RMT language/tooling exports importable for TypeScript consumers. `./rmt` and `./rmt/browser` point through a `types` condition to `./xtendrmt/rmt-core.d.ts`, while `./rmt/dom-descriptor-renderer`, `./rmt/state-selector-runtime`, `./rmt/action-effect-runtime`, `./rmt/event-routing-runtime` and `./rmt/surface-resource-graph-runtime` have their own narrow runtime declarations.
|
|
14
|
+
|
|
15
|
+
## Declaration Pack
|
|
16
|
+
|
|
17
|
+
| Area | Package export | Declaration |
|
|
18
|
+
| --- | --- | --- |
|
|
19
|
+
| RMT Runtime | `./rmt`, `./rmt/browser` | `./xtendrmt/rmt-core.d.ts` |
|
|
20
|
+
| RMT App Platform Runtime | `./rmt/dom-descriptor-renderer`, `./rmt/state-selector-runtime`, `./rmt/action-effect-runtime`, `./rmt/event-routing-runtime`, `./rmt/surface-resource-graph-runtime` | `./xtendrmt/rmt-dom-descriptor-renderer.d.ts`, `./xtendrmt/rmt-state-selector-runtime.d.ts`, `./xtendrmt/rmt-action-effect-runtime.d.ts`, `./xtendrmt/rmt-event-routing-runtime.d.ts`, `./xtendrmt/rmt-surface-resource-graph-runtime.d.ts` |
|
|
21
|
+
| Source Model and Parser | `./rmt-language/source-model`, `./rmt-language/parser` | `tools/rmt-language/*.d.ts` |
|
|
22
|
+
| vNext Compiler and Contracts | `./rmt-language/vnext-*` | `tools/rmt-language/vnext-*.d.ts` |
|
|
23
|
+
| Tooling Services | `./rmt-language/diagnostics`, `./rmt-language/app-platform-tooling`, `./rmt-language/completions`, `./rmt-language/hover`, `./rmt-language/symbols`, `./rmt-language/definitions`, `./rmt-language/code-actions` | service facades with shared RMT tooling types |
|
|
24
|
+
| LSP, Linter, Editor | `./rmt-language-server`, `./rmt-linter/*`, `./rmt-editor/vscode` | LSP/CLI/editor facades |
|
|
25
|
+
|
|
26
|
+
The shared type core is in `tools/rmt-language/rmt-tooling-public-types.d.ts` and includes `RmtToolingDiagnostic`, `RmtTextEdit`, `RmtWorkspaceEdit`, `RmtLanguageServiceReport` and `RmtJsonRpcMessage`.
|
|
27
|
+
|
|
28
|
+
## Drift Gate
|
|
29
|
+
|
|
30
|
+
The gate verifies:
|
|
31
|
+
|
|
32
|
+
- every RMT package export condition points to the expected `.d.ts`
|
|
33
|
+
- every declaration file exists and exports the runtime symbols of the corresponding JS module
|
|
34
|
+
- central diagnostic, range, edit, completion, hover, symbol, definition, code-action and JSON-RPC types remain present
|
|
35
|
+
- RMT runtime files import no `.d.ts`
|
|
36
|
+
- RMT kernel imports no XTend UI types, loader, API, Fabric, a11y or security runtime surfaces
|
|
37
|
+
|
|
38
|
+
## Handoff
|
|
39
|
+
|
|
40
|
+
`WP-TypeExports-05` can now type Fabric, a11y and security policy APIs. The RMT pack is the reference for P1 integration modules: narrow declarations, existing JS runtime, package-native `types` conditions and a drift gate against export deviations.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# XTend Vendor and Utility Types
|
|
2
|
+
|
|
3
|
+
- Contract: `xtend.type-exports.vendor-facades.v1`
|
|
4
|
+
- Workpackage: `WP-TypeExports-08`
|
|
5
|
+
- Gate: `node scripts/run_xtend_tests.js type-exports-vendor --json`
|
|
6
|
+
- Report: `.xtend-test-results/xtend-type-exports-vendor-report.json`
|
|
7
|
+
|
|
8
|
+
## Purpose
|
|
9
|
+
|
|
10
|
+
`WP-TypeExports-08` closes the remaining type-facade gaps on edge modules. The facades are intentionally narrow: XTend does not copy the full Prism or Turndown type world, but describes only the stable usage boundary inside the project.
|
|
11
|
+
|
|
12
|
+
## Facades
|
|
13
|
+
|
|
14
|
+
- `./components/prism.d.ts` describes the global and CommonJS-capable Prism facade with `highlight`, `highlightElement`, `highlightAllUnder`, `hooks`, `languages` and `Token`.
|
|
15
|
+
- `./components/turndown.d.ts` describes the browser-global facade `window.TurndownService` for side-effect imports and local Markdown conversion.
|
|
16
|
+
- `./design-tokens/xtend-design-tokens.d.ts` describes the productive design-token contract `xtend.design-tokens.product-contract.v1`, theme packs, density packs and validators.
|
|
17
|
+
- `./design-tokens/xtheme-token-alias-layer.d.ts` describes the XTheme alias layer `xtend.theme.token-alias-layer.v1`, legacy bridges, component aliases and validators.
|
|
18
|
+
|
|
19
|
+
## Theme JSON
|
|
20
|
+
|
|
21
|
+
`./design-tokens/themes/enterprise-light` remains a JSON boundary. The example theme is exported as a data artifact and does not require its own runtime declaration. Consumers that import JSON should use their project configuration for JSON modules.
|
|
22
|
+
|
|
23
|
+
## Non-Goals
|
|
24
|
+
|
|
25
|
+
- No full typing of the entire Prism language list.
|
|
26
|
+
- No adoption of external vendor internals into XTend namespace types.
|
|
27
|
+
- No runtime change to `components/prism.js`, `components/turndown.js`, `design-tokens/xtend-design-tokens.js` or `design-tokens/xtheme-token-alias-layer.js`.
|
|
28
|
+
|
|
29
|
+
## Drift Gate
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
node scripts/run_xtend_tests.js type-exports-vendor --json
|
|
33
|
+
npm run test:type-exports-vendor
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
The gate verifies that `./design-tokens` and `./design-tokens/xtheme-token-alias-layer` have a `types` condition, that the component vendor files have their own `.d.ts` facades, that no component `.js` file remains without a declaration-gap decision, and that the facades do not copy runtime imports or vendor implementation details.
|