@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,157 @@
|
|
|
1
|
+
# xhero - XTend Component
|
|
2
|
+
|
|
3
|
+
> **See also:** [xsection](./xsection.md), [xbutton](./xbutton.md)
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
`<x-hero>` is a flexible hero component for high-impact headers, landing pages,
|
|
8
|
+
and entry points. It supports slots for title, subtitle, actions, and media.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Features
|
|
13
|
+
|
|
14
|
+
- Flexible layout for hero areas
|
|
15
|
+
- Slots for title, text, actions, and media
|
|
16
|
+
- Theming through CSS custom properties
|
|
17
|
+
- Theme variants through `background-light`, `background-dark`,
|
|
18
|
+
`font-color-light`, `font-color-dark`, `overlay-light`, and `overlay-dark`
|
|
19
|
+
- Responsive design
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Usage
|
|
24
|
+
|
|
25
|
+
```html
|
|
26
|
+
<x-hero>
|
|
27
|
+
<h1 slot="title">Welcome!</h1>
|
|
28
|
+
<p slot="subtitle">XTend makes web development simple.</p>
|
|
29
|
+
<x-button slot="action">Get started</x-button>
|
|
30
|
+
</x-hero>
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Attributes
|
|
36
|
+
|
|
37
|
+
| Attribute | Type | Description |
|
|
38
|
+
|-----------|------|-------------|
|
|
39
|
+
| `background` | String | fixed background or CSS variable |
|
|
40
|
+
| `background-light` | String | background for light themes |
|
|
41
|
+
| `background-dark` | String | background for dark themes |
|
|
42
|
+
| `background-image` | String | image background |
|
|
43
|
+
| `overlay` | Boolean | activates overlay surface |
|
|
44
|
+
| `overlay-light` | String | overlay color for light themes |
|
|
45
|
+
| `overlay-dark` | String | overlay color for dark themes |
|
|
46
|
+
| `font-color` | String | fixed text color |
|
|
47
|
+
| `font-color-light` | String | text color for light themes |
|
|
48
|
+
| `font-color-dark` | String | text color for dark themes |
|
|
49
|
+
| `animate` | Boolean | activates entrance transition with reduced-motion fallback |
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Events
|
|
54
|
+
|
|
55
|
+
| Event | Description |
|
|
56
|
+
|-------|-------------|
|
|
57
|
+
| - | - |
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## API
|
|
62
|
+
|
|
63
|
+
- **Insert content through slots**
|
|
64
|
+
- **State integration:** optional through xstate
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Example: Dynamic JS
|
|
69
|
+
|
|
70
|
+
```js
|
|
71
|
+
const hero = document.createElement('x-hero');
|
|
72
|
+
hero.innerHTML = '<h1 slot="title">Hello XTend!</h1>';
|
|
73
|
+
document.body.appendChild(hero);
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Styling and Theming
|
|
79
|
+
|
|
80
|
+
```css
|
|
81
|
+
x-hero {
|
|
82
|
+
--hero-bg: #f5f5f5;
|
|
83
|
+
--hero-color: #222;
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Viewport Safety
|
|
88
|
+
|
|
89
|
+
`x-hero` constrains host, root, and content to `max-width: 100%` and avoids
|
|
90
|
+
inner `100vw` width on narrow viewports. The component therefore stays inside
|
|
91
|
+
the visible viewport even in padded app shells or docs layouts.
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Accessibility
|
|
96
|
+
|
|
97
|
+
- Semantic HTML, ARIA
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
*Last updated: July 16, 2025*
|
|
102
|
+
|
|
103
|
+
## Layout Display Media UX Profile
|
|
104
|
+
|
|
105
|
+
Starting with `WP-E11-12`, `x-hero` exposes the profile
|
|
106
|
+
`xtend.component.layout-display-media-ux-profile.v1`. The component remains a
|
|
107
|
+
hero/display shell and can be rendered first in RMT with
|
|
108
|
+
`component.shell.render`. The state key is `xhero-state-<id>`.
|
|
109
|
+
|
|
110
|
+
- Profile getter: `xtendLayoutDisplayMediaUxProfile`
|
|
111
|
+
- Schedule: `component.shell.render`
|
|
112
|
+
- Events: `hero-rendered`, `hero-animated`
|
|
113
|
+
- Snapshot: `snapshot()`
|
|
114
|
+
- CSS parts: `root`, `overlay`, `content`, `scroll-button`
|
|
115
|
+
|
|
116
|
+
## ECH-WP-07 Token Table and signatureDesign
|
|
117
|
+
|
|
118
|
+
`signatureDesign`: immersive enterprise hero composition with editorial depth,
|
|
119
|
+
media-capable surface, and tokenized content block. The default effect should
|
|
120
|
+
feel elegant and independent while allowing image, app, and corporate
|
|
121
|
+
presentation.
|
|
122
|
+
|
|
123
|
+
| Token | Purpose |
|
|
124
|
+
| --- | --- |
|
|
125
|
+
| `--xtend-layout-surface` | hero and content surface |
|
|
126
|
+
| `--xtend-layout-text` | hero text color |
|
|
127
|
+
| `--xtend-layout-border-color` | scroll-control edge |
|
|
128
|
+
| `--xtend-layout-radius` | hero, content, and title radius |
|
|
129
|
+
| `--xtend-layout-elevation` | hero, content, and title shadow |
|
|
130
|
+
| `--xtend-layout-spacing` | hero and content padding |
|
|
131
|
+
| `--xtend-layout-gap` | composition spacing for theme authors |
|
|
132
|
+
| `--xtend-layout-font-family` | hero typography |
|
|
133
|
+
| `--xtend-layout-font-size` | control and content scaling |
|
|
134
|
+
| `--xtend-layout-media-radius` | image/hero radius |
|
|
135
|
+
| `--xtend-layout-focus-ring` | scroll-control focus |
|
|
136
|
+
| `--xtend-layout-grid-min` | responsive composition base |
|
|
137
|
+
| `--xtend-layout-content-max` | content width |
|
|
138
|
+
|
|
139
|
+
## ECH-WP-07 External Theme
|
|
140
|
+
|
|
141
|
+
```css
|
|
142
|
+
[data-xtend-layout-theme="enterprise-foreign"] x-hero {
|
|
143
|
+
--xtend-layout-surface: rgba(248, 244, 239, 0.88);
|
|
144
|
+
--xtend-layout-text: #15231d;
|
|
145
|
+
--xtend-layout-border-color: rgba(21, 35, 29, 0.22);
|
|
146
|
+
--xtend-layout-radius: 0.45rem;
|
|
147
|
+
--xtend-layout-elevation: 0 20px 60px rgba(21, 35, 29, 0.16);
|
|
148
|
+
--xtend-layout-spacing: 4rem 2rem;
|
|
149
|
+
--xtend-layout-gap: 1rem;
|
|
150
|
+
--xtend-layout-font-family: "Aptos Display", "Segoe UI", sans-serif;
|
|
151
|
+
--xtend-layout-font-size: 1.05rem;
|
|
152
|
+
--xtend-layout-media-radius: 0.65rem;
|
|
153
|
+
--xtend-layout-focus-ring: 3px solid #8f4f2a;
|
|
154
|
+
--xtend-layout-grid-min: minmax(0, 1fr);
|
|
155
|
+
--xtend-layout-content-max: 42rem;
|
|
156
|
+
}
|
|
157
|
+
```
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
# xicon - XTend Component
|
|
2
|
+
|
|
3
|
+
> **See also:** [xbutton](./xbutton.md), [xtheme](./xtheme.md), [xrouter](./xrouter.md)
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
`<x-icon>` is the universal iconography adapter for XTend apps. The component
|
|
8
|
+
renders local inline SVG icons, registered icon packs, or controlled URL
|
|
9
|
+
sources while remaining framework-agnostic, RMT-compatible, and CDN-free.
|
|
10
|
+
|
|
11
|
+
The included `core` pack covers the most important XTend UI symbols. The local
|
|
12
|
+
`lucide` adapter serves as a larger superset, loads from local ESM artifacts,
|
|
13
|
+
and avoids external CDN dependencies, FCP slowdowns, and privacy issues.
|
|
14
|
+
|
|
15
|
+
## Features
|
|
16
|
+
|
|
17
|
+
- local `core` icon pack with base icons for shell, docs, status, and
|
|
18
|
+
navigation
|
|
19
|
+
- local `lucide` IconPack adapter as a superset without remote runtime import
|
|
20
|
+
- global registry `window.XTend.icons` for custom icon packs and corporate
|
|
21
|
+
design sets
|
|
22
|
+
- direct sources through `src` for SVG files from repo, app bundle, or host CDN
|
|
23
|
+
policies
|
|
24
|
+
- raw SVG pack entries are reduced to allowed nodes and attributes before
|
|
25
|
+
rendering
|
|
26
|
+
- a11y mode for decorative and semantic icons
|
|
27
|
+
- state integration through `xicon-state-<id>`
|
|
28
|
+
- RMT shell authoring through `xtend.rmt.component-contract.v1`
|
|
29
|
+
- performance profile `xtend.performance.component-profile.v1` with
|
|
30
|
+
`display-micro` budget
|
|
31
|
+
|
|
32
|
+
## Usage
|
|
33
|
+
|
|
34
|
+
```html
|
|
35
|
+
<x-icon name="search" label="Search"></x-icon>
|
|
36
|
+
<x-icon name="gauge" pack="lucide" size="1.25rem" label="Performance"></x-icon>
|
|
37
|
+
<x-icon src="/assets/icons/company.svg" label="Corporate Icon"></x-icon>
|
|
38
|
+
<x-icon name="chevron-right" decorative></x-icon>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Attributes
|
|
42
|
+
|
|
43
|
+
| Attribute | Type | Description |
|
|
44
|
+
|-----------|------|-------------|
|
|
45
|
+
| `name` | String | icon name or alias from the registry |
|
|
46
|
+
| `pack` | String | optional icon pack, for example `core` or `lucide` |
|
|
47
|
+
| `src` | String | controlled URL source for an icon from repo, app bundle, or host policy |
|
|
48
|
+
| `label` | String | accessible name for screen readers |
|
|
49
|
+
| `size` | String | CSS size, for example `1em`, `20px`, `1.25rem` |
|
|
50
|
+
| `stroke-width` | String | stroke width for inline SVG paths |
|
|
51
|
+
| `color` | String | CSS color value; default is `currentColor` |
|
|
52
|
+
| `decorative` | Boolean | sets `aria-hidden` and removes semantic image role |
|
|
53
|
+
|
|
54
|
+
## Events
|
|
55
|
+
|
|
56
|
+
| Event | Description |
|
|
57
|
+
|-------|-------------|
|
|
58
|
+
| `icon-ready` | icon was resolved from pack or `src` |
|
|
59
|
+
| `icon-missing` | registry could not resolve `name`/`pack` |
|
|
60
|
+
| `icon-pack-registered` | a pack was registered in the global registry |
|
|
61
|
+
|
|
62
|
+
## API
|
|
63
|
+
|
|
64
|
+
| Method | Purpose |
|
|
65
|
+
|--------|---------|
|
|
66
|
+
| `setIcon(name, options?)` | sets icon, pack, label, or `src` programmatically |
|
|
67
|
+
| `registerPack(pack, options?)` | registers a pack through the component |
|
|
68
|
+
| `snapshot()` | returns `xtend.component.x-icon.state.v1` including registry snapshot |
|
|
69
|
+
| `window.XTend.icons.register(pack, options?)` | global pack registration |
|
|
70
|
+
| `window.XTend.icons.resolve(name, options?)` | global resolution without rendering |
|
|
71
|
+
| `window.XTend.icons.snapshot()` | registry snapshot for diagnostics |
|
|
72
|
+
|
|
73
|
+
## Custom Icon Packs
|
|
74
|
+
|
|
75
|
+
```js
|
|
76
|
+
window.XTend.icons.register({
|
|
77
|
+
id: 'brand',
|
|
78
|
+
label: 'Corporate Design Icons',
|
|
79
|
+
cdnAllowed: false,
|
|
80
|
+
icons: {
|
|
81
|
+
product: {
|
|
82
|
+
aliases: ['logo-mark'],
|
|
83
|
+
nodes: [
|
|
84
|
+
{ tag: 'path', attrs: { d: 'M12 3 21 8v8l-9 5-9-5V8Z' } }
|
|
85
|
+
]
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Packs can contain custom SVG node descriptors, individual path strings, inline
|
|
92
|
+
SVG records, or URL records. Remote sources are not the XTend default; hosts
|
|
93
|
+
must intentionally provide them as `src` or pack URLs.
|
|
94
|
+
|
|
95
|
+
## ECH-WP-04 Control Rule
|
|
96
|
+
|
|
97
|
+
No text glyphs as controls: close, menu, disclosure, status, and action
|
|
98
|
+
controls must not be styled with visible characters such as `x`, `×`,
|
|
99
|
+
arrows, or emoji. Use `x-icon`, inline SVG, or a tokenized CSS graphic.
|
|
100
|
+
|
|
101
|
+
Required for icon controls:
|
|
102
|
+
|
|
103
|
+
- The button has an accessible name, for example `aria-label`.
|
|
104
|
+
- The button exposes a stable control part, for example `part="close control"`.
|
|
105
|
+
- The graphic exposes an icon part, for example `part="control icon"` or
|
|
106
|
+
`part="close-icon control icon"`.
|
|
107
|
+
- The core pack contains at least `close`, `menu`, `chevron-left`,
|
|
108
|
+
`chevron-right`, `chevron-up`, `chevron-down`, `success`, `warning`, `error`,
|
|
109
|
+
and `info` for framework controls.
|
|
110
|
+
- Custom icon packs must use local SVG node descriptors or safe `src` sources;
|
|
111
|
+
CDN dependencies are not an XTend default base.
|
|
112
|
+
|
|
113
|
+
## RMT and Fabric
|
|
114
|
+
|
|
115
|
+
`x-icon` declares `xtendRmtMetadata` with `adapter: 'xtend.component'`,
|
|
116
|
+
`templateMode: 'dom_descriptor'`, `shellAuthoring.attributes`, and the boundary
|
|
117
|
+
`no-rmt-kernel-import-of-xtend-types`. RMT can therefore author icons in app
|
|
118
|
+
shells, navigation, buttons, or docs templates without importing the XTend
|
|
119
|
+
kernel or an icon vendor.
|
|
120
|
+
|
|
121
|
+
Fabric consumes:
|
|
122
|
+
|
|
123
|
+
- `icon-ready`
|
|
124
|
+
- `icon-missing`
|
|
125
|
+
- `icon-pack-registered`
|
|
126
|
+
- State key `xicon-state-<id>`
|
|
127
|
+
- `snapshot()`
|
|
128
|
+
|
|
129
|
+
## Styling and Theming
|
|
130
|
+
|
|
131
|
+
```css
|
|
132
|
+
x-icon {
|
|
133
|
+
--xtend-icon-size: 1rem;
|
|
134
|
+
--xtend-icon-color: currentColor;
|
|
135
|
+
--xtend-icon-stroke-width: 2;
|
|
136
|
+
}
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
The icon follows `currentColor` and therefore integrates into `x-theme`,
|
|
140
|
+
`x-header`, `x-button`, `x-menu`, and custom corporate design tokens. In
|
|
141
|
+
forced-colors mode, the component remains readable through system colors.
|
|
142
|
+
|
|
143
|
+
## Accessibility
|
|
144
|
+
|
|
145
|
+
- with `label`, the host renders `role="img"` and `aria-label`
|
|
146
|
+
- without label or with `decorative`, the component renders `aria-hidden`
|
|
147
|
+
- URL icons receive an empty `alt` when decorative
|
|
148
|
+
- `icon-missing` is available as a diagnostic event without burdening screen
|
|
149
|
+
readers with error signals
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
# xinput - XTend Component
|
|
2
|
+
|
|
3
|
+
> **See also:** [xform](./xform.md), [xstate](./xstate.md)
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
`<x-input>` is a versatile input field with theming, state integration, and
|
|
8
|
+
full form support.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Features
|
|
13
|
+
|
|
14
|
+
- Standard input with slot for label
|
|
15
|
+
- State integration through xstate
|
|
16
|
+
- Theming through CSS custom properties
|
|
17
|
+
- Form integration
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Usage
|
|
22
|
+
|
|
23
|
+
```html
|
|
24
|
+
<x-input value="Hello"></x-input>
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Attributes
|
|
30
|
+
|
|
31
|
+
| Attribute | Type | Description |
|
|
32
|
+
|-----------|------|-------------|
|
|
33
|
+
| `value` | String | value of the input field |
|
|
34
|
+
| `type` | String | input type (text, number, etc.) |
|
|
35
|
+
| `placeholder` | String | placeholder text |
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Events
|
|
40
|
+
|
|
41
|
+
| Event | Description |
|
|
42
|
+
|-------|-------------|
|
|
43
|
+
| `input` | emitted while typing |
|
|
44
|
+
| `change` | emitted when the value changes |
|
|
45
|
+
| `input-changed` | current XTend contract for value changes, detail: `{ value }` |
|
|
46
|
+
| `validation-failed` | validation error, detail: `{ value }` |
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## API
|
|
51
|
+
|
|
52
|
+
- **Set/read value:** `element.value = 'Text'`
|
|
53
|
+
- **State integration:** automatic through xstate
|
|
54
|
+
- **Validation:** `element.checkValidity()`, `element.reportValidity()`
|
|
55
|
+
- **Reset:** `element.reset()`
|
|
56
|
+
|
|
57
|
+
## State Contract from ER-WP-33
|
|
58
|
+
|
|
59
|
+
`<x-input>` writes its value to `xinput-value-<id>` and reacts to external
|
|
60
|
+
changes of that key. The validation region uses `role="alert"` and
|
|
61
|
+
`aria-live="assertive"`, so form errors become semantically visible and not
|
|
62
|
+
only color-coded.
|
|
63
|
+
|
|
64
|
+
## Form Controls UX from WP-E11-08
|
|
65
|
+
|
|
66
|
+
`<x-input>` exposes `xtendFormControlUxProfile` with
|
|
67
|
+
`xtend.component.form-control-ux-profile.v1`. The profile connects label, hint,
|
|
68
|
+
error, `input-changed`, `validation-failed`, `xinput-value-<id>`,
|
|
69
|
+
`ui.user-blocking.input`, Fabric lane `user-blocking`, and RMT shell authoring.
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Example: Dynamic JS
|
|
74
|
+
|
|
75
|
+
```js
|
|
76
|
+
const input = document.createElement('x-input');
|
|
77
|
+
input.value = 'Hello';
|
|
78
|
+
document.body.appendChild(input);
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Styling and Theming
|
|
84
|
+
|
|
85
|
+
```css
|
|
86
|
+
x-input {
|
|
87
|
+
--input-border: 1px solid #ccc;
|
|
88
|
+
--input-bg: #fff;
|
|
89
|
+
--input-bg-dark: #0f0f12;
|
|
90
|
+
--input-placeholder-color-dark: #b8c4d4;
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
`<x-input>` automatically uses `--xtend-surface` and `--xtend-text` from
|
|
95
|
+
`x-theme`. In `data-theme="dark"`, a dark background is set through
|
|
96
|
+
`--input-bg-dark`, `--xtend-control-bg-dark`, or the theme surface fallback so
|
|
97
|
+
text and search fields remain readable in the Docs App.
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Accessibility
|
|
102
|
+
|
|
103
|
+
- Label slot, ARIA, form integration
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
*Last updated: July 16, 2025*
|
|
108
|
+
|
|
109
|
+
## ECH-WP-08 Form Theme/A11y Hardening
|
|
110
|
+
|
|
111
|
+
`signatureDesign`: precise enterprise text field with calm surface, clear
|
|
112
|
+
status typography, and dense but readable form rhythm.
|
|
113
|
+
|
|
114
|
+
| Token | Purpose |
|
|
115
|
+
| --- | --- |
|
|
116
|
+
| `--xtend-form-text` | host text color |
|
|
117
|
+
| `--xtend-form-control-surface` | input surface |
|
|
118
|
+
| `--xtend-form-control-text` | input text |
|
|
119
|
+
| `--xtend-form-label-text` | label |
|
|
120
|
+
| `--xtend-form-helper-text` | helper/hint |
|
|
121
|
+
| `--xtend-form-error-text` | error text |
|
|
122
|
+
| `--xtend-form-error-surface` | error surface |
|
|
123
|
+
| `--xtend-form-error-border` | error edge and marker |
|
|
124
|
+
| `--xtend-form-focus-ring` | native focus outline |
|
|
125
|
+
| `--xtend-form-radius` | control and error radius |
|
|
126
|
+
| `--xtend-form-gap` | label, helper, and error spacing |
|
|
127
|
+
| `--xtend-form-font-family` | form typography |
|
|
128
|
+
| `--xtend-form-control-font-size` | control font |
|
|
129
|
+
| `--xtend-form-helper-font-size` | helper/error font |
|
|
130
|
+
| `--xtend-form-icon-color` | icon/affordance color for controls with icons |
|
|
131
|
+
|
|
132
|
+
Density profiles: `density="comfortable"`, `density="compact"`, and
|
|
133
|
+
`density="dense"`. Invalid/error state is not color-only: control edge, inner
|
|
134
|
+
ring, and error marker remain visible in dark/forced-colors modes.
|
|
135
|
+
|
|
136
|
+
```css
|
|
137
|
+
[data-xtend-form-theme="enterprise-foreign"] x-input {
|
|
138
|
+
--xtend-form-control-surface: #fbf8f2;
|
|
139
|
+
--xtend-form-control-text: #16231f;
|
|
140
|
+
--xtend-form-label-text: #22312c;
|
|
141
|
+
--xtend-form-helper-text: #596861;
|
|
142
|
+
--xtend-form-error-text: #7d231c;
|
|
143
|
+
--xtend-form-error-border: #a64036;
|
|
144
|
+
--xtend-form-focus-ring: 3px solid #8f4f2a;
|
|
145
|
+
--xtend-form-radius: 0.35rem;
|
|
146
|
+
}
|
|
147
|
+
```
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# xlightbox - XTend Component
|
|
2
|
+
|
|
3
|
+
> **See also:** [xplayer](./xplayer.md)
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
`<x-lightbox>` displays images in a viewport-wide overlay. It supports trigger
|
|
8
|
+
slots, API-controlled opening, Escape close, focus return, and
|
|
9
|
+
viewport-bounded media scaling.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Features
|
|
14
|
+
|
|
15
|
+
- Overlay for images and media
|
|
16
|
+
- Trigger slot and global helper API
|
|
17
|
+
- Keyboard support with Escape close
|
|
18
|
+
- Viewport-bounded image scaling with body portal
|
|
19
|
+
- Theming through CSS custom properties
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Usage
|
|
24
|
+
|
|
25
|
+
```html
|
|
26
|
+
<x-lightbox id="logo-lightbox" src="/assets/logo.png" alt="XTend Logo">
|
|
27
|
+
<x-button slot="trigger" variant="secondary">View logo</x-button>
|
|
28
|
+
</x-lightbox>
|
|
29
|
+
|
|
30
|
+
<img src="/assets/preview.jpg" data-xlightbox alt="Preview" />
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Attributes
|
|
36
|
+
|
|
37
|
+
| Attribute | Type | Description |
|
|
38
|
+
|-----------|------|-------------|
|
|
39
|
+
| `src` | String | image source for trigger, API, and `data-xlightbox` |
|
|
40
|
+
| `open` | Boolean | opens the lightbox in controlled mode when `src` is set |
|
|
41
|
+
| `alt` | String | alternative text for the displayed image |
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Events
|
|
46
|
+
|
|
47
|
+
| Event | Description |
|
|
48
|
+
|-------|-------------|
|
|
49
|
+
| `lightbox-opened` | emitted on open, detail: `{ src }` |
|
|
50
|
+
| `lightbox-closed` | emitted on close |
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## API
|
|
55
|
+
|
|
56
|
+
- **Open:** `element.open(src)`
|
|
57
|
+
- **Close:** `element.close()`
|
|
58
|
+
- **Global helper:** `window.showLightbox(src)`
|
|
59
|
+
- **State:** `xlightbox-open-<id>`
|
|
60
|
+
|
|
61
|
+
`src` configures the image source but does not open the lightbox
|
|
62
|
+
automatically. For direct UI usage, place an element in the `trigger` slot.
|
|
63
|
+
When opened, the lightbox portals itself to `document.body` so overlay and
|
|
64
|
+
image are not clipped by app-shell containers, `main`, cards, or transformed
|
|
65
|
+
demo frames.
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Example: Dynamic JS
|
|
70
|
+
|
|
71
|
+
```js
|
|
72
|
+
const lightbox = document.createElement('x-lightbox');
|
|
73
|
+
document.body.appendChild(lightbox);
|
|
74
|
+
lightbox.open('/assets/image.jpg');
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## Styling and Theming
|
|
80
|
+
|
|
81
|
+
```css
|
|
82
|
+
x-lightbox {
|
|
83
|
+
--lightbox-bg: rgba(0,0,0,0.9);
|
|
84
|
+
--lightbox-padding: clamp(0.75rem, 2vw, 2rem);
|
|
85
|
+
--lightbox-radius: 0.75rem;
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Accessibility
|
|
92
|
+
|
|
93
|
+
- focus management, keyboard navigation, and focus return
|
|
94
|
+
- `role="dialog"`, `aria-modal="true"`, and closed state with `aria-hidden`
|
|
95
|
+
and `inert`
|
|
96
|
+
- image scaling via `object-fit: contain` and
|
|
97
|
+
`max-height: calc(100dvh - padding)`
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
*Last updated: July 16, 2025*
|
|
102
|
+
|
|
103
|
+
## Layout Display Media UX Profile
|
|
104
|
+
|
|
105
|
+
Starting with `WP-E11-12`, `x-lightbox` exposes the profile
|
|
106
|
+
`xtend.component.layout-display-media-ux-profile.v1`. The component combines
|
|
107
|
+
overlay and media maturity and uses the state key `xlightbox-open-<id>`.
|
|
108
|
+
|
|
109
|
+
- Profile getter: `xtendLayoutDisplayMediaUxProfile`
|
|
110
|
+
- Schedule: `media.lazy.load`
|
|
111
|
+
- Events: `lightbox-opened`, `lightbox-closed`
|
|
112
|
+
- Snapshot: `snapshot()`
|
|
113
|
+
- CSS parts: `overlay`, `content`, `close`, `media`
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
# xlink - XTend Component
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
`<x-link>` is the declarative link component for XTend SPAs. It works with
|
|
6
|
+
`<x-router>`, detects hash and history mode, and keeps active state current
|
|
7
|
+
even during programmatic navigation.
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
```html
|
|
12
|
+
<x-link href="/docs">Open documentation</x-link>
|
|
13
|
+
<x-link href="https://example.com">External link</x-link>
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Attributes
|
|
17
|
+
|
|
18
|
+
| Attribute | Type | Description |
|
|
19
|
+
|-----------|------|-------------|
|
|
20
|
+
| `href` | string | target path or external URL |
|
|
21
|
+
| `active` | boolean | set when the link is currently active |
|
|
22
|
+
| `state` | string | optional JSON for `history.pushState()` |
|
|
23
|
+
|
|
24
|
+
## Events
|
|
25
|
+
|
|
26
|
+
| Event | Description |
|
|
27
|
+
|-------|-------------|
|
|
28
|
+
| `before-navigate` | cancelable, before navigation |
|
|
29
|
+
| `after-navigate` | after successful navigation |
|
|
30
|
+
|
|
31
|
+
`before-navigate` and `after-navigate` provide:
|
|
32
|
+
|
|
33
|
+
```js
|
|
34
|
+
{
|
|
35
|
+
href: '/docs',
|
|
36
|
+
mode: 'history',
|
|
37
|
+
state: { ... },
|
|
38
|
+
source: 'x-link',
|
|
39
|
+
stateKey: 'xlink-active-link-123',
|
|
40
|
+
scheduleRef: 'ui.user-blocking.navigation'
|
|
41
|
+
}
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Contract
|
|
45
|
+
|
|
46
|
+
- internal links are normalized and navigate in SPA-compatible mode
|
|
47
|
+
- external links keep default behavior and automatically receive
|
|
48
|
+
`target="_blank"` plus `rel="noopener noreferrer"`
|
|
49
|
+
- active state updates on `popstate`, `hashchange`, `x-navigate`, and
|
|
50
|
+
`xrouter-after-navigate`
|
|
51
|
+
- active links mirror `aria-current="page"` and `xlink-active-<id>`
|
|
52
|
+
- Enter and Space activate the same navigation path
|
|
53
|
+
- long labels and slotted icon/text content remain overflow-safe in narrow
|
|
54
|
+
menus, sidebars, and header drawers
|
|
55
|
+
|
|
56
|
+
## Navigation Routing UX Profile
|
|
57
|
+
|
|
58
|
+
`<x-link>` exposes `xtendNavigationRoutingUxProfile` with
|
|
59
|
+
`xtend.component.navigation-routing-ux-profile.v1`. The profile describes
|
|
60
|
+
`x-link` as a router link with `before-navigate`, `after-navigate`,
|
|
61
|
+
`x-navigate`, `xlink-active-<id>`, `ui.user-blocking.navigation`, active state,
|
|
62
|
+
keyboard activation, Fabric lane `user-blocking`, and RMT shell authoring.
|
|
63
|
+
|
|
64
|
+
The link component delegates route announcements to `x-router`, but remains
|
|
65
|
+
responsible for visible active state, keyboard activation, and safe external
|
|
66
|
+
links.
|
|
67
|
+
|
|
68
|
+
## Overflow Safety
|
|
69
|
+
|
|
70
|
+
`x-link` is overflow-safe for app-shell navigation, menus, and sidebars. The
|
|
71
|
+
host constrains itself to the available container, slotted content receives
|
|
72
|
+
`min-width: 0`, and long labels may wrap. For intentionally one-line links,
|
|
73
|
+
set `--xtend-link-white-space: nowrap`.
|
|
74
|
+
|
|
75
|
+
## Notes
|
|
76
|
+
|
|
77
|
+
- router mode is detected from the first discovered `<x-router>`
|
|
78
|
+
- identical target paths do not trigger redundant URL changes
|
|
79
|
+
- `x-link` uses the same navigation contract as `x-router`
|
|
80
|
+
|
|
81
|
+
## ECH-WP-09 Token Table and Navigation States
|
|
82
|
+
|
|
83
|
+
`signatureDesign`: `x-link` is the compact enterprise router link with visible
|
|
84
|
+
current indicator and tokenized active/disabled behavior. Active/current/
|
|
85
|
+
selected, hover, focus, and disabled states must remain readable in dense
|
|
86
|
+
headers, sidebars, and menus.
|
|
87
|
+
|
|
88
|
+
| Token | Purpose |
|
|
89
|
+
| --- | --- |
|
|
90
|
+
| `--xtend-nav-surface` | link surface |
|
|
91
|
+
| `--xtend-nav-text` | link text |
|
|
92
|
+
| `--xtend-nav-border-color` | shared navigation edge |
|
|
93
|
+
| `--xtend-nav-radius` | link radius |
|
|
94
|
+
| `--xtend-nav-gap` | spacing between icon and label |
|
|
95
|
+
| `--xtend-nav-font-family` | link typography |
|
|
96
|
+
| `--xtend-nav-font-size` | link text size |
|
|
97
|
+
| `--xtend-nav-active-surface` | active/current/selected surface |
|
|
98
|
+
| `--xtend-nav-active-text` | active/current/selected text |
|
|
99
|
+
| `--xtend-nav-current-indicator` | non-color-only current indicator |
|
|
100
|
+
| `--xtend-nav-hover-surface` | hover surface |
|
|
101
|
+
| `--xtend-nav-focus-ring` | keyboard focus |
|
|
102
|
+
| `--xtend-nav-disabled-opacity` | disabled dimming |
|
|
103
|
+
|
|
104
|
+
## ECH-WP-09 Keyboard Behavior
|
|
105
|
+
|
|
106
|
+
`Enter` and `Space` activate internal links through the same navigation path as
|
|
107
|
+
click. Disabled links remove the internal `href`, set `aria-disabled="true"`,
|
|
108
|
+
and are not keyboard-activatable. Active/current is mirrored through
|
|
109
|
+
`aria-current="page"`; composite navigation can add `aria-selected="true"` on
|
|
110
|
+
the host.
|
|
111
|
+
|
|
112
|
+
## ECH-WP-09 External Theme
|
|
113
|
+
|
|
114
|
+
```css
|
|
115
|
+
[data-xtend-nav-theme="enterprise-foreign"] x-link {
|
|
116
|
+
--xtend-nav-surface: transparent;
|
|
117
|
+
--xtend-nav-text: #17231f;
|
|
118
|
+
--xtend-nav-border-color: transparent;
|
|
119
|
+
--xtend-nav-radius: 0.3rem;
|
|
120
|
+
--xtend-nav-gap: 0.4rem;
|
|
121
|
+
--xtend-nav-font-family: "Aptos", "Segoe UI", sans-serif;
|
|
122
|
+
--xtend-nav-font-size: 0.96rem;
|
|
123
|
+
--xtend-nav-active-surface: rgba(181, 107, 53, 0.16);
|
|
124
|
+
--xtend-nav-active-text: #173f35;
|
|
125
|
+
--xtend-nav-current-indicator: #b56b35;
|
|
126
|
+
--xtend-nav-hover-surface: rgba(181, 107, 53, 0.1);
|
|
127
|
+
--xtend-nav-focus-ring: 3px solid #b56b35;
|
|
128
|
+
--xtend-nav-disabled-opacity: 0.44;
|
|
129
|
+
}
|
|
130
|
+
```
|