@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.
Files changed (566) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +4 -0
  3. package/catalog/component-catalog-coverage.js +2 -0
  4. package/catalog/epic13-package-export-lock.js +11 -1
  5. package/catalog/epic13-rmt-production-readiness.js +0 -1
  6. package/catalog/epic18-rmt-action-effect-runtime.d.ts +36 -0
  7. package/catalog/epic18-rmt-action-effect-runtime.js +249 -0
  8. package/catalog/epic18-rmt-app-platform-authoring.d.ts +39 -0
  9. package/catalog/epic18-rmt-app-platform-authoring.js +319 -0
  10. package/catalog/epic18-rmt-app-platform-fixture.d.ts +33 -0
  11. package/catalog/epic18-rmt-app-platform-fixture.js +221 -0
  12. package/catalog/epic18-rmt-app-platform-release-handoff.d.ts +30 -0
  13. package/catalog/epic18-rmt-app-platform-release-handoff.js +231 -0
  14. package/catalog/epic18-rmt-app-platform-tooling.d.ts +38 -0
  15. package/catalog/epic18-rmt-app-platform-tooling.js +242 -0
  16. package/catalog/epic18-rmt-component-template-primitives.d.ts +33 -0
  17. package/catalog/epic18-rmt-component-template-primitives.js +240 -0
  18. package/catalog/epic18-rmt-dom-descriptor-renderer.d.ts +35 -0
  19. package/catalog/epic18-rmt-dom-descriptor-renderer.js +232 -0
  20. package/catalog/epic18-rmt-event-routing-runtime.d.ts +35 -0
  21. package/catalog/epic18-rmt-event-routing-runtime.js +234 -0
  22. package/catalog/epic18-rmt-state-selector-runtime.d.ts +34 -0
  23. package/catalog/epic18-rmt-state-selector-runtime.js +216 -0
  24. package/catalog/epic18-rmt-surface-resource-graph-runtime.d.ts +36 -0
  25. package/catalog/epic18-rmt-surface-resource-graph-runtime.js +256 -0
  26. package/catalog/surface-manager-controller.js +5 -1
  27. package/catalog/surface-manager-materialization.js +7 -1
  28. package/catalog/surface-manager-overlay-bridge.js +41 -6
  29. package/catalog/surface-manager-workbench-fixture.js +1 -1
  30. package/catalog/surface-type-capability-matrix.d.ts +61 -0
  31. package/catalog/surface-type-capability-matrix.js +183 -0
  32. package/catalog/type-exports-rmt.js +37 -1
  33. package/catalog/type-exports.js +3 -3
  34. package/components/icon-packs/lucide.js +4 -0
  35. package/components/manifest.json +2 -0
  36. package/components/prism-rmt.d.ts +34 -0
  37. package/components/prism-rmt.js +130 -0
  38. package/components/xcards.js +15 -0
  39. package/components/xcode.d.ts +36 -1
  40. package/components/xcode.js +215 -20
  41. package/components/xfooter.js +17 -0
  42. package/components/xheader.js +14 -0
  43. package/components/xhero.js +16 -1
  44. package/components/xlink.js +97 -14
  45. package/components/xmasonry.js +15 -0
  46. package/components/xplayer.d.ts +44 -2
  47. package/components/xplayer.js +242 -15
  48. package/components/xrouter.js +27 -2
  49. package/components/xsection.js +15 -0
  50. package/components/xsidepanel.js +10 -2
  51. package/components/xsurfacemanager-controller.d.ts +2 -1
  52. package/components/xsurfacemanager-controller.js +27 -3
  53. package/components/xsurfacemanager.d.ts +2 -0
  54. package/components/xsurfacemanager.js +20 -8
  55. package/components/xsurfaceoverlay-bridge.d.ts +20 -5
  56. package/components/xsurfaceoverlay-bridge.js +114 -18
  57. package/components/xsurfaceportal.d.ts +29 -0
  58. package/components/xsurfaceportal.js +122 -0
  59. package/components/xsurfaceregion.d.ts +50 -0
  60. package/components/xsurfaceregion.js +285 -0
  61. package/components/xsurfacewindow.js +2 -1
  62. package/components/xtooltip.js +89 -23
  63. package/docs/README.md +222 -298
  64. package/docs/changelog.md +107 -0
  65. package/docs/component-catalog-coverage.md +9 -9
  66. package/docs/component-platform.md +19 -1
  67. package/docs/component-ux-app-authoring.md +56 -63
  68. package/docs/components/xcode.md +83 -53
  69. package/docs/components/xsurfaceportal.md +32 -0
  70. package/docs/components/xsurfaceregion.md +37 -0
  71. package/docs/components.md +105 -69
  72. package/docs/de/README.md +264 -0
  73. package/docs/de/XTend-ADR.md +221 -0
  74. package/docs/de/a11y-keyboard-smokes.md +62 -0
  75. package/docs/de/about.md +18 -0
  76. package/docs/de/api.md +157 -0
  77. package/docs/de/best-practices.md +76 -0
  78. package/docs/de/changelog.md +107 -0
  79. package/docs/de/component-catalog-coverage.md +58 -0
  80. package/docs/de/component-lab.md +103 -0
  81. package/docs/de/component-long-tail-migration.md +41 -0
  82. package/docs/de/component-platform.md +177 -0
  83. package/docs/de/component-ux-app-authoring.md +123 -0
  84. package/docs/de/component-ux-authoring.md +96 -0
  85. package/docs/de/component-ux-gates.md +45 -0
  86. package/docs/de/components/x-rmt-lifecycle-demo-build.md +60 -0
  87. package/docs/de/components/xalert.md +81 -0
  88. package/docs/de/components/xbutton.md +103 -0
  89. package/docs/de/components/xcalendar.md +82 -0
  90. package/docs/de/components/xcards.md +128 -0
  91. package/docs/de/components/xcheckbox.md +102 -0
  92. package/docs/de/components/xcode.md +156 -0
  93. package/docs/de/components/xdialog.md +92 -0
  94. package/docs/de/components/xdrawer.md +84 -0
  95. package/docs/de/components/xfooter.md +126 -0
  96. package/docs/de/components/xform.md +128 -0
  97. package/docs/de/components/xheader.md +308 -0
  98. package/docs/de/components/xhero.md +142 -0
  99. package/docs/de/components/xicon.md +125 -0
  100. package/docs/de/components/xinput.md +129 -0
  101. package/docs/de/components/xlightbox.md +98 -0
  102. package/docs/de/components/xlink.md +109 -0
  103. package/docs/de/components/xmasonry.md +124 -0
  104. package/docs/de/components/xmenu.md +158 -0
  105. package/docs/de/components/xmodal.md +82 -0
  106. package/docs/de/components/xplayer.md +104 -0
  107. package/docs/de/components/xpopover.md +67 -0
  108. package/docs/de/components/xprogress.md +56 -0
  109. package/docs/de/components/xradio.md +103 -0
  110. package/docs/de/components/xrouter.md +260 -0
  111. package/docs/de/components/xsection.md +125 -0
  112. package/docs/de/components/xselect.md +105 -0
  113. package/docs/de/components/xsidepanel.md +30 -0
  114. package/docs/de/components/xspinner.md +102 -0
  115. package/docs/de/components/xstate.md +148 -0
  116. package/docs/de/components/xstatus.md +55 -0
  117. package/docs/de/components/xsummary.md +78 -0
  118. package/docs/de/components/xsurfacemanager.md +27 -0
  119. package/docs/de/components/xsurfacewindow.md +21 -0
  120. package/docs/de/components/xtabs.md +160 -0
  121. package/docs/de/components/xtextarea.md +98 -0
  122. package/docs/de/components/xtheme.md +167 -0
  123. package/docs/de/components/xtoast.md +62 -0
  124. package/docs/de/components/xtooltip.md +66 -0
  125. package/docs/de/components/xtype.md +82 -0
  126. package/docs/de/components/xutils.md +144 -0
  127. package/docs/de/components/xwriter.md +94 -0
  128. package/docs/de/components.md +153 -0
  129. package/docs/de/conditional-network-evidence-ci.md +38 -0
  130. package/docs/de/conditional-network-evidence.md +50 -0
  131. package/docs/de/core-migration-guide.md +110 -0
  132. package/docs/de/design-tokens.md +116 -0
  133. package/docs/de/docs-rmt-production-hardening.md +31 -0
  134. package/docs/de/enterprise-adoption.md +413 -0
  135. package/docs/de/enterprise-component-flex-release-handoff.md +129 -0
  136. package/docs/de/epic10-platform-gates.md +62 -0
  137. package/docs/de/epic10-release-handoff.md +81 -0
  138. package/docs/de/epic11-enterprise-ux-handoff.md +70 -0
  139. package/docs/de/epic12-rc0-handoff.md +61 -0
  140. package/docs/de/epic18-media-manager-vendor-upstream.md +318 -0
  141. package/docs/de/epic18-rmt-app-platform-release-handoff.md +67 -0
  142. package/docs/de/epic18-vendor-bugfixes.md +34 -0
  143. package/docs/de/existing-component-metadata.md +67 -0
  144. package/docs/de/hydration-performance-closure.md +34 -0
  145. package/docs/de/hydration-policies.md +71 -0
  146. package/docs/de/known-residual-triage.md +22 -0
  147. package/docs/de/manifest-import-policy.md +79 -0
  148. package/docs/de/manifest.md +112 -0
  149. package/docs/de/motion-contrast.md +67 -0
  150. package/docs/de/package-export-lock.md +44 -0
  151. package/docs/de/performance-measurements.md +106 -0
  152. package/docs/de/performance-regression.md +89 -0
  153. package/docs/de/performance.md +94 -0
  154. package/docs/de/previews/README.md +17 -0
  155. package/docs/de/prod-browser-csp-smokes.md +40 -0
  156. package/docs/de/public-component-types.md +79 -0
  157. package/docs/de/quick-start-guide.md +220 -0
  158. package/docs/de/rc0-adoption-guide.md +102 -0
  159. package/docs/de/rc0-gate-matrix.md +58 -0
  160. package/docs/de/rc1-gate-matrix-ci-handoff.md +56 -0
  161. package/docs/de/rc1-migration-notes.md +69 -0
  162. package/docs/de/rc1-readiness.md +46 -0
  163. package/docs/de/release-owner-acceptance.md +56 -0
  164. package/docs/de/release-report-pack-dry-run-evidence.md +39 -0
  165. package/docs/de/rmt-action-effect-runtime.md +81 -0
  166. package/docs/de/rmt-app-platform-authoring.md +54 -0
  167. package/docs/de/rmt-app-platform-fixture.md +46 -0
  168. package/docs/de/rmt-app-platform-migration-guide.md +88 -0
  169. package/docs/de/rmt-app-platform-tooling.md +79 -0
  170. package/docs/de/rmt-component-template-primitives.md +57 -0
  171. package/docs/de/rmt-dom-descriptor-renderer.md +64 -0
  172. package/docs/de/rmt-dsl-authoring-polish.md +145 -0
  173. package/docs/de/rmt-event-routing-runtime.md +81 -0
  174. package/docs/de/rmt-first-demo-app.md +77 -0
  175. package/docs/de/rmt-first-xtend-apps.md +129 -0
  176. package/docs/de/rmt-kernel-panic-recovery-incident-handoff.md +61 -0
  177. package/docs/de/rmt-kernel-security-hardening-migration.md +50 -0
  178. package/docs/de/rmt-kernel-trusted-output-authoring.md +69 -0
  179. package/docs/de/rmt-language-server.md +234 -0
  180. package/docs/de/rmt-lifecycle-demo.md +24 -0
  181. package/docs/de/rmt-linter.md +140 -0
  182. package/docs/de/rmt-node-ssr-adapter.md +100 -0
  183. package/docs/de/rmt-php-ssr-adapter.md +120 -0
  184. package/docs/de/rmt-production-readiness.md +63 -0
  185. package/docs/de/rmt-state-selector-runtime.md +47 -0
  186. package/docs/de/rmt-surface-resource-graph-runtime.md +92 -0
  187. package/docs/de/rmt-tooling-release-gates.md +77 -0
  188. package/docs/de/rmt-vnext-authoring.md +170 -0
  189. package/docs/de/rmt-vnext-component-primitives.md +188 -0
  190. package/docs/de/rmt-vnext-cross-surface-events.md +68 -0
  191. package/docs/de/rmt-vnext-enterprise-mfe-handoff.md +70 -0
  192. package/docs/de/rmt-vnext-fabric-bridge-evidence.md +81 -0
  193. package/docs/de/rmt-vnext-migration-notes.md +62 -0
  194. package/docs/de/rmt-vnext-primitive-authoring-tooling.md +247 -0
  195. package/docs/de/rmt-vnext-primitive-grammar-design.md +289 -0
  196. package/docs/de/rmt-vnext-primitive-lowering.md +108 -0
  197. package/docs/de/rmt-vnext-primitive-migration.md +119 -0
  198. package/docs/de/rmt-vnext-primitive-parser-ast.md +76 -0
  199. package/docs/de/rmt-vnext-primitive-semantic-graph.md +118 -0
  200. package/docs/de/rmt-vnext-primitives-compiler-backlog.md +739 -0
  201. package/docs/de/rmt-vnext-release-handoff.md +83 -0
  202. package/docs/de/rmt-vnext-remote-surfaces.md +90 -0
  203. package/docs/de/rmt-vnext-source-to-sea-gate.md +612 -0
  204. package/docs/de/rmt-vnext-surface-registry-enterprise.md +76 -0
  205. package/docs/de/screenreader-signals.md +56 -0
  206. package/docs/de/supply-chain-gates.md +100 -0
  207. package/docs/de/surface-manager-authoring-guide.md +94 -0
  208. package/docs/de/surface-manager-browser-lab.md +45 -0
  209. package/docs/de/surface-manager-component-lab.md +43 -0
  210. package/docs/de/surface-manager-controller.md +66 -0
  211. package/docs/de/surface-manager-layout-engines.md +32 -0
  212. package/docs/de/surface-manager-lazy-hydration.md +63 -0
  213. package/docs/de/surface-manager-migration-guide.md +122 -0
  214. package/docs/de/surface-manager-native-rmt-surfaces.md +38 -0
  215. package/docs/de/surface-manager-overlay-bridge.md +53 -0
  216. package/docs/de/surface-manager-persistence.md +30 -0
  217. package/docs/de/surface-manager-quality-gates.md +51 -0
  218. package/docs/de/surface-manager-release-handoff.md +68 -0
  219. package/docs/de/surface-manager-remote-policy.md +54 -0
  220. package/docs/de/surface-manager-rmt-authoring.md +102 -0
  221. package/docs/de/surface-manager-route-lifecycle.md +59 -0
  222. package/docs/de/surface-manager-runtime-release-handoff.md +69 -0
  223. package/docs/de/surface-manager-side-panel-runtime.md +36 -0
  224. package/docs/de/surface-manager-stack-policy.md +39 -0
  225. package/docs/de/surface-manager-window-runtime.md +47 -0
  226. package/docs/de/surface-manager-workbench-fixture.md +43 -0
  227. package/docs/de/third-party-design-authoring.md +406 -0
  228. package/docs/de/trusted-dom-boundary-browser-proof.md +32 -0
  229. package/docs/de/trusted-dom-sanitizing.md +110 -0
  230. package/docs/de/type-exports.md +61 -0
  231. package/docs/de/typescript-components.md +63 -0
  232. package/docs/de/visual-browser-regression.md +83 -0
  233. package/docs/de/visual-owner-artifacts.md +46 -0
  234. package/docs/de/visual-snapshot-automation.md +87 -0
  235. package/docs/de/xtend-api-types.md +55 -0
  236. package/docs/de/xtend-builder-types.md +55 -0
  237. package/docs/de/xtend-catalog-types.md +44 -0
  238. package/docs/de/xtend-fabric-rmt-lane-mapping.md +143 -0
  239. package/docs/de/xtend-fabric.md +474 -0
  240. package/docs/de/xtend-loader-types.md +58 -0
  241. package/docs/de/xtend-loader.md +265 -0
  242. package/docs/de/xtend-policy-types.md +38 -0
  243. package/docs/de/xtend-rmt-types.md +40 -0
  244. package/docs/de/xtend-vendor-types.md +36 -0
  245. package/docs/de/xtendrmt-app-dsl.md +334 -0
  246. package/docs/de/xtendrmt-migration-guide.md +266 -0
  247. package/docs/de/xtendrmt-native-authoring.md +333 -0
  248. package/docs/de/xtendrmt-overview.md +109 -0
  249. package/docs/de/xtendrmt-parsedown-scheduling.md +301 -0
  250. package/docs/de/xtendrmt-runtime-bridge.md +155 -0
  251. package/docs/en/README.md +163 -0
  252. package/docs/en/XTend-ADR.md +221 -0
  253. package/docs/en/a11y-keyboard-smokes.md +68 -0
  254. package/docs/en/about.md +25 -0
  255. package/docs/en/api.md +171 -0
  256. package/docs/en/best-practices.md +125 -0
  257. package/docs/en/changelog.md +104 -0
  258. package/docs/en/component-catalog-coverage.md +104 -0
  259. package/docs/en/component-lab.md +103 -0
  260. package/docs/en/component-long-tail-migration.md +41 -0
  261. package/docs/en/component-platform.md +243 -0
  262. package/docs/en/component-ux-app-authoring.md +118 -0
  263. package/docs/en/component-ux-authoring.md +96 -0
  264. package/docs/en/component-ux-gates.md +45 -0
  265. package/docs/en/components/x-rmt-lifecycle-demo-build.md +75 -0
  266. package/docs/en/components/xalert.md +94 -0
  267. package/docs/en/components/xbutton.md +118 -0
  268. package/docs/en/components/xcalendar.md +95 -0
  269. package/docs/en/components/xcards.md +139 -0
  270. package/docs/en/components/xcheckbox.md +118 -0
  271. package/docs/en/components/xcode.md +153 -0
  272. package/docs/en/components/xdialog.md +108 -0
  273. package/docs/en/components/xdrawer.md +110 -0
  274. package/docs/en/components/xfooter.md +138 -0
  275. package/docs/en/components/xform.md +147 -0
  276. package/docs/en/components/xheader.md +308 -0
  277. package/docs/en/components/xhero.md +157 -0
  278. package/docs/en/components/xicon.md +149 -0
  279. package/docs/en/components/xinput.md +147 -0
  280. package/docs/en/components/xlightbox.md +113 -0
  281. package/docs/en/components/xlink.md +130 -0
  282. package/docs/en/components/xmasonry.md +136 -0
  283. package/docs/en/components/xmenu.md +185 -0
  284. package/docs/en/components/xmodal.md +102 -0
  285. package/docs/en/components/xplayer.md +114 -0
  286. package/docs/en/components/xpopover.md +87 -0
  287. package/docs/en/components/xprogress.md +73 -0
  288. package/docs/en/components/xradio.md +119 -0
  289. package/docs/en/components/xrouter.md +260 -0
  290. package/docs/en/components/xsection.md +136 -0
  291. package/docs/en/components/xselect.md +122 -0
  292. package/docs/en/components/xsidepanel.md +48 -0
  293. package/docs/en/components/xspinner.md +118 -0
  294. package/docs/en/components/xstate.md +163 -0
  295. package/docs/en/components/xstatus.md +71 -0
  296. package/docs/en/components/xsummary.md +90 -0
  297. package/docs/en/components/xsurfacemanager.md +42 -0
  298. package/docs/en/components/xsurfacewindow.md +31 -0
  299. package/docs/en/components/xtabs.md +187 -0
  300. package/docs/en/components/xtextarea.md +115 -0
  301. package/docs/en/components/xtheme.md +203 -0
  302. package/docs/en/components/xtoast.md +78 -0
  303. package/docs/en/components/xtooltip.md +85 -0
  304. package/docs/en/components/xtype.md +91 -0
  305. package/docs/en/components/xutils.md +161 -0
  306. package/docs/en/components/xwriter.md +106 -0
  307. package/docs/en/components.md +151 -0
  308. package/docs/en/conditional-network-evidence-ci.md +38 -0
  309. package/docs/en/conditional-network-evidence.md +50 -0
  310. package/docs/en/core-migration-guide.md +110 -0
  311. package/docs/en/design-tokens.md +137 -0
  312. package/docs/en/docs-rmt-production-hardening.md +31 -0
  313. package/docs/en/enterprise-adoption.md +413 -0
  314. package/docs/en/enterprise-component-flex-release-handoff.md +129 -0
  315. package/docs/en/epic10-platform-gates.md +62 -0
  316. package/docs/en/epic10-release-handoff.md +81 -0
  317. package/docs/en/epic11-enterprise-ux-handoff.md +70 -0
  318. package/docs/en/epic12-rc0-handoff.md +61 -0
  319. package/docs/en/epic18-media-manager-vendor-upstream.md +232 -0
  320. package/docs/en/epic18-rmt-app-platform-release-handoff.md +60 -0
  321. package/docs/en/epic18-vendor-bugfixes.md +29 -0
  322. package/docs/en/existing-component-metadata.md +67 -0
  323. package/docs/en/hydration-performance-closure.md +34 -0
  324. package/docs/en/hydration-policies.md +75 -0
  325. package/docs/en/known-residual-triage.md +22 -0
  326. package/docs/en/manifest-import-policy.md +81 -0
  327. package/docs/en/manifest.md +135 -0
  328. package/docs/en/motion-contrast.md +67 -0
  329. package/docs/en/package-export-lock.md +44 -0
  330. package/docs/en/performance-measurements.md +106 -0
  331. package/docs/en/performance-regression.md +89 -0
  332. package/docs/en/performance.md +132 -0
  333. package/docs/en/previews/README.md +17 -0
  334. package/docs/en/prod-browser-csp-smokes.md +40 -0
  335. package/docs/en/public-component-types.md +79 -0
  336. package/docs/en/quick-start-guide.md +189 -0
  337. package/docs/en/rc0-adoption-guide.md +102 -0
  338. package/docs/en/rc0-gate-matrix.md +58 -0
  339. package/docs/en/rc1-gate-matrix-ci-handoff.md +56 -0
  340. package/docs/en/rc1-migration-notes.md +69 -0
  341. package/docs/en/rc1-readiness.md +46 -0
  342. package/docs/en/release-owner-acceptance.md +56 -0
  343. package/docs/en/release-report-pack-dry-run-evidence.md +39 -0
  344. package/docs/en/rmt-action-effect-runtime.md +101 -0
  345. package/docs/en/rmt-app-platform-authoring.md +47 -0
  346. package/docs/en/rmt-app-platform-fixture.md +35 -0
  347. package/docs/en/rmt-app-platform-migration-guide.md +75 -0
  348. package/docs/en/rmt-app-platform-tooling.md +58 -0
  349. package/docs/en/rmt-component-template-primitives.md +49 -0
  350. package/docs/en/rmt-dom-descriptor-renderer.md +54 -0
  351. package/docs/en/rmt-dsl-authoring-polish.md +143 -0
  352. package/docs/en/rmt-event-routing-runtime.md +98 -0
  353. package/docs/en/rmt-first-demo-app.md +87 -0
  354. package/docs/en/rmt-first-xtend-apps.md +127 -0
  355. package/docs/en/rmt-kernel-panic-recovery-incident-handoff.md +60 -0
  356. package/docs/en/rmt-kernel-security-hardening-migration.md +49 -0
  357. package/docs/en/rmt-kernel-trusted-output-authoring.md +68 -0
  358. package/docs/en/rmt-language-server.md +243 -0
  359. package/docs/en/rmt-lifecycle-demo.md +23 -0
  360. package/docs/en/rmt-linter.md +146 -0
  361. package/docs/en/rmt-node-ssr-adapter.md +99 -0
  362. package/docs/en/rmt-php-ssr-adapter.md +118 -0
  363. package/docs/en/rmt-production-readiness.md +63 -0
  364. package/docs/en/rmt-state-selector-runtime.md +34 -0
  365. package/docs/en/rmt-surface-resource-graph-runtime.md +68 -0
  366. package/docs/en/rmt-tooling-release-gates.md +77 -0
  367. package/docs/en/rmt-vnext-authoring.md +102 -0
  368. package/docs/en/rmt-vnext-component-primitives.md +185 -0
  369. package/docs/en/rmt-vnext-cross-surface-events.md +59 -0
  370. package/docs/en/rmt-vnext-enterprise-mfe-handoff.md +62 -0
  371. package/docs/en/rmt-vnext-fabric-bridge-evidence.md +64 -0
  372. package/docs/en/rmt-vnext-migration-notes.md +62 -0
  373. package/docs/en/rmt-vnext-primitive-authoring-tooling.md +174 -0
  374. package/docs/en/rmt-vnext-primitive-grammar-design.md +268 -0
  375. package/docs/en/rmt-vnext-primitive-lowering.md +91 -0
  376. package/docs/en/rmt-vnext-primitive-migration.md +93 -0
  377. package/docs/en/rmt-vnext-primitive-parser-ast.md +59 -0
  378. package/docs/en/rmt-vnext-primitive-semantic-graph.md +103 -0
  379. package/docs/en/rmt-vnext-primitives-compiler-backlog.md +327 -0
  380. package/docs/en/rmt-vnext-release-handoff.md +83 -0
  381. package/docs/en/rmt-vnext-remote-surfaces.md +81 -0
  382. package/docs/en/rmt-vnext-source-to-sea-gate.md +482 -0
  383. package/docs/en/rmt-vnext-surface-registry-enterprise.md +68 -0
  384. package/docs/en/screenreader-signals.md +56 -0
  385. package/docs/en/supply-chain-gates.md +106 -0
  386. package/docs/en/surface-manager-authoring-guide.md +94 -0
  387. package/docs/en/surface-manager-browser-lab.md +45 -0
  388. package/docs/en/surface-manager-component-lab.md +43 -0
  389. package/docs/en/surface-manager-controller.md +66 -0
  390. package/docs/en/surface-manager-layout-engines.md +32 -0
  391. package/docs/en/surface-manager-lazy-hydration.md +63 -0
  392. package/docs/en/surface-manager-migration-guide.md +113 -0
  393. package/docs/en/surface-manager-native-rmt-surfaces.md +38 -0
  394. package/docs/en/surface-manager-overlay-bridge.md +53 -0
  395. package/docs/en/surface-manager-persistence.md +30 -0
  396. package/docs/en/surface-manager-quality-gates.md +51 -0
  397. package/docs/en/surface-manager-release-handoff.md +68 -0
  398. package/docs/en/surface-manager-remote-policy.md +54 -0
  399. package/docs/en/surface-manager-rmt-authoring.md +89 -0
  400. package/docs/en/surface-manager-route-lifecycle.md +59 -0
  401. package/docs/en/surface-manager-runtime-release-handoff.md +69 -0
  402. package/docs/en/surface-manager-side-panel-runtime.md +36 -0
  403. package/docs/en/surface-manager-stack-policy.md +39 -0
  404. package/docs/en/surface-manager-window-runtime.md +47 -0
  405. package/docs/en/surface-manager-workbench-fixture.md +43 -0
  406. package/docs/en/third-party-design-authoring.md +406 -0
  407. package/docs/en/trusted-dom-boundary-browser-proof.md +32 -0
  408. package/docs/en/trusted-dom-sanitizing.md +124 -0
  409. package/docs/en/type-exports.md +61 -0
  410. package/docs/en/typescript-components.md +63 -0
  411. package/docs/en/visual-browser-regression.md +83 -0
  412. package/docs/en/visual-owner-artifacts.md +46 -0
  413. package/docs/en/visual-snapshot-automation.md +87 -0
  414. package/docs/en/xtend-api-types.md +55 -0
  415. package/docs/en/xtend-builder-types.md +55 -0
  416. package/docs/en/xtend-catalog-types.md +44 -0
  417. package/docs/en/xtend-fabric-rmt-lane-mapping.md +143 -0
  418. package/docs/en/xtend-fabric.md +474 -0
  419. package/docs/en/xtend-loader-types.md +58 -0
  420. package/docs/en/xtend-loader.md +265 -0
  421. package/docs/en/xtend-policy-types.md +38 -0
  422. package/docs/en/xtend-rmt-types.md +40 -0
  423. package/docs/en/xtend-vendor-types.md +36 -0
  424. package/docs/en/xtendrmt-app-dsl.md +331 -0
  425. package/docs/en/xtendrmt-migration-guide.md +256 -0
  426. package/docs/en/xtendrmt-native-authoring.md +336 -0
  427. package/docs/en/xtendrmt-overview.md +63 -0
  428. package/docs/en/xtendrmt-parsedown-scheduling.md +301 -0
  429. package/docs/en/xtendrmt-runtime-bridge.md +155 -0
  430. package/docs/enterprise-adoption.md +4 -2
  431. package/docs/epic18-media-manager-vendor-upstream.md +318 -0
  432. package/docs/epic18-rmt-app-platform-release-handoff.md +67 -0
  433. package/docs/epic18-vendor-bugfixes.md +34 -0
  434. package/docs/index.php +1056 -109
  435. package/docs/manifest.md +8 -2
  436. package/docs/menu.json +986 -133
  437. package/docs/package-export-lock.md +2 -2
  438. package/docs/public-component-types.md +2 -2
  439. package/docs/quick-start-guide.md +126 -58
  440. package/docs/rmt-action-effect-runtime.md +101 -0
  441. package/docs/rmt-app-platform-authoring.md +54 -0
  442. package/docs/rmt-app-platform-fixture.md +46 -0
  443. package/docs/rmt-app-platform-migration-guide.md +88 -0
  444. package/docs/rmt-app-platform-tooling.md +79 -0
  445. package/docs/rmt-component-template-primitives.md +57 -0
  446. package/docs/rmt-dom-descriptor-renderer.md +64 -0
  447. package/docs/rmt-dsl-authoring-polish.md +67 -44
  448. package/docs/rmt-event-routing-runtime.md +98 -0
  449. package/docs/rmt-first-demo-app.md +2 -2
  450. package/docs/rmt-first-xtend-apps.md +70 -46
  451. package/docs/rmt-language-server.md +61 -4
  452. package/docs/rmt-lifecycle-demo.md +1 -2
  453. package/docs/rmt-node-ssr-adapter.md +144 -0
  454. package/docs/rmt-php-ssr-adapter.md +158 -0
  455. package/docs/rmt-state-selector-runtime.md +47 -0
  456. package/docs/rmt-surface-resource-graph-runtime.md +92 -0
  457. package/docs/rmt-vnext-authoring.md +128 -18
  458. package/docs/rmt-vnext-component-primitives.md +188 -0
  459. package/docs/rmt-vnext-fabric-bridge-evidence.md +81 -0
  460. package/docs/rmt-vnext-primitive-authoring-tooling.md +247 -0
  461. package/docs/rmt-vnext-primitive-grammar-design.md +289 -0
  462. package/docs/rmt-vnext-primitive-lowering.md +108 -0
  463. package/docs/rmt-vnext-primitive-migration.md +119 -0
  464. package/docs/rmt-vnext-primitive-parser-ast.md +76 -0
  465. package/docs/rmt-vnext-primitive-semantic-graph.md +118 -0
  466. package/docs/rmt-vnext-primitives-compiler-backlog.md +742 -0
  467. package/docs/rmt-vnext-release-handoff.md +14 -0
  468. package/docs/rmt-vnext-source-to-sea-gate.md +629 -0
  469. package/docs/surface-manager-migration-guide.md +34 -6
  470. package/docs/surface-manager-overlay-bridge.md +9 -4
  471. package/docs/surface-manager-rmt-authoring.md +50 -34
  472. package/docs/surface-manager-workbench-fixture.md +1 -2
  473. package/docs/third-party-design-authoring.md +1 -1
  474. package/docs/type-exports.md +3 -3
  475. package/docs/utils/pageloader.js +811 -62
  476. package/docs/visual-browser-regression.md +1 -1
  477. package/docs/xtend-rmt-types.md +3 -2
  478. package/docs/xtendrmt-app-dsl.md +187 -122
  479. package/docs/xtendrmt-docs-shell-vnext.rmt +165 -0
  480. package/docs/xtendrmt-migration-guide.md +48 -17
  481. package/docs/xtendrmt-native-authoring.md +213 -217
  482. package/docs/xtendrmt-overview.md +81 -61
  483. package/docs/xtendrmt-parsedown-scheduling.md +23 -8
  484. package/fabric/package.json +1 -1
  485. package/package.json +684 -21
  486. package/tools/package.json +5 -1
  487. package/tools/rmt-editor/vscode/README.md +72 -5
  488. package/tools/rmt-editor/vscode/XTend-Logo.png +0 -0
  489. package/tools/rmt-editor/vscode/extension.d.ts +33 -0
  490. package/tools/rmt-editor/vscode/extension.js +1816 -7
  491. package/tools/rmt-editor/vscode/language-configuration.json +2 -1
  492. package/tools/rmt-editor/vscode/package.json +193 -2
  493. package/tools/rmt-editor/vscode/snippets/rmt.code-snippets +41 -0
  494. package/tools/rmt-editor/vscode/syntaxes/rmt.tmLanguage.json +103 -1
  495. package/tools/rmt-editor/vscode/templates/launch.json +70 -0
  496. package/tools/rmt-editor/vscode/templates/tasks.json +172 -0
  497. package/tools/rmt-editor/vscode/xtend-rmt-language-0.0.0-enterprise-readiness.vsix +0 -0
  498. package/tools/rmt-language/app-platform-tooling.d.ts +128 -0
  499. package/tools/rmt-language/app-platform-tooling.js +677 -0
  500. package/tools/rmt-language/completions.d.ts +5 -0
  501. package/tools/rmt-language/completions.js +185 -3
  502. package/tools/rmt-language/diagnostics.js +54 -0
  503. package/tools/rmt-language/hover.js +36 -0
  504. package/tools/rmt-language/rmt-tooling-public-types.d.ts +7 -0
  505. package/tools/rmt-language/rules/app-platform-policy.js +39 -0
  506. package/tools/rmt-language/rules/index.js +5 -1
  507. package/tools/rmt-language/semantic-graph.d.ts +6 -0
  508. package/tools/rmt-language/semantic-graph.js +928 -0
  509. package/tools/rmt-language/snippets/index.js +44 -0
  510. package/tools/rmt-language/snippets/rmt.code-snippets +41 -0
  511. package/tools/rmt-language/vnext-compatibility.d.ts +10 -0
  512. package/tools/rmt-language/vnext-compatibility.js +642 -0
  513. package/tools/rmt-language/vnext-compiler.d.ts +5 -0
  514. package/tools/rmt-language/vnext-compiler.js +863 -17
  515. package/tools/rmt-language/vnext-parser.js +725 -9
  516. package/tools/rmt-language/vnext-release.d.ts +1 -0
  517. package/tools/rmt-language/vnext-release.js +20 -0
  518. package/tools/rmt-language/vnext-source-to-sea.d.ts +33 -0
  519. package/tools/rmt-language/vnext-source-to-sea.js +2227 -0
  520. package/tools/rmt-language/vnext-surfaces.js +111 -52
  521. package/tools/rmt-language/vnext-tooling.d.ts +19 -1
  522. package/tools/rmt-language/vnext-tooling.js +1247 -5
  523. package/tools/rmt-language-server/protocol.js +3 -0
  524. package/tools/rmt-language-server/server.d.ts +2 -0
  525. package/tools/rmt-language-server/server.js +176 -22
  526. package/tools/rmt-linter/cli.d.ts +2 -0
  527. package/tools/rmt-linter/cli.js +62 -0
  528. package/xtend-builder/generators/registry.js +11 -0
  529. package/xtend-builder/generators/rmt-app-platform.js +239 -0
  530. package/xtend-builder/generators/rmt-lifecycle-demo.js +3 -11
  531. package/xtend-builder/lib/cli.js +38 -0
  532. package/xtend-builder/package.json +3 -3
  533. package/xtend-builder/scaffold.config.js +29 -2
  534. package/xtend.css +49 -2
  535. package/xtendrmt/package.json +49 -1
  536. package/xtendrmt/rmt-action-effect-runtime.d.ts +126 -0
  537. package/xtendrmt/rmt-action-effect-runtime.js +494 -0
  538. package/xtendrmt/rmt-component-capability-registry.d.ts +180 -0
  539. package/xtendrmt/rmt-component-capability-registry.js +636 -0
  540. package/xtendrmt/rmt-core.d.ts +6 -0
  541. package/xtendrmt/rmt-core.esm.js +32 -6
  542. package/xtendrmt/rmt-dom-descriptor-renderer.d.ts +107 -0
  543. package/xtendrmt/rmt-dom-descriptor-renderer.js +1066 -0
  544. package/xtendrmt/rmt-event-routing-runtime.d.ts +144 -0
  545. package/xtendrmt/rmt-event-routing-runtime.js +666 -0
  546. package/xtendrmt/rmt-lifecycle-demo.app.js +2 -2
  547. package/xtendrmt/rmt-lifecycle-demo.core.json +4 -0
  548. package/xtendrmt/rmt-lifecycle-demo.rmt-build.app.js +1 -1
  549. package/xtendrmt/rmt-lifecycle-demo.rmt-build.scaffold.json +2 -2
  550. package/xtendrmt/rmt-lifecycle-demo.scaffold.json +4 -4
  551. package/xtendrmt/rmt-native-shell-runtime.d.ts +77 -0
  552. package/xtendrmt/rmt-native-shell-runtime.js +309 -0
  553. package/xtendrmt/rmt-node-ssr-adapter.d.ts +197 -0
  554. package/xtendrmt/rmt-node-ssr-adapter.js +1006 -0
  555. package/xtendrmt/rmt-php-ssr-adapter.php +976 -0
  556. package/xtendrmt/rmt-runtime.browser.js +32 -6
  557. package/xtendrmt/rmt-runtime.esm.js +32 -6
  558. package/xtendrmt/rmt-state-selector-runtime.d.ts +166 -0
  559. package/xtendrmt/rmt-state-selector-runtime.js +866 -0
  560. package/xtendrmt/rmt-surface-resource-graph-runtime.d.ts +224 -0
  561. package/xtendrmt/rmt-surface-resource-graph-runtime.js +932 -0
  562. package/xtendrmt/rmt-vnext-enterprise-mfe-demo.core.json +3 -0
  563. package/xtendrmt/rmt-vnext-reference-demo.core.json +3 -0
  564. package/xtendrmt/xtendrmt-bestcase-demo.core.json +3420 -372
  565. package/xtendrmt/xtendrmt-bestcase-demo.js +424 -8
  566. package/xtendrmt/xtendrmt-bestcase-demo.rmt +214 -6
