@ccslabs/xtend 0.1.0-rc.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/README.md +4 -0
- package/catalog/component-catalog-coverage.js +2 -0
- package/catalog/epic13-package-export-lock.js +11 -1
- package/catalog/epic13-rmt-production-readiness.js +0 -1
- package/catalog/epic18-rmt-action-effect-runtime.d.ts +36 -0
- package/catalog/epic18-rmt-action-effect-runtime.js +249 -0
- package/catalog/epic18-rmt-app-platform-authoring.d.ts +39 -0
- package/catalog/epic18-rmt-app-platform-authoring.js +319 -0
- package/catalog/epic18-rmt-app-platform-fixture.d.ts +33 -0
- package/catalog/epic18-rmt-app-platform-fixture.js +221 -0
- package/catalog/epic18-rmt-app-platform-release-handoff.d.ts +30 -0
- package/catalog/epic18-rmt-app-platform-release-handoff.js +231 -0
- package/catalog/epic18-rmt-app-platform-tooling.d.ts +38 -0
- package/catalog/epic18-rmt-app-platform-tooling.js +242 -0
- package/catalog/epic18-rmt-component-template-primitives.d.ts +33 -0
- package/catalog/epic18-rmt-component-template-primitives.js +240 -0
- package/catalog/epic18-rmt-dom-descriptor-renderer.d.ts +35 -0
- package/catalog/epic18-rmt-dom-descriptor-renderer.js +232 -0
- package/catalog/epic18-rmt-event-routing-runtime.d.ts +35 -0
- package/catalog/epic18-rmt-event-routing-runtime.js +234 -0
- package/catalog/epic18-rmt-state-selector-runtime.d.ts +34 -0
- package/catalog/epic18-rmt-state-selector-runtime.js +216 -0
- package/catalog/epic18-rmt-surface-resource-graph-runtime.d.ts +36 -0
- package/catalog/epic18-rmt-surface-resource-graph-runtime.js +256 -0
- package/catalog/surface-manager-controller.js +5 -1
- package/catalog/surface-manager-materialization.js +7 -1
- package/catalog/surface-manager-overlay-bridge.js +41 -6
- package/catalog/surface-manager-workbench-fixture.js +1 -1
- package/catalog/surface-type-capability-matrix.d.ts +61 -0
- package/catalog/surface-type-capability-matrix.js +183 -0
- package/catalog/type-exports-rmt.js +37 -1
- package/catalog/type-exports.js +3 -3
- package/components/icon-packs/lucide.js +4 -0
- package/components/manifest.json +2 -0
- package/components/prism-rmt.d.ts +34 -0
- package/components/prism-rmt.js +130 -0
- package/components/xcards.js +15 -0
- package/components/xcode.d.ts +36 -1
- package/components/xcode.js +215 -20
- package/components/xfooter.js +17 -0
- package/components/xheader.js +14 -0
- package/components/xhero.js +16 -1
- package/components/xlink.js +97 -14
- package/components/xmasonry.js +15 -0
- package/components/xplayer.d.ts +44 -2
- package/components/xplayer.js +242 -15
- package/components/xrouter.js +27 -2
- package/components/xsection.js +15 -0
- package/components/xsidepanel.js +10 -2
- package/components/xsurfacemanager-controller.d.ts +2 -1
- package/components/xsurfacemanager-controller.js +27 -3
- package/components/xsurfacemanager.d.ts +2 -0
- package/components/xsurfacemanager.js +20 -8
- package/components/xsurfaceoverlay-bridge.d.ts +20 -5
- package/components/xsurfaceoverlay-bridge.js +114 -18
- package/components/xsurfaceportal.d.ts +29 -0
- package/components/xsurfaceportal.js +122 -0
- package/components/xsurfaceregion.d.ts +50 -0
- package/components/xsurfaceregion.js +285 -0
- package/components/xsurfacewindow.js +2 -1
- package/components/xtooltip.js +89 -23
- package/docs/README.md +222 -298
- package/docs/changelog.md +107 -0
- package/docs/component-catalog-coverage.md +9 -9
- package/docs/component-platform.md +19 -1
- package/docs/component-ux-app-authoring.md +56 -63
- package/docs/components/xcode.md +83 -53
- package/docs/components/xsurfaceportal.md +32 -0
- package/docs/components/xsurfaceregion.md +37 -0
- package/docs/components.md +105 -69
- package/docs/de/README.md +264 -0
- package/docs/de/XTend-ADR.md +221 -0
- package/docs/de/a11y-keyboard-smokes.md +62 -0
- package/docs/de/about.md +18 -0
- package/docs/de/api.md +157 -0
- package/docs/de/best-practices.md +76 -0
- package/docs/de/changelog.md +107 -0
- package/docs/de/component-catalog-coverage.md +58 -0
- package/docs/de/component-lab.md +103 -0
- package/docs/de/component-long-tail-migration.md +41 -0
- package/docs/de/component-platform.md +177 -0
- package/docs/de/component-ux-app-authoring.md +123 -0
- package/docs/de/component-ux-authoring.md +96 -0
- package/docs/de/component-ux-gates.md +45 -0
- package/docs/de/components/x-rmt-lifecycle-demo-build.md +60 -0
- package/docs/de/components/xalert.md +81 -0
- package/docs/de/components/xbutton.md +103 -0
- package/docs/de/components/xcalendar.md +82 -0
- package/docs/de/components/xcards.md +128 -0
- package/docs/de/components/xcheckbox.md +102 -0
- package/docs/de/components/xcode.md +156 -0
- package/docs/de/components/xdialog.md +92 -0
- package/docs/de/components/xdrawer.md +84 -0
- package/docs/de/components/xfooter.md +126 -0
- package/docs/de/components/xform.md +128 -0
- package/docs/de/components/xheader.md +308 -0
- package/docs/de/components/xhero.md +142 -0
- package/docs/de/components/xicon.md +125 -0
- package/docs/de/components/xinput.md +129 -0
- package/docs/de/components/xlightbox.md +98 -0
- package/docs/de/components/xlink.md +109 -0
- package/docs/de/components/xmasonry.md +124 -0
- package/docs/de/components/xmenu.md +158 -0
- package/docs/de/components/xmodal.md +82 -0
- package/docs/de/components/xplayer.md +104 -0
- package/docs/de/components/xpopover.md +67 -0
- package/docs/de/components/xprogress.md +56 -0
- package/docs/de/components/xradio.md +103 -0
- package/docs/de/components/xrouter.md +260 -0
- package/docs/de/components/xsection.md +125 -0
- package/docs/de/components/xselect.md +105 -0
- package/docs/de/components/xsidepanel.md +30 -0
- package/docs/de/components/xspinner.md +102 -0
- package/docs/de/components/xstate.md +148 -0
- package/docs/de/components/xstatus.md +55 -0
- package/docs/de/components/xsummary.md +78 -0
- package/docs/de/components/xsurfacemanager.md +27 -0
- package/docs/de/components/xsurfacewindow.md +21 -0
- package/docs/de/components/xtabs.md +160 -0
- package/docs/de/components/xtextarea.md +98 -0
- package/docs/de/components/xtheme.md +167 -0
- package/docs/de/components/xtoast.md +62 -0
- package/docs/de/components/xtooltip.md +66 -0
- package/docs/de/components/xtype.md +82 -0
- package/docs/de/components/xutils.md +144 -0
- package/docs/de/components/xwriter.md +94 -0
- package/docs/de/components.md +153 -0
- package/docs/de/conditional-network-evidence-ci.md +38 -0
- package/docs/de/conditional-network-evidence.md +50 -0
- package/docs/de/core-migration-guide.md +110 -0
- package/docs/de/design-tokens.md +116 -0
- package/docs/de/docs-rmt-production-hardening.md +31 -0
- package/docs/de/enterprise-adoption.md +413 -0
- package/docs/de/enterprise-component-flex-release-handoff.md +129 -0
- package/docs/de/epic10-platform-gates.md +62 -0
- package/docs/de/epic10-release-handoff.md +81 -0
- package/docs/de/epic11-enterprise-ux-handoff.md +70 -0
- package/docs/de/epic12-rc0-handoff.md +61 -0
- package/docs/de/epic18-media-manager-vendor-upstream.md +318 -0
- package/docs/de/epic18-rmt-app-platform-release-handoff.md +67 -0
- package/docs/de/epic18-vendor-bugfixes.md +34 -0
- package/docs/de/existing-component-metadata.md +67 -0
- package/docs/de/hydration-performance-closure.md +34 -0
- package/docs/de/hydration-policies.md +71 -0
- package/docs/de/known-residual-triage.md +22 -0
- package/docs/de/manifest-import-policy.md +79 -0
- package/docs/de/manifest.md +112 -0
- package/docs/de/motion-contrast.md +67 -0
- package/docs/de/package-export-lock.md +44 -0
- package/docs/de/performance-measurements.md +106 -0
- package/docs/de/performance-regression.md +89 -0
- package/docs/de/performance.md +94 -0
- package/docs/de/previews/README.md +17 -0
- package/docs/de/prod-browser-csp-smokes.md +40 -0
- package/docs/de/public-component-types.md +79 -0
- package/docs/de/quick-start-guide.md +220 -0
- package/docs/de/rc0-adoption-guide.md +102 -0
- package/docs/de/rc0-gate-matrix.md +58 -0
- package/docs/de/rc1-gate-matrix-ci-handoff.md +56 -0
- package/docs/de/rc1-migration-notes.md +69 -0
- package/docs/de/rc1-readiness.md +46 -0
- package/docs/de/release-owner-acceptance.md +56 -0
- package/docs/de/release-report-pack-dry-run-evidence.md +39 -0
- package/docs/de/rmt-action-effect-runtime.md +81 -0
- package/docs/de/rmt-app-platform-authoring.md +54 -0
- package/docs/de/rmt-app-platform-fixture.md +46 -0
- package/docs/de/rmt-app-platform-migration-guide.md +88 -0
- package/docs/de/rmt-app-platform-tooling.md +79 -0
- package/docs/de/rmt-component-template-primitives.md +57 -0
- package/docs/de/rmt-dom-descriptor-renderer.md +64 -0
- package/docs/de/rmt-dsl-authoring-polish.md +145 -0
- package/docs/de/rmt-event-routing-runtime.md +81 -0
- package/docs/de/rmt-first-demo-app.md +77 -0
- package/docs/de/rmt-first-xtend-apps.md +129 -0
- package/docs/de/rmt-kernel-panic-recovery-incident-handoff.md +61 -0
- package/docs/de/rmt-kernel-security-hardening-migration.md +50 -0
- package/docs/de/rmt-kernel-trusted-output-authoring.md +69 -0
- package/docs/de/rmt-language-server.md +234 -0
- package/docs/de/rmt-lifecycle-demo.md +24 -0
- package/docs/de/rmt-linter.md +140 -0
- package/docs/de/rmt-node-ssr-adapter.md +100 -0
- package/docs/de/rmt-php-ssr-adapter.md +120 -0
- package/docs/de/rmt-production-readiness.md +63 -0
- package/docs/de/rmt-state-selector-runtime.md +47 -0
- package/docs/de/rmt-surface-resource-graph-runtime.md +92 -0
- package/docs/de/rmt-tooling-release-gates.md +77 -0
- package/docs/de/rmt-vnext-authoring.md +170 -0
- package/docs/de/rmt-vnext-component-primitives.md +188 -0
- package/docs/de/rmt-vnext-cross-surface-events.md +68 -0
- package/docs/de/rmt-vnext-enterprise-mfe-handoff.md +70 -0
- package/docs/de/rmt-vnext-fabric-bridge-evidence.md +81 -0
- package/docs/de/rmt-vnext-migration-notes.md +62 -0
- package/docs/de/rmt-vnext-primitive-authoring-tooling.md +247 -0
- package/docs/de/rmt-vnext-primitive-grammar-design.md +289 -0
- package/docs/de/rmt-vnext-primitive-lowering.md +108 -0
- package/docs/de/rmt-vnext-primitive-migration.md +119 -0
- package/docs/de/rmt-vnext-primitive-parser-ast.md +76 -0
- package/docs/de/rmt-vnext-primitive-semantic-graph.md +118 -0
- package/docs/de/rmt-vnext-primitives-compiler-backlog.md +739 -0
- package/docs/de/rmt-vnext-release-handoff.md +83 -0
- package/docs/de/rmt-vnext-remote-surfaces.md +90 -0
- package/docs/de/rmt-vnext-source-to-sea-gate.md +612 -0
- package/docs/de/rmt-vnext-surface-registry-enterprise.md +76 -0
- package/docs/de/screenreader-signals.md +56 -0
- package/docs/de/supply-chain-gates.md +100 -0
- package/docs/de/surface-manager-authoring-guide.md +94 -0
- package/docs/de/surface-manager-browser-lab.md +45 -0
- package/docs/de/surface-manager-component-lab.md +43 -0
- package/docs/de/surface-manager-controller.md +66 -0
- package/docs/de/surface-manager-layout-engines.md +32 -0
- package/docs/de/surface-manager-lazy-hydration.md +63 -0
- package/docs/de/surface-manager-migration-guide.md +122 -0
- package/docs/de/surface-manager-native-rmt-surfaces.md +38 -0
- package/docs/de/surface-manager-overlay-bridge.md +53 -0
- package/docs/de/surface-manager-persistence.md +30 -0
- package/docs/de/surface-manager-quality-gates.md +51 -0
- package/docs/de/surface-manager-release-handoff.md +68 -0
- package/docs/de/surface-manager-remote-policy.md +54 -0
- package/docs/de/surface-manager-rmt-authoring.md +102 -0
- package/docs/de/surface-manager-route-lifecycle.md +59 -0
- package/docs/de/surface-manager-runtime-release-handoff.md +69 -0
- package/docs/de/surface-manager-side-panel-runtime.md +36 -0
- package/docs/de/surface-manager-stack-policy.md +39 -0
- package/docs/de/surface-manager-window-runtime.md +47 -0
- package/docs/de/surface-manager-workbench-fixture.md +43 -0
- package/docs/de/third-party-design-authoring.md +406 -0
- package/docs/de/trusted-dom-boundary-browser-proof.md +32 -0
- package/docs/de/trusted-dom-sanitizing.md +110 -0
- package/docs/de/type-exports.md +61 -0
- package/docs/de/typescript-components.md +63 -0
- package/docs/de/visual-browser-regression.md +83 -0
- package/docs/de/visual-owner-artifacts.md +46 -0
- package/docs/de/visual-snapshot-automation.md +87 -0
- package/docs/de/xtend-api-types.md +55 -0
- package/docs/de/xtend-builder-types.md +55 -0
- package/docs/de/xtend-catalog-types.md +44 -0
- package/docs/de/xtend-fabric-rmt-lane-mapping.md +143 -0
- package/docs/de/xtend-fabric.md +474 -0
- package/docs/de/xtend-loader-types.md +58 -0
- package/docs/de/xtend-loader.md +265 -0
- package/docs/de/xtend-policy-types.md +38 -0
- package/docs/de/xtend-rmt-types.md +40 -0
- package/docs/de/xtend-vendor-types.md +36 -0
- package/docs/de/xtendrmt-app-dsl.md +334 -0
- package/docs/de/xtendrmt-migration-guide.md +266 -0
- package/docs/de/xtendrmt-native-authoring.md +333 -0
- package/docs/de/xtendrmt-overview.md +109 -0
- package/docs/de/xtendrmt-parsedown-scheduling.md +301 -0
- package/docs/de/xtendrmt-runtime-bridge.md +155 -0
- package/docs/en/README.md +163 -0
- package/docs/en/XTend-ADR.md +221 -0
- package/docs/en/a11y-keyboard-smokes.md +68 -0
- package/docs/en/about.md +25 -0
- package/docs/en/api.md +171 -0
- package/docs/en/best-practices.md +125 -0
- package/docs/en/changelog.md +104 -0
- package/docs/en/component-catalog-coverage.md +104 -0
- package/docs/en/component-lab.md +103 -0
- package/docs/en/component-long-tail-migration.md +41 -0
- package/docs/en/component-platform.md +243 -0
- package/docs/en/component-ux-app-authoring.md +118 -0
- package/docs/en/component-ux-authoring.md +96 -0
- package/docs/en/component-ux-gates.md +45 -0
- package/docs/en/components/x-rmt-lifecycle-demo-build.md +75 -0
- package/docs/en/components/xalert.md +94 -0
- package/docs/en/components/xbutton.md +118 -0
- package/docs/en/components/xcalendar.md +95 -0
- package/docs/en/components/xcards.md +139 -0
- package/docs/en/components/xcheckbox.md +118 -0
- package/docs/en/components/xcode.md +153 -0
- package/docs/en/components/xdialog.md +108 -0
- package/docs/en/components/xdrawer.md +110 -0
- package/docs/en/components/xfooter.md +138 -0
- package/docs/en/components/xform.md +147 -0
- package/docs/en/components/xheader.md +308 -0
- package/docs/en/components/xhero.md +157 -0
- package/docs/en/components/xicon.md +149 -0
- package/docs/en/components/xinput.md +147 -0
- package/docs/en/components/xlightbox.md +113 -0
- package/docs/en/components/xlink.md +130 -0
- package/docs/en/components/xmasonry.md +136 -0
- package/docs/en/components/xmenu.md +185 -0
- package/docs/en/components/xmodal.md +102 -0
- package/docs/en/components/xplayer.md +114 -0
- package/docs/en/components/xpopover.md +87 -0
- package/docs/en/components/xprogress.md +73 -0
- package/docs/en/components/xradio.md +119 -0
- package/docs/en/components/xrouter.md +260 -0
- package/docs/en/components/xsection.md +136 -0
- package/docs/en/components/xselect.md +122 -0
- package/docs/en/components/xsidepanel.md +48 -0
- package/docs/en/components/xspinner.md +118 -0
- package/docs/en/components/xstate.md +163 -0
- package/docs/en/components/xstatus.md +71 -0
- package/docs/en/components/xsummary.md +90 -0
- package/docs/en/components/xsurfacemanager.md +42 -0
- package/docs/en/components/xsurfacewindow.md +31 -0
- package/docs/en/components/xtabs.md +187 -0
- package/docs/en/components/xtextarea.md +115 -0
- package/docs/en/components/xtheme.md +203 -0
- package/docs/en/components/xtoast.md +78 -0
- package/docs/en/components/xtooltip.md +85 -0
- package/docs/en/components/xtype.md +91 -0
- package/docs/en/components/xutils.md +161 -0
- package/docs/en/components/xwriter.md +106 -0
- package/docs/en/components.md +151 -0
- package/docs/en/conditional-network-evidence-ci.md +38 -0
- package/docs/en/conditional-network-evidence.md +50 -0
- package/docs/en/core-migration-guide.md +110 -0
- package/docs/en/design-tokens.md +137 -0
- package/docs/en/docs-rmt-production-hardening.md +31 -0
- package/docs/en/enterprise-adoption.md +413 -0
- package/docs/en/enterprise-component-flex-release-handoff.md +129 -0
- package/docs/en/epic10-platform-gates.md +62 -0
- package/docs/en/epic10-release-handoff.md +81 -0
- package/docs/en/epic11-enterprise-ux-handoff.md +70 -0
- package/docs/en/epic12-rc0-handoff.md +61 -0
- package/docs/en/epic18-media-manager-vendor-upstream.md +232 -0
- package/docs/en/epic18-rmt-app-platform-release-handoff.md +60 -0
- package/docs/en/epic18-vendor-bugfixes.md +29 -0
- package/docs/en/existing-component-metadata.md +67 -0
- package/docs/en/hydration-performance-closure.md +34 -0
- package/docs/en/hydration-policies.md +75 -0
- package/docs/en/known-residual-triage.md +22 -0
- package/docs/en/manifest-import-policy.md +81 -0
- package/docs/en/manifest.md +135 -0
- package/docs/en/motion-contrast.md +67 -0
- package/docs/en/package-export-lock.md +44 -0
- package/docs/en/performance-measurements.md +106 -0
- package/docs/en/performance-regression.md +89 -0
- package/docs/en/performance.md +132 -0
- package/docs/en/previews/README.md +17 -0
- package/docs/en/prod-browser-csp-smokes.md +40 -0
- package/docs/en/public-component-types.md +79 -0
- package/docs/en/quick-start-guide.md +189 -0
- package/docs/en/rc0-adoption-guide.md +102 -0
- package/docs/en/rc0-gate-matrix.md +58 -0
- package/docs/en/rc1-gate-matrix-ci-handoff.md +56 -0
- package/docs/en/rc1-migration-notes.md +69 -0
- package/docs/en/rc1-readiness.md +46 -0
- package/docs/en/release-owner-acceptance.md +56 -0
- package/docs/en/release-report-pack-dry-run-evidence.md +39 -0
- package/docs/en/rmt-action-effect-runtime.md +101 -0
- package/docs/en/rmt-app-platform-authoring.md +47 -0
- package/docs/en/rmt-app-platform-fixture.md +35 -0
- package/docs/en/rmt-app-platform-migration-guide.md +75 -0
- package/docs/en/rmt-app-platform-tooling.md +58 -0
- package/docs/en/rmt-component-template-primitives.md +49 -0
- package/docs/en/rmt-dom-descriptor-renderer.md +54 -0
- package/docs/en/rmt-dsl-authoring-polish.md +143 -0
- package/docs/en/rmt-event-routing-runtime.md +98 -0
- package/docs/en/rmt-first-demo-app.md +87 -0
- package/docs/en/rmt-first-xtend-apps.md +127 -0
- package/docs/en/rmt-kernel-panic-recovery-incident-handoff.md +60 -0
- package/docs/en/rmt-kernel-security-hardening-migration.md +49 -0
- package/docs/en/rmt-kernel-trusted-output-authoring.md +68 -0
- package/docs/en/rmt-language-server.md +243 -0
- package/docs/en/rmt-lifecycle-demo.md +23 -0
- package/docs/en/rmt-linter.md +146 -0
- package/docs/en/rmt-node-ssr-adapter.md +99 -0
- package/docs/en/rmt-php-ssr-adapter.md +118 -0
- package/docs/en/rmt-production-readiness.md +63 -0
- package/docs/en/rmt-state-selector-runtime.md +34 -0
- package/docs/en/rmt-surface-resource-graph-runtime.md +68 -0
- package/docs/en/rmt-tooling-release-gates.md +77 -0
- package/docs/en/rmt-vnext-authoring.md +102 -0
- package/docs/en/rmt-vnext-component-primitives.md +185 -0
- package/docs/en/rmt-vnext-cross-surface-events.md +59 -0
- package/docs/en/rmt-vnext-enterprise-mfe-handoff.md +62 -0
- package/docs/en/rmt-vnext-fabric-bridge-evidence.md +64 -0
- package/docs/en/rmt-vnext-migration-notes.md +62 -0
- package/docs/en/rmt-vnext-primitive-authoring-tooling.md +174 -0
- package/docs/en/rmt-vnext-primitive-grammar-design.md +268 -0
- package/docs/en/rmt-vnext-primitive-lowering.md +91 -0
- package/docs/en/rmt-vnext-primitive-migration.md +93 -0
- package/docs/en/rmt-vnext-primitive-parser-ast.md +59 -0
- package/docs/en/rmt-vnext-primitive-semantic-graph.md +103 -0
- package/docs/en/rmt-vnext-primitives-compiler-backlog.md +327 -0
- package/docs/en/rmt-vnext-release-handoff.md +83 -0
- package/docs/en/rmt-vnext-remote-surfaces.md +81 -0
- package/docs/en/rmt-vnext-source-to-sea-gate.md +482 -0
- package/docs/en/rmt-vnext-surface-registry-enterprise.md +68 -0
- package/docs/en/screenreader-signals.md +56 -0
- package/docs/en/supply-chain-gates.md +106 -0
- package/docs/en/surface-manager-authoring-guide.md +94 -0
- package/docs/en/surface-manager-browser-lab.md +45 -0
- package/docs/en/surface-manager-component-lab.md +43 -0
- package/docs/en/surface-manager-controller.md +66 -0
- package/docs/en/surface-manager-layout-engines.md +32 -0
- package/docs/en/surface-manager-lazy-hydration.md +63 -0
- package/docs/en/surface-manager-migration-guide.md +113 -0
- package/docs/en/surface-manager-native-rmt-surfaces.md +38 -0
- package/docs/en/surface-manager-overlay-bridge.md +53 -0
- package/docs/en/surface-manager-persistence.md +30 -0
- package/docs/en/surface-manager-quality-gates.md +51 -0
- package/docs/en/surface-manager-release-handoff.md +68 -0
- package/docs/en/surface-manager-remote-policy.md +54 -0
- package/docs/en/surface-manager-rmt-authoring.md +89 -0
- package/docs/en/surface-manager-route-lifecycle.md +59 -0
- package/docs/en/surface-manager-runtime-release-handoff.md +69 -0
- package/docs/en/surface-manager-side-panel-runtime.md +36 -0
- package/docs/en/surface-manager-stack-policy.md +39 -0
- package/docs/en/surface-manager-window-runtime.md +47 -0
- package/docs/en/surface-manager-workbench-fixture.md +43 -0
- package/docs/en/third-party-design-authoring.md +406 -0
- package/docs/en/trusted-dom-boundary-browser-proof.md +32 -0
- package/docs/en/trusted-dom-sanitizing.md +124 -0
- package/docs/en/type-exports.md +61 -0
- package/docs/en/typescript-components.md +63 -0
- package/docs/en/visual-browser-regression.md +83 -0
- package/docs/en/visual-owner-artifacts.md +46 -0
- package/docs/en/visual-snapshot-automation.md +87 -0
- package/docs/en/xtend-api-types.md +55 -0
- package/docs/en/xtend-builder-types.md +55 -0
- package/docs/en/xtend-catalog-types.md +44 -0
- package/docs/en/xtend-fabric-rmt-lane-mapping.md +143 -0
- package/docs/en/xtend-fabric.md +474 -0
- package/docs/en/xtend-loader-types.md +58 -0
- package/docs/en/xtend-loader.md +265 -0
- package/docs/en/xtend-policy-types.md +38 -0
- package/docs/en/xtend-rmt-types.md +40 -0
- package/docs/en/xtend-vendor-types.md +36 -0
- package/docs/en/xtendrmt-app-dsl.md +331 -0
- package/docs/en/xtendrmt-migration-guide.md +256 -0
- package/docs/en/xtendrmt-native-authoring.md +336 -0
- package/docs/en/xtendrmt-overview.md +63 -0
- package/docs/en/xtendrmt-parsedown-scheduling.md +301 -0
- package/docs/en/xtendrmt-runtime-bridge.md +155 -0
- package/docs/enterprise-adoption.md +4 -2
- package/docs/epic18-media-manager-vendor-upstream.md +318 -0
- package/docs/epic18-rmt-app-platform-release-handoff.md +67 -0
- package/docs/epic18-vendor-bugfixes.md +34 -0
- package/docs/index.php +1056 -109
- package/docs/manifest.md +8 -2
- package/docs/menu.json +986 -133
- package/docs/package-export-lock.md +2 -2
- package/docs/public-component-types.md +2 -2
- package/docs/quick-start-guide.md +126 -58
- package/docs/rmt-action-effect-runtime.md +101 -0
- package/docs/rmt-app-platform-authoring.md +54 -0
- package/docs/rmt-app-platform-fixture.md +46 -0
- package/docs/rmt-app-platform-migration-guide.md +88 -0
- package/docs/rmt-app-platform-tooling.md +79 -0
- package/docs/rmt-component-template-primitives.md +57 -0
- package/docs/rmt-dom-descriptor-renderer.md +64 -0
- package/docs/rmt-dsl-authoring-polish.md +67 -44
- package/docs/rmt-event-routing-runtime.md +98 -0
- package/docs/rmt-first-demo-app.md +2 -2
- package/docs/rmt-first-xtend-apps.md +70 -46
- package/docs/rmt-language-server.md +61 -4
- package/docs/rmt-lifecycle-demo.md +1 -2
- package/docs/rmt-node-ssr-adapter.md +144 -0
- package/docs/rmt-php-ssr-adapter.md +158 -0
- package/docs/rmt-state-selector-runtime.md +47 -0
- package/docs/rmt-surface-resource-graph-runtime.md +92 -0
- package/docs/rmt-vnext-authoring.md +128 -18
- package/docs/rmt-vnext-component-primitives.md +188 -0
- package/docs/rmt-vnext-fabric-bridge-evidence.md +81 -0
- package/docs/rmt-vnext-primitive-authoring-tooling.md +247 -0
- package/docs/rmt-vnext-primitive-grammar-design.md +289 -0
- package/docs/rmt-vnext-primitive-lowering.md +108 -0
- package/docs/rmt-vnext-primitive-migration.md +119 -0
- package/docs/rmt-vnext-primitive-parser-ast.md +76 -0
- package/docs/rmt-vnext-primitive-semantic-graph.md +118 -0
- package/docs/rmt-vnext-primitives-compiler-backlog.md +742 -0
- package/docs/rmt-vnext-release-handoff.md +14 -0
- package/docs/rmt-vnext-source-to-sea-gate.md +629 -0
- package/docs/surface-manager-migration-guide.md +34 -6
- package/docs/surface-manager-overlay-bridge.md +9 -4
- package/docs/surface-manager-rmt-authoring.md +50 -34
- package/docs/surface-manager-workbench-fixture.md +1 -2
- package/docs/third-party-design-authoring.md +1 -1
- package/docs/type-exports.md +3 -3
- package/docs/utils/pageloader.js +811 -62
- package/docs/visual-browser-regression.md +1 -1
- package/docs/xtend-rmt-types.md +3 -2
- package/docs/xtendrmt-app-dsl.md +187 -122
- package/docs/xtendrmt-docs-shell-vnext.rmt +165 -0
- package/docs/xtendrmt-migration-guide.md +48 -17
- package/docs/xtendrmt-native-authoring.md +213 -217
- package/docs/xtendrmt-overview.md +81 -61
- package/docs/xtendrmt-parsedown-scheduling.md +23 -8
- package/fabric/package.json +1 -1
- package/package.json +684 -21
- package/tools/package.json +5 -1
- package/tools/rmt-editor/vscode/README.md +72 -5
- package/tools/rmt-editor/vscode/XTend-Logo.png +0 -0
- package/tools/rmt-editor/vscode/extension.d.ts +33 -0
- package/tools/rmt-editor/vscode/extension.js +1816 -7
- package/tools/rmt-editor/vscode/language-configuration.json +2 -1
- package/tools/rmt-editor/vscode/package.json +193 -2
- package/tools/rmt-editor/vscode/snippets/rmt.code-snippets +41 -0
- package/tools/rmt-editor/vscode/syntaxes/rmt.tmLanguage.json +103 -1
- package/tools/rmt-editor/vscode/templates/launch.json +70 -0
- package/tools/rmt-editor/vscode/templates/tasks.json +172 -0
- package/tools/rmt-editor/vscode/xtend-rmt-language-0.0.0-enterprise-readiness.vsix +0 -0
- package/tools/rmt-language/app-platform-tooling.d.ts +128 -0
- package/tools/rmt-language/app-platform-tooling.js +677 -0
- package/tools/rmt-language/completions.d.ts +5 -0
- package/tools/rmt-language/completions.js +185 -3
- package/tools/rmt-language/diagnostics.js +54 -0
- package/tools/rmt-language/hover.js +36 -0
- package/tools/rmt-language/rmt-tooling-public-types.d.ts +7 -0
- package/tools/rmt-language/rules/app-platform-policy.js +39 -0
- package/tools/rmt-language/rules/index.js +5 -1
- package/tools/rmt-language/semantic-graph.d.ts +6 -0
- package/tools/rmt-language/semantic-graph.js +928 -0
- package/tools/rmt-language/snippets/index.js +44 -0
- package/tools/rmt-language/snippets/rmt.code-snippets +41 -0
- package/tools/rmt-language/vnext-compatibility.d.ts +10 -0
- package/tools/rmt-language/vnext-compatibility.js +642 -0
- package/tools/rmt-language/vnext-compiler.d.ts +5 -0
- package/tools/rmt-language/vnext-compiler.js +863 -17
- package/tools/rmt-language/vnext-parser.js +725 -9
- package/tools/rmt-language/vnext-release.d.ts +1 -0
- package/tools/rmt-language/vnext-release.js +20 -0
- package/tools/rmt-language/vnext-source-to-sea.d.ts +33 -0
- package/tools/rmt-language/vnext-source-to-sea.js +2227 -0
- package/tools/rmt-language/vnext-surfaces.js +111 -52
- package/tools/rmt-language/vnext-tooling.d.ts +19 -1
- package/tools/rmt-language/vnext-tooling.js +1247 -5
- package/tools/rmt-language-server/protocol.js +3 -0
- package/tools/rmt-language-server/server.d.ts +2 -0
- package/tools/rmt-language-server/server.js +176 -22
- package/tools/rmt-linter/cli.d.ts +2 -0
- package/tools/rmt-linter/cli.js +62 -0
- package/xtend-builder/generators/registry.js +11 -0
- package/xtend-builder/generators/rmt-app-platform.js +239 -0
- package/xtend-builder/generators/rmt-lifecycle-demo.js +3 -11
- package/xtend-builder/lib/cli.js +38 -0
- package/xtend-builder/package.json +3 -3
- package/xtend-builder/scaffold.config.js +29 -2
- package/xtend.css +49 -2
- package/xtendrmt/package.json +49 -1
- package/xtendrmt/rmt-action-effect-runtime.d.ts +126 -0
- package/xtendrmt/rmt-action-effect-runtime.js +494 -0
- package/xtendrmt/rmt-component-capability-registry.d.ts +180 -0
- package/xtendrmt/rmt-component-capability-registry.js +636 -0
- package/xtendrmt/rmt-core.d.ts +6 -0
- package/xtendrmt/rmt-core.esm.js +32 -6
- package/xtendrmt/rmt-dom-descriptor-renderer.d.ts +107 -0
- package/xtendrmt/rmt-dom-descriptor-renderer.js +1066 -0
- package/xtendrmt/rmt-event-routing-runtime.d.ts +144 -0
- package/xtendrmt/rmt-event-routing-runtime.js +666 -0
- package/xtendrmt/rmt-lifecycle-demo.app.js +2 -2
- package/xtendrmt/rmt-lifecycle-demo.core.json +4 -0
- package/xtendrmt/rmt-lifecycle-demo.rmt-build.app.js +1 -1
- package/xtendrmt/rmt-lifecycle-demo.rmt-build.scaffold.json +2 -2
- package/xtendrmt/rmt-lifecycle-demo.scaffold.json +4 -4
- package/xtendrmt/rmt-native-shell-runtime.d.ts +77 -0
- package/xtendrmt/rmt-native-shell-runtime.js +309 -0
- package/xtendrmt/rmt-node-ssr-adapter.d.ts +197 -0
- package/xtendrmt/rmt-node-ssr-adapter.js +1006 -0
- package/xtendrmt/rmt-php-ssr-adapter.php +976 -0
- package/xtendrmt/rmt-runtime.browser.js +32 -6
- package/xtendrmt/rmt-runtime.esm.js +32 -6
- package/xtendrmt/rmt-state-selector-runtime.d.ts +166 -0
- package/xtendrmt/rmt-state-selector-runtime.js +866 -0
- package/xtendrmt/rmt-surface-resource-graph-runtime.d.ts +224 -0
- package/xtendrmt/rmt-surface-resource-graph-runtime.js +932 -0
- package/xtendrmt/rmt-vnext-enterprise-mfe-demo.core.json +3 -0
- package/xtendrmt/rmt-vnext-reference-demo.core.json +3 -0
- package/xtendrmt/xtendrmt-bestcase-demo.core.json +3420 -372
- package/xtendrmt/xtendrmt-bestcase-demo.js +424 -8
- package/xtendrmt/xtendrmt-bestcase-demo.rmt +214 -6
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# xsurfacewindow - XTend Komponente
|
|
2
|
+
|
|
3
|
+
`x-surface-window` ist die erste sichtbare WindowManager-Surface fuer XTend. Sie registriert sich bei einem umgebenden `x-surface-manager`, stellt Window-Chrome, Aktionen, Bounds und Content-Slot bereit und spiegelt Controller-Snapshots in Attribute und CSS-Variablen.
|
|
4
|
+
|
|
5
|
+
## Attribute
|
|
6
|
+
|
|
7
|
+
- `surface-id`: stabile Surface-ID
|
|
8
|
+
- `label`: Accessible Name und Window-Titel
|
|
9
|
+
- `open`, `active`, `minimized`, `maximized`
|
|
10
|
+
- `draggable`, `resizable`, `modal`
|
|
11
|
+
- `initial-x`, `initial-y`, `initial-width`, `initial-height`
|
|
12
|
+
|
|
13
|
+
## API
|
|
14
|
+
|
|
15
|
+
`toSurfaceRecord(managerId)` erzeugt ein `xtend.surface.record.v1` fuer den Manager. `applySurfaceSnapshot(record)` aktualisiert sichtbaren Status, Bounds und z-Order.
|
|
16
|
+
|
|
17
|
+
Commands: `openWindow()`, `closeWindow(reason)`, `focusWindow()`, `minimizeWindow()`, `maximizeWindow()` und `restoreWindow()`.
|
|
18
|
+
|
|
19
|
+
Das Element sendet `surface-window-command` mit `open`, `close`, `focus`, `move`, `resize`, `minimize`, `maximize`, `restore` oder `update`. Der Manager uebersetzt diese Commands in Controller-Operationen.
|
|
20
|
+
|
|
21
|
+
RMT: `xtend.rmt.component-contract.v1`, `xtend.surface.record.v1`, `surface.user-blocking.open`, `surface.user-blocking.close`, `surface.transition.layout`, `surface.diagnostics.snapshot`.
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
# xtabs – XTend Komponente
|
|
2
|
+
|
|
3
|
+
> **Siehe auch:** [xsection](./xsection.md), [xstate](./xstate.md)
|
|
4
|
+
|
|
5
|
+
## Übersicht
|
|
6
|
+
|
|
7
|
+
`<x-tabs>` ist eine Komponente für Tab-Navigation und strukturierte Inhalte. Sie unterstützt dynamische Tabs, Theming und State-Integration.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Features
|
|
12
|
+
- Dynamische Tab-Navigation
|
|
13
|
+
- Slot für Tab-Inhalte
|
|
14
|
+
- State-Integration via xstate
|
|
15
|
+
- Theming via CSS Custom Properties
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Verwendung
|
|
20
|
+
|
|
21
|
+
```html
|
|
22
|
+
<x-tabs selected="0">
|
|
23
|
+
<x-tab name="Tab 1">Inhalt 1</x-tab>
|
|
24
|
+
<x-tab name="Tab 2">Inhalt 2</x-tab>
|
|
25
|
+
</x-tabs>
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Attribute
|
|
31
|
+
| Attribut | Typ | Beschreibung |
|
|
32
|
+
|-------------|---------|-------------------------------------|
|
|
33
|
+
| – | – | – |
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Events
|
|
38
|
+
| Event | Beschreibung |
|
|
39
|
+
|---------------|-------------------------------------|
|
|
40
|
+
| `tab-selected` | Tab-Wechsel mit `{ index }`, `bubbles: true`, `composed: true` |
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## API
|
|
45
|
+
- **Tabs per Slot einfügen**
|
|
46
|
+
- **State-Integration:** Automatisch via xstate
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Beispiel: Dynamisch per JS
|
|
51
|
+
|
|
52
|
+
```js
|
|
53
|
+
const tabs = document.createElement('x-tabs');
|
|
54
|
+
tabs.innerHTML = '<div slot="tab" label="A">A</div>';
|
|
55
|
+
document.body.appendChild(tabs);
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Styling & Theming
|
|
61
|
+
|
|
62
|
+
```css
|
|
63
|
+
x-tabs {
|
|
64
|
+
--tab-active-bg: #007bff;
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Accessibility
|
|
71
|
+
|
|
72
|
+
`x-tabs` rendert einen `role="tablist"` Header, erzeugt pro Button `role="tab"` und verbindet Buttons und Panels ueber `aria-controls` sowie `aria-labelledby`.
|
|
73
|
+
|
|
74
|
+
Die Keyboard-Navigation nutzt roving `tabindex`:
|
|
75
|
+
|
|
76
|
+
| Taste | Verhalten |
|
|
77
|
+
|-------|-----------|
|
|
78
|
+
| `ArrowRight` | naechster Tab |
|
|
79
|
+
| `ArrowLeft` | vorheriger Tab |
|
|
80
|
+
| `Home` | erster Tab |
|
|
81
|
+
| `End` | letzter Tab |
|
|
82
|
+
| `Enter` / `Space` | fokussierten Tab aktivieren |
|
|
83
|
+
|
|
84
|
+
Aktive Panels tragen `role="tabpanel"` und `aria-hidden="false"`; inaktive Panels werden mit `hidden` und `aria-hidden="true"` aus der sichtbaren Navigation genommen.
|
|
85
|
+
|
|
86
|
+
## Performance-Profil ab WP-E12-02
|
|
87
|
+
|
|
88
|
+
`x-tabs` besitzt ein explizites `xtendScaffoldPerformanceProfile` unter `xtend.performance.component-profile.v1`.
|
|
89
|
+
|
|
90
|
+
| Feld | Wert |
|
|
91
|
+
|------|------|
|
|
92
|
+
| Budget-Klasse | `critical` |
|
|
93
|
+
| Lane | `user-blocking` |
|
|
94
|
+
| Hydration Policy | `visible` |
|
|
95
|
+
| Tab-Switch Budget | `16 ms` |
|
|
96
|
+
| Keyboard Budget | `16 ms` |
|
|
97
|
+
| Render Update Budget | `28 ms` |
|
|
98
|
+
|
|
99
|
+
RMT-Shells koennen `x-tabs` ueber `ui.user-blocking.tabs`, `route.transition.tab`, `component.visible.hydrate` und `diagnostics.snapshot` schedulen. Der RMT-Kernel bleibt dabei framework-agnostisch; die XTend-spezifischen Daten liegen im Component-Adapter-Metadatenprofil.
|
|
100
|
+
|
|
101
|
+
Die Runtime stellt `getPerformanceBudget()` und `snapshotPerformance()` bereit. `snapshotPerformance()` liefert lokale Messpunkte fuer Hydration, Render, Tab-Switch und Keyboard-Interaktionen, damit Fabric oder ein spaeterer Reporter die Daten aufnehmen kann.
|
|
102
|
+
|
|
103
|
+
## Component-Level-Contract ab ER-WP-33
|
|
104
|
+
|
|
105
|
+
- `selected` bestimmt den aktiven Tab-Index.
|
|
106
|
+
- `text-color` synchronisiert die Textfarbe in den Tab-Header.
|
|
107
|
+
- `tab-selected` wird nach einem Tabwechsel mit `{ index }` emittiert.
|
|
108
|
+
- `xtabs-selected` ist der kanonische `xstate`-Key fuer externe Tabwechsel.
|
|
109
|
+
- Keyboard-Navigation umfasst `ArrowRight`, `ArrowLeft`, `Home`, `End`, `Enter` und `Space`.
|
|
110
|
+
- `data-rmt-schedule="ui.user-blocking.tabs"` und `data-xtend-lane="user-blocking"` bilden die Fixture-Linie fuer RMT/Fabric-Scheduling.
|
|
111
|
+
- `snapshotPerformance()` macht das WP-E12-02 Runtime-Budget testbar.
|
|
112
|
+
- Seit `WP-E12-03` sind Browser-Smoke und Theme-Matrix explizit auf `x-tabs` Keyboard-, ARIA- und Theme-Shell-Journeys erweitert.
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
*Letzte Aktualisierung: 7. Mai 2026*
|
|
117
|
+
|
|
118
|
+
## ECH-WP-09 Token-Tabelle und Navigation States
|
|
119
|
+
|
|
120
|
+
`signatureDesign`: `x-tabs` erzeugt eine eigenstaendige Enterprise-Tabnavigation mit sichtbarer Selected-Schiene, wrap-sicheren Labels und frei austauschbarer Typografie. Active/Current/Selected, Hover, Focus und Disabled sind ueber gemeinsame Navigationstokens themebar.
|
|
121
|
+
|
|
122
|
+
| Token | Zweck |
|
|
123
|
+
| --- | --- |
|
|
124
|
+
| `--xtend-nav-surface` | Tablist-Surface |
|
|
125
|
+
| `--xtend-nav-text` | Tab-Text |
|
|
126
|
+
| `--xtend-nav-border-color` | Tab- und Tablist-Kanten |
|
|
127
|
+
| `--xtend-nav-radius` | Tab-Radius |
|
|
128
|
+
| `--xtend-nav-gap` | Abstand zwischen Tabs |
|
|
129
|
+
| `--xtend-nav-font-family` | Tab-Typografie |
|
|
130
|
+
| `--xtend-nav-font-size` | Tab-Textgroesse |
|
|
131
|
+
| `--xtend-nav-active-surface` | Selected-Flaeche |
|
|
132
|
+
| `--xtend-nav-active-text` | Selected-Text |
|
|
133
|
+
| `--xtend-nav-current-indicator` | nicht farb-only Selected-Indikator |
|
|
134
|
+
| `--xtend-nav-hover-surface` | Hover-Flaeche |
|
|
135
|
+
| `--xtend-nav-focus-ring` | Tastaturfokus |
|
|
136
|
+
| `--xtend-nav-disabled-opacity` | Disabled-Dimmung |
|
|
137
|
+
|
|
138
|
+
## ECH-WP-09 Keyboard-Verhalten
|
|
139
|
+
|
|
140
|
+
`ArrowRight`, `ArrowLeft`, `Home`, `End`, `Enter` und `Space` bleiben die verbindlichen Tasten. Disabled Tabs werden nicht fokussiert oder aktiviert. Active/Current/Selected wird ueber `aria-selected="true"` am Tab und `role="tabpanel"` am Panel gespiegelt; Route-Tabs koennen zusaetzlich `aria-current="page"` durch Host-Logik tragen.
|
|
141
|
+
|
|
142
|
+
## ECH-WP-09 Fremdtheme
|
|
143
|
+
|
|
144
|
+
```css
|
|
145
|
+
[data-xtend-nav-theme="enterprise-foreign"] x-tabs {
|
|
146
|
+
--xtend-nav-surface: #f3f0e8;
|
|
147
|
+
--xtend-nav-text: #202520;
|
|
148
|
+
--xtend-nav-border-color: rgba(32, 37, 32, 0.24);
|
|
149
|
+
--xtend-nav-radius: 0.35rem;
|
|
150
|
+
--xtend-nav-gap: 0.4rem;
|
|
151
|
+
--xtend-nav-font-family: "Aptos", "Segoe UI", sans-serif;
|
|
152
|
+
--xtend-nav-font-size: 0.95rem;
|
|
153
|
+
--xtend-nav-active-surface: #243c34;
|
|
154
|
+
--xtend-nav-active-text: #fff9ed;
|
|
155
|
+
--xtend-nav-current-indicator: #a65f2d;
|
|
156
|
+
--xtend-nav-hover-surface: rgba(166, 95, 45, 0.14);
|
|
157
|
+
--xtend-nav-focus-ring: 3px solid #a65f2d;
|
|
158
|
+
--xtend-nav-disabled-opacity: 0.42;
|
|
159
|
+
}
|
|
160
|
+
```
|
|
@@ -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`
|