@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,98 @@
|
|
|
1
|
+
# xtextarea - XTend Komponente
|
|
2
|
+
|
|
3
|
+
> **Siehe auch:** [xform](./xform.md), [xinput](./xinput.md), [xselect](./xselect.md), [xstate](./xstate.md)
|
|
4
|
+
|
|
5
|
+
## Uebersicht
|
|
6
|
+
|
|
7
|
+
`<x-textarea>` ist das Long-Form-Input aus `WP-E10-10`. Die Komponente kapselt eine native `textarea`, ist form-associated, schreibt ihren Wert nach `xstate` und bringt RMT-, Fabric-, A11y- und Performance-Metadaten mit.
|
|
8
|
+
|
|
9
|
+
## Verwendung
|
|
10
|
+
|
|
11
|
+
```html
|
|
12
|
+
<x-textarea id="notes" name="notes" maxlength="240" rows="5" required>
|
|
13
|
+
<span slot="label">Notes</span>
|
|
14
|
+
<span slot="hint">Keep the message concise.</span>
|
|
15
|
+
<span slot="error">A note is required.</span>
|
|
16
|
+
</x-textarea>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Attribute
|
|
20
|
+
|
|
21
|
+
| Attribut | Typ | Beschreibung |
|
|
22
|
+
|----------|-----|--------------|
|
|
23
|
+
| `name` | String | Formularname |
|
|
24
|
+
| `value` | String | aktueller Textwert |
|
|
25
|
+
| `placeholder` | String | Platzhaltertext |
|
|
26
|
+
| `required` | Boolean | aktiviert native Validierung |
|
|
27
|
+
| `disabled` | Boolean | deaktiviert das Control |
|
|
28
|
+
| `readonly` | Boolean | macht das Control lesbar |
|
|
29
|
+
| `maxlength` | Number | maximale Zeichenanzahl |
|
|
30
|
+
| `minlength` | Number | minimale Zeichenanzahl |
|
|
31
|
+
| `rows` | Number | sichtbare Zeilen |
|
|
32
|
+
| `label` | String | Label ohne Slot |
|
|
33
|
+
|
|
34
|
+
## Events
|
|
35
|
+
|
|
36
|
+
| Event | Detail |
|
|
37
|
+
|-------|--------|
|
|
38
|
+
| `textarea-changed` | `{ value, length, maxLength, source: 'x-textarea' }` |
|
|
39
|
+
| `textarea-invalid` | `{ value, message, source: 'x-textarea' }` |
|
|
40
|
+
|
|
41
|
+
## API
|
|
42
|
+
|
|
43
|
+
- `element.value`
|
|
44
|
+
- `element.maxLength`
|
|
45
|
+
- `element.checkValidity()`
|
|
46
|
+
- `element.reportValidity()`
|
|
47
|
+
- `element.validate()`
|
|
48
|
+
- `element.reset()`
|
|
49
|
+
- `element.focus()`
|
|
50
|
+
|
|
51
|
+
## State, RMT und Fabric
|
|
52
|
+
|
|
53
|
+
`<x-textarea>` schreibt nach `xtextarea-value-<id>` und akzeptiert externe Wertupdates ueber denselben Key. Die RMT-Metadaten nutzen `xtend.rmt.component-contract.v1`, `adapter: 'xtend.component'` und `kernelBoundary: 'no-rmt-kernel-import-of-xtend-types'`. RMT kann das Control als DOM-Descriptor erzeugen und Events wie `textarea-changed` an Scheduler-Kommandos binden.
|
|
54
|
+
|
|
55
|
+
## A11y und Performance
|
|
56
|
+
|
|
57
|
+
Das Control nutzt `role="textbox"` ueber die native Textarea, `aria-describedby`, eine polite Counter-Region mit `character-count-announcement` und eine assertive Fehlerregion. Das Performance-Profil ist `xtend.performance.component-profile.v1` mit `budgetClass: 'interactive-medium'`, `lane: 'user-blocking'` und `hydrationPolicy: 'visible'`.
|
|
58
|
+
|
|
59
|
+
## Form Controls UX ab WP-E11-08
|
|
60
|
+
|
|
61
|
+
`<x-textarea>` stellt `xtendFormControlUxProfile` mit `xtend.component.form-control-ux-profile.v1` bereit. Das Profil verbindet Label, Hint, Error, `textarea-changed`, `textarea-invalid`, `xtextarea-value-<id>`, `ui.user-blocking.input`, Fabric-Lane `user-blocking` und RMT Shell Authoring.
|
|
62
|
+
|
|
63
|
+
## ECH-WP-08 Form Theme/A11y Hardening
|
|
64
|
+
|
|
65
|
+
`signatureDesign`: Enterprise-Schreibflaeche mit ruhiger Flaechenqualitaet, Live-Counter und getrennt themebaren Helper-/Error-Rollen.
|
|
66
|
+
|
|
67
|
+
| Token | Zweck |
|
|
68
|
+
| --- | --- |
|
|
69
|
+
| `--xtend-form-text` | Host-Textfarbe |
|
|
70
|
+
| `--xtend-form-control-surface` | Textarea-Flaeche |
|
|
71
|
+
| `--xtend-form-control-text` | Textarea-Text |
|
|
72
|
+
| `--xtend-form-label-text` | Label |
|
|
73
|
+
| `--xtend-form-helper-text` | Helper und Counter |
|
|
74
|
+
| `--xtend-form-error-text` | Fehlertext |
|
|
75
|
+
| `--xtend-form-error-surface` | Fehlerflaeche |
|
|
76
|
+
| `--xtend-form-error-border` | Fehlerkante und Marker |
|
|
77
|
+
| `--xtend-form-focus-ring` | Focus-Outline |
|
|
78
|
+
| `--xtend-form-radius` | Textarea-/Error-Radius |
|
|
79
|
+
| `--xtend-form-gap` | Meta- und Error-Abstand |
|
|
80
|
+
| `--xtend-form-font-family` | Form-Typografie |
|
|
81
|
+
| `--xtend-form-control-font-size` | Textarea-Schrift |
|
|
82
|
+
| `--xtend-form-helper-font-size` | Helper/Error-Schrift |
|
|
83
|
+
| `--xtend-form-icon-color` | Status-/Affordance-Fallback |
|
|
84
|
+
|
|
85
|
+
Density-Profile: `comfortable`, `compact`, `dense`. Invalid/Error nutzt Kante, Ring und Marker statt ausschliesslich Farbe.
|
|
86
|
+
|
|
87
|
+
```css
|
|
88
|
+
[data-xtend-form-theme="enterprise-foreign"] x-textarea {
|
|
89
|
+
--xtend-form-control-surface: #fbf8f2;
|
|
90
|
+
--xtend-form-control-text: #16231f;
|
|
91
|
+
--xtend-form-label-text: #22312c;
|
|
92
|
+
--xtend-form-helper-text: #596861;
|
|
93
|
+
--xtend-form-error-text: #7d231c;
|
|
94
|
+
--xtend-form-error-border: #a64036;
|
|
95
|
+
--xtend-form-focus-ring: 3px solid #8f4f2a;
|
|
96
|
+
--xtend-form-radius: 0.35rem;
|
|
97
|
+
}
|
|
98
|
+
```
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
# xtheme - XTend Core-Modul
|
|
2
|
+
|
|
3
|
+
## Uebersicht
|
|
4
|
+
|
|
5
|
+
`xtheme.js` ist das zentrale Theme-Management von XTend. Die Runtime wird unter `window.XTend.theme` bereitgestellt; `window.XTheme` bleibt als oeffentliche Kompatibilitaets-Fassade erhalten.
|
|
6
|
+
|
|
7
|
+
## Oeffentliche API
|
|
8
|
+
|
|
9
|
+
| Methode | Beschreibung |
|
|
10
|
+
|---------|--------------|
|
|
11
|
+
| `getCurrentTheme()` | liefert das aktive Theme |
|
|
12
|
+
| `getAvailableThemes()` | liefert alle bekannten Themes |
|
|
13
|
+
| `setTheme(themeName)` | schaltet auf ein Theme um |
|
|
14
|
+
| `toggleDarkMode()` | schaltet zwischen `light` und `dark` um |
|
|
15
|
+
| `registerTheme(name, properties)` | registriert oder erweitert ein Theme |
|
|
16
|
+
| `loadExternalTheme(name, cssUrl)` | laedt ein externes Theme-CSS |
|
|
17
|
+
| `removeExternalTheme(name)` | entfernt ein externes Theme-CSS |
|
|
18
|
+
| `set(name, value)` | Kompatibilitaets-Fassade fuer Theme oder CSS-Variable |
|
|
19
|
+
| `get(name)` | liest aktuelles Theme oder CSS-Variable |
|
|
20
|
+
| `subscribe(fn)` | registriert einen Listener fuer Theme-Aenderungen |
|
|
21
|
+
| `getDesignTokens(themeName?)` | liefert die zentralen XTend-Design-Tokens fuer ein Theme |
|
|
22
|
+
| `getDesignTokenContract()` | liefert den produktiven Contract `xtend.design-tokens.product-contract.v1` mit Theme Packs, Density Packs und CSS Parts |
|
|
23
|
+
| `setDensity(density)` | setzt die globale Density Boundary auf `compact`, `comfortable` oder `dense` |
|
|
24
|
+
| `getDensity()` | liefert die aktive Density |
|
|
25
|
+
| `getAvailableDensities()` | liefert alle unterstuetzten Density Presets |
|
|
26
|
+
| `getThemeContext()` | liefert den propagierten Theme-/Density-/Preference-Kontext |
|
|
27
|
+
| `snapshotPerformance()` | liefert den aktuellen Performance-/Fabric-Diagnostics-Snapshot |
|
|
28
|
+
| `getPerformanceProfile()` | liefert das Performance Profile `xtend.performance.component-profile.v1` |
|
|
29
|
+
| `getRmtMetadata()` | liefert RMT Shell Authoring Metadata ohne RMT-Kernel-Kopplung |
|
|
30
|
+
| `getComponentNetworkContext()` | liefert den Component Network Provider Contract |
|
|
31
|
+
| `getA11yPreferences()` | liefert Reduced-Motion-, Forced-Colors- und Color-Scheme-Snapshot |
|
|
32
|
+
| `getMotionPreference()` | liefert `default` oder `reduced` |
|
|
33
|
+
| `getContrastPreference()` | liefert `normal` oder `forced-colors` |
|
|
34
|
+
| `getA11yProfile()` | liefert den Runtime-A11y-Provider-Contract |
|
|
35
|
+
| `getMotionContrastPolicy()` | liefert die Motion-/Contrast-Policy fuer Gates |
|
|
36
|
+
|
|
37
|
+
## `set(name, value)` Contract
|
|
38
|
+
|
|
39
|
+
```js
|
|
40
|
+
window.XTend.theme.setTheme('dark');
|
|
41
|
+
window.XTend.theme.set('light');
|
|
42
|
+
window.XTend.theme.set('--primary-color', '#0e4e81');
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
- `set('dark')` ist ein Alias fuer `setTheme('dark')`
|
|
46
|
+
- `set('--primary-color', '#0e4e81')` schreibt eine CSS-Variable in das aktuelle Theme
|
|
47
|
+
|
|
48
|
+
## Theme-Lifecycle
|
|
49
|
+
|
|
50
|
+
- das aktive Theme wird ueber `data-theme` auf `document.documentElement` gespiegelt
|
|
51
|
+
- Density wird ueber `data-xtend-density` auf `document.documentElement` gespiegelt
|
|
52
|
+
- Motion- und Contrast-Preferences werden ueber `data-xtend-motion`, `data-xtend-contrast` und `data-xtend-forced-colors` gespiegelt
|
|
53
|
+
- `document.documentElement.style.colorScheme` folgt dem aktiven Theme (`light`/`dark`)
|
|
54
|
+
- registrierte CSS-Variablen werden pro Theme verwaltet und beim Wechsel neu angewendet
|
|
55
|
+
- extern geladene Themes werden zwischengespeichert und spaeter beim Aktivieren erneut angewendet
|
|
56
|
+
- Theme-Aenderungen werden ueber `xstate` synchronisiert:
|
|
57
|
+
- `theme`
|
|
58
|
+
- `themes`
|
|
59
|
+
- `xtend.theme.current`
|
|
60
|
+
- `xtend.theme.density`
|
|
61
|
+
- `xtend.theme.available`
|
|
62
|
+
- `xtend.theme.preferences`
|
|
63
|
+
- `xtend.theme.context`
|
|
64
|
+
- `xtend.theme.performanceProfile`
|
|
65
|
+
- `xtend.theme.performanceSnapshot`
|
|
66
|
+
- `xtend.theme.rmtMetadata`
|
|
67
|
+
- `xtend.theme.componentNetwork`
|
|
68
|
+
- `xtend.theme.prefersReducedMotion`
|
|
69
|
+
- `xtend.theme.forcedColors`
|
|
70
|
+
- `xtend.a11y.motion`
|
|
71
|
+
- `xtend.a11y.contrast`
|
|
72
|
+
|
|
73
|
+
## Zentrale XTend-Tokens
|
|
74
|
+
|
|
75
|
+
Die Default-Themes liefern produktive Basistokens fuer Core-Komponenten, unter anderem:
|
|
76
|
+
|
|
77
|
+
- `--xtend-color-primary`
|
|
78
|
+
- `--xtend-color-primary-dark`
|
|
79
|
+
- `--xtend-color-accent`
|
|
80
|
+
- `--xtend-glass-bg`
|
|
81
|
+
- `--xtend-glass-blur`
|
|
82
|
+
- `--xtend-shadow`
|
|
83
|
+
- `--xtend-border`
|
|
84
|
+
- `--xtend-radius`
|
|
85
|
+
- `--xtend-font-family`
|
|
86
|
+
- `--xtend-focus-outline`
|
|
87
|
+
- `--xtend-focus-outline-offset`
|
|
88
|
+
- `--xtend-surface`
|
|
89
|
+
- `--xtend-surface-muted`
|
|
90
|
+
- `--xtend-text`
|
|
91
|
+
- `--xtend-overlay-bg`
|
|
92
|
+
- `--xtend-motion-duration-fast`
|
|
93
|
+
- `--xtend-motion-duration-base`
|
|
94
|
+
- `--xtend-motion-scale`
|
|
95
|
+
- `--xtend-density-scale`
|
|
96
|
+
- `--xtend-density-spacing`
|
|
97
|
+
- `--xtend-control-height`
|
|
98
|
+
- `--xtend-font-scale`
|
|
99
|
+
|
|
100
|
+
Ab `WP-E12-12` sind diese Tokens Teil des Produktcontracts `xtend.design-tokens.product-contract.v1`. `getDesignTokenContract()` gibt Theme Packs (`light`, `dark`, `high-contrast`, `forced-colors`), Density Packs (`compact`, `comfortable`, `dense`) und stabile CSS Parts zurueck. Die separate Entwicklerdokumentation liegt in [Design Tokens](../design-tokens.md).
|
|
101
|
+
|
|
102
|
+
## Performance Profile und Density Boundary
|
|
103
|
+
|
|
104
|
+
`x-theme` ist ab `WP-E12-05` die zentrale Theme-, Preference- und Density Boundary fuer den Komponentenstack. Das Modul besitzt ein explizites Performance Profile:
|
|
105
|
+
|
|
106
|
+
- Schema: `xtend.performance.component-profile.v1`
|
|
107
|
+
- Lane: `user-blocking`
|
|
108
|
+
- Hydration Policy: `eager`
|
|
109
|
+
- Messpunkte: `xtend.theme.initialize`, `xtend.theme.apply`, `xtend.theme.propagate`, `xtend.theme.density` und `xtend.theme.external-css`
|
|
110
|
+
- Fabric Snapshot Path: `xtend.theme.performanceSnapshot`
|
|
111
|
+
|
|
112
|
+
Density wird als Provider-Kontext behandelt, nicht als lokale Komponenteneigenschaft. `setDensity('compact')`, `setDensity('comfortable')` und `setDensity('dense')` setzen `data-xtend-density` und die Tokens `--xtend-density-scale`, `--xtend-density-spacing`, `--xtend-control-height` und `--xtend-font-scale`. `spacious` ist kein produktiver Density-Name mehr und wird bei alten Persistenzdaten auf `comfortable` normalisiert.
|
|
113
|
+
|
|
114
|
+
Der propagierte Kontext liegt unter `xtend.theme.context` und nutzt das Schema `xtend.theme.context.v1`. Er enthaelt Theme, Density, A11y Preferences, aktive Tokens, Density Tokens, RMT Metadata, Fabric Lane und eine `propagationVersion`.
|
|
115
|
+
|
|
116
|
+
## RMT und Component Network
|
|
117
|
+
|
|
118
|
+
`x-theme` stellt RMT Shell Authoring Metadata bereit, ohne XTend in den RMT Kernel einzubetten:
|
|
119
|
+
|
|
120
|
+
- RMT Schema: `xtend.rmt.component-contract.v1`
|
|
121
|
+
- Adapter: `xtend.theme-provider`
|
|
122
|
+
- Shell Authoring Schema: `xtend.rmt.shell-authoring.component.v1`
|
|
123
|
+
- Kernel Boundary: `no-rmt-kernel-import-of-xtend-types`
|
|
124
|
+
|
|
125
|
+
Der Component Network Contract nutzt `xtend.component.network.v1`. Verbraucher wie `xtend.component`, `xtend.xrouter`, `xtend.fabric-telemetry` oder `rmt.shell-authoring` lesen den publizierten Kontext ueber Events und `xstate`, nicht ueber harte Imports.
|
|
126
|
+
|
|
127
|
+
## Reduced Motion und Forced Colors
|
|
128
|
+
|
|
129
|
+
`x-theme` ist ab `WP-E12-04` die zentrale A11y-Preference-Boundary fuer den Komponentenstack. Das Modul beobachtet `prefers-reduced-motion: reduce`, `forced-colors: active` und `prefers-color-scheme: dark`, ohne XTendRMT oder Host-Frameworks zu importieren.
|
|
130
|
+
|
|
131
|
+
- Reduced Motion setzt `data-xtend-motion="reduced"` und reduziert zentrale Motion-Tokens auf `0ms`.
|
|
132
|
+
- Forced Colors setzt `data-xtend-contrast="forced-colors"` und `data-xtend-forced-colors="active"`.
|
|
133
|
+
- Die internen CSS-Regeln nutzen `forced-color-adjust: auto`, `Canvas`, `CanvasText`, `Highlight` und `HighlightText`.
|
|
134
|
+
- Bei System-Preference-Wechseln feuert `theme-preference-changed`.
|
|
135
|
+
- Eine unsichtbare Live-Region mit `role="status"` und `aria-live="polite"` meldet Theme- und Preference-Wechsel fuer Screenreader.
|
|
136
|
+
- Die Policy liegt als `xtend.a11y.motion-contrast-policy.v1` vor und wird ueber `getMotionContrastPolicy()` sichtbar.
|
|
137
|
+
|
|
138
|
+
## Events
|
|
139
|
+
|
|
140
|
+
| Event | Beschreibung |
|
|
141
|
+
|-------|--------------|
|
|
142
|
+
| `theme-initialized` | nach Initialisierung des Theme-Managers |
|
|
143
|
+
| `theme-changed` | nach Theme-Wechsel |
|
|
144
|
+
| `theme-variable-changed` | nach Anpassung einer CSS-Variable |
|
|
145
|
+
| `theme-preference-changed` | nach Reduced-Motion-, Forced-Colors- oder System-Preference-Wechsel |
|
|
146
|
+
| `theme-a11y-announcement` | nach Screenreader-Announcement fuer Theme- oder Preference-Wechsel |
|
|
147
|
+
| `theme-density-changed` | nach Density-Wechsel |
|
|
148
|
+
| `theme-context-changed` | nach Propagation eines neuen Theme-Kontexts |
|
|
149
|
+
| `theme-performance-measured` | nach lokaler Theme-/Density-/Propagation-Messung |
|
|
150
|
+
|
|
151
|
+
## Beispiel
|
|
152
|
+
|
|
153
|
+
```js
|
|
154
|
+
window.XTend.theme.setTheme('light');
|
|
155
|
+
window.XTend.theme.set('--body-bg', '#f9f9f9');
|
|
156
|
+
|
|
157
|
+
window.XTend.theme.registerTheme('dark', {
|
|
158
|
+
'--body-bg': '#181a1b',
|
|
159
|
+
'--text-color': '#fff'
|
|
160
|
+
});
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## Hinweise
|
|
164
|
+
|
|
165
|
+
- `xtheme.js` ist ein Core-Modul, kein separates Styling-Framework.
|
|
166
|
+
- Die Runtime ist namespaced unter `window.XTend.theme`; `window.XTheme` ist nur die oeffentliche Kompatibilitaets-Fassade.
|
|
167
|
+
- Externe Theme-CSS-Dateien bleiben nach dem ersten Laden fuer spaetere Aktivierungen verfuegbar.
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# xtoast - XTend Komponente
|
|
2
|
+
|
|
3
|
+
## Uebersicht
|
|
4
|
+
|
|
5
|
+
`<x-toast>` ist die kompakte Feedback-Komponente fuer temporaere Hinweise. Toasts sind nicht blockierend, leben kurz und werden im XTend-Core bevorzugt ueber `window.XToast` erzeugt.
|
|
6
|
+
|
|
7
|
+
## Verwendung
|
|
8
|
+
|
|
9
|
+
```html
|
|
10
|
+
<x-toast type="success" duration="3000">Gespeichert</x-toast>
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Attribute
|
|
14
|
+
|
|
15
|
+
| Attribut | Typ | Beschreibung |
|
|
16
|
+
|----------|-----|--------------|
|
|
17
|
+
| `type` | string | `info`, `success`, `warning`, `error` |
|
|
18
|
+
| `duration` | number | Dauer in Millisekunden, `0` deaktiviert Auto-Close |
|
|
19
|
+
|
|
20
|
+
## Events
|
|
21
|
+
|
|
22
|
+
| Event | Beschreibung |
|
|
23
|
+
|-------|--------------|
|
|
24
|
+
| `toast-shown` | nach dem Einfuegen des Toasts |
|
|
25
|
+
| `toast-dismissed` | nach dem Schliessen des Toasts |
|
|
26
|
+
|
|
27
|
+
Die Events liefern:
|
|
28
|
+
|
|
29
|
+
```js
|
|
30
|
+
{
|
|
31
|
+
id: 'toast-abc123',
|
|
32
|
+
message: 'Gespeichert',
|
|
33
|
+
type: 'success',
|
|
34
|
+
duration: 3000,
|
|
35
|
+
reason: 'timeout'
|
|
36
|
+
}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Runtime-Contract
|
|
40
|
+
|
|
41
|
+
- API-gemanagte Toasts werden aggregiert in `xstate.get('ui').toasts`
|
|
42
|
+
- die Komponente selbst stellt den Lifecycle ueber Events bereit
|
|
43
|
+
- der versteckte globale Helper-Pfad lebt in `api.js`, nicht mehr in der Komponente
|
|
44
|
+
- der API-Toast-Stack nutzt `#xtoast-container` als viewport-sichere Surface mit `width: min(24rem, calc(100vw - 2rem))`
|
|
45
|
+
|
|
46
|
+
## Layout
|
|
47
|
+
|
|
48
|
+
`window.XToast.show()` legt API-gemanagte Toasts in einem frameworkeigenen Stack ab. Dieser Stack bleibt rechts unten im Viewport, nutzt Safe-Area-Abstaende und dehnt Toasts innerhalb der verfuegbaren Breite, statt sie ueber den rechten Viewport-Rand hinauslaufen zu lassen.
|
|
49
|
+
|
|
50
|
+
Direkt platzierte `<x-toast>` Elemente sind ebenfalls containerfreundlich: die Komponente nutzt `max-width: 100%`, bricht lange Inhalte um und reserviert Platz fuer den Close-Button.
|
|
51
|
+
|
|
52
|
+
## Feedback Status UX ab WP-E11-09
|
|
53
|
+
|
|
54
|
+
`<x-toast>` stellt `xtendFeedbackStatusUxProfile` mit `xtend.component.feedback-status-ux-profile.v1` bereit. Das Profil beschreibt `x-toast` als kurzlebige Feedback-Shell mit `toast-shown`, `toast-dismissed`, `xtoast-state-<id>`, `a11y.announce`, Fabric-Lane `a11y` und RMT Shell Authoring.
|
|
55
|
+
|
|
56
|
+
Timeouts liefern `reason: 'timeout'`; manuelle Dismiss-Pfade liefern `reason: 'button'` oder `manual`. Event-Details enthalten `source: 'x-toast'`, `stateKey` und `dismissed`, damit Status- und Diagnostik-Lanes Toast-Lifecycles eindeutig zuordnen koennen.
|
|
57
|
+
|
|
58
|
+
## Hinweise
|
|
59
|
+
|
|
60
|
+
- Toasts sind semantisch fuer kurzlebige, nicht blockierende Hinweise gedacht
|
|
61
|
+
- fuer laenger sichtbare oder inhaltlich wichtigere Meldungen ist `x-alert` die richtige Komponente
|
|
62
|
+
- `window.XToast.show()` ist der bevorzugte Einstieg fuer API-gemanagte Toasts
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# xtooltip - XTend Komponente
|
|
2
|
+
|
|
3
|
+
> **Siehe auch:** [xpopover](./xpopover.md), [xdrawer](./xdrawer.md), [xdialog](./xdialog.md), [xmodal](./xmodal.md)
|
|
4
|
+
|
|
5
|
+
## Uebersicht
|
|
6
|
+
|
|
7
|
+
`<x-tooltip>` ist die leichte Overlay-Hilfe aus `WP-E10-11`. Die Komponente verbindet ein Ziel-Element ueber `aria-describedby`, oeffnet bei Hover oder Fokus und schliesst ueber Blur, Mouseleave oder `Escape`.
|
|
8
|
+
|
|
9
|
+
## Verwendung
|
|
10
|
+
|
|
11
|
+
```html
|
|
12
|
+
<button id="schedule-help">Inspect schedule</button>
|
|
13
|
+
<x-tooltip id="route-tooltip" for="schedule-help" placement="top" delay="20" label="Tooltip help">
|
|
14
|
+
Explains the scheduled action.
|
|
15
|
+
</x-tooltip>
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Attribute
|
|
19
|
+
|
|
20
|
+
| Attribut | Typ | Beschreibung |
|
|
21
|
+
|----------|-----|--------------|
|
|
22
|
+
| `for` | String | ID des Anchor-Elements |
|
|
23
|
+
| `placement` | String | `top`, `right`, `bottom` oder `left` |
|
|
24
|
+
| `open` | Boolean | oeffnet den Tooltip kontrolliert |
|
|
25
|
+
| `delay` | Number | Oeffnungsverzoegerung in Millisekunden |
|
|
26
|
+
| `label` | String | zugaenglicher Name fuer den Tooltip |
|
|
27
|
+
|
|
28
|
+
## Events
|
|
29
|
+
|
|
30
|
+
| Event | Detail |
|
|
31
|
+
|-------|--------|
|
|
32
|
+
| `tooltip-opened` | `{ id, open, source, placement }` |
|
|
33
|
+
| `tooltip-closed` | `{ id, open, source, placement }` |
|
|
34
|
+
|
|
35
|
+
## API
|
|
36
|
+
|
|
37
|
+
- `show()`
|
|
38
|
+
- `hide()`
|
|
39
|
+
- `toggle()`
|
|
40
|
+
|
|
41
|
+
## State, RMT und Fabric
|
|
42
|
+
|
|
43
|
+
`<x-tooltip>` schreibt nach `xtooltip-open-<id>`. Der RMT Contract ist `xtend.rmt.component-contract.v1` und nutzt die Schedules `component.visible.mount`, `component.idle.hydrate` und `overlay.tooltip.position`. Der Kernel Boundary bleibt `no-rmt-kernel-import-of-xtend-types`.
|
|
44
|
+
|
|
45
|
+
## A11y und Performance
|
|
46
|
+
|
|
47
|
+
Die Komponente nutzt `role="tooltip"`, setzt `aria-describedby` am Anchor und dokumentiert `dismiss-on-escape` als Screenreader-Signal. Das Performance-Profil ist `xtend.performance.component-profile.v1` mit `budgetClass: 'overlay-small'`, `lane: 'visible'` und `hydrationPolicy: 'idle'`.
|
|
48
|
+
|
|
49
|
+
## Overlay Interaction UX Profil
|
|
50
|
+
|
|
51
|
+
Seit `WP-E11-11` deklariert `<x-tooltip>` das Runtime-Profil `xtend.component.overlay-interaction-ux-profile.v1` ueber `xtendOverlayInteractionUxProfile`.
|
|
52
|
+
|
|
53
|
+
| Feld | Wert |
|
|
54
|
+
|------|------|
|
|
55
|
+
| Family | `tooltip` |
|
|
56
|
+
| State Key | `xtooltip-open-<id>` |
|
|
57
|
+
| Schedule | `overlay.position.update` |
|
|
58
|
+
| Commands | `show`, `hide`, `toggle`, `snapshot` |
|
|
59
|
+
|
|
60
|
+
Das Profil haelt Tooltip-Overlays bewusst nicht modal: kein Focus Trap, kein Inert, kein Scroll Lock. RMT kann Positionierung und Dismissal schedulen, waehrend der Host weiterhin `aria-describedby`, Hover/Fokus und Escape verwaltet.
|
|
61
|
+
|
|
62
|
+
## ECH-WP-06 Overlay-Paritaet
|
|
63
|
+
|
|
64
|
+
`x-tooltip` expose `surface`, `backdrop`, `close` und `content` als Overlay-Parts, wobei `backdrop` und `close` bewusst nicht-interaktive Sentinels fuer Theme-/Part-Paritaet sind. Der Tooltip bleibt nicht-modal und informationsbezogen.
|
|
65
|
+
|
|
66
|
+
Surface, Text, Elevation, Radius, Typografie und Z-Index laufen ueber `--xtend-overlay-*`, `--tooltip-*` oder `--xtooltip-*` Tokens. Focus Trap, Inert und Scroll Lock sind fuer Tooltips nicht anwendbar.
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# xtype – XTend Komponente
|
|
2
|
+
|
|
3
|
+
> **Siehe auch:** [xwriter](./xwriter.md)
|
|
4
|
+
|
|
5
|
+
## Übersicht
|
|
6
|
+
|
|
7
|
+
`<x-type>` ist eine Komponente für animierte Texteffekte (z.B. Typing Animation). Sie eignet sich für Hero-Bereiche, Überschriften und interaktive UI-Elemente.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Features
|
|
12
|
+
- Animierte Texteffekte (Typing, Loop)
|
|
13
|
+
- Anpassbare Geschwindigkeit
|
|
14
|
+
- Theming via CSS Custom Properties
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Verwendung
|
|
19
|
+
|
|
20
|
+
```html
|
|
21
|
+
<x-type text="XTend rocks!" speed="80"></x-type>
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Attribute
|
|
27
|
+
| Attribut | Typ | Beschreibung |
|
|
28
|
+
|-------------|---------|-------------------------------------|
|
|
29
|
+
| `text` | String | Anzuzeigender Text |
|
|
30
|
+
| `speed` | Number | Geschwindigkeit in ms pro Zeichen |
|
|
31
|
+
| `loop` | Boolean | Endlosschleife |
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Events
|
|
36
|
+
| Event | Beschreibung |
|
|
37
|
+
|---------------|-------------------------------------|
|
|
38
|
+
| `done` | Wird nach Animation ausgelöst |
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## API
|
|
43
|
+
- **Text dynamisch setzen:** `element.setAttribute('text', 'Hallo')`
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Beispiel: Dynamisch per JS
|
|
48
|
+
|
|
49
|
+
```js
|
|
50
|
+
const type = document.createElement('x-type');
|
|
51
|
+
type.setAttribute('text', 'Hallo Welt!');
|
|
52
|
+
document.body.appendChild(type);
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Styling & Theming
|
|
58
|
+
|
|
59
|
+
```css
|
|
60
|
+
x-type {
|
|
61
|
+
--type-color: #007bff;
|
|
62
|
+
}
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Accessibility
|
|
68
|
+
- Semantisches HTML
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
*Letzte Aktualisierung: 16. Juli 2025*
|
|
73
|
+
|
|
74
|
+
## Layout Display Media UX Profil
|
|
75
|
+
|
|
76
|
+
`x-type` stellt ab `WP-E11-12` das Profil `xtend.component.layout-display-media-ux-profile.v1` bereit. Die Komponente nutzt eine Shadow-DOM-Shell fuer Text und Cursor, kann idle hydriert werden und schreibt ihren aktuellen Text nach `xtype-current`.
|
|
77
|
+
|
|
78
|
+
- Profil-Getter: `xtendLayoutDisplayMediaUxProfile`
|
|
79
|
+
- Schedule: `component.idle.hydrate`
|
|
80
|
+
- Events: `typing-started`, `typing-completed`, `text-erased`
|
|
81
|
+
- Snapshot: `snapshot()`
|
|
82
|
+
- CSS Parts: `root`, `text`, `cursor`
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
# xutils - XTend Utility-Modul
|
|
2
|
+
|
|
3
|
+
## Uebersicht
|
|
4
|
+
|
|
5
|
+
`x-utils` ist ein Manifest-geführtes Utility-Modul und keine eigene Custom-Element-Oberflaeche. Das Modul exportiert `XUtils` und stellt im Browser zusaetzlich `window.XUtils` bereit. Es sammelt kleine DOM-, Event-, A11y-, Format- und Low-Code-Helfer fuer XTend-Komponenten und Demos.
|
|
6
|
+
|
|
7
|
+
## Import
|
|
8
|
+
|
|
9
|
+
```js
|
|
10
|
+
import { XUtils } from './components/xutils.js';
|
|
11
|
+
|
|
12
|
+
const button = XUtils.create('button', {
|
|
13
|
+
textContent: 'Speichern'
|
|
14
|
+
});
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Im Browser ist nach dem Laden des Moduls verfuegbar:
|
|
18
|
+
|
|
19
|
+
```js
|
|
20
|
+
window.XUtils.find('[data-action="save"]');
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## DOM- und Event-API
|
|
24
|
+
|
|
25
|
+
| Methode | Beschreibung |
|
|
26
|
+
|---------|--------------|
|
|
27
|
+
| `find(selector, root?)` | gibt das erste passende Element zurueck |
|
|
28
|
+
| `findAll(selector, root?)` | gibt alle passenden Elemente als Array zurueck |
|
|
29
|
+
| `create(tag, props?)` | erzeugt ein Element und weist Properties zu |
|
|
30
|
+
| `on(el, type, handler, opts?)` | registriert einen Listener und gibt eine Cleanup-Funktion zurueck |
|
|
31
|
+
| `delegate(root, selector, type, handler)` | delegiert Events innerhalb eines Containers |
|
|
32
|
+
|
|
33
|
+
## A11y- und UI-Helfer
|
|
34
|
+
|
|
35
|
+
| Methode | Beschreibung |
|
|
36
|
+
|---------|--------------|
|
|
37
|
+
| `setAria(el, attrs)` | setzt `aria-*` Attribute aus einem Objekt |
|
|
38
|
+
| `focusTrap(container)` | fokussiert das erste fokussierbare Element im Container |
|
|
39
|
+
| `fadeIn(el, duration?)` | einfache Opacity-Animation |
|
|
40
|
+
| `fadeOut(el, duration?)` | einfache Opacity-Animation |
|
|
41
|
+
| `resolveUiEffects(input?)` | normalisiert opt-in UI-Effekte aus Body-Attribut, Loader-Option oder RMT |
|
|
42
|
+
| `prepareUiEffects(input?)` | bereitet einen opt-in UI-Effekt vor, z.B. Body-Fade |
|
|
43
|
+
| `releaseUiEffects(input?)` | gibt einen vorbereiteten UI-Effekt wieder frei |
|
|
44
|
+
| `isMobile()` | prueft den lokalen Mobile-Breakpoint |
|
|
45
|
+
|
|
46
|
+
## Format- und Datenhelfer
|
|
47
|
+
|
|
48
|
+
| Methode | Beschreibung |
|
|
49
|
+
|---------|--------------|
|
|
50
|
+
| `hexToRgb(hex)` | wandelt Hex-Farben in RGB-Werte |
|
|
51
|
+
| `contrastColor(hex)` | liefert Schwarz oder Weiss als Kontrastfarbe |
|
|
52
|
+
| `formatDate(date, locale?)` | formatiert ein Datum |
|
|
53
|
+
| `formatNumber(num, locale?)` | formatiert eine Zahl |
|
|
54
|
+
| `uniqueId(prefix?)` | erzeugt eine einfache Runtime-ID |
|
|
55
|
+
| `deepClone(obj)` | erzeugt eine JSON-basierte Kopie |
|
|
56
|
+
|
|
57
|
+
## XTemplate Recipes
|
|
58
|
+
|
|
59
|
+
`XUtils.XTemplate` enthaelt kleine Low-Code-Rezepte fuer einfache DOM-Fragmente:
|
|
60
|
+
|
|
61
|
+
```js
|
|
62
|
+
const card = XUtils.XTemplate.card({
|
|
63
|
+
title: 'Status',
|
|
64
|
+
content: 'Alle Systeme bereit'
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
const action = XUtils.XTemplate.button({
|
|
68
|
+
label: 'Aktualisieren',
|
|
69
|
+
onClick: () => window.location.reload()
|
|
70
|
+
});
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Aktuelle Rezepte:
|
|
74
|
+
|
|
75
|
+
| Recipe | Beschreibung |
|
|
76
|
+
|--------|--------------|
|
|
77
|
+
| `card(opts)` | erzeugt eine einfache Card-Struktur |
|
|
78
|
+
| `button(opts)` | erzeugt einen Button |
|
|
79
|
+
| `modal(opts)` | erzeugt eine einfache Modal-Struktur |
|
|
80
|
+
|
|
81
|
+
## Contract
|
|
82
|
+
|
|
83
|
+
- `x-utils` ist als Manifest-Eintrag vorhanden, bleibt aber ein Utility-Modul.
|
|
84
|
+
- Es registriert kein `customElements.define()`.
|
|
85
|
+
- Die Datei `docs/components/xutils.md` ist der kanonische Docs-Slug zum Source-Basename `xutils.js`.
|
|
86
|
+
- Runtime-Tag und Manifest-Key bleiben fuer die Catalog Matrix `x-utils`.
|
|
87
|
+
|
|
88
|
+
## Utility Boundary Contract
|
|
89
|
+
|
|
90
|
+
Seit `WP-E12-09` ist `x-utils` als nicht-visuelle Utility-Boundary gatebar:
|
|
91
|
+
|
|
92
|
+
- Utility Schema: `xtend.utility.module-contract.v1`
|
|
93
|
+
- Import Policy Schema: `xtend.utility.import-policy.v1`
|
|
94
|
+
- Import Policy Result Schema: `xtend.utility.import-policy-result.v1`
|
|
95
|
+
- Boundary Probe Schema: `xtend.utility.boundary-probe.v1`
|
|
96
|
+
- Kernel Boundary: `no-rmt-kernel-import-of-xtend-types`
|
|
97
|
+
|
|
98
|
+
Die Runtime stellt dafuer drei explizite Contract-APIs bereit:
|
|
99
|
+
|
|
100
|
+
| Methode | Beschreibung |
|
|
101
|
+
|---------|--------------|
|
|
102
|
+
| `getUtilityContract()` | liefert Kategorien, Exports, Globals und Methoden der Utility-Oberflaeche |
|
|
103
|
+
| `snapshotUtilityContract()` | liefert einen stabilen Boundary-Snapshot fuer Fixtures und Catalog-Gates |
|
|
104
|
+
| `assertLocalImport(specifier)` | prueft, ob ein Import-Specifier lokal und policy-konform ist |
|
|
105
|
+
|
|
106
|
+
```js
|
|
107
|
+
const local = XUtils.assertLocalImport('/components/xbutton.js');
|
|
108
|
+
const blocked = XUtils.assertLocalImport('https://cdn.ccs-networks.de/xtend/components/xstate.js');
|
|
109
|
+
|
|
110
|
+
console.log(local.allowed); // true
|
|
111
|
+
console.log(blocked.allowed); // false
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
`assertLocalImport()` dispatcht im Browser zusaetzlich `xutils:import-policy-check`. Das Event ist fuer Test-, Fabric- und Security-Harnesses gedacht; der RMT Kernel importiert `x-utils` weiterhin nicht.
|
|
115
|
+
|
|
116
|
+
## UI Effects Boundary
|
|
117
|
+
|
|
118
|
+
Seit `xtend.utility.ui-effects.v1` kapselt `x-utils` opt-in Effekte, die die App-Shell beeinflussen koennen. Der globale Loader versteckt den Body nicht mehr standardmaessig. Ein Fade-In muss bewusst aktiviert werden:
|
|
119
|
+
|
|
120
|
+
```html
|
|
121
|
+
<body xt-ui-effects="fade-in">
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
RMT-Hosts koennen denselben Effekt als nicht-visuellen Intent beschreiben:
|
|
125
|
+
|
|
126
|
+
```json
|
|
127
|
+
{
|
|
128
|
+
"id": "app.ui-effects",
|
|
129
|
+
"kind": "ui_effects",
|
|
130
|
+
"tag": "ui-effects",
|
|
131
|
+
"props": {
|
|
132
|
+
"effect": "fade-in"
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Die Host-Seite bleibt Ausfuehrungsort. RMT beschreibt nur den Intent; `XUtils.prepareUiEffects()` und `XUtils.releaseUiEffects()` setzen die DOM-Attribute `data-xt-ui-effects`, `data-xt-ui-effects-state` und `data-xt-ui-effects-ready`. Fuer RMT-lose Umgebungen reicht das Body-Attribut. Fuer Shell-first Apps, die keinen Effekt wollen, ist kein Attribut noetig oder explizit `xt-ui-effects="none"` moeglich.
|
|
138
|
+
|
|
139
|
+
## Hinweise
|
|
140
|
+
|
|
141
|
+
- Neue Komponenten sollten fuer produktive UI-Vertraege bevorzugt eigene Component-APIs und XTend-Fabric-Gates nutzen.
|
|
142
|
+
- `x-utils` bleibt ein kleiner Hilfsmodul-Pfad fuer Bestand, Demos und einfache DOM-Arbeit.
|
|
143
|
+
- Suite, Fixture und Utility-Typisierung sind seit `WP-E12-09` vorhanden.
|
|
144
|
+
- Seit `WP-E13-05` ist `x-utils` als `closed-as-utility-boundary` bewertet. Ein eigenes visuelles Performance-Profil ist fuer diese Utility-Boundary keine offene RC1-Aufgabe.
|