@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,125 @@
|
|
|
1
|
+
# xsection – XTend Komponente
|
|
2
|
+
|
|
3
|
+
> **Siehe auch:** [xhero](./xhero.md), [xmasonry](./xmasonry.md)
|
|
4
|
+
|
|
5
|
+
## Übersicht
|
|
6
|
+
|
|
7
|
+
`<x-section>` ist eine flexible Layout-Komponente für Seitenabschnitte, Container und strukturierte Bereiche. Sie unterstützt Slots, Theming und Responsive Design.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Features
|
|
12
|
+
- Container für beliebige Inhalte
|
|
13
|
+
- Slots für flexible Struktur
|
|
14
|
+
- Theming via CSS Custom Properties
|
|
15
|
+
- Responsive Design
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Verwendung
|
|
20
|
+
|
|
21
|
+
```html
|
|
22
|
+
<x-section>
|
|
23
|
+
<h2>Abschnitt</h2>
|
|
24
|
+
<p>Inhalt…</p>
|
|
25
|
+
</x-section>
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Attribute
|
|
31
|
+
| Attribut | Typ | Beschreibung |
|
|
32
|
+
|-------------|---------|-------------------------------------|
|
|
33
|
+
| `variant` | String | Layout-Variante (z.B. primary, secondary) |
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Events
|
|
38
|
+
| Event | Beschreibung |
|
|
39
|
+
|---------------|-------------------------------------|
|
|
40
|
+
| – | – |
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## API
|
|
45
|
+
- **Variante setzen:** `element.setAttribute('variant', 'primary')`
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Beispiel: Dynamisch per JS
|
|
50
|
+
|
|
51
|
+
```js
|
|
52
|
+
const section = document.createElement('x-section');
|
|
53
|
+
section.setAttribute('variant', 'primary');
|
|
54
|
+
document.body.appendChild(section);
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## Styling & Theming
|
|
60
|
+
|
|
61
|
+
```css
|
|
62
|
+
x-section {
|
|
63
|
+
--section-bg: #f9f9f9;
|
|
64
|
+
--section-color: #222;
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Accessibility
|
|
71
|
+
- Semantisches HTML
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
*Letzte Aktualisierung: 16. Juli 2025*
|
|
76
|
+
|
|
77
|
+
## Layout Display Media UX Profil
|
|
78
|
+
|
|
79
|
+
`x-section` stellt ab `WP-E11-12` das Profil `xtend.component.layout-display-media-ux-profile.v1` bereit. Die Komponente ist als Shell-first Layout-Surface fuer RMT geeignet und nutzt den State-Key `xsection-state-<id>`.
|
|
80
|
+
|
|
81
|
+
- Profil-Getter: `xtendLayoutDisplayMediaUxProfile`
|
|
82
|
+
- Schedule: `layout.measure`
|
|
83
|
+
- Event: `section-rendered`
|
|
84
|
+
- Snapshot: `snapshot()`
|
|
85
|
+
- CSS Parts: `root`, `container`, `header`, `aside`, `content`, `footer`
|
|
86
|
+
|
|
87
|
+
## ECH-WP-07 Token-Tabelle und signatureDesign
|
|
88
|
+
|
|
89
|
+
`signatureDesign`: Editoriale Enterprise-Section mit kontrollierter Flaechenhierarchie, optionaler Kante und overflow-sicheren Inhaltsbahnen. Sie kann plain, framed oder dichtes Dashboard-Layout sein, ohne neue Attribute zu brauchen.
|
|
90
|
+
|
|
91
|
+
| Token | Zweck |
|
|
92
|
+
| --- | --- |
|
|
93
|
+
| `--xtend-layout-surface` | Section-Flaeche |
|
|
94
|
+
| `--xtend-layout-text` | Haupttextfarbe |
|
|
95
|
+
| `--xtend-layout-border-color` | Optionale Section-Kante |
|
|
96
|
+
| `--xtend-layout-radius` | Section-Radius |
|
|
97
|
+
| `--xtend-layout-elevation` | Optionaler Section-Schatten |
|
|
98
|
+
| `--xtend-layout-spacing` | Section- und Content-Padding |
|
|
99
|
+
| `--xtend-layout-gap` | Slot-Abstand |
|
|
100
|
+
| `--xtend-layout-font-family` | Section-Typografie |
|
|
101
|
+
| `--xtend-layout-font-size` | Content-Schriftgroesse |
|
|
102
|
+
| `--xtend-layout-media-radius` | Medienradius fuer slotted Content |
|
|
103
|
+
| `--xtend-layout-focus-ring` | Fokus innerhalb der Section |
|
|
104
|
+
| `--xtend-layout-grid-min` | Responsive Inhaltsbasis |
|
|
105
|
+
| `--xtend-layout-content-max` | Section-Maximalbreite |
|
|
106
|
+
|
|
107
|
+
## ECH-WP-07 Fremdtheme
|
|
108
|
+
|
|
109
|
+
```css
|
|
110
|
+
[data-xtend-layout-theme="enterprise-foreign"] x-section {
|
|
111
|
+
--xtend-layout-surface: #fffaf2;
|
|
112
|
+
--xtend-layout-text: #1d2722;
|
|
113
|
+
--xtend-layout-border-color: rgba(29, 39, 34, 0.18);
|
|
114
|
+
--xtend-layout-radius: 0.4rem;
|
|
115
|
+
--xtend-layout-elevation: none;
|
|
116
|
+
--xtend-layout-spacing: 1.6rem;
|
|
117
|
+
--xtend-layout-gap: 1.2rem;
|
|
118
|
+
--xtend-layout-font-family: "Aptos", "Segoe UI", sans-serif;
|
|
119
|
+
--xtend-layout-font-size: 1rem;
|
|
120
|
+
--xtend-layout-media-radius: 0.35rem;
|
|
121
|
+
--xtend-layout-focus-ring: 3px solid #8f4f2a;
|
|
122
|
+
--xtend-layout-grid-min: minmax(14rem, 1fr);
|
|
123
|
+
--xtend-layout-content-max: 76rem;
|
|
124
|
+
}
|
|
125
|
+
```
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# xselect – XTend Komponente
|
|
2
|
+
|
|
3
|
+
> **Siehe auch:** [xform](./xform.md), [xinput](./xinput.md), [xstate](./xstate.md)
|
|
4
|
+
|
|
5
|
+
## Uebersicht
|
|
6
|
+
|
|
7
|
+
`<x-select>` ist das TypeScript-first Selection-Control aus `WP-E10-09`. Die Komponente kapselt ein natives `select`, bleibt form-associated, schreibt ihren Wert nach `xstate` und besitzt RMT-, Fabric-, A11y- und Performance-Metadaten ohne XTend in den RMT-Kernel einzubetten.
|
|
8
|
+
|
|
9
|
+
## Verwendung
|
|
10
|
+
|
|
11
|
+
```html
|
|
12
|
+
<x-select id="plan-select" name="plan" value="pro" required>
|
|
13
|
+
<span slot="label">Plan</span>
|
|
14
|
+
<option value="starter">Starter</option>
|
|
15
|
+
<option value="pro">Pro</option>
|
|
16
|
+
<span slot="error">Bitte einen Plan waehlen.</span>
|
|
17
|
+
</x-select>
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Attribute
|
|
21
|
+
|
|
22
|
+
| Attribut | Typ | Beschreibung |
|
|
23
|
+
|----------|-----|--------------|
|
|
24
|
+
| `name` | String | Formularname |
|
|
25
|
+
| `value` | String | aktueller Wert |
|
|
26
|
+
| `multiple` | Boolean | erlaubt Mehrfachauswahl |
|
|
27
|
+
| `required` | Boolean | aktiviert native Validierung |
|
|
28
|
+
| `disabled` | Boolean | deaktiviert das Control |
|
|
29
|
+
| `placeholder` | String | optionale Platzhalteroption |
|
|
30
|
+
| `label` | String | ARIA-/Textlabel ohne Slot |
|
|
31
|
+
|
|
32
|
+
## Slots
|
|
33
|
+
|
|
34
|
+
| Slot | Zweck |
|
|
35
|
+
|------|-------|
|
|
36
|
+
| default | `option`-Elemente fuer das native Select |
|
|
37
|
+
| `label` | sichtbares Label |
|
|
38
|
+
| `hint` | zusaetzlicher Hinweistext |
|
|
39
|
+
| `error` | Validierungsfehler |
|
|
40
|
+
|
|
41
|
+
## Events
|
|
42
|
+
|
|
43
|
+
| Event | Detail |
|
|
44
|
+
|-------|--------|
|
|
45
|
+
| `select-changed` | `{ value, values, source: 'x-select' }` |
|
|
46
|
+
| `select-invalid` | `{ value, message, source: 'x-select' }` |
|
|
47
|
+
|
|
48
|
+
## API
|
|
49
|
+
|
|
50
|
+
- `element.value`
|
|
51
|
+
- `element.values`
|
|
52
|
+
- `element.checkValidity()`
|
|
53
|
+
- `element.reportValidity()`
|
|
54
|
+
- `element.validate()`
|
|
55
|
+
- `element.reset()`
|
|
56
|
+
- `element.focus()`
|
|
57
|
+
|
|
58
|
+
## State, RMT und Fabric
|
|
59
|
+
|
|
60
|
+
`<x-select>` schreibt nach `xselect-value-<id>` und reagiert auf externe Wertupdates. Die RMT-Metadaten nutzen `xtend.rmt.component-contract.v1`, `adapter: 'xtend.component'` und `kernelBoundary: 'no-rmt-kernel-import-of-xtend-types'`. Shell-first Templates koennen die Komponente als DOM-Descriptor schedulen, waehrend XTend die UI-Oberflaeche bleibt.
|
|
61
|
+
|
|
62
|
+
## A11y und Performance
|
|
63
|
+
|
|
64
|
+
Das Control nutzt `role="combobox"`, `aria-describedby`, sichtbare Label-/Hint-/Error-Slots und eine assertive Fehlerregion. Das Performance-Profil ist `xtend.performance.component-profile.v1` mit `budgetClass: 'interactive-medium'`, `lane: 'user-blocking'` und `hydrationPolicy: 'visible'`.
|
|
65
|
+
|
|
66
|
+
## Form Controls UX ab WP-E11-08
|
|
67
|
+
|
|
68
|
+
`<x-select>` stellt `xtendFormControlUxProfile` mit `xtend.component.form-control-ux-profile.v1` bereit. Das Profil verbindet Label, Hint, Error, `select-changed`, `select-invalid`, `xselect-value-<id>`, `ui.user-blocking.input`, Fabric-Lane `user-blocking` und RMT Shell Authoring.
|
|
69
|
+
|
|
70
|
+
## ECH-WP-08 Form Theme/A11y Hardening
|
|
71
|
+
|
|
72
|
+
`signatureDesign`: Enterprise-Select mit klarer nativer Affordance, nicht-farblicher Validierung und density-sicherem Label-/Helper-Rhythmus.
|
|
73
|
+
|
|
74
|
+
| Token | Zweck |
|
|
75
|
+
| --- | --- |
|
|
76
|
+
| `--xtend-form-text` | Host-Textfarbe |
|
|
77
|
+
| `--xtend-form-control-surface` | Select-Flaeche |
|
|
78
|
+
| `--xtend-form-control-text` | Select-Text |
|
|
79
|
+
| `--xtend-form-label-text` | Label |
|
|
80
|
+
| `--xtend-form-helper-text` | Helper |
|
|
81
|
+
| `--xtend-form-error-text` | Fehlertext |
|
|
82
|
+
| `--xtend-form-error-surface` | Fehlerflaeche |
|
|
83
|
+
| `--xtend-form-error-border` | Fehlerkante und Marker |
|
|
84
|
+
| `--xtend-form-focus-ring` | Focus-Outline |
|
|
85
|
+
| `--xtend-form-radius` | Select- und Error-Radius |
|
|
86
|
+
| `--xtend-form-gap` | Vertikaler Rhythmus |
|
|
87
|
+
| `--xtend-form-font-family` | Form-Typografie |
|
|
88
|
+
| `--xtend-form-control-font-size` | Select-Schrift |
|
|
89
|
+
| `--xtend-form-helper-font-size` | Helper/Error-Schrift |
|
|
90
|
+
| `--xtend-form-icon-color` | Native Select-Affordance |
|
|
91
|
+
|
|
92
|
+
Density-Profile: `comfortable`, `compact`, `dense`. Invalid, `disabled`, `required` und `busy` werden visuell und per ARIA gespiegelt.
|
|
93
|
+
|
|
94
|
+
```css
|
|
95
|
+
[data-xtend-form-theme="enterprise-foreign"] x-select {
|
|
96
|
+
--xtend-form-control-surface: #fbf8f2;
|
|
97
|
+
--xtend-form-control-text: #16231f;
|
|
98
|
+
--xtend-form-label-text: #22312c;
|
|
99
|
+
--xtend-form-helper-text: #596861;
|
|
100
|
+
--xtend-form-error-text: #7d231c;
|
|
101
|
+
--xtend-form-error-border: #a64036;
|
|
102
|
+
--xtend-form-focus-ring: 3px solid #8f4f2a;
|
|
103
|
+
--xtend-form-radius: 0.35rem;
|
|
104
|
+
}
|
|
105
|
+
```
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# xsidepanel - XTend Komponente
|
|
2
|
+
|
|
3
|
+
`x-side-panel` ist die App-Shell-nahe SidePanel-Surface fuer XTend. Sie registriert sich bei einem umgebenden `x-surface-manager`, nutzt den Surface Controller aus `WP-SM-02` und spiegelt Snapshots in Placement, Mode, Pinning, Collapse-State, Groesse und z-Order.
|
|
4
|
+
|
|
5
|
+
## Attribute
|
|
6
|
+
|
|
7
|
+
- `surface-id`: stabile Surface-ID
|
|
8
|
+
- `label`: Accessible Name und Panel-Titel
|
|
9
|
+
- `open`, `active`, `collapsed`, `pinned`
|
|
10
|
+
- `placement`: `left`, `right`, `bottom` oder `inline`
|
|
11
|
+
- `mode`: `docked`, `overlay`, `pinned`, `collapsed` oder `fullscreen`
|
|
12
|
+
- `responsive-mode`: Standard `fullscreen-under-720`
|
|
13
|
+
- `resizable`, `route-aware`, `modal`
|
|
14
|
+
- `initial-width`, `initial-height`
|
|
15
|
+
|
|
16
|
+
## API
|
|
17
|
+
|
|
18
|
+
`toSurfaceRecord(managerId)` erzeugt ein `xtend.surface.record.v1` mit `type: "side-panel"`. `applySurfaceSnapshot(record)` aktualisiert sichtbaren Status, Bounds, Placement, Mode und A11y-State.
|
|
19
|
+
|
|
20
|
+
Commands: `openPanel()`, `closePanel(reason)`, `focusPanel()`, `pinPanel()`, `collapsePanel()`, `expandPanel(mode)`, `setPanelMode(mode, placement)`, `resizePanel(bounds)` und `restorePanel()`.
|
|
21
|
+
|
|
22
|
+
Das Element sendet `surface-panel-command` mit `open`, `close`, `focus`, `resize`, `pin`, `unpin`, `collapse`, `expand`, `dock`, `restore` oder `update`. Der Manager uebersetzt diese Commands in Controller-Operationen beziehungsweise `updateSurface`.
|
|
23
|
+
|
|
24
|
+
RMT: `xtend.rmt.component-contract.v1`, `xtend.surface.record.v1`, `surface.visible.render`, `surface.user-blocking.open`, `surface.user-blocking.close`, `surface.transition.layout`, `surface.diagnostics.snapshot`.
|
|
25
|
+
|
|
26
|
+
## ECH-WP-06 Overlay-Paritaet
|
|
27
|
+
|
|
28
|
+
`x-side-panel` expose `surface`, `backdrop`, `close` und `content` als gemeinsame Overlay-Parts. Der bisherige `scrim` Part bleibt als Alias fuer `backdrop` erhalten. Surface, Text, Border, Elevation, Backdrop, Z-Index und Focus Ring laufen ueber `--xtend-overlay-*` und die komponentennahen `--side-panel-*` Tokens.
|
|
29
|
+
|
|
30
|
+
`mode="docked"` und `mode="pinned"` bleiben nicht-modal und app-shell-nah. `mode="overlay"` oder `modal` aktivieren den Backdrop und die Overlay-Steuerung fuer SurfaceManager-Orchestrierung.
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# xspinner – XTend Komponente
|
|
2
|
+
|
|
3
|
+
> **Siehe auch:** [xtoast](./xtoast.md), [xalert](./xalert.md)
|
|
4
|
+
|
|
5
|
+
## Übersicht
|
|
6
|
+
|
|
7
|
+
`<x-spinner>` ist eine animierte, barrierearme Ladeanzeige für asynchrone Prozesse, Ladezustände und Feedback. Sie ist vielseitig, themable und unterstützt verschiedene Varianten, Overlay-Modus sowie State- und Accessibility-Integration.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Features
|
|
12
|
+
- Animierte Ladeanzeige (Kreis, Dots)
|
|
13
|
+
- Größe, Farbe, Geschwindigkeit, Typ per Attribut
|
|
14
|
+
- Overlay-Modus (zentriert, halbtransparent)
|
|
15
|
+
- Slot für eigenen Inhalt
|
|
16
|
+
- State-Integration via xstate
|
|
17
|
+
- Events für Pause/Resume
|
|
18
|
+
- Theming via CSS Custom Properties & XTheme
|
|
19
|
+
- Accessibility: ARIA, aria-busy, aria-label, aria-valuetext
|
|
20
|
+
- prefers-reduced-motion Support
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Verwendung
|
|
25
|
+
|
|
26
|
+
```html
|
|
27
|
+
<x-spinner size="32" color="#C70039" speed="0.7s" type="dots"></x-spinner>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Attribute
|
|
33
|
+
| Attribut | Typ | Beschreibung |
|
|
34
|
+
|-----------------|---------|---------------------------------------------------|
|
|
35
|
+
| `size` | String | Größe des Spinners (z.B. 32, 48, 64) |
|
|
36
|
+
| `color` | String | Farbe (CSS-Farbwert, z.B. #007bff) |
|
|
37
|
+
| `speed` | String | Animationsdauer (z.B. 1s, 0.7s) |
|
|
38
|
+
| `type` | String | "circle" (Standard), "dots" |
|
|
39
|
+
| `paused` | Boolean | Animation pausieren |
|
|
40
|
+
| `overlay` | Boolean | Spinner als Overlay über die Seite |
|
|
41
|
+
| `aria-label` | String | Zugänglicher Text für Screenreader |
|
|
42
|
+
| `aria-busy` | String | ARIA-Status (true/false) |
|
|
43
|
+
| `aria-valuetext`| String | Fortschrittstext für Screenreader |
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Events
|
|
48
|
+
| Event | Beschreibung |
|
|
49
|
+
|---------------|-------------------------------------|
|
|
50
|
+
| `spinner-started` | Wird beim Einfügen ausgelöst |
|
|
51
|
+
| `spinner-stopped` | Wird beim Entfernen ausgelöst |
|
|
52
|
+
| `paused` | Animation wurde pausiert |
|
|
53
|
+
| `resumed` | Animation wurde fortgesetzt |
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## API
|
|
58
|
+
- **Größe setzen:** `element.setAttribute('size', '48')`
|
|
59
|
+
- **Typ ändern:** `element.setAttribute('type', 'dots')`
|
|
60
|
+
- **Pause/Resume:** `element.setAttribute('paused', '')` / `element.removeAttribute('paused')`
|
|
61
|
+
- **Imperative Pause/Resume:** `element.pause()` / `element.resume()`
|
|
62
|
+
- **Snapshot:** `element.snapshot()`
|
|
63
|
+
- **Overlay aktivieren:** `element.setAttribute('overlay', '')`
|
|
64
|
+
- **State-Integration:** `xstate.set('xspinner-paused-'+element.id, true)`
|
|
65
|
+
|
|
66
|
+
## Feedback Status UX ab WP-E11-09
|
|
67
|
+
|
|
68
|
+
`<x-spinner>` stellt `xtendFeedbackStatusUxProfile` mit `xtend.component.feedback-status-ux-profile.v1` bereit. Das Profil beschreibt Spinner als Busy-Status mit `spinner-started`, `spinner-stopped`, `paused`, `resumed`, `xspinner-paused-<id>`, `component.visible.mount`, Fabric-Lane `feedback`, A11y-Lane `a11y` und RMT Shell Authoring.
|
|
69
|
+
|
|
70
|
+
Die Komponente meldet Pause/Resume ueber Events mit `source: 'x-spinner'` und `stateKey`. Animationen sind reduced-motion-safe; Busy-Status und `aria-valuetext` bleiben fuer Screenreader auch ohne sichtbare Bewegung erhalten.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Beispiel: Dynamisch per JS
|
|
75
|
+
|
|
76
|
+
```js
|
|
77
|
+
const spinner = document.createElement('x-spinner');
|
|
78
|
+
spinner.setAttribute('size', '48');
|
|
79
|
+
spinner.setAttribute('type', 'dots');
|
|
80
|
+
document.body.appendChild(spinner);
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## Styling & Theming
|
|
86
|
+
|
|
87
|
+
```css
|
|
88
|
+
x-spinner {
|
|
89
|
+
--spinner-color: #007bff;
|
|
90
|
+
--spinner-size: 40px;
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## Accessibility
|
|
97
|
+
- ARIA-Rolle, aria-busy, aria-label, aria-valuetext
|
|
98
|
+
- prefers-reduced-motion wird beachtet
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
*Letzte Aktualisierung: 18. Juli 2025*
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
# xstate – XTend Komponente
|
|
2
|
+
|
|
3
|
+
> **Siehe auch:** [xalert](./xalert.md), [xtoast](./xtoast.md), [xbutton](./xbutton.md), [xtheme](./xtheme.md)
|
|
4
|
+
|
|
5
|
+
## Übersicht
|
|
6
|
+
|
|
7
|
+
`xstate` ist das zentrale State-Management-Modul für XTend-Komponenten. Es ermöglicht globale und lokale Zustände, Abonnements und reaktive Updates.
|
|
8
|
+
|
|
9
|
+
Seit `WP-E12-08` ist `xstate` ausdruecklich als nicht-visuelle **Boundary-Probe** dokumentiert. Das Modul wird nicht zu einem Custom Element umgedeutet. Es stellt stattdessen eine gatebare Adapter-, Typing- und Lifecycle-Oberflaeche fuer XTend UI, Fabric und XTendRMT bereit.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Features
|
|
14
|
+
- Globales und komponentenbasiertes State-Management
|
|
15
|
+
- Abonnements für State-Änderungen mit Key-Filter
|
|
16
|
+
- Reaktive Updates für Komponenten
|
|
17
|
+
- Pfad-Updates, Batch-Updates und Storage-Helfer
|
|
18
|
+
- Kompatibilitäts-Fassade für `on/off`
|
|
19
|
+
- Lifecycle Events fuer State-Operationen
|
|
20
|
+
- Fabric-kompatible Diagnostics Snapshots
|
|
21
|
+
- RMT State Scheduler Adapter ohne Kernel-Kopplung
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Verwendung
|
|
26
|
+
|
|
27
|
+
```js
|
|
28
|
+
import { xstate } from 'components/xstate.js';
|
|
29
|
+
|
|
30
|
+
xstate.set('key', 'value');
|
|
31
|
+
const value = xstate.get('key');
|
|
32
|
+
const unsubscribe = xstate.subscribe((key, value, allData) => { ... }, 'key');
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## API
|
|
38
|
+
| Methode | Beschreibung |
|
|
39
|
+
|---------|--------------|
|
|
40
|
+
| `get(key)` | Gibt den Wert für einen Schlüssel zurück |
|
|
41
|
+
| `set(key, val)` | Setzt einen Wert und benachrichtigt Listener |
|
|
42
|
+
| `subscribe(fn, keyFilter?)` | Kanonischer Subscription-Contract mit optionalem Key-Filter |
|
|
43
|
+
| `remove(key)` | Entfernt einen Schlüssel aus dem State |
|
|
44
|
+
| `getPath(path)` | Liest verschachtelte Werte über Dot-Notation |
|
|
45
|
+
| `setPath(path, value)` | Schreibt verschachtelte Werte über Dot-Notation |
|
|
46
|
+
| `batchUpdate(updates)` | Führt mehrere Updates in einem Schritt aus |
|
|
47
|
+
| `saveToStorage(type?, key?)` | Persistiert den State in Local- oder Session-Storage |
|
|
48
|
+
| `loadFromStorage(type?, key?)` | Lädt den State aus Browser-Storage |
|
|
49
|
+
| `on(key, fn)` | Legacy-Kompatibilität für key-basierte Listener |
|
|
50
|
+
| `off(key, fn)` | Entfernt einen per `on` registrierten Listener |
|
|
51
|
+
| `subscribeLifecycle(fn)` | Abonniert Lifecycle-/Diagnostics-Events der State-Boundary |
|
|
52
|
+
| `snapshot()` | Liefert einen stabilen State-Snapshot fuer Tests und Adapter |
|
|
53
|
+
| `snapshotDiagnostics()` | Liefert Fabric-kompatible Diagnostics |
|
|
54
|
+
| `createRmtStateAdapter(options?)` | Erstellt einen host-neutralen RMT State Adapter |
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Beispiel: State in Komponente nutzen
|
|
59
|
+
|
|
60
|
+
```js
|
|
61
|
+
xstate.set('user', { name: 'Konni' });
|
|
62
|
+
const unsubscribe = xstate.subscribe((key, value) => {
|
|
63
|
+
if (key === 'user') {
|
|
64
|
+
// Reagiere auf Änderungen
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Kanonische Empfehlung
|
|
70
|
+
|
|
71
|
+
- Neue Core-Implementierungen sollen `subscribe(fn, keyFilter)` verwenden.
|
|
72
|
+
- `on/off` bleiben als Kompatibilitäts-Fassade erlaubt, sind aber nicht der kanonische Contract.
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Boundary-Probe Contract
|
|
77
|
+
|
|
78
|
+
`xstate` ist kein visuelles Element. Die Component-Catalog-Haertung prueft es deshalb als Infrastruktur-Boundary:
|
|
79
|
+
|
|
80
|
+
- Boundary Schema: `xtend.state.boundary-probe.v1`
|
|
81
|
+
- Snapshot Schema: `xtend.state.snapshot.v1`
|
|
82
|
+
- Lifecycle Schema: `xtend.state.lifecycle-event.v1`
|
|
83
|
+
- Diagnostics Schema: `xtend.fabric.state-diagnostics.v1`
|
|
84
|
+
- RMT Compatibility Schema: `xtend.rmt.state-scheduler-compatibility.v1`
|
|
85
|
+
- Kernel Boundary: `no-rmt-kernel-import-of-xtend-types`
|
|
86
|
+
|
|
87
|
+
```js
|
|
88
|
+
import { xstate } from '/components/xstate.js';
|
|
89
|
+
|
|
90
|
+
const unsubscribeLifecycle = xstate.subscribeLifecycle((event, diagnostics) => {
|
|
91
|
+
console.log(event.type, diagnostics.operationCounts);
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
xstate.set('rmt.bridge.ready', true);
|
|
95
|
+
|
|
96
|
+
const snapshot = xstate.snapshot();
|
|
97
|
+
const diagnostics = xstate.snapshotDiagnostics();
|
|
98
|
+
|
|
99
|
+
unsubscribeLifecycle();
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## RMT State Scheduler Compatibility
|
|
103
|
+
|
|
104
|
+
RMT darf `xstate` nicht direkt importieren. Ein XTend Host kann aber bewusst einen Adapter erzeugen und an die State-/Scheduler-/Diagnostics-Bridge uebergeben:
|
|
105
|
+
|
|
106
|
+
```js
|
|
107
|
+
const stateAdapter = xstate.createRmtStateAdapter({
|
|
108
|
+
schedulerId: 'docs.app.shell'
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
stateAdapter.set('rmt.scheduler.lastEndpoint', {
|
|
112
|
+
id: 'docs.header.search',
|
|
113
|
+
lane: 'user-blocking'
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
stateAdapter.snapshot();
|
|
117
|
+
stateAdapter.diagnostics();
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Damit bleibt XTendRMT framework-agnostisch. `xstate` ist eine optionale Host-Capability und keine Kernel-Abhaengigkeit.
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## XTendRMT Bridge State
|
|
125
|
+
|
|
126
|
+
XTendRMT nutzt `xstate` optional als Host-State-Spiegel. Die State-/Scheduler-/Diagnostics Bridge schreibt nur dann in `xstate`, wenn ein Host ihr ein kompatibles Ziel uebergibt. Ohne `xstate` bleibt ein in-memory State Handle aktiv.
|
|
127
|
+
|
|
128
|
+
Aktuelle Bridge-Keys:
|
|
129
|
+
|
|
130
|
+
- `rmt.bridge.ready`
|
|
131
|
+
- `rmt.scheduler.lastEndpoint`
|
|
132
|
+
- `rmt.adapter.lastResult`
|
|
133
|
+
- `rmt.diagnostics.last`
|
|
134
|
+
- `rmt.route.<id>.lastResult`
|
|
135
|
+
- `rmt.component.<id>.lastResult`
|
|
136
|
+
|
|
137
|
+
Die Implementierung liegt in `createRmtStateSchedulerDiagnosticsBridge`; Details stehen in [XTendRMT Runtime Bridge](../xtendrmt-runtime-bridge.md).
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## Hinweise
|
|
142
|
+
- Wird von fast allen XTend-Komponenten genutzt
|
|
143
|
+
- Kann auch für eigene Zwecke verwendet werden
|
|
144
|
+
- Im XTend-Core ist `xstate` das erste Bootstrap-Basismodul
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
*Letzte Aktualisierung: 7. Mai 2026*
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# xstatus - XTend Komponente
|
|
2
|
+
|
|
3
|
+
> **Siehe auch:** [xalert](./xalert.md), [xtoast](./xtoast.md), [xprogress](./xprogress.md), [xstate](./xstate.md)
|
|
4
|
+
|
|
5
|
+
## Uebersicht
|
|
6
|
+
|
|
7
|
+
`<x-status>` ist ein Fabric- und RMT-faehiges Status-Control aus `WP-E10-10`. Es stellt Scheduler-, Validierungs- und Systemrueckmeldungen als Live Region dar und bleibt bewusst klein genug, um in RMT-Shells als Feedback-Baustein genutzt zu werden.
|
|
8
|
+
|
|
9
|
+
## Verwendung
|
|
10
|
+
|
|
11
|
+
```html
|
|
12
|
+
<x-status id="route-status" type="warning" state="validating" message="Validation is running" dismissible busy>
|
|
13
|
+
<span slot="label">Scheduler status</span>
|
|
14
|
+
</x-status>
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Attribute
|
|
18
|
+
|
|
19
|
+
| Attribut | Typ | Beschreibung |
|
|
20
|
+
|----------|-----|--------------|
|
|
21
|
+
| `type` | String | `info`, `success`, `warning` oder `error` |
|
|
22
|
+
| `state` | String | fachlicher Status-Key |
|
|
23
|
+
| `message` | String | sichtbare Meldung |
|
|
24
|
+
| `dismissible` | Boolean | zeigt Schliessen-Aktion |
|
|
25
|
+
| `busy` | Boolean | setzt `aria-busy` |
|
|
26
|
+
| `polite` | Boolean | erzwingt polite Live Region |
|
|
27
|
+
| `label` | String | Label ohne Slot |
|
|
28
|
+
|
|
29
|
+
## Events
|
|
30
|
+
|
|
31
|
+
| Event | Detail |
|
|
32
|
+
|-------|--------|
|
|
33
|
+
| `status-changed` | `{ type, status, message, busy, source: 'x-status' }` |
|
|
34
|
+
| `status-dismissed` | `{ type, status, message, busy, source: 'x-status' }` |
|
|
35
|
+
|
|
36
|
+
## API
|
|
37
|
+
|
|
38
|
+
- `element.state`
|
|
39
|
+
- `element.setStatus(nextState)`
|
|
40
|
+
- `element.announce(message?)`
|
|
41
|
+
- `element.dismiss()`
|
|
42
|
+
|
|
43
|
+
## State, RMT und Fabric
|
|
44
|
+
|
|
45
|
+
`<x-status>` schreibt nach `xstatus-state-<id>`. RMT kann ueber `xtend.rmt.component-contract.v1` Status-Updates auf `feedback.status.update` schedulen, ohne XTend intern zu importieren. Der Kernel Boundary bleibt `no-rmt-kernel-import-of-xtend-types`; die UI-Komponente ist der Adapter nach aussen.
|
|
46
|
+
|
|
47
|
+
## A11y und Performance
|
|
48
|
+
|
|
49
|
+
Das Control nutzt `role="status"` fuer polite Meldungen und `role=alert` fuer kritische Warn-/Fehlerpfade. `scheduler-feedback`, `status-update` und `validation-feedback` sind als Screenreader-Signale dokumentiert. Das Performance-Profil ist `xtend.performance.component-profile.v1` mit `budgetClass: 'feedback-small'`, `lane: 'feedback'` und `hydrationPolicy: 'visible'`.
|
|
50
|
+
|
|
51
|
+
## Feedback Status UX ab WP-E11-09
|
|
52
|
+
|
|
53
|
+
`<x-status>` stellt `xtendFeedbackStatusUxProfile` mit `xtend.component.feedback-status-ux-profile.v1` bereit. Das Profil verbindet `status-changed`, `status-dismissed`, `xstatus-state-<id>`, `feedback.status.update`, Fabric-Lane `feedback`, A11y-Lane `a11y` und RMT Shell Authoring.
|
|
54
|
+
|
|
55
|
+
Die Komponente ist der gemeinsame Inline-Status fuer Forms, Scheduler, Route-Feedback und Diagnostics. Sie vermeidet reine Farbkommunikation, bleibt forced-colors-safe und kann per `announce()` explizit als Live-Region aktualisiert werden.
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# xsummary - XTend Komponente
|
|
2
|
+
|
|
3
|
+
## Uebersicht
|
|
4
|
+
|
|
5
|
+
`<x-summary>` ist eine ausklappbare Disclosure-Komponente fuer kompakte Detailbereiche. Sie nutzt native `<details>`/`<summary>` Semantik, spiegelt ihren Open-State in `xstate` und eignet sich fuer FAQ-Bloecke, technische Details, Inline-Hilfen oder Dashboard-Zusammenfassungen.
|
|
6
|
+
|
|
7
|
+
## Verwendung
|
|
8
|
+
|
|
9
|
+
```html
|
|
10
|
+
<x-summary id="billing-details" type="info" open>
|
|
11
|
+
<span slot="title">Abrechnungsdetails</span>
|
|
12
|
+
<p>Alle Rechnungspositionen werden nach Projekt und Zeitraum gruppiert.</p>
|
|
13
|
+
</x-summary>
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Attribute
|
|
17
|
+
|
|
18
|
+
| Attribut | Typ | Beschreibung |
|
|
19
|
+
|----------|-----|--------------|
|
|
20
|
+
| `open` | boolean | oeffnet den Detailbereich |
|
|
21
|
+
| `type` | string | visuelle Variante: `info`, `success`, `warning`, `danger` |
|
|
22
|
+
|
|
23
|
+
## Slots
|
|
24
|
+
|
|
25
|
+
| Slot | Beschreibung |
|
|
26
|
+
|------|--------------|
|
|
27
|
+
| `title` | Inhalt des klickbaren Summary-Kopfs |
|
|
28
|
+
| default | ausklappbarer Inhalt |
|
|
29
|
+
|
|
30
|
+
## Events
|
|
31
|
+
|
|
32
|
+
| Event | Beschreibung |
|
|
33
|
+
|-------|--------------|
|
|
34
|
+
| `open` | wird beim Oeffnen ausgelöst |
|
|
35
|
+
| `close` | wird beim Schliessen ausgeloest |
|
|
36
|
+
|
|
37
|
+
Das Event-Detail enthaelt:
|
|
38
|
+
|
|
39
|
+
```js
|
|
40
|
+
{
|
|
41
|
+
open: true
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## State-Contract
|
|
46
|
+
|
|
47
|
+
Die Instanz nutzt einen kompatiblen `xstate`-Key:
|
|
48
|
+
|
|
49
|
+
```js
|
|
50
|
+
xsummary-open-<id>
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Wenn keine `id` gesetzt ist, erzeugt die Komponente eine stabile Runtime-ID fuer die aktuelle Instanz. Externe State-Aenderungen auf den Key koennen die Komponente oeffnen oder schliessen.
|
|
54
|
+
|
|
55
|
+
Die Synchronisierung ist reentrant-sicher: Attribute, nativer `<details>`-State und `xstate` werden ueber eine zentrale Open-State-Routine abgeglichen. Unveraenderte Werte werden nicht erneut in `xstate` publiziert, damit externe State-Updates keine rekursive `open()`/`close()`-Schleife ausloesen.
|
|
56
|
+
|
|
57
|
+
## A11y
|
|
58
|
+
|
|
59
|
+
- Das native `<summary>` bleibt die primaere Tastatur- und Screenreader-Oberflaeche.
|
|
60
|
+
- `Enter` und `Space` toggeln den Zustand.
|
|
61
|
+
- `aria-expanded` wird mit dem aktuellen Open-State synchronisiert.
|
|
62
|
+
- Der Summary-Kopf ist fokussierbar und besitzt einen sichtbaren Fokuszustand.
|
|
63
|
+
|
|
64
|
+
## Hinweise
|
|
65
|
+
|
|
66
|
+
- `x-summary` ist eine interaktive Display-Komponente und seit `ER-WP-33` component-suite-gated.
|
|
67
|
+
- Die Catalog Coverage Matrix fuehrt die Komponente nun als `contract-gated`.
|
|
68
|
+
- Weitere Contract-Haertung fuer Performance, Browser-Regression und Long-Tail-Abdeckung folgt in `ER-WP-35`; Public Types und Event Details sind seit `ER-WP-34` vorhanden.
|
|
69
|
+
|
|
70
|
+
## Layout Display Media UX Profil
|
|
71
|
+
|
|
72
|
+
`x-summary` stellt ab `WP-E11-12` das Profil `xtend.component.layout-display-media-ux-profile.v1` bereit. Die Komponente bleibt Disclosure-Display-Shell und nutzt den State-Key `xsummary-open-<id>`.
|
|
73
|
+
|
|
74
|
+
- Profil-Getter: `xtendLayoutDisplayMediaUxProfile`
|
|
75
|
+
- Schedule: `component.visible.mount`
|
|
76
|
+
- Events: `open`, `close`
|
|
77
|
+
- Snapshot: `snapshot()`
|
|
78
|
+
- CSS Parts: `container`, `summary`, `content`
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# xsurfacemanager - XTend Komponente
|
|
2
|
+
|
|
3
|
+
`x-surface-manager` ist die App-Shell-Surface-Wurzel fuer Multi Window Oberflaechen. Die Komponente instanziiert den `xtend.surface.controller.v1`, registriert slotted `x-surface-window`, `x-side-panel` und kompatible Overlay-Elemente und spiegelt Layout-, Fokus- und Lifecycle-Aenderungen als `xtend.surface.snapshot.v1`.
|
|
4
|
+
|
|
5
|
+
## Attribute
|
|
6
|
+
|
|
7
|
+
- `manager-id`: stabile Manager-ID fuer Surface Records
|
|
8
|
+
- `state-key`: xstate Registry-Key, standardmaessig `xtend.surface.registry`
|
|
9
|
+
- `layout`: Layout-Profil fuer die Surface-Zone
|
|
10
|
+
- `restore-key`: spaeterer Persistence-Key fuer Layout-Restore
|
|
11
|
+
- `route-aware`: markiert Route-gebundene Surface-Verwaltung
|
|
12
|
+
- `modal-policy`: Policy fuer spaetere modale Surface-Stacks
|
|
13
|
+
|
|
14
|
+
## Slots
|
|
15
|
+
|
|
16
|
+
- `windows`: frei positionierbare Windows
|
|
17
|
+
- `panels`: `x-side-panel` Surfaces mit Docked/Pinned/Overlay/Collapsed Modes
|
|
18
|
+
- `overlays`: optionale Overlay-Bridge fuer `x-modal`, `x-dialog` und `x-drawer`
|
|
19
|
+
- `default`: einfache Light-DOM-Fallbacks
|
|
20
|
+
|
|
21
|
+
## API
|
|
22
|
+
|
|
23
|
+
`registerSurface(surface)`, `openSurface(id)`, `closeSurface(id)`, `focusSurface(id)`, `updateSurface(id, patch)`, `moveSurface(id, bounds)`, `resizeSurface(id, bounds)`, `minimizeSurface(id)`, `maximizeSurface(id)`, `restoreSurface(id)`, `pinSurface(id)`, `collapseSurface(id)`, `expandSurface(id)`, `dockSurface(id)` und `snapshot()` delegieren auf den Surface Controller.
|
|
24
|
+
|
|
25
|
+
Events: `surface-manager-ready`, `surface-registered`, `surface-opened`, `surface-closed`, `surface-focused`, `surface-updated`, `surface-layout-changed`, `surface-window-command`, `surface-panel-command` und `surface-overlay-command`.
|
|
26
|
+
|
|
27
|
+
RMT: `xtend.rmt.component-contract.v1`, `xtend.surface.manager.v1`, `xtend.surface.controller.v1`, `xtend.surface.overlay-stack-bridge.v1`, `surface.visible.render`, `surface.user-blocking.open`, `surface.user-blocking.close`, `surface.transition.layout`, `surface.diagnostics.snapshot`.
|