@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,331 @@
1
+ # XTendRMT App DSL Reference
2
+
3
+ - Status: current after Epic 05 completion, updated vNext-first
4
+ - Contract: `xtend.docs.xtendrmt-app-dsl.v1`
5
+ - Schema source: `xtendrmt/rmt.schema.json`
6
+ - Normalizer: `createRmtFormat().normalizeDocument(...)`
7
+
8
+ ## Purpose
9
+
10
+ The App DSL describes a renderable application as an RMT document. New
11
+ authoring work uses RMT vNext; legacy/App-DSL JSON remains the normalized core
12
+ output, runtime registry, and compatibility surface. XTend UI, XRouter, Vanilla
13
+ JS, and other hosts are connected through adapter records without the kernel
14
+ importing host runtime.
15
+
16
+ Since `WP-E13-09`, [RMT Production Readiness](./rmt-production-readiness.md)
17
+ bundles this App DSL under `xtend.epic13.rmt-production-readiness.v1` as the
18
+ RC1 boundary for shell-first app shell, native routes, components, Fabric/lanes,
19
+ lifecycle telemetry, diagnostics, and artifact parity.
20
+
21
+ ## Minimal vNext Document
22
+
23
+ ```rmt
24
+ template app.shell {
25
+ state app.ready type boolean initial true
26
+
27
+ portal surface.root root "#app-root" layer surface
28
+
29
+ surface app.home kind page component x-section {
30
+ source state app.ready
31
+ portal surface.root
32
+
33
+ lane visible weight 80 {
34
+ hydrate app-shell from state app.ready
35
+ }
36
+ }
37
+ }
38
+ ```
39
+
40
+ The compiler lowers this source into core domains such as `adapters`,
41
+ `components`, `routes`, `schedules`, `surfaces`, and `templates`. These domains
42
+ are stable for runtime adapters, but they are no longer the preferred writing
43
+ surface.
44
+
45
+ ## Native Domains as Compiler Output
46
+
47
+ | Domain | Responsibility |
48
+ |--------|----------------|
49
+ | `adapters` | host capabilities, runtime surface, capability negotiation |
50
+ | `components` | domain component records, host adapter, hydration hints |
51
+ | `routes` | navigation, route targets, query/params, schedule references |
52
+ | `schedules` | reusable scheduler policies |
53
+ | `templates` | `dom_descriptor`, props, slots, bindings, hydration contracts |
54
+ | `surfaces` | SurfaceManager, window, panel, and overlay handoffs |
55
+
56
+ `manifest.metadata` remains valid for descriptions, handoff, history, and demo
57
+ notes. New operational routes, components, and schedules belong in vNext source
58
+ and are projected from there into the registry.
59
+
60
+ ## Adapter Records
61
+
62
+ In vNext, adapters become visible implicitly through surface, route, and
63
+ endpoint usage. The registry then contains stable adapter records for hosts:
64
+
65
+ - `xtend.xrouter`
66
+ - `xtend.component`
67
+ - `xtend.surface`
68
+ - `rmt.state-scheduler-diagnostics`
69
+ - `vanilla.component`
70
+
71
+ `kernelVisible: false` is the default for host-specific adapter data. The
72
+ kernel may index these records, but it must not load host runtime.
73
+
74
+ ## Component Records
75
+
76
+ A vNext surface describes the domain host element:
77
+
78
+ ```rmt
79
+ template settings.components {
80
+ portal surface.root root "#settings-root" layer surface
81
+
82
+ surface settings.card kind card component x-card {
83
+ portal surface.root
84
+
85
+ lane visible weight 80 {
86
+ mount x-card
87
+ hydrate settings-card from endpoint xtendrmt.component.hydrate
88
+ }
89
+ }
90
+ }
91
+ ```
92
+
93
+ The normalizer turns this into runtime registry entries that can be consumed
94
+ through `componentRegistry.byAdapter["xtend.component"]` and
95
+ `componentRegistry.byTag["x-card"]`.
96
+
97
+ ## Route Records
98
+
99
+ Route metadata remains declarative and can be tied to surfaces:
100
+
101
+ ```rmt
102
+ template settings.routes {
103
+ state settings.tab type string initial "profile"
104
+
105
+ portal surface.root root "#app-root" layer surface
106
+
107
+ surface settings.page kind page component x-section {
108
+ source state settings.tab
109
+ portal surface.root
110
+
111
+ lane visible weight 80 {
112
+ hydrate route-view from endpoint xtendrmt.route.render
113
+ hydrate settings-shell from state settings.tab
114
+ }
115
+ }
116
+ }
117
+ ```
118
+
119
+ The normalizer creates route and schedule indexes for
120
+ `routeRegistry.byRouter["xtend.xrouter"]`, `routeRegistry.byId[...]`, and
121
+ `routeRegistry.byPath[...]`. `title`, `documentTitle`, `titleTemplate`,
122
+ `metaDescription`, and `metaKeywords` remain declarative route metadata:
123
+ XRouter writes `document.title` and `description`/`keywords` from them without
124
+ RMT importing XTend or XRouter.
125
+
126
+ ## Schedule Records
127
+
128
+ Schedules are `lane` and lifecycle clauses in vNext:
129
+
130
+ ```rmt
131
+ template scheduler.page {
132
+ portal surface.root root "#app-root" layer surface
133
+
134
+ surface app.shell kind page component x-section {
135
+ portal surface.root
136
+
137
+ lane visible weight 80 {
138
+ hydrate route-shell from endpoint xtendrmt.route.render
139
+ }
140
+
141
+ lane idle weight 20 {
142
+ hydrate help-panel from endpoint xtendrmt.component.hydrate
143
+ }
144
+ }
145
+ }
146
+ ```
147
+
148
+ Proven endpoint names remain:
149
+
150
+ - `xtendrmt.route.render`
151
+ - `xtendrmt.component.mount`
152
+ - `xtendrmt.component.hydrate`
153
+ - `xtendrmt.vanilla.mount`
154
+ - `xtendrmt.diagnostics.snapshot`
155
+ - `xtendrmt.template.inspect`
156
+
157
+ ## Template Records and Trusted DOM
158
+
159
+ New templates are lowered from vNext surfaces and slots into
160
+ `dom_descriptor` output:
161
+
162
+ ```rmt
163
+ template settings.template {
164
+ portal surface.root root "#settings-root" layer surface
165
+
166
+ surface settings.shell kind page component x-card {
167
+ portal surface.root
168
+
169
+ lane visible weight 80 {
170
+ hydrate settings-card from endpoint xtendrmt.component.hydrate {
171
+ slot header hydrate settings-header
172
+ slot body hydrate settings-body
173
+ }
174
+ }
175
+ }
176
+ }
177
+ ```
178
+
179
+ `html_fragment` remains compatible, but requires an explicit Trusted DOM
180
+ boundary:
181
+
182
+ ```rmt
183
+ template settings.legacyHtml {
184
+ surface settings.legacy kind card component x-card {
185
+ lane visible weight 60 {
186
+ hydrate legacy-fragment from endpoint docs.parse {
187
+ trust boundary "xtend.security.sanitizing-boundary.v1"
188
+ sanitize html_fragment
189
+ }
190
+ }
191
+ }
192
+ }
193
+ ```
194
+
195
+ The kernel may normalize and schedule such records. Sanitizing, Trusted DOM,
196
+ and concrete DOM sinks remain host adapter work. See
197
+ [Trusted DOM and Sanitizing](./trusted-dom-sanitizing.md).
198
+
199
+ ## Shell-First Host Apps
200
+
201
+ The Docs App uses this path productively as a shell-first pilot.
202
+ `docs/xtendrmt-parsedown-docs.rmt` describes `docs.app.shell` as a
203
+ `dom_descriptor`, `docs.header.search` as the header search slot template, and
204
+ `docs.media.lazy` as a future-ready slot for XPlayer tutorials.
205
+ `docs/utils/pageloader.js` renders the RMT shell first and then inserts
206
+ Parsedown HTML only into the `data-rmt-slot="content"` slot.
207
+
208
+ Important: RMT remains framework-agnostic in this mode too. Parsedown,
209
+ rich-HTML sinks, XPlayer lazy loading, and concrete DOM events are executed by
210
+ the host adapter. RMT provides shell records, slots, schedules, and diagnostics.
211
+
212
+ ## RMT-First XTend Apps
213
+
214
+ Since Epic 10, app authoring for complete XTend apps is described by contract
215
+ `xtend.rmt.first-class-app-authoring.v1`. The goal is an app whose shell,
216
+ routes, components, templates, events, commands, hydration policies, Fabric
217
+ lanes, and diagnostics all live in RMT.
218
+
219
+ The reference path is `tests/fixtures/rmt-first-class-xtend-app.rmt`. The gate
220
+ is:
221
+
222
+ ```bash
223
+ node scripts/run_xtend_tests.js rmt-first-class-app --json
224
+ ```
225
+
226
+ The contract intentionally stays host-neutral. RMT knows `xtend.component`,
227
+ `xtend.xrouter`, and `rmt.state-scheduler-diagnostics` as adapter records, but
228
+ it imports no XTend components and no XRouter module into the kernel. Details
229
+ live in `development/XTend-RMT-First-Class-App-Authoring.md`.
230
+
231
+ The canonical developer guide for complete XTend apps is
232
+ [RMT-First XTend Apps](./rmt-first-xtend-apps.md). The Epic 10 completion and
233
+ release gates are documented in
234
+ [Epic 10 Release Handoff](./epic10-release-handoff.md).
235
+
236
+ ## Component Fabric Context
237
+
238
+ XTend Components can receive Fabric hints from vNext lanes and legacy metadata:
239
+
240
+ ```rmt
241
+ template pages.settings {
242
+ portal surface.root root "#app-root" layer surface
243
+
244
+ surface pages.settings kind page component x-form {
245
+ portal surface.root
246
+
247
+ lane idle weight 40 {
248
+ hydrate settings-form from endpoint xtendrmt.component.hydrate
249
+ }
250
+ }
251
+ }
252
+ ```
253
+
254
+ The productive adapter resolves this data through
255
+ `xtend.component.fabric-lane-ingestion.v2`. RMT schedule records take priority
256
+ over component metadata, runtime overrides, static contracts, and scaffold
257
+ defaults. The gate is
258
+ `node scripts/run_xtend_tests.js rmt-component-fabric-ingestion --json`.
259
+
260
+ ## Component Lifecycle Telemetry
261
+
262
+ Starting with `xtend.component.lifecycle-telemetry.v1`, the adapter creates
263
+ lifecycle records for component work. RMT documents do not need to import XTend
264
+ code for this; they only provide component, route, schedule, and Fabric context.
265
+ The host can pass `telemetryCollector`, `recordTelemetry`, or a Fabric instance.
266
+
267
+ ```js
268
+ const records = [];
269
+ adapter.mountComponent(root, 'pages.settings', model, {
270
+ mapping,
271
+ telemetryCollector: records
272
+ });
273
+
274
+ const snapshot = fabric.createTelemetrySnapshot({
275
+ componentTelemetry: records
276
+ });
277
+ ```
278
+
279
+ `snapshot.componentTelemetry` aggregates `mount`, `hydrate`, `render`,
280
+ `update`, `event`, `unmount`, and `error` by operation, component, and lane.
281
+ Component errors, deadline misses, and explicit `backpressureSignal` metadata
282
+ can create backpressure. The gate is
283
+ `node scripts/run_xtend_tests.js rmt-component-lifecycle-telemetry --json`.
284
+
285
+ Hosts can pass Fabric snapshots directly to the productive RMT bridge:
286
+
287
+ ```js
288
+ bridge.recordTelemetrySnapshot(snapshot, {
289
+ scheduleRef: "diagnostics.snapshot"
290
+ });
291
+ ```
292
+
293
+ The bridge mirrors `rmt.telemetry.lastSnapshot` and `rmt.backpressure.*` from
294
+ that and schedules the diagnostics snapshot endpoint when needed.
295
+
296
+ ## Runtime Registry
297
+
298
+ The registry is the consumable boundary between DSL and adapter. Adapters read
299
+ registry entries, not raw demo metadata:
300
+
301
+ ```js
302
+ const format = createRmtFormat();
303
+ const normalizedDocument = format.normalizeDocument(document);
304
+ const registry = format.createRuntimeRegistries(normalizedDocument, {
305
+ requiredRoutes: ["settings", "/settings"],
306
+ requiredComponents: ["settings.card", "x-card"]
307
+ });
308
+ ```
309
+
310
+ ## Diagnostics
311
+
312
+ The App DSL normalizer creates diagnostics instead of forcing host execution.
313
+ Important groups:
314
+
315
+ - `rmt.dsl.reference.*` for missing or invalid references
316
+ - `rmt.runtime.registry.*` for registry conflicts or missing required refs
317
+ - `rmt.xrouter.*` for route mapping and navigation
318
+ - `rmt.xtend.component.*` for component mapping, mounting, and hydration
319
+ - `rmt.bridge.*` for the state, scheduler, and diagnostics bridge
320
+
321
+ ## Review Checklist
322
+
323
+ - App shell examples are `rmt` and vNext-first.
324
+ - Runtime registry JSON is classified as generated output or compatibility
325
+ surface.
326
+ - Routes reference components and schedules only by ID.
327
+ - Components reference host adapters only by ID.
328
+ - Schedule policies are central and reusable.
329
+ - XTend-specific data stays outside the kernel.
330
+ - Non-XTend hosts receive their own adapters instead of XTend fallbacks.
331
+ - `node scripts/run_xtend_tests.js rmt-compatibility --json` passes.
@@ -0,0 +1,256 @@
1
+ # XTendRMT Native Migration Guide
2
+
3
+ - Status: production after Epic 05 completion
4
+ - Contract: `xtend.rmt.native-migration-guide.v1`
5
+ - Minimum gates:
6
+ - `node scripts/run_xtend_tests.js rmt-compatibility --json`
7
+ - `node scripts/run_xtend_tests.js references --json`
8
+ - `npm test`
9
+
10
+ ## Purpose
11
+
12
+ This guide describes the migration from early XTendRMT metadata paths to native RMT top-level domains and onward to RMT vNext. The migration is additive and opt-in: existing XTend, React, Vue, Vanilla JS and custom apps may keep running while new app shells are written in RMT vNext. `adapters`, `components`, `routes`, `schedules` and `templates` remain runtime registry, compiler output and compatibility mirror.
13
+
14
+ The current product overview is in [XTendRMT Developer Overview](./xtendrmt-overview.md). App DSL details are in [XTendRMT App-DSL Reference](./xtendrmt-app-dsl.md), and production adapter/bridge wiring is in [XTendRMT Runtime Bridge](./xtendrmt-runtime-bridge.md).
15
+
16
+ ## Target State
17
+
18
+ New documents should use these sources:
19
+
20
+ | Area | Target Source |
21
+ |------|---------------|
22
+ | Host Adapter | vNext surface/endpoint usage, output: `adapters` |
23
+ | XTend Components | `surface ... component x-*`, output: `components` with `adapter: "xtend.component"` |
24
+ | XRouter Routes | vNext shell/route surface, output: `routes` with `router: "xtend.xrouter"` |
25
+ | Scheduler Policies | `lane` and lifecycle operations, output: `schedules` |
26
+ | Markup or Fragments | `surface`, `slot`, `trust boundary`, output: `templates` |
27
+ | Description, Handoff, History | `manifest.metadata` |
28
+
29
+ `manifest.metadata` remains valid for product descriptions, handoff notes, demo history and deliberately historical pilot data. Operative routes, components and schedules should not be created there anymore. Template-only documents remain compatible.
30
+
31
+ ## vNext Target Shape
32
+
33
+ ```rmt
34
+ template settings.migration {
35
+ state settings.tab type string initial "profile"
36
+
37
+ portal surface.root root "#settings-root" layer surface
38
+
39
+ surface settings.card kind card component x-card {
40
+ source state settings.tab
41
+ portal surface.root
42
+
43
+ lane visible weight 80 {
44
+ hydrate settings-card from state settings.tab
45
+ }
46
+ }
47
+ }
48
+ ```
49
+
50
+ The JSON examples in the following steps are intentionally marked as legacy input or runtime-registry output. They show migration evidence, not the new writing style.
51
+
52
+ ## Migration Matrix
53
+
54
+ | Starting Point | Migration |
55
+ |----------------|-----------|
56
+ | Template-only `.rmt` document | remains valid; add native domains only when App DSL requires them |
57
+ | `manifest.metadata.routes` | move to `routes` |
58
+ | `manifest.metadata.components` | move to `components` |
59
+ | `manifest.metadata.schedules` | move to `schedules` |
60
+ | XRouter-specific demo initialization | replace with `createRmtXRouterAdapter` |
61
+ | XTend-specific demo mount logic | replace with `createRmtXtendComponentAdapter` |
62
+ | manual scheduler/state bridge | replace with `createRmtStateSchedulerDiagnosticsBridge` |
63
+ | non-XTend host | declare a custom adapter such as `vanilla.component` |
64
+
65
+ ## Step 1: Make Adapters Explicit in Registry Output
66
+
67
+ Old demo metadata often contains implicit knowledge such as "this route uses XRouter" or "this component is XTend". The first migration step is an explicit adapter record.
68
+
69
+ ```json
70
+ {
71
+ "id": "xtend.component",
72
+ "kind": "component_adapter",
73
+ "runtimeSurface": ["esm", "browser_classic"],
74
+ "providedCapabilities": ["components", "customElements", "hydration", "scheduleRefs"],
75
+ "kernelVisible": false
76
+ }
77
+ ```
78
+
79
+ `kernelVisible: false` is mandatory for host-specific adapter data. It means the kernel may validate and index the record, but must not import the XTend runtime.
80
+
81
+ ## Step 2: Lift Components out of Legacy Metadata
82
+
83
+ Before: legacy `manifest.metadata`
84
+
85
+ ```json
86
+ {
87
+ "manifest": {
88
+ "metadata": {
89
+ "components": [
90
+ {
91
+ "id": "settings.card",
92
+ "tag": "x-card"
93
+ }
94
+ ]
95
+ }
96
+ }
97
+ }
98
+ ```
99
+
100
+ After: compatibility/registry output
101
+
102
+ ```json
103
+ {
104
+ "components": [
105
+ {
106
+ "id": "settings.card",
107
+ "kind": "custom_element",
108
+ "adapter": "xtend.component",
109
+ "tag": "x-card",
110
+ "schedule": "component.idle.hydrate"
111
+ }
112
+ ]
113
+ }
114
+ ```
115
+
116
+ This lets `createRmtFormat().createRuntimeRegistries(...)` expose the component through `componentRegistry.byAdapter["xtend.component"]`.
117
+
118
+ ## Step 3: Lift Routes out of Legacy Metadata
119
+
120
+ Before: legacy `manifest.metadata`
121
+
122
+ ```json
123
+ {
124
+ "manifest": {
125
+ "metadata": {
126
+ "routes": [
127
+ {
128
+ "path": "/settings",
129
+ "component": "settings.card"
130
+ }
131
+ ]
132
+ }
133
+ }
134
+ }
135
+ ```
136
+
137
+ After: compatibility/registry output
138
+
139
+ ```json
140
+ {
141
+ "routes": [
142
+ {
143
+ "id": "settings",
144
+ "path": "/settings",
145
+ "router": "xtend.xrouter",
146
+ "component": "settings.card",
147
+ "template": "settings.shell",
148
+ "schedule": "route.visible.render"
149
+ }
150
+ ]
151
+ }
152
+ ```
153
+
154
+ This lets `createRmtXRouterAdapter` map the route through `routeRegistry.byRouter["xtend.xrouter"]` and pass it to XRouter with `registerRoutes`.
155
+
156
+ ## Step 4: Centralize Schedules
157
+
158
+ Endpoint hints often used to live in route, component or template metadata. After migration, the policy lives centrally in `schedules`.
159
+
160
+ ```json
161
+ {
162
+ "schedules": [
163
+ {
164
+ "id": "route.visible.render",
165
+ "endpointName": "xtendrmt.route.render",
166
+ "lane": "visible",
167
+ "priority": 80,
168
+ "preferIdle": false
169
+ },
170
+ {
171
+ "id": "component.idle.hydrate",
172
+ "endpointName": "xtendrmt.component.hydrate",
173
+ "lane": "idle",
174
+ "priority": 40,
175
+ "preferIdle": true
176
+ }
177
+ ]
178
+ }
179
+ ```
180
+
181
+ Routes and components now only reference `schedule`. Execution runs through `createRmtStateSchedulerDiagnosticsBridge`.
182
+
183
+ ## Step 5: Remove Demo Bridge Logic
184
+
185
+ Permanent demo bridge logic should no longer carry new product logic. A migrated host start uses the production factories:
186
+
187
+ ```js
188
+ const format = createRmtFormat();
189
+ const normalizedDocument = format.normalizeDocument(document);
190
+ const registry = format.createRuntimeRegistries(normalizedDocument);
191
+
192
+ const routes = createRmtXRouterAdapter({ routerElement }).registerRoutes(registry);
193
+ const components = createRmtXtendComponentAdapter({ document, manifest }).mapComponents(registry);
194
+ const bridge = createRmtStateSchedulerDiagnosticsBridge({ schedules: normalizedDocument.schedules });
195
+
196
+ bridge.recordAdapterResult(routes, { scheduleRef: 'route.visible.render' });
197
+ ```
198
+
199
+ If special logic is still necessary, it belongs in an adapter or in upstream RMT source, not in a demo file.
200
+
201
+ ## Best-Case Reference
202
+
203
+ `xtendrmt/xtendrmt-bestcase-demo.rmt` is the production authoring reference for RMT vNext:
204
+
205
+ - the `.rmt` file uses `template`, `surface`, `lane`, lifecycle operations, slots, event actions, state, selectors, actions, data sources, portals, overlays, resources and remote surfaces instead of JSON
206
+ - `xtendrmt/xtendrmt-bestcase-demo.core.json` is the byte-stable vNext Core output
207
+ - the browser demo projects vNext Core to `adapters`, `components`, `routes`, `schedules`, the Component Capability Registry, the Player Contract and resource ownership at runtime
208
+ - `createRmtXRouterAdapter`, `createRmtXtendComponentAdapter`, `createRmtStateSchedulerDiagnosticsBridge` and `createRmtComponentCapabilityRegistry` remain the production adapter paths
209
+ - `nativeDemoMigration` is retained in the runtime projection as handoff metadata
210
+
211
+ `tests/browser/fixtures/rmt-xrouter-xtend-smoke.html` is the browser-near regression for the migrated path. It additionally verifies `vanilla.component` so the target state remains framework-agnostic.
212
+
213
+ For the official Docs App, Parsedown remains the active Markdown parser, but the visible app shell is rendered shell-first from `docs.app.shell` in the RMT document. The RMT scheduling and shell path for Parsedown, search and future-ready media slots is documented through [XTendRMT Parsedown Scheduling Pilot](./xtendrmt-parsedown-scheduling.md) and remains host-neutral.
214
+
215
+ ## SurfaceManager Migration
216
+
217
+ Starting with `WP-SM-09`, the SurfaceManager has its own migration guide: [SurfaceManager Migration Guide](./surface-manager-migration-guide.md) (`docs/surface-manager-migration-guide.md`).
218
+
219
+ The Surface path is additive:
220
+
221
+ - existing `components[*].metadata.surface` records remain valid
222
+ - native `surfaces[*]` records are preferred for complex app shells
223
+ - dual records keep `id`, `type`, `manager`, `component`, `route`, `schedule` and `stateKey` synchronized
224
+ - `xtend.surface` remains a `surface_adapter` handoff until a production adapter runtime is implemented
225
+
226
+ ## What Does Not Need Migration
227
+
228
+ Not every file immediately needs native domains.
229
+
230
+ Do not migrate:
231
+
232
+ - pure template-only documents without routing or component needs
233
+ - historical demos with `manual-legacy` status
234
+ - metadata that only contains product descriptions or handoff notes
235
+ - React, Vue, Vanilla or custom hosts that do not yet use RMT as scheduler
236
+
237
+ Migrate:
238
+
239
+ - new `.rmt` App DSL documents
240
+ - demo code with operative route/component bridges
241
+ - production route or component flows
242
+ - host paths that need scheduler endpoint policies
243
+
244
+ ## Review Checklist
245
+
246
+ Before closing a migration, verify that:
247
+
248
+ - `manifest.metadata.routes -> routes` has been completed
249
+ - `manifest.metadata.components -> components` has been completed
250
+ - `manifest.metadata.schedules -> schedules` has been completed
251
+ - `xtend.xrouter` and `xtend.component` are adapter records, not kernel knowledge
252
+ - `route.visible.render` and `component.idle.hydrate` are central policies
253
+ - `createRmtXRouterAdapter`, `createRmtXtendComponentAdapter` and `createRmtStateSchedulerDiagnosticsBridge` replace demo bridge logic
254
+ - template-only compatibility remains intact
255
+ - React, Vue, Vanilla JS and custom hosts are not forced into the XTend migration
256
+ - `node scripts/run_xtend_tests.js rmt-compatibility --json` and `node scripts/run_xtend_tests.js references --json` run