@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,142 @@
|
|
|
1
|
+
# xhero – XTend Komponente
|
|
2
|
+
|
|
3
|
+
> **Siehe auch:** [xsection](./xsection.md), [xbutton](./xbutton.md)
|
|
4
|
+
|
|
5
|
+
## Übersicht
|
|
6
|
+
|
|
7
|
+
`<x-hero>` ist eine flexible Hero-Komponente für aufmerksamkeitsstarke Headerbereiche, Landingpages und Einstiege. Sie unterstützt Slots für Titel, Untertitel, Aktionen und Medien.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Features
|
|
12
|
+
- Flexibles Layout für Hero-Bereiche
|
|
13
|
+
- Slots für Titel, Text, Aktionen, Medien
|
|
14
|
+
- Theming via CSS Custom Properties
|
|
15
|
+
- Theme-Varianten über `background-light`, `background-dark`, `font-color-light`, `font-color-dark`, `overlay-light` und `overlay-dark`
|
|
16
|
+
- Responsive Design
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Verwendung
|
|
21
|
+
|
|
22
|
+
```html
|
|
23
|
+
<x-hero>
|
|
24
|
+
<h1 slot="title">Willkommen!</h1>
|
|
25
|
+
<p slot="subtitle">XTend macht Webentwicklung einfach.</p>
|
|
26
|
+
<x-button slot="action">Loslegen</x-button>
|
|
27
|
+
</x-hero>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Attribute
|
|
33
|
+
| Attribut | Typ | Beschreibung |
|
|
34
|
+
|----------|-----|--------------|
|
|
35
|
+
| `background` | String | Fester Hintergrund oder CSS-Variable |
|
|
36
|
+
| `background-light` | String | Hintergrund für helle Themes |
|
|
37
|
+
| `background-dark` | String | Hintergrund für dunkle Themes |
|
|
38
|
+
| `background-image` | String | Bildhintergrund |
|
|
39
|
+
| `overlay` | Boolean | Aktiviert Overlay-Fläche |
|
|
40
|
+
| `overlay-light` | String | Overlay-Farbe für helle Themes |
|
|
41
|
+
| `overlay-dark` | String | Overlay-Farbe für dunkle Themes |
|
|
42
|
+
| `font-color` | String | Feste Textfarbe |
|
|
43
|
+
| `font-color-light` | String | Textfarbe für helle Themes |
|
|
44
|
+
| `font-color-dark` | String | Textfarbe für dunkle Themes |
|
|
45
|
+
| `animate` | Boolean | Aktiviert Einstiegstransition mit Reduced-Motion-Fallback |
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Events
|
|
50
|
+
| Event | Beschreibung |
|
|
51
|
+
|---------------|-------------------------------------|
|
|
52
|
+
| – | – |
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## API
|
|
57
|
+
- **Inhalte per Slot einfügen**
|
|
58
|
+
- **State-Integration:** Optional via xstate
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Beispiel: Dynamisch per JS
|
|
63
|
+
|
|
64
|
+
```js
|
|
65
|
+
const hero = document.createElement('x-hero');
|
|
66
|
+
hero.innerHTML = '<h1 slot="title">Hallo XTend!</h1>';
|
|
67
|
+
document.body.appendChild(hero);
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Styling & Theming
|
|
73
|
+
|
|
74
|
+
```css
|
|
75
|
+
x-hero {
|
|
76
|
+
--hero-bg: #f5f5f5;
|
|
77
|
+
--hero-color: #222;
|
|
78
|
+
}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Viewport-Sicherheit
|
|
82
|
+
|
|
83
|
+
`x-hero` begrenzt Host, Root und Content auf `max-width: 100%` und nutzt auf schmalen Viewports keine innere `100vw`-Breite. Dadurch bleibt die Komponente auch in gepaddeten App-Shells oder Docs-Layouts innerhalb des sichtbaren Viewports.
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Accessibility
|
|
88
|
+
- Semantisches HTML, ARIA
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
*Letzte Aktualisierung: 16. Juli 2025*
|
|
93
|
+
|
|
94
|
+
## Layout Display Media UX Profil
|
|
95
|
+
|
|
96
|
+
`x-hero` stellt ab `WP-E11-12` das Profil `xtend.component.layout-display-media-ux-profile.v1` bereit. Die Komponente bleibt Hero-/Display-Shell und kann in RMT mit `component.shell.render` zuerst gerendert werden. Der State-Key lautet `xhero-state-<id>`.
|
|
97
|
+
|
|
98
|
+
- Profil-Getter: `xtendLayoutDisplayMediaUxProfile`
|
|
99
|
+
- Schedule: `component.shell.render`
|
|
100
|
+
- Events: `hero-rendered`, `hero-animated`
|
|
101
|
+
- Snapshot: `snapshot()`
|
|
102
|
+
- CSS Parts: `root`, `overlay`, `content`, `scroll-button`
|
|
103
|
+
|
|
104
|
+
## ECH-WP-07 Token-Tabelle und signatureDesign
|
|
105
|
+
|
|
106
|
+
`signatureDesign`: Immersive Enterprise-Hero-Komposition mit editorialer Tiefe, medienfaehigem Surface und tokenisiertem Content-Block. Die Standardwirkung soll elegant und eigenstaendig sein, aber Bild-, App- und Corporate-Inszenierungen zulassen.
|
|
107
|
+
|
|
108
|
+
| Token | Zweck |
|
|
109
|
+
| --- | --- |
|
|
110
|
+
| `--xtend-layout-surface` | Hero- und Content-Flaeche |
|
|
111
|
+
| `--xtend-layout-text` | Hero-Textfarbe |
|
|
112
|
+
| `--xtend-layout-border-color` | Scroll-Control-Kante |
|
|
113
|
+
| `--xtend-layout-radius` | Hero-, Content- und Titelradius |
|
|
114
|
+
| `--xtend-layout-elevation` | Hero-, Content- und Titel-Schatten |
|
|
115
|
+
| `--xtend-layout-spacing` | Hero- und Content-Padding |
|
|
116
|
+
| `--xtend-layout-gap` | Kompositionsabstand fuer Theme-Autoren |
|
|
117
|
+
| `--xtend-layout-font-family` | Hero-Typografie |
|
|
118
|
+
| `--xtend-layout-font-size` | Control- und Content-Skalierung |
|
|
119
|
+
| `--xtend-layout-media-radius` | Bild-/Hero-Radius |
|
|
120
|
+
| `--xtend-layout-focus-ring` | Scroll-Control-Fokus |
|
|
121
|
+
| `--xtend-layout-grid-min` | Responsive Kompositionsbasis |
|
|
122
|
+
| `--xtend-layout-content-max` | Content-Breite |
|
|
123
|
+
|
|
124
|
+
## ECH-WP-07 Fremdtheme
|
|
125
|
+
|
|
126
|
+
```css
|
|
127
|
+
[data-xtend-layout-theme="enterprise-foreign"] x-hero {
|
|
128
|
+
--xtend-layout-surface: rgba(248, 244, 239, 0.88);
|
|
129
|
+
--xtend-layout-text: #15231d;
|
|
130
|
+
--xtend-layout-border-color: rgba(21, 35, 29, 0.22);
|
|
131
|
+
--xtend-layout-radius: 0.45rem;
|
|
132
|
+
--xtend-layout-elevation: 0 20px 60px rgba(21, 35, 29, 0.16);
|
|
133
|
+
--xtend-layout-spacing: 4rem 2rem;
|
|
134
|
+
--xtend-layout-gap: 1rem;
|
|
135
|
+
--xtend-layout-font-family: "Aptos Display", "Segoe UI", sans-serif;
|
|
136
|
+
--xtend-layout-font-size: 1.05rem;
|
|
137
|
+
--xtend-layout-media-radius: 0.65rem;
|
|
138
|
+
--xtend-layout-focus-ring: 3px solid #8f4f2a;
|
|
139
|
+
--xtend-layout-grid-min: minmax(0, 1fr);
|
|
140
|
+
--xtend-layout-content-max: 42rem;
|
|
141
|
+
}
|
|
142
|
+
```
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
# xicon – XTend Komponente
|
|
2
|
+
|
|
3
|
+
> **Siehe auch:** [xbutton](./xbutton.md), [xtheme](./xtheme.md), [xrouter](./xrouter.md)
|
|
4
|
+
|
|
5
|
+
## Uebersicht
|
|
6
|
+
|
|
7
|
+
`<x-icon>` ist der universelle Ikonographie-Adapter fuer XTend Apps. Die Komponente rendert lokale Inline-SVG-Icons, registrierte Icon-Packs oder kontrollierte URL-Quellen und bleibt dabei framework-agnostisch, RMT-kompatibel und CDN-frei.
|
|
8
|
+
|
|
9
|
+
Das mitgelieferte `core` Pack deckt die wichtigsten XTend-UI-Symbole ab. Der lokale `lucide` Adapter dient als groesseres Superset, wird aus lokalen ESM-Artefakten geladen und vermeidet externe CDN-Abhaengigkeiten, FCP-Bremsen und Datenschutzprobleme.
|
|
10
|
+
|
|
11
|
+
## Features
|
|
12
|
+
|
|
13
|
+
- lokales `core` Icon-Pack mit Basis-Icons fuer Shell, Docs, Status und Navigation
|
|
14
|
+
- lokaler `lucide` IconPack Adapter als Superset ohne Remote Runtime Import
|
|
15
|
+
- globale Registry `window.XTend.icons` fuer Custom Icon Packs und Corporate-Design-Sets
|
|
16
|
+
- direkte Quellen ueber `src` fuer SVG-Dateien aus Repo, App-Bundle oder CDN-Policies des Hosts
|
|
17
|
+
- rohe SVG-Pack-Eintraege werden vor dem Rendern auf erlaubte Knoten und Attribute reduziert
|
|
18
|
+
- A11y-Modus fuer dekorative und semantische Icons
|
|
19
|
+
- State-Integration ueber `xicon-state-<id>`
|
|
20
|
+
- RMT Shell Authoring ueber `xtend.rmt.component-contract.v1`
|
|
21
|
+
- Performance-Profil `xtend.performance.component-profile.v1` mit `display-micro` Budget
|
|
22
|
+
|
|
23
|
+
## Verwendung
|
|
24
|
+
|
|
25
|
+
```html
|
|
26
|
+
<x-icon name="search" label="Suche"></x-icon>
|
|
27
|
+
<x-icon name="gauge" pack="lucide" size="1.25rem" label="Performance"></x-icon>
|
|
28
|
+
<x-icon src="/assets/icons/company.svg" label="Corporate Icon"></x-icon>
|
|
29
|
+
<x-icon name="chevron-right" decorative></x-icon>
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Attribute
|
|
33
|
+
|
|
34
|
+
| Attribut | Typ | Beschreibung |
|
|
35
|
+
|----------|-----|--------------|
|
|
36
|
+
| `name` | String | Icon-Name oder Alias aus der Registry |
|
|
37
|
+
| `pack` | String | optionales Icon-Pack, z.B. `core` oder `lucide` |
|
|
38
|
+
| `src` | String | kontrollierte URL-Quelle fuer ein Icon aus Repo, App-Bundle oder Host-Policy |
|
|
39
|
+
| `label` | String | zugänglicher Name fuer Screenreader |
|
|
40
|
+
| `size` | String | CSS-Groesse, z.B. `1em`, `20px`, `1.25rem` |
|
|
41
|
+
| `stroke-width` | String | Strichstaerke fuer Inline-SVG-Pfade |
|
|
42
|
+
| `color` | String | CSS-Farbwert; Standard ist `currentColor` |
|
|
43
|
+
| `decorative` | Boolean | setzt `aria-hidden` und entfernt semantische Bildrolle |
|
|
44
|
+
|
|
45
|
+
## Events
|
|
46
|
+
|
|
47
|
+
| Event | Beschreibung |
|
|
48
|
+
|-------|--------------|
|
|
49
|
+
| `icon-ready` | Icon wurde aus Pack oder `src` aufgeloest |
|
|
50
|
+
| `icon-missing` | Registry konnte `name`/`pack` nicht aufloesen |
|
|
51
|
+
| `icon-pack-registered` | ein Pack wurde in der globalen Registry registriert |
|
|
52
|
+
|
|
53
|
+
## API
|
|
54
|
+
|
|
55
|
+
| Methode | Zweck |
|
|
56
|
+
|---------|-------|
|
|
57
|
+
| `setIcon(name, options?)` | setzt Icon, Pack, Label oder `src` programmatisch |
|
|
58
|
+
| `registerPack(pack, options?)` | registriert ein Pack ueber die Komponente |
|
|
59
|
+
| `snapshot()` | liefert `xtend.component.x-icon.state.v1` inklusive Registry-Snapshot |
|
|
60
|
+
| `window.XTend.icons.register(pack, options?)` | globale Pack-Registrierung |
|
|
61
|
+
| `window.XTend.icons.resolve(name, options?)` | globale Aufloesung ohne Rendering |
|
|
62
|
+
| `window.XTend.icons.snapshot()` | Registry-Snapshot fuer Diagnostics |
|
|
63
|
+
|
|
64
|
+
## Custom Icon Packs
|
|
65
|
+
|
|
66
|
+
```js
|
|
67
|
+
window.XTend.icons.register({
|
|
68
|
+
id: 'brand',
|
|
69
|
+
label: 'Corporate Design Icons',
|
|
70
|
+
cdnAllowed: false,
|
|
71
|
+
icons: {
|
|
72
|
+
product: {
|
|
73
|
+
aliases: ['logo-mark'],
|
|
74
|
+
nodes: [
|
|
75
|
+
{ tag: 'path', attrs: { d: 'M12 3 21 8v8l-9 5-9-5V8Z' } }
|
|
76
|
+
]
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Packs koennen eigene SVG-Node-Descriptoren, einzelne Path-Strings, inline SVG-Records oder URL-Records enthalten. Remote-Quellen sind nicht Default von XTend; sie muessen bewusst vom Host als `src` oder Pack-URL bereitgestellt werden.
|
|
83
|
+
|
|
84
|
+
## ECH-WP-04 Control-Regel
|
|
85
|
+
|
|
86
|
+
Keine Textglyphen als Controls: Close-, Menu-, Disclosure-, Status- und Action-Controls duerfen nicht ueber sichtbare Zeichen wie `x`, `×`, Pfeile oder Emoji gestaltet werden. Verwende `x-icon`, Inline-SVG oder eine tokenisierte CSS-Grafik.
|
|
87
|
+
|
|
88
|
+
Pflicht fuer Icon-Controls:
|
|
89
|
+
|
|
90
|
+
- Der Button hat einen zugaenglichen Namen, z.B. `aria-label`.
|
|
91
|
+
- Der Button exponiert einen stabilen Control-Part, z.B. `part="close control"`.
|
|
92
|
+
- Die Grafik exponiert einen Icon-Part, z.B. `part="control icon"` oder `part="close-icon control icon"`.
|
|
93
|
+
- Das Core-Pack enthaelt fuer Framework-Controls mindestens `close`, `menu`, `chevron-left`, `chevron-right`, `chevron-up`, `chevron-down`, `success`, `warning`, `error` und `info`.
|
|
94
|
+
- Eigene Icon Packs muessen lokale SVG-Node-Descriptoren oder sichere `src`-Quellen verwenden; CDN-Abhaengigkeiten sind keine XTend-Default-Basis.
|
|
95
|
+
|
|
96
|
+
## RMT und Fabric
|
|
97
|
+
|
|
98
|
+
`x-icon` deklariert `xtendRmtMetadata` mit `adapter: 'xtend.component'`, `templateMode: 'dom_descriptor'`, `shellAuthoring.attributes` und der Boundary `no-rmt-kernel-import-of-xtend-types`. RMT kann Icons dadurch in App Shells, Navigationen, Buttons oder Docs-Templates authoren, ohne den XTend-Kernel oder einen Icon-Vendor zu importieren.
|
|
99
|
+
|
|
100
|
+
Fabric konsumiert:
|
|
101
|
+
|
|
102
|
+
- `icon-ready`
|
|
103
|
+
- `icon-missing`
|
|
104
|
+
- `icon-pack-registered`
|
|
105
|
+
- State-Key `xicon-state-<id>`
|
|
106
|
+
- `snapshot()`
|
|
107
|
+
|
|
108
|
+
## Styling & Theming
|
|
109
|
+
|
|
110
|
+
```css
|
|
111
|
+
x-icon {
|
|
112
|
+
--xtend-icon-size: 1rem;
|
|
113
|
+
--xtend-icon-color: currentColor;
|
|
114
|
+
--xtend-icon-stroke-width: 2;
|
|
115
|
+
}
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
Das Icon folgt `currentColor` und integriert sich dadurch in `x-theme`, `x-header`, `x-button`, `x-menu` und eigene Corporate-Design-Tokens. Im Forced-Colors-Modus bleibt die Komponente ueber Systemfarben lesbar.
|
|
119
|
+
|
|
120
|
+
## Accessibility
|
|
121
|
+
|
|
122
|
+
- mit `label` rendert der Host `role="img"` und `aria-label`
|
|
123
|
+
- ohne Label oder mit `decorative` rendert die Komponente `aria-hidden`
|
|
124
|
+
- URL-Icons erhalten ein leeres `alt`, wenn sie dekorativ sind
|
|
125
|
+
- `icon-missing` ist als diagnostisches Event verfuegbar, ohne Screenreader mit Fehlersignalen zu belasten
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# xinput – XTend Komponente
|
|
2
|
+
|
|
3
|
+
> **Siehe auch:** [xform](./xform.md), [xstate](./xstate.md)
|
|
4
|
+
|
|
5
|
+
## Übersicht
|
|
6
|
+
|
|
7
|
+
`<x-input>` ist ein vielseitiges Eingabefeld mit Theming, State-Integration und voller Unterstützung für Formulare.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Features
|
|
12
|
+
- Standard-Input mit Slot für Label
|
|
13
|
+
- State-Integration via xstate
|
|
14
|
+
- Theming via CSS Custom Properties
|
|
15
|
+
- Form-Integration
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Verwendung
|
|
20
|
+
|
|
21
|
+
```html
|
|
22
|
+
<x-input value="Hallo"></x-input>
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Attribute
|
|
28
|
+
| Attribut | Typ | Beschreibung |
|
|
29
|
+
|-------------|---------|-------------------------------------|
|
|
30
|
+
| `value` | String | Wert des Eingabefelds |
|
|
31
|
+
| `type` | String | Typ des Inputs (text, number, etc.) |
|
|
32
|
+
| `placeholder`| String | Platzhaltertext |
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Events
|
|
37
|
+
| Event | Beschreibung |
|
|
38
|
+
|---------------|-------------------------------------|
|
|
39
|
+
| `input` | Bei Eingabe ausgelöst |
|
|
40
|
+
| `change` | Bei Wertänderung ausgelöst |
|
|
41
|
+
| `input-changed` | aktueller XTend-Contract bei Wertänderung, Detail: `{ value }` |
|
|
42
|
+
| `validation-failed` | Validierungsfehler, Detail: `{ value }` |
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## API
|
|
47
|
+
- **Wert setzen/lesen:** `element.value = 'Text'`
|
|
48
|
+
- **State-Integration:** Automatisch via xstate
|
|
49
|
+
- **Validierung:** `element.checkValidity()`, `element.reportValidity()`
|
|
50
|
+
- **Reset:** `element.reset()`
|
|
51
|
+
|
|
52
|
+
## State-Contract ab ER-WP-33
|
|
53
|
+
|
|
54
|
+
`<x-input>` schreibt seinen Wert nach `xinput-value-<id>` und reagiert auf externe Änderungen dieses Keys. Die Validierungsregion nutzt `role="alert"` und `aria-live="assertive"`, sodass Formularfehler nicht nur farblich, sondern auch semantisch sichtbar werden.
|
|
55
|
+
|
|
56
|
+
## Form Controls UX ab WP-E11-08
|
|
57
|
+
|
|
58
|
+
`<x-input>` stellt `xtendFormControlUxProfile` mit `xtend.component.form-control-ux-profile.v1` bereit. Das Profil bindet Label, Hint, Error, `input-changed`, `validation-failed`, `xinput-value-<id>`, `ui.user-blocking.input`, Fabric-Lane `user-blocking` und RMT Shell Authoring zusammen.
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Beispiel: Dynamisch per JS
|
|
63
|
+
|
|
64
|
+
```js
|
|
65
|
+
const input = document.createElement('x-input');
|
|
66
|
+
input.value = 'Hallo';
|
|
67
|
+
document.body.appendChild(input);
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Styling & Theming
|
|
73
|
+
|
|
74
|
+
```css
|
|
75
|
+
x-input {
|
|
76
|
+
--input-border: 1px solid #ccc;
|
|
77
|
+
--input-bg: #fff;
|
|
78
|
+
--input-bg-dark: #0f0f12;
|
|
79
|
+
--input-placeholder-color-dark: #b8c4d4;
|
|
80
|
+
}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
`<x-input>` nutzt automatisch `--xtend-surface` und `--xtend-text` aus `x-theme`. In `data-theme="dark"` wird ein dunkler Hintergrund ueber `--input-bg-dark`, `--xtend-control-bg-dark` oder den Theme-Surface-Fallback gesetzt, damit Text und Suchfelder in der Docs-App lesbar bleiben.
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Accessibility
|
|
88
|
+
- Label-Slot, ARIA, Form-Integration
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
*Letzte Aktualisierung: 16. Juli 2025*
|
|
93
|
+
|
|
94
|
+
## ECH-WP-08 Form Theme/A11y Hardening
|
|
95
|
+
|
|
96
|
+
`signatureDesign`: Praezises Enterprise-Textfeld mit ruhiger Flaeche, klarer Status-Typografie und dichter, aber lesbarer Form-Rhythmik.
|
|
97
|
+
|
|
98
|
+
| Token | Zweck |
|
|
99
|
+
| --- | --- |
|
|
100
|
+
| `--xtend-form-text` | Host-Textfarbe |
|
|
101
|
+
| `--xtend-form-control-surface` | Eingabeflaeche |
|
|
102
|
+
| `--xtend-form-control-text` | Eingabetext |
|
|
103
|
+
| `--xtend-form-label-text` | Label |
|
|
104
|
+
| `--xtend-form-helper-text` | Helper/Hinweis |
|
|
105
|
+
| `--xtend-form-error-text` | Fehlertext |
|
|
106
|
+
| `--xtend-form-error-surface` | Fehlerflaeche |
|
|
107
|
+
| `--xtend-form-error-border` | Fehlerkante und Marker |
|
|
108
|
+
| `--xtend-form-focus-ring` | Native Focus-Outline |
|
|
109
|
+
| `--xtend-form-radius` | Control- und Error-Radius |
|
|
110
|
+
| `--xtend-form-gap` | Label-, Helper- und Error-Abstand |
|
|
111
|
+
| `--xtend-form-font-family` | Form-Typografie |
|
|
112
|
+
| `--xtend-form-control-font-size` | Control-Schrift |
|
|
113
|
+
| `--xtend-form-helper-font-size` | Helper/Error-Schrift |
|
|
114
|
+
| `--xtend-form-icon-color` | Icon-/Affordance-Farbe fuer Controls mit Icon |
|
|
115
|
+
|
|
116
|
+
Density-Profile: `density="comfortable"`, `density="compact"` und `density="dense"`. Invalid/Error ist nicht farb-only: Control-Kante, innerer Ring und Error-Marker bleiben auch in Dark/Forced-Colors erkennbar.
|
|
117
|
+
|
|
118
|
+
```css
|
|
119
|
+
[data-xtend-form-theme="enterprise-foreign"] x-input {
|
|
120
|
+
--xtend-form-control-surface: #fbf8f2;
|
|
121
|
+
--xtend-form-control-text: #16231f;
|
|
122
|
+
--xtend-form-label-text: #22312c;
|
|
123
|
+
--xtend-form-helper-text: #596861;
|
|
124
|
+
--xtend-form-error-text: #7d231c;
|
|
125
|
+
--xtend-form-error-border: #a64036;
|
|
126
|
+
--xtend-form-focus-ring: 3px solid #8f4f2a;
|
|
127
|
+
--xtend-form-radius: 0.35rem;
|
|
128
|
+
}
|
|
129
|
+
```
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# xlightbox – XTend Komponente
|
|
2
|
+
|
|
3
|
+
> **Siehe auch:** [xplayer](./xplayer.md)
|
|
4
|
+
|
|
5
|
+
## Übersicht
|
|
6
|
+
|
|
7
|
+
`<x-lightbox>` ist eine Komponente zur Anzeige von Bildern im viewportweiten Overlay. Sie unterstuetzt Trigger-Slots, API-gesteuertes Oeffnen, Escape Close, Focus Return und viewport-bounded Media-Skalierung.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Features
|
|
12
|
+
- Overlay für Bilder und Medien
|
|
13
|
+
- Trigger-Slot und globale Helper-API
|
|
14
|
+
- Keyboard-Support mit Escape Close
|
|
15
|
+
- Viewport-bounded Bildskalierung mit Body-Portal
|
|
16
|
+
- Theming via CSS Custom Properties
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Verwendung
|
|
21
|
+
|
|
22
|
+
```html
|
|
23
|
+
<x-lightbox id="logo-lightbox" src="/assets/logo.png" alt="XTend Logo">
|
|
24
|
+
<x-button slot="trigger" variant="secondary">Logo ansehen</x-button>
|
|
25
|
+
</x-lightbox>
|
|
26
|
+
|
|
27
|
+
<img src="/assets/preview.jpg" data-xlightbox alt="Preview" />
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Attribute
|
|
33
|
+
| Attribut | Typ | Beschreibung |
|
|
34
|
+
|-------------|---------|-------------------------------------|
|
|
35
|
+
| `src` | String | Bildquelle fuer Trigger, API und `data-xlightbox` |
|
|
36
|
+
| `open` | Boolean | oeffnet die Lightbox kontrolliert, sofern `src` gesetzt ist |
|
|
37
|
+
| `alt` | String | Alternativtext fuer das angezeigte Bild |
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Events
|
|
42
|
+
| Event | Beschreibung |
|
|
43
|
+
|---------------|-------------------------------------|
|
|
44
|
+
| `lightbox-opened` | Wird beim Oeffnen ausgelöst, Detail: `{ src }` |
|
|
45
|
+
| `lightbox-closed` | Wird beim Schliessen ausgelöst |
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## API
|
|
50
|
+
- **Oeffnen:** `element.open(src)`
|
|
51
|
+
- **Schliessen:** `element.close()`
|
|
52
|
+
- **Globaler Helper:** `window.showLightbox(src)`
|
|
53
|
+
- **State:** `xlightbox-open-<id>`
|
|
54
|
+
|
|
55
|
+
`src` konfiguriert die Bildquelle, oeffnet die Lightbox aber nicht automatisch. Fuer direkte UI-Nutzung wird ein Element im Slot `trigger` verwendet. Beim Oeffnen portalt sich die Lightbox auf `document.body`, damit Overlay und Bild nicht von App-Shell-Containern, `main`, Cards oder transformierten Demo-Frames abgeschnitten werden.
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## Beispiel: Dynamisch per JS
|
|
60
|
+
|
|
61
|
+
```js
|
|
62
|
+
const lightbox = document.createElement('x-lightbox');
|
|
63
|
+
document.body.appendChild(lightbox);
|
|
64
|
+
lightbox.open('/assets/bild.jpg');
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Styling & Theming
|
|
70
|
+
|
|
71
|
+
```css
|
|
72
|
+
x-lightbox {
|
|
73
|
+
--lightbox-bg: rgba(0,0,0,0.9);
|
|
74
|
+
--lightbox-padding: clamp(0.75rem, 2vw, 2rem);
|
|
75
|
+
--lightbox-radius: 0.75rem;
|
|
76
|
+
}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## Accessibility
|
|
82
|
+
- Fokus-Management, Keyboard-Navigation und Focus Return
|
|
83
|
+
- `role="dialog"`, `aria-modal="true"` und geschlossener Zustand mit `aria-hidden` und `inert`
|
|
84
|
+
- Bildskalierung via `object-fit: contain` und `max-height: calc(100dvh - padding)`
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
*Letzte Aktualisierung: 16. Juli 2025*
|
|
89
|
+
|
|
90
|
+
## Layout Display Media UX Profil
|
|
91
|
+
|
|
92
|
+
`x-lightbox` stellt ab `WP-E11-12` das Profil `xtend.component.layout-display-media-ux-profile.v1` bereit. Die Komponente verbindet Overlay- und Media-Reife und nutzt den State-Key `xlightbox-open-<id>`.
|
|
93
|
+
|
|
94
|
+
- Profil-Getter: `xtendLayoutDisplayMediaUxProfile`
|
|
95
|
+
- Schedule: `media.lazy.load`
|
|
96
|
+
- Events: `lightbox-opened`, `lightbox-closed`
|
|
97
|
+
- Snapshot: `snapshot()`
|
|
98
|
+
- CSS Parts: `overlay`, `content`, `close`, `media`
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# xlink - XTend Komponente
|
|
2
|
+
|
|
3
|
+
## Uebersicht
|
|
4
|
+
|
|
5
|
+
`<x-link>` ist die deklarative Link-Komponente fuer XTend-SPAs. Sie arbeitet mit `<x-router>` zusammen, erkennt Hash- und History-Mode und haelt den Active-State auch bei programmatischer Navigation aktuell.
|
|
6
|
+
|
|
7
|
+
## Verwendung
|
|
8
|
+
|
|
9
|
+
```html
|
|
10
|
+
<x-link href="/docs">Zur Dokumentation</x-link>
|
|
11
|
+
<x-link href="https://example.com">Externer Link</x-link>
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Attribute
|
|
15
|
+
|
|
16
|
+
| Attribut | Typ | Beschreibung |
|
|
17
|
+
|----------|-----|--------------|
|
|
18
|
+
| `href` | string | Zielpfad oder externe URL |
|
|
19
|
+
| `active` | boolean | wird gesetzt, wenn der Link aktuell aktiv ist |
|
|
20
|
+
| `state` | string | optionales JSON fuer `history.pushState()` |
|
|
21
|
+
|
|
22
|
+
## Events
|
|
23
|
+
|
|
24
|
+
| Event | Beschreibung |
|
|
25
|
+
|-------|--------------|
|
|
26
|
+
| `before-navigate` | cancelable, vor der Navigation |
|
|
27
|
+
| `after-navigate` | nach erfolgreicher Navigation |
|
|
28
|
+
|
|
29
|
+
`before-navigate` und `after-navigate` liefern:
|
|
30
|
+
|
|
31
|
+
```js
|
|
32
|
+
{
|
|
33
|
+
href: '/docs',
|
|
34
|
+
mode: 'history',
|
|
35
|
+
state: { ... },
|
|
36
|
+
source: 'x-link',
|
|
37
|
+
stateKey: 'xlink-active-link-123',
|
|
38
|
+
scheduleRef: 'ui.user-blocking.navigation'
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Contract
|
|
43
|
+
|
|
44
|
+
- interne Links werden normalisiert und spa-konform navigiert
|
|
45
|
+
- externe Links behalten Standardverhalten und erhalten automatisch `target="_blank"` plus `rel="noopener noreferrer"`
|
|
46
|
+
- Active-State wird bei `popstate`, `hashchange`, `x-navigate` und `xrouter-after-navigate` aktualisiert
|
|
47
|
+
- aktive Links spiegeln `aria-current="page"` und `xlink-active-<id>`
|
|
48
|
+
- Enter und Space aktivieren denselben Navigationspfad
|
|
49
|
+
- lange Labels und slotted Icon-/Text-Inhalte bleiben overflow-sicher in engen Menüs, Sidebars und Header-Drawern
|
|
50
|
+
|
|
51
|
+
## Navigation Routing UX Profil
|
|
52
|
+
|
|
53
|
+
`<x-link>` stellt `xtendNavigationRoutingUxProfile` mit `xtend.component.navigation-routing-ux-profile.v1` bereit. Das Profil beschreibt `x-link` als Router-Link mit `before-navigate`, `after-navigate`, `x-navigate`, `xlink-active-<id>`, `ui.user-blocking.navigation`, Active State, Keyboard-Aktivierung, Fabric-Lane `user-blocking` und RMT Shell Authoring.
|
|
54
|
+
|
|
55
|
+
Die Link-Komponente delegated Route Announcements an `x-router`, bleibt aber selbst fuer sichtbaren Active State, Keyboard-Aktivierung und sichere externe Links verantwortlich.
|
|
56
|
+
|
|
57
|
+
## Overflow-Sicherheit
|
|
58
|
+
|
|
59
|
+
`x-link` ist fuer App-Shell-Navigation, Menues und Sidebars overflow-sicher. Der Host begrenzt sich auf den verfuegbaren Container, slotted Inhalte erhalten `min-width: 0`, und lange Labels duerfen umbrechen. Fuer bewusst einzeilige Links kann `--xtend-link-white-space: nowrap` gesetzt werden.
|
|
60
|
+
|
|
61
|
+
## Hinweise
|
|
62
|
+
|
|
63
|
+
- der Router-Mode wird am ersten gefundenen `<x-router>` erkannt
|
|
64
|
+
- gleiche Zielpfade fuehren keinen redundanten URL-Wechsel aus
|
|
65
|
+
- `x-link` nutzt denselben Navigationsvertrag wie `x-router`
|
|
66
|
+
|
|
67
|
+
## ECH-WP-09 Token-Tabelle und Navigation States
|
|
68
|
+
|
|
69
|
+
`signatureDesign`: `x-link` ist der kompakte Enterprise-Router-Link mit sichtbarem Current-Indikator und tokenisiertem Active/Disabled-Verhalten. Active/Current/Selected, Hover, Focus und Disabled muessen auch in dichten Headern, Sidebars und Menues lesbar bleiben.
|
|
70
|
+
|
|
71
|
+
| Token | Zweck |
|
|
72
|
+
| --- | --- |
|
|
73
|
+
| `--xtend-nav-surface` | Link-Surface |
|
|
74
|
+
| `--xtend-nav-text` | Link-Text |
|
|
75
|
+
| `--xtend-nav-border-color` | geteilte Navigationskante |
|
|
76
|
+
| `--xtend-nav-radius` | Link-Radius |
|
|
77
|
+
| `--xtend-nav-gap` | Abstand zwischen Icon und Label |
|
|
78
|
+
| `--xtend-nav-font-family` | Link-Typografie |
|
|
79
|
+
| `--xtend-nav-font-size` | Link-Textgroesse |
|
|
80
|
+
| `--xtend-nav-active-surface` | Active/Current/Selected Flaeche |
|
|
81
|
+
| `--xtend-nav-active-text` | Active/Current/Selected Text |
|
|
82
|
+
| `--xtend-nav-current-indicator` | nicht farb-only Current-Indikator |
|
|
83
|
+
| `--xtend-nav-hover-surface` | Hover-Flaeche |
|
|
84
|
+
| `--xtend-nav-focus-ring` | Tastaturfokus |
|
|
85
|
+
| `--xtend-nav-disabled-opacity` | Disabled-Dimmung |
|
|
86
|
+
|
|
87
|
+
## ECH-WP-09 Keyboard-Verhalten
|
|
88
|
+
|
|
89
|
+
`Enter` und `Space` aktivieren interne Links ueber denselben Navigationspfad wie Click. Disabled Links entfernen den internen `href`, setzen `aria-disabled="true"` und sind nicht tastaturaktivierbar. Active/Current wird ueber `aria-current="page"` gespiegelt; Composite-Navigation kann `aria-selected="true"` auf dem Host ergaenzen.
|
|
90
|
+
|
|
91
|
+
## ECH-WP-09 Fremdtheme
|
|
92
|
+
|
|
93
|
+
```css
|
|
94
|
+
[data-xtend-nav-theme="enterprise-foreign"] x-link {
|
|
95
|
+
--xtend-nav-surface: transparent;
|
|
96
|
+
--xtend-nav-text: #17231f;
|
|
97
|
+
--xtend-nav-border-color: transparent;
|
|
98
|
+
--xtend-nav-radius: 0.3rem;
|
|
99
|
+
--xtend-nav-gap: 0.4rem;
|
|
100
|
+
--xtend-nav-font-family: "Aptos", "Segoe UI", sans-serif;
|
|
101
|
+
--xtend-nav-font-size: 0.96rem;
|
|
102
|
+
--xtend-nav-active-surface: rgba(181, 107, 53, 0.16);
|
|
103
|
+
--xtend-nav-active-text: #173f35;
|
|
104
|
+
--xtend-nav-current-indicator: #b56b35;
|
|
105
|
+
--xtend-nav-hover-surface: rgba(181, 107, 53, 0.1);
|
|
106
|
+
--xtend-nav-focus-ring: 3px solid #b56b35;
|
|
107
|
+
--xtend-nav-disabled-opacity: 0.44;
|
|
108
|
+
}
|
|
109
|
+
```
|