@@ -0,0 +1,82 @@
1
+ # xmodal - XTend Komponente
2
+
3
+ ## Uebersicht
4
+
5
+ `<x-modal>` ist die state-getriebene Modal-Komponente fuer XTend. Sie wird vor allem ueber `window.XModal.show()` verwendet, kann aber auch direkt im DOM mit Attributen und Slots betrieben werden.
6
+
7
+ ## Verwendung
8
+
9
+ ```html
10
+ <x-modal title="Hinweis" open>
11
+ <p>Modal-Inhalt</p>
12
+ </x-modal>
13
+ ```
14
+
15
+ ## Attribute
16
+
17
+ | Attribut | Typ | Beschreibung |
18
+ |----------|-----|--------------|
19
+ | `open` | boolean | Modal ist geoeffnet |
20
+ | `overlay` | boolean | zeigt einen Overlay-Hintergrund |
21
+ | `title` | string | Titel des Modals |
22
+ | `content` | string | textueller Inhalt |
23
+ | `actions` | string | JSON-Array fuer Action-Buttons |
24
+
25
+ ## Slots
26
+
27
+ | Slot | Beschreibung |
28
+ |------|--------------|
29
+ | default | Hauptinhalt des Modals |
30
+ | `actions` | optionaler Action-Bereich |
31
+
32
+ ## Events
33
+
34
+ | Event | Beschreibung |
35
+ |-------|--------------|
36
+ | `modal-opened` | nach erfolgreichem Oeffnen |
37
+ | `modal-closed` | nach erfolgreichem Schliessen |
38
+ | `modal-action` | wenn ein konfigurierte Action ausgewaehlt wird |
39
+
40
+ ## API
41
+
42
+ - `element.open()`
43
+ - `element.close()`
44
+
45
+ Open-State wird ueber dieselben Pfade gefuehrt:
46
+
47
+ - `xtend.component.x-modal.<id>.open`
48
+ - `modal-open-<id>`
49
+
50
+ ## Runtime-Contract
51
+
52
+ - API-gemanagte Modals lesen Titel, Inhalt und Aktionen aus `xstate.get('ui').modals`
53
+ - ESC, Overlay-Klick und Close-Button schreiben den Open-State zurueck
54
+ - API-gemanagte Modals entfernen sich nach dem Schliessen aus `ui.modals` und aus dem DOM
55
+ - direkt eingebettete Overlay-Modals werden waehrend `open` in eine `document.body` Portal-Schicht gehoben, damit Blur und Overlay den gesamten Viewport abdecken
56
+
57
+ ## Hinweise
58
+
59
+ - `modal-action` enthaelt die ausgewaehlte Action-Definition im Event-Detail
60
+ - fuer API-gemanagte Modals ist `window.XModal.show()` der bevorzugte Einstieg
61
+ - der Focus-Ruecksprung zum zuletzt aktiven Element ist Teil des Standardverhaltens
62
+
63
+ ## Overlay Interaction UX Profil
64
+
65
+ Seit `WP-E11-11` deklariert `<x-modal>` das Runtime-Profil `xtend.component.overlay-interaction-ux-profile.v1` ueber `xtendOverlayInteractionUxProfile`.
66
+
67
+ | Feld | Wert |
68
+ |------|------|
69
+ | Family | `modal-dialog` |
70
+ | State Key | `modal-open-<id>` |
71
+ | Schedule | `overlay.stack.open` |
72
+ | Commands | `open`, `close`, `focus-trap`, `apply-inert`, `lock-scroll`, `snapshot` |
73
+
74
+ Das Profil legt Focus Trap, Rueckfokus, Escape-Topmost-Regel, Background-Inert, balanced Scroll Lock und eine dokumentweite Portal-Schicht fest. RMT beschreibt diese Regeln shell-first ueber `tests/fixtures/rmt-overlay-interaction-ux.rmt`; der RMT-Kernel importiert weiterhin keine XTend-Typen.
75
+
76
+ Die Portal-Schicht ist dokumentweit: Wenn ein Modal mit `overlay` in verschachtelten App-Shells, XRouter-Routen oder transformierten Layout-Containern geoeffnet wird, wird der Host temporaer unter `document.body` geparkt und nach dem Schliessen an seine urspruengliche Position zurueckgesetzt. Dadurch bleibt die Slot-Faehigkeit erhalten, waehrend Overlay und Blur nicht auf den lokalen `main`- oder Route-Container begrenzt sind.
77
+
78
+ ## ECH-WP-06 Overlay-Paritaet
79
+
80
+ `x-modal` expose `surface`, `backdrop`, `close` und `content` als gemeinsame Overlay-Parts. `overlay` bleibt als Alias fuer `backdrop` erhalten. Host-Themes koennen Backdrop, Surface, Text, Elevation, Radius, Z-Index, Action-Text, Close-Flaeche und Focus Ring ueber `--xtend-overlay-*`, `--modal-*` oder `--xmodal-*` Tokens steuern.
81
+
82
+ `x-modal` ist modal: Focus Trap, Background-Inert, Scroll Lock, Escape und Rueckfokus sind Teil des Standardpfads. Ein Modal ohne `overlay` behält die Surface-Parts, rendert aber keinen visuellen Backdrop.
@@ -0,0 +1,104 @@
1
+ # xplayer – XTend Komponente
2
+
3
+ > **Siehe auch:** [xlightbox](./xlightbox.md)
4
+
5
+ ## Übersicht
6
+
7
+ `<x-player>` ist eine vielseitige Media-Player-Komponente für Audio und Video. Sie unterstützt Playlists, Custom Controls, Theming, State-Integration, Download, Media-Chooser und Vollbild.
8
+
9
+ ---
10
+
11
+ ## Features
12
+ - Wiedergabe von Audio/Video
13
+ - Playlists und Media-Controls
14
+ - Download-Button (optional)
15
+ - Media-Chooser (Quellenauswahl)
16
+ - Poster-Bild für Videos
17
+ - Vollbildmodus
18
+ - State-Integration via xstate
19
+ - Theming via CSS Custom Properties
20
+
21
+ ---
22
+
23
+ ## Verwendung
24
+
25
+ ```html
26
+ <x-player src="song.mp3" type="audio"></x-player>
27
+ <x-player src="video.mp4" poster="cover.jpg" type="video" title="Demo Video" downloadable="true"></x-player>
28
+ ```
29
+
30
+ ---
31
+
32
+ ## Attribute
33
+ | Attribut | Typ | Beschreibung |
34
+ |------------------|---------|----------------------------------------------------------|
35
+ | `src` | String | Media-URL (Audio/Video) |
36
+ | `poster` | String | Vorschaubild für Video |
37
+ | `type` | String | Medientyp (`audio` oder `video`, Standard: `video`) |
38
+ | `media-chooser` | String | `true` für Quellenauswahl (Dropdown) |
39
+ | `downloadable` | String | `true` für Download-Button |
40
+ | `autoplay` | Boolean | Autoplay beim Laden |
41
+ | `title` | String | Titelanzeige im Player |
42
+ | `height` | String | Höhe (z.B. `360`) |
43
+ | `width` | String | Breite (z.B. `640`) |
44
+
45
+ ---
46
+
47
+ ## Events
48
+ | Event | Beschreibung |
49
+ |-------------------|----------------------------------------------|
50
+ | `xplayer-play` | Wiedergabe gestartet, Detail: `{ currentTime }` |
51
+ | `xplayer-pause` | Wiedergabe pausiert, Detail: `{ currentTime }` |
52
+ | `xplayer-mute` | Stummschaltung geändert, Detail: `{ muted }` |
53
+ | `xplayer-volume` | Lautstärke geändert, Detail: `{ volume }` |
54
+
55
+ ---
56
+
57
+ ## API
58
+ - **Abspielen:** `element.play()`
59
+ - **Pausieren:** `element.pause()`
60
+ - **State-Integration:** Automatisch via xstate
61
+ - **Vollbild:** `element.requestFullscreen()`
62
+
63
+ ---
64
+
65
+ ## Beispiel: Dynamisch per JS
66
+
67
+ ```js
68
+ const player = document.createElement('x-player');
69
+ player.setAttribute('src', 'song.mp3');
70
+ document.body.appendChild(player);
71
+ player.play();
72
+ ```
73
+
74
+ ---
75
+
76
+ ## Styling & Theming
77
+
78
+ ```css
79
+ x-player {
80
+ --primary-color: #4fc3f7;
81
+ --border-radius: 8px;
82
+ /* Weitere Custom Properties siehe CSS */
83
+ }
84
+ ```
85
+
86
+ ---
87
+
88
+ ## Accessibility
89
+ - Semantisches HTML, ARIA
90
+ - Tastaturbedienung
91
+
92
+ ---
93
+
94
+ *Letzte Aktualisierung: 16. Juli 2025*
95
+
96
+ ## Layout Display Media UX Profil
97
+
98
+ `x-player` stellt ab `WP-E11-12` das Profil `xtend.component.layout-display-media-ux-profile.v1` bereit. Media kann dadurch shell-first gerendert und erst ueber `media.lazy.load` bzw. `media.playback.user` geplant werden. Der State-Key lautet `xplayer-state-<id>`.
99
+
100
+ - Profil-Getter: `xtendLayoutDisplayMediaUxProfile`
101
+ - Schedule: `media.lazy.load`
102
+ - Events: `xplayer-play`, `xplayer-pause`, `xplayer-fullscreen`, `xplayer-pip`
103
+ - Snapshot: `snapshot()`
104
+ - CSS Parts: `root`, `media`, `controls`, `progress`, `overlay`
@@ -0,0 +1,67 @@
1
+ # xpopover - XTend Komponente
2
+
3
+ > **Siehe auch:** [xtooltip](./xtooltip.md), [xdrawer](./xdrawer.md), [xdialog](./xdialog.md), [xmodal](./xmodal.md)
4
+
5
+ ## Uebersicht
6
+
7
+ `<x-popover>` ist ein interaktives, verankertes Overlay aus `WP-E10-11`. Es eignet sich fuer Filter, Menues, Toolbars und kontextuelle Aktionen, kann modal betrieben werden und bleibt als Custom Element ueber RMT beschreibbar.
8
+
9
+ ## Verwendung
10
+
11
+ ```html
12
+ <x-popover id="filters" placement="bottom" modal label="Filter options">
13
+ <button slot="trigger" type="button">Open filters</button>
14
+ <p>Filter content can be mounted by RMT.</p>
15
+ <button slot="actions" type="button">Apply</button>
16
+ </x-popover>
17
+ ```
18
+
19
+ ## Attribute
20
+
21
+ | Attribut | Typ | Beschreibung |
22
+ |----------|-----|--------------|
23
+ | `open` | Boolean | oeffnet das Popover kontrolliert |
24
+ | `placement` | String | `top`, `right`, `bottom` oder `left` |
25
+ | `modal` | Boolean | aktiviert Focus Trap und `aria-modal` |
26
+ | `anchor` | String | vorbereitetes Anchor-Mapping fuer RMT Authoring |
27
+ | `label` | String | zugaenglicher Name fuer den Dialog |
28
+
29
+ ## Events
30
+
31
+ | Event | Detail |
32
+ |-------|--------|
33
+ | `popover-opened` | `{ id, open, source, placement, modal }` |
34
+ | `popover-closed` | `{ id, open, source, placement, modal }` |
35
+
36
+ ## API
37
+
38
+ - `show()`
39
+ - `hide()`
40
+ - `toggle()`
41
+
42
+ ## State, RMT und Fabric
43
+
44
+ `<x-popover>` schreibt nach `xpopover-open-<id>`. RMT nutzt `xtend.rmt.component-contract.v1`, `dom_descriptor` Templates und kann Events als `dom-event-to-rmt-command` binden. Fuer interaktive UIs ist die Lane `user-blocking`; der Kernel Boundary bleibt `no-rmt-kernel-import-of-xtend-types`.
45
+
46
+ ## A11y und Performance
47
+
48
+ Das Popover nutzt `role="dialog"`, `aria-expanded`, `aria-controls`, optional `aria-modal` und Focus Return. `Escape`, Outside Click und `focus-return` sind Pflichtsignale. Das Performance-Profil ist `xtend.performance.component-profile.v1` mit `budgetClass: 'overlay-medium'`, `lane: 'user-blocking'` und `hydrationPolicy: 'visible'`.
49
+
50
+ ## Overlay Interaction UX Profil
51
+
52
+ Seit `WP-E11-11` deklariert `<x-popover>` das Runtime-Profil `xtend.component.overlay-interaction-ux-profile.v1` ueber `xtendOverlayInteractionUxProfile`.
53
+
54
+ | Feld | Wert |
55
+ |------|------|
56
+ | Family | `popover` |
57
+ | State Key | `xpopover-open-<id>` |
58
+ | Schedule | `overlay.position.update` |
59
+ | Commands | `show`, `hide`, `toggle`, `focus-trap`, `snapshot` |
60
+
61
+ Das Profil trennt die leichte Anchor-Schicht vom modal optionalen Betrieb. Focus Trap wird nur bei `modal` aktiviert, Escape schliesst das oberste Popover und Outside Click bleibt als bewusstes Dismiss-Verhalten dokumentiert.
62
+
63
+ ## ECH-WP-06 Overlay-Paritaet
64
+
65
+ `x-popover` expose `surface`, `backdrop`, `close` und `content` als gemeinsame Overlay-Parts. Der Backdrop wird nur bei `modal` sichtbar; der Close-Button ist tokenisiert und kann ueber `--popover-close-display` sowie `--xpopover-close-*` an Corporate-Patterns angepasst werden.
66
+
67
+ Der Default bleibt nicht-modal: kein Inert und kein Scroll Lock. Mit `modal` aktiviert das Popover Backdrop, Focus Trap, Escape und Rueckfokus. Surface, Text, Border, Elevation, Radius, Backdrop und Z-Index laufen ueber `--xtend-overlay-*`, `--popover-*` oder `--xpopover-*` Tokens.
@@ -0,0 +1,56 @@
1
+ # xprogress - XTend Komponente
2
+
3
+ > **Siehe auch:** [xstatus](./xstatus.md), [xspinner](./xspinner.md), [xstate](./xstate.md)
4
+
5
+ ## Uebersicht
6
+
7
+ `<x-progress>` ist das RMT-first Progress-Control aus `WP-E10-10`. Es visualisiert determinate und indeterminate Fortschritte, meldet Fortschrittsereignisse an Fabric/Telemetry und kann in Shell-first RMT-Templates fuer Hydration, Upload, Route- oder Worker-Aufgaben eingesetzt werden.
8
+
9
+ ## Verwendung
10
+
11
+ ```html
12
+ <x-progress id="route-progress" value="64" max="100" status="Hydrating route" busy>
13
+ <span slot="label">Route hydration</span>
14
+ </x-progress>
15
+ ```
16
+
17
+ ## Attribute
18
+
19
+ | Attribut | Typ | Beschreibung |
20
+ |----------|-----|--------------|
21
+ | `value` | Number | aktueller Wert |
22
+ | `max` | Number | Maximalwert |
23
+ | `label` | String | Label ohne Slot |
24
+ | `status` | String | Statusmeldung fuer Screenreader und UI |
25
+ | `indeterminate` | Boolean | aktiviert unbestimmten Fortschritt |
26
+ | `busy` | Boolean | setzt `aria-busy` |
27
+
28
+ ## Events
29
+
30
+ | Event | Detail |
31
+ |-------|--------|
32
+ | `progress-changed` | `{ value, max, percent, source: 'x-progress' }` |
33
+ | `progress-complete` | `{ value, max, percent: 100, source: 'x-progress' }` |
34
+
35
+ ## API
36
+
37
+ - `element.value`
38
+ - `element.max`
39
+ - `element.percent`
40
+ - `element.setProgress(value)`
41
+ - `element.complete()`
42
+ - `element.reset()`
43
+
44
+ ## State, RMT und Fabric
45
+
46
+ `<x-progress>` schreibt nach `xprogress-value-<id>` und ist fuer `feedback.progress.update` vorbereitet. Die RMT-Metadaten nutzen `xtend.rmt.component-contract.v1`, `adapter: 'xtend.component'` und `kernelBoundary: 'no-rmt-kernel-import-of-xtend-types'`. Dadurch kann RMT Progress als scheduled UI-Feedback behandeln, waehrend XTend die Web Component rendert.
47
+
48
+ ## A11y und Performance
49
+
50
+ Das Control nutzt `role="progressbar"`, `aria-valuenow`, `aria-valuemax`, `aria-valuetext`, `aria-busy` und eine polite Statusregion. Das Performance-Profil ist `xtend.performance.component-profile.v1` mit `budgetClass: 'feedback-small'`, `lane: 'background'` und `hydrationPolicy: 'visible'`.
51
+
52
+ ## Feedback Status UX ab WP-E11-09
53
+
54
+ `<x-progress>` stellt `xtendFeedbackStatusUxProfile` mit `xtend.component.feedback-status-ux-profile.v1` bereit. Das Profil beschreibt Progress als scheduled Feedback mit `progress-changed`, `progress-complete`, `xprogress-value-<id>`, `feedback.progress.update`, Fabric-Lane `background`, A11y-Lane `a11y` und RMT Shell Authoring.
55
+
56
+ Determinate und indeterminate Progress-Zustaende duerfen nicht nur ueber Farbe oder Animation vermittelt werden. `aria-valuetext`, die Statusregion und Reduced-Motion-Regeln bleiben deshalb Teil der Public UX-Oberflaeche.
@@ -0,0 +1,103 @@
1
+ # xradio – XTend Komponente
2
+
3
+ > **Siehe auch:** [xform](./xform.md), [xinput](./xinput.md), [xstate](./xstate.md)
4
+
5
+ ## Uebersicht
6
+
7
+ `<x-radio>` vervollstaendigt die TypeScript-first Selection Controls aus `WP-E10-09`. Die Komponente koordiniert Gruppen ueber `name`, unterstuetzt Keyboard-Navigation und liefert RMT-, Fabric-, A11y- und Performance-Metadaten fuer RMT-first Apps.
8
+
9
+ ## Verwendung
10
+
11
+ ```html
12
+ <x-radio id="plan-starter" name="plan" value="starter">
13
+ <span slot="label">Starter</span>
14
+ </x-radio>
15
+ <x-radio id="plan-pro" name="plan" value="pro" checked>
16
+ <span slot="label">Pro</span>
17
+ </x-radio>
18
+ ```
19
+
20
+ ## Attribute
21
+
22
+ | Attribut | Typ | Beschreibung |
23
+ |----------|-----|--------------|
24
+ | `name` | String | Gruppen- und Formularname |
25
+ | `value` | String | Wert des Radio-Controls |
26
+ | `checked` | Boolean | aktueller Auswahlzustand |
27
+ | `required` | Boolean | aktiviert Validierung |
28
+ | `disabled` | Boolean | deaktiviert das Control |
29
+ | `label` | String | ARIA-/Textlabel ohne Slot |
30
+
31
+ ## Slots
32
+
33
+ | Slot | Zweck |
34
+ |------|-------|
35
+ | `label` | sichtbares Label |
36
+ | `hint` | zusaetzlicher Hinweistext |
37
+ | `error` | Validierungsfehler |
38
+
39
+ ## Events
40
+
41
+ | Event | Detail |
42
+ |-------|--------|
43
+ | `radio-changed` | `{ checked, value, name, source: 'x-radio' }` |
44
+ | `radio-invalid` | `{ checked, value, name, message, source: 'x-radio' }` |
45
+
46
+ ## API
47
+
48
+ - `element.checked`
49
+ - `element.value`
50
+ - `element.name`
51
+ - `element.check()`
52
+ - `element.checkValidity()`
53
+ - `element.reportValidity()`
54
+ - `element.validate()`
55
+ - `element.reset()`
56
+ - `element.focus()`
57
+
58
+ ## State, RMT und Fabric
59
+
60
+ `<x-radio>` schreibt den Einzelzustand nach `xradio-checked-<id>` und den Gruppenwert nach `xradio-value-<name>`. Die RMT-Metadaten nutzen `xtend.rmt.component-contract.v1`; RMT kann eine Radio-Gruppe als DOM-Descriptor templaten und die UI ueber `xtend.component` schedulen, ohne XTend in den RMT-Kernel zu importieren.
61
+
62
+ ## A11y und Performance
63
+
64
+ Die Komponente nutzt `role="radio"`, `aria-checked`, `aria-describedby`, Space-Aktivierung sowie Arrow-Key-Navigation innerhalb der Gruppe. Das Performance-Profil ist `xtend.performance.component-profile.v1` mit `budgetClass: 'interactive-small'`, `lane: 'user-blocking'` und `hydrationPolicy: 'visible'`.
65
+
66
+ ## Form Controls UX ab WP-E11-08
67
+
68
+ `<x-radio>` stellt `xtendFormControlUxProfile` mit `xtend.component.form-control-ux-profile.v1` bereit. Das Profil verbindet Label, Hint, Error, `radio-changed`, `radio-invalid`, `xradio-value-<name>`, `ui.user-blocking.input`, Fabric-Lane `user-blocking` und RMT Shell Authoring.
69
+
70
+ ## ECH-WP-08 Form Theme/A11y Hardening
71
+
72
+ `signatureDesign`: Enterprise-Radio-Option mit robuster nativer Fokusfuehrung, gruppensicherer Validierung und separat themebarem Selection-Icon.
73
+
74
+ | Token | Zweck |
75
+ | --- | --- |
76
+ | `--xtend-form-text` | Host-Textfarbe |
77
+ | `--xtend-form-control-surface` | Native Control-Flaeche |
78
+ | `--xtend-form-control-text` | Control-Text-Fallback |
79
+ | `--xtend-form-label-text` | Label |
80
+ | `--xtend-form-helper-text` | Helper |
81
+ | `--xtend-form-error-text` | Fehlertext |
82
+ | `--xtend-form-error-surface` | Fehlerflaeche |
83
+ | `--xtend-form-error-border` | Fehlerkante und Marker |
84
+ | `--xtend-form-focus-ring` | Focus-Outline |
85
+ | `--xtend-form-radius` | Radio-/Error-Radius |
86
+ | `--xtend-form-gap` | Label-/Helper-Abstand |
87
+ | `--xtend-form-font-family` | Form-Typografie |
88
+ | `--xtend-form-control-font-size` | Label-Schrift |
89
+ | `--xtend-form-helper-font-size` | Helper/Error-Schrift |
90
+ | `--xtend-form-icon-color` | Radio-Akzent |
91
+
92
+ Density-Profile: `comfortable`, `compact`, `dense`. Invalid ist nicht farb-only und wird per `aria-invalid` gespiegelt.
93
+
94
+ ```css
95
+ [data-xtend-form-theme="enterprise-foreign"] x-radio {
96
+ --xtend-form-icon-color: #8f4f2a;
97
+ --xtend-form-label-text: #22312c;
98
+ --xtend-form-helper-text: #596861;
99
+ --xtend-form-error-text: #7d231c;
100
+ --xtend-form-error-border: #a64036;
101
+ --xtend-form-focus-ring: 3px solid #8f4f2a;
102
+ }
103
+ ```
@@ -0,0 +1,260 @@
1
+ # xrouter - XTend Komponente
2
+
3
+ ## Uebersicht
4
+
5
+ `<x-router>` ist der clientseitige Router fuer XTend-SPAs. Er verarbeitet deklarative `<x-route>`-Definitionen, unterstuetzt Hash- und History-Mode und synchronisiert Navigation mit `xstate`.
6
+
7
+ ## Kernverhalten
8
+
9
+ - nur direkte `<x-route>`-Kinder von `<x-router>` gelten als Top-Level-Routen
10
+ - Nested Routes werden ausschliesslich ueber direkte Kind-Routen der jeweiligen Elternroute verarbeitet
11
+ - Navigation kann deklarativ, per `x-link` oder programmatisch ueber `xstate.set('router-navigate', '/ziel')` angestossen werden
12
+
13
+ ## Verwendung
14
+
15
+ ```html
16
+ <x-router mode="history">
17
+ <x-route path="/" component="x-home" import="/components/xhome.js" title="Home"></x-route>
18
+ <x-route path="/docs" component="x-docs" import="/components/xdocs.js" title="Docs">
19
+ <x-route path=":topic" component="x-doc-topic" import="/components/xdoctopic.js" title-template="{{params.topic}} | XTend Docs"></x-route>
20
+ </x-route>
21
+ <x-route path="*" component="x-notfound" import="/components/xnotfound.js"></x-route>
22
+ </x-router>
23
+ ```
24
+
25
+ ## Attribute
26
+
27
+ | Attribut | Typ | Beschreibung |
28
+ |----------|-----|--------------|
29
+ | `mode` | string | `hash` oder `history` |
30
+ | `routesrc` | string | optionale JSON-Quelle fuer Routen |
31
+ | `skeleton` | string | aktiviert einen nativen Route-Skeleton-Fallback waehrend Import, Definition und Hydration |
32
+ | `skeleton-lines` | number | Anzahl der Skeleton-Zeilen fuer den Route-Fallback |
33
+ | `skeleton-min-height` | string | stabile Mindesthoehe des Route-Fallbacks |
34
+ | `title-template` / `document-title-template` | string | globales Template fuer den Dokumenttitel, z.B. `{{title}} | App` |
35
+ | `title-prefix` / `title-suffix` | string | einfacher Prefix/Suffix fuer Routentitel ohne Template |
36
+ | `default-title` | string | Fallback, wenn eine Route keinen Titel definiert |
37
+
38
+ ## Document Title Rewrite und SEO Meta
39
+
40
+ XRouter schreibt nach jedem erfolgreichen Route-Match den Browser-Titel und die SEO-Metatags `description` und `keywords`. Dadurch bleibt eine SPA nicht auf dem Initialtitel stehen, und RMT-Routen koennen Titelinformationen ohne XTend-spezifische Runtime-Imports liefern.
41
+
42
+ Direkte Route-Attribute:
43
+
44
+ ```html
45
+ <x-router mode="hash" document-title-template="{{title}} | XTend">
46
+ <x-route
47
+ path="/components/x-router"
48
+ component="x-doc-page"
49
+ title="XRouter"
50
+ document-title="XRouter Routing und SEO"
51
+ meta-description="Routing, Seitentitel und RMT Route Metadata"
52
+ meta-keywords="xtend, xrouter, rmt">
53
+ </x-route>
54
+ </x-router>
55
+ ```
56
+
57
+ RMT kann dieselben Werte ueber Route-Records und `metadata` liefern:
58
+
59
+ ```json
60
+ {
61
+ "id": "settings",
62
+ "path": "/settings",
63
+ "router": "xtend.xrouter",
64
+ "component": "page.settings",
65
+ "metadata": {
66
+ "title": "Settings",
67
+ "documentTitle": "Settings | XTend App",
68
+ "metaDescription": "Einstellungen der XTend RMT App",
69
+ "seo": {
70
+ "keywords": ["xtend", "rmt", "routing"]
71
+ }
72
+ }
73
+ }
74
+ ```
75
+
76
+ Unterstuetzte Template-Variablen sind `{{title}}`, `{{routeTitle}}`, `{{documentTitle}}`, `{{path}}`, `{{routeId}}`, `{{component}}`, `{{params.name}}`, `{{query.name}}` und `{{metadata.name}}`. Bei Nested Routes gewinnt die Leaf-Route, damit Deep Links eigene Titel bekommen.
77
+
78
+ ## Events
79
+
80
+ | Event | Beschreibung |
81
+ |-------|--------------|
82
+ | `xrouter-before-navigate` | cancelable, vor programmatischer Router-Navigation |
83
+ | `route-changed` | wird nach erfolgreicher Navigation emittiert |
84
+ | `routechange` | Legacy-Alias zu `route-changed` |
85
+ | `xrouter-after-navigate` | Legacy-Window-Event nach dem Rendern einer Route |
86
+ | `route-announced` | wird nach dem Schreiben der Route-Live-Region emittiert |
87
+ | `xrouter-skeleton-shown` / `xrouter-skeleton-hidden` | markieren den nativen Route-Skeleton-Lifecycle |
88
+ | `xrouter-route-hydrated` | wird nach Loader-basierter Hydration des gerenderten Route-Subtrees emittiert |
89
+ | `xrouter-title-updated` | wird nach dem Schreiben von `document.title` und SEO-Metatags emittiert |
90
+ | `xrouter-scroll-boundary-normalized` | wird emittiert, wenn der Router nach einem Route-Wechsel eine stale Scrollposition oder eine Deadzone unterhalb des Contentbereichs korrigiert |
91
+ | `xrouter-navigation-overlays-closed` | wird emittiert, wenn der Router vor einem Route-Render offene App-Shell-Overlays wie `x-header` schliesst |
92
+
93
+ ## XState-Keys
94
+
95
+ - `router-navigate`: programmatischer Navigationseingang
96
+ - `router-navigated`: zuletzt angestossener Zielpfad
97
+ - `router-current`: aktuell gerenderte Route
98
+ - `router-rendered`: zuletzt erfolgreich gerenderte Route
99
+ - `router-scroll-boundary`: Legacy-Snapshot der letzten Scroll-Boundary-Pruefung
100
+ - `router-closed-navigation-overlays`: Legacy-Snapshot der vor dem Route-Render geschlossenen Navigationsoverlays
101
+ - `xtend.router.current`: kanonischer Route Context
102
+ - `xtend.router.announcement`: zuletzt angekuendigte Route
103
+ - `xtend.router.documentMeta`: zuletzt gesetzter Dokumenttitel und SEO-Metatags
104
+ - `xtend.router.skeleton`: aktueller Route-Skeleton-Lifecycle
105
+ - `xtend.router.scrollBoundary`: kanonischer Snapshot der letzten Scroll-Boundary-Pruefung
106
+ - `xtend.router.closedNavigationOverlays`: kanonischer Snapshot der vor dem Route-Render geschlossenen Navigationsoverlays
107
+
108
+ Die kanonischen Spiegelpfade werden ebenfalls gepflegt:
109
+
110
+ - `xtend.router.lastNavigated`
111
+ - `xtend.router.current`
112
+ - `xtend.router.lastRendered`
113
+
114
+ ## Route-Detail
115
+
116
+ `route-changed` und `xrouter-after-navigate` liefern ein Detailobjekt mit:
117
+
118
+ ```js
119
+ {
120
+ path: '/docs/router',
121
+ routeId: 'docs-topic',
122
+ component: 'x-doc-topic',
123
+ params: { topic: 'router' },
124
+ query: {},
125
+ template: 'docs.topic.shell',
126
+ scheduleRef: 'route.visible.render',
127
+ title: 'Router',
128
+ documentTitle: 'Router | XTend Docs',
129
+ meta: {
130
+ schema: 'xtend.router.document-meta.v1',
131
+ scheduleRef: 'route.document.title.rewrite'
132
+ },
133
+ metadata: {}
134
+ }
135
+ ```
136
+
137
+ Bei Nested Routes ist `component` die Leaf-Route; `params` werden aus der kompletten Match-Kette zusammengefuehrt.
138
+
139
+ ## Skeleton und Lazy Hydration
140
+
141
+ XRouter kann Route-Komponenten shell-first laden:
142
+
143
+ ```html
144
+ <x-router mode="hash" skeleton="article" skeleton-lines="8" skeleton-min-height="20rem">
145
+ <x-route
146
+ path="/docs"
147
+ component="xtend-doc-page"
148
+ import="/docs/utils/pageloader.js"
149
+ hydrate-schedule="docs.page.hydrate">
150
+ </x-route>
151
+ </x-router>
152
+ ```
153
+
154
+ Wenn der Component-Tag noch nicht definiert ist, nutzt XRouter zuerst das explizite `import` der Route. Fehlt ein Import, delegiert er an `window.XTendLoader.ensureComponent(componentTag)`, sodass Manifest-Komponenten route-nativ lazy geladen werden koennen. Nach dem Rendern hydriert XRouter den Route-Subtree ueber `window.XTendLoader.hydrateTree(...)`.
155
+
156
+ ## Navigation Routing UX Profil
157
+
158
+ `<x-router>` stellt `xtendNavigationRoutingUxProfile` mit `xtend.component.navigation-routing-ux-profile.v1` bereit. Das Profil beschreibt `x-router` als Router-Outlet mit `route-changed`, `route-announced`, `xrouter-before-navigate`, `xtend.router.current`, `route.visible.render`, `route.focus.restore`, `a11y.announce`, Fabric-Lane `transition` und RMT Shell Authoring.
159
+
160
+ Nach erfolgreichem Rendern fokussiert der Router sein Outlet und schreibt eine polite, atomare Live Region. Dadurch koennen RMT und Fabric Route-Render, Focus Restore und Screenreader-Announcement getrennt schedulen, ohne dass der RMT-Kernel XTend-Interna importiert.
161
+
162
+ Die neuen Diagnostics-Details enthalten `source: 'x-router'`, `stateKey` und `scheduleRef`, sodass `x-link`, Feedback-Komponenten und RMT-Scheduler denselben Route Context teilen koennen.
163
+
164
+ ## Scroll Boundary, Overlays und Deadzone-Schutz
165
+
166
+ Vor jedem erfolgreichen Route-Render schliesst `<x-router>` offene Navigationsoverlays, die einen stabilen Komponentenvertrag fuer `isMenuOpen()` und `toggleMenu(false, options)` anbieten. Aktuell wird dadurch vor allem `x-header` stabilisiert: Ein geoeffnetes Menue bleibt kein Layoutfaktor der vorherigen Seite und erzeugt beim Wechsel auf eine kuerzere Route keine Deadzone.
167
+
168
+ Nach dem Render setzt `<x-router>` die native Scroll Restoration auf `manual`, scrollt zum Seitenanfang oder zum angegebenen `scroll-to`-Ziel und prueft die Dokumenthoehe in Microtask-, Frame- und Settled-Timeout-Phasen erneut. Wenn der Browser noch eine stale Scrollposition aus der vorherigen, laengeren Route haelt oder die aktuelle Position hinter dem neuen maximalen Scrollbereich liegt, normalisiert der Router die Position und schreibt einen Snapshot nach `xtend.router.scrollBoundary`.
169
+
170
+ Der Snapshot folgt `xtend.router.scroll-boundary.v1` und enthaelt unter anderem `path`, `phase`, `strategy`, `viewportHeight`, `scrollHeight`, `maxScrollTop`, `previousTop`, `normalizedTop`, `normalized` und `deadzoneDetected`. Dadurch koennen Fabric/RMT-Diagnostics Deadzones sichtbar machen, ohne App-spezifische Scroll-Hacks zu brauchen.
171
+
172
+ ## RMT / XTendRMT Adapter
173
+
174
+ Seit Epic 05 / `WP-E05-10` kann XRouter native RMT Routes ueber den Adapter-Contract `xtend.rmt.xrouter-adapter.v1` konsumieren.
175
+
176
+ ```js
177
+ const adapter = window.xtend.rmt.createRmtXRouterAdapter({ routerElement });
178
+ adapter.registerRoutes(runtimeRegistry);
179
+ adapter.navigate({ routeId: 'home' }, { mapping });
180
+ ```
181
+
182
+ Die stabile Adapter-ID ist `xtend.xrouter`. Der Adapter konsumiert `routeRegistry.byRouter["xtend.xrouter"]`, mappt `RmtRouteRegistryEntry` auf XRouter-kompatible Records und ruft am Zielrouter `registerRoutes(...)` bzw. `navigate(...)` auf.
183
+
184
+ `<x-router>` stellt dafuer bereit:
185
+
186
+ - `registerRoutes(routes, options)`
187
+ - `navigate(to, options)`
188
+ - `reuse-component` als opt-in fuer InsularHydration bei SPA-Routen, deren Ziel denselben Component-Tag nutzt und `updateRoute(context)` oder `routeChangedCallback(context)` implementiert
189
+
190
+ RMT-relevante Route-Daten werden als Attribute auf `<x-route>` erhalten:
191
+
192
+ - `data-rmt-route-id`
193
+ - `data-rmt-router`
194
+ - `data-rmt-template`
195
+ - `data-rmt-schedule`
196
+ - `data-rmt-params`
197
+ - `data-rmt-query`
198
+ - `data-rmt-metadata`
199
+
200
+ XRouter bleibt damit produktiver Adapter fuer RMT Routes, aber kein RMT-Kernelwissen.
201
+
202
+ Weitere Details:
203
+
204
+ - [XTendRMT App-DSL Reference](../xtendrmt-app-dsl.md)
205
+ - [XTendRMT Runtime Bridge](../xtendrmt-runtime-bridge.md)
206
+ - [XTendRMT Native Authoring Guide](../xtendrmt-native-authoring.md)
207
+
208
+ ## Hinweise
209
+
210
+ - `routesrc` wird vor dem ersten Rendern geladen.
211
+ - Lazy Loading erfolgt ueber das `import`-Attribut der jeweiligen Route.
212
+ - Guards (`before-enter`) und Lifecycle-Hooks bleiben unterstuetzt.
213
+ - Mit `reuse-component` kann eine App-Shell ihre Route-Komponente behalten; XRouter aktualisiert dann Params, Query und State und feuert `xrouter-route-reused`.
214
+ - RMT-Schedule-Refs werden ueber `data-rmt-schedule` an Route-Details weitergereicht.
215
+ - Scroll-Boundary-Normalisierung laeuft zentral im Router und sollte nicht in App-Shells dupliziert werden.
216
+ - Router-Aenderungen im Core sollten gegen `node scripts/verify_xtend_core_contracts.js` geprueft werden.
217
+
218
+ ## ECH-WP-09 Token-Tabelle und Navigation States
219
+
220
+ `signatureDesign`: `x-router` ist die ruhige Route-Outlet-Basis fuer Enterprise-Shells. Der Router selbst delegiert Active/Current/Selected an `x-link`, `x-menu`, `x-tabs` und `x-header`, stellt aber denselben Navigation-State-Contract, Route Announcements und Focus Restore bereit.
221
+
222
+ | Token | Zweck |
223
+ | --- | --- |
224
+ | `--xtend-nav-surface` | optionale Outlet-/Route-Surface |
225
+ | `--xtend-nav-text` | Outlet-Text und vererbte Navigationsfarbe |
226
+ | `--xtend-nav-border-color` | geteilte Navigationskante fuer Route-Shells |
227
+ | `--xtend-nav-radius` | geteilte Radius-Vorgabe |
228
+ | `--xtend-nav-gap` | geteilte Navigation-Abstaende |
229
+ | `--xtend-nav-font-family` | vererbte Navigationstypografie |
230
+ | `--xtend-nav-font-size` | vererbte Navigationstextgroesse |
231
+ | `--xtend-nav-active-surface` | Active/Current/Selected Flaeche fuer angeschlossene Navigation |
232
+ | `--xtend-nav-active-text` | Active/Current/Selected Text |
233
+ | `--xtend-nav-current-indicator` | nicht farb-only Current-Indikator |
234
+ | `--xtend-nav-hover-surface` | Hover-Flaeche fuer angeschlossene Navigation |
235
+ | `--xtend-nav-focus-ring` | Route-Focus und Navigation-Focus |
236
+ | `--xtend-nav-disabled-opacity` | Disabled-Dimmung fuer angeschlossene Navigation |
237
+
238
+ ## ECH-WP-09 Keyboard-Verhalten
239
+
240
+ Der Router fokussiert nach dem Rendern das Outlet und emittiert `route-announced` ueber eine polite Live Region. Link- und Menue-Keyboard-Verhalten bleibt in den jeweiligen Navigationselementen; der Router haelt den Route Context `xtend.router.current`, sodass Active/Current/Selected per `aria-current="page"` und `aria-selected="true"` synchronisiert werden koennen.
241
+
242
+ ## ECH-WP-09 Fremdtheme
243
+
244
+ ```css
245
+ [data-xtend-nav-theme="enterprise-foreign"] x-router {
246
+ --xtend-nav-surface: transparent;
247
+ --xtend-nav-text: #17231f;
248
+ --xtend-nav-border-color: rgba(23, 35, 31, 0.22);
249
+ --xtend-nav-radius: 0.35rem;
250
+ --xtend-nav-gap: 0.45rem;
251
+ --xtend-nav-font-family: "Aptos", "Segoe UI", sans-serif;
252
+ --xtend-nav-font-size: 1rem;
253
+ --xtend-nav-active-surface: #173f35;
254
+ --xtend-nav-active-text: #fffaf0;
255
+ --xtend-nav-current-indicator: #b56b35;
256
+ --xtend-nav-hover-surface: rgba(181, 107, 53, 0.14);
257
+ --xtend-nav-focus-ring: 3px solid #b56b35;
258
+ --xtend-nav-disabled-opacity: 0.44;
259
+ }
260
+ ```