@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,118 @@
1
+ # RMT PHP/Laravel SSR Adapter
2
+
3
+ The PHP SSR adapter is the Laravel-compatible host layer for RMT vNext. It is a
4
+ portable single-file PHP 8.1+ module at `xtendrmt/rmt-php-ssr-adapter.php`.
5
+ This first slice does not require Composer or a Laravel service provider.
6
+
7
+ Schema: `xtend.rmt.php-ssr-adapter.v1`
8
+
9
+ The adapter is wire-compatible with the
10
+ [RMT Node SSR Adapter](./rmt-node-ssr-adapter.md). Both backends emit the same
11
+ client-facing render result, hydration payload, RenderMan chunk, and JSONL
12
+ frame schemas: `xtend.rmt.node-ssr-render-result.v1`,
13
+ `xtend.rmt.node-ssr-hydration-payload.v1`, and
14
+ `xtend.rmt.node-ssr-jsonl-frame.v1`.
15
+
16
+ ## Role in the Stack
17
+
18
+ RMT describes the app. XTend Components remain the UI building blocks. The PHP
19
+ adapter serializes server-side Light DOM, capability markers, lazy import
20
+ hints, and hydration payloads without instantiating custom elements on the
21
+ server.
22
+
23
+ It intentionally avoids:
24
+
25
+ - server-side Shadow DOM rendering
26
+ - private component maps
27
+ - docs-app coupling
28
+ - a PHP RMT compiler
29
+ - implicit network access
30
+ - HTML output without a trust boundary
31
+
32
+ ## Public API
33
+
34
+ ```php
35
+ require __DIR__ . '/xtendrmt/rmt-php-ssr-adapter.php';
36
+
37
+ $adapter = createRmtPhpSsrAdapter([
38
+ 'manifest' => $manifest,
39
+ 'endpointHandlers' => [
40
+ 'ssr.hero' => fn () => [
41
+ 'html' => '<x-hero>Hero</x-hero>',
42
+ 'trustBoundary' => 'xtend.security.sanitizing-boundary.v1',
43
+ ],
44
+ ],
45
+ ]);
46
+
47
+ $result = $adapter->render(['coreDocument' => $coreDocument]);
48
+ ```
49
+
50
+ `render(...)` handles Core Documents, Prepared Templates, and DOM Descriptors
51
+ directly. `.rmt` source requires an injected `compileRmtVNextSource` host
52
+ bridge. Without that bridge the adapter reports
53
+ `rmt.php_ssr.compiler_required`.
54
+
55
+ ## Laravel Helpers
56
+
57
+ ```php
58
+ return $adapter->toLaravelResponse($result);
59
+
60
+ return $adapter->toLaravelStreamedResponse([
61
+ 'coreDocument' => $coreDocument,
62
+ ]);
63
+ ```
64
+
65
+ When Laravel or Symfony response classes are available, the adapter uses them.
66
+ Without the framework it degrades to plain arrays, so the same file works in
67
+ Laravel, smaller PHP hosts, and tests.
68
+
69
+ ## JSONL Streaming
70
+
71
+ `streamJsonl(...)` returns newline-delimited JSON with
72
+ `xtend.rmt.node-ssr-jsonl-frame.v1`. Supported frame types are `start`,
73
+ `component`, `html`, `hydration`, `diagnostic`, `complete`, and `error`.
74
+
75
+ Each frame carries the same fields as the Node adapter: `requestId`,
76
+ `sequence`, `operationId`, `variant`, `capability`, `lane`, `chunkKey`,
77
+ `payload`, and `diagnostics`. The XTend browser runtime does not need to know
78
+ whether Node or PHP/Laravel produced the stream.
79
+
80
+ ## Data Sources and Trust Boundaries
81
+
82
+ Server data must come through explicit host hooks:
83
+
84
+ - `resolveDataSource`
85
+ - `endpointHandlers`
86
+ - `staticDataSources`
87
+ - `fixtures`
88
+ - `fetchAdapter`
89
+ - `laravelContainerResolver`
90
+
91
+ HTML fragments need a boundary such as
92
+ `xtend.security.sanitizing-boundary.v1` or
93
+ `xtend.security.streaming-boundary.v1`. Unsafe URLs, event attributes,
94
+ `srcdoc`, and blocked tags are diagnosed and removed by the fallback sanitizer.
95
+ Production hosts can inject `sanitizeHtmlOutput`.
96
+
97
+ ## Docs App Integration
98
+
99
+ The Docs app now uses the adapter directly in `docs/index.php` for shell-first
100
+ prehydration.
101
+
102
+ - Contract: `xtend.docs.php-ssr-prehydration.v1`
103
+ - vNext source: `docs/xtendrmt-docs-shell-vnext.rmt`
104
+ - Compiler bridge: `scripts/compile_rmt_vnext_bridge.js`
105
+ - JSONL endpoint:
106
+ `index.php?xtend-docs-rmt-ssr=shell&format=jsonl&page={slug}&locale={locale}`
107
+
108
+ The host injects `compileRmtVNextSource` through the Node bridge. Parsedown
109
+ stays a host boundary and only fills the content slot, while the shell comes
110
+ from RMT primitives, hydration, and RenderMan chunks.
111
+
112
+ ## Gates
113
+
114
+ ```bash
115
+ npm run test:rmt-php-ssr-adapter
116
+ npm run test:docs-php-ssr-prehydration
117
+ node scripts/run_xtend_tests.js rmt-php-ssr-adapter --json
118
+ ```
@@ -0,0 +1,63 @@
1
+ # RMT Production Readiness
2
+
3
+ - Contract: `xtend.epic13.rmt-production-readiness.v1`
4
+ - Report: `xtend.epic13.rmt-production-readiness-report.v1`
5
+ - Workpackage: `WP-E13-09`
6
+ - Local gate: `node scripts/run_xtend_tests.js epic13-rmt-production-readiness --json`
7
+ - Package script: `npm run test:epic13-rmt-production-readiness`
8
+ - Publish boundary: `private-until-release-owner-acceptance`
9
+
10
+ ## Purpose
11
+
12
+ `WP-E13-09` bundles the RMT-first app path for RC1. The package brings the existing RMT gates together into a production-close interface: shell-first app shell, native RMT routes, XTend components through adapters, Fabric/lane ingestion, lifecycle telemetry, diagnostics and XTendRMT artifact parity.
13
+
14
+ The bundle adds no new app features. It makes visible that XTend apps can be templated completely in RMT while the RMT kernel remains framework-agnostic.
15
+
16
+ ## Source Gates
17
+
18
+ ```bash
19
+ npm run test:rmt-compatibility
20
+ npm run test:rmt-first-class-app
21
+ npm run test:rmt-first-demo-app
22
+ npm run test:rmt-artifact-parity
23
+ npm run test:rmt-component-fabric-ingestion
24
+ npm run test:rmt-component-lifecycle-telemetry
25
+ npm run test:epic13-visual-owner-artifact
26
+ ```
27
+
28
+ The local WP09 gate checks these source gates as a static RC1 bundle. It requires no network access and no external browser.
29
+
30
+ ## Readiness Domains
31
+
32
+ | Domain | Evidence |
33
+ | --- | --- |
34
+ | Shell-first app shell | `tests/fixtures/rmt-first-class-xtend-app.rmt`, `xtendrmt/rmt-first-demo-app.rmt` |
35
+ | Routing | `xtend.xrouter` adapter and RMT `routes` records |
36
+ | Components | `xtend.component` adapter and RMT `components` records |
37
+ | Fabric/Lane | `xtend.component.fabric-lane-ingestion.v2` |
38
+ | Lifecycle Telemetry | `xtend.component.lifecycle-telemetry.v1` |
39
+ | Diagnostics | `rmt.state-scheduler-diagnostics` and Fabric snapshots |
40
+ | Artifact Parity | `xtend.rmt.artifact-parity.v1` |
41
+ | Kernel Boundary | `no-rmt-kernel-import-of-xtend-types` |
42
+
43
+ ## Boundary
44
+
45
+ RMT owns app records, routes, schedules, templates and metadata. XTend execution remains in host adapters:
46
+
47
+ - XTend components are not imported into the RMT kernel.
48
+ - XRouter is connected through `xtend.xrouter`.
49
+ - Fabric/lane and telemetry signals are ingested, but not modeled as hard kernel dependencies.
50
+ - React, Vue, Vanilla and custom hosts can use their own adapters.
51
+
52
+ ## References
53
+
54
+ - [RMT-first XTend Apps](./rmt-first-xtend-apps.md)
55
+ - [RMT-first Demo App](./rmt-first-demo-app.md)
56
+ - [XTendRMT App DSL](./xtendrmt-app-dsl.md)
57
+ - [XTendRMT Native Authoring](./xtendrmt-native-authoring.md)
58
+ - [XTend-Fabric RMT Lane Mapping](./xtend-fabric-rmt-lane-mapping.md)
59
+ - [Visual Owner Artifacts](./visual-owner-artifacts.md)
60
+
61
+ ## Handoff
62
+
63
+ `WP-E13-09` is complete. `WP-E13-10` added [Docs RMT Production Hardening](./docs-rmt-production-hardening.md) and hardened the Docs app RMT Parsedown shell for production-close extensions. `WP-E13-11` completed [Trusted DOM Boundary Browser Proof](./trusted-dom-boundary-browser-proof.md) and `xtend.epic13.trusted-dom-boundary.v1`. `WP-E13-12` completed [RC1 Migration Notes](./rc1-migration-notes.md) and `xtend.epic13.rc1-migration-notes-semver.v1`. `WP-E13-13` completed [RC1 Gate Matrix and CI Handoff](./rc1-gate-matrix-ci-handoff.md) and `xtend.epic13.rc1-gate-matrix-ci-handoff.v1`.
@@ -0,0 +1,34 @@
1
+ # RMT State Selector Runtime
2
+
3
+ - Contract: `xtend.epic18.rmt-state-selector-runtime.v1`
4
+ - Fixture: `tests/fixtures/rmt-state-selector-runtime.rmt`
5
+ - Runtime: `xtendrmt/rmt-state-selector-runtime.js`
6
+ - Types: `xtendrmt/rmt-state-selector-runtime.d.ts`
7
+ - Local gate: `node scripts/run_xtend_tests.js rmt-state-selector-runtime --json`
8
+ - Workpackage: `WP-E18-07`
9
+
10
+ The State Selector Runtime makes app state declaratively usable for RMT templates. It defines typed state records, evaluates selectors and derived values, dispatches reducer commands and creates a render-context model for the DOM Descriptor Renderer from `WP-E18-05`/`WP-E18-06`.
11
+
12
+ ## Primitives
13
+
14
+ | Primitive | Purpose |
15
+ |-----------|---------|
16
+ | `state` | typed app states such as collection, selection, filter, UI and loading |
17
+ | `selector` | derived, reusable views on state, for example filtered lists |
18
+ | `derive` | individual derived values such as selection count or detail label |
19
+ | `reducer` | command-driven state changes without product-local mini-frameworks |
20
+ | `xstateBridge` | injected host bridge to `xstate`, without runtime import |
21
+ | `preservePatchPlan` | distinguishes structural rerenders from attribute/component-state sync |
22
+ | `stateBindings` | updates attributes, classes and properties of existing DOM nodes |
23
+
24
+ ## Preserve Rules
25
+
26
+ States with `preserve: "attribute-sync"` or `preserve: "component-state"` may preserve DOM islands. Selection or UI changes can therefore sync attributes such as `aria-selected`, classes such as `is-selected` or component properties without materializing lists again.
27
+
28
+ Structural selectors, for example `selector.filtered-items`, may request a rerender instead. Filter or collection changes therefore stay correct, while pure selection changes can preserve focus, scroll and component instances.
29
+
30
+ ## XState Boundary
31
+
32
+ The runtime does not import `xstate`. Host code can inject a compatible target with `set`, `setState`, `get`, `getState` or `subscribe`. The bridge mirrors state, selector and derived keys into that target, but also remains runnable with an internal snapshot.
33
+
34
+ `WP-E18-08` can build actions, effects, datasources and resource runtime on top of this.
@@ -0,0 +1,68 @@
1
+ # RMT Surface Resource Graph Runtime
2
+
3
+ - Contract: `xtend.epic18.rmt-surface-resource-graph-runtime.v1`
4
+ - Gate: `node scripts/run_xtend_tests.js rmt-surface-resource-graph-runtime --json`
5
+ - Workpackage: `WP-E18-10`
6
+ - Handoff: `WP-E18-11`
7
+
8
+ ## Goal
9
+
10
+ The Surface Resource Graph Runtime makes dynamic app layouts modelable in RMT as a generic platform capability. Developers can create their own surface models from arbitrary records, manage bounds and focus, stack overlays through portals and clean up instance-owned resources without writing a product-local registry or shell-specific repaint logic.
11
+
12
+ The Media Manager remains only a proof of need. The runtime knows no product surface list and imports no XTend components.
13
+
14
+ ## Keyed Surface Repeater
15
+
16
+ `surface` definitions can declare `source`, `repeat` and `key`. The runtime creates stable surface instances such as `surface.workspace:alpha` from this. When materializing again with the same keys, runtime state, bounds, focus order, resource status and persistence data are preserved.
17
+
18
+ Important operations:
19
+
20
+ - `materialize(recordsBySource)`: creates or reuses surface instances.
21
+ - `openSurface(id)`: opens an instance and acquires its resources.
22
+ - `minimizeSurface(id)`: minimizes without discarding DOM or resource state.
23
+ - `restoreSurface(id)`: restores bounds and open state.
24
+ - `closeSurface(id)`: closes by policy without necessarily destroying.
25
+ - `destroySurface(id)`: releases instance-owned resources and detaches the event owner.
26
+
27
+ ## Portal Layer Stack
28
+
29
+ Portals describe layer and policy boundaries for tooltips, toasts, popovers, lightboxes, menus, dialogs and other overlay kinds. `openOverlay` places overlay instances in their portal and assigns a stable stack order through `zIndexStart` and `zStep`. `closeTopOverlay` closes the topmost dismissible overlay entry per portal or globally.
30
+
31
+ The portal policy is generic:
32
+
33
+ - `stacked` for normal app surfaces.
34
+ - `modal` and `nonmodal` for blocking and non-blocking overlays.
35
+ - `toast-region` for feedback layers.
36
+ - `clipping-escape` for viewport-fixed layers such as tooltips.
37
+
38
+ ## Resource Ownership
39
+
40
+ Resources are injected through the WP-E18-08 Resource Manager. The surface runtime has no own adapters, but calls `acquireMany` and `releaseOwner` per surface or overlay instance.
41
+
42
+ This creates clear rules:
43
+
44
+ - Minimize preserves resources and component state.
45
+ - Close can optionally release resources.
46
+ - Destroy releases resources of the affected instance.
47
+ - Overlay close releases overlay resources.
48
+ - Destroying a surface additionally calls `eventRuntime.detachOwner(owner)`.
49
+
50
+ ## Persistence
51
+
52
+ `persistSnapshot` returns a snapshot with surface state, bounds, focus, open overlays and portal metadata. An optional persistence adapter can store this snapshot. `hydrateSnapshot` later plays it back into already materialized instances.
53
+
54
+ ## Boundaries
55
+
56
+ - No product surface taxonomy as framework default.
57
+ - No product-local registry repaint obligation.
58
+ - No XTend component imports in the RMT kernel.
59
+ - Normal UI stays with DOM descriptors and component templates; HTML string renderers remain a separate Trusted DOM boundary.
60
+
61
+ ## Gates
62
+
63
+ ```bash
64
+ node scripts/run_xtend_tests.js rmt-surface-resource-graph-runtime --json
65
+ node scripts/run_xtend_tests.js rmt-app-platform-authoring rmt-dom-descriptor-renderer rmt-component-template-primitives rmt-state-selector-runtime rmt-action-effect-runtime rmt-event-routing-runtime rmt-surface-resource-graph-runtime --json
66
+ ```
67
+
68
+ `WP-E18-11` builds on this with Scaffold, linter, LSP and diagnostics so surface, overlay, portal and resource graphs become visible and checkable already during authoring.
@@ -0,0 +1,77 @@
1
+ # RMT Tooling Release Gates
2
+
3
+ - Status: productively prepared as of `WP-E14-15`
4
+ - Contract: `xtend.epic14.rmt-tooling.v1`
5
+ - Gate record contract: `xtend.epic14.rmt-tooling-gate.record.v1`
6
+ - Report contract: `xtend.epic14.rmt-tooling-report.v1`
7
+ - Local gate: `node scripts/run_xtend_tests.js epic14-rmt-tooling --json`
8
+
9
+ ## Purpose
10
+
11
+ The RMT Tooling Gates bundle the native `.rmt` authoring path for pull requests, release candidates and AI agents. They do not check the RMT runtime, but the language layer: source model, parser, semantic graph, linter, CLI, completion, navigation, LSP, code actions, agent report, editor packaging, regression fixtures and documentation.
12
+
13
+ ## Commands
14
+
15
+ ```bash
16
+ npm run test:rmt-linter
17
+ npm run test:rmt-language-server
18
+ npm run test:pr:rmt
19
+ npm run test:pr:rmt:report
20
+ npm run test:rmt-tooling
21
+ npm run test:rmt-tooling:report
22
+ node scripts/run_xtend_tests.js epic14-rmt-tooling --json
23
+ ```
24
+
25
+ `npm run test:pr:rmt` is an optional add-on gate for RMT-close pull requests. The global PR gate stays lean, but can be extended specifically for DSL, linter, LSP or agent-report changes.
26
+
27
+ `npm run test:rmt-tooling` is the release bundle gate for Epic 14. It runs without network access and uses only repo-local fixtures, docs and tooling modules.
28
+
29
+ ## Release Bundle
30
+
31
+ The release bundle covers:
32
+
33
+ - `rmt-source-model`
34
+ - `rmt-parser`
35
+ - `rmt-semantic-graph`
36
+ - `rmt-linter-rules`
37
+ - `rmt-linter-cli`
38
+ - `rmt-completions`
39
+ - `rmt-navigation`
40
+ - `rmt-language-server`
41
+ - `rmt-code-actions`
42
+ - `rmt-agent-report`
43
+ - `rmt-editor-packaging`
44
+ - `rmt-language-regression`
45
+ - `rmt-tooling-docs`
46
+
47
+ ## Package Surface
48
+
49
+ The package surface for RMT tooling is exported through `package.json`. Especially relevant for tooling consumers are:
50
+
51
+ - `xtend/rmt-language/source-model`
52
+ - `xtend/rmt-language/parser`
53
+ - `xtend/rmt-language/diagnostics`
54
+ - `xtend/rmt-language/completions`
55
+ - `xtend/rmt-language/code-actions`
56
+ - `xtend/rmt-language-server`
57
+ - `xtend/rmt-linter/cli`
58
+ - `xtend/rmt-linter/reporter`
59
+ - `xtend/rmt-language/snippets`
60
+
61
+ The gate `epic14-rmt-tooling` checks that this surface does not drift unnoticed and that `xtend.epic14RmtTooling` contains the active scripts, suites and handoff metadata.
62
+
63
+ ## CI Handoff
64
+
65
+ The global full release line remains:
66
+
67
+ ```bash
68
+ npm run test:release:full:report
69
+ ```
70
+
71
+ RMT Tooling is additionally registered as its own release gate in `xtend.releaseGates`:
72
+
73
+ ```bash
74
+ npm run test:rmt-tooling
75
+ ```
76
+
77
+ This lets release owners, CI systems and AI agents prove the RMT language tools separately without coupling the RMT kernel to XTend runtime types.
@@ -0,0 +1,102 @@
1
+ # RMT vNext Authoring Guide
2
+
3
+ - Contract: `xtend.rmt.vnext-release-handoff.v1`
4
+ - Syntax Contract: `xtend.rmt.vnext.grammar.v1`
5
+ - Core Output: `xtend.rmt.core-format.vnext.v1`
6
+
7
+ RMT vNext is the human-friendly syntax for XTend apps. You can write a complete UI shell in RMT: state, selectors, data sources, actions, events, portals, overlays, resources, surfaces, and Fabric lanes live in a single `.rmt` source and compile deterministically into Core and kernel records.
8
+
9
+ ## Basic Shape
10
+
11
+ ```rmt
12
+ template media.manager {
13
+ state selectedItem type object initial null
14
+
15
+ selector visibleItems from datasource library {
16
+ output card-list
17
+ }
18
+
19
+ datasource library from fixture records.media-items {
20
+ contract "media.item.v1[]"
21
+ }
22
+
23
+ action select-item {
24
+ input id string
25
+ reduce state.selectedItem = input.id
26
+ emit media.item.selected with action select-item
27
+ }
28
+
29
+ portal app root "#app-root" layer surface
30
+
31
+ surface library kind workspace component x-cards {
32
+ repeat from selector visibleItems
33
+ key item.id
34
+ portal app
35
+
36
+ lane visible weight 80 {
37
+ hydrate x-cards from selector visibleItems
38
+ }
39
+
40
+ on card-click target item -> action select-item {
41
+ payload id from item.id
42
+ }
43
+ }
44
+ }
45
+ ```
46
+
47
+ ## App Shell Only in RMT
48
+
49
+ A vNext app should not split itself across RMT, App Platform JSON, and host code. RMT is the authoring place for route and shell structure, visible surfaces, overlay portals, state, selectors, actions, event payloads, resource ownership, cleanup, and Fabric lanes.
50
+
51
+ The host provides components, router, browser APIs, and external data. This boundary keeps the kernel framework-neutral while still making the app fully describable.
52
+
53
+ ## XTend UI Compatibility
54
+
55
+ RMT vNext Component Primitives target the existing XTend component stack. A
56
+ surface such as `component x-select` lowers to a DOM descriptor and is then
57
+ resolved through the Component Capability Registry, not through a product-
58
+ specific renderer. The registry reads `components/manifest.json`,
59
+ `xtendComponentContract`, `xtendRmtMetadata`, public events,
60
+ `observedAttributes`, slots, parts, form association, accessibility profiles,
61
+ and performance profiles.
62
+
63
+ That gives RMT access to all 44 public manifest entries while keeping 40
64
+ renderable UI components on their normal Web Component lifecycle. Infrastructure
65
+ modules such as `x-theme` and `xstate` remain host services, not normal surface
66
+ elements. Product code should bind through public attributes, properties,
67
+ events, parts, slots, and state bridges instead of patching `shadowRoot` or
68
+ private component maps.
69
+
70
+ See [RMT vNext Component Primitives and XTend UI](./rmt-vnext-component-primitives.md).
71
+
72
+ ## Editor DX
73
+
74
+ The Language Server understands vNext primitives directly:
75
+
76
+ - completions for primitive keywords and clause-aware suggestions
77
+ - hover with Core pointer and primitive information
78
+ - document symbols for `states`, `selectors`, `actions`, `surfaces`, `portals`, `overlays`, and `resources`
79
+ - code actions for safe repairs
80
+ - safe fix-all for `source.fixAll.rmt.vnext.primitives`
81
+ - manual handoffs for kernel and host boundaries
82
+
83
+ The `rmt-vnext-primitive-shell` snippet creates a small app shell with state, selector, action, portal, surface, lane, and event payload contract.
84
+
85
+ ## Local Checks
86
+
87
+ ```bash
88
+ node scripts/run_xtend_tests.js rmt-vnext-parser rmt-vnext-compiler rmt-vnext-tooling --json
89
+ node scripts/run_xtend_tests.js rmt-vnext-compatibility --json
90
+ node scripts/run_xtend_tests.js rmt-vnext-component-primitives --json
91
+ node scripts/run_xtend_tests.js rmt-vnext-release --json
92
+ ```
93
+
94
+ ## Boundaries
95
+
96
+ - RMT vNext does not execute host runtime inside the kernel.
97
+ - Conditions are declarative and allow no function calls.
98
+ - Imports are static and stay package-root-bound.
99
+ - Legacy JSON remains compatible, but it is not the preferred authoring path.
100
+ - XTend, XRouter, DOM, and browser details belong in adapters.
101
+ - XTend Component integration goes through public contracts and the Component
102
+ Capability Registry, not direct kernel imports or Shadow-DOM monkeypatching.
@@ -0,0 +1,185 @@
1
+ # RMT vNext Component Primitives and XTend UI
2
+
3
+ - Schema: `xtend.rmt.component-capability-registry.v1`
4
+ - Report schema: `xtend.rmt.component-capability-registry-report.v1`
5
+ - Runtime: `xtendrmt/rmt-component-capability-registry.js`
6
+ - Export: `@ccslabs/xtend/rmt/component-capability-registry`
7
+ - Local gate: `node scripts/run_xtend_tests.js rmt-vnext-component-primitives --json`
8
+ - Aggregate gate: `npm run test:rmt-vnext-primitives:report`
9
+
10
+ RMT vNext and XTend UI are not parallel stacks. The Component Primitives connect
11
+ RMT templates, kernel records, the DOM Descriptor Renderer, and the public XTend
12
+ Web Components through one capability registry. RMT describes shell, state,
13
+ surfaces, events, and lifecycle intent; XTend Components provide the concrete UI
14
+ building blocks, accessibility profiles, parts, slots, events, and performance
15
+ profiles.
16
+
17
+ ## Source-to-Sea Flow
18
+
19
+ ```text
20
+ .rmt template
21
+ -> RMT compiler and Core records
22
+ -> Kernel records and Fabric lanes
23
+ -> DOM Descriptor Renderer
24
+ -> Component Capability Registry
25
+ -> XTend Component from components/manifest.json
26
+ -> Browser DOM and component lifecycle
27
+ ```
28
+
29
+ The RMT kernel does not import XTend components or XTend types. The registry
30
+ reads the manifest, Component Contracts, `xtendRmtMetadata`,
31
+ `observedAttributes`, events, slots, parts, form association, accessibility
32
+ profiles, and performance profiles. It normalizes those signals into one matrix
33
+ for all 44 public entries in `components/manifest.json`.
34
+
35
+ ## Matrix
36
+
37
+ | Area | Coverage |
38
+ | --- | --- |
39
+ | Manifest entries | 44 |
40
+ | Renderable public UI components | 40 |
41
+ | Non-visual special cases | 4 |
42
+ | RMT metadata | 42 entries |
43
+ | Component Contracts | 40 entries |
44
+ | Form-associated components | 6 |
45
+
46
+ The non-visual special cases are `x-theme`, `xstate`, `x-utils`, and
47
+ `x-rmt-lifecycle-demo-build`. `x-theme` and `xstate` are infrastructure
48
+ modules; hosts and loaders consume them as services, but normal RMT app UI does
49
+ not render them as surface elements. `x-utils` remains a utility module, and
50
+ the lifecycle demo build remains a demo artifact.
51
+
52
+ ## Component Families
53
+
54
+ | Family | Tags |
55
+ | --- | --- |
56
+ | Form | `x-calendar`, `x-checkbox`, `x-form`, `x-input`, `x-radio`, `x-select`, `x-textarea` |
57
+ | Navigation | `x-router`, `x-link`, `x-menu`, `x-drawer` |
58
+ | Overlay/Surface | `x-dialog`, `x-lightbox`, `x-modal`, `x-popover`, `x-side-panel`, `x-surface-manager`, `x-surface-window`, `x-toast`, `x-tooltip` |
59
+ | Media/Feedback/Layout | `x-alert`, `x-button`, `x-cards`, `x-code`, `x-icon`, `x-masonry`, `x-player`, `x-progress`, `x-spinner`, `x-status`, `x-summary`, `x-type`, `x-writer` |
60
+ | Theme/Layout | `x-footer`, `x-header`, `x-hero`, `x-section`, `x-tabs` |
61
+ | Infrastructure | `x-theme`, `xstate`, `x-utils`, `x-rmt-lifecycle-demo-build` |
62
+
63
+ The higher-risk families `form`, `navigation`, `overlay-surface`,
64
+ `media-feedback-layout`, and `theme-layout` stay marked for representative
65
+ browser smokes. The default gate verifies the broad matrix in a fake-DOM runtime
66
+ and keeps browser flakiness out of the fast primitive gate.
67
+
68
+ ## Runtime API
69
+
70
+ ```js
71
+ import {
72
+ createRmtComponentCapabilityRegistry
73
+ } from '@ccslabs/xtend/rmt/component-capability-registry';
74
+ import {
75
+ createRmtDomDescriptorRenderer
76
+ } from '@ccslabs/xtend/rmt/dom-descriptor-renderer';
77
+
78
+ const registry = createRmtComponentCapabilityRegistry({
79
+ manifest,
80
+ sourceTexts,
81
+ importer: async (modulePath) => import(`/components/${modulePath.replace(/^\.\//u, '')}`)
82
+ });
83
+
84
+ const descriptor = registry.buildComponentDescriptor({
85
+ tag: 'x-select',
86
+ id: 'plan-select',
87
+ key: 'settings:plan',
88
+ attributes: {
89
+ name: 'plan',
90
+ value: 'pro'
91
+ },
92
+ slots: {
93
+ label: { text: 'Plan' }
94
+ },
95
+ events: {
96
+ 'select-changed': 'settings.plan.changed'
97
+ }
98
+ });
99
+
100
+ const renderer = createRmtDomDescriptorRenderer({ documentTarget: document });
101
+
102
+ renderer.renderKeyed(root, [descriptor], {
103
+ componentRegistry: registry,
104
+ dispatchEvent(event) {
105
+ actions.dispatch(event.action, event.payload);
106
+ },
107
+ stateBridge: {
108
+ read(key) {
109
+ return state.read(key);
110
+ },
111
+ write(key, value) {
112
+ state.write(key, value);
113
+ }
114
+ }
115
+ });
116
+ ```
117
+
118
+ Key registry functions:
119
+
120
+ | Function | Purpose |
121
+ | --- | --- |
122
+ | `resolveComponentCapability(tag)` | Returns normalized capabilities for a manifest tag. |
123
+ | `listCapabilities(filter)` | Lists capabilities by family or visual kind. |
124
+ | `buildComponentDescriptor(input)` | Builds a DOM descriptor for an XTend component with capability markers. |
125
+ | `bindComponentInstance(element, binding, options)` | Connects events, form state, and the state bridge through public DOM APIs. |
126
+ | `ensureComponentLoaded(tag, options)` | Runs lazy import through an explicit importer. |
127
+ | `createMatrixReport()` | Creates the compatibility report for CI and local diagnosis. |
128
+
129
+ ## Event and State Bridge
130
+
131
+ Form controls provide `value`, `checked`, `validity`, `dataset`, and file
132
+ metadata in the safe payload record `xtend.rmt.component-event-payload.v1`.
133
+ For form families, `input` and `change` are inferred when no explicit event
134
+ binding is present.
135
+
136
+ Navigation, overlays, feedback, and layout components are also connected through
137
+ public events and properties. Product code does not need to reach into
138
+ `shadowRoot`, read private component maps, or add component-specific renderers.
139
+
140
+ ## Renderer Integration
141
+
142
+ The DOM Descriptor Renderer accepts `componentRegistry` in `render(...)` and
143
+ `renderKeyed(...)`. For `type: "component"`, the registry normalizes tag,
144
+ attributes, properties, slots, parts, and event bindings. Keyed reuse remains
145
+ intact, and unkeyed repeat UI remains diagnosable.
146
+
147
+ Normal RMT app UI does not use HTML sinks. `innerHTML`, `outerHTML`,
148
+ `insertAdjacentHTML`, `document.write`, `createContextualFragment`, unsafe URLs,
149
+ and inline event sinks stay blocked by the No-Manual-HTML gate and the Trusted
150
+ DOM Boundary.
151
+
152
+ ## Architecture Rules
153
+
154
+ - Component Contracts remain the source of truth.
155
+ - RMT extends XTend UI through metadata and runtime bridges, not monkeypatching.
156
+ - Lazy import runs only through the manifest and explicit importers.
157
+ - The RMT kernel stays framework-neutral and imports no XTend types.
158
+ - Overlays, surfaces, and portals need resource ownership and cleanup.
159
+ - `x-player` uses the public Player Contract for play/pause, state bridge,
160
+ theme tokens, and parts; product code does not patch Shadow DOM.
161
+ - Infrastructure modules such as `x-theme` and `xstate` are consumed as
162
+ services, not rendered as normal surface elements.
163
+
164
+ ## Gates
165
+
166
+ ```bash
167
+ node scripts/run_xtend_tests.js rmt-vnext-component-primitives --json
168
+ npm run test:rmt-vnext-primitives:report
169
+ node scripts/run_xtend_tests.js component-ux-browser-smokes --json
170
+ node scripts/run_xtend_tests.js type-exports-rmt --json
171
+ ```
172
+
173
+ The fast primitive gate verifies the registry, matrix, renderer binding,
174
+ package exports, type declarations, lazy import, state roundtrip, and negative
175
+ boundaries against Shadow-DOM patches, manual HTML sinks, and direct component
176
+ imports.
177
+
178
+ ## Related Docs
179
+
180
+ - [RMT vNext Authoring Guide](./rmt-vnext-authoring.md)
181
+ - [RMT DOM Descriptor Renderer](./rmt-dom-descriptor-renderer.md)
182
+ - [RMT Component Template Primitives](./rmt-component-template-primitives.md)
183
+ - [XTend Components](./components.md)
184
+ - [Component Platform](./component-platform.md)
185
+ - [XTend-Fabric RMT Lane Mapping](./xtend-fabric-rmt-lane-mapping.md)