@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,59 @@
1
+ # RMT vNext Cross Surface Events
2
+
3
+ Cross-surface events connect areas of the app shell without introducing an implicit global event bus. Every direction, target and payload schema is described explicitly and secured through governance diagnostics. Boundary: no implicit global event bus.
4
+
5
+ ## Contract
6
+
7
+ ```js
8
+ schema: "xtend.rmt.vnext-cross-surface-event-protocol.v1"
9
+ reportSchema: "xtend.rmt.vnext-cross-surface-event-report.v1"
10
+ governanceSchema: "xtend.rmt.vnext-event-governance-policy.v1"
11
+ ```
12
+
13
+ An event must define:
14
+
15
+ - `event` as a versioned name, for example `checkout.cart.updated.v1`.
16
+ - `owner` as the team responsible for event and version maintenance.
17
+ - `payload.schema` as stable payload ID.
18
+ - `direction` as `outbound` or `inbound`.
19
+ - `scope` as lane, surface or shell target binding.
20
+ - `delivery` with TTL, correlation and idempotency when required.
21
+
22
+ ## Direction
23
+
24
+ `emits` describes outbound events from a surface. `consumes` describes inbound events. The shell may forward these bindings, but not interpret them freely. This keeps it visible whether a user action affects several areas of the shell.
25
+
26
+ ## Scope
27
+
28
+ Events are constrained to lanes and shell targets:
29
+
30
+ ```rmt
31
+ emits checkout.cart.updated.v1 {
32
+ owner: "checkout-platform"
33
+ payload: "xtend.schemas.cartUpdated.v1"
34
+ direction: outbound
35
+ scope: lane critical -> shell.slot:sidebar.cart
36
+ }
37
+ ```
38
+
39
+ An event without clear scope is blocked or diagnosed in the E16 gate. This prevents the same implicit coupling pressure that makes micro-frontend systems hard to maintain without discipline.
40
+
41
+ ## Governance
42
+
43
+ The governance model checks:
44
+
45
+ - event owner and payload owner.
46
+ - cross-team events.
47
+ - delivery mode, TTL, `correlationId` and `idempotencyKey`.
48
+ - sensitivity and review obligations.
49
+ - degradation behavior for events from a blocked or degraded surface.
50
+
51
+ ## Gates
52
+
53
+ ```bash
54
+ node scripts/run_xtend_tests.js rmt-vnext-cross-surface-events --json
55
+ node scripts/run_xtend_tests.js rmt-vnext-event-governance --json
56
+ node scripts/run_xtend_tests.js rmt-vnext-enterprise-release --json
57
+ ```
58
+
59
+ The enterprise demo covers `checkout.cart.updated.v1` and `user.session.changed.v1` as typed, directed cross-surface events.
@@ -0,0 +1,62 @@
1
+ # RMT vNext Enterprise MFE Handoff
2
+
3
+ Epic 16 closes RMT vNext for enterprise MFE authoring with remote surfaces, surface discoverability, cross-surface events, security policies, versioning and graceful degradation.
4
+
5
+ ## Contract
6
+
7
+ ```js
8
+ schema: "xtend.rmt.vnext-enterprise-release-handoff.v1"
9
+ reportSchema: "xtend.rmt.vnext-enterprise-release-handoff-report.v1"
10
+ gateMatrixSchema: "xtend.rmt.vnext-enterprise-release-gate-matrix.v1"
11
+ targetReadiness: "rmt-vnext-enterprise-mfe-ready"
12
+ ```
13
+
14
+ ## Release Assets
15
+
16
+ - Authoring guide: `docs/rmt-vnext-remote-surfaces.md`
17
+ - Registry reference: `docs/rmt-vnext-surface-registry-enterprise.md`
18
+ - Event protocol reference: `docs/rmt-vnext-cross-surface-events.md`
19
+ - Operational handoff: `docs/rmt-vnext-enterprise-mfe-handoff.md`
20
+ - Demo source: `xtendrmt/rmt-vnext-enterprise-mfe-demo.rmt`
21
+ - Core output: `xtendrmt/rmt-vnext-enterprise-mfe-demo.core.json`
22
+ - Browser smoke: `tests/browser/fixtures/rmt-vnext-enterprise-mfe-smoke.html`
23
+ - Fixture matrix: `tests/rmt-language/fixtures/vnext-enterprise-mfe-fixture-matrix.json`
24
+
25
+ ## Release Gate Matrix
26
+
27
+ ```bash
28
+ node scripts/run_xtend_tests.js rmt-vnext-remote-manifest --json
29
+ node scripts/run_xtend_tests.js rmt-vnext-enterprise-registry --json
30
+ node scripts/run_xtend_tests.js rmt-vnext-degradation --json
31
+ node scripts/run_xtend_tests.js rmt-vnext-remote-security --json
32
+ node scripts/run_xtend_tests.js rmt-vnext-cross-surface-events --json
33
+ node scripts/run_xtend_tests.js rmt-vnext-event-governance --json
34
+ node scripts/run_xtend_tests.js rmt-vnext-remote-compiler --json
35
+ node scripts/run_xtend_tests.js rmt-vnext-remote-tooling --json
36
+ node scripts/run_xtend_tests.js rmt-vnext-remote-compatibility --json
37
+ node scripts/run_xtend_tests.js rmt-vnext-enterprise-fixtures --json
38
+ node scripts/run_xtend_tests.js rmt-vnext-enterprise-release --json
39
+ node scripts/run_xtend_tests.js references --json
40
+ node scripts/run_xtend_tests.js browser --json
41
+ ```
42
+
43
+ ## Operational Notes
44
+
45
+ - Remote surfaces remain contract artifacts. A productive runtime loader is follow-up work in the host or runtime adapter path.
46
+ - `surface.registry` makes ownership, active versions and shell bindings visible, but replaces no SurfaceManager.
47
+ - Cross-surface events need typed payloads, clear owners and explicit direction.
48
+ - Graceful degradation is mandatory. Systems without fallback or blocking model are not considered enterprise-ready.
49
+ - Migration from legacy surface facts remains `report-only` by default; preview is opt-in and described through `xtend.rmt.vnext-remote-surface-migration.v1`.
50
+
51
+ ## Accepted Residuals
52
+
53
+ - No productive remote runtime loader in the RMT kernel.
54
+ - No real network integration in local language-layer gates.
55
+ - No implicit global event-bus semantics.
56
+ - No public runtime claim for hosts that do not implement the contract yet.
57
+
58
+ The local closure gate is:
59
+
60
+ ```bash
61
+ node scripts/run_xtend_tests.js rmt-vnext-enterprise-release --json
62
+ ```
@@ -0,0 +1,64 @@
1
+ # RMT vNext Fabric Bridge Evidence
2
+
3
+ - Contract: `xtend.rmt.vnext.fabric-bridge-evidence.v1`
4
+ - Workpackage: `RMT-VNEXT-PRIM-05`
5
+ - Status: `completed`
6
+ - Source: Media Manager downstream transfer, `2026-05-19`
7
+
8
+ ## Goal
9
+
10
+ `RMT-VNEXT-PRIM-05` proves that vNext-authored primitives reach the Fabric runtime space without pulling Fabric or XTend host imports into the RMT kernel.
11
+
12
+ The gate is intentionally available as its own slice beside the source-to-sea gate. Source-to-sea checks the full object lifecycle into the browser; this gate checks the Fabric bridge itself:
13
+
14
+ ```text
15
+ vNext source
16
+ -> PRIM-04 kernel schedule/fiber
17
+ -> Fabric/RMT lane mapping
18
+ -> xtend.fabric.fiber.v1
19
+ -> xtend.fabric.telemetry-snapshot.v1
20
+ -> host adapter telemetry
21
+ -> route/component fiber instrumentation
22
+ -> browser-visible Fabric markers
23
+ ```
24
+
25
+ ## Evidence
26
+
27
+ The evidence is created by `createRmtVNextFabricBridgeEvidence(...)` and embedded into the fullstack report through `createRmtVNextSourceToSeaEvidence(...)`.
28
+
29
+ The PRIM-05 contract includes:
30
+
31
+ - `xtend.fabric.rmt-lane-mapping.v1` for translating RMT lanes into Fabric schedules;
32
+ - a primary `xtend.fabric.fiber.v1` from the PRIM-04 kernel fiber;
33
+ - a lane matrix for `user-blocking`, `transition`, `idle`, `background` and `diagnostics`;
34
+ - `xtend.component.lifecycle-telemetry.v1` from the XTend component host adapter;
35
+ - `component.mount`, `component.hydrate`, `route.navigate` and `route.render` from the productive Fabric fiber instrumentations;
36
+ - an `xtend.fabric.telemetry-snapshot.v1` that contains all expected schedule refs;
37
+ - browser markers for Fabric lane, Fabric fiber, Fabric schedule and host-adapter telemetry.
38
+
39
+ ## Gate Rules
40
+
41
+ The gate fails when:
42
+
43
+ - the Fabric/RMT lane resolution provides no mapping;
44
+ - the primary Fabric fiber is not completed;
45
+ - kernel schedule, kernel fiber and source pointer are not preserved in fiber metadata;
46
+ - one of the matrix lanes is missing or writes no telemetry schedule;
47
+ - host-adapter telemetry does not appear in the Fabric snapshot;
48
+ - route or component fiber does not come from the productive instrumentations;
49
+ - browser markers for lane, fiber, schedule or host telemetry are missing;
50
+ - the RMT kernel contains host or Fabric imports.
51
+
52
+ ## Local Gates
53
+
54
+ ```bash
55
+ node --check tools/rmt-language/vnext-source-to-sea.js
56
+ node --check tests/rmt-language/rmt_vnext_fabric_bridge_suite.js
57
+ node scripts/run_xtend_tests.js rmt-vnext-fabric-bridge --json
58
+ node scripts/run_xtend_tests.js rmt-vnext-source-to-sea --json
59
+ npm run test:rmt-vnext-primitives:report
60
+ ```
61
+
62
+ ## Handoff
63
+
64
+ `RMT-VNEXT-PRIM-05` is complete once this gate is green. `RMT-VNEXT-PRIM-06` keeps source-to-sea as optional browser evidence: browser execution can run locally or through manual CI dispatch and write the browser execution evidence as a release artifact.
@@ -0,0 +1,62 @@
1
+ # RMT vNext Migration Notes
2
+
3
+ - Contract: `xtend.rmt.vnext-release-handoff.v1`
4
+ - Compatibility contract: `xtend.rmt.vnext-compatibility-matrix.v1`
5
+ - Migration report: `xtend.rmt.vnext-migration-report.v1`
6
+ - Gate: `node scripts/run_xtend_tests.js rmt-vnext-compatibility --json`
7
+
8
+ RMT vNext is additive. Existing JSON-close `.rmt` and `.rmt.json` documents remain parseable and normalizable. New authoring files should use the vNext syntax and compile to `xtend.rmt.core-format.vnext.v1`.
9
+
10
+ ## Migration Mode
11
+
12
+ The default mode is `report-only`. It creates a migration report, checks the legacy roundtrip and shows boundary warnings, but does not automatically rewrite a file.
13
+
14
+ `preview` is opt-in and additionally creates a vNext authoring draft.
15
+
16
+ ```js
17
+ const {
18
+ createMigrationReport
19
+ } = require('./tools/rmt-language/vnext-compatibility');
20
+
21
+ const report = createMigrationReport({
22
+ text: source,
23
+ filePath: 'app.rmt'
24
+ }, {
25
+ migrationMode: 'preview'
26
+ });
27
+ ```
28
+
29
+ ## Compatible Warnings
30
+
31
+ These warnings do not block migration:
32
+
33
+ - `rmt.document.extension.fallback-used`
34
+ - `rmt.vnext.migration.opt_in_required`
35
+ - `rmt.vnext.migration.lossy_domain`
36
+
37
+ `lossy_domain` means: the legacy domain is semantically compatible, but cannot automatically be translated into source-stable vNext authoring. Examples include adapter contracts, complex templates or router metadata.
38
+
39
+ ## Hard Errors
40
+
41
+ These cases block the affected entry:
42
+
43
+ - Legacy JSON cannot be parsed.
44
+ - Legacy JSON cannot be normalized.
45
+ - vNext source does not compile.
46
+ - The semantic legacy roundtrip is not stable.
47
+
48
+ ## Recommended Migration
49
+
50
+ 1. Run `rmt-vnext-compatibility` against existing fixtures.
51
+ 2. Read reports with `migrationMode: "report-only"` and triage boundary warnings.
52
+ 3. Create `preview` for individual files.
53
+ 4. Manually review the preview draft and bring it to vNext authoring conventions.
54
+ 5. Run parser, compiler, regression and release gate.
55
+
56
+ ```bash
57
+ node scripts/run_xtend_tests.js rmt-vnext-compatibility rmt-vnext-regression rmt-vnext-release --json
58
+ ```
59
+
60
+ ## Handoff
61
+
62
+ This epic delivers syntax, compiler, tooling, compatibility, regression and release handoff. Productive runtime adapters for vNext Core and a formatter/writer belong in follow-up epics.
@@ -0,0 +1,174 @@
1
+ # RMT vNext Primitive Authoring Tooling
2
+
3
+ - Contract: `xtend.rmt.vnext.primitive-authoring-tooling.v1`
4
+ - Workpackage: `RMT-VNEXT-PRIM-07`
5
+ - Status: `completed`
6
+ - Source: Media Manager downstream transfer, `2026-05-19`
7
+
8
+ ## Goal
9
+
10
+ `RMT-VNEXT-PRIM-07` makes the new primitive syntax visible in the developer experience. App authors should not have to search legacy JSON for state, selectors, actions, events, surfaces, portals, overlays and resources: completions, hover, document symbols and snippets lead directly through RMT vNext.
11
+
12
+ ## Tooling Surface
13
+
14
+ The first PRIM-07 slice extends `tools/rmt-language/vnext-tooling.js`. The module now also indexes primitive domains from PRIM-04:
15
+
16
+ - `states`
17
+ - `selectors`
18
+ - `actions`
19
+ - `effects`
20
+ - `portals`
21
+ - `overlays`
22
+ - `resources`
23
+
24
+ Existing domains such as `surfaces`, `events` and `dataSources` remain available and are enriched for primitive records.
25
+
26
+ ## Completions
27
+
28
+ New completion contexts:
29
+
30
+ | Context | Purpose |
31
+ | --- | --- |
32
+ | `vnext-primitive-keywords` | top-level primitive keywords such as `state`, `selector`, `action`, `surface`, `resource` |
33
+ | `vnext-primitive-state-clauses` | `type`, `preserve`, `initial` |
34
+ | `vnext-primitive-selector-clauses` | `from state`, `where`, `find`, `sort by`, `output` |
35
+ | `vnext-primitive-action-clauses` | `input`, `reduce`, `effect fetch datasource`, `on success`, `on error`, `emit` |
36
+ | `vnext-primitive-surface-clauses` | `source selector`, `repeat from selector`, `key`, `portal`, `bounds`, `lane visible`, event and lifecycle clauses |
37
+ | `vnext-primitive-resource-kinds` | `object-url`, `stream`, `observer`, `timer`, `lazy-import` |
38
+ | `vnext-primitive-overlay-kinds` | `tooltip`, `toast`, `popover`, `lightbox`, `menu`, `dialog` |
39
+
40
+ When a pointer is inside a primitive domain, the tooling automatically chooses the matching context.
41
+
42
+ ### Cursor-Near Completion
43
+
44
+ The second PRIM-07 slice makes completion usable without an explicit `xtend.context`. `getRmtVNextToolingCompletions(...)` now accepts an LSP position, resolves the source-map pointer from it when possible, and evaluates the current line plus the partial word before the cursor.
45
+
46
+ Covered authoring cases:
47
+
48
+ - `state ... {` directly returns state clauses such as `initial`.
49
+ - `resource ... kind ` returns resource kinds such as `lazy-import`.
50
+ - Partial words in action blocks, for example `red`, prioritize action clauses such as `reduce`.
51
+
52
+ The language server forwards `textDocument/completion.position` to the vNext tooling. This gives editors primitive completions even when they do not set XTend-specific additional parameters.
53
+
54
+ ## Hover
55
+
56
+ Hover uses the PRIM-04 Core records and source maps. Examples:
57
+
58
+ - `State: media.records`
59
+ - `Action: media.select`
60
+ - `Resource: lightbox.import`
61
+
62
+ The hover output still contains Core pointers so editor, compiler and runtime evidence can trace the same primitive ID.
63
+
64
+ ## Document Symbols
65
+
66
+ Document symbols now contain primitive namespaces:
67
+
68
+ ```text
69
+ states
70
+ selectors
71
+ actions
72
+ portals
73
+ overlays
74
+ resources
75
+ surfaces
76
+ events
77
+ ```
78
+
79
+ This lets an editor navigate a granular app shell from the outline without opening legacy records.
80
+
81
+ ## Code Actions
82
+
83
+ The third PRIM-07 slice provides safe quick fixes for primitive diagnostics from `getRmtVNextToolingCodeActions(...)` and through `textDocument/codeAction` in the language server.
84
+
85
+ Supported first repairs:
86
+
87
+ - `rmt.vnext.primitive.owner-missing`: adds `owner surface.<id>` to a resource declaration when a surface exists in the document.
88
+ - `rmt.vnext.primitive.unkeyed-repeat`: adds `key instance.id` after a `repeat from selector` clause.
89
+ - `rmt.vnext.primitive.payload-contract-missing`: adds a payload contract for event bindings or `emit` statements.
90
+
91
+ The next slice extends these repairs for the most common authoring gaps:
92
+
93
+ - `rmt.vnext.primitive.initial-missing`: adds a safe initial value or a small `initial {}` block.
94
+ - `rmt.vnext.primitive.resource-kind-missing`: adds `kind object-url` as a conservative resource default.
95
+ - `rmt.vnext.primitive.unknown-reference` for selector references: creates a source-preserving selector stub from the first available state.
96
+ - `rmt.vnext.primitive.unknown-reference` for portal references: creates a portal stub with stable `root` and `layer surface`.
97
+
98
+ The action-authoring slice also adds:
99
+
100
+ - `rmt.vnext.primitive.action-reducer-missing`: adds a `reduce state.<id> = input.<name>` target before the action end.
101
+ - `rmt.vnext.primitive.effect-source-missing`: adds `datasource <id>` to an `effect fetch`.
102
+ - `rmt.vnext.primitive.kernel-boundary`: deliberately creates no text edit, but a command-action handoff so Kernel/Fabric imports are moved into a host adapter.
103
+
104
+ The actions are intentionally source-preserving text edits. They fix the obvious authoring gap and leave further semantic problems visible instead of synthetically rewriting whole primitive blocks.
105
+
106
+ ### Code-Action Previews and Fix-All
107
+
108
+ The next PRIM-07 slice makes the quick fixes more editor-friendly:
109
+
110
+ - Every code action carries an `xtend.rmt.vnext.primitive-code-action-preview.v1` preview with affected URIs, edit count, first changed source-line excerpt and before/after lines.
111
+ - Safe text-edit actions are additionally grouped into `source.fixAll.rmt.vnext.primitives`.
112
+ - Fix-All remains limited to actions with `safe: true` and `edit`.
113
+ Manual command handoffs such as `kernel-boundary` are not applied automatically.
114
+ - The language server forwards the preview in the `CodeAction.data.preview` field so editors can show a repair before applying the WorkspaceEdit.
115
+
116
+ ### Command Handoff
117
+
118
+ Manual boundary cases now also get a stable editor experience:
119
+
120
+ - The language server reports `executeCommandProvider.commands` with `xtend.rmt.vnext.extractKernelImport`.
121
+ - `workspace/executeCommand` creates an `xtend.rmt.vnext.primitive-command-handoff.v1` result for this command.
122
+ - The result remains `safe: false`, `edit: null` and `status: "manual_handoff"` because Kernel/Fabric imports must not be written automatically into RMT vNext source.
123
+ - The handoff names the boundary `no-kernel-fabric-imports-in-vnext-source` and lists the target location `xtend-rmt-host-adapter` so editors can show a clear manual apply path.
124
+
125
+ ### VS Code Bridge Apply Experience
126
+
127
+ The VS Code bridge now offers the first visible authoring experience for the three apply paths:
128
+
129
+ - `XTendRMT: Show vNext Primitive Apply Experience` renders an `xtend.rmt.editor.vscode-primitive-authoring-experience.v1` report in the Output Channel.
130
+ - `XTendRMT: Show vNext Primitive Code Action Preview` shows the preview excerpt of a single code action.
131
+ - `XTendRMT: Show vNext Primitive Command Handoff` shows manual boundary handoffs without WorkspaceEdit.
132
+
133
+ The bridge deliberately stays thin: it classifies actions already provided by the language server into `workspace-edit`, `fix-all` and `manual-command`, and makes these paths visible. The LSP remains the source of truth for diagnostics, preview and command handoff.
134
+
135
+ ### Active VS Code Document Integration
136
+
137
+ The final PRIM-07 slice connects the bridge to the active `.rmt` document:
138
+
139
+ - `createActiveDocumentPrimitiveAuthoringExperience(...)` reads the active document, starts the local RMT Language Server in-process and calls `textDocument/codeAction` against real LSP diagnostics.
140
+ - `XTendRMT: Show vNext Primitive Apply Experience` can build a QuickPick selection for preview, Fix-All and manual handoffs directly from the active document when no report is passed in.
141
+ - `applyPrimitiveAuthoringWorkspaceEdit(...)` applies only safe WorkspaceEdits. `kernel-boundary` actions remain blocked because they carry `edit: null` and must be moved into a host adapter.
142
+ - `XTendRMT: Apply Safe vNext Primitive Fix-All` applies only `source.fixAll.rmt.vnext.primitives`. If no safe Fix-All is available, the bridge renders the current apply report instead of blindly applying individual edits.
143
+
144
+ PRIM-07 is therefore no longer only an LSP/docs package: the editor bridge can select, preview and safely apply vNext primitive repairs from real source context, while boundary handoffs remain visible and manual.
145
+
146
+ ## Snippet
147
+
148
+ New snippet:
149
+
150
+ ```text
151
+ RMT vNext Primitive Shell
152
+ ```
153
+
154
+ Prefix:
155
+
156
+ ```text
157
+ rmt-vnext-primitive-shell
158
+ ```
159
+
160
+ The snippet creates a small app shell with state, selector, action, portal, surface, visible lane and event payload contract.
161
+
162
+ ## Local Gates
163
+
164
+ ```bash
165
+ node --check tools/rmt-language/vnext-tooling.js
166
+ node --check tests/rmt-language/rmt_vnext_tooling_suite.js
167
+ node -e "const suite=require('./tests/rmt-language/rmt_vnext_tooling_suite'); const result=suite.runRmtVNextToolingSuite({rootDir:process.cwd()}); process.exit(result.ok ? 0 : 1);"
168
+ ```
169
+
170
+ The global runner executes `rmt-vnext-tooling` and `rmt-editor-packaging` as release gates. The VS Code bridge is checked through `node scripts/run_xtend_tests.js rmt-editor-packaging --json` against active-document CodeActions, Safe Fix-All and blocked Kernel Boundary handoffs.
171
+
172
+ ## Next Handoff
173
+
174
+ `RMT-VNEXT-PRIM-07` is complete. Further editor work can build on this bridge, for example real LanguageClient packaging or UI-specific preview panels; the vNext primitive authoring path itself is release-gated.
@@ -0,0 +1,268 @@
1
+ # RMT vNext Primitive Grammar Design
2
+
3
+ - Contract: `xtend.rmt.vnext-primitive-grammar-design.v1`
4
+ - Workpackage: `RMT-VNEXT-PRIM-01`
5
+ - Status: `completed`
6
+ - Parent backlog: [RMT vNext Primitive Compiler Backlog](./rmt-vnext-primitives-compiler-backlog.md)
7
+ - Design fixture: `tests/rmt-language/fixtures/vnext-primitives-grammar-design.rmt`
8
+
9
+ ## Goal
10
+
11
+ This slice defines the vNext syntax used to author App Platform primitives directly in RMT. It is deliberately a grammar-design contract. Parser/AST implementation is complete in `RMT-VNEXT-PRIM-02`; the first semantic-graph layer started in `RMT-VNEXT-PRIM-03`. Compiler lowering follows in `RMT-VNEXT-PRIM-04`.
12
+
13
+ The syntax must move app authors out of legacy/JSON authoring. A normal app-shell developer should be able to declare state, selectors, actions, events, data sources, surfaces, overlays, portals and resources in a readable RMT vNext file.
14
+
15
+ ## Design Principles
16
+
17
+ - **vNext first:** The human-friendly DSL is the primary authoring surface. JSON remains compiler output or migration input.
18
+ - **Kernel-neutral:** Syntax can reference XTend components, but the RMT kernel imports no XTend, Fabric or browser modules.
19
+ - **App graph before runtime:** References, ownership, payload contracts and trust boundaries must be verifiable from the source graph.
20
+ - **Source-map capable:** Every primitive declaration needs a stable source range and a primitive ID.
21
+ - **Composable:** App shell, UI templates, state, events and resources may be declared separately, but must connect into one app graph.
22
+ - **Legacy in the background:** Classic Core/scaffold artifacts may still be targets, but developers should not have to edit them.
23
+
24
+ ## Top-Level Grammar
25
+
26
+ A vNext file can still use `import`, `template`, `surface` and `remote`. Primitive declarations are new. They are preferred inside a `template` block, but may also be authored at top level for reusable libraries.
27
+
28
+ ```rmt
29
+ template media.manager {
30
+ state media.records type MediaRecord[] initial []
31
+
32
+ selector media.filtered from state media.records {
33
+ where record.kind == state.media.filters.kind || state.media.filters.kind == "all"
34
+ sort by record.name asc
35
+ }
36
+
37
+ datasource media.index from endpoint "/api/media?pageSize=200" {
38
+ method GET
39
+ contract MediaIndex
40
+ result records
41
+ }
42
+
43
+ action media.select {
44
+ input mediaId string
45
+ reduce state.media.selection.activeId = input.mediaId
46
+ emit media.selected with mediaId input.mediaId
47
+ }
48
+
49
+ portal surface.root root "#media-manager-root" layer surface
50
+ overlay feedback.toast kind toast portal surface.root
51
+ resource player.stream kind stream owner surface.player source state.media.selection.activeId
52
+
53
+ surface media.explorer kind window component x-surface-window {
54
+ source selector media.filtered
55
+ key record.id
56
+ portal surface.root
57
+
58
+ lane visible weight 80 {
59
+ hydrate explorer-list from selector media.filtered
60
+ }
61
+
62
+ on click "[data-media-id]" -> action media.select {
63
+ payload mediaId from target.dataset.mediaId
64
+ }
65
+ }
66
+ }
67
+ ```
68
+
69
+ ## Primitive Forms
70
+
71
+ ### State
72
+
73
+ ```rmt
74
+ state media.filters type object preserve {
75
+ initial {
76
+ query ""
77
+ kind "all"
78
+ collection "all"
79
+ }
80
+ }
81
+ ```
82
+
83
+ Lowering target:
84
+
85
+ - `core.state[]`
86
+ - source-map entry with `primitiveType: "state"`
87
+ - optional XState bridge hint for host adapters
88
+
89
+ ### Selector
90
+
91
+ ```rmt
92
+ selector media.filtered from state media.records {
93
+ where record.kind == state.media.filters.kind || state.media.filters.kind == "all"
94
+ where contains(record.name, state.media.filters.query)
95
+ sort by record.name asc
96
+ output MediaRecord[]
97
+ }
98
+ ```
99
+
100
+ Restriction for PRIM-01: functions such as `contains()` are allowed as declarative selector operators, but not as arbitrary JS calls. PRIM-02 must model them as dedicated AST nodes.
101
+
102
+ Lowering target:
103
+
104
+ - `core.selectors[]`
105
+ - references to `core.state[]`
106
+ - diagnostic for unknown state or record paths
107
+
108
+ ### DataSource
109
+
110
+ ```rmt
111
+ datasource media.index from endpoint "/api/media?pageSize=200" {
112
+ method GET
113
+ contract MediaIndex
114
+ result records
115
+ fallback fixture media.fixture
116
+ }
117
+ ```
118
+
119
+ Lowering target:
120
+
121
+ - `core.dataSources[]`
122
+ - App Platform report domain `dataSources`
123
+ - optional SSR/fixture fallback
124
+
125
+ ### Action and Effect
126
+
127
+ ```rmt
128
+ action media.reindex {
129
+ status state.actionStatus.reindex
130
+ effect fetch datasource media.reindex
131
+ on success -> reduce state.media.records = result.records
132
+ on success -> emit media.index.loaded with count result.records.length
133
+ on error -> overlay feedback.toast message error.message tone "danger"
134
+ }
135
+ ```
136
+
137
+ Lowering target:
138
+
139
+ - `core.actions[]`
140
+ - `core.effects[]` or action-scoped `effects`
141
+ - event/feedback result routing
142
+ - resource ownership for async handles
143
+
144
+ ### Event Binding
145
+
146
+ ```rmt
147
+ on click "[data-command='scan']" -> action media.reindex {
148
+ preventDefault true
149
+ payload source from target.dataset.command
150
+ }
151
+
152
+ on xplayer-play target player.surface -> action media.playback.started {
153
+ payload mediaId from detail.mediaId
154
+ payload surfaceId from surface.id
155
+ }
156
+ ```
157
+
158
+ Lowering target:
159
+
160
+ - `core.events[]`
161
+ - payload contract
162
+ - DOM/custom event routing metadata
163
+ - source pointer for every payload mapping
164
+
165
+ ### Surface
166
+
167
+ ```rmt
168
+ surface media.player kind window component x-surface-window {
169
+ repeat from selector player.instances
170
+ key instance.surfaceId
171
+ portal surface.root
172
+ bounds x 920 y 96 width 760 height 500
173
+ preserve on minimize
174
+ destroy releases resource player.stream
175
+
176
+ lane visible weight 90 {
177
+ hydrate player-view from selector media.activeRecord
178
+ }
179
+ }
180
+ ```
181
+
182
+ Lowering target:
183
+
184
+ - `core.surfaces[]`
185
+ - `core.lanes[]`
186
+ - `core.operations[]`
187
+ - Surface Graph Runtime records
188
+ - keyed repeater diagnostics
189
+
190
+ ### Portal and Overlay
191
+
192
+ ```rmt
193
+ portal overlay.root root "body" layer overlay z 1000 {
194
+ focus policy restore
195
+ pointer policy passthrough
196
+ scroll policy lock-when-modal
197
+ }
198
+
199
+ overlay media.lightbox kind lightbox portal overlay.root {
200
+ escape close topmost
201
+ focus trap
202
+ resource lightbox.import
203
+ }
204
+ ```
205
+
206
+ Lowering target:
207
+
208
+ - `core.portals[]`
209
+ - `core.overlays[]`
210
+ - portal reference diagnostics
211
+ - overlay stack policy
212
+
213
+ ### Resource
214
+
215
+ ```rmt
216
+ resource lightbox.import kind lazy-import owner overlay.media.lightbox {
217
+ import "@ccslabs/xtend/components/xlightbox"
218
+ }
219
+
220
+ resource preview.objectUrl kind object-url owner surface.media.player {
221
+ source selector media.activeRecord
222
+ dispose on surface.destroy
223
+ }
224
+ ```
225
+
226
+ Lowering target:
227
+
228
+ - `core.resources[]`
229
+ - owner-scoped lifecycle records
230
+ - teardown diagnostics for ownerless resources
231
+
232
+ ## AST Node Names
233
+
234
+ PRIM-02 should produce at least these node types:
235
+
236
+ | Syntax | AST Node |
237
+ |--------|----------|
238
+ | `state` | `RmtStateDeclaration` |
239
+ | `selector` | `RmtSelectorDeclaration` |
240
+ | `datasource` | `RmtDataSourceDeclaration` |
241
+ | `action` | `RmtActionDeclaration` |
242
+ | `effect` | `RmtEffectStatement` |
243
+ | `on ... -> action ...` | `RmtEventBinding` with payload block |
244
+ | `surface ... kind ... component ...` | `RmtSurfaceDeclaration` with primitive metadata |
245
+ | `portal` | `RmtPortalDeclaration` |
246
+ | `overlay` | `RmtOverlayDeclaration` |
247
+ | `resource` | `RmtResourceDeclaration` |
248
+ | `template` primitive block | `RmtTemplateDeclaration.body[]` |
249
+
250
+ ## Minimum Diagnostic Scope
251
+
252
+ The grammar slice defines these error classes for PRIM-02/03:
253
+
254
+ | Code | Meaning |
255
+ |------|---------|
256
+ | `rmt.vnext.primitive.unknown-reference` | Primitive references an unknown state, selector, action, portal, resource or surface. |
257
+ | `rmt.vnext.primitive.owner-missing` | Resource or overlay has no stable owner. |
258
+ | `rmt.vnext.primitive.unkeyed-repeat` | Surface or template repeats records without `key`. |
259
+ | `rmt.vnext.primitive.payload-contract-missing` | Event binds an action without payload contract or mapping. |
260
+ | `rmt.vnext.primitive.unsafe-html` | Template uses HTML without Trusted DOM boundary. |
261
+ | `rmt.vnext.primitive.kernel-boundary` | Primitive requires a kernel import from XTend, Fabric or browser runtime. |
262
+
263
+ ## Acceptance for PRIM-01
264
+
265
+ - This document defines a coherent vNext syntax for all P0 primitive families.
266
+ - The fixture `tests/rmt-language/fixtures/vnext-primitives-grammar-design.rmt` shows the same syntax scope in a compact app shell.
267
+ - The backlog marks `RMT-VNEXT-PRIM-01` as `in_progress`.
268
+ - PRIM-02 can start directly with parser/AST work without reopening the syntax question.