@ccslabs/xtend 0.1.0-rc.1
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 +65 -0
- package/LICENSE +201 -0
- package/README.md +184 -0
- package/a11y/motion-contrast-policy.d.ts +32 -0
- package/a11y/motion-contrast-policy.js +261 -0
- package/a11y/runtime-a11y-contract.d.ts +44 -0
- package/a11y/runtime-a11y-contract.js +385 -0
- package/a11y/screenreader-signals.d.ts +32 -0
- package/a11y/screenreader-signals.js +372 -0
- package/api.d.ts +168 -0
- package/api.js +864 -0
- package/catalog/catalog-public-types.d.ts +66 -0
- package/catalog/component-catalog-coverage.d.ts +20 -0
- package/catalog/component-catalog-coverage.js +377 -0
- package/catalog/component-long-tail-migration.d.ts +18 -0
- package/catalog/component-long-tail-migration.js +305 -0
- package/catalog/component-regression-priority.d.ts +20 -0
- package/catalog/component-regression-priority.js +305 -0
- package/catalog/enterprise-component-flex-release-handoff.d.ts +32 -0
- package/catalog/enterprise-component-flex-release-handoff.js +437 -0
- package/catalog/enterprise-component-style-audit.d.ts +22 -0
- package/catalog/enterprise-component-style-audit.js +353 -0
- package/catalog/enterprise-form-control-theme-a11y.d.ts +19 -0
- package/catalog/enterprise-form-control-theme-a11y.js +220 -0
- package/catalog/enterprise-icon-control-audit.d.ts +21 -0
- package/catalog/enterprise-icon-control-audit.js +258 -0
- package/catalog/enterprise-layout-display-media-tokenization.d.ts +20 -0
- package/catalog/enterprise-layout-display-media-tokenization.js +237 -0
- package/catalog/enterprise-navigation-routing-state-hardening.d.ts +20 -0
- package/catalog/enterprise-navigation-routing-state-hardening.js +255 -0
- package/catalog/enterprise-overlay-mode-token-parity.d.ts +15 -0
- package/catalog/enterprise-overlay-mode-token-parity.js +178 -0
- package/catalog/enterprise-third-party-authoring-guide.d.ts +23 -0
- package/catalog/enterprise-third-party-authoring-guide.js +310 -0
- package/catalog/enterprise-visual-dom-snapshot-matrix.d.ts +31 -0
- package/catalog/enterprise-visual-dom-snapshot-matrix.js +357 -0
- package/catalog/epic10-existing-component-metadata.d.ts +25 -0
- package/catalog/epic10-existing-component-metadata.js +534 -0
- package/catalog/epic10-p0-component-wave.d.ts +28 -0
- package/catalog/epic10-p0-component-wave.js +688 -0
- package/catalog/epic10-platform-gates.d.ts +31 -0
- package/catalog/epic10-platform-gates.js +425 -0
- package/catalog/epic10-release-handoff.d.ts +30 -0
- package/catalog/epic10-release-handoff.js +195 -0
- package/catalog/epic11-enterprise-ux-handoff.d.ts +29 -0
- package/catalog/epic11-enterprise-ux-handoff.js +403 -0
- package/catalog/epic12-docs-adoption.d.ts +29 -0
- package/catalog/epic12-docs-adoption.js +183 -0
- package/catalog/epic12-rc0-gate-matrix.d.ts +36 -0
- package/catalog/epic12-rc0-gate-matrix.js +439 -0
- package/catalog/epic12-rc0-handoff.d.ts +30 -0
- package/catalog/epic12-rc0-handoff.js +385 -0
- package/catalog/epic13-conditional-network-evidence-ci.d.ts +35 -0
- package/catalog/epic13-conditional-network-evidence-ci.js +278 -0
- package/catalog/epic13-conditional-network-evidence.d.ts +34 -0
- package/catalog/epic13-conditional-network-evidence.js +280 -0
- package/catalog/epic13-docs-rmt-production-hardening.d.ts +39 -0
- package/catalog/epic13-docs-rmt-production-hardening.js +286 -0
- package/catalog/epic13-hydration-performance-closure.d.ts +33 -0
- package/catalog/epic13-hydration-performance-closure.js +234 -0
- package/catalog/epic13-known-residual-triage.d.ts +32 -0
- package/catalog/epic13-known-residual-triage.js +339 -0
- package/catalog/epic13-package-export-lock.d.ts +41 -0
- package/catalog/epic13-package-export-lock.js +604 -0
- package/catalog/epic13-prod-browser-csp-smoke.d.ts +35 -0
- package/catalog/epic13-prod-browser-csp-smoke.js +218 -0
- package/catalog/epic13-rc1-gate-matrix-ci-handoff.d.ts +36 -0
- package/catalog/epic13-rc1-gate-matrix-ci-handoff.js +418 -0
- package/catalog/epic13-rc1-migration-notes.d.ts +36 -0
- package/catalog/epic13-rc1-migration-notes.js +271 -0
- package/catalog/epic13-rc1-readiness.d.ts +33 -0
- package/catalog/epic13-rc1-readiness.js +487 -0
- package/catalog/epic13-release-owner-acceptance.d.ts +33 -0
- package/catalog/epic13-release-owner-acceptance.js +354 -0
- package/catalog/epic13-release-report-pack-dry-run-evidence.d.ts +36 -0
- package/catalog/epic13-release-report-pack-dry-run-evidence.js +253 -0
- package/catalog/epic13-rmt-production-readiness.d.ts +35 -0
- package/catalog/epic13-rmt-production-readiness.js +314 -0
- package/catalog/epic13-trusted-dom-boundary.d.ts +36 -0
- package/catalog/epic13-trusted-dom-boundary.js +230 -0
- package/catalog/epic13-visual-owner-artifact.d.ts +35 -0
- package/catalog/epic13-visual-owner-artifact.js +233 -0
- package/catalog/epic14-lsp-handoff.d.ts +28 -0
- package/catalog/epic14-lsp-handoff.js +312 -0
- package/catalog/epic14-rmt-tooling.d.ts +33 -0
- package/catalog/epic14-rmt-tooling.js +282 -0
- package/catalog/surface-manager-adapter-runtime.d.ts +37 -0
- package/catalog/surface-manager-adapter-runtime.js +203 -0
- package/catalog/surface-manager-browser-lab.d.ts +39 -0
- package/catalog/surface-manager-browser-lab.js +225 -0
- package/catalog/surface-manager-controller.d.ts +43 -0
- package/catalog/surface-manager-controller.js +290 -0
- package/catalog/surface-manager-layout-engines.d.ts +32 -0
- package/catalog/surface-manager-layout-engines.js +161 -0
- package/catalog/surface-manager-lazy-loading.d.ts +35 -0
- package/catalog/surface-manager-lazy-loading.js +173 -0
- package/catalog/surface-manager-materialization.d.ts +37 -0
- package/catalog/surface-manager-materialization.js +202 -0
- package/catalog/surface-manager-native-rmt-surfaces.d.ts +48 -0
- package/catalog/surface-manager-native-rmt-surfaces.js +325 -0
- package/catalog/surface-manager-overlay-bridge.d.ts +42 -0
- package/catalog/surface-manager-overlay-bridge.js +247 -0
- package/catalog/surface-manager-persistence.d.ts +37 -0
- package/catalog/surface-manager-persistence.js +178 -0
- package/catalog/surface-manager-quality-gates.d.ts +48 -0
- package/catalog/surface-manager-quality-gates.js +324 -0
- package/catalog/surface-manager-release-handoff.d.ts +47 -0
- package/catalog/surface-manager-release-handoff.js +274 -0
- package/catalog/surface-manager-remote-policy.d.ts +34 -0
- package/catalog/surface-manager-remote-policy.js +199 -0
- package/catalog/surface-manager-rmt-authoring.d.ts +44 -0
- package/catalog/surface-manager-rmt-authoring.js +368 -0
- package/catalog/surface-manager-route-lifecycle.d.ts +32 -0
- package/catalog/surface-manager-route-lifecycle.js +162 -0
- package/catalog/surface-manager-runtime-release-handoff.d.ts +36 -0
- package/catalog/surface-manager-runtime-release-handoff.js +245 -0
- package/catalog/surface-manager-side-panel-runtime.d.ts +46 -0
- package/catalog/surface-manager-side-panel-runtime.js +307 -0
- package/catalog/surface-manager-stack-policy.d.ts +32 -0
- package/catalog/surface-manager-stack-policy.js +169 -0
- package/catalog/surface-manager-window-runtime.d.ts +45 -0
- package/catalog/surface-manager-window-runtime.js +285 -0
- package/catalog/surface-manager-workbench-fixture.d.ts +50 -0
- package/catalog/surface-manager-workbench-fixture.js +315 -0
- package/catalog/type-exports-api.js +236 -0
- package/catalog/type-exports-builder.js +405 -0
- package/catalog/type-exports-catalog.js +394 -0
- package/catalog/type-exports-loader.js +266 -0
- package/catalog/type-exports-policy.js +461 -0
- package/catalog/type-exports-rmt.js +407 -0
- package/catalog/type-exports-vendor.js +365 -0
- package/catalog/type-exports.js +574 -0
- package/components/icon-packs/core.js +154 -0
- package/components/icon-packs/lucide.js +136 -0
- package/components/manifest.json +44 -0
- package/components/prism.d.ts +73 -0
- package/components/prism.js +300 -0
- package/components/turndown.d.ts +34 -0
- package/components/turndown.js +107 -0
- package/components/x-rmt-lifecycle-demo-build.d.ts +78 -0
- package/components/x-rmt-lifecycle-demo-build.js +1175 -0
- package/components/x-rmt-lifecycle-demo.d.ts +83 -0
- package/components/x-rmt-lifecycle-demo.js +1175 -0
- package/components/xalert.d.ts +42 -0
- package/components/xalert.js +538 -0
- package/components/xbutton.d.ts +127 -0
- package/components/xbutton.js +612 -0
- package/components/xcalendar.d.ts +39 -0
- package/components/xcalendar.js +338 -0
- package/components/xcards.d.ts +34 -0
- package/components/xcards.js +253 -0
- package/components/xcheckbox.d.ts +48 -0
- package/components/xcheckbox.js +448 -0
- package/components/xcode.d.ts +35 -0
- package/components/xcode.js +370 -0
- package/components/xdialog.d.ts +48 -0
- package/components/xdialog.js +763 -0
- package/components/xdrawer.d.ts +61 -0
- package/components/xdrawer.js +654 -0
- package/components/xfooter.d.ts +41 -0
- package/components/xfooter.js +351 -0
- package/components/xform.d.ts +43 -0
- package/components/xform.js +456 -0
- package/components/xheader.d.ts +68 -0
- package/components/xheader.js +1253 -0
- package/components/xhero.d.ts +42 -0
- package/components/xhero.js +475 -0
- package/components/xicon.d.ts +146 -0
- package/components/xicon.js +688 -0
- package/components/xinput.d.ts +37 -0
- package/components/xinput.js +444 -0
- package/components/xlightbox.d.ts +48 -0
- package/components/xlightbox.js +571 -0
- package/components/xlink.d.ts +63 -0
- package/components/xlink.js +565 -0
- package/components/xmasonry.d.ts +35 -0
- package/components/xmasonry.js +666 -0
- package/components/xmenu.d.ts +118 -0
- package/components/xmenu.js +1005 -0
- package/components/xmodal.d.ts +64 -0
- package/components/xmodal.js +831 -0
- package/components/xplayer.d.ts +57 -0
- package/components/xplayer.js +1748 -0
- package/components/xpopover.d.ts +54 -0
- package/components/xpopover.js +466 -0
- package/components/xprogress.d.ts +40 -0
- package/components/xprogress.js +345 -0
- package/components/xradio.d.ts +50 -0
- package/components/xradio.js +474 -0
- package/components/xrouter.d.ts +244 -0
- package/components/xrouter.js +1841 -0
- package/components/xsection.d.ts +34 -0
- package/components/xsection.js +253 -0
- package/components/xselect.d.ts +46 -0
- package/components/xselect.js +463 -0
- package/components/xsidepanel.d.ts +56 -0
- package/components/xsidepanel.js +728 -0
- package/components/xspinner.d.ts +38 -0
- package/components/xspinner.js +388 -0
- package/components/xstate.d.ts +137 -0
- package/components/xstate.js +493 -0
- package/components/xstatus.d.ts +41 -0
- package/components/xstatus.js +381 -0
- package/components/xsummary.d.ts +43 -0
- package/components/xsummary.js +293 -0
- package/components/xsurfacemanager-controller.d.ts +130 -0
- package/components/xsurfacemanager-controller.js +699 -0
- package/components/xsurfacemanager.d.ts +452 -0
- package/components/xsurfacemanager.js +3775 -0
- package/components/xsurfaceoverlay-bridge.d.ts +43 -0
- package/components/xsurfaceoverlay-bridge.js +238 -0
- package/components/xsurfacewindow.d.ts +50 -0
- package/components/xsurfacewindow.js +576 -0
- package/components/xtabs.d.ts +73 -0
- package/components/xtabs.js +611 -0
- package/components/xtend-public-types.d.ts +208 -0
- package/components/xtextarea.d.ts +46 -0
- package/components/xtextarea.js +451 -0
- package/components/xtheme.d.ts +253 -0
- package/components/xtheme.js +1438 -0
- package/components/xtoast.d.ts +39 -0
- package/components/xtoast.js +389 -0
- package/components/xtooltip.d.ts +53 -0
- package/components/xtooltip.js +432 -0
- package/components/xtype.d.ts +42 -0
- package/components/xtype.js +244 -0
- package/components/xutils.d.ts +164 -0
- package/components/xutils.js +496 -0
- package/components/xwriter.d.ts +67 -0
- package/components/xwriter.js +854 -0
- package/design-tokens/themes/enterprise-light.json +40 -0
- package/design-tokens/themes/xtend-signature.json +126 -0
- package/design-tokens/xtend-design-tokens.d.ts +95 -0
- package/design-tokens/xtend-design-tokens.js +395 -0
- package/design-tokens/xtheme-token-alias-layer.d.ts +84 -0
- package/design-tokens/xtheme-token-alias-layer.js +423 -0
- package/docs/.htaccess +51 -0
- package/docs/README.md +340 -0
- package/docs/XTend-ADR.md +221 -0
- package/docs/a11y-keyboard-smokes.md +62 -0
- package/docs/about.md +18 -0
- package/docs/api.md +157 -0
- package/docs/best-practices.md +76 -0
- package/docs/component-catalog-coverage.md +58 -0
- package/docs/component-lab.md +103 -0
- package/docs/component-long-tail-migration.md +41 -0
- package/docs/component-platform.md +159 -0
- package/docs/component-ux-app-authoring.md +130 -0
- package/docs/component-ux-authoring.md +96 -0
- package/docs/component-ux-gates.md +45 -0
- package/docs/components/x-rmt-lifecycle-demo-build.md +60 -0
- package/docs/components/xalert.md +81 -0
- package/docs/components/xbutton.md +103 -0
- package/docs/components/xcalendar.md +82 -0
- package/docs/components/xcards.md +128 -0
- package/docs/components/xcheckbox.md +102 -0
- package/docs/components/xcode.md +126 -0
- package/docs/components/xdialog.md +92 -0
- package/docs/components/xdrawer.md +84 -0
- package/docs/components/xfooter.md +126 -0
- package/docs/components/xform.md +128 -0
- package/docs/components/xheader.md +308 -0
- package/docs/components/xhero.md +142 -0
- package/docs/components/xicon.md +125 -0
- package/docs/components/xinput.md +129 -0
- package/docs/components/xlightbox.md +98 -0
- package/docs/components/xlink.md +109 -0
- package/docs/components/xmasonry.md +124 -0
- package/docs/components/xmenu.md +158 -0
- package/docs/components/xmodal.md +82 -0
- package/docs/components/xplayer.md +104 -0
- package/docs/components/xpopover.md +67 -0
- package/docs/components/xprogress.md +56 -0
- package/docs/components/xradio.md +103 -0
- package/docs/components/xrouter.md +260 -0
- package/docs/components/xsection.md +125 -0
- package/docs/components/xselect.md +105 -0
- package/docs/components/xsidepanel.md +30 -0
- package/docs/components/xspinner.md +102 -0
- package/docs/components/xstate.md +148 -0
- package/docs/components/xstatus.md +55 -0
- package/docs/components/xsummary.md +78 -0
- package/docs/components/xsurfacemanager.md +27 -0
- package/docs/components/xsurfacewindow.md +21 -0
- package/docs/components/xtabs.md +160 -0
- package/docs/components/xtextarea.md +98 -0
- package/docs/components/xtheme.md +167 -0
- package/docs/components/xtoast.md +62 -0
- package/docs/components/xtooltip.md +66 -0
- package/docs/components/xtype.md +82 -0
- package/docs/components/xutils.md +144 -0
- package/docs/components/xwriter.md +94 -0
- package/docs/components.md +117 -0
- package/docs/conditional-network-evidence-ci.md +38 -0
- package/docs/conditional-network-evidence.md +50 -0
- package/docs/core-migration-guide.md +110 -0
- package/docs/design-tokens.md +116 -0
- package/docs/docs-rmt-production-hardening.md +31 -0
- package/docs/enterprise-adoption.md +411 -0
- package/docs/enterprise-component-flex-release-handoff.md +129 -0
- package/docs/epic10-platform-gates.md +62 -0
- package/docs/epic10-release-handoff.md +81 -0
- package/docs/epic11-enterprise-ux-handoff.md +70 -0
- package/docs/epic12-rc0-handoff.md +61 -0
- package/docs/existing-component-metadata.md +67 -0
- package/docs/hydration-performance-closure.md +34 -0
- package/docs/hydration-policies.md +71 -0
- package/docs/index.php +1625 -0
- package/docs/known-residual-triage.md +22 -0
- package/docs/manifest-import-policy.md +79 -0
- package/docs/manifest.md +106 -0
- package/docs/menu.json +1190 -0
- package/docs/motion-contrast.md +67 -0
- package/docs/package-export-lock.md +44 -0
- package/docs/performance-measurements.md +106 -0
- package/docs/performance-regression.md +89 -0
- package/docs/performance.md +94 -0
- package/docs/previews/README.md +17 -0
- package/docs/prod-browser-csp-smokes.md +40 -0
- package/docs/public-component-types.md +79 -0
- package/docs/quick-start-guide.md +152 -0
- package/docs/rc0-adoption-guide.md +102 -0
- package/docs/rc0-gate-matrix.md +58 -0
- package/docs/rc1-gate-matrix-ci-handoff.md +56 -0
- package/docs/rc1-migration-notes.md +69 -0
- package/docs/rc1-readiness.md +46 -0
- package/docs/release-owner-acceptance.md +56 -0
- package/docs/release-report-pack-dry-run-evidence.md +39 -0
- package/docs/rmt-dsl-authoring-polish.md +122 -0
- package/docs/rmt-first-demo-app.md +77 -0
- package/docs/rmt-first-xtend-apps.md +105 -0
- package/docs/rmt-kernel-panic-recovery-incident-handoff.md +61 -0
- package/docs/rmt-kernel-security-hardening-migration.md +50 -0
- package/docs/rmt-kernel-trusted-output-authoring.md +69 -0
- package/docs/rmt-language-server.md +177 -0
- package/docs/rmt-lifecycle-demo.md +25 -0
- package/docs/rmt-linter.md +140 -0
- package/docs/rmt-production-readiness.md +63 -0
- package/docs/rmt-tooling-release-gates.md +77 -0
- package/docs/rmt-vnext-authoring.md +60 -0
- package/docs/rmt-vnext-cross-surface-events.md +68 -0
- package/docs/rmt-vnext-enterprise-mfe-handoff.md +70 -0
- package/docs/rmt-vnext-migration-notes.md +62 -0
- package/docs/rmt-vnext-release-handoff.md +69 -0
- package/docs/rmt-vnext-remote-surfaces.md +90 -0
- package/docs/rmt-vnext-surface-registry-enterprise.md +76 -0
- package/docs/screenreader-signals.md +56 -0
- package/docs/supply-chain-gates.md +100 -0
- package/docs/surface-manager-authoring-guide.md +94 -0
- package/docs/surface-manager-browser-lab.md +45 -0
- package/docs/surface-manager-component-lab.md +43 -0
- package/docs/surface-manager-controller.md +66 -0
- package/docs/surface-manager-layout-engines.md +32 -0
- package/docs/surface-manager-lazy-hydration.md +63 -0
- package/docs/surface-manager-migration-guide.md +94 -0
- package/docs/surface-manager-native-rmt-surfaces.md +38 -0
- package/docs/surface-manager-overlay-bridge.md +53 -0
- package/docs/surface-manager-persistence.md +30 -0
- package/docs/surface-manager-quality-gates.md +51 -0
- package/docs/surface-manager-release-handoff.md +68 -0
- package/docs/surface-manager-remote-policy.md +54 -0
- package/docs/surface-manager-rmt-authoring.md +86 -0
- package/docs/surface-manager-route-lifecycle.md +59 -0
- package/docs/surface-manager-runtime-release-handoff.md +69 -0
- package/docs/surface-manager-side-panel-runtime.md +36 -0
- package/docs/surface-manager-stack-policy.md +39 -0
- package/docs/surface-manager-window-runtime.md +47 -0
- package/docs/surface-manager-workbench-fixture.md +43 -0
- package/docs/third-party-design-authoring.md +406 -0
- package/docs/trusted-dom-boundary-browser-proof.md +32 -0
- package/docs/trusted-dom-sanitizing.md +110 -0
- package/docs/type-exports.md +61 -0
- package/docs/typescript-components.md +63 -0
- package/docs/utils/fabric-runtime.js +650 -0
- package/docs/utils/pageloader.js +2823 -0
- package/docs/utils/parsedown.php +298 -0
- package/docs/visual-browser-regression.md +83 -0
- package/docs/visual-owner-artifacts.md +46 -0
- package/docs/visual-snapshot-automation.md +87 -0
- package/docs/xtend-api-types.md +55 -0
- package/docs/xtend-builder-types.md +55 -0
- package/docs/xtend-catalog-types.md +44 -0
- package/docs/xtend-fabric-rmt-lane-mapping.md +143 -0
- package/docs/xtend-fabric.md +474 -0
- package/docs/xtend-loader-types.md +58 -0
- package/docs/xtend-loader.md +265 -0
- package/docs/xtend-policy-types.md +38 -0
- package/docs/xtend-rmt-types.md +39 -0
- package/docs/xtend-vendor-types.md +36 -0
- package/docs/xtendrmt-app-dsl.md +269 -0
- package/docs/xtendrmt-migration-guide.md +235 -0
- package/docs/xtendrmt-native-authoring.md +337 -0
- package/docs/xtendrmt-overview.md +89 -0
- package/docs/xtendrmt-parsedown-docs.rmt +956 -0
- package/docs/xtendrmt-parsedown-scheduling.md +301 -0
- package/docs/xtendrmt-runtime-bridge.md +155 -0
- package/fabric/hydration-policy.d.ts +27 -0
- package/fabric/hydration-policy.js +306 -0
- package/fabric/package.json +58 -0
- package/fabric/rmt-lane-mapping.d.ts +47 -0
- package/fabric/rmt-lane-mapping.js +504 -0
- package/fabric/xtend-fabric.d.ts +81 -0
- package/fabric/xtend-fabric.js +2669 -0
- package/fabric/xtend-policy-public-types.d.ts +135 -0
- package/package.json +8225 -0
- package/security/README.md +54 -0
- package/security/manifest-import-policy.d.ts +43 -0
- package/security/manifest-import-policy.js +260 -0
- package/security/supply-chain-gate-policy.d.ts +45 -0
- package/security/supply-chain-gate-policy.js +249 -0
- package/security/trusted-dom-policy.d.ts +36 -0
- package/security/trusted-dom-policy.js +316 -0
- package/tools/package.json +77 -0
- package/tools/rmt-editor/vscode/README.md +33 -0
- package/tools/rmt-editor/vscode/extension.d.ts +9 -0
- package/tools/rmt-editor/vscode/extension.js +55 -0
- package/tools/rmt-editor/vscode/language-configuration.json +28 -0
- package/tools/rmt-editor/vscode/package.json +83 -0
- package/tools/rmt-editor/vscode/snippets/rmt.code-snippets +243 -0
- package/tools/rmt-editor/vscode/syntaxes/rmt.tmLanguage.json +13 -0
- package/tools/rmt-editor/vscode/xtend-rmt-language-0.0.0-enterprise-readiness.vsix +0 -0
- package/tools/rmt-language/code-actions.d.ts +15 -0
- package/tools/rmt-language/code-actions.js +566 -0
- package/tools/rmt-language/completions.d.ts +22 -0
- package/tools/rmt-language/completions.js +475 -0
- package/tools/rmt-language/definitions.d.ts +13 -0
- package/tools/rmt-language/definitions.js +212 -0
- package/tools/rmt-language/diagnostics.d.ts +23 -0
- package/tools/rmt-language/diagnostics.js +486 -0
- package/tools/rmt-language/format-adapter.d.ts +16 -0
- package/tools/rmt-language/format-adapter.js +270 -0
- package/tools/rmt-language/hover.d.ts +12 -0
- package/tools/rmt-language/hover.js +326 -0
- package/tools/rmt-language/kernel-escalation.d.ts +122 -0
- package/tools/rmt-language/kernel-escalation.js +427 -0
- package/tools/rmt-language/kernel-panic-monitor.d.ts +176 -0
- package/tools/rmt-language/kernel-panic-monitor.js +674 -0
- package/tools/rmt-language/kernel-policy-parity.d.ts +142 -0
- package/tools/rmt-language/kernel-policy-parity.js +629 -0
- package/tools/rmt-language/kernel-recovery.d.ts +173 -0
- package/tools/rmt-language/kernel-recovery.js +666 -0
- package/tools/rmt-language/kernel-scheduler-failure.d.ts +136 -0
- package/tools/rmt-language/kernel-scheduler-failure.js +486 -0
- package/tools/rmt-language/kernel-security-regression.d.ts +154 -0
- package/tools/rmt-language/kernel-security-regression.js +465 -0
- package/tools/rmt-language/kernel-trust-authority.d.ts +120 -0
- package/tools/rmt-language/kernel-trust-authority.js +549 -0
- package/tools/rmt-language/parser.d.ts +14 -0
- package/tools/rmt-language/parser.js +111 -0
- package/tools/rmt-language/rmt-tooling-public-types.d.ts +179 -0
- package/tools/rmt-language/rules/boundary-policy.js +81 -0
- package/tools/rmt-language/rules/document-policy.js +65 -0
- package/tools/rmt-language/rules/index.js +29 -0
- package/tools/rmt-language/rules/route-policy.js +81 -0
- package/tools/rmt-language/rules/scheduler-policy.js +66 -0
- package/tools/rmt-language/rules/template-policy.js +130 -0
- package/tools/rmt-language/semantic-graph.d.ts +18 -0
- package/tools/rmt-language/semantic-graph.js +827 -0
- package/tools/rmt-language/snippets/README.md +17 -0
- package/tools/rmt-language/snippets/index.d.ts +17 -0
- package/tools/rmt-language/snippets/index.js +417 -0
- package/tools/rmt-language/snippets/rmt.code-snippets +243 -0
- package/tools/rmt-language/source-model.d.ts +14 -0
- package/tools/rmt-language/source-model.js +731 -0
- package/tools/rmt-language/symbols.d.ts +13 -0
- package/tools/rmt-language/symbols.js +183 -0
- package/tools/rmt-language/vnext-compatibility.d.ts +28 -0
- package/tools/rmt-language/vnext-compatibility.js +675 -0
- package/tools/rmt-language/vnext-compiler.d.ts +17 -0
- package/tools/rmt-language/vnext-compiler.js +716 -0
- package/tools/rmt-language/vnext-composition.d.ts +30 -0
- package/tools/rmt-language/vnext-composition.js +595 -0
- package/tools/rmt-language/vnext-conditions.d.ts +25 -0
- package/tools/rmt-language/vnext-conditions.js +474 -0
- package/tools/rmt-language/vnext-cross-surface-events.d.ts +30 -0
- package/tools/rmt-language/vnext-cross-surface-events.js +607 -0
- package/tools/rmt-language/vnext-degradation.d.ts +23 -0
- package/tools/rmt-language/vnext-degradation.js +428 -0
- package/tools/rmt-language/vnext-enterprise-fixtures.d.ts +28 -0
- package/tools/rmt-language/vnext-enterprise-fixtures.js +487 -0
- package/tools/rmt-language/vnext-enterprise-registry.d.ts +21 -0
- package/tools/rmt-language/vnext-enterprise-registry.js +495 -0
- package/tools/rmt-language/vnext-enterprise-release.d.ts +44 -0
- package/tools/rmt-language/vnext-enterprise-release.js +472 -0
- package/tools/rmt-language/vnext-event-governance.d.ts +29 -0
- package/tools/rmt-language/vnext-event-governance.js +488 -0
- package/tools/rmt-language/vnext-events.d.ts +44 -0
- package/tools/rmt-language/vnext-events.js +680 -0
- package/tools/rmt-language/vnext-import-resolver.d.ts +28 -0
- package/tools/rmt-language/vnext-import-resolver.js +642 -0
- package/tools/rmt-language/vnext-lifecycle.d.ts +22 -0
- package/tools/rmt-language/vnext-lifecycle.js +404 -0
- package/tools/rmt-language/vnext-parser.d.ts +21 -0
- package/tools/rmt-language/vnext-parser.js +1391 -0
- package/tools/rmt-language/vnext-regression.d.ts +25 -0
- package/tools/rmt-language/vnext-regression.js +394 -0
- package/tools/rmt-language/vnext-release.d.ts +29 -0
- package/tools/rmt-language/vnext-release.js +293 -0
- package/tools/rmt-language/vnext-remote-compatibility.d.ts +33 -0
- package/tools/rmt-language/vnext-remote-compatibility.js +892 -0
- package/tools/rmt-language/vnext-remote-compiler.d.ts +14 -0
- package/tools/rmt-language/vnext-remote-compiler.js +520 -0
- package/tools/rmt-language/vnext-remote-manifest.d.ts +33 -0
- package/tools/rmt-language/vnext-remote-manifest.js +538 -0
- package/tools/rmt-language/vnext-remote-security.d.ts +27 -0
- package/tools/rmt-language/vnext-remote-security.js +380 -0
- package/tools/rmt-language/vnext-remote-tooling.d.ts +25 -0
- package/tools/rmt-language/vnext-remote-tooling.js +805 -0
- package/tools/rmt-language/vnext-scheduler.d.ts +24 -0
- package/tools/rmt-language/vnext-scheduler.js +469 -0
- package/tools/rmt-language/vnext-security.d.ts +28 -0
- package/tools/rmt-language/vnext-security.js +597 -0
- package/tools/rmt-language/vnext-streaming.d.ts +28 -0
- package/tools/rmt-language/vnext-streaming.js +593 -0
- package/tools/rmt-language/vnext-surfaces.d.ts +24 -0
- package/tools/rmt-language/vnext-surfaces.js +406 -0
- package/tools/rmt-language/vnext-tooling.d.ts +25 -0
- package/tools/rmt-language/vnext-tooling.js +728 -0
- package/tools/rmt-language-server/protocol.d.ts +22 -0
- package/tools/rmt-language-server/protocol.js +352 -0
- package/tools/rmt-language-server/server.d.ts +15 -0
- package/tools/rmt-language-server/server.js +622 -0
- package/tools/rmt-linter/cli.d.ts +14 -0
- package/tools/rmt-linter/cli.js +450 -0
- package/tools/rmt-linter/reporter.d.ts +16 -0
- package/tools/rmt-linter/reporter.js +472 -0
- package/xtend-builder/README.md +83 -0
- package/xtend-builder/a11y/README.md +42 -0
- package/xtend-builder/a11y/component-a11y-profile.d.ts +14 -0
- package/xtend-builder/a11y/component-a11y-profile.js +314 -0
- package/xtend-builder/blueprints/README.md +105 -0
- package/xtend-builder/blueprints/component-blueprint.contract.d.ts +16 -0
- package/xtend-builder/blueprints/component-blueprint.contract.js +343 -0
- package/xtend-builder/builder-public-types.d.ts +234 -0
- package/xtend-builder/extensions/README.md +26 -0
- package/xtend-builder/extensions/component-extension-points.d.ts +11 -0
- package/xtend-builder/extensions/component-extension-points.js +277 -0
- package/xtend-builder/generators/README.md +149 -0
- package/xtend-builder/generators/component-files.d.ts +5 -0
- package/xtend-builder/generators/component-files.js +769 -0
- package/xtend-builder/generators/component-plan.d.ts +4 -0
- package/xtend-builder/generators/component-plan.js +104 -0
- package/xtend-builder/generators/registry.d.ts +6 -0
- package/xtend-builder/generators/registry.js +118 -0
- package/xtend-builder/generators/rmt-build.js +738 -0
- package/xtend-builder/generators/rmt-lifecycle-demo.js +922 -0
- package/xtend-builder/lib/cli.d.ts +9 -0
- package/xtend-builder/lib/cli.js +543 -0
- package/xtend-builder/lib/layout.d.ts +6 -0
- package/xtend-builder/lib/layout.js +153 -0
- package/xtend-builder/lib/package-resolver.js +25 -0
- package/xtend-builder/package.json +90 -0
- package/xtend-builder/performance/README.md +31 -0
- package/xtend-builder/performance/component-performance-profile.d.ts +11 -0
- package/xtend-builder/performance/component-performance-profile.js +347 -0
- package/xtend-builder/performance/component-ux-performance-contract.d.ts +27 -0
- package/xtend-builder/performance/component-ux-performance-contract.js +424 -0
- package/xtend-builder/preview/README.md +61 -0
- package/xtend-builder/preview/component-lab-ux-inspector.d.ts +20 -0
- package/xtend-builder/preview/component-lab-ux-inspector.js +448 -0
- package/xtend-builder/preview/component-lab.d.ts +14 -0
- package/xtend-builder/preview/component-lab.js +278 -0
- package/xtend-builder/preview/component-preview.d.ts +5 -0
- package/xtend-builder/preview/component-preview.js +160 -0
- package/xtend-builder/scaffold.config.d.ts +4 -0
- package/xtend-builder/scaffold.config.js +2056 -0
- package/xtend-builder/scaffold.d.ts +3 -0
- package/xtend-builder/scaffold.js +11 -0
- package/xtend-builder/templates/README.md +33 -0
- package/xtend-builder/templates/component/a11y.template.ts +11 -0
- package/xtend-builder/templates/component/component-suite.template.d.ts +2 -0
- package/xtend-builder/templates/component/component-suite.template.js +108 -0
- package/xtend-builder/templates/component/contract.template.ts +10 -0
- package/xtend-builder/templates/component/demo-plan.template.md +73 -0
- package/xtend-builder/templates/component/docs.template.md +301 -0
- package/xtend-builder/templates/component/fixture-data.template.ts +28 -0
- package/xtend-builder/templates/component/fixture.template.html +37 -0
- package/xtend-builder/templates/component/manifest-plan.template.json +22 -0
- package/xtend-builder/templates/component/performance.template.ts +13 -0
- package/xtend-builder/templates/component/rmt.template.ts +12 -0
- package/xtend-builder/templates/component/source.template.d.ts +2 -0
- package/xtend-builder/templates/component/source.template.js +137 -0
- package/xtend-builder/templates/component/source.template.ts +110 -0
- package/xtend-builder/templates/component/types.template.d.ts +423 -0
- package/xtend-builder/templates/loader.d.ts +4 -0
- package/xtend-builder/templates/loader.js +51 -0
- package/xtend-builder/templates/registry.d.ts +6 -0
- package/xtend-builder/templates/registry.js +119 -0
- package/xtend-builder/typing/README.md +130 -0
- package/xtend-builder/typing/component-contract-v2.d.ts +15 -0
- package/xtend-builder/typing/component-contract-v2.js +248 -0
- package/xtend-builder/typing/component-network-contract.d.ts +22 -0
- package/xtend-builder/typing/component-network-contract.js +478 -0
- package/xtend-builder/typing/component-shell-contract.d.ts +21 -0
- package/xtend-builder/typing/component-shell-contract.js +312 -0
- package/xtend-builder/typing/component-styling-contract.d.ts +22 -0
- package/xtend-builder/typing/component-styling-contract.js +301 -0
- package/xtend-builder/typing/component-types.d.ts +10 -0
- package/xtend-builder/typing/component-types.js +551 -0
- package/xtend-builder/typing/enterprise-component-flex-hardening-contract.d.ts +20 -0
- package/xtend-builder/typing/enterprise-component-flex-hardening-contract.js +332 -0
- package/xtend-builder/typing/feedback-status-ux-contract.d.ts +25 -0
- package/xtend-builder/typing/feedback-status-ux-contract.js +347 -0
- package/xtend-builder/typing/form-controls-ux-contract.d.ts +25 -0
- package/xtend-builder/typing/form-controls-ux-contract.js +357 -0
- package/xtend-builder/typing/layout-display-media-ux-contract.d.ts +25 -0
- package/xtend-builder/typing/layout-display-media-ux-contract.js +420 -0
- package/xtend-builder/typing/navigation-routing-ux-contract.d.ts +17 -0
- package/xtend-builder/typing/navigation-routing-ux-contract.js +297 -0
- package/xtend-builder/typing/overlay-interaction-ux-contract.d.ts +25 -0
- package/xtend-builder/typing/overlay-interaction-ux-contract.js +383 -0
- package/xtend-builder/typing/rmt-dsl-authoring-polish.d.ts +27 -0
- package/xtend-builder/typing/rmt-dsl-authoring-polish.js +419 -0
- package/xtend-builder/typing/rmt-shell-authoring-contract.d.ts +26 -0
- package/xtend-builder/typing/rmt-shell-authoring-contract.js +315 -0
- package/xtend-builder/utils/README.md +8 -0
- package/xtend-builder/utils/naming.d.ts +7 -0
- package/xtend-builder/utils/naming.js +36 -0
- package/xtend-builder/utils/validation.d.ts +5 -0
- package/xtend-builder/utils/validation.js +95 -0
- package/xtend-builder/wiring/README.md +46 -0
- package/xtend-builder/wiring/features.d.ts +5 -0
- package/xtend-builder/wiring/features.js +165 -0
- package/xtend-builder/wiring/hydration.d.ts +4 -0
- package/xtend-builder/wiring/hydration.js +44 -0
- package/xtend-builder/wiring/manifest.d.ts +5 -0
- package/xtend-builder/wiring/manifest.js +48 -0
- package/xtend-builder/workflows/README.md +47 -0
- package/xtend-builder/workflows/developer-workflow.d.ts +6 -0
- package/xtend-builder/workflows/developer-workflow.js +125 -0
- package/xtend-builder/writing/manifest-patcher.d.ts +49 -0
- package/xtend-builder/writing/manifest-patcher.js +391 -0
- package/xtend-builder/writing/write-plan.d.ts +148 -0
- package/xtend-builder/writing/write-plan.js +646 -0
- package/xtend-dev.d.ts +23 -0
- package/xtend-dev.js +4 -0
- package/xtend-loader.d.ts +201 -0
- package/xtend-loader.js +1704 -0
- package/xtend.css +402 -0
- package/xtendrmt/package.json +64 -0
- package/xtendrmt/rmt-core.d.ts +4452 -0
- package/xtendrmt/rmt-core.esm.js +25793 -0
- package/xtendrmt/rmt-first-demo-app.js +265 -0
- package/xtendrmt/rmt-first-demo-app.rmt +737 -0
- package/xtendrmt/rmt-lifecycle-demo.app.js +493 -0
- package/xtendrmt/rmt-lifecycle-demo.core.json +810 -0
- package/xtendrmt/rmt-lifecycle-demo.rmt +35 -0
- package/xtendrmt/rmt-lifecycle-demo.rmt-build.app.js +153 -0
- package/xtendrmt/rmt-lifecycle-demo.rmt-build.core.json +810 -0
- package/xtendrmt/rmt-lifecycle-demo.rmt-build.scaffold.json +202 -0
- package/xtendrmt/rmt-lifecycle-demo.scaffold.json +187 -0
- package/xtendrmt/rmt-manifest.json +548 -0
- package/xtendrmt/rmt-runtime.browser.js +26183 -0
- package/xtendrmt/rmt-runtime.esm.js +26214 -0
- package/xtendrmt/rmt-vnext-enterprise-mfe-demo.core.json +849 -0
- package/xtendrmt/rmt-vnext-enterprise-mfe-demo.rmt +50 -0
- package/xtendrmt/rmt-vnext-reference-demo.core.json +1069 -0
- package/xtendrmt/rmt-vnext-reference-demo.rmt +50 -0
- package/xtendrmt/rmt.schema.json +3145 -0
- package/xtendrmt/surface-workbench.js +316 -0
- package/xtendrmt/surface-workbench.rmt +762 -0
- package/xtendrmt/xtendrmt-bestcase-demo.core.json +1187 -0
- package/xtendrmt/xtendrmt-bestcase-demo.js +1728 -0
- package/xtendrmt/xtendrmt-bestcase-demo.rmt +57 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# xradio – XTend Komponente
|
|
2
|
+
|
|
3
|
+
> **Siehe auch:** [xform](./xform.md), [xinput](./xinput.md), [xstate](./xstate.md)
|
|
4
|
+
|
|
5
|
+
## Uebersicht
|
|
6
|
+
|
|
7
|
+
`<x-radio>` vervollstaendigt die TypeScript-first Selection Controls aus `WP-E10-09`. Die Komponente koordiniert Gruppen ueber `name`, unterstuetzt Keyboard-Navigation und liefert RMT-, Fabric-, A11y- und Performance-Metadaten fuer RMT-first Apps.
|
|
8
|
+
|
|
9
|
+
## Verwendung
|
|
10
|
+
|
|
11
|
+
```html
|
|
12
|
+
<x-radio id="plan-starter" name="plan" value="starter">
|
|
13
|
+
<span slot="label">Starter</span>
|
|
14
|
+
</x-radio>
|
|
15
|
+
<x-radio id="plan-pro" name="plan" value="pro" checked>
|
|
16
|
+
<span slot="label">Pro</span>
|
|
17
|
+
</x-radio>
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Attribute
|
|
21
|
+
|
|
22
|
+
| Attribut | Typ | Beschreibung |
|
|
23
|
+
|----------|-----|--------------|
|
|
24
|
+
| `name` | String | Gruppen- und Formularname |
|
|
25
|
+
| `value` | String | Wert des Radio-Controls |
|
|
26
|
+
| `checked` | Boolean | aktueller Auswahlzustand |
|
|
27
|
+
| `required` | Boolean | aktiviert Validierung |
|
|
28
|
+
| `disabled` | Boolean | deaktiviert das Control |
|
|
29
|
+
| `label` | String | ARIA-/Textlabel ohne Slot |
|
|
30
|
+
|
|
31
|
+
## Slots
|
|
32
|
+
|
|
33
|
+
| Slot | Zweck |
|
|
34
|
+
|------|-------|
|
|
35
|
+
| `label` | sichtbares Label |
|
|
36
|
+
| `hint` | zusaetzlicher Hinweistext |
|
|
37
|
+
| `error` | Validierungsfehler |
|
|
38
|
+
|
|
39
|
+
## Events
|
|
40
|
+
|
|
41
|
+
| Event | Detail |
|
|
42
|
+
|-------|--------|
|
|
43
|
+
| `radio-changed` | `{ checked, value, name, source: 'x-radio' }` |
|
|
44
|
+
| `radio-invalid` | `{ checked, value, name, message, source: 'x-radio' }` |
|
|
45
|
+
|
|
46
|
+
## API
|
|
47
|
+
|
|
48
|
+
- `element.checked`
|
|
49
|
+
- `element.value`
|
|
50
|
+
- `element.name`
|
|
51
|
+
- `element.check()`
|
|
52
|
+
- `element.checkValidity()`
|
|
53
|
+
- `element.reportValidity()`
|
|
54
|
+
- `element.validate()`
|
|
55
|
+
- `element.reset()`
|
|
56
|
+
- `element.focus()`
|
|
57
|
+
|
|
58
|
+
## State, RMT und Fabric
|
|
59
|
+
|
|
60
|
+
`<x-radio>` schreibt den Einzelzustand nach `xradio-checked-<id>` und den Gruppenwert nach `xradio-value-<name>`. Die RMT-Metadaten nutzen `xtend.rmt.component-contract.v1`; RMT kann eine Radio-Gruppe als DOM-Descriptor templaten und die UI ueber `xtend.component` schedulen, ohne XTend in den RMT-Kernel zu importieren.
|
|
61
|
+
|
|
62
|
+
## A11y und Performance
|
|
63
|
+
|
|
64
|
+
Die Komponente nutzt `role="radio"`, `aria-checked`, `aria-describedby`, Space-Aktivierung sowie Arrow-Key-Navigation innerhalb der Gruppe. Das Performance-Profil ist `xtend.performance.component-profile.v1` mit `budgetClass: 'interactive-small'`, `lane: 'user-blocking'` und `hydrationPolicy: 'visible'`.
|
|
65
|
+
|
|
66
|
+
## Form Controls UX ab WP-E11-08
|
|
67
|
+
|
|
68
|
+
`<x-radio>` stellt `xtendFormControlUxProfile` mit `xtend.component.form-control-ux-profile.v1` bereit. Das Profil verbindet Label, Hint, Error, `radio-changed`, `radio-invalid`, `xradio-value-<name>`, `ui.user-blocking.input`, Fabric-Lane `user-blocking` und RMT Shell Authoring.
|
|
69
|
+
|
|
70
|
+
## ECH-WP-08 Form Theme/A11y Hardening
|
|
71
|
+
|
|
72
|
+
`signatureDesign`: Enterprise-Radio-Option mit robuster nativer Fokusfuehrung, gruppensicherer Validierung und separat themebarem Selection-Icon.
|
|
73
|
+
|
|
74
|
+
| Token | Zweck |
|
|
75
|
+
| --- | --- |
|
|
76
|
+
| `--xtend-form-text` | Host-Textfarbe |
|
|
77
|
+
| `--xtend-form-control-surface` | Native Control-Flaeche |
|
|
78
|
+
| `--xtend-form-control-text` | Control-Text-Fallback |
|
|
79
|
+
| `--xtend-form-label-text` | Label |
|
|
80
|
+
| `--xtend-form-helper-text` | Helper |
|
|
81
|
+
| `--xtend-form-error-text` | Fehlertext |
|
|
82
|
+
| `--xtend-form-error-surface` | Fehlerflaeche |
|
|
83
|
+
| `--xtend-form-error-border` | Fehlerkante und Marker |
|
|
84
|
+
| `--xtend-form-focus-ring` | Focus-Outline |
|
|
85
|
+
| `--xtend-form-radius` | Radio-/Error-Radius |
|
|
86
|
+
| `--xtend-form-gap` | Label-/Helper-Abstand |
|
|
87
|
+
| `--xtend-form-font-family` | Form-Typografie |
|
|
88
|
+
| `--xtend-form-control-font-size` | Label-Schrift |
|
|
89
|
+
| `--xtend-form-helper-font-size` | Helper/Error-Schrift |
|
|
90
|
+
| `--xtend-form-icon-color` | Radio-Akzent |
|
|
91
|
+
|
|
92
|
+
Density-Profile: `comfortable`, `compact`, `dense`. Invalid ist nicht farb-only und wird per `aria-invalid` gespiegelt.
|
|
93
|
+
|
|
94
|
+
```css
|
|
95
|
+
[data-xtend-form-theme="enterprise-foreign"] x-radio {
|
|
96
|
+
--xtend-form-icon-color: #8f4f2a;
|
|
97
|
+
--xtend-form-label-text: #22312c;
|
|
98
|
+
--xtend-form-helper-text: #596861;
|
|
99
|
+
--xtend-form-error-text: #7d231c;
|
|
100
|
+
--xtend-form-error-border: #a64036;
|
|
101
|
+
--xtend-form-focus-ring: 3px solid #8f4f2a;
|
|
102
|
+
}
|
|
103
|
+
```
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
# xrouter - XTend Komponente
|
|
2
|
+
|
|
3
|
+
## Uebersicht
|
|
4
|
+
|
|
5
|
+
`<x-router>` ist der clientseitige Router fuer XTend-SPAs. Er verarbeitet deklarative `<x-route>`-Definitionen, unterstuetzt Hash- und History-Mode und synchronisiert Navigation mit `xstate`.
|
|
6
|
+
|
|
7
|
+
## Kernverhalten
|
|
8
|
+
|
|
9
|
+
- nur direkte `<x-route>`-Kinder von `<x-router>` gelten als Top-Level-Routen
|
|
10
|
+
- Nested Routes werden ausschliesslich ueber direkte Kind-Routen der jeweiligen Elternroute verarbeitet
|
|
11
|
+
- Navigation kann deklarativ, per `x-link` oder programmatisch ueber `xstate.set('router-navigate', '/ziel')` angestossen werden
|
|
12
|
+
|
|
13
|
+
## Verwendung
|
|
14
|
+
|
|
15
|
+
```html
|
|
16
|
+
<x-router mode="history">
|
|
17
|
+
<x-route path="/" component="x-home" import="/components/xhome.js" title="Home"></x-route>
|
|
18
|
+
<x-route path="/docs" component="x-docs" import="/components/xdocs.js" title="Docs">
|
|
19
|
+
<x-route path=":topic" component="x-doc-topic" import="/components/xdoctopic.js" title-template="{{params.topic}} | XTend Docs"></x-route>
|
|
20
|
+
</x-route>
|
|
21
|
+
<x-route path="*" component="x-notfound" import="/components/xnotfound.js"></x-route>
|
|
22
|
+
</x-router>
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Attribute
|
|
26
|
+
|
|
27
|
+
| Attribut | Typ | Beschreibung |
|
|
28
|
+
|----------|-----|--------------|
|
|
29
|
+
| `mode` | string | `hash` oder `history` |
|
|
30
|
+
| `routesrc` | string | optionale JSON-Quelle fuer Routen |
|
|
31
|
+
| `skeleton` | string | aktiviert einen nativen Route-Skeleton-Fallback waehrend Import, Definition und Hydration |
|
|
32
|
+
| `skeleton-lines` | number | Anzahl der Skeleton-Zeilen fuer den Route-Fallback |
|
|
33
|
+
| `skeleton-min-height` | string | stabile Mindesthoehe des Route-Fallbacks |
|
|
34
|
+
| `title-template` / `document-title-template` | string | globales Template fuer den Dokumenttitel, z.B. `{{title}} | App` |
|
|
35
|
+
| `title-prefix` / `title-suffix` | string | einfacher Prefix/Suffix fuer Routentitel ohne Template |
|
|
36
|
+
| `default-title` | string | Fallback, wenn eine Route keinen Titel definiert |
|
|
37
|
+
|
|
38
|
+
## Document Title Rewrite und SEO Meta
|
|
39
|
+
|
|
40
|
+
XRouter schreibt nach jedem erfolgreichen Route-Match den Browser-Titel und die SEO-Metatags `description` und `keywords`. Dadurch bleibt eine SPA nicht auf dem Initialtitel stehen, und RMT-Routen koennen Titelinformationen ohne XTend-spezifische Runtime-Imports liefern.
|
|
41
|
+
|
|
42
|
+
Direkte Route-Attribute:
|
|
43
|
+
|
|
44
|
+
```html
|
|
45
|
+
<x-router mode="hash" document-title-template="{{title}} | XTend">
|
|
46
|
+
<x-route
|
|
47
|
+
path="/components/x-router"
|
|
48
|
+
component="x-doc-page"
|
|
49
|
+
title="XRouter"
|
|
50
|
+
document-title="XRouter Routing und SEO"
|
|
51
|
+
meta-description="Routing, Seitentitel und RMT Route Metadata"
|
|
52
|
+
meta-keywords="xtend, xrouter, rmt">
|
|
53
|
+
</x-route>
|
|
54
|
+
</x-router>
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
RMT kann dieselben Werte ueber Route-Records und `metadata` liefern:
|
|
58
|
+
|
|
59
|
+
```json
|
|
60
|
+
{
|
|
61
|
+
"id": "settings",
|
|
62
|
+
"path": "/settings",
|
|
63
|
+
"router": "xtend.xrouter",
|
|
64
|
+
"component": "page.settings",
|
|
65
|
+
"metadata": {
|
|
66
|
+
"title": "Settings",
|
|
67
|
+
"documentTitle": "Settings | XTend App",
|
|
68
|
+
"metaDescription": "Einstellungen der XTend RMT App",
|
|
69
|
+
"seo": {
|
|
70
|
+
"keywords": ["xtend", "rmt", "routing"]
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Unterstuetzte Template-Variablen sind `{{title}}`, `{{routeTitle}}`, `{{documentTitle}}`, `{{path}}`, `{{routeId}}`, `{{component}}`, `{{params.name}}`, `{{query.name}}` und `{{metadata.name}}`. Bei Nested Routes gewinnt die Leaf-Route, damit Deep Links eigene Titel bekommen.
|
|
77
|
+
|
|
78
|
+
## Events
|
|
79
|
+
|
|
80
|
+
| Event | Beschreibung |
|
|
81
|
+
|-------|--------------|
|
|
82
|
+
| `xrouter-before-navigate` | cancelable, vor programmatischer Router-Navigation |
|
|
83
|
+
| `route-changed` | wird nach erfolgreicher Navigation emittiert |
|
|
84
|
+
| `routechange` | Legacy-Alias zu `route-changed` |
|
|
85
|
+
| `xrouter-after-navigate` | Legacy-Window-Event nach dem Rendern einer Route |
|
|
86
|
+
| `route-announced` | wird nach dem Schreiben der Route-Live-Region emittiert |
|
|
87
|
+
| `xrouter-skeleton-shown` / `xrouter-skeleton-hidden` | markieren den nativen Route-Skeleton-Lifecycle |
|
|
88
|
+
| `xrouter-route-hydrated` | wird nach Loader-basierter Hydration des gerenderten Route-Subtrees emittiert |
|
|
89
|
+
| `xrouter-title-updated` | wird nach dem Schreiben von `document.title` und SEO-Metatags emittiert |
|
|
90
|
+
| `xrouter-scroll-boundary-normalized` | wird emittiert, wenn der Router nach einem Route-Wechsel eine stale Scrollposition oder eine Deadzone unterhalb des Contentbereichs korrigiert |
|
|
91
|
+
| `xrouter-navigation-overlays-closed` | wird emittiert, wenn der Router vor einem Route-Render offene App-Shell-Overlays wie `x-header` schliesst |
|
|
92
|
+
|
|
93
|
+
## XState-Keys
|
|
94
|
+
|
|
95
|
+
- `router-navigate`: programmatischer Navigationseingang
|
|
96
|
+
- `router-navigated`: zuletzt angestossener Zielpfad
|
|
97
|
+
- `router-current`: aktuell gerenderte Route
|
|
98
|
+
- `router-rendered`: zuletzt erfolgreich gerenderte Route
|
|
99
|
+
- `router-scroll-boundary`: Legacy-Snapshot der letzten Scroll-Boundary-Pruefung
|
|
100
|
+
- `router-closed-navigation-overlays`: Legacy-Snapshot der vor dem Route-Render geschlossenen Navigationsoverlays
|
|
101
|
+
- `xtend.router.current`: kanonischer Route Context
|
|
102
|
+
- `xtend.router.announcement`: zuletzt angekuendigte Route
|
|
103
|
+
- `xtend.router.documentMeta`: zuletzt gesetzter Dokumenttitel und SEO-Metatags
|
|
104
|
+
- `xtend.router.skeleton`: aktueller Route-Skeleton-Lifecycle
|
|
105
|
+
- `xtend.router.scrollBoundary`: kanonischer Snapshot der letzten Scroll-Boundary-Pruefung
|
|
106
|
+
- `xtend.router.closedNavigationOverlays`: kanonischer Snapshot der vor dem Route-Render geschlossenen Navigationsoverlays
|
|
107
|
+
|
|
108
|
+
Die kanonischen Spiegelpfade werden ebenfalls gepflegt:
|
|
109
|
+
|
|
110
|
+
- `xtend.router.lastNavigated`
|
|
111
|
+
- `xtend.router.current`
|
|
112
|
+
- `xtend.router.lastRendered`
|
|
113
|
+
|
|
114
|
+
## Route-Detail
|
|
115
|
+
|
|
116
|
+
`route-changed` und `xrouter-after-navigate` liefern ein Detailobjekt mit:
|
|
117
|
+
|
|
118
|
+
```js
|
|
119
|
+
{
|
|
120
|
+
path: '/docs/router',
|
|
121
|
+
routeId: 'docs-topic',
|
|
122
|
+
component: 'x-doc-topic',
|
|
123
|
+
params: { topic: 'router' },
|
|
124
|
+
query: {},
|
|
125
|
+
template: 'docs.topic.shell',
|
|
126
|
+
scheduleRef: 'route.visible.render',
|
|
127
|
+
title: 'Router',
|
|
128
|
+
documentTitle: 'Router | XTend Docs',
|
|
129
|
+
meta: {
|
|
130
|
+
schema: 'xtend.router.document-meta.v1',
|
|
131
|
+
scheduleRef: 'route.document.title.rewrite'
|
|
132
|
+
},
|
|
133
|
+
metadata: {}
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Bei Nested Routes ist `component` die Leaf-Route; `params` werden aus der kompletten Match-Kette zusammengefuehrt.
|
|
138
|
+
|
|
139
|
+
## Skeleton und Lazy Hydration
|
|
140
|
+
|
|
141
|
+
XRouter kann Route-Komponenten shell-first laden:
|
|
142
|
+
|
|
143
|
+
```html
|
|
144
|
+
<x-router mode="hash" skeleton="article" skeleton-lines="8" skeleton-min-height="20rem">
|
|
145
|
+
<x-route
|
|
146
|
+
path="/docs"
|
|
147
|
+
component="xtend-doc-page"
|
|
148
|
+
import="/docs/utils/pageloader.js"
|
|
149
|
+
hydrate-schedule="docs.page.hydrate">
|
|
150
|
+
</x-route>
|
|
151
|
+
</x-router>
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
Wenn der Component-Tag noch nicht definiert ist, nutzt XRouter zuerst das explizite `import` der Route. Fehlt ein Import, delegiert er an `window.XTendLoader.ensureComponent(componentTag)`, sodass Manifest-Komponenten route-nativ lazy geladen werden koennen. Nach dem Rendern hydriert XRouter den Route-Subtree ueber `window.XTendLoader.hydrateTree(...)`.
|
|
155
|
+
|
|
156
|
+
## Navigation Routing UX Profil
|
|
157
|
+
|
|
158
|
+
`<x-router>` stellt `xtendNavigationRoutingUxProfile` mit `xtend.component.navigation-routing-ux-profile.v1` bereit. Das Profil beschreibt `x-router` als Router-Outlet mit `route-changed`, `route-announced`, `xrouter-before-navigate`, `xtend.router.current`, `route.visible.render`, `route.focus.restore`, `a11y.announce`, Fabric-Lane `transition` und RMT Shell Authoring.
|
|
159
|
+
|
|
160
|
+
Nach erfolgreichem Rendern fokussiert der Router sein Outlet und schreibt eine polite, atomare Live Region. Dadurch koennen RMT und Fabric Route-Render, Focus Restore und Screenreader-Announcement getrennt schedulen, ohne dass der RMT-Kernel XTend-Interna importiert.
|
|
161
|
+
|
|
162
|
+
Die neuen Diagnostics-Details enthalten `source: 'x-router'`, `stateKey` und `scheduleRef`, sodass `x-link`, Feedback-Komponenten und RMT-Scheduler denselben Route Context teilen koennen.
|
|
163
|
+
|
|
164
|
+
## Scroll Boundary, Overlays und Deadzone-Schutz
|
|
165
|
+
|
|
166
|
+
Vor jedem erfolgreichen Route-Render schliesst `<x-router>` offene Navigationsoverlays, die einen stabilen Komponentenvertrag fuer `isMenuOpen()` und `toggleMenu(false, options)` anbieten. Aktuell wird dadurch vor allem `x-header` stabilisiert: Ein geoeffnetes Menue bleibt kein Layoutfaktor der vorherigen Seite und erzeugt beim Wechsel auf eine kuerzere Route keine Deadzone.
|
|
167
|
+
|
|
168
|
+
Nach dem Render setzt `<x-router>` die native Scroll Restoration auf `manual`, scrollt zum Seitenanfang oder zum angegebenen `scroll-to`-Ziel und prueft die Dokumenthoehe in Microtask-, Frame- und Settled-Timeout-Phasen erneut. Wenn der Browser noch eine stale Scrollposition aus der vorherigen, laengeren Route haelt oder die aktuelle Position hinter dem neuen maximalen Scrollbereich liegt, normalisiert der Router die Position und schreibt einen Snapshot nach `xtend.router.scrollBoundary`.
|
|
169
|
+
|
|
170
|
+
Der Snapshot folgt `xtend.router.scroll-boundary.v1` und enthaelt unter anderem `path`, `phase`, `strategy`, `viewportHeight`, `scrollHeight`, `maxScrollTop`, `previousTop`, `normalizedTop`, `normalized` und `deadzoneDetected`. Dadurch koennen Fabric/RMT-Diagnostics Deadzones sichtbar machen, ohne App-spezifische Scroll-Hacks zu brauchen.
|
|
171
|
+
|
|
172
|
+
## RMT / XTendRMT Adapter
|
|
173
|
+
|
|
174
|
+
Seit Epic 05 / `WP-E05-10` kann XRouter native RMT Routes ueber den Adapter-Contract `xtend.rmt.xrouter-adapter.v1` konsumieren.
|
|
175
|
+
|
|
176
|
+
```js
|
|
177
|
+
const adapter = window.xtend.rmt.createRmtXRouterAdapter({ routerElement });
|
|
178
|
+
adapter.registerRoutes(runtimeRegistry);
|
|
179
|
+
adapter.navigate({ routeId: 'home' }, { mapping });
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
Die stabile Adapter-ID ist `xtend.xrouter`. Der Adapter konsumiert `routeRegistry.byRouter["xtend.xrouter"]`, mappt `RmtRouteRegistryEntry` auf XRouter-kompatible Records und ruft am Zielrouter `registerRoutes(...)` bzw. `navigate(...)` auf.
|
|
183
|
+
|
|
184
|
+
`<x-router>` stellt dafuer bereit:
|
|
185
|
+
|
|
186
|
+
- `registerRoutes(routes, options)`
|
|
187
|
+
- `navigate(to, options)`
|
|
188
|
+
- `reuse-component` als opt-in fuer InsularHydration bei SPA-Routen, deren Ziel denselben Component-Tag nutzt und `updateRoute(context)` oder `routeChangedCallback(context)` implementiert
|
|
189
|
+
|
|
190
|
+
RMT-relevante Route-Daten werden als Attribute auf `<x-route>` erhalten:
|
|
191
|
+
|
|
192
|
+
- `data-rmt-route-id`
|
|
193
|
+
- `data-rmt-router`
|
|
194
|
+
- `data-rmt-template`
|
|
195
|
+
- `data-rmt-schedule`
|
|
196
|
+
- `data-rmt-params`
|
|
197
|
+
- `data-rmt-query`
|
|
198
|
+
- `data-rmt-metadata`
|
|
199
|
+
|
|
200
|
+
XRouter bleibt damit produktiver Adapter fuer RMT Routes, aber kein RMT-Kernelwissen.
|
|
201
|
+
|
|
202
|
+
Weitere Details:
|
|
203
|
+
|
|
204
|
+
- [XTendRMT App-DSL Reference](../xtendrmt-app-dsl.md)
|
|
205
|
+
- [XTendRMT Runtime Bridge](../xtendrmt-runtime-bridge.md)
|
|
206
|
+
- [XTendRMT Native Authoring Guide](../xtendrmt-native-authoring.md)
|
|
207
|
+
|
|
208
|
+
## Hinweise
|
|
209
|
+
|
|
210
|
+
- `routesrc` wird vor dem ersten Rendern geladen.
|
|
211
|
+
- Lazy Loading erfolgt ueber das `import`-Attribut der jeweiligen Route.
|
|
212
|
+
- Guards (`before-enter`) und Lifecycle-Hooks bleiben unterstuetzt.
|
|
213
|
+
- Mit `reuse-component` kann eine App-Shell ihre Route-Komponente behalten; XRouter aktualisiert dann Params, Query und State und feuert `xrouter-route-reused`.
|
|
214
|
+
- RMT-Schedule-Refs werden ueber `data-rmt-schedule` an Route-Details weitergereicht.
|
|
215
|
+
- Scroll-Boundary-Normalisierung laeuft zentral im Router und sollte nicht in App-Shells dupliziert werden.
|
|
216
|
+
- Router-Aenderungen im Core sollten gegen `node scripts/verify_xtend_core_contracts.js` geprueft werden.
|
|
217
|
+
|
|
218
|
+
## ECH-WP-09 Token-Tabelle und Navigation States
|
|
219
|
+
|
|
220
|
+
`signatureDesign`: `x-router` ist die ruhige Route-Outlet-Basis fuer Enterprise-Shells. Der Router selbst delegiert Active/Current/Selected an `x-link`, `x-menu`, `x-tabs` und `x-header`, stellt aber denselben Navigation-State-Contract, Route Announcements und Focus Restore bereit.
|
|
221
|
+
|
|
222
|
+
| Token | Zweck |
|
|
223
|
+
| --- | --- |
|
|
224
|
+
| `--xtend-nav-surface` | optionale Outlet-/Route-Surface |
|
|
225
|
+
| `--xtend-nav-text` | Outlet-Text und vererbte Navigationsfarbe |
|
|
226
|
+
| `--xtend-nav-border-color` | geteilte Navigationskante fuer Route-Shells |
|
|
227
|
+
| `--xtend-nav-radius` | geteilte Radius-Vorgabe |
|
|
228
|
+
| `--xtend-nav-gap` | geteilte Navigation-Abstaende |
|
|
229
|
+
| `--xtend-nav-font-family` | vererbte Navigationstypografie |
|
|
230
|
+
| `--xtend-nav-font-size` | vererbte Navigationstextgroesse |
|
|
231
|
+
| `--xtend-nav-active-surface` | Active/Current/Selected Flaeche fuer angeschlossene Navigation |
|
|
232
|
+
| `--xtend-nav-active-text` | Active/Current/Selected Text |
|
|
233
|
+
| `--xtend-nav-current-indicator` | nicht farb-only Current-Indikator |
|
|
234
|
+
| `--xtend-nav-hover-surface` | Hover-Flaeche fuer angeschlossene Navigation |
|
|
235
|
+
| `--xtend-nav-focus-ring` | Route-Focus und Navigation-Focus |
|
|
236
|
+
| `--xtend-nav-disabled-opacity` | Disabled-Dimmung fuer angeschlossene Navigation |
|
|
237
|
+
|
|
238
|
+
## ECH-WP-09 Keyboard-Verhalten
|
|
239
|
+
|
|
240
|
+
Der Router fokussiert nach dem Rendern das Outlet und emittiert `route-announced` ueber eine polite Live Region. Link- und Menue-Keyboard-Verhalten bleibt in den jeweiligen Navigationselementen; der Router haelt den Route Context `xtend.router.current`, sodass Active/Current/Selected per `aria-current="page"` und `aria-selected="true"` synchronisiert werden koennen.
|
|
241
|
+
|
|
242
|
+
## ECH-WP-09 Fremdtheme
|
|
243
|
+
|
|
244
|
+
```css
|
|
245
|
+
[data-xtend-nav-theme="enterprise-foreign"] x-router {
|
|
246
|
+
--xtend-nav-surface: transparent;
|
|
247
|
+
--xtend-nav-text: #17231f;
|
|
248
|
+
--xtend-nav-border-color: rgba(23, 35, 31, 0.22);
|
|
249
|
+
--xtend-nav-radius: 0.35rem;
|
|
250
|
+
--xtend-nav-gap: 0.45rem;
|
|
251
|
+
--xtend-nav-font-family: "Aptos", "Segoe UI", sans-serif;
|
|
252
|
+
--xtend-nav-font-size: 1rem;
|
|
253
|
+
--xtend-nav-active-surface: #173f35;
|
|
254
|
+
--xtend-nav-active-text: #fffaf0;
|
|
255
|
+
--xtend-nav-current-indicator: #b56b35;
|
|
256
|
+
--xtend-nav-hover-surface: rgba(181, 107, 53, 0.14);
|
|
257
|
+
--xtend-nav-focus-ring: 3px solid #b56b35;
|
|
258
|
+
--xtend-nav-disabled-opacity: 0.44;
|
|
259
|
+
}
|
|
260
|
+
```
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
# xsection – XTend Komponente
|
|
2
|
+
|
|
3
|
+
> **Siehe auch:** [xhero](./xhero.md), [xmasonry](./xmasonry.md)
|
|
4
|
+
|
|
5
|
+
## Übersicht
|
|
6
|
+
|
|
7
|
+
`<x-section>` ist eine flexible Layout-Komponente für Seitenabschnitte, Container und strukturierte Bereiche. Sie unterstützt Slots, Theming und Responsive Design.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Features
|
|
12
|
+
- Container für beliebige Inhalte
|
|
13
|
+
- Slots für flexible Struktur
|
|
14
|
+
- Theming via CSS Custom Properties
|
|
15
|
+
- Responsive Design
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Verwendung
|
|
20
|
+
|
|
21
|
+
```html
|
|
22
|
+
<x-section>
|
|
23
|
+
<h2>Abschnitt</h2>
|
|
24
|
+
<p>Inhalt…</p>
|
|
25
|
+
</x-section>
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Attribute
|
|
31
|
+
| Attribut | Typ | Beschreibung |
|
|
32
|
+
|-------------|---------|-------------------------------------|
|
|
33
|
+
| `variant` | String | Layout-Variante (z.B. primary, secondary) |
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Events
|
|
38
|
+
| Event | Beschreibung |
|
|
39
|
+
|---------------|-------------------------------------|
|
|
40
|
+
| – | – |
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## API
|
|
45
|
+
- **Variante setzen:** `element.setAttribute('variant', 'primary')`
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Beispiel: Dynamisch per JS
|
|
50
|
+
|
|
51
|
+
```js
|
|
52
|
+
const section = document.createElement('x-section');
|
|
53
|
+
section.setAttribute('variant', 'primary');
|
|
54
|
+
document.body.appendChild(section);
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## Styling & Theming
|
|
60
|
+
|
|
61
|
+
```css
|
|
62
|
+
x-section {
|
|
63
|
+
--section-bg: #f9f9f9;
|
|
64
|
+
--section-color: #222;
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Accessibility
|
|
71
|
+
- Semantisches HTML
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
*Letzte Aktualisierung: 16. Juli 2025*
|
|
76
|
+
|
|
77
|
+
## Layout Display Media UX Profil
|
|
78
|
+
|
|
79
|
+
`x-section` stellt ab `WP-E11-12` das Profil `xtend.component.layout-display-media-ux-profile.v1` bereit. Die Komponente ist als Shell-first Layout-Surface fuer RMT geeignet und nutzt den State-Key `xsection-state-<id>`.
|
|
80
|
+
|
|
81
|
+
- Profil-Getter: `xtendLayoutDisplayMediaUxProfile`
|
|
82
|
+
- Schedule: `layout.measure`
|
|
83
|
+
- Event: `section-rendered`
|
|
84
|
+
- Snapshot: `snapshot()`
|
|
85
|
+
- CSS Parts: `root`, `container`, `header`, `aside`, `content`, `footer`
|
|
86
|
+
|
|
87
|
+
## ECH-WP-07 Token-Tabelle und signatureDesign
|
|
88
|
+
|
|
89
|
+
`signatureDesign`: Editoriale Enterprise-Section mit kontrollierter Flaechenhierarchie, optionaler Kante und overflow-sicheren Inhaltsbahnen. Sie kann plain, framed oder dichtes Dashboard-Layout sein, ohne neue Attribute zu brauchen.
|
|
90
|
+
|
|
91
|
+
| Token | Zweck |
|
|
92
|
+
| --- | --- |
|
|
93
|
+
| `--xtend-layout-surface` | Section-Flaeche |
|
|
94
|
+
| `--xtend-layout-text` | Haupttextfarbe |
|
|
95
|
+
| `--xtend-layout-border-color` | Optionale Section-Kante |
|
|
96
|
+
| `--xtend-layout-radius` | Section-Radius |
|
|
97
|
+
| `--xtend-layout-elevation` | Optionaler Section-Schatten |
|
|
98
|
+
| `--xtend-layout-spacing` | Section- und Content-Padding |
|
|
99
|
+
| `--xtend-layout-gap` | Slot-Abstand |
|
|
100
|
+
| `--xtend-layout-font-family` | Section-Typografie |
|
|
101
|
+
| `--xtend-layout-font-size` | Content-Schriftgroesse |
|
|
102
|
+
| `--xtend-layout-media-radius` | Medienradius fuer slotted Content |
|
|
103
|
+
| `--xtend-layout-focus-ring` | Fokus innerhalb der Section |
|
|
104
|
+
| `--xtend-layout-grid-min` | Responsive Inhaltsbasis |
|
|
105
|
+
| `--xtend-layout-content-max` | Section-Maximalbreite |
|
|
106
|
+
|
|
107
|
+
## ECH-WP-07 Fremdtheme
|
|
108
|
+
|
|
109
|
+
```css
|
|
110
|
+
[data-xtend-layout-theme="enterprise-foreign"] x-section {
|
|
111
|
+
--xtend-layout-surface: #fffaf2;
|
|
112
|
+
--xtend-layout-text: #1d2722;
|
|
113
|
+
--xtend-layout-border-color: rgba(29, 39, 34, 0.18);
|
|
114
|
+
--xtend-layout-radius: 0.4rem;
|
|
115
|
+
--xtend-layout-elevation: none;
|
|
116
|
+
--xtend-layout-spacing: 1.6rem;
|
|
117
|
+
--xtend-layout-gap: 1.2rem;
|
|
118
|
+
--xtend-layout-font-family: "Aptos", "Segoe UI", sans-serif;
|
|
119
|
+
--xtend-layout-font-size: 1rem;
|
|
120
|
+
--xtend-layout-media-radius: 0.35rem;
|
|
121
|
+
--xtend-layout-focus-ring: 3px solid #8f4f2a;
|
|
122
|
+
--xtend-layout-grid-min: minmax(14rem, 1fr);
|
|
123
|
+
--xtend-layout-content-max: 76rem;
|
|
124
|
+
}
|
|
125
|
+
```
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# xselect – XTend Komponente
|
|
2
|
+
|
|
3
|
+
> **Siehe auch:** [xform](./xform.md), [xinput](./xinput.md), [xstate](./xstate.md)
|
|
4
|
+
|
|
5
|
+
## Uebersicht
|
|
6
|
+
|
|
7
|
+
`<x-select>` ist das TypeScript-first Selection-Control aus `WP-E10-09`. Die Komponente kapselt ein natives `select`, bleibt form-associated, schreibt ihren Wert nach `xstate` und besitzt RMT-, Fabric-, A11y- und Performance-Metadaten ohne XTend in den RMT-Kernel einzubetten.
|
|
8
|
+
|
|
9
|
+
## Verwendung
|
|
10
|
+
|
|
11
|
+
```html
|
|
12
|
+
<x-select id="plan-select" name="plan" value="pro" required>
|
|
13
|
+
<span slot="label">Plan</span>
|
|
14
|
+
<option value="starter">Starter</option>
|
|
15
|
+
<option value="pro">Pro</option>
|
|
16
|
+
<span slot="error">Bitte einen Plan waehlen.</span>
|
|
17
|
+
</x-select>
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Attribute
|
|
21
|
+
|
|
22
|
+
| Attribut | Typ | Beschreibung |
|
|
23
|
+
|----------|-----|--------------|
|
|
24
|
+
| `name` | String | Formularname |
|
|
25
|
+
| `value` | String | aktueller Wert |
|
|
26
|
+
| `multiple` | Boolean | erlaubt Mehrfachauswahl |
|
|
27
|
+
| `required` | Boolean | aktiviert native Validierung |
|
|
28
|
+
| `disabled` | Boolean | deaktiviert das Control |
|
|
29
|
+
| `placeholder` | String | optionale Platzhalteroption |
|
|
30
|
+
| `label` | String | ARIA-/Textlabel ohne Slot |
|
|
31
|
+
|
|
32
|
+
## Slots
|
|
33
|
+
|
|
34
|
+
| Slot | Zweck |
|
|
35
|
+
|------|-------|
|
|
36
|
+
| default | `option`-Elemente fuer das native Select |
|
|
37
|
+
| `label` | sichtbares Label |
|
|
38
|
+
| `hint` | zusaetzlicher Hinweistext |
|
|
39
|
+
| `error` | Validierungsfehler |
|
|
40
|
+
|
|
41
|
+
## Events
|
|
42
|
+
|
|
43
|
+
| Event | Detail |
|
|
44
|
+
|-------|--------|
|
|
45
|
+
| `select-changed` | `{ value, values, source: 'x-select' }` |
|
|
46
|
+
| `select-invalid` | `{ value, message, source: 'x-select' }` |
|
|
47
|
+
|
|
48
|
+
## API
|
|
49
|
+
|
|
50
|
+
- `element.value`
|
|
51
|
+
- `element.values`
|
|
52
|
+
- `element.checkValidity()`
|
|
53
|
+
- `element.reportValidity()`
|
|
54
|
+
- `element.validate()`
|
|
55
|
+
- `element.reset()`
|
|
56
|
+
- `element.focus()`
|
|
57
|
+
|
|
58
|
+
## State, RMT und Fabric
|
|
59
|
+
|
|
60
|
+
`<x-select>` schreibt nach `xselect-value-<id>` und reagiert auf externe Wertupdates. Die RMT-Metadaten nutzen `xtend.rmt.component-contract.v1`, `adapter: 'xtend.component'` und `kernelBoundary: 'no-rmt-kernel-import-of-xtend-types'`. Shell-first Templates koennen die Komponente als DOM-Descriptor schedulen, waehrend XTend die UI-Oberflaeche bleibt.
|
|
61
|
+
|
|
62
|
+
## A11y und Performance
|
|
63
|
+
|
|
64
|
+
Das Control nutzt `role="combobox"`, `aria-describedby`, sichtbare Label-/Hint-/Error-Slots und eine assertive Fehlerregion. Das Performance-Profil ist `xtend.performance.component-profile.v1` mit `budgetClass: 'interactive-medium'`, `lane: 'user-blocking'` und `hydrationPolicy: 'visible'`.
|
|
65
|
+
|
|
66
|
+
## Form Controls UX ab WP-E11-08
|
|
67
|
+
|
|
68
|
+
`<x-select>` stellt `xtendFormControlUxProfile` mit `xtend.component.form-control-ux-profile.v1` bereit. Das Profil verbindet Label, Hint, Error, `select-changed`, `select-invalid`, `xselect-value-<id>`, `ui.user-blocking.input`, Fabric-Lane `user-blocking` und RMT Shell Authoring.
|
|
69
|
+
|
|
70
|
+
## ECH-WP-08 Form Theme/A11y Hardening
|
|
71
|
+
|
|
72
|
+
`signatureDesign`: Enterprise-Select mit klarer nativer Affordance, nicht-farblicher Validierung und density-sicherem Label-/Helper-Rhythmus.
|
|
73
|
+
|
|
74
|
+
| Token | Zweck |
|
|
75
|
+
| --- | --- |
|
|
76
|
+
| `--xtend-form-text` | Host-Textfarbe |
|
|
77
|
+
| `--xtend-form-control-surface` | Select-Flaeche |
|
|
78
|
+
| `--xtend-form-control-text` | Select-Text |
|
|
79
|
+
| `--xtend-form-label-text` | Label |
|
|
80
|
+
| `--xtend-form-helper-text` | Helper |
|
|
81
|
+
| `--xtend-form-error-text` | Fehlertext |
|
|
82
|
+
| `--xtend-form-error-surface` | Fehlerflaeche |
|
|
83
|
+
| `--xtend-form-error-border` | Fehlerkante und Marker |
|
|
84
|
+
| `--xtend-form-focus-ring` | Focus-Outline |
|
|
85
|
+
| `--xtend-form-radius` | Select- und Error-Radius |
|
|
86
|
+
| `--xtend-form-gap` | Vertikaler Rhythmus |
|
|
87
|
+
| `--xtend-form-font-family` | Form-Typografie |
|
|
88
|
+
| `--xtend-form-control-font-size` | Select-Schrift |
|
|
89
|
+
| `--xtend-form-helper-font-size` | Helper/Error-Schrift |
|
|
90
|
+
| `--xtend-form-icon-color` | Native Select-Affordance |
|
|
91
|
+
|
|
92
|
+
Density-Profile: `comfortable`, `compact`, `dense`. Invalid, `disabled`, `required` und `busy` werden visuell und per ARIA gespiegelt.
|
|
93
|
+
|
|
94
|
+
```css
|
|
95
|
+
[data-xtend-form-theme="enterprise-foreign"] x-select {
|
|
96
|
+
--xtend-form-control-surface: #fbf8f2;
|
|
97
|
+
--xtend-form-control-text: #16231f;
|
|
98
|
+
--xtend-form-label-text: #22312c;
|
|
99
|
+
--xtend-form-helper-text: #596861;
|
|
100
|
+
--xtend-form-error-text: #7d231c;
|
|
101
|
+
--xtend-form-error-border: #a64036;
|
|
102
|
+
--xtend-form-focus-ring: 3px solid #8f4f2a;
|
|
103
|
+
--xtend-form-radius: 0.35rem;
|
|
104
|
+
}
|
|
105
|
+
```
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# xsidepanel - XTend Komponente
|
|
2
|
+
|
|
3
|
+
`x-side-panel` ist die App-Shell-nahe SidePanel-Surface fuer XTend. Sie registriert sich bei einem umgebenden `x-surface-manager`, nutzt den Surface Controller aus `WP-SM-02` und spiegelt Snapshots in Placement, Mode, Pinning, Collapse-State, Groesse und z-Order.
|
|
4
|
+
|
|
5
|
+
## Attribute
|
|
6
|
+
|
|
7
|
+
- `surface-id`: stabile Surface-ID
|
|
8
|
+
- `label`: Accessible Name und Panel-Titel
|
|
9
|
+
- `open`, `active`, `collapsed`, `pinned`
|
|
10
|
+
- `placement`: `left`, `right`, `bottom` oder `inline`
|
|
11
|
+
- `mode`: `docked`, `overlay`, `pinned`, `collapsed` oder `fullscreen`
|
|
12
|
+
- `responsive-mode`: Standard `fullscreen-under-720`
|
|
13
|
+
- `resizable`, `route-aware`, `modal`
|
|
14
|
+
- `initial-width`, `initial-height`
|
|
15
|
+
|
|
16
|
+
## API
|
|
17
|
+
|
|
18
|
+
`toSurfaceRecord(managerId)` erzeugt ein `xtend.surface.record.v1` mit `type: "side-panel"`. `applySurfaceSnapshot(record)` aktualisiert sichtbaren Status, Bounds, Placement, Mode und A11y-State.
|
|
19
|
+
|
|
20
|
+
Commands: `openPanel()`, `closePanel(reason)`, `focusPanel()`, `pinPanel()`, `collapsePanel()`, `expandPanel(mode)`, `setPanelMode(mode, placement)`, `resizePanel(bounds)` und `restorePanel()`.
|
|
21
|
+
|
|
22
|
+
Das Element sendet `surface-panel-command` mit `open`, `close`, `focus`, `resize`, `pin`, `unpin`, `collapse`, `expand`, `dock`, `restore` oder `update`. Der Manager uebersetzt diese Commands in Controller-Operationen beziehungsweise `updateSurface`.
|
|
23
|
+
|
|
24
|
+
RMT: `xtend.rmt.component-contract.v1`, `xtend.surface.record.v1`, `surface.visible.render`, `surface.user-blocking.open`, `surface.user-blocking.close`, `surface.transition.layout`, `surface.diagnostics.snapshot`.
|
|
25
|
+
|
|
26
|
+
## ECH-WP-06 Overlay-Paritaet
|
|
27
|
+
|
|
28
|
+
`x-side-panel` expose `surface`, `backdrop`, `close` und `content` als gemeinsame Overlay-Parts. Der bisherige `scrim` Part bleibt als Alias fuer `backdrop` erhalten. Surface, Text, Border, Elevation, Backdrop, Z-Index und Focus Ring laufen ueber `--xtend-overlay-*` und die komponentennahen `--side-panel-*` Tokens.
|
|
29
|
+
|
|
30
|
+
`mode="docked"` und `mode="pinned"` bleiben nicht-modal und app-shell-nah. `mode="overlay"` oder `modal` aktivieren den Backdrop und die Overlay-Steuerung fuer SurfaceManager-Orchestrierung.
|