@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,482 @@
1
+ # RMT vNext Source-to-Sea Gate
2
+
3
+ - Contract: `xtend.rmt.vnext.source-to-sea-gate.v1`
4
+ - Evidence: `xtend.rmt.vnext.source-to-sea-evidence.v1`
5
+ - Evidence Report: `xtend.rmt.vnext.source-to-sea-evidence-report.v1`
6
+ - Object Matrix: `xtend.rmt.vnext.source-to-sea-object-matrix.v1`
7
+ - CI Artifact Validation: `xtend.rmt.vnext.source-to-sea-ci-artifact-validation.v1`
8
+ - Fabric Bridge Evidence: `xtend.rmt.vnext.fabric-bridge-evidence.v1`
9
+ - Workpackage: `RMT-VNEXT-PRIM-06`
10
+ - Active Bridge Workpackage: `RMT-VNEXT-PRIM-05`
11
+ - Status: `in_progress`
12
+ - Fabric Bridge Handoff: [RMT vNext Fabric Bridge Evidence](./rmt-vnext-fabric-bridge-evidence.md)
13
+ - Source: Media Manager downstream transfer, `2026-05-19`
14
+
15
+ ## Goal
16
+
17
+ `RMT-VNEXT-PRIM-06` starts the full-stack gate for vNext-authored primitives. The gate proves not only parser or JSON output, but reconstructs the same visible object lifecycle across all runtime boundaries:
18
+
19
+ ```text
20
+ source -> kernel -> Fabric -> UI -> Browser
21
+ ```
22
+
23
+ The first PRIM-06 slice remains deterministic in the default run and works without an external browser driver. It connects a vNext fixture with a self-checking browser-smoke fixture and produces machine-readable evidence from that. With the current expansion, a WebDriver, Firefox/Geckodriver, ChromeDriver or Safari Driver path can open the same browser fixture, read the same result key and compare the real browser result against compiler, kernel and Fabric evidence. Browser execution evidence can now also be written as a release artifact at `.xtend-test-results/xtend-rmt-vnext-source-to-sea-evidence.json`. In GitHub Actions, this path is optional and only runs on manual `workflow_dispatch` with `run_source_to_sea=true`.
24
+
25
+ ## Fixture
26
+
27
+ The vNext fixture is located at:
28
+
29
+ ```text
30
+ tests/rmt-language/fixtures/vnext-source-to-sea.rmt
31
+ ```
32
+
33
+ It declares exclusively in RMT vNext:
34
+
35
+ - `state demo.feedback.status`
36
+ - `state demo.feedback.toast`
37
+ - `state demo.feedback.detail`
38
+ - `state demo.feedback.audit`
39
+ - `selector demo.feedback.status`
40
+ - `selector demo.feedback.toast`
41
+ - `selector demo.feedback.detail`
42
+ - `selector demo.feedback.audit`
43
+ - `action demo.feedback.save`
44
+ - `action demo.feedback.dismiss`
45
+ - `action demo.feedback.detail.ack`
46
+ - `action demo.feedback.audit.review`
47
+ - `portal surface.root`
48
+ - `resource demo.feedback.timer`
49
+ - `resource demo.feedback.toastTimer`
50
+ - `resource demo.feedback.detailTimer`
51
+ - `resource demo.feedback.auditTimer`
52
+ - `surface demo.feedback.status`
53
+ - `surface demo.feedback.toast`
54
+ - `surface demo.feedback.detail`
55
+ - `surface demo.feedback.audit`
56
+ - one `visible` lane with `hydrate feedback-status`
57
+ - a second `idle` lane with `hydrate feedback-toast`
58
+ - a `transition` lane with `mount feedback-detail`
59
+ - a second `transition` lane with `mount feedback-audit`
60
+ - a click event on `[data-action='save']`
61
+ - a click event on `[data-action='dismiss']`
62
+ - a click event on `[data-action='ack-detail']`
63
+ - a click event on `[data-action='review-audit']`
64
+ - a cross-primitive reducer from `demo.feedback.save` to `state.demo.feedback.toast.text`
65
+
66
+ This puts state, selector, action, event, surface, lane/fiber and lifecycle owner in the same authoring language.
67
+
68
+ ## Browser Probe
69
+
70
+ The browser fixture is located at:
71
+
72
+ ```text
73
+ tests/browser/fixtures/rmt-vnext-source-to-sea-smoke.html
74
+ ```
75
+
76
+ It contains visible DOM markers:
77
+
78
+ ```html
79
+ data-rmt-primitive-id="demo.feedback.status"
80
+ data-rmt-primitive-id="demo.feedback.toast"
81
+ data-rmt-primitive-id="demo.feedback.detail"
82
+ data-rmt-primitive-id="demo.feedback.audit"
83
+ ```
84
+
85
+ and a stable result key:
86
+
87
+ ```js
88
+ window.__xtendRmtVNextSourceToSeaResult
89
+ ```
90
+
91
+ The fixture checks locally that the object is visible, carries the expected schedule/fiber metadata, records the RMT action event on click and changes the visible text from `Ready` to `Saved`.
92
+
93
+ Since `RMT-VNEXT-PRIM-05`, the same DOM probe also carries visible Fabric bridge markers:
94
+
95
+ ```html
96
+ data-xtend-fabric-lane="visible"
97
+ data-xtend-fabric-fiber="fiber:demo.feedback/demo.feedback.status/visible/0"
98
+ data-xtend-fabric-schedule="component.visible.hydrate"
99
+ data-xtend-host-adapter-telemetry="xtend.component.lifecycle-telemetry.v1"
100
+ ```
101
+
102
+ The bridge also hardens a lane matrix for `user-blocking`, `transition`, `idle`, `background` and `diagnostics`. Every matrix lane creates a real Fabric fiber, a Fabric/RMT mapping decision and a telemetry snapshot entry.
103
+
104
+ The browser probe additionally contains a host-adapter telemetry record with `xtend.component.lifecycle-telemetry.v1`. The gate normalizes this record through `fabric.recordComponentTelemetry(...)` so PRIM-05 can prove the XTend UI host-adapter layer in the Fabric snapshot.
105
+
106
+ Since the multi-object expansion, the gate projects host-adapter telemetry per primitive. `demo.feedback.status` stays on `visible` and `component.visible.hydrate`, while `demo.feedback.toast` is validated through `idle` and `component.idle.hydrate`. `demo.feedback.detail` and `demo.feedback.audit` are separate route targets on the `transition` lane.
107
+
108
+ PRIM-05 also binds the production fiber instrumentations:
109
+
110
+ - `createComponentFiberInstrumentation(...)` creates `component.mount` and `component.hydrate`.
111
+ - `createRouteFiberInstrumentation(...)` creates `route.navigate` and `route.render`.
112
+ - The schedule refs `component.visible.mount`, `component.idle.hydrate`, `ui.user-blocking.input` and `route.transition.render` must appear in the Fabric telemetry snapshot.
113
+
114
+ ## Evidence API
115
+
116
+ The gate is produced by `tools/rmt-language/vnext-source-to-sea.js`:
117
+
118
+ ```js
119
+ const {
120
+ createRmtVNextFabricBridgeEvidence,
121
+ createRmtVNextSourceToSeaEvidenceReport,
122
+ createRmtVNextSourceToSeaEvidence,
123
+ runRmtVNextSourceToSeaBrowserExecution,
124
+ writeRmtVNextSourceToSeaEvidenceReport
125
+ } = require('./tools/rmt-language/vnext-source-to-sea');
126
+
127
+ const evidence = createRmtVNextSourceToSeaEvidence({
128
+ text,
129
+ filePath
130
+ }, {
131
+ browserFixtureText,
132
+ browserFixturePath: 'tests/browser/fixtures/rmt-vnext-source-to-sea-smoke.html'
133
+ });
134
+
135
+ const browserExecution = await runRmtVNextSourceToSeaBrowserExecution(evidence, {
136
+ rootDir: process.cwd(),
137
+ browserFixturePath: 'tests/browser/fixtures/rmt-vnext-source-to-sea-smoke.html',
138
+ browserDriver: process.env.RMT_VNEXT_SOURCE_TO_SEA_BROWSER_DRIVER || 'chromedriver',
139
+ requireBrowserExecution: true
140
+ });
141
+
142
+ const evidenceReport = await createRmtVNextSourceToSeaEvidenceReport({
143
+ rootDir: process.cwd(),
144
+ evidence,
145
+ browserExecution
146
+ });
147
+
148
+ await writeRmtVNextSourceToSeaEvidenceReport({
149
+ rootDir: process.cwd()
150
+ });
151
+ ```
152
+
153
+ Evidence must correlate under the same primitive ID:
154
+
155
+ ```json
156
+ {
157
+ "schema": "xtend.rmt.vnext.source-to-sea-evidence.v1",
158
+ "primitiveId": "demo.feedback.status",
159
+ "sourcePointer": "/events/0",
160
+ "kernel": {
161
+ "scheduleRef": "schedule:demo.feedback/demo.feedback.status/visible"
162
+ },
163
+ "fabric": {
164
+ "schema": "xtend.rmt.vnext.fabric-bridge-evidence.v1",
165
+ "workpackage": "RMT-VNEXT-PRIM-05",
166
+ "lane": "visible",
167
+ "fiber": "fiber:demo.feedback/demo.feedback.status/visible/0",
168
+ "scheduleRef": "component.visible.hydrate",
169
+ "endpointName": "xtendrmt.component.hydrate",
170
+ "hostAdapter": {
171
+ "schema": "xtend.component.lifecycle-telemetry.v1",
172
+ "source": "xtend.component-adapter",
173
+ "operation": "hydrate"
174
+ },
175
+ "routeComponentFibers": {
176
+ "schema": "xtend.rmt.vnext.route-component-fiber-evidence.v1",
177
+ "component": ["component.visible.mount", "component.idle.hydrate"],
178
+ "route": ["ui.user-blocking.input", "route.transition.render"]
179
+ }
180
+ },
181
+ "ui": {
182
+ "selector": "[data-rmt-primitive-id=\"demo.feedback.status\"]",
183
+ "visible": true,
184
+ "text": "Saved"
185
+ },
186
+ "browser": {
187
+ "viewportAsserted": true,
188
+ "eventObserved": true
189
+ },
190
+ "browserExecution": {
191
+ "schema": "xtend.rmt.vnext.browser-execution-evidence.v1",
192
+ "status": "skipped",
193
+ "driver": null,
194
+ "resultKey": "__xtendRmtVNextSourceToSeaResult"
195
+ }
196
+ }
197
+ ```
198
+
199
+ The artifact report wraps this evidence plus browser-execution policy:
200
+
201
+ ```json
202
+ {
203
+ "schema": "xtend.rmt.vnext.source-to-sea-evidence-report.v1",
204
+ "workpackage": "RMT-VNEXT-PRIM-06",
205
+ "status": "passed",
206
+ "artifact": {
207
+ "path": ".xtend-test-results/xtend-rmt-vnext-source-to-sea-evidence.json",
208
+ "browserExecutionRequired": false,
209
+ "browserExecutionStatus": "skipped"
210
+ },
211
+ "ciArtifactValidation": {
212
+ "schema": "xtend.rmt.vnext.source-to-sea-ci-artifact-validation.v1",
213
+ "status": "skipped"
214
+ }
215
+ }
216
+ ```
217
+
218
+ Since the multi-object expansion, the same report also contains an object matrix:
219
+
220
+ ```json
221
+ {
222
+ "schema": "xtend.rmt.vnext.source-to-sea-object-matrix.v1",
223
+ "objectCount": 4,
224
+ "primitiveIds": [
225
+ "demo.feedback.status",
226
+ "demo.feedback.toast",
227
+ "demo.feedback.detail",
228
+ "demo.feedback.audit"
229
+ ],
230
+ "crossPrimitiveEvents": [
231
+ {
232
+ "sourcePrimitiveId": "demo.feedback.status",
233
+ "targetPrimitiveId": "demo.feedback.toast",
234
+ "actionId": "demo.feedback.save",
235
+ "eventId": "demo.feedback.toast.promoted",
236
+ "targetState": "state.demo.feedback.toast.text",
237
+ "lane": "idle"
238
+ }
239
+ ],
240
+ "routeSwitches": [
241
+ {
242
+ "sourcePrimitiveId": "demo.feedback.status",
243
+ "targetPrimitiveId": "demo.feedback.detail",
244
+ "actionId": "demo.feedback.save",
245
+ "from": "/rmt-vnext-source-to-sea",
246
+ "to": "/rmt-vnext-source-to-sea/toast",
247
+ "scheduleRef": "ui.user-blocking.input",
248
+ "renderScheduleRef": "route.transition.render",
249
+ "lane": "transition",
250
+ "targetScheduleRef": "schedule:demo.feedback/demo.feedback.detail/transition",
251
+ "targetFiberRef": "fiber:demo.feedback/demo.feedback.detail/transition/0",
252
+ "targetExpectedText": "Detail mounted"
253
+ },
254
+ {
255
+ "sourcePrimitiveId": "demo.feedback.status",
256
+ "targetPrimitiveId": "demo.feedback.audit",
257
+ "actionId": "demo.feedback.save",
258
+ "from": "/rmt-vnext-source-to-sea/toast",
259
+ "to": "/rmt-vnext-source-to-sea/audit",
260
+ "scheduleRef": "ui.user-blocking.input",
261
+ "renderScheduleRef": "route.transition.render",
262
+ "lane": "transition",
263
+ "targetScheduleRef": "schedule:demo.feedback/demo.feedback.audit/transition",
264
+ "targetFiberRef": "fiber:demo.feedback/demo.feedback.audit/transition/0",
265
+ "targetExpectedText": "Audit mounted"
266
+ }
267
+ ],
268
+ "routeLifecycleCycles": [
269
+ {
270
+ "targetPrimitiveId": "demo.feedback.detail",
271
+ "from": "/rmt-vnext-source-to-sea/toast",
272
+ "to": "/rmt-vnext-source-to-sea",
273
+ "unmountScheduleRef": "ui.background.work",
274
+ "remountScheduleRef": "route.transition.render",
275
+ "resourceId": "demo.feedback.detailTimer",
276
+ "expectedUnmountCount": 1,
277
+ "expectedRemountCount": 1
278
+ },
279
+ {
280
+ "targetPrimitiveId": "demo.feedback.audit",
281
+ "from": "/rmt-vnext-source-to-sea/audit",
282
+ "to": "/rmt-vnext-source-to-sea",
283
+ "unmountScheduleRef": "ui.background.work",
284
+ "remountScheduleRef": "route.transition.render",
285
+ "resourceId": "demo.feedback.auditTimer",
286
+ "expectedUnmountCount": 1,
287
+ "expectedRemountCount": 1
288
+ }
289
+ ]
290
+ }
291
+ ```
292
+
293
+ ## Gate Rules
294
+
295
+ The gate fails if any of these correlation links is missing:
296
+
297
+ - Compiler result is not successful.
298
+ - PRIM-03 semantic graph reports errors.
299
+ - PRIM-04 App Platform or Kernel records are missing.
300
+ - Kernel boundary is not `no-rmt-kernel-import-of-host-runtime-types`.
301
+ - Schedule or lifecycle record is missing.
302
+ - No Fabric fiber can be derived from schedule and operation.
303
+ - The Fabric bridge cannot create an `xtend.fabric.fiber.v1`.
304
+ - Fabric/RMT lane resolution does not return `xtend.fabric.rmt-lane-mapping.v1`.
305
+ - The Fabric telemetry snapshot does not contain the expected lane or schedule ref.
306
+ - The PRIM-05 lane matrix does not contain all expected Fabric lanes.
307
+ - Host-adapter telemetry is missing in the Fabric snapshot.
308
+ - Route or component fibers are missing in the Fabric snapshot.
309
+ - The browser fixture contains no visible Fabric lane/fiber markers.
310
+ - The fiber source kind is not `selector`.
311
+ - Source-map pointer to the event is missing.
312
+ - Browser fixture declares no probe contract.
313
+ - DOM marker, viewport assertion or event result key is missing.
314
+ - The object matrix contains fewer than four visible primitives, no separate lanes or no cross-primitive event.
315
+ - The object matrix does not contain at least two valid route switches with navigation and render schedule.
316
+ - The route switch mounts no target object or the target is not visible in the real browser result.
317
+ - A route lifecycle cycle does not unmount or remount the target, the expected unmount/remount counters per target are missing, declared resource cleanup is not provable in vNext/Core, or the resource owner does not match the route target.
318
+ - One of the matrix objects does not correlate through source, kernel, Fabric, UI and browser.
319
+ - The optional browser-execution path with an active driver does not return a `passed` result key or drifts from evidence in primitive ID, schedule, fiber, Fabric schedule, host-adapter telemetry or event.
320
+ - ChromeDriver auto-cleanup cannot stop an automatically started driver after a successful browser result through `/shutdown` or process fallback.
321
+ - Kernel records contain XTend host imports.
322
+
323
+ ## Local Gates
324
+
325
+ Targeted PRIM-06 gates:
326
+
327
+ ```bash
328
+ node --check tools/rmt-language/vnext-source-to-sea.js
329
+ node --check tests/rmt-language/rmt_vnext_source_to_sea_suite.js
330
+ node --check scripts/capture_rmt_vnext_source_to_sea_evidence.js
331
+ node -e "const suite=require('./tests/rmt-language/rmt_vnext_source_to_sea_suite'); suite.runRmtVNextSourceToSeaSuite({rootDir:process.cwd()}).then((result)=>process.exit(result.ok ? 0 : 1));"
332
+ node scripts/capture_rmt_vnext_source_to_sea_evidence.js
333
+ node scripts/run_xtend_tests.js fabric-lane-mapping fabric-component-fibers fabric-runtime-bridge --json
334
+ ```
335
+
336
+ Real browser run with external WebDriver:
337
+
338
+ ```bash
339
+ RMT_VNEXT_SOURCE_TO_SEA_BROWSER_DRIVER=webdriver \
340
+ RMT_VNEXT_SOURCE_TO_SEA_WEBDRIVER_URL=http://127.0.0.1:9515 \
341
+ node scripts/capture_rmt_vnext_source_to_sea_evidence.js --require-browser
342
+ ```
343
+
344
+ Real browser run with automatically started ChromeDriver:
345
+
346
+ ```bash
347
+ npm run test:rmt-vnext-source-to-sea:chromedriver
348
+ ```
349
+
350
+ Real browser run with automatically started Firefox/Geckodriver:
351
+
352
+ ```bash
353
+ npm run test:rmt-vnext-source-to-sea:firefox
354
+ ```
355
+
356
+ The GitHub Actions job `rmt-vnext-primitive-gates` keeps this ChromeDriver path as an optional evidence run behind `workflow_dispatch` and then uploads the same evidence artifact. The report additionally contains CI artifact validation. In local browser-skip mode it remains `skipped`; in a manually requested browser path it must be `passed` and prove `objectCount: 4`, two cross-primitive events, two route switches, two route lifecycle cycles, `targetMounted`, `targetVisible`, `countsMatch` and the audit resources `demo.feedback.auditTimer` and `demo.feedback.auditSubscription`.
357
+
358
+ An already written CI artifact can be checked again against the same contract without a new browser run:
359
+
360
+ ```bash
361
+ npm run test:rmt-vnext-source-to-sea:validate-artifact
362
+ node scripts/capture_rmt_vnext_source_to_sea_evidence.js --validate-artifact .xtend-test-results/xtend-rmt-vnext-source-to-sea-evidence.json
363
+ ```
364
+
365
+ The replay path uses `validateRmtVNextSourceToSeaCiArtifactFile(...)`, expects browser evidence for this optional replay and fails closed with `status: "failed"` for missing, unparseable or drifted artifacts.
366
+
367
+ ChromeDriver auto-cleanup first uses the local WebDriver endpoint `/shutdown` for automatically started ChromeDriver. Only if this path does not stop the process does the gate fall back to process signals. This matters for Snap/Chromium installations where a direct `kill()` can fail with `EACCES`.
368
+
369
+ ## Next Handoff
370
+
371
+ `RMT-VNEXT-PRIM-06` now provides the first source-to-sea evidence. `RMT-VNEXT-PRIM-05` is complete as its own Fabric bridge package: real Fabric runtime fibers, host-adapter telemetry, route/component fibers, a telemetry snapshot and a lane matrix for non-visible scheduling classes are gateable through `rmt-vnext-fabric-bridge`. The current PRIM-06 expansion keeps the browser-execution path in GitHub Actions as optional, manually activated evidence. The release artifact is wired as `.xtend-test-results/xtend-rmt-vnext-source-to-sea-evidence.json`. The browser result matrix now contains four objects, cross-primitive events and two sequential route switches. The current runtime slice mounts `demo.feedback.detail` and `demo.feedback.audit` only after route changes and requires `targetMounted: true` and `targetVisible: true` in the browser result for each. In addition, `routeLifecycleCycles` runs separate unmount/remount cycles for both targets: `demo.feedback.detailTimer` and `demo.feedback.auditTimer` must be present through `dispose on surface.destroy` as resource-cleanup evidence; browser evidence must provide `unmountCount: 1`, `remountCount: 1` and `countsMatch: true` per target. The audit cycle now checks multiple resource records: beside `demo.feedback.auditTimer`, `demo.feedback.auditSubscription` with `kind subscription`, `owner surface.demo.feedback.audit` and `dispose on surface.destroy` must also be artifacted. A negative fixture without dispose policy must fail in a controlled way with `rmt.vnext.source_to_sea.cleanup_dispose_policy_missing`. A second negative fixture has a dispose policy but binds `demo.feedback.detailTimer` to `surface.demo.feedback.toast`; it must fail with `rmt.vnext.source_to_sea.cleanup_owner_mismatch`. A third negative fixture removes `demo.feedback.auditTimer` completely from vNext while keeping `demo.feedback.audit` as a route target; it must fail with `rmt.vnext.source_to_sea.cleanup_resource_missing`. The optional next step is comparing local browser evidence with manually requested CI artifacts.
372
+
373
+ Cross-primitive evidence is now two-stage: beside `demo.feedback.save -> demo.feedback.toast`, `demo.feedback.detail.ack -> demo.feedback.audit` must also be proven after route mount. The second entry reduces `state.demo.feedback.audit.text`, emits `demo.feedback.audit.escalated` and must appear in the browser result as `stage: "route-target"` with `sourceLane: "transition"` and `targetLane: "transition"`.
374
+
375
+ The negative browser probe `tests/browser/fixtures/rmt-vnext-source-to-sea-cross-route-invalid.html` intentionally moves the `stage: "route-target"` entry to `targetPrimitiveId: "demo.feedback.toast"` while event and target state continue to point to `demo.feedback.audit`. The object matrix must therefore fail closed and mark at least these guards as `false`: `cross event route-target state belongs to target primitive`, `cross event route-target event belongs to target primitive` and `cross event route-target stage uses transition lanes`.
376
+
377
+ ## Browser Result Drift
378
+
379
+ The WebDriver result path is additionally protected by `xtend.rmt.vnext.source-to-sea-browser-result-validation.v1`. `createRmtVNextSourceToSeaBrowserResultValidation(...)` wraps the same checks that the real ChromeDriver run evaluates after the headless browser. This makes route-switch and lifecycle drifts deterministically reconstructable without a new browser start:
380
+
381
+ - `browser execution route switches pass` must fail when a route switch is present in the result but reports `status: "failed"`, `targetMounted: false` or `targetVisible: false`.
382
+ - `browser execution route lifecycle cycles pass` must fail when a lifecycle cycle reports `countsMatch: false` or different unmount/remount counters.
383
+ - `browser execution cross-primitive events pass` must fail when a cross-primitive event in the browser result does not report `status: "passed"`.
384
+ - `browser execution object matrix passes` must fail when a visible object in the browser result does not report `status: "passed"`.
385
+
386
+ ## Cross-Route Event Evidence
387
+
388
+ The positive browser result must contain two cross-primitive events:
389
+
390
+ ```json
391
+ {
392
+ "sourcePrimitiveId": "demo.feedback.status",
393
+ "targetPrimitiveId": "demo.feedback.toast",
394
+ "eventId": "demo.feedback.toast.promoted",
395
+ "targetLane": "idle"
396
+ }
397
+ ```
398
+
399
+ ```json
400
+ {
401
+ "sourcePrimitiveId": "demo.feedback.detail",
402
+ "targetPrimitiveId": "demo.feedback.audit",
403
+ "eventId": "demo.feedback.audit.escalated",
404
+ "stage": "route-target",
405
+ "sourceLane": "transition",
406
+ "targetLane": "transition"
407
+ }
408
+ ```
409
+
410
+ ## Multi-Resource Cleanup Evidence
411
+
412
+ The positive audit lifecycle must show multiple cleanup resources:
413
+
414
+ ```json
415
+ {
416
+ "targetPrimitiveId": "demo.feedback.audit",
417
+ "resourceIds": [
418
+ "demo.feedback.auditTimer",
419
+ "demo.feedback.auditSubscription"
420
+ ],
421
+ "resourceKinds": [
422
+ "timer",
423
+ "subscription"
424
+ ],
425
+ "resourceDisposed": true
426
+ }
427
+ ```
428
+
429
+ The object matrix must check the same owner and dispose policy for `demo.feedback.auditSubscription` as for the timer. Cycles with only `resourceId` remain compatible; production cycles can declare `resources` with multiple resource IDs and expected kinds.
430
+
431
+ ## Negative Cleanup Fixtures
432
+
433
+ The negative fixtures are located under:
434
+
435
+ ```text
436
+ tests/rmt-language/fixtures/vnext-source-to-sea-cleanup-invalid.rmt
437
+ tests/rmt-language/fixtures/vnext-source-to-sea-cleanup-owner-invalid.rmt
438
+ tests/rmt-language/fixtures/vnext-source-to-sea-cleanup-resource-missing.rmt
439
+ tests/rmt-language/fixtures/vnext-source-to-sea-cleanup-kind-invalid.rmt
440
+ ```
441
+
442
+ The first fixture intentionally leaves `demo.feedback.detailTimer` without `dispose on surface.destroy`. The second fixture keeps the dispose policy but intentionally binds the resource owner to `surface.demo.feedback.toast`. The third fixture keeps `demo.feedback.audit` as a route target but removes `demo.feedback.auditTimer` completely from the vNext source. The fourth fixture keeps `demo.feedback.auditSubscription` as cleanup resource but intentionally declares it with `kind cache` instead of `kind subscription`.
443
+ The positive source-to-sea gate remains successful, but the negative matrices must fail and provide this evidence:
444
+
445
+ ```json
446
+ {
447
+ "code": "rmt.vnext.source_to_sea.cleanup_dispose_policy_missing",
448
+ "targetPrimitiveId": "demo.feedback.detail",
449
+ "resourceId": "demo.feedback.detailTimer",
450
+ "dispose": null
451
+ }
452
+ ```
453
+
454
+ ```json
455
+ {
456
+ "code": "rmt.vnext.source_to_sea.cleanup_owner_mismatch",
457
+ "targetPrimitiveId": "demo.feedback.detail",
458
+ "resourceId": "demo.feedback.detailTimer",
459
+ "owner": {
460
+ "id": "demo.feedback.toast"
461
+ }
462
+ }
463
+ ```
464
+
465
+ ```json
466
+ {
467
+ "code": "rmt.vnext.source_to_sea.cleanup_resource_missing",
468
+ "targetPrimitiveId": "demo.feedback.audit",
469
+ "resourceId": "demo.feedback.auditTimer",
470
+ "resource": null
471
+ }
472
+ ```
473
+
474
+ ```json
475
+ {
476
+ "code": "rmt.vnext.source_to_sea.cleanup_kind_mismatch",
477
+ "targetPrimitiveId": "demo.feedback.audit",
478
+ "resourceId": "demo.feedback.auditSubscription",
479
+ "expectedKind": "subscription",
480
+ "actualKind": "cache"
481
+ }
482
+ ```
@@ -0,0 +1,68 @@
1
+ # RMT vNext Enterprise Surface Registry
2
+
3
+ `surface.registry` is the shared enterprise MFE index for local and remote surfaces. It is not a runtime manager and not a global event bus, but an auditable snapshot for ownership, discoverability, active versions, shell targets, lanes, fallbacks and event facts.
4
+
5
+ ## Contract
6
+
7
+ ```js
8
+ schema: "xtend.rmt.vnext-enterprise-surface-registry.v1"
9
+ surfaceSchema: "xtend.rmt.vnext-enterprise-surface.v1"
10
+ targetReadiness: "rmt-vnext-enterprise-mfe-ready"
11
+ ```
12
+
13
+ The registry snapshot answers the enterprise questions:
14
+
15
+ - Which surfaces exist at runtime?
16
+ - Which team owns which surface?
17
+ - Which version is active and which range was expected?
18
+ - Which shell targets and lanes are bound?
19
+ - Which surfaces are local, remote or fallback?
20
+ - Which events may leave or reach a surface?
21
+ - Which degradation policy applies on incompatibility?
22
+
23
+ ## Registry Shape
24
+
25
+ ```json
26
+ {
27
+ "schema": "xtend.rmt.vnext-enterprise-surface-registry.v1",
28
+ "registryId": "enterprise:xtend.enterprise-mfe.demo",
29
+ "surfaceCount": 4,
30
+ "localSurfaceCount": 3,
31
+ "remoteSurfaceCount": 1,
32
+ "indexes": {
33
+ "byOwner": {
34
+ "checkout-platform": ["surface:panel.checkoutFallback", "remote:checkout.cart"]
35
+ },
36
+ "byShellTarget": {
37
+ "shell.slot:sidebar.cart": ["remote:checkout.cart"]
38
+ }
39
+ }
40
+ }
41
+ ```
42
+
43
+ The registry may be read by hosts and operations tools. It remains a language-layer artifact and creates no implicit runtime connections.
44
+
45
+ ## Ownership
46
+
47
+ Every surface needs a domain owner. The owner is responsible for:
48
+
49
+ - version range and active version
50
+ - fallback surface or blocking degradation path
51
+ - event ownership and payload ownership
52
+ - security policy and trust boundary
53
+ - migration notes for legacy surface facts
54
+
55
+ ## Discoverability
56
+
57
+ Discoverability comes from stable indexes, not runtime heuristics. The registry must be resolvable at least by surface name, owner, shell target, lane, status, remote ID and fallback. The demo scenario validates this through `tools/rmt-language/vnext-enterprise-fixtures.js`.
58
+
59
+ ## Gates
60
+
61
+ ```bash
62
+ node scripts/run_xtend_tests.js rmt-vnext-enterprise-registry --json
63
+ node scripts/run_xtend_tests.js rmt-vnext-degradation --json
64
+ node scripts/run_xtend_tests.js rmt-vnext-enterprise-fixtures --json
65
+ node scripts/run_xtend_tests.js rmt-vnext-enterprise-release --json
66
+ ```
67
+
68
+ The operational handoff is summarized in `docs/rmt-vnext-enterprise-mfe-handoff.md`.
@@ -0,0 +1,56 @@
1
+ # Screenreader Signals
2
+
3
+ - Contract: `xtend.docs.screenreader-signals.v1`
4
+ - Runtime/gate contract: `xtend.a11y.screenreader-signals.v1`
5
+ - Signal record: `xtend.a11y.screenreader-signal.v1`
6
+ - Gate: `node scripts/run_xtend_tests.js screenreader-signals --json`
7
+
8
+ ## Purpose
9
+
10
+ Screenreader signals make visible which UI state changes must not remain silent. The contract describes `aria-live`, status regions, error regions and announcements without embedding a specific UI runtime into XTendRMT.
11
+
12
+ XTend uses the contract for components and scaffold artifacts. XTendRMT can schedule the resulting a11y work through Fabric lane `a11y`, fiber `a11y.announce` and schedule `a11y.user-blocking.announce`.
13
+
14
+ ## Signal Types
15
+
16
+ | Signal | Live region | Region | Typical use |
17
+ |--------|-------------|--------|-------------|
18
+ | `status-announcement` | `polite` | `status` | Toasts, alerts, submit success |
19
+ | `dismissal-announcement` | `polite` | `status` | Toast/alert was closed |
20
+ | `validation-error-summary` | `assertive` | `error` | Form or input errors |
21
+ | `submit-status` | `polite` | `status` | Form processed successfully |
22
+ | `dialog-context` | `none` | `dialog` | Dialog/modal context via role and label |
23
+ | `focus-return` | `none` | `focus` | Focus returns to source after overlay close |
24
+ | `route-change-announcement` | `polite` | `status` | Route was changed |
25
+
26
+ ## Component Obligations
27
+
28
+ Feedback components declare status signals and set a live region. Error states may be assertive, but must remain reviewable.
29
+
30
+ Form components declare at least `validation-error-summary` and `submit-status`. Error regions need a clear source and must not treat empty announcements as success.
31
+
32
+ Overlay components declare `dialog-context` and `focus-return`. They do not necessarily need `aria-live`, because the screenreader context comes from `role="dialog"`, `aria-modal`, `aria-labelledby` and focus management.
33
+
34
+ ## Scaffold
35
+
36
+ New scaffold components include the screenreader contract in:
37
+
38
+ - `xtendScaffoldA11yProfile.screenreader.signalContract`
39
+ - manifest key `screenreaderSignals`
40
+ - component docs section `Screenreader Signals`
41
+ - fixture result `screenreaderSignals`
42
+ - type contract `ScreenreaderSignalContract`
43
+
44
+ ## Verification
45
+
46
+ ```bash
47
+ npm run test:screenreader-signals
48
+ node scripts/run_xtend_tests.js screenreader-signals --json
49
+ node scripts/run_xtend_tests.js a11y-hydration --json
50
+ ```
51
+
52
+ The gate checks the contract factory, real feedback/form/overlay components, scaffold outputs and package metadata.
53
+
54
+ ## Boundaries
55
+
56
+ The contract is not a replacement for manual screenreader acceptance. It prevents relevant status, error or overlay signals from remaining unnamed.