@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,75 @@
1
+ # RMT App Platform Migration Guide
2
+
3
+ This guide describes the path from external host helpers such as `root.innerHTML`, product-bound surface lists or local registry repaints to native RMT App Platform primitives.
4
+
5
+ ## Target State
6
+
7
+ - New UI is described in RMT vNext; DOM Descriptor, App Platform JSON and component records are generated output or compatibility mirrors.
8
+ - State, selectors and derived values live in the RMT State Selector Runtime.
9
+ - Interactions run through declarative events and actions.
10
+ - Datasources remain interchangeable: `fixture`, `rest`, `ssr` and `host`.
11
+ - Surfaces, overlays, portals and resources are materialized and cleaned up through the Surface Resource Graph.
12
+
13
+ ```rmt
14
+ template migration.catalog {
15
+ state records type collection initial []
16
+
17
+ selector visibleRecords from state records {
18
+ output CatalogRecord[]
19
+ }
20
+
21
+ datasource catalog from fixture records.generic-items {
22
+ contract CatalogRecord[]
23
+ }
24
+
25
+ action load-records {
26
+ effect fetch datasource catalog
27
+ on success -> reduce state.records = result.records
28
+ }
29
+
30
+ portal surface.root root "#app-root" layer surface
31
+
32
+ surface catalog.board kind workspace component x-cards {
33
+ repeat from selector visibleRecords
34
+ key record.id
35
+ portal surface.root
36
+
37
+ lane visible weight 80 {
38
+ hydrate catalog-cards from selector visibleRecords
39
+ }
40
+
41
+ on card-click target item -> action load-records {
42
+ payload source from target.dataset.source
43
+ }
44
+ }
45
+ }
46
+ ```
47
+
48
+ ## Migration
49
+
50
+ 1. Identify external HTML host renderers.
51
+ Search for `innerHTML`, `outerHTML`, `insertAdjacentHTML` and `document.write`.
52
+ 2. Move shell structure to RMT vNext.
53
+ Normal app UI uses `template`, `surface`, `portal`, `lane`, `hydrate` and events; `mode: "dom_descriptor"` appears only in output.
54
+ 3. Decouple product lists.
55
+ Instead of a fixed record class, use configurable record contracts with stable IDs and keys.
56
+ 4. Declare interactions.
57
+ DOM or custom events receive `payloadContract` and route to actions.
58
+ 5. Keep datasources interchangeable.
59
+ Local fixture data, SSR bootstrap, REST search and host mutation share the same action path.
60
+ 6. Check surface lifecycle.
61
+ Every surface with `resource` entries needs an owner, overlays run through portals, and destroy/close must release resources.
62
+ 7. Create scaffold evidence.
63
+ The RMT App Platform Builder writes diagnostics, source map and build report.
64
+
65
+ ## Reference
66
+
67
+ The reference fixture is located at `tests/fixtures/rmt-app-platform-fixture.rmt` and proves `generic-catalog`, `admin-queue` and `content-board` with the same primitives.
68
+
69
+ ```bash
70
+ node scripts/run_xtend_tests.js rmt-app-platform-fixture --json
71
+ ```
72
+
73
+ ## Boundary
74
+
75
+ Trusted HTML remains an explicit special case with Trusted DOM boundary. Normal app UI must not use HTML strings as the render path.
@@ -0,0 +1,58 @@
1
+ # RMT App Platform Tooling
2
+
3
+ - Contract: `xtend.epic18.rmt-app-platform-tooling.v1`
4
+ - Gate: `node scripts/run_xtend_tests.js rmt-app-platform-tooling --json`
5
+ - Workpackage: `WP-E18-11`
6
+ - Handoff: `WP-E18-12`
7
+
8
+ ## Goal
9
+
10
+ RMT app sources are now checkable and buildable before runtime. The tooling creates diagnostics, source maps and scaffold reports for generic App Platform primitives such as surfaces, overlays, portals, resources, actions, events, datasources and state.
11
+
12
+ The slice is intentionally not a Media Manager shell. It provides tools that let developers create their own app structures natively in XTend/RMT without product-side `innerHTML` renderers or custom mini-frameworks.
13
+
14
+ ## Diagnostics
15
+
16
+ The App Platform linter blocks typical late runtime errors already during authoring:
17
+
18
+ - `rmt.app.no-manual-shell.html-sink` for `innerHTML`, `outerHTML`, `insertAdjacentHTML` or `document.write` in normal app UI.
19
+ - `rmt.app.unsafe-html.boundary-missing` for HTML fragments without explicit Trusted DOM boundary.
20
+ - `rmt.app.repeat.key.missing` for repeated surfaces without stable key.
21
+ - `rmt.app.event.payload-contract.missing` for events with action target but without payload contract.
22
+ - `rmt.app.resource.ownership.missing` for resources without clear owner.
23
+ - `rmt.app.resource.unresolved`, `rmt.app.portal.unresolved` and `rmt.app.surface.source.unresolved` for faulty app graph references.
24
+
25
+ The rules run as a dedicated App Platform policy rule in the existing RMT linter and as a direct analyzer in `./rmt-language/app-platform-tooling`.
26
+
27
+ ## LSP
28
+
29
+ Completion and hover understand the new primitives:
30
+
31
+ - portal IDs and portal policies such as `stacked`, `toast-region` and `clipping-escape`
32
+ - overlay kinds such as `tooltip`, `toast`, `popover`, `lightbox`, `menu` and `dialog`
33
+ - resource kinds such as `object-url`, `stream`, `observer`, `timer` and `lazy-import`
34
+ - event kinds and surface initial states
35
+
36
+ App authors can therefore edit RMT documents without a product surface taxonomy and without external helper lists.
37
+
38
+ ## Scaffold Build
39
+
40
+ The builder registers the command `rmt-app-platform`. It reads a `.rmt` app source and creates under `.xtend-build`:
41
+
42
+ - `*.app-platform-diagnostics.json`
43
+ - `*.app-platform-source-map.json`
44
+ - `*.app-platform-build.json`
45
+
46
+ The artifacts run through the Epic 17 WritePlan and carry scaffold ownership. `--check` can therefore verify whether local build artifacts are current.
47
+
48
+ ```bash
49
+ node scripts/run_xtend_tests.js rmt-app-platform-tooling --json
50
+ node xtend-builder/lib/cli.js rmt-app-platform --source tests/fixtures/rmt-app-platform-tooling.rmt
51
+ ```
52
+
53
+ ## Boundaries
54
+
55
+ - No product surface list and no Media Manager-specific registry repaint.
56
+ - No normal UI HTML sinks outside a Trusted DOM boundary.
57
+ - No imports from XTend components into the RMT kernel.
58
+ - The tooling builds reports, diagnostics and source maps; the production-close generic app fixture follows in `WP-E18-12`.
@@ -0,0 +1,49 @@
1
+ # RMT Component Template Primitives
2
+
3
+ - Contract: `xtend.epic18.rmt-component-template-primitives.v1`
4
+ - Fixture: `tests/fixtures/rmt-component-template-primitives.rmt`
5
+ - Runtime base: `xtendrmt/rmt-dom-descriptor-renderer.js`
6
+ - Local gate: `node scripts/run_xtend_tests.js rmt-component-template-primitives --json`
7
+ - Workpackage: `WP-E18-06`
8
+ - Handoff: `WP-E18-07`
9
+
10
+ RMT can now compose XTend components natively without host apps assembling HTML strings. This slice extends the DOM Descriptor Renderer with component-close primitives for app shells, lists, forms, tooltips, icons, empty states and error states.
11
+
12
+ ## Primitives
13
+
14
+ | Primitive | Purpose |
15
+ |-----------|---------|
16
+ | `component` | Resolves a component ID to a custom element such as `x-section`, `x-card`, `x-tooltip` or arbitrary developer tags. |
17
+ | `props` | Sets safe DOM properties and mirrors primitive values as attributes. |
18
+ | `attributes` | Sets safe attributes without inline-event or URL sinks. |
19
+ | `parts` | Writes CSS parts for themeable components. |
20
+ | `slots` | Fills slots with text, templates, components or fragments. |
21
+ | `text` | Creates text nodes through `createTextNode`. |
22
+ | `when` | Renders conditional subtrees. |
23
+ | `repeat` | Renders lists and uses `key` for stable nodes. |
24
+ | `empty` | Renders an explicit empty state. |
25
+ | `fallback` | Renders declarative fallback content. |
26
+ | `key` | Marks reusable list elements with `data-rmt-key`. |
27
+ | `ref` | Writes `data-rmt-ref` and stores the element reference in `refs`. |
28
+ | `class` | Maps classes from strings, arrays or conditional objects. |
29
+ | `style-token` | Mirrors design tokens as `data-style-token-*` and `--xtend-*`. |
30
+
31
+ ## Component Families
32
+
33
+ The fixture proves generic families instead of product surfaces: icons, tooltips, form controls (`x-input`, `x-select`, `x-checkbox`), navigation, lists, selection, empty state, error state and free custom elements. Components remain developer-defined; RMT only knows descriptors and adapter capabilities.
34
+
35
+ ## Component Capability Registry
36
+
37
+ The vNext layer connects these primitives to the full XTend component stack
38
+ through `xtendrmt/rmt-component-capability-registry.js`. The registry
39
+ normalizes all 44 public manifest entries, classifies 40 renderable UI
40
+ components, and connects Component Contracts, `xtendRmtMetadata`,
41
+ `observedAttributes`, events, slots, parts, form state, and lazy import with the
42
+ generic DOM descriptors.
43
+
44
+ That keeps `component`, `props`, `attributes`, `parts`, `slots`, `repeat`, and
45
+ `key` as the same primitives, but gives them a stack-wide compatibility matrix.
46
+ Product code does not need Shadow-DOM patches, private component maps, or
47
+ component-specific renderers.
48
+
49
+ See [RMT vNext Component Primitives and XTend UI](./rmt-vnext-component-primitives.md).
@@ -0,0 +1,54 @@
1
+ # RMT DOM Descriptor Renderer
2
+
3
+ - Contract: `xtend.epic18.rmt-dom-descriptor-renderer.v1`
4
+ - Fixture: `tests/fixtures/rmt-dom-descriptor-renderer.rmt`
5
+ - Runtime: `xtendrmt/rmt-dom-descriptor-renderer.js`
6
+ - Local gate: `node scripts/run_xtend_tests.js rmt-dom-descriptor-renderer --json`
7
+ - Workpackage: `WP-E18-05`
8
+
9
+ The renderer implements the `WP-E18-04` authoring model as a generic app platform. Normal app UI is built from structured descriptors: `createElement`, `createTextNode`, `createDocumentFragment`, `replaceChildren`, safe attributes/properties and keyed child reuse.
10
+
11
+ ## Descriptor Rules
12
+
13
+ | Area | Rule |
14
+ |------|------|
15
+ | Shell | Root render units use `replaceChildren` and mark the root with `data-rmt-rendered-shell`. |
16
+ | Elements | Tags must be simple custom-element or HTML tag names. |
17
+ | Attributes | Inline handlers, `srcdoc` and unsafe URL values are rejected. |
18
+ | Properties | HTML-sink properties are blocked for normal UI. |
19
+ | Lists | `renderKeyed` preserves nodes via `data-rmt-key` and patches attributes/children. |
20
+ | Events | Events run through `addEventListener`, not through string attributes. |
21
+ | Diagnostics | Runtime errors include RMT source information such as `documentId`, `templateId` and `pointer`. |
22
+
23
+ ## Component Registry Option
24
+
25
+ `render(...)` and `renderKeyed(...)` accept `componentRegistry`. When a
26
+ descriptor uses `type: "component"`, the renderer normalizes tag, attributes,
27
+ properties, slots, parts, and event bindings through the RMT vNext Component
28
+ Capability Registry:
29
+
30
+ ```js
31
+ renderer.renderKeyed(root, descriptors, {
32
+ componentRegistry: registry,
33
+ dispatchEvent,
34
+ stateBridge
35
+ });
36
+ ```
37
+
38
+ The registry binds XTend components through public DOM APIs. It reads Component
39
+ Contracts and RMT metadata, performs lazy import through manifest paths, and
40
+ writes safe capability markers such as `data-rmt-component-capability`. The
41
+ renderer stays generic: no Shadow-DOM patches, no private component maps, and no
42
+ HTML sinks for normal RMT app UI.
43
+
44
+ ## Trusted Boundary
45
+
46
+ HTML fragments are not a normal template path. They may only be rendered as `trusted_html` with `xtend.rmt.trusted-dom-boundary.explicit` and an external `trustedDomRenderer`. The default renderer creates no HTML fragments from strings.
47
+
48
+ ## No Manual HTML
49
+
50
+ The gate `createNoManualHtmlGate()` blocks normal app shells that use manual HTML sinks such as `root.innerHTML`, `element.innerHTML`, `template.innerHTML`, `outerHTML`, `insertAdjacentHTML`, `document.write` and `createContextualFragment`.
51
+
52
+ `WP-E18-06` and the vNext Component Capability Registry build component-native
53
+ template primitives on top of this slice without requiring external HTML helper
54
+ renderers.
@@ -0,0 +1,143 @@
1
+ # RMT DSL Authoring Polish
2
+
3
+ The contract `xtend.rmt.dsl-authoring-polish.v1` prepares a friendlier RMT DSL
4
+ for XTend component shells. It makes RMT authoring shorter without embedding
5
+ XTend in the RMT kernel.
6
+
7
+ Local gate:
8
+
9
+ ```bash
10
+ node scripts/run_xtend_tests.js rmt-dsl-authoring-polish --json
11
+ ```
12
+
13
+ ## Why This Package Exists
14
+
15
+ After `WP-E12-12`, XTend has a productive design-token vocabulary.
16
+ `WP-E12-13` uses these tokens so shells, slots, styles, a11y, events, commands,
17
+ hydration, Fabric lanes, and XRouter routes can be described more easily in
18
+ RMT.
19
+
20
+ RMT remains host-neutral:
21
+
22
+ - `xtend.component` renders and hydrates components in the host.
23
+ - `xtend.xrouter` connects route records to XRouter.
24
+ - `xtend.fabric` and telemetry remain adapter/host data.
25
+ - `no-rmt-kernel-import-of-xtend-types` remains mandatory.
26
+
27
+ ## Authoring Aliases
28
+
29
+ | Alias | Target |
30
+ |-------|--------|
31
+ | `component` | XTend component record |
32
+ | `shell` | shell state, slots, parts, and focus |
33
+ | `slot` | template, component, or text slots |
34
+ | `style` | variant, theme, density, tokens, and parts |
35
+ | `token` | productive `--xtend-*` tokens |
36
+ | `theme` | theme pack |
37
+ | `density` | density pack |
38
+ | `a11y` | role, label, live region, keyboard, and announcements |
39
+ | `on` | event to command |
40
+ | `command` | command to schedule |
41
+ | `hydrate` | hydration policy |
42
+ | `lane` | Fabric lane and fiber |
43
+ | `route` | XRouter route |
44
+ | `link` | XLink-compatible link |
45
+ | `outlet` | route outlet in the template |
46
+
47
+ ## Example
48
+
49
+ ```rmt
50
+ template settings.shell {
51
+ state settings.theme type string initial "dark"
52
+ state settings.density type string initial "comfortable"
53
+
54
+ portal surface.root root "#settings-root" layer surface
55
+
56
+ surface settings.shell kind page component x-section {
57
+ portal surface.root
58
+
59
+ lane visible weight 80 {
60
+ hydrate settings-header {
61
+ slot header hydrate settings.header.template
62
+ }
63
+
64
+ hydrate feedback-toast from endpoint xtendrmt.component.hydrate {
65
+ slot feedback hydrate feedback.toast
66
+ }
67
+ }
68
+
69
+ lane idle weight 20 {
70
+ hydrate settings-shell-style from endpoint xtendrmt.component.hydrate {
71
+ trust boundary "xtend.security.sanitizing-boundary.v1"
72
+ }
73
+ }
74
+ }
75
+ }
76
+ ```
77
+
78
+ Token aliases remain part of the contract: productive styles continue to
79
+ reference stable custom properties such as `--xtend-surface` and
80
+ `--xtend-color-primary`, while vNext describes structure, slots, and hydration.
81
+
82
+ The normalized output becomes `components[]`, `templates[]`, and `schedules[]`.
83
+ RMT describes the structure; XTend executes component hydration.
84
+
85
+ ## Routing Sugar
86
+
87
+ Routes can be described in an author-friendly surface, link, and outlet
88
+ structure:
89
+
90
+ ```rmt
91
+ template settings.routing {
92
+ portal surface.root root "#app-root" layer surface
93
+
94
+ surface settings.route kind page component x-section {
95
+ portal surface.root
96
+
97
+ lane visible weight 80 {
98
+ hydrate settings-shell from endpoint xtendrmt.route.render
99
+ hydrate settings-link from endpoint xtendrmt.component.hydrate
100
+ slot outlet hydrate primary
101
+ }
102
+
103
+ on click target settings-link -> action route.navigate {
104
+ payload href from "/settings"
105
+ }
106
+ }
107
+ }
108
+ ```
109
+
110
+ This becomes `routes[]`, `components[]`, and `templates[]` with adapter
111
+ `xtend.xrouter`. XRouter remains a host adapter, not an RMT kernel dependency.
112
+
113
+ ## Diagnostics
114
+
115
+ The polish plan defines these diagnostic codes:
116
+
117
+ - `rmt.dsl.alias.unknown`
118
+ - `rmt.dsl.alias.required-field-missing`
119
+ - `rmt.dsl.token.unknown`
120
+ - `rmt.dsl.route.target-unresolved`
121
+ - `rmt.dsl.link.route-unresolved`
122
+ - `rmt.dsl.slot.target-unresolved`
123
+ - `rmt.dsl.schedule.unresolved`
124
+ - `rmt.dsl.inline-runtime-code-refused`
125
+ - `rmt.dsl.kernel-boundary.refused`
126
+
127
+ This lets XTendRMT upstream build friendlier parser errors and editor hints
128
+ without importing the XTend runtime.
129
+
130
+ ## Artifacts
131
+
132
+ - Contract: `development/XTend-RMT-DSL-Authoring-Polish-fuer-Component-Shells.md`
133
+ - Module: `xtend-builder/typing/rmt-dsl-authoring-polish.js`
134
+ - Fixture: `tests/fixtures/rmt-dsl-authoring-polish.rmt`
135
+ - Suite: `tests/rmt/rmt_dsl_authoring_polish_suite.js`
136
+
137
+ ## RC0 Adoption Update
138
+
139
+ Since `WP-E12-15`, the [RC0 Adoption Guide](./rc0-adoption-guide.md) describes
140
+ how app authors use this DSL polish layer for shell-first XTend apps. The most
141
+ important migration rule remains: RMT may construct and schedule XTend
142
+ components, XRouter routes, and content slots without embedding XTend types in
143
+ the RMT kernel.
@@ -0,0 +1,98 @@
1
+ # RMT Event Routing Runtime
2
+
3
+ - Contract: `xtend.epic18.rmt-event-routing-runtime.v1`
4
+ - Workpackage: `WP-E18-09`
5
+ - Runtime: `xtendrmt/rmt-event-routing-runtime.js`
6
+ - Types: `xtendrmt/rmt-event-routing-runtime.d.ts`
7
+ - Fixture: `tests/fixtures/rmt-event-routing-runtime.rmt`
8
+ - Local gate: `node scripts/run_xtend_tests.js rmt-event-routing-runtime --json`
9
+ - Next: `WP-E18-10`
10
+
11
+ ## Purpose
12
+
13
+ The Event Routing Runtime makes DOM and custom events first-class RMT app
14
+ platform primitives. Apps can bind events to actions declaratively, validate
15
+ payloads before action execution, apply governance policies and clean up
16
+ listeners by owner scope.
17
+
18
+ The runtime delegates execution to the Action Effect Runtime from `WP-E18-08`.
19
+ It does not create a second action framework and does not import XTend UI
20
+ components.
21
+
22
+ ## Event Bindings
23
+
24
+ An event binding can declare:
25
+
26
+ - `event`
27
+ - `target`
28
+ - `component`
29
+ - `owner`
30
+ - `action`
31
+ - `actionMode`
32
+ - `payload`
33
+ - `payloadContract`
34
+ - `governance`
35
+ - `condition`
36
+
37
+ Targets are resolved through explicit refs, a passed `targets` map, a custom
38
+ target resolver or a DOM query from a provided root. Product-local
39
+ `event.target.closest(...)` delegation chains are not required for normal app
40
+ flows.
41
+
42
+ ## Payload Contracts
43
+
44
+ Payloads are built from event data with expressions such as:
45
+
46
+ - `$event.target.value`
47
+ - `$detail.id`
48
+ - `$target.dataset.id`
49
+ - `$source.dataset.path`
50
+
51
+ Contracts use a small structural shape:
52
+
53
+ ```json
54
+ {
55
+ "type": "object",
56
+ "required": ["id"],
57
+ "properties": {
58
+ "id": "string"
59
+ }
60
+ }
61
+ ```
62
+
63
+ Invalid payloads are blocked before the action runtime is called and emit
64
+ `rmt.event.payload_contract.invalid` diagnostics.
65
+
66
+ ## Event Governance
67
+
68
+ Supported policies:
69
+
70
+ - `preventDefault`
71
+ - `stopPropagation`
72
+ - `stopImmediatePropagation`
73
+ - `capture`
74
+ - `passive`
75
+ - `once`
76
+ - `retarget`
77
+
78
+ Retargeting can use `target`, `current-target` or `composed-path`. This keeps
79
+ component interaction explicit without product-specific DOM walking.
80
+
81
+ ## Ownership
82
+
83
+ `attach()` registers listeners and records their owner. `detachOwner(ownerId)`
84
+ removes only the listeners for that scope, while `detachAll()` removes the
85
+ remaining listeners. This is the bridge to the surface and resource lifecycle
86
+ work in `WP-E18-10`.
87
+
88
+ ## Diagnostics
89
+
90
+ Diagnostics use `xtend.epic18.rmt-event-routing-diagnostic.v1` on
91
+ `rmt.app_platform.event_routing`. Route diagnostics include event id, component,
92
+ payload and action target so build and runtime reports can show why a user
93
+ interaction did or did not execute.
94
+
95
+ ## Handoff
96
+
97
+ `WP-E18-10` can now harden surface, overlay, portal and resource graphs using
98
+ owner-scoped events plus the resource ownership model from `WP-E18-08`.
@@ -0,0 +1,87 @@
1
+ # RMT-First Demo App
2
+
3
+ Contract: `xtend.epic10.rmt-first-demo-app.v1`
4
+
5
+ The RMT-first demo app shows the Epic 10 target path: an XTend app is no longer
6
+ built as a manual HTML shell, but rendered from a `.rmt` app document. XTend
7
+ provides local Web Components. RMT provides shell, routes, templates,
8
+ schedules, Fabric/lane metadata, and diagnostics.
9
+
10
+ ## Starting Point
11
+
12
+ - Demo / Browser smoke: `tests/browser/fixtures/rmt-first-demo-app-smoke.html`
13
+ - RMT document: `xtendrmt/rmt-first-demo-app.rmt`
14
+ - Runtime: `xtendrmt/rmt-first-demo-app.js`
15
+ - Browser smoke: `tests/browser/fixtures/rmt-first-demo-app-smoke.html`
16
+
17
+ The host page contains only the RMT root:
18
+
19
+ ```html
20
+ <div
21
+ id="rmt-first-demo-root"
22
+ data-rmt-host="rmt-first-demo"
23
+ data-rmt-document-src="xtendrmt/rmt-first-demo-app.rmt"></div>
24
+ ```
25
+
26
+ The shell itself comes from `app.shell.template`.
27
+
28
+ ## What RMT Owns
29
+
30
+ - App shell
31
+ - Routes
32
+ - `dom_descriptor` templates
33
+ - Component records
34
+ - Props, attributes, slots, and event commands
35
+ - Schedules and lanes
36
+ - Fabric/fiber metadata
37
+ - Diagnostics
38
+
39
+ ## What XTend Owns
40
+
41
+ - Custom Elements
42
+ - Manifest lookup
43
+ - Component lifecycle
44
+ - DOM execution
45
+ - XRouter registration
46
+ - Fabric execution and telemetry hooks
47
+
48
+ The RMT kernel imports no XTend components. This boundary remains
49
+ `no-rmt-kernel-import-of-xtend-types`.
50
+
51
+ ## Demo Routes
52
+
53
+ | Route | Path | Content |
54
+ |-------|------|---------|
55
+ | `dashboard` | `/` | shell-first status and performance coverage |
56
+ | `settings` | `/settings` | form controls with `x-select`, `x-checkbox`, `x-radio`, `x-textarea` |
57
+ | `overlays` | `/overlays` | `x-tooltip`, `x-popover`, `x-drawer` |
58
+
59
+ ## No-Manual-Shell Rule
60
+
61
+ The demo is correct only when:
62
+
63
+ - the host contains no static `x-section` or `x-router` shell tags
64
+ - the runtime does not use `innerHTML`
65
+ - `manifest.metadata.manualShellAllowed` is `false`
66
+ - `manifest.metadata.hostShellMarkup` is `false`
67
+ - the browser smoke renders the shell from RMT
68
+
69
+ ## Local Gate
70
+
71
+ ```bash
72
+ node scripts/run_xtend_tests.js rmt-first-demo-app --json
73
+ ```
74
+
75
+ The gate checks RMT references, runtime registry normalization, host boundary,
76
+ browser smoke, package metadata, and documentation paths.
77
+
78
+ ## Continuation
79
+
80
+ `WP-E10-14` migrates existing prioritized components into the same RMT/Fabric
81
+ metadata line. The demo app remains the first productive acceptance host for
82
+ that work.
83
+
84
+ Since `WP-E13-09`, the demo app is part of
85
+ [RMT Production Readiness](./rmt-production-readiness.md). The contract
86
+ `xtend.epic13.rmt-production-readiness.v1` uses it as shell-first evidence for
87
+ routing, components, Fabric/lane, lifecycle telemetry, and diagnostics.
@@ -0,0 +1,127 @@
1
+ # RMT-First XTend Apps
2
+
3
+ Docs Contract: `xtend.docs.rmt-first-xtend-apps.v1`
4
+
5
+ This guide describes the Epic 10 target path: a complete XTend app is described
6
+ as an RMT vNext document. XTend provides local Web Components; RMT provides the
7
+ shell, routes, templates, components, schedules, hydration policies, Fabric
8
+ lanes, and diagnostics.
9
+
10
+ The underlying authoring contract is:
11
+
12
+ ```text
13
+ xtend.rmt.first-class-app-authoring.v1
14
+ ```
15
+
16
+ ## Core Rules
17
+
18
+ - RMT vNext is the app authoring model.
19
+ - XTend components are described through surfaces with `component x-*` and
20
+ compiled into `xtend.component` records.
21
+ - XRouter is connected through `xtend.xrouter`.
22
+ - Templates preferably use `dom_descriptor` as generated output.
23
+ - Event bindings use `on ... -> action ...`.
24
+ - Fabric, lane, and fiber hints come from `lane` and lifecycle clauses.
25
+ - The RMT kernel imports no XTend classes or XTend types.
26
+
27
+ The boundary remains:
28
+
29
+ ```text
30
+ no-rmt-kernel-import-of-xtend-types
31
+ ```
32
+
33
+ ## Minimal Structure
34
+
35
+ ```rmt
36
+ template settings.app {
37
+ state settings.status type string initial "ready"
38
+
39
+ selector settings.feedback from state settings.status {
40
+ output StatusView
41
+ }
42
+
43
+ action settings.refresh {
44
+ reduce state.settings.status = "refreshing"
45
+ emit settings.refresh.requested with action settings.refresh
46
+ }
47
+
48
+ portal surface.root root "#app-root" layer surface
49
+
50
+ surface settings.status kind card component x-status {
51
+ source selector settings.feedback
52
+ portal surface.root
53
+
54
+ lane visible weight 80 {
55
+ mount x-status
56
+ hydrate settings-status from selector settings.feedback
57
+ }
58
+
59
+ on click target refresh-button -> action settings.refresh {
60
+ payload source from target.dataset.action
61
+ }
62
+ }
63
+ }
64
+ ```
65
+
66
+ The compiler turns this into `xtend.component`, `xtend.xrouter`,
67
+ `rmt.state-scheduler-diagnostics`, `dom_descriptor` templates, and
68
+ schedule/lane records. These JSON records are runtime mirrors, not the primary
69
+ authoring path.
70
+
71
+ ## Reference Paths
72
+
73
+ - Contract: `development/XTend-RMT-First-Class-App-Authoring.md`
74
+ - Fixture: `tests/fixtures/rmt-first-class-xtend-app.rmt`
75
+ - Demo app: `xtendrmt/rmt-first-demo-app.rmt`
76
+ - Browser smoke: `tests/browser/fixtures/rmt-first-demo-app-smoke.html`
77
+ - Gate: `node scripts/run_xtend_tests.js rmt-first-class-app --json`
78
+ - Demo gate: `node scripts/run_xtend_tests.js rmt-first-demo-app --json`
79
+
80
+ ## Fabric and Telemetry
81
+
82
+ Components receive Fabric context through adapter injection. The canonical
83
+ boundary is:
84
+
85
+ ```text
86
+ adapter-injection-via-xtend-component-resolveFabricContext
87
+ ```
88
+
89
+ `window.XTendFabric` can be used by hosts, but it is not the contract surface
90
+ of a component.
91
+
92
+ ## Release Handoff
93
+
94
+ The completion of Epic 10 is documented in
95
+ [Epic 10 Release Handoff](./epic10-release-handoff.md). That gate chain decides
96
+ whether an RMT-first XTend app path is release-ready enough for a candidate.
97
+
98
+ Since `WP-E13-09`, [RMT Production Readiness](./rmt-production-readiness.md)
99
+ bundles this path under `xtend.epic13.rmt-production-readiness.v1`:
100
+ shell-first app shell, routing, components, Fabric/lanes, lifecycle telemetry,
101
+ diagnostics, and artifact parity are connected as an RC1 gate. `WP-E13-10`
102
+ completed [Docs RMT Production Hardening](./docs-rmt-production-hardening.md);
103
+ `WP-E13-11` completed
104
+ [Trusted DOM Boundary Browser Proof](./trusted-dom-boundary-browser-proof.md)
105
+ and `xtend.epic13.trusted-dom-boundary.v1`. `WP-E13-12` completed
106
+ [RC1 Migration Notes](./rc1-migration-notes.md) and
107
+ `xtend.epic13.rc1-migration-notes-semver.v1`. `WP-E13-13` completed
108
+ [RC1 Gate Matrix and CI Handoff](./rc1-gate-matrix-ci-handoff.md) and
109
+ `xtend.epic13.rc1-gate-matrix-ci-handoff.v1`.
110
+
111
+ ## Component UX Authoring
112
+
113
+ Since `WP-E11-16`, [Component UX App Authoring](./component-ux-app-authoring.md)
114
+ extends this guide with visible UX rules for RMT-first apps. This includes
115
+ theme, motion, density, viewports, browser smokes, and the Component Shell
116
+ Theme Matrix `xtend.epic11.component-shell-theme-matrix.v1`.
117
+
118
+ Since `WP-E11-17`, [Component Long-Tail Migration](./component-long-tail-migration.md)
119
+ describes which legacy and infrastructure components are hardened first for
120
+ RMT-first app compatibility.
121
+
122
+ The local docs gate is:
123
+
124
+ ```bash
125
+ node scripts/run_xtend_tests.js component-ux-authoring-docs --json
126
+ node scripts/run_xtend_tests.js component-long-tail-migration --json
127
+ ```