@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,139 @@
|
|
|
1
|
+
# xcards - XTend Component
|
|
2
|
+
|
|
3
|
+
> **See also:** [xmasonry](./xmasonry.md), [xcalendar](./xcalendar.md), [xstate](./xstate.md)
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
`<x-cards>` is a flexible grid layout for arbitrary content. It supports
|
|
8
|
+
responsive design, theming, and state integration.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Features
|
|
13
|
+
|
|
14
|
+
- Grid layout with variable column count
|
|
15
|
+
- Responsive behavior (one column on mobile)
|
|
16
|
+
- Theming through CSS custom properties
|
|
17
|
+
- State integration through xstate
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Usage
|
|
22
|
+
|
|
23
|
+
```html
|
|
24
|
+
<x-cards columns="4" gap="2rem">
|
|
25
|
+
<div>Card 1</div>
|
|
26
|
+
<div>Card 2</div>
|
|
27
|
+
</x-cards>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Attributes
|
|
33
|
+
|
|
34
|
+
| Attribute | Type | Description |
|
|
35
|
+
|-----------|------|-------------|
|
|
36
|
+
| `columns` | Number | number of columns (default: 3) |
|
|
37
|
+
| `gap` | String | spacing between cards (default: 1.5rem) |
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Events
|
|
42
|
+
|
|
43
|
+
| Event | Description |
|
|
44
|
+
|-------|-------------|
|
|
45
|
+
| - | - |
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## API
|
|
50
|
+
|
|
51
|
+
- **Set columns dynamically:** `element.setAttribute('columns', 2)`
|
|
52
|
+
- **State integration:** automatic through xstate
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Example: Dynamic JS
|
|
57
|
+
|
|
58
|
+
```js
|
|
59
|
+
const cards = document.createElement('x-cards');
|
|
60
|
+
cards.setAttribute('columns', 2);
|
|
61
|
+
document.body.appendChild(cards);
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## Styling and Theming
|
|
67
|
+
|
|
68
|
+
```css
|
|
69
|
+
x-cards {
|
|
70
|
+
--card-columns: 4;
|
|
71
|
+
--card-gap: 2rem;
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Accessibility
|
|
78
|
+
|
|
79
|
+
- Grid role, semantic HTML
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
*Last updated: July 16, 2025*
|
|
84
|
+
|
|
85
|
+
## Layout Display Media UX Profile
|
|
86
|
+
|
|
87
|
+
Starting with `WP-E11-12`, `x-cards` exposes the profile
|
|
88
|
+
`xtend.component.layout-display-media-ux-profile.v1`. The component describes a
|
|
89
|
+
responsive card grid for RMT shell authoring and uses the state key
|
|
90
|
+
`xcards-state-<id>`.
|
|
91
|
+
|
|
92
|
+
- Profile getter: `xtendLayoutDisplayMediaUxProfile`
|
|
93
|
+
- Schedule: `layout.reflow.commit`
|
|
94
|
+
- Event: `cards-layout`
|
|
95
|
+
- Snapshot: `snapshot()`
|
|
96
|
+
- CSS parts: `root`, `grid`, `item`
|
|
97
|
+
|
|
98
|
+
## ECH-WP-07 Token Table and signatureDesign
|
|
99
|
+
|
|
100
|
+
`signatureDesign`: independent enterprise card rhythm with tokenized glass,
|
|
101
|
+
edge, depth, and typography. The default grid should not look like a generic
|
|
102
|
+
SaaS card grid while still remaining fully themeable.
|
|
103
|
+
|
|
104
|
+
| Token | Purpose |
|
|
105
|
+
| --- | --- |
|
|
106
|
+
| `--xtend-layout-surface` | card surface |
|
|
107
|
+
| `--xtend-layout-text` | card text color |
|
|
108
|
+
| `--xtend-layout-border-color` | card edge |
|
|
109
|
+
| `--xtend-layout-radius` | card radius |
|
|
110
|
+
| `--xtend-layout-elevation` | card shadow |
|
|
111
|
+
| `--xtend-layout-spacing` | card padding |
|
|
112
|
+
| `--xtend-layout-gap` | grid spacing |
|
|
113
|
+
| `--xtend-layout-font-family` | card typography |
|
|
114
|
+
| `--xtend-layout-font-size` | card text size |
|
|
115
|
+
| `--xtend-layout-media-radius` | image/media radius |
|
|
116
|
+
| `--xtend-layout-focus-ring` | card focus |
|
|
117
|
+
| `--xtend-layout-grid-min` | grid lower bound |
|
|
118
|
+
| `--xtend-layout-content-max` | grid max width |
|
|
119
|
+
|
|
120
|
+
## ECH-WP-07 External Theme
|
|
121
|
+
|
|
122
|
+
```css
|
|
123
|
+
[data-xtend-layout-theme="enterprise-foreign"] x-cards,
|
|
124
|
+
[data-xtend-layout-theme="enterprise-foreign"] x-card {
|
|
125
|
+
--xtend-layout-surface: #f8f4ef;
|
|
126
|
+
--xtend-layout-text: #1b2823;
|
|
127
|
+
--xtend-layout-border-color: rgba(27, 40, 35, 0.18);
|
|
128
|
+
--xtend-layout-radius: 0.3rem;
|
|
129
|
+
--xtend-layout-elevation: 0 12px 30px rgba(27, 40, 35, 0.12);
|
|
130
|
+
--xtend-layout-spacing: 1.35rem;
|
|
131
|
+
--xtend-layout-gap: 1.1rem;
|
|
132
|
+
--xtend-layout-font-family: "Aptos", "Segoe UI", sans-serif;
|
|
133
|
+
--xtend-layout-font-size: 1rem;
|
|
134
|
+
--xtend-layout-media-radius: 0.25rem;
|
|
135
|
+
--xtend-layout-focus-ring: 3px solid #8f4f2a;
|
|
136
|
+
--xtend-layout-grid-min: minmax(15rem, 1fr);
|
|
137
|
+
--xtend-layout-content-max: 74rem;
|
|
138
|
+
}
|
|
139
|
+
```
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
# xcheckbox - XTend Component
|
|
2
|
+
|
|
3
|
+
> **See also:** [xform](./xform.md), [xinput](./xinput.md), [xstate](./xstate.md)
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
`<x-checkbox>` is the TypeScript-first binary control from `WP-E10-09`. It is
|
|
8
|
+
form-associated, supports `checked` and `indeterminate`, reports changes
|
|
9
|
+
through XTend events, and can be scheduled by RMT as a framework-agnostic UI
|
|
10
|
+
component.
|
|
11
|
+
|
|
12
|
+
## Usage
|
|
13
|
+
|
|
14
|
+
```html
|
|
15
|
+
<x-checkbox id="terms" name="terms" required checked>
|
|
16
|
+
<span slot="label">Accept terms of service</span>
|
|
17
|
+
<span slot="error">Consent is required.</span>
|
|
18
|
+
</x-checkbox>
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Attributes
|
|
22
|
+
|
|
23
|
+
| Attribute | Type | Description |
|
|
24
|
+
|-----------|------|-------------|
|
|
25
|
+
| `name` | String | form name |
|
|
26
|
+
| `value` | String | form value when active, default `on` |
|
|
27
|
+
| `checked` | Boolean | current selected state |
|
|
28
|
+
| `indeterminate` | Boolean | visual mixed state |
|
|
29
|
+
| `required` | Boolean | activates validation |
|
|
30
|
+
| `disabled` | Boolean | disables the control |
|
|
31
|
+
| `label` | String | ARIA/text label without slot |
|
|
32
|
+
|
|
33
|
+
## Slots
|
|
34
|
+
|
|
35
|
+
| Slot | Purpose |
|
|
36
|
+
|------|---------|
|
|
37
|
+
| `label` | visible label |
|
|
38
|
+
| `hint` | additional helper text |
|
|
39
|
+
| `error` | validation error |
|
|
40
|
+
|
|
41
|
+
## Events
|
|
42
|
+
|
|
43
|
+
| Event | Detail |
|
|
44
|
+
|-------|--------|
|
|
45
|
+
| `checkbox-changed` | `{ checked, value, source: 'x-checkbox' }` |
|
|
46
|
+
| `checkbox-invalid` | `{ checked, value, message, source: 'x-checkbox' }` |
|
|
47
|
+
|
|
48
|
+
## API
|
|
49
|
+
|
|
50
|
+
- `element.checked`
|
|
51
|
+
- `element.value`
|
|
52
|
+
- `element.indeterminate`
|
|
53
|
+
- `element.toggle()`
|
|
54
|
+
- `element.checkValidity()`
|
|
55
|
+
- `element.reportValidity()`
|
|
56
|
+
- `element.validate()`
|
|
57
|
+
- `element.reset()`
|
|
58
|
+
- `element.focus()`
|
|
59
|
+
|
|
60
|
+
## State, RMT, and Fabric
|
|
61
|
+
|
|
62
|
+
`<x-checkbox>` writes to `xcheckbox-checked-<id>`. RMT sees the component
|
|
63
|
+
through `xtend.rmt.component-contract.v1` as a DOM descriptor, not as an XTend
|
|
64
|
+
kernel dependency. Fabric metadata binds events to the `user-blocking` lane and
|
|
65
|
+
keeps the boundary string `no-rmt-kernel-import-of-xtend-types` visible.
|
|
66
|
+
|
|
67
|
+
## A11y and Performance
|
|
68
|
+
|
|
69
|
+
The control mirrors `aria-checked`, `aria-describedby`, `required`, and
|
|
70
|
+
`disabled` to the native checkbox. The performance profile uses
|
|
71
|
+
`xtend.performance.component-profile.v1` with `budgetClass:
|
|
72
|
+
'interactive-small'`, `lane: 'user-blocking'`, and `hydrationPolicy:
|
|
73
|
+
'visible'`.
|
|
74
|
+
|
|
75
|
+
## Form Controls UX from WP-E11-08
|
|
76
|
+
|
|
77
|
+
`<x-checkbox>` exposes `xtendFormControlUxProfile` with
|
|
78
|
+
`xtend.component.form-control-ux-profile.v1`. The profile connects label, hint,
|
|
79
|
+
error, `checkbox-changed`, `checkbox-invalid`, `xcheckbox-checked-<id>`,
|
|
80
|
+
`ui.user-blocking.input`, Fabric lane `user-blocking`, and RMT shell authoring.
|
|
81
|
+
|
|
82
|
+
## ECH-WP-08 Form Theme/A11y Hardening
|
|
83
|
+
|
|
84
|
+
`signatureDesign`: tactile enterprise checkbox with native reliability,
|
|
85
|
+
separately themeable selection affordance, and status-stable helper/error
|
|
86
|
+
rhythm.
|
|
87
|
+
|
|
88
|
+
| Token | Purpose |
|
|
89
|
+
| --- | --- |
|
|
90
|
+
| `--xtend-form-text` | host text color |
|
|
91
|
+
| `--xtend-form-control-surface` | native control surface |
|
|
92
|
+
| `--xtend-form-control-text` | control text fallback |
|
|
93
|
+
| `--xtend-form-label-text` | label |
|
|
94
|
+
| `--xtend-form-helper-text` | helper |
|
|
95
|
+
| `--xtend-form-error-text` | error text |
|
|
96
|
+
| `--xtend-form-error-surface` | error surface |
|
|
97
|
+
| `--xtend-form-error-border` | error edge and marker |
|
|
98
|
+
| `--xtend-form-focus-ring` | focus outline |
|
|
99
|
+
| `--xtend-form-radius` | native control/error radius |
|
|
100
|
+
| `--xtend-form-gap` | label/helper spacing |
|
|
101
|
+
| `--xtend-form-font-family` | form typography |
|
|
102
|
+
| `--xtend-form-control-font-size` | label font |
|
|
103
|
+
| `--xtend-form-helper-font-size` | helper/error font |
|
|
104
|
+
| `--xtend-form-icon-color` | checkbox accent |
|
|
105
|
+
|
|
106
|
+
Density profiles: `comfortable`, `compact`, `dense`. Invalid state is visible
|
|
107
|
+
through outline and error marker in addition to color.
|
|
108
|
+
|
|
109
|
+
```css
|
|
110
|
+
[data-xtend-form-theme="enterprise-foreign"] x-checkbox {
|
|
111
|
+
--xtend-form-icon-color: #8f4f2a;
|
|
112
|
+
--xtend-form-label-text: #22312c;
|
|
113
|
+
--xtend-form-helper-text: #596861;
|
|
114
|
+
--xtend-form-error-text: #7d231c;
|
|
115
|
+
--xtend-form-error-border: #a64036;
|
|
116
|
+
--xtend-form-focus-ring: 3px solid #8f4f2a;
|
|
117
|
+
}
|
|
118
|
+
```
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
# xcode - XTend Component
|
|
2
|
+
|
|
3
|
+
> See also: [xwriter](./xwriter.md), [xstate](./xstate.md)
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
`<x-code>` renders code examples as an XTend Web Component with copy control,
|
|
8
|
+
state integration, theming, and optional Prism.js syntax highlighting. The
|
|
9
|
+
component is Shadow DOM based, so it can be used in any app or Developer Center
|
|
10
|
+
surface without global `pre code` selectors leaking into the host.
|
|
11
|
+
|
|
12
|
+
Prism remains optional and host-neutral. When `window.Prism` or a registered
|
|
13
|
+
XCode highlighter is available, XCode renders token spans. When no grammar is
|
|
14
|
+
available, the code remains safely escaped and visible as plain text.
|
|
15
|
+
|
|
16
|
+
## Usage
|
|
17
|
+
|
|
18
|
+
```html
|
|
19
|
+
<x-code lang="js">
|
|
20
|
+
<template data-x-code-mode="text">console.log('Hello XTend!');</template>
|
|
21
|
+
</x-code>
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
The alias attribute `language` is supported for existing fixtures and external
|
|
25
|
+
hosts:
|
|
26
|
+
|
|
27
|
+
```html
|
|
28
|
+
<x-code language="rmt">
|
|
29
|
+
<template data-x-code-mode="text">template docs.demo { surface root { lane visible { hydrate page } } }</template>
|
|
30
|
+
</x-code>
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Prism and RMT
|
|
34
|
+
|
|
35
|
+
The Developer Center loads `components/prism.js` followed by
|
|
36
|
+
`components/prism-rmt.js`. The RMT middleware registers `Prism.languages.rmt`
|
|
37
|
+
and the aliases `rmt-vnext` and `xtendrmt`. This lets every XCode instance
|
|
38
|
+
highlight RMT vNext app shells, primitives, lanes, events, and boundary rules:
|
|
39
|
+
|
|
40
|
+
- `template`, `state`, `selector`, `datasource`, `action`, `portal`,
|
|
41
|
+
`overlay`, `resource`, `surface`, `remote surface`
|
|
42
|
+
- `lane`, lifecycle operations, `when`, `slot`, `trust boundary`, `sanitize`
|
|
43
|
+
- event bindings, payloads, reducer, effects, dotted primitive IDs, and
|
|
44
|
+
component tags
|
|
45
|
+
|
|
46
|
+
Hosts can register their own highlighter:
|
|
47
|
+
|
|
48
|
+
```js
|
|
49
|
+
customElements.get('x-code')?.registerHighlighter({
|
|
50
|
+
highlight({ code, language }) {
|
|
51
|
+
return { html: code, highlighted: false, engine: 'plain-text', language };
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Developer Center
|
|
57
|
+
|
|
58
|
+
Markdown code fences from Parsedown are converted to `<x-code>` after Trusted
|
|
59
|
+
DOM sanitizing. Every code surface in the Developer Center therefore uses the
|
|
60
|
+
same path:
|
|
61
|
+
|
|
62
|
+
- copy control and a11y signals from XCode
|
|
63
|
+
- `docs.syntax.highlight` as an RMT schedule
|
|
64
|
+
- Prism highlighting in Shadow DOM
|
|
65
|
+
- plain-text fallback without a raw HTML sink
|
|
66
|
+
|
|
67
|
+
## Attributes
|
|
68
|
+
|
|
69
|
+
| Attribute | Type | Description |
|
|
70
|
+
| --- | --- | --- |
|
|
71
|
+
| `lang` | String | primary language, for example `js`, `html`, `rmt` |
|
|
72
|
+
| `language` | String | compatibility alias when `lang` is not set |
|
|
73
|
+
|
|
74
|
+
## Events
|
|
75
|
+
|
|
76
|
+
| Event | Description |
|
|
77
|
+
| --- | --- |
|
|
78
|
+
| `code-copied` | emitted after successful copy control |
|
|
79
|
+
|
|
80
|
+
## API
|
|
81
|
+
|
|
82
|
+
- `hydrate()` rerenders code and highlighting.
|
|
83
|
+
- `snapshot()` returns language, code length, and highlighting metadata.
|
|
84
|
+
- `customElements.get('x-code').registerHighlighter(provider)` registers an
|
|
85
|
+
optional host highlighter.
|
|
86
|
+
|
|
87
|
+
The snapshot adds these non-breaking fields:
|
|
88
|
+
|
|
89
|
+
- `highlighted`
|
|
90
|
+
- `highlightEngine`
|
|
91
|
+
- `highlightLanguage`
|
|
92
|
+
- `languageAlias`
|
|
93
|
+
|
|
94
|
+
## Layout Display Media UX Profile
|
|
95
|
+
|
|
96
|
+
`x-code` exposes the profile
|
|
97
|
+
`xtend.component.layout-display-media-ux-profile.v1`. Code blocks can therefore
|
|
98
|
+
be authored in RMT as idle-hydratable display shells and use the state key
|
|
99
|
+
`xcode-state-<id>`.
|
|
100
|
+
|
|
101
|
+
- Profile getter: `xtendLayoutDisplayMediaUxProfile`
|
|
102
|
+
- Schedule: `component.idle.hydrate`
|
|
103
|
+
- Event: `code-copied`
|
|
104
|
+
- Snapshot: `snapshot()`
|
|
105
|
+
- CSS parts: `root`, `copy`, `pre`, `code`
|
|
106
|
+
|
|
107
|
+
## Token Table
|
|
108
|
+
|
|
109
|
+
ECH-WP-07 remains visible as the tokenization contract. `signatureDesign`:
|
|
110
|
+
readable enterprise code surface with clear copy control, internal overflow,
|
|
111
|
+
Prism-compatible token coloring, and an independent themeable monospace
|
|
112
|
+
personality.
|
|
113
|
+
|
|
114
|
+
| Token | Purpose |
|
|
115
|
+
| --- | --- |
|
|
116
|
+
| `--xtend-layout-surface` | code surface |
|
|
117
|
+
| `--xtend-layout-text` | code text color |
|
|
118
|
+
| `--xtend-layout-border-color` | code and copy edge |
|
|
119
|
+
| `--xtend-layout-radius` | code and copy radius |
|
|
120
|
+
| `--xtend-layout-elevation` | code shadow |
|
|
121
|
+
| `--xtend-layout-spacing` | code padding |
|
|
122
|
+
| `--xtend-layout-gap` | theme spacing for tooling |
|
|
123
|
+
| `--xtend-layout-font-family` | monospace/code typography |
|
|
124
|
+
| `--xtend-layout-font-size` | code font size |
|
|
125
|
+
| `--xtend-layout-media-radius` | copy-control radius |
|
|
126
|
+
| `--xtend-layout-focus-ring` | copy-control focus |
|
|
127
|
+
| `--xtend-layout-grid-min` | code layout minimum |
|
|
128
|
+
| `--xtend-layout-content-max` | code max width |
|
|
129
|
+
| `--x-code-token-keyword` | Prism keyword and RMT primitive |
|
|
130
|
+
| `--x-code-token-string` | Prism string |
|
|
131
|
+
| `--x-code-token-property` | Prism property and RMT IDs |
|
|
132
|
+
| `--x-code-token-class` | component tags |
|
|
133
|
+
| `--x-code-token-comment` | comments |
|
|
134
|
+
|
|
135
|
+
## External Theme
|
|
136
|
+
|
|
137
|
+
```css
|
|
138
|
+
[data-xtend-layout-theme="enterprise-foreign"] x-code {
|
|
139
|
+
--xtend-layout-surface: #151b19;
|
|
140
|
+
--xtend-layout-text: #f7f1e7;
|
|
141
|
+
--xtend-layout-border-color: rgba(247, 241, 231, 0.18);
|
|
142
|
+
--xtend-layout-radius: 0.35rem;
|
|
143
|
+
--xtend-layout-elevation: 0 16px 40px rgba(21, 27, 25, 0.22);
|
|
144
|
+
--xtend-layout-spacing: 1.25rem 1.4rem;
|
|
145
|
+
--xtend-layout-gap: 0.75rem;
|
|
146
|
+
--xtend-layout-font-family: "Cascadia Code", "Fira Mono", monospace;
|
|
147
|
+
--xtend-layout-font-size: 0.95rem;
|
|
148
|
+
--xtend-layout-media-radius: 999px;
|
|
149
|
+
--xtend-layout-focus-ring: 3px solid #d48b57;
|
|
150
|
+
--xtend-layout-grid-min: minmax(0, 1fr);
|
|
151
|
+
--xtend-layout-content-max: 68rem;
|
|
152
|
+
}
|
|
153
|
+
```
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# xdialog - XTend Component
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
`<x-dialog>` is XTend's state-driven dialog component. It combines attribute
|
|
6
|
+
control, `xstate` open flags, and aggregated `ui.dialogs` state into a shared
|
|
7
|
+
overlay contract.
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
```html
|
|
12
|
+
<x-dialog overlay title="Example dialog" width="400px">
|
|
13
|
+
<p>Content</p>
|
|
14
|
+
<div slot="actions">
|
|
15
|
+
<button onclick="this.closest('x-dialog').close()">Close</button>
|
|
16
|
+
</div>
|
|
17
|
+
</x-dialog>
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Attributes
|
|
21
|
+
|
|
22
|
+
| Attribute | Type | Description |
|
|
23
|
+
|-----------|------|-------------|
|
|
24
|
+
| `open` | boolean | dialog is open |
|
|
25
|
+
| `overlay` | boolean | shows an overlay background |
|
|
26
|
+
| `title` | string | dialog title line |
|
|
27
|
+
| `width` | string | target width of the dialog |
|
|
28
|
+
| `height` | string | target height of the dialog |
|
|
29
|
+
|
|
30
|
+
## Slots
|
|
31
|
+
|
|
32
|
+
| Slot | Description |
|
|
33
|
+
|------|-------------|
|
|
34
|
+
| default | main dialog content |
|
|
35
|
+
| `actions` | actions in the footer |
|
|
36
|
+
|
|
37
|
+
## Events
|
|
38
|
+
|
|
39
|
+
| Event | Description |
|
|
40
|
+
|-------|-------------|
|
|
41
|
+
| `dialog-opened` | after successful opening |
|
|
42
|
+
| `dialog-closed` | after successful closing |
|
|
43
|
+
|
|
44
|
+
Events provide:
|
|
45
|
+
|
|
46
|
+
```js
|
|
47
|
+
{
|
|
48
|
+
id: 'dialog-abc123',
|
|
49
|
+
open: false,
|
|
50
|
+
source: 'button'
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## API
|
|
55
|
+
|
|
56
|
+
- `element.open()`
|
|
57
|
+
- `element.close()`
|
|
58
|
+
|
|
59
|
+
API- and XState-controlled dialogs use the same open flags:
|
|
60
|
+
|
|
61
|
+
- `xtend.component.x-dialog.<id>.open`
|
|
62
|
+
- `dialog-open-<id>`
|
|
63
|
+
- `xdialog-open-<id>`
|
|
64
|
+
|
|
65
|
+
## Runtime Contract
|
|
66
|
+
|
|
67
|
+
- API-managed dialogs read title, content, and actions from
|
|
68
|
+
`xstate.get('ui').dialogs`.
|
|
69
|
+
- User interactions such as Escape, overlay click, and close button write open
|
|
70
|
+
state back.
|
|
71
|
+
- API-managed dialogs remove themselves from `ui.dialogs` and the DOM after
|
|
72
|
+
closing.
|
|
73
|
+
|
|
74
|
+
## Notes
|
|
75
|
+
|
|
76
|
+
- Direct DOM usage through slots remains supported.
|
|
77
|
+
- `window.XDialog.show()` is the preferred entry point for API-managed dialogs.
|
|
78
|
+
- Focus trap, focus return, and ARIA roles are part of the default behavior.
|
|
79
|
+
|
|
80
|
+
## Overlay Interaction UX Profile
|
|
81
|
+
|
|
82
|
+
Since `WP-E11-11`, `<x-dialog>` declares the runtime profile
|
|
83
|
+
`xtend.component.overlay-interaction-ux-profile.v1` through
|
|
84
|
+
`xtendOverlayInteractionUxProfile`.
|
|
85
|
+
|
|
86
|
+
| Field | Value |
|
|
87
|
+
|-------|-------|
|
|
88
|
+
| Family | `dialog` |
|
|
89
|
+
| State Key | `dialog-open-<id>` |
|
|
90
|
+
| Schedule | `overlay.stack.open` |
|
|
91
|
+
| Commands | `open`, `close`, `focus-trap`, `apply-inert`, `lock-scroll`, `snapshot` |
|
|
92
|
+
|
|
93
|
+
The profile standardizes focus trap, focus return, Escape topmost rule,
|
|
94
|
+
background inert, balanced scroll lock, and host-local portal semantics. RMT
|
|
95
|
+
can plan the dialog in shell-first templates while the RMT kernel remains
|
|
96
|
+
framework-agnostic through `no-rmt-kernel-import-of-xtend-types`.
|
|
97
|
+
|
|
98
|
+
## ECH-WP-06 Overlay Parity
|
|
99
|
+
|
|
100
|
+
`x-dialog` exposes `surface`, `backdrop`, `close`, and `content` as shared
|
|
101
|
+
overlay parts. `overlay` remains as an alias for `backdrop`. Surface, text,
|
|
102
|
+
backdrop, elevation, radius, z-index, action colors, close surface, and focus
|
|
103
|
+
ring can be overridden through `--xtend-overlay-*`, `--dialog-*`, or
|
|
104
|
+
`--xdialog-*` tokens.
|
|
105
|
+
|
|
106
|
+
`x-dialog` is modal: focus trap, background inert, scroll lock, Escape, and
|
|
107
|
+
focus return remain active in the default path. Dialogs without `overlay` keep
|
|
108
|
+
the surface parts but omit the visual backdrop.
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# xdrawer - XTend Component
|
|
2
|
+
|
|
3
|
+
> **See also:** [xpopover](./xpopover.md), [xtooltip](./xtooltip.md), [xrouter](./xrouter.md), [xlink](./xlink.md)
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
`<x-drawer>` is the shell and navigation component from `WP-E10-11`. It
|
|
8
|
+
provides side panels and navigation drawers for RMT-first apps, supports focus
|
|
9
|
+
trap, Escape close, outside click, and optional route-aware behavior.
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
```html
|
|
14
|
+
<x-drawer id="app-nav" placement="left" modal label="App navigation" route-aware>
|
|
15
|
+
<button slot="trigger" type="button">Open navigation</button>
|
|
16
|
+
<strong slot="header">Navigation</strong>
|
|
17
|
+
<a href="#/overview">Overview</a>
|
|
18
|
+
<small slot="footer">Signed in</small>
|
|
19
|
+
</x-drawer>
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Attributes
|
|
23
|
+
|
|
24
|
+
| Attribute | Type | Description |
|
|
25
|
+
|-----------|------|-------------|
|
|
26
|
+
| `open` | Boolean | opens the drawer in controlled mode |
|
|
27
|
+
| `placement` | String | `left`, `right`, or `bottom` |
|
|
28
|
+
| `modal` | Boolean | activates focus trap and `aria-modal` |
|
|
29
|
+
| `label` | String | accessible name for the drawer |
|
|
30
|
+
| `route-aware` | Boolean | closes after XRouter route changes and emits route signal |
|
|
31
|
+
|
|
32
|
+
## Events
|
|
33
|
+
|
|
34
|
+
| Event | Detail |
|
|
35
|
+
|-------|--------|
|
|
36
|
+
| `drawer-opened` | `{ id, open, source, placement, modal }` |
|
|
37
|
+
| `drawer-closed` | `{ id, open, source, placement, modal }` |
|
|
38
|
+
| `drawer-route-selected` | `{ id, routeRef, source: 'x-router' }` |
|
|
39
|
+
|
|
40
|
+
## API
|
|
41
|
+
|
|
42
|
+
- `openDrawer()`
|
|
43
|
+
- `closeDrawer()`
|
|
44
|
+
- `toggle()`
|
|
45
|
+
|
|
46
|
+
## Theme and Tokens
|
|
47
|
+
|
|
48
|
+
`<x-drawer>` synchronizes `data-theme` from `document.documentElement` and
|
|
49
|
+
automatically uses the global XTend tokens from `x-theme`. Without custom
|
|
50
|
+
drawer tokens, background, text, border, and overlay fall back to
|
|
51
|
+
`--xtend-surface`, `--xtend-text`, `--xtend-border-color`, and
|
|
52
|
+
`--xtend-overlay-bg`. Navigation drawers therefore remain readable in bright
|
|
53
|
+
mode and dark mode even when an app shell provides no custom drawer colors.
|
|
54
|
+
|
|
55
|
+
| Token | Purpose |
|
|
56
|
+
|-------|---------|
|
|
57
|
+
| `--drawer-bg` / `--drawer-bg-dark` | surface background |
|
|
58
|
+
| `--drawer-color` / `--drawer-color-dark` | text color |
|
|
59
|
+
| `--drawer-border` / `--drawer-border-dark` | borders and separators |
|
|
60
|
+
| `--drawer-overlay-bg` / `--drawer-overlay-bg-dark` | backdrop color |
|
|
61
|
+
| `--drawer-focus` | focus ring |
|
|
62
|
+
| `--drawer-close-size` | size of the close icon button |
|
|
63
|
+
| `--drawer-close-border` / `--drawer-close-color` | border and icon color of the close button |
|
|
64
|
+
| `--drawer-close-hover-bg` / `--drawer-close-hover-bg-dark` | hover surface of the close button |
|
|
65
|
+
|
|
66
|
+
## State, RMT, and Fabric
|
|
67
|
+
|
|
68
|
+
`<x-drawer>` writes to `xdrawer-open-<id>`. The RMT contract is
|
|
69
|
+
`xtend.rmt.component-contract.v1` and uses `component.lazy.hydrate`,
|
|
70
|
+
`route.visible.render`, and `overlay.drawer.transition`. The kernel boundary
|
|
71
|
+
remains `no-rmt-kernel-import-of-xtend-types`.
|
|
72
|
+
|
|
73
|
+
## A11y and Performance
|
|
74
|
+
|
|
75
|
+
The component uses `role="dialog"`, `aria-modal`, `aria-hidden`,
|
|
76
|
+
`aria-expanded`, `inert`, focus trap, and focus return. On close, focus is
|
|
77
|
+
returned to the trigger or last active element before the drawer surface is
|
|
78
|
+
hidden from assistive technology. The screen reader signal
|
|
79
|
+
`route-change-announcement` is intended for app-shell navigation. The
|
|
80
|
+
performance profile is `xtend.performance.component-profile.v1` with
|
|
81
|
+
`budgetClass: 'overlay-large'`, `lane: 'visible'`, and
|
|
82
|
+
`hydrationPolicy: 'lazy'`.
|
|
83
|
+
|
|
84
|
+
## Overlay Interaction UX Profile
|
|
85
|
+
|
|
86
|
+
Since `WP-E11-11`, `<x-drawer>` declares the runtime profile
|
|
87
|
+
`xtend.component.overlay-interaction-ux-profile.v1` through
|
|
88
|
+
`xtendOverlayInteractionUxProfile`.
|
|
89
|
+
|
|
90
|
+
| Field | Value |
|
|
91
|
+
|-------|-------|
|
|
92
|
+
| Family | `drawer` |
|
|
93
|
+
| State Key | `xdrawer-open-<id>` |
|
|
94
|
+
| Schedule | `overlay.stack.open` |
|
|
95
|
+
| Commands | `open`, `close`, `toggle`, `focus-trap`, `apply-inert`, `lock-scroll`, `snapshot` |
|
|
96
|
+
|
|
97
|
+
The profile describes drawers as route-aware overlays: modal behavior is
|
|
98
|
+
optional, focus trap is active only in modal operation, Escape closes the
|
|
99
|
+
topmost overlay, and XRouter route changes may close the drawer in a controlled
|
|
100
|
+
way.
|
|
101
|
+
|
|
102
|
+
## ECH-WP-06 Overlay Parity
|
|
103
|
+
|
|
104
|
+
`x-drawer` uses the shared overlay part aliases `surface`, `backdrop`, `close`,
|
|
105
|
+
and `content`. `overlay` remains as a legacy alias for `backdrop`. Host themes
|
|
106
|
+
can control surface, text, border, elevation, backdrop, z-index, and focus ring
|
|
107
|
+
through `--xtend-overlay-*` or compatible `--drawer-*` tokens.
|
|
108
|
+
|
|
109
|
+
Modality is optional: `modal` activates focus trap, background inert, and
|
|
110
|
+
scroll lock; non-modal drawers remain controllable for app-shell navigation.
|