@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,144 @@
|
|
|
1
|
+
# xutils - XTend Utility-Modul
|
|
2
|
+
|
|
3
|
+
## Uebersicht
|
|
4
|
+
|
|
5
|
+
`x-utils` ist ein Manifest-geführtes Utility-Modul und keine eigene Custom-Element-Oberflaeche. Das Modul exportiert `XUtils` und stellt im Browser zusaetzlich `window.XUtils` bereit. Es sammelt kleine DOM-, Event-, A11y-, Format- und Low-Code-Helfer fuer XTend-Komponenten und Demos.
|
|
6
|
+
|
|
7
|
+
## Import
|
|
8
|
+
|
|
9
|
+
```js
|
|
10
|
+
import { XUtils } from './components/xutils.js';
|
|
11
|
+
|
|
12
|
+
const button = XUtils.create('button', {
|
|
13
|
+
textContent: 'Speichern'
|
|
14
|
+
});
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Im Browser ist nach dem Laden des Moduls verfuegbar:
|
|
18
|
+
|
|
19
|
+
```js
|
|
20
|
+
window.XUtils.find('[data-action="save"]');
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## DOM- und Event-API
|
|
24
|
+
|
|
25
|
+
| Methode | Beschreibung |
|
|
26
|
+
|---------|--------------|
|
|
27
|
+
| `find(selector, root?)` | gibt das erste passende Element zurueck |
|
|
28
|
+
| `findAll(selector, root?)` | gibt alle passenden Elemente als Array zurueck |
|
|
29
|
+
| `create(tag, props?)` | erzeugt ein Element und weist Properties zu |
|
|
30
|
+
| `on(el, type, handler, opts?)` | registriert einen Listener und gibt eine Cleanup-Funktion zurueck |
|
|
31
|
+
| `delegate(root, selector, type, handler)` | delegiert Events innerhalb eines Containers |
|
|
32
|
+
|
|
33
|
+
## A11y- und UI-Helfer
|
|
34
|
+
|
|
35
|
+
| Methode | Beschreibung |
|
|
36
|
+
|---------|--------------|
|
|
37
|
+
| `setAria(el, attrs)` | setzt `aria-*` Attribute aus einem Objekt |
|
|
38
|
+
| `focusTrap(container)` | fokussiert das erste fokussierbare Element im Container |
|
|
39
|
+
| `fadeIn(el, duration?)` | einfache Opacity-Animation |
|
|
40
|
+
| `fadeOut(el, duration?)` | einfache Opacity-Animation |
|
|
41
|
+
| `resolveUiEffects(input?)` | normalisiert opt-in UI-Effekte aus Body-Attribut, Loader-Option oder RMT |
|
|
42
|
+
| `prepareUiEffects(input?)` | bereitet einen opt-in UI-Effekt vor, z.B. Body-Fade |
|
|
43
|
+
| `releaseUiEffects(input?)` | gibt einen vorbereiteten UI-Effekt wieder frei |
|
|
44
|
+
| `isMobile()` | prueft den lokalen Mobile-Breakpoint |
|
|
45
|
+
|
|
46
|
+
## Format- und Datenhelfer
|
|
47
|
+
|
|
48
|
+
| Methode | Beschreibung |
|
|
49
|
+
|---------|--------------|
|
|
50
|
+
| `hexToRgb(hex)` | wandelt Hex-Farben in RGB-Werte |
|
|
51
|
+
| `contrastColor(hex)` | liefert Schwarz oder Weiss als Kontrastfarbe |
|
|
52
|
+
| `formatDate(date, locale?)` | formatiert ein Datum |
|
|
53
|
+
| `formatNumber(num, locale?)` | formatiert eine Zahl |
|
|
54
|
+
| `uniqueId(prefix?)` | erzeugt eine einfache Runtime-ID |
|
|
55
|
+
| `deepClone(obj)` | erzeugt eine JSON-basierte Kopie |
|
|
56
|
+
|
|
57
|
+
## XTemplate Recipes
|
|
58
|
+
|
|
59
|
+
`XUtils.XTemplate` enthaelt kleine Low-Code-Rezepte fuer einfache DOM-Fragmente:
|
|
60
|
+
|
|
61
|
+
```js
|
|
62
|
+
const card = XUtils.XTemplate.card({
|
|
63
|
+
title: 'Status',
|
|
64
|
+
content: 'Alle Systeme bereit'
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
const action = XUtils.XTemplate.button({
|
|
68
|
+
label: 'Aktualisieren',
|
|
69
|
+
onClick: () => window.location.reload()
|
|
70
|
+
});
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Aktuelle Rezepte:
|
|
74
|
+
|
|
75
|
+
| Recipe | Beschreibung |
|
|
76
|
+
|--------|--------------|
|
|
77
|
+
| `card(opts)` | erzeugt eine einfache Card-Struktur |
|
|
78
|
+
| `button(opts)` | erzeugt einen Button |
|
|
79
|
+
| `modal(opts)` | erzeugt eine einfache Modal-Struktur |
|
|
80
|
+
|
|
81
|
+
## Contract
|
|
82
|
+
|
|
83
|
+
- `x-utils` ist als Manifest-Eintrag vorhanden, bleibt aber ein Utility-Modul.
|
|
84
|
+
- Es registriert kein `customElements.define()`.
|
|
85
|
+
- Die Datei `docs/components/xutils.md` ist der kanonische Docs-Slug zum Source-Basename `xutils.js`.
|
|
86
|
+
- Runtime-Tag und Manifest-Key bleiben fuer die Catalog Matrix `x-utils`.
|
|
87
|
+
|
|
88
|
+
## Utility Boundary Contract
|
|
89
|
+
|
|
90
|
+
Seit `WP-E12-09` ist `x-utils` als nicht-visuelle Utility-Boundary gatebar:
|
|
91
|
+
|
|
92
|
+
- Utility Schema: `xtend.utility.module-contract.v1`
|
|
93
|
+
- Import Policy Schema: `xtend.utility.import-policy.v1`
|
|
94
|
+
- Import Policy Result Schema: `xtend.utility.import-policy-result.v1`
|
|
95
|
+
- Boundary Probe Schema: `xtend.utility.boundary-probe.v1`
|
|
96
|
+
- Kernel Boundary: `no-rmt-kernel-import-of-xtend-types`
|
|
97
|
+
|
|
98
|
+
Die Runtime stellt dafuer drei explizite Contract-APIs bereit:
|
|
99
|
+
|
|
100
|
+
| Methode | Beschreibung |
|
|
101
|
+
|---------|--------------|
|
|
102
|
+
| `getUtilityContract()` | liefert Kategorien, Exports, Globals und Methoden der Utility-Oberflaeche |
|
|
103
|
+
| `snapshotUtilityContract()` | liefert einen stabilen Boundary-Snapshot fuer Fixtures und Catalog-Gates |
|
|
104
|
+
| `assertLocalImport(specifier)` | prueft, ob ein Import-Specifier lokal und policy-konform ist |
|
|
105
|
+
|
|
106
|
+
```js
|
|
107
|
+
const local = XUtils.assertLocalImport('/components/xbutton.js');
|
|
108
|
+
const blocked = XUtils.assertLocalImport('https://cdn.ccs-networks.de/xtend/components/xstate.js');
|
|
109
|
+
|
|
110
|
+
console.log(local.allowed); // true
|
|
111
|
+
console.log(blocked.allowed); // false
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
`assertLocalImport()` dispatcht im Browser zusaetzlich `xutils:import-policy-check`. Das Event ist fuer Test-, Fabric- und Security-Harnesses gedacht; der RMT Kernel importiert `x-utils` weiterhin nicht.
|
|
115
|
+
|
|
116
|
+
## UI Effects Boundary
|
|
117
|
+
|
|
118
|
+
Seit `xtend.utility.ui-effects.v1` kapselt `x-utils` opt-in Effekte, die die App-Shell beeinflussen koennen. Der globale Loader versteckt den Body nicht mehr standardmaessig. Ein Fade-In muss bewusst aktiviert werden:
|
|
119
|
+
|
|
120
|
+
```html
|
|
121
|
+
<body xt-ui-effects="fade-in">
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
RMT-Hosts koennen denselben Effekt als nicht-visuellen Intent beschreiben:
|
|
125
|
+
|
|
126
|
+
```json
|
|
127
|
+
{
|
|
128
|
+
"id": "app.ui-effects",
|
|
129
|
+
"kind": "ui_effects",
|
|
130
|
+
"tag": "ui-effects",
|
|
131
|
+
"props": {
|
|
132
|
+
"effect": "fade-in"
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Die Host-Seite bleibt Ausfuehrungsort. RMT beschreibt nur den Intent; `XUtils.prepareUiEffects()` und `XUtils.releaseUiEffects()` setzen die DOM-Attribute `data-xt-ui-effects`, `data-xt-ui-effects-state` und `data-xt-ui-effects-ready`. Fuer RMT-lose Umgebungen reicht das Body-Attribut. Fuer Shell-first Apps, die keinen Effekt wollen, ist kein Attribut noetig oder explizit `xt-ui-effects="none"` moeglich.
|
|
138
|
+
|
|
139
|
+
## Hinweise
|
|
140
|
+
|
|
141
|
+
- Neue Komponenten sollten fuer produktive UI-Vertraege bevorzugt eigene Component-APIs und XTend-Fabric-Gates nutzen.
|
|
142
|
+
- `x-utils` bleibt ein kleiner Hilfsmodul-Pfad fuer Bestand, Demos und einfache DOM-Arbeit.
|
|
143
|
+
- Suite, Fixture und Utility-Typisierung sind seit `WP-E12-09` vorhanden.
|
|
144
|
+
- Seit `WP-E13-05` ist `x-utils` als `closed-as-utility-boundary` bewertet. Ein eigenes visuelles Performance-Profil ist fuer diese Utility-Boundary keine offene RC1-Aufgabe.
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# xwriter – XTend Komponente
|
|
2
|
+
|
|
3
|
+
> **Siehe auch:** [xcode](./xcode.md), [xinput](./xinput.md)
|
|
4
|
+
|
|
5
|
+
## Übersicht
|
|
6
|
+
|
|
7
|
+
`<x-writer>` ist eine Komponente für Rich-Text-Editing und einfache WYSIWYG-Editoren. Sie unterstützt Formatierungen, Theming, State-Integration, Autosave, Export und API-Anbindung.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Features
|
|
12
|
+
- Rich-Text-Editing (fett, kursiv, Listen, Links, Farben, Größen)
|
|
13
|
+
- State-Integration via xstate
|
|
14
|
+
- Theming via CSS Custom Properties
|
|
15
|
+
- Autosave (lokal oder API)
|
|
16
|
+
- Export als Markdown/HTML
|
|
17
|
+
- Drag & Drop für Bilder/Text
|
|
18
|
+
- API-Anbindung (Speichern an Server)
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Verwendung
|
|
23
|
+
|
|
24
|
+
```html
|
|
25
|
+
<x-writer></x-writer>
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Attribute
|
|
31
|
+
| Attribut | Typ | Beschreibung |
|
|
32
|
+
|-------------- |---------|----------------------------------------------------------|
|
|
33
|
+
| `value` | String | Initialer Textinhalt (Property, nicht Attribut) |
|
|
34
|
+
| `api` | String | API-Endpunkt für Speichern (z.B. `/api/save` oder `local` für LocalStorage) |
|
|
35
|
+
| `method` | String | HTTP-Methode für API (Standard: `POST`) |
|
|
36
|
+
| `autosave` | Number | Intervall in ms für Autosave (z.B. `10000` für 10s) |
|
|
37
|
+
| `storage-key` | String | Key für LocalStorage (Standard: `xwriter-content`) |
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Events
|
|
42
|
+
| Event | Beschreibung |
|
|
43
|
+
|-------------------|----------------------------------------------------------|
|
|
44
|
+
| `writer:change` | Bei Textänderung ausgelöst, Detail: `{html, markdown, plain}` |
|
|
45
|
+
| `writer:save` | Nach Speichern (lokal/API), Detail: `{status, response}` |
|
|
46
|
+
| `writer:autosave` | Nach Autosave |
|
|
47
|
+
| `writer:export` | Nach Export, Detail: `{filename, success}` |
|
|
48
|
+
| `writer:error` | Bei Fehlern, Detail: `{error}` |
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## API
|
|
53
|
+
- **Text setzen/lesen:** `element.value = 'Text'` (Property, nicht Attribut)
|
|
54
|
+
- **State-Integration:** Automatisch via xstate
|
|
55
|
+
- **Speichern:**
|
|
56
|
+
- Lokal: `<x-writer api="local"></x-writer>`
|
|
57
|
+
- API: `<x-writer api="/api/save" method="POST"></x-writer>`
|
|
58
|
+
- **Export:** Über Export-Button (Markdown/HTML)
|
|
59
|
+
|
|
60
|
+
## Form Controls UX ab WP-E11-08
|
|
61
|
+
|
|
62
|
+
`<x-writer>` stellt `xtendFormControlUxProfile` mit `xtend.component.form-control-ux-profile.v1` bereit. Das Profil beschreibt Rich-Text als Form-Control-nahe UX-Flaeche mit `writer:change`, `writer:error`, `xwriter-content`, `component.idle.hydrate`, Fabric-Lane `idle` und RMT Shell Authoring. `x-form` kann `writer:change` aufnehmen und den Wert in `xform-data-<id>` aggregieren.
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## Beispiel: Dynamisch per JS
|
|
67
|
+
|
|
68
|
+
```js
|
|
69
|
+
const writer = document.createElement('x-writer');
|
|
70
|
+
writer.value = 'Hallo Welt!';
|
|
71
|
+
document.body.appendChild(writer);
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Styling & Theming
|
|
77
|
+
|
|
78
|
+
```css
|
|
79
|
+
x-writer {
|
|
80
|
+
--writer-bg: #fff;
|
|
81
|
+
--writer-color: #222;
|
|
82
|
+
/* Weitere Custom Properties siehe CSS */
|
|
83
|
+
}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## Accessibility
|
|
89
|
+
- Semantisches HTML, ARIA
|
|
90
|
+
- Tastaturbedienung
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
*Letzte Aktualisierung: 16. Juli 2025*
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
# Komponenten-Entwicklung mit XTend
|
|
2
|
+
|
|
3
|
+
XTend-Komponenten sind wiederverwendbare Web Components. In RMT-first Apps
|
|
4
|
+
werden sie nicht zur App-Architektur selbst: RMT beschreibt Shell, State,
|
|
5
|
+
Actions, Events, Surfaces und Scheduling; XTend Components materialisieren die
|
|
6
|
+
sichtbare UI.
|
|
7
|
+
|
|
8
|
+
Siehe auch [x-router](./components/xrouter.md), [x-link](./components/xlink.md)
|
|
9
|
+
und [RMT vNext Authoring Guide](./rmt-vnext-authoring.md).
|
|
10
|
+
|
|
11
|
+
## Grundprinzipien
|
|
12
|
+
|
|
13
|
+
- Jede visuelle Komponente ist ein ES-Modul und wird per Manifest geladen.
|
|
14
|
+
- Der Manifest-Key ist der kanonische Runtime- und Catalog-Name.
|
|
15
|
+
- Fuer Custom Elements ist der Tag-Name identisch zum Manifest-Key, z. B.
|
|
16
|
+
`x-button`, `x-input`, `x-summary`.
|
|
17
|
+
- Source-Dateien folgen im Bestand dem Modul-Basename ohne Bindestrich, z. B.
|
|
18
|
+
`xbutton.js` fuer `x-button`.
|
|
19
|
+
- Komponenten bleiben unabhaengig, konfigurierbar und host-neutral.
|
|
20
|
+
- RMT kann Komponenten referenzieren, mounten, hydrieren und mit Events
|
|
21
|
+
verbinden, importiert sie aber nicht in den Kernel.
|
|
22
|
+
|
|
23
|
+
## Rolle in RMT-authorierten Apps
|
|
24
|
+
|
|
25
|
+
| Ebene | Aufgabe |
|
|
26
|
+
| --- | --- |
|
|
27
|
+
| RMT vNext | beschreibt App Shell, Surfaces, State, Actions, Events und Lanes |
|
|
28
|
+
| XTend Component | rendert UI, kapselt Shadow DOM, Attribute, Properties und Events |
|
|
29
|
+
| Host Adapter | verbindet RMT Records mit realen Custom Elements und Browser-DOM |
|
|
30
|
+
| Fabric | fuehrt Hydration, Render, User-Blocking- und Idle-Arbeit als Fibers aus |
|
|
31
|
+
|
|
32
|
+
Eine RMT-Surface kann zum Beispiel `component x-cards` deklarieren. Der Host
|
|
33
|
+
Adapter laedt `x-cards` ueber das Manifest, mountet das Custom Element und
|
|
34
|
+
verdrahtet Event-Payloads mit RMT Actions.
|
|
35
|
+
|
|
36
|
+
Die RMT vNext Component Capability Registry macht diesen Adapterpfad
|
|
37
|
+
generisch. Sie liest Manifest, Component Contracts, `xtendRmtMetadata`,
|
|
38
|
+
`observedAttributes`, Events, Slots, Parts, Form-Assoziation sowie A11y- und
|
|
39
|
+
Performance-Profile und stellt daraus Capabilities fuer alle public
|
|
40
|
+
Manifest-Komponenten bereit. Neue Komponenten bleiben normale Web Components;
|
|
41
|
+
fuer RMT-Kompatibilitaet brauchen sie stabile public Contracts statt Host-
|
|
42
|
+
Monkeypatching.
|
|
43
|
+
|
|
44
|
+
## Struktur einer Komponente
|
|
45
|
+
|
|
46
|
+
Typischerweise besteht eine Komponente aus:
|
|
47
|
+
|
|
48
|
+
- einer Klasse, die von `HTMLElement` oder einer lokalen Basis erbt
|
|
49
|
+
- Shadow DOM oder kontrolliertem Light-DOM
|
|
50
|
+
- Styles ueber CSS Custom Properties, Parts oder lokale Shadow-DOM-Regeln
|
|
51
|
+
- Attributen und Properties fuer Konfiguration
|
|
52
|
+
- Custom Events fuer Kommunikation
|
|
53
|
+
- Registrierung ueber `customElements.define(...)`
|
|
54
|
+
|
|
55
|
+
### Minimalbeispiel
|
|
56
|
+
|
|
57
|
+
```js
|
|
58
|
+
class XButton extends HTMLElement {
|
|
59
|
+
constructor() {
|
|
60
|
+
super();
|
|
61
|
+
this.attachShadow({ mode: 'open' });
|
|
62
|
+
this.shadowRoot.innerHTML = `
|
|
63
|
+
<button part="button"><slot></slot></button>
|
|
64
|
+
<style>
|
|
65
|
+
:host { display: inline-flex; }
|
|
66
|
+
button { padding: 0.5rem 0.75rem; }
|
|
67
|
+
</style>
|
|
68
|
+
`;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
customElements.define('x-button', XButton);
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Naming-Regeln
|
|
76
|
+
|
|
77
|
+
| Ebene | Regel | Beispiel |
|
|
78
|
+
| --- | --- | --- |
|
|
79
|
+
| Manifest-Key | kanonischer Runtime- und Catalog-Name | `x-summary` |
|
|
80
|
+
| Custom Element Tag | identisch zum Manifest-Key | `<x-summary>` |
|
|
81
|
+
| Source-Datei | Modul-Basename aus dem Manifest-Pfad | `xsummary.js` |
|
|
82
|
+
| Component-Doku | Source-Basename plus `.md` | `docs/components/xsummary.md` |
|
|
83
|
+
| Docs-Menu-Slug | `components-` plus Source-Basename | `components-xsummary` |
|
|
84
|
+
|
|
85
|
+
Ausnahmen bleiben bewusst klein: `xstate` ist ein Plattform-State-Modul,
|
|
86
|
+
`x-utils` ist ein Utility-Modul ohne Custom Element und `x-theme` stellt die
|
|
87
|
+
Theme-Fassade bereit.
|
|
88
|
+
|
|
89
|
+
## Best Practices
|
|
90
|
+
|
|
91
|
+
- Nutze Shadow DOM, Parts und CSS Custom Properties fuer Kapselung und
|
|
92
|
+
Theming.
|
|
93
|
+
- Halte Attribute, Properties und Events stabil und dokumentiert.
|
|
94
|
+
- Dispatch Events mit klaren `detail`-Payloads, damit RMT Actions sie sicher
|
|
95
|
+
konsumieren koennen.
|
|
96
|
+
- Vermeide globale DOM-Annahmen in Komponenten; App-Struktur gehoert in RMT.
|
|
97
|
+
- Nutze `x-icon` fuer lokale Icons, Icon Packs und kontrollierte URL-Quellen.
|
|
98
|
+
- Plane Hydration bewusst: sichtbare UI gehoert in sichtbare Lanes, weniger
|
|
99
|
+
dringende Arbeit in idle oder lazy Pfade.
|
|
100
|
+
|
|
101
|
+
## Beispiel mit Attribut und Event
|
|
102
|
+
|
|
103
|
+
```js
|
|
104
|
+
class XCounterButton extends HTMLElement {
|
|
105
|
+
static get observedAttributes() {
|
|
106
|
+
return ['value'];
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
constructor() {
|
|
110
|
+
super();
|
|
111
|
+
this.attachShadow({ mode: 'open' });
|
|
112
|
+
this.shadowRoot.innerHTML = `
|
|
113
|
+
<button part="button" type="button"></button>
|
|
114
|
+
`;
|
|
115
|
+
this.shadowRoot.querySelector('button').addEventListener('click', () => {
|
|
116
|
+
const value = Number(this.getAttribute('value') || 0) + 1;
|
|
117
|
+
this.setAttribute('value', String(value));
|
|
118
|
+
this.dispatchEvent(new CustomEvent('counter-change', {
|
|
119
|
+
bubbles: true,
|
|
120
|
+
detail: { value }
|
|
121
|
+
}));
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
attributeChangedCallback() {
|
|
126
|
+
const button = this.shadowRoot && this.shadowRoot.querySelector('button');
|
|
127
|
+
if (button) button.textContent = `Zaehler ${this.getAttribute('value') || 0}`;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
customElements.define('x-counter-button', XCounterButton);
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
In RMT kann dieses Event als `on counter-change -> action ...` an eine Action
|
|
135
|
+
gebunden werden.
|
|
136
|
+
|
|
137
|
+
## Testen und Debugging
|
|
138
|
+
|
|
139
|
+
- Komponenten koennen direkt im HTML getestet werden.
|
|
140
|
+
- Nutze `xtend-loader.js` und den lokalen Dev Server fuer manuelle Tests.
|
|
141
|
+
- Nutze RMT-Surfaces, wenn du Component-Verhalten im App-Lifecycle pruefen
|
|
142
|
+
willst.
|
|
143
|
+
- Fuer API- und Typing-Fragen siehe [Public Component Types](./public-component-types.md).
|
|
144
|
+
|
|
145
|
+
## Weiterfuehrende Themen
|
|
146
|
+
|
|
147
|
+
- [Manifest-Format](./manifest.md)
|
|
148
|
+
- [XTend Loader](./xtend-loader.md)
|
|
149
|
+
- [RMT vNext Authoring Guide](./rmt-vnext-authoring.md)
|
|
150
|
+
- [RMT vNext Component Primitives und XTend UI](./rmt-vnext-component-primitives.md)
|
|
151
|
+
- [Component Platform](./component-platform.md)
|
|
152
|
+
- [Component UX Authoring](./component-ux-authoring.md)
|
|
153
|
+
- [API-Integration](./api.md)
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Conditional Network Evidence CI
|
|
2
|
+
|
|
3
|
+
Contract: `xtend.epic13.conditional-network-evidence-ci.v1`
|
|
4
|
+
|
|
5
|
+
Status: `accepted-conditional-network-evidence-ci`
|
|
6
|
+
|
|
7
|
+
Workpackage: `DPF-WP-03-conditional-network-evidence-ci`
|
|
8
|
+
|
|
9
|
+
## Ziel
|
|
10
|
+
|
|
11
|
+
Dieses Paket produktisiert Audit- und SBOM-Evidence fuer CI und Release Owner. Der lokale Gate bleibt netzwerkfrei; der CI-Job kann `npm audit --audit-level=moderate` und `npm sbom --sbom-format=cyclonedx --json` ausfuehren oder bei nicht verfuegbarem Netzwerk ein Owner-Deferral im Format `xtend.epic13.conditional-network-deferral.v1` schreiben.
|
|
12
|
+
|
|
13
|
+
## Lokaler Gate
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
node scripts/run_xtend_tests.js epic13-conditional-network-evidence-ci --json
|
|
17
|
+
npm run test:epic13-conditional-network-evidence-ci
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Capture
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
npm run conditional-network:evidence
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Ohne `XTEND_CONDITIONAL_NETWORK_EXECUTE=1` schreibt der Capture lokale Deferral-Artefakte. In CI setzt `.github/workflows/xtend-default-gates.yml` `XTEND_CONDITIONAL_NETWORK_EXECUTE=1`, installiert Workspace-Links per `npm ci --ignore-scripts --no-audit --fund=false`, nutzt `XTEND_CONDITIONAL_NETWORK_USE_NPX_NPM10=1` fuer stabile SBOM-Ausgabe und laedt die Artefakte hoch:
|
|
27
|
+
|
|
28
|
+
- `.xtend-test-results/xtend-npm-audit-report.json`
|
|
29
|
+
- `.xtend-test-results/xtend-npm-sbom.json`
|
|
30
|
+
- `.xtend-test-results/xtend-conditional-network-evidence-report.json`
|
|
31
|
+
|
|
32
|
+
## Grenzen
|
|
33
|
+
|
|
34
|
+
Nicht enthalten sind Dependency-Upgrades, Vulnerability-Fixes und Public Publish. Publish bleibt durch `private-until-release-owner-acceptance` blockiert, bis Audit/SBOM ausgefuehrt oder durch den Owner akzeptiert deferred sind.
|
|
35
|
+
|
|
36
|
+
Der separate GitHub-Actions-Job `npm-publish-next` laeuft per `workflow_dispatch` mit `publish_to_npm=true` oder nach `release: published` und erlaubt keine Deferrals: Er setzt `XTEND_CONDITIONAL_NETWORK_ALLOW_DEFERRAL=0`, wiederholt `release:report`, Pack- und Audit/SBOM-Evidence und fuehrt danach `npm publish --tag next --provenance --access public` aus.
|
|
37
|
+
|
|
38
|
+
Der naechste Schritt ist `DPF-WP-04-visual-pixel-evidence-storage`.
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Conditional Network Evidence
|
|
2
|
+
|
|
3
|
+
`xtend.epic13.conditional-network-evidence.v1` beschreibt, wie RC1 mit Netzwerk-Gates umgeht, ohne lokale Entwicklung zu blockieren.
|
|
4
|
+
|
|
5
|
+
Lokaler Gate:
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
node scripts/run_xtend_tests.js epic13-conditional-network-evidence --json
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
oder:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npm run test:epic13-conditional-network-evidence
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Commands
|
|
18
|
+
|
|
19
|
+
| Command | Artefakt |
|
|
20
|
+
|---------|----------|
|
|
21
|
+
| `npm audit --audit-level=moderate` | `.xtend-test-results/xtend-npm-audit-report.json` |
|
|
22
|
+
| `npm sbom --sbom-format=cyclonedx --json` | `.xtend-test-results/xtend-npm-sbom.json` |
|
|
23
|
+
|
|
24
|
+
Der aggregierte Report liegt unter `.xtend-test-results/xtend-conditional-network-evidence-report.json`.
|
|
25
|
+
|
|
26
|
+
## Lokales Verhalten
|
|
27
|
+
|
|
28
|
+
Der lokale Gate fuehrt die Netzwerkbefehle nicht automatisch aus. Stattdessen prueft er, dass XTend fuer Offline-, Sandbox- und CI-Umgebungen ein stabiles Evidence-/Deferral-Format besitzt.
|
|
29
|
+
|
|
30
|
+
Ab `DPF-WP-03` produktisiert [Conditional Network Evidence CI](./conditional-network-evidence-ci.md) den CI-Job und den Capture-Befehl `npm run conditional-network:evidence` unter `xtend.epic13.conditional-network-evidence-ci.v1`. Der Job kann die Audit-/SBOM-Kommandos ausfuehren oder Owner-Deferrals in denselben Artefaktpfaden ablegen.
|
|
31
|
+
|
|
32
|
+
Default-Reason fuer lokale Deferrals:
|
|
33
|
+
|
|
34
|
+
```text
|
|
35
|
+
network-restricted-local-default
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Weitere erlaubte Gruende:
|
|
39
|
+
|
|
40
|
+
- `sandbox-network-unavailable`
|
|
41
|
+
- `registry-auth-unavailable`
|
|
42
|
+
- `owner-approved-offline-run`
|
|
43
|
+
|
|
44
|
+
## Publish Boundary
|
|
45
|
+
|
|
46
|
+
`private-until-release-owner-acceptance` bleibt aktiv. Deferred Network Evidence ist ein Review-Signal, aber keine Publish-Freigabe.
|
|
47
|
+
|
|
48
|
+
`WP-E13-04` ist abgeschlossen. Der Package Export Lock beschreibt unter [Package Export Lock](./package-export-lock.md), wie `npm run pack:dry-run` und die Export Surface fuer RC1 gesperrt werden. `WP-E13-05` ist abgeschlossen; `WP-E13-06` hat die [Hydration Performance Closure](./hydration-performance-closure.md) abgeschlossen. `WP-E13-07` hat die [PROD Browser CSP Smokes](./prod-browser-csp-smokes.md) vorbereitet. `WP-E13-08` hat [Visual Owner Artifacts](./visual-owner-artifacts.md) normalisiert. `WP-E13-09` ist nun startbar.
|
|
49
|
+
|
|
50
|
+
Weiterfuehrend: [Release Owner Acceptance](./release-owner-acceptance.md).
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# XTend Core Migration Guide
|
|
2
|
+
|
|
3
|
+
## Uebersicht
|
|
4
|
+
|
|
5
|
+
Dieser Guide fasst die produktiven Core-Standards aus Epic 01 zusammen. Er dient als Migrationshilfe fuer Legacy-Call-Sites und als Referenz fuer neue XTend-Core-Aenderungen.
|
|
6
|
+
|
|
7
|
+
## Verifikation
|
|
8
|
+
|
|
9
|
+
Der aktuelle Core-Contract ist automatisiert pruefbar:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
node scripts/verify_xtend_core_contracts.js
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Runtime-Standards
|
|
16
|
+
|
|
17
|
+
- `window.XTend.compliance` stellt Checklist, Contract-Uebersicht und Theme-Tokens bereit.
|
|
18
|
+
- zentrale Design-Tokens werden ueber `xtheme` pro Theme registriert und auf `document.documentElement` gespiegelt.
|
|
19
|
+
- Overlay- und Feedback-Komponenten respektieren `prefers-reduced-motion`, Fokus-Standards und kanonische XTend-State-Keys.
|
|
20
|
+
|
|
21
|
+
## RMT-Templating-Migration ab Epic 04
|
|
22
|
+
|
|
23
|
+
RMT-Templating ist additiv und opt-in. Bestehende XTend-Apps, klassische HTML-/JS-Integrationen und bestehende Web-Component-Nutzung bleiben gueltig. Eine App nutzt XTendRMT erst, wenn sie ein `.rmt` Dokument, einen RMT Root-Handshake, einen Template-Record oder einen Host Adapter bewusst registriert.
|
|
24
|
+
|
|
25
|
+
Die verbindliche Migrationsnotiz liegt in `development/XTendRMT-Migrations-und-Framework-Agnostik-Leitplanken.md`.
|
|
26
|
+
Der aktuelle Produktueberblick liegt in `docs/xtendrmt-overview.md`. Das produktive native Authoring-Modell ab Epic 05 liegt in `docs/xtendrmt-native-authoring.md`; die App-DSL-Referenz liegt in `docs/xtendrmt-app-dsl.md`; Runtime Bridge und Adapter sind in `docs/xtendrmt-runtime-bridge.md` beschrieben. Die Migration von Metadatenpfaden zu Top-Level-Domains liegt in `docs/xtendrmt-migration-guide.md`.
|
|
27
|
+
|
|
28
|
+
| Ausgangslage | Migrationspfad |
|
|
29
|
+
|--------------|----------------|
|
|
30
|
+
| XTend-only App | unveraendert weiter betreiben; RMT nur fuer neue Roots oder Template-Piloten aktivieren |
|
|
31
|
+
| XTend mit XRouter | Route-Records vorbereiten, produktive Adapterausfuehrung in Epic 05 |
|
|
32
|
+
| XTend neben React/Vue | RMT als Scheduler oder Template-Transport nutzen, Host Adapter getrennt halten |
|
|
33
|
+
| Vanilla oder Custom Host | eigene Scheduler-Endpoints deklarieren, keine XTend-Capabilities voraussetzen |
|
|
34
|
+
| Legacy-Demo | klassifizieren und pruefen, nicht stillschweigend zum RMT-Produktcontract machen |
|
|
35
|
+
|
|
36
|
+
Review-Regeln fuer RMT-kompatible Aenderungen:
|
|
37
|
+
|
|
38
|
+
- keine XTend Runtime-Imports im RMT Kernel
|
|
39
|
+
- keine erzwungene Migration bestehender Apps
|
|
40
|
+
- keine neue XTend-Template-Sprache neben RMT
|
|
41
|
+
- `kernelVisible: false` fuer XTend-spezifische Adapterdaten
|
|
42
|
+
- produktive Bridge-Factories statt privater Demo-Brueckenlogik verwenden
|
|
43
|
+
- historische Scaffold-Artefakte mit `bridgeRuntime: reserved-for-Epic-05` bleiben als Epic-04-Handoff lesbar, sind aber nicht mehr der operative Bridge-Status
|
|
44
|
+
- `node scripts/run_xtend_tests.js rmt-compatibility --json` und `node scripts/run_xtend_tests.js references --json` als Mindestgates
|
|
45
|
+
|
|
46
|
+
## Native RMT Routes und Components ab Epic 05
|
|
47
|
+
|
|
48
|
+
Neue App-DSL-Dokumente sollen operative Routing-, Component- und Scheduling-Daten in nativen Top-Level-Domains fuehren:
|
|
49
|
+
|
|
50
|
+
- `manifest.metadata.routes -> routes`
|
|
51
|
+
- `manifest.metadata.components -> components`
|
|
52
|
+
- `manifest.metadata.schedules -> schedules`
|
|
53
|
+
- `xtend.xrouter` bleibt Router Adapter
|
|
54
|
+
- `xtend.component` bleibt Component Adapter
|
|
55
|
+
- `rmt.state-scheduler-diagnostics` bleibt Bridge Adapter
|
|
56
|
+
|
|
57
|
+
`manifest.metadata` bleibt fuer Beschreibung, Handoff und historische Demo-Notizen gueltig, soll aber keine neue operative Route-/Component-Bridge tragen. Template-only-Dokumente bleiben kompatibel.
|
|
58
|
+
|
|
59
|
+
Die produktive Ausfuehrung nutzt:
|
|
60
|
+
|
|
61
|
+
- `createRmtFormat().normalizeDocument(...)`
|
|
62
|
+
- `createRmtFormat().createRuntimeRegistries(...)`
|
|
63
|
+
- `createRmtXRouterAdapter(...)`
|
|
64
|
+
- `createRmtXtendComponentAdapter(...)`
|
|
65
|
+
- `createRmtStateSchedulerDiagnosticsBridge(...)`
|
|
66
|
+
|
|
67
|
+
Die Docs-App selbst bleibt Parsedown-basiert, rendert ihre App Shell aber inzwischen Shell-first aus RMT. Der Scheduling- und Shell-Pfad ist seit `ER-WP-40` in `docs/xtendrmt-parsedown-scheduling.md` und `docs/xtendrmt-parsedown-docs.rmt` als offizieller Pilot beschrieben.
|
|
68
|
+
|
|
69
|
+
## Legacy zu kanonisch
|
|
70
|
+
|
|
71
|
+
| Bereich | Legacy | Kanonisch | Status |
|
|
72
|
+
|--------|--------|-----------|--------|
|
|
73
|
+
| Dialog Open | `dialog-open-<id>` | `xtend.component.x-dialog.<id>.open` | Legacy bleibt kompatibel |
|
|
74
|
+
| Dialog Open | `xdialog-open-<id>` | `xtend.component.x-dialog.<id>.open` | Legacy bleibt kompatibel |
|
|
75
|
+
| Modal Open | `modal-open-<id>` | `xtend.component.x-modal.<id>.open` | Legacy bleibt kompatibel |
|
|
76
|
+
| Theme Current | `theme` | `xtend.theme.current` | beide werden gespiegelt |
|
|
77
|
+
| Theme List | `themes` | `xtend.theme.available` | beide werden gespiegelt |
|
|
78
|
+
| Router Last Navigation | `router-navigated` | `xtend.router.lastNavigated` | beide werden gespiegelt |
|
|
79
|
+
| Alert State | `xalert-state-<id>` | `xtend.component.x-alert.<id>` | Legacy bleibt kompatibel |
|
|
80
|
+
|
|
81
|
+
## Was neue Core-Aenderungen beachten muessen
|
|
82
|
+
|
|
83
|
+
- neue UI-Flows brauchen einen expliziten `xstate`-Zwilling
|
|
84
|
+
- Doku, API, Typdefinitionen und Runtime muessen denselben Contract verwenden
|
|
85
|
+
- neue Komponenten oder groessere Core-Aenderungen muessen gegen die Compliance-Checklist und den Verify-Script laufen
|
|
86
|
+
|
|
87
|
+
## Design-Tokens
|
|
88
|
+
|
|
89
|
+
Die zentralen Tokens kommen aus `xtheme` und koennen pro Theme angepasst werden:
|
|
90
|
+
|
|
91
|
+
- `--xtend-color-primary`
|
|
92
|
+
- `--xtend-color-primary-dark`
|
|
93
|
+
- `--xtend-color-accent`
|
|
94
|
+
- `--xtend-glass-bg`
|
|
95
|
+
- `--xtend-glass-blur`
|
|
96
|
+
- `--xtend-shadow`
|
|
97
|
+
- `--xtend-border`
|
|
98
|
+
- `--xtend-radius`
|
|
99
|
+
- `--xtend-font-family`
|
|
100
|
+
- `--xtend-focus-outline`
|
|
101
|
+
- `--xtend-surface`
|
|
102
|
+
- `--xtend-surface-muted`
|
|
103
|
+
- `--xtend-text`
|
|
104
|
+
- `--xtend-overlay-bg`
|
|
105
|
+
|
|
106
|
+
## Hinweise fuer bestehende Integrationen
|
|
107
|
+
|
|
108
|
+
- Bestehende Legacy-Open-Flags fuer Dialog und Modal muessen nicht sofort entfernt werden, sollten aber nicht mehr neu eingefuehrt werden.
|
|
109
|
+
- Neue API-nahe Integrationen sollen `window.XTend.*` statt unnamespaced Helpern bevorzugen.
|
|
110
|
+
- Fuer Core-Reviews ist die Checkliste in `development/XTend-Core-Compliance-Checklist.md` die operative Quelle.
|