@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,119 @@
1
+ # xradio - XTend Component
2
+
3
+ > **See also:** [xform](./xform.md), [xinput](./xinput.md), [xstate](./xstate.md)
4
+
5
+ ## Overview
6
+
7
+ `<x-radio>` completes the TypeScript-first selection controls from
8
+ `WP-E10-09`. The component coordinates groups through `name`, supports keyboard
9
+ navigation, and provides RMT, Fabric, a11y, and performance metadata for
10
+ RMT-first apps.
11
+
12
+ ## Usage
13
+
14
+ ```html
15
+ <x-radio id="plan-starter" name="plan" value="starter">
16
+ <span slot="label">Starter</span>
17
+ </x-radio>
18
+ <x-radio id="plan-pro" name="plan" value="pro" checked>
19
+ <span slot="label">Pro</span>
20
+ </x-radio>
21
+ ```
22
+
23
+ ## Attributes
24
+
25
+ | Attribute | Type | Description |
26
+ |-----------|------|-------------|
27
+ | `name` | String | group and form name |
28
+ | `value` | String | value of the radio control |
29
+ | `checked` | Boolean | current selected state |
30
+ | `required` | Boolean | activates validation |
31
+ | `disabled` | Boolean | disables the control |
32
+ | `label` | String | ARIA/text label without slot |
33
+
34
+ ## Slots
35
+
36
+ | Slot | Purpose |
37
+ |------|---------|
38
+ | `label` | visible label |
39
+ | `hint` | additional helper text |
40
+ | `error` | validation error |
41
+
42
+ ## Events
43
+
44
+ | Event | Detail |
45
+ |-------|--------|
46
+ | `radio-changed` | `{ checked, value, name, source: 'x-radio' }` |
47
+ | `radio-invalid` | `{ checked, value, name, message, source: 'x-radio' }` |
48
+
49
+ ## API
50
+
51
+ - `element.checked`
52
+ - `element.value`
53
+ - `element.name`
54
+ - `element.check()`
55
+ - `element.checkValidity()`
56
+ - `element.reportValidity()`
57
+ - `element.validate()`
58
+ - `element.reset()`
59
+ - `element.focus()`
60
+
61
+ ## State, RMT, and Fabric
62
+
63
+ `<x-radio>` writes individual state to `xradio-checked-<id>` and group value to
64
+ `xradio-value-<name>`. RMT metadata uses
65
+ `xtend.rmt.component-contract.v1`; RMT can template a radio group as a DOM
66
+ descriptor and schedule the UI through `xtend.component` without importing
67
+ XTend into the RMT kernel.
68
+
69
+ ## A11y and Performance
70
+
71
+ The component uses `role="radio"`, `aria-checked`, `aria-describedby`, Space
72
+ activation, and arrow-key navigation within the group. The performance profile
73
+ is `xtend.performance.component-profile.v1` with
74
+ `budgetClass: 'interactive-small'`, `lane: 'user-blocking'`, and
75
+ `hydrationPolicy: 'visible'`.
76
+
77
+ ## Form Controls UX from WP-E11-08
78
+
79
+ `<x-radio>` exposes `xtendFormControlUxProfile` with
80
+ `xtend.component.form-control-ux-profile.v1`. The profile connects label, hint,
81
+ error, `radio-changed`, `radio-invalid`, `xradio-value-<name>`,
82
+ `ui.user-blocking.input`, Fabric lane `user-blocking`, and RMT shell authoring.
83
+
84
+ ## ECH-WP-08 Form Theme/A11y Hardening
85
+
86
+ `signatureDesign`: enterprise radio option with robust native focus handling,
87
+ group-safe validation, and separately themeable selection icon.
88
+
89
+ | Token | Purpose |
90
+ | --- | --- |
91
+ | `--xtend-form-text` | host text color |
92
+ | `--xtend-form-control-surface` | native control surface |
93
+ | `--xtend-form-control-text` | control text fallback |
94
+ | `--xtend-form-label-text` | label |
95
+ | `--xtend-form-helper-text` | helper |
96
+ | `--xtend-form-error-text` | error text |
97
+ | `--xtend-form-error-surface` | error surface |
98
+ | `--xtend-form-error-border` | error edge and marker |
99
+ | `--xtend-form-focus-ring` | focus outline |
100
+ | `--xtend-form-radius` | radio/error radius |
101
+ | `--xtend-form-gap` | label/helper spacing |
102
+ | `--xtend-form-font-family` | form typography |
103
+ | `--xtend-form-control-font-size` | label font |
104
+ | `--xtend-form-helper-font-size` | helper/error font |
105
+ | `--xtend-form-icon-color` | radio accent |
106
+
107
+ Density profiles: `comfortable`, `compact`, `dense`. Invalid state is not
108
+ color-only and is mirrored through `aria-invalid`.
109
+
110
+ ```css
111
+ [data-xtend-form-theme="enterprise-foreign"] x-radio {
112
+ --xtend-form-icon-color: #8f4f2a;
113
+ --xtend-form-label-text: #22312c;
114
+ --xtend-form-helper-text: #596861;
115
+ --xtend-form-error-text: #7d231c;
116
+ --xtend-form-error-border: #a64036;
117
+ --xtend-form-focus-ring: 3px solid #8f4f2a;
118
+ }
119
+ ```
@@ -0,0 +1,260 @@
1
+ # xrouter - XTend Component
2
+
3
+ ## Overview
4
+
5
+ `<x-router>` is the client-side router for XTend SPAs. It processes declarative `<x-route>` definitions, supports hash and history mode, and synchronizes navigation with `xstate`.
6
+
7
+ ## Core Behavior
8
+
9
+ - only direct `<x-route>` children of `<x-router>` count as top-level routes
10
+ - nested routes are processed only through direct child routes of their parent route
11
+ - navigation can be triggered declaratively, through `x-link` or programmatically via `xstate.set('router-navigate', '/target')`
12
+
13
+ ## Usage
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
+ ## Attributes
26
+
27
+ | Attribute | Type | Description |
28
+ |-----------|------|-------------|
29
+ | `mode` | string | `hash` or `history` |
30
+ | `routesrc` | string | optional JSON source for routes |
31
+ | `skeleton` | string | enables a native route skeleton fallback during import, definition and hydration |
32
+ | `skeleton-lines` | number | number of skeleton lines for the route fallback |
33
+ | `skeleton-min-height` | string | stable minimum height for the route fallback |
34
+ | `title-template` / `document-title-template` | string | global document-title template, for example `{{title}} | App` |
35
+ | `title-prefix` / `title-suffix` | string | simple prefix/suffix for route titles without a template |
36
+ | `default-title` | string | fallback when a route does not define a title |
37
+
38
+ ## Document Title Rewrite and SEO Meta
39
+
40
+ After every successful route match, XRouter rewrites the browser title and the SEO meta tags `description` and `keywords`. This prevents an SPA from staying on its initial title, and RMT routes can provide title information without XTend-specific runtime imports.
41
+
42
+ Direct route attributes:
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 and SEO"
51
+ meta-description="Routing, page titles and RMT route metadata"
52
+ meta-keywords="xtend, xrouter, rmt">
53
+ </x-route>
54
+ </x-router>
55
+ ```
56
+
57
+ RMT can provide the same values through route records and `metadata`:
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": "Settings for the XTend RMT app",
69
+ "seo": {
70
+ "keywords": ["xtend", "rmt", "routing"]
71
+ }
72
+ }
73
+ }
74
+ ```
75
+
76
+ Supported template variables are `{{title}}`, `{{routeTitle}}`, `{{documentTitle}}`, `{{path}}`, `{{routeId}}`, `{{component}}`, `{{params.name}}`, `{{query.name}}` and `{{metadata.name}}`. For nested routes, the leaf route wins so deep links can define their own titles.
77
+
78
+ ## Events
79
+
80
+ | Event | Description |
81
+ |-------|-------------|
82
+ | `xrouter-before-navigate` | cancelable, before programmatic router navigation |
83
+ | `route-changed` | emitted after successful navigation |
84
+ | `routechange` | legacy alias for `route-changed` |
85
+ | `xrouter-after-navigate` | legacy window event after rendering a route |
86
+ | `route-announced` | emitted after writing the route live region |
87
+ | `xrouter-skeleton-shown` / `xrouter-skeleton-hidden` | mark the native route-skeleton lifecycle |
88
+ | `xrouter-route-hydrated` | emitted after loader-based hydration of the rendered route subtree |
89
+ | `xrouter-title-updated` | emitted after writing `document.title` and SEO meta tags |
90
+ | `xrouter-scroll-boundary-normalized` | emitted when the router corrects a stale scroll position or a dead zone below the content area after a route change |
91
+ | `xrouter-navigation-overlays-closed` | emitted when the router closes open app-shell overlays such as `x-header` before rendering a route |
92
+
93
+ ## XState Keys
94
+
95
+ - `router-navigate`: programmatic navigation input
96
+ - `router-navigated`: most recently triggered target path
97
+ - `router-current`: currently rendered route
98
+ - `router-rendered`: most recently rendered route
99
+ - `router-scroll-boundary`: legacy snapshot of the last scroll-boundary check
100
+ - `router-closed-navigation-overlays`: legacy snapshot of navigation overlays closed before route render
101
+ - `xtend.router.current`: canonical route context
102
+ - `xtend.router.announcement`: most recently announced route
103
+ - `xtend.router.documentMeta`: most recently set document title and SEO meta tags
104
+ - `xtend.router.skeleton`: current route-skeleton lifecycle
105
+ - `xtend.router.scrollBoundary`: canonical snapshot of the last scroll-boundary check
106
+ - `xtend.router.closedNavigationOverlays`: canonical snapshot of navigation overlays closed before route render
107
+
108
+ The canonical mirror paths are maintained as well:
109
+
110
+ - `xtend.router.lastNavigated`
111
+ - `xtend.router.current`
112
+ - `xtend.router.lastRendered`
113
+
114
+ ## Route Detail
115
+
116
+ `route-changed` and `xrouter-after-navigate` provide a detail object with:
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
+ For nested routes, `component` is the leaf route; `params` are merged from the complete match chain.
138
+
139
+ ## Skeleton and Lazy Hydration
140
+
141
+ XRouter can load route components shell-first:
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
+ If the component tag is not defined yet, XRouter first uses the route's explicit `import`. If no import is present, it delegates to `window.XTendLoader.ensureComponent(componentTag)`, so manifest components can be lazy-loaded natively through routes. After rendering, XRouter hydrates the route subtree through `window.XTendLoader.hydrateTree(...)`.
155
+
156
+ ## Navigation Routing UX Profile
157
+
158
+ `<x-router>` provides `xtendNavigationRoutingUxProfile` with `xtend.component.navigation-routing-ux-profile.v1`. The profile describes `x-router` as a router outlet with `route-changed`, `route-announced`, `xrouter-before-navigate`, `xtend.router.current`, `route.visible.render`, `route.focus.restore`, `a11y.announce`, Fabric lane `transition` and RMT shell authoring.
159
+
160
+ After a successful render, the router focuses its outlet and writes a polite, atomic live region. This lets RMT and Fabric schedule route render, focus restore and screen-reader announcement separately, without requiring the RMT kernel to import XTend internals.
161
+
162
+ The new diagnostics details include `source: 'x-router'`, `stateKey` and `scheduleRef`, so `x-link`, feedback components and RMT schedulers can share the same route context.
163
+
164
+ ## Scroll Boundary, Overlays and Dead-Zone Protection
165
+
166
+ Before every successful route render, `<x-router>` closes open navigation overlays that provide the stable component contract `isMenuOpen()` and `toggleMenu(false, options)`. This primarily stabilizes `x-header`: an open menu does not remain a layout factor from the previous page and does not create a dead zone when switching to a shorter route.
167
+
168
+ After rendering, `<x-router>` sets native scroll restoration to `manual`, scrolls to the top or the given `scroll-to` target, and re-checks document height in microtask, frame and settled-timeout phases. If the browser still holds a stale scroll position from the previous, taller route, or if the current position is beyond the new maximum scroll range, the router normalizes the position and writes a snapshot to `xtend.router.scrollBoundary`.
169
+
170
+ The snapshot follows `xtend.router.scroll-boundary.v1` and includes `path`, `phase`, `strategy`, `viewportHeight`, `scrollHeight`, `maxScrollTop`, `previousTop`, `normalizedTop`, `normalized` and `deadzoneDetected`. Fabric/RMT diagnostics can therefore make dead zones visible without app-specific scroll hacks.
171
+
172
+ ## RMT / XTendRMT Adapter
173
+
174
+ Since Epic 05 / `WP-E05-10`, XRouter can consume native RMT routes through the adapter contract `xtend.rmt.xrouter-adapter.v1`.
175
+
176
+ ```js
177
+ const adapter = window.xtend.rmt.createRmtXRouterAdapter({ routerElement });
178
+ adapter.registerRoutes(runtimeRegistry);
179
+ adapter.navigate({ routeId: 'home' }, { mapping });
180
+ ```
181
+
182
+ The stable adapter ID is `xtend.xrouter`. The adapter consumes `routeRegistry.byRouter["xtend.xrouter"]`, maps `RmtRouteRegistryEntry` to XRouter-compatible records and calls `registerRoutes(...)` or `navigate(...)` on the target router.
183
+
184
+ `<x-router>` provides:
185
+
186
+ - `registerRoutes(routes, options)`
187
+ - `navigate(to, options)`
188
+ - `reuse-component` as opt-in for InsularHydration for SPA routes whose target uses the same component tag and implements `updateRoute(context)` or `routeChangedCallback(context)`
189
+
190
+ RMT-relevant route data is preserved as attributes on `<x-route>`:
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
+ This keeps XRouter a productive adapter for RMT routes without giving it RMT kernel knowledge.
201
+
202
+ Further 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
+ ## Notes
209
+
210
+ - `routesrc` is loaded before the first render.
211
+ - Lazy loading happens through the `import` attribute of each route.
212
+ - Guards (`before-enter`) and lifecycle hooks remain supported.
213
+ - With `reuse-component`, an app shell can keep its route component; XRouter then updates params, query and state and fires `xrouter-route-reused`.
214
+ - RMT schedule refs are forwarded to route details via `data-rmt-schedule`.
215
+ - Scroll-boundary normalization runs centrally in the router and should not be duplicated in app shells.
216
+ - Core router changes should be checked against `node scripts/verify_xtend_core_contracts.js`.
217
+
218
+ ## ECH-WP-09 Token Table and Navigation States
219
+
220
+ `signatureDesign`: `x-router` is the calm route-outlet base for enterprise shells. The router itself delegates active/current/selected state to `x-link`, `x-menu`, `x-tabs` and `x-header`, but exposes the same navigation-state contract, route announcements and focus restore.
221
+
222
+ | Token | Purpose |
223
+ | --- | --- |
224
+ | `--xtend-nav-surface` | optional outlet/route surface |
225
+ | `--xtend-nav-text` | outlet text and inherited navigation color |
226
+ | `--xtend-nav-border-color` | shared navigation edge for route shells |
227
+ | `--xtend-nav-radius` | shared radius preset |
228
+ | `--xtend-nav-gap` | shared navigation spacing |
229
+ | `--xtend-nav-font-family` | inherited navigation typography |
230
+ | `--xtend-nav-font-size` | inherited navigation text size |
231
+ | `--xtend-nav-active-surface` | active/current/selected surface for connected navigation |
232
+ | `--xtend-nav-active-text` | active/current/selected text |
233
+ | `--xtend-nav-current-indicator` | non-color-only current indicator |
234
+ | `--xtend-nav-hover-surface` | hover surface for connected navigation |
235
+ | `--xtend-nav-focus-ring` | route focus and navigation focus |
236
+ | `--xtend-nav-disabled-opacity` | disabled dimming for connected navigation |
237
+
238
+ ## ECH-WP-09 Keyboard Behavior
239
+
240
+ After rendering, the router focuses the outlet and emits `route-announced` through a polite live region. Link and menu keyboard behavior remains in the respective navigation elements; the router keeps the route context `xtend.router.current`, so active/current/selected can be synchronized through `aria-current="page"` and `aria-selected="true"`.
241
+
242
+ ## ECH-WP-09 Foreign Theme
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
+ ```
@@ -0,0 +1,136 @@
1
+ # xsection - XTend Component
2
+
3
+ > **See also:** [xhero](./xhero.md), [xmasonry](./xmasonry.md)
4
+
5
+ ## Overview
6
+
7
+ `<x-section>` is a flexible layout component for page sections, containers, and
8
+ structured areas. It supports slots, theming, and responsive design.
9
+
10
+ ---
11
+
12
+ ## Features
13
+
14
+ - Container for arbitrary content
15
+ - Slots for flexible structure
16
+ - Theming through CSS custom properties
17
+ - Responsive design
18
+
19
+ ---
20
+
21
+ ## Usage
22
+
23
+ ```html
24
+ <x-section>
25
+ <h2>Section</h2>
26
+ <p>Content...</p>
27
+ </x-section>
28
+ ```
29
+
30
+ ---
31
+
32
+ ## Attributes
33
+
34
+ | Attribute | Type | Description |
35
+ |-----------|------|-------------|
36
+ | `variant` | String | layout variant, for example primary, secondary |
37
+
38
+ ---
39
+
40
+ ## Events
41
+
42
+ | Event | Description |
43
+ |-------|-------------|
44
+ | - | - |
45
+
46
+ ---
47
+
48
+ ## API
49
+
50
+ - **Set variant:** `element.setAttribute('variant', 'primary')`
51
+
52
+ ---
53
+
54
+ ## Example: Dynamic JS
55
+
56
+ ```js
57
+ const section = document.createElement('x-section');
58
+ section.setAttribute('variant', 'primary');
59
+ document.body.appendChild(section);
60
+ ```
61
+
62
+ ---
63
+
64
+ ## Styling and Theming
65
+
66
+ ```css
67
+ x-section {
68
+ --section-bg: #f9f9f9;
69
+ --section-color: #222;
70
+ }
71
+ ```
72
+
73
+ ---
74
+
75
+ ## Accessibility
76
+
77
+ - Semantic HTML
78
+
79
+ ---
80
+
81
+ *Last updated: July 16, 2025*
82
+
83
+ ## Layout Display Media UX Profile
84
+
85
+ Starting with `WP-E11-12`, `x-section` exposes the profile
86
+ `xtend.component.layout-display-media-ux-profile.v1`. The component is suitable
87
+ as a shell-first layout surface for RMT and uses the state key
88
+ `xsection-state-<id>`.
89
+
90
+ - Profile getter: `xtendLayoutDisplayMediaUxProfile`
91
+ - Schedule: `layout.measure`
92
+ - Event: `section-rendered`
93
+ - Snapshot: `snapshot()`
94
+ - CSS parts: `root`, `container`, `header`, `aside`, `content`, `footer`
95
+
96
+ ## ECH-WP-07 Token Table and signatureDesign
97
+
98
+ `signatureDesign`: editorial enterprise section with controlled surface
99
+ hierarchy, optional edge, and overflow-safe content lanes. It can be plain,
100
+ framed, or a dense dashboard layout without requiring new attributes.
101
+
102
+ | Token | Purpose |
103
+ | --- | --- |
104
+ | `--xtend-layout-surface` | section surface |
105
+ | `--xtend-layout-text` | main text color |
106
+ | `--xtend-layout-border-color` | optional section edge |
107
+ | `--xtend-layout-radius` | section radius |
108
+ | `--xtend-layout-elevation` | optional section shadow |
109
+ | `--xtend-layout-spacing` | section and content padding |
110
+ | `--xtend-layout-gap` | slot spacing |
111
+ | `--xtend-layout-font-family` | section typography |
112
+ | `--xtend-layout-font-size` | content font size |
113
+ | `--xtend-layout-media-radius` | media radius for slotted content |
114
+ | `--xtend-layout-focus-ring` | focus inside the section |
115
+ | `--xtend-layout-grid-min` | responsive content base |
116
+ | `--xtend-layout-content-max` | section max width |
117
+
118
+ ## ECH-WP-07 External Theme
119
+
120
+ ```css
121
+ [data-xtend-layout-theme="enterprise-foreign"] x-section {
122
+ --xtend-layout-surface: #fffaf2;
123
+ --xtend-layout-text: #1d2722;
124
+ --xtend-layout-border-color: rgba(29, 39, 34, 0.18);
125
+ --xtend-layout-radius: 0.4rem;
126
+ --xtend-layout-elevation: none;
127
+ --xtend-layout-spacing: 1.6rem;
128
+ --xtend-layout-gap: 1.2rem;
129
+ --xtend-layout-font-family: "Aptos", "Segoe UI", sans-serif;
130
+ --xtend-layout-font-size: 1rem;
131
+ --xtend-layout-media-radius: 0.35rem;
132
+ --xtend-layout-focus-ring: 3px solid #8f4f2a;
133
+ --xtend-layout-grid-min: minmax(14rem, 1fr);
134
+ --xtend-layout-content-max: 76rem;
135
+ }
136
+ ```
@@ -0,0 +1,122 @@
1
+ # xselect - XTend Component
2
+
3
+ > **See also:** [xform](./xform.md), [xinput](./xinput.md), [xstate](./xstate.md)
4
+
5
+ ## Overview
6
+
7
+ `<x-select>` is the TypeScript-first selection control from `WP-E10-09`. The
8
+ component wraps a native `select`, remains form-associated, writes its value to
9
+ `xstate`, and carries RMT, Fabric, a11y, and performance metadata without
10
+ embedding XTend in the RMT kernel.
11
+
12
+ ## Usage
13
+
14
+ ```html
15
+ <x-select id="plan-select" name="plan" value="pro" required>
16
+ <span slot="label">Plan</span>
17
+ <option value="starter">Starter</option>
18
+ <option value="pro">Pro</option>
19
+ <span slot="error">Please choose a plan.</span>
20
+ </x-select>
21
+ ```
22
+
23
+ ## Attributes
24
+
25
+ | Attribute | Type | Description |
26
+ |-----------|------|-------------|
27
+ | `name` | String | form name |
28
+ | `value` | String | current value |
29
+ | `multiple` | Boolean | allows multiple selection |
30
+ | `required` | Boolean | activates native validation |
31
+ | `disabled` | Boolean | disables the control |
32
+ | `placeholder` | String | optional placeholder option |
33
+ | `label` | String | ARIA/text label without slot |
34
+
35
+ ## Slots
36
+
37
+ | Slot | Purpose |
38
+ |------|---------|
39
+ | default | `option` elements for the native select |
40
+ | `label` | visible label |
41
+ | `hint` | additional helper text |
42
+ | `error` | validation error |
43
+
44
+ ## Events
45
+
46
+ | Event | Detail |
47
+ |-------|--------|
48
+ | `select-changed` | `{ value, values, source: 'x-select' }` |
49
+ | `select-invalid` | `{ value, message, source: 'x-select' }` |
50
+
51
+ ## API
52
+
53
+ - `element.value`
54
+ - `element.values`
55
+ - `element.checkValidity()`
56
+ - `element.reportValidity()`
57
+ - `element.validate()`
58
+ - `element.reset()`
59
+ - `element.focus()`
60
+
61
+ ## State, RMT, and Fabric
62
+
63
+ `<x-select>` writes to `xselect-value-<id>` and reacts to external value
64
+ updates. RMT metadata uses `xtend.rmt.component-contract.v1`,
65
+ `adapter: 'xtend.component'`, and
66
+ `kernelBoundary: 'no-rmt-kernel-import-of-xtend-types'`. Shell-first templates
67
+ can schedule the component as a DOM descriptor while XTend remains the UI
68
+ surface.
69
+
70
+ ## A11y and Performance
71
+
72
+ The control uses `role="combobox"`, `aria-describedby`, visible label/hint/error
73
+ slots, and an assertive error region. The performance profile is
74
+ `xtend.performance.component-profile.v1` with
75
+ `budgetClass: 'interactive-medium'`, `lane: 'user-blocking'`, and
76
+ `hydrationPolicy: 'visible'`.
77
+
78
+ ## Form Controls UX from WP-E11-08
79
+
80
+ `<x-select>` exposes `xtendFormControlUxProfile` with
81
+ `xtend.component.form-control-ux-profile.v1`. The profile connects label, hint,
82
+ error, `select-changed`, `select-invalid`, `xselect-value-<id>`,
83
+ `ui.user-blocking.input`, Fabric lane `user-blocking`, and RMT shell authoring.
84
+
85
+ ## ECH-WP-08 Form Theme/A11y Hardening
86
+
87
+ `signatureDesign`: enterprise select with clear native affordance,
88
+ non-color-only validation, and density-safe label/helper rhythm.
89
+
90
+ | Token | Purpose |
91
+ | --- | --- |
92
+ | `--xtend-form-text` | host text color |
93
+ | `--xtend-form-control-surface` | select surface |
94
+ | `--xtend-form-control-text` | select text |
95
+ | `--xtend-form-label-text` | label |
96
+ | `--xtend-form-helper-text` | helper |
97
+ | `--xtend-form-error-text` | error text |
98
+ | `--xtend-form-error-surface` | error surface |
99
+ | `--xtend-form-error-border` | error edge and marker |
100
+ | `--xtend-form-focus-ring` | focus outline |
101
+ | `--xtend-form-radius` | select and error radius |
102
+ | `--xtend-form-gap` | vertical rhythm |
103
+ | `--xtend-form-font-family` | form typography |
104
+ | `--xtend-form-control-font-size` | select font |
105
+ | `--xtend-form-helper-font-size` | helper/error font |
106
+ | `--xtend-form-icon-color` | native select affordance |
107
+
108
+ Density profiles: `comfortable`, `compact`, `dense`. Invalid, `disabled`,
109
+ `required`, and `busy` are mirrored visually and through ARIA.
110
+
111
+ ```css
112
+ [data-xtend-form-theme="enterprise-foreign"] x-select {
113
+ --xtend-form-control-surface: #fbf8f2;
114
+ --xtend-form-control-text: #16231f;
115
+ --xtend-form-label-text: #22312c;
116
+ --xtend-form-helper-text: #596861;
117
+ --xtend-form-error-text: #7d231c;
118
+ --xtend-form-error-border: #a64036;
119
+ --xtend-form-focus-ring: 3px solid #8f4f2a;
120
+ --xtend-form-radius: 0.35rem;
121
+ }
122
+ ```
@@ -0,0 +1,48 @@
1
+ # xsidepanel - XTend Component
2
+
3
+ `x-side-panel` is XTend's app-shell-adjacent side-panel surface. It registers
4
+ with an enclosing `x-surface-manager`, uses the Surface Controller from
5
+ `WP-SM-02`, and mirrors snapshots into placement, mode, pinning, collapsed
6
+ state, size, and z-order.
7
+
8
+ ## Attributes
9
+
10
+ - `surface-id`: stable surface ID
11
+ - `label`: accessible name and panel title
12
+ - `open`, `active`, `collapsed`, `pinned`
13
+ - `placement`: `left`, `right`, `bottom`, or `inline`
14
+ - `mode`: `docked`, `overlay`, `pinned`, `collapsed`, or `fullscreen`
15
+ - `responsive-mode`: default `fullscreen-under-720`
16
+ - `resizable`, `route-aware`, `modal`
17
+ - `initial-width`, `initial-height`
18
+
19
+ ## API
20
+
21
+ `toSurfaceRecord(managerId)` creates an `xtend.surface.record.v1` with
22
+ `type: "side-panel"`. `applySurfaceSnapshot(record)` updates visible state,
23
+ bounds, placement, mode, and a11y state.
24
+
25
+ Commands: `openPanel()`, `closePanel(reason)`, `focusPanel()`, `pinPanel()`,
26
+ `collapsePanel()`, `expandPanel(mode)`, `setPanelMode(mode, placement)`,
27
+ `resizePanel(bounds)`, and `restorePanel()`.
28
+
29
+ The element emits `surface-panel-command` with `open`, `close`, `focus`,
30
+ `resize`, `pin`, `unpin`, `collapse`, `expand`, `dock`, `restore`, or
31
+ `update`. The manager translates these commands into controller operations or
32
+ `updateSurface`.
33
+
34
+ RMT: `xtend.rmt.component-contract.v1`, `xtend.surface.record.v1`,
35
+ `surface.visible.render`, `surface.user-blocking.open`,
36
+ `surface.user-blocking.close`, `surface.transition.layout`,
37
+ `surface.diagnostics.snapshot`.
38
+
39
+ ## ECH-WP-06 Overlay Parity
40
+
41
+ `x-side-panel` exposes `surface`, `backdrop`, `close`, and `content` as shared
42
+ overlay parts. The previous `scrim` part remains as an alias for `backdrop`.
43
+ Surface, text, border, elevation, backdrop, z-index, and focus ring use
44
+ `--xtend-overlay-*` and component-local `--side-panel-*` tokens.
45
+
46
+ `mode="docked"` and `mode="pinned"` remain non-modal and app-shell-adjacent.
47
+ `mode="overlay"` or `modal` activates the backdrop and overlay controls for
48
+ SurfaceManager orchestration.