@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,289 @@
1
+ # RMT vNext Primitive Grammar Design
2
+
3
+ - Contract: `xtend.rmt.vnext-primitive-grammar-design.v1`
4
+ - Workpackage: `RMT-VNEXT-PRIM-01`
5
+ - Status: `completed`
6
+ - Parent backlog: [RMT vNext Primitive Compiler Backlog](./rmt-vnext-primitives-compiler-backlog.md)
7
+ - Design fixture: `tests/rmt-language/fixtures/vnext-primitives-grammar-design.rmt`
8
+
9
+ ## Ziel
10
+
11
+ Dieser Slice definiert die vNext-Syntax, mit der App-Platform-Primitives direkt
12
+ in RMT authoriert werden sollen. Er ist bewusst ein Grammar-Design-Contract.
13
+ Parser-/AST-Implementierung ist in `RMT-VNEXT-PRIM-02` abgeschlossen; die erste
14
+ Semantic-Graph-Schicht ist in `RMT-VNEXT-PRIM-03` gestartet. Compiler-Lowering
15
+ folgt in `RMT-VNEXT-PRIM-04`.
16
+
17
+ Die Syntax muss App-Autoren aus Legacy-/JSON-Authoring herausfuehren. Ein
18
+ normaler App-Shell-Entwickler soll State, Selectors, Actions, Events,
19
+ DataSources, Surfaces, Overlays, Portals und Resources in einer lesbaren RMT
20
+ vNext-Datei deklarieren koennen.
21
+
22
+ ## Design-Prinzipien
23
+
24
+ - **vNext first:** Die menschenfreundliche DSL ist die primaere Authoring-
25
+ Oberflaeche. JSON bleibt Compiler-Output oder Migrationsinput.
26
+ - **Kernel-neutral:** Syntax kann XTend-Komponenten referenzieren, aber der
27
+ RMT-Kernel importiert keine XTend-, Fabric- oder Browser-Module.
28
+ - **App-Graph vor Runtime:** Referenzen, Ownership, Payload Contracts und
29
+ Trust Boundaries muessen aus dem Source Graph pruefbar sein.
30
+ - **Source-map-faehig:** Jede Primitive-Deklaration braucht einen stabilen
31
+ Source Range und eine Primitive ID.
32
+ - **Composable:** App Shell, UI-Templates, State, Events und Resources duerfen
33
+ getrennt deklarierbar sein, muessen aber zu einem App Graph verbunden werden.
34
+ - **Legacy im Hintergrund:** Klassische Core-/Scaffold-Artefakte duerfen
35
+ weiterhin Targets sein, aber Entwickler sollen sie nicht bearbeiten muessen.
36
+
37
+ ## Top-Level-Grammatik
38
+
39
+ Eine vNext-Datei kann weiterhin `import`, `template`, `surface` und `remote`
40
+ nutzen. Neu kommen primitive Deklarationen hinzu. Sie sind innerhalb eines
41
+ `template`-Blocks bevorzugt, duerfen fuer wiederverwendbare Bibliotheken aber
42
+ auch top-level authoriert werden.
43
+
44
+ ```rmt
45
+ template media.manager {
46
+ state media.records type MediaRecord[] initial []
47
+
48
+ selector media.filtered from state media.records {
49
+ where record.kind == state.media.filters.kind || state.media.filters.kind == "all"
50
+ sort by record.name asc
51
+ }
52
+
53
+ datasource media.index from endpoint "/api/media?pageSize=200" {
54
+ method GET
55
+ contract MediaIndex
56
+ result records
57
+ }
58
+
59
+ action media.select {
60
+ input mediaId string
61
+ reduce state.media.selection.activeId = input.mediaId
62
+ emit media.selected with mediaId input.mediaId
63
+ }
64
+
65
+ portal surface.root root "#media-manager-root" layer surface
66
+ overlay feedback.toast kind toast portal surface.root
67
+ resource player.stream kind stream owner surface.player source state.media.selection.activeId
68
+
69
+ surface media.explorer kind window component x-surface-window {
70
+ source selector media.filtered
71
+ key record.id
72
+ portal surface.root
73
+
74
+ lane visible weight 80 {
75
+ hydrate explorer-list from selector media.filtered
76
+ }
77
+
78
+ on click "[data-media-id]" -> action media.select {
79
+ payload mediaId from target.dataset.mediaId
80
+ }
81
+ }
82
+ }
83
+ ```
84
+
85
+ ## Primitive-Formen
86
+
87
+ ### State
88
+
89
+ ```rmt
90
+ state media.filters type object preserve {
91
+ initial {
92
+ query ""
93
+ kind "all"
94
+ collection "all"
95
+ }
96
+ }
97
+ ```
98
+
99
+ Lowering-Ziel:
100
+
101
+ - `core.state[]`
102
+ - Source-map entry mit `primitiveType: "state"`
103
+ - optionaler XState-Bridge-Hint fuer Host-Adapter
104
+
105
+ ### Selector
106
+
107
+ ```rmt
108
+ selector media.filtered from state media.records {
109
+ where record.kind == state.media.filters.kind || state.media.filters.kind == "all"
110
+ where contains(record.name, state.media.filters.query)
111
+ sort by record.name asc
112
+ output MediaRecord[]
113
+ }
114
+ ```
115
+
116
+ Einschraenkung fuer PRIM-01: Funktionen wie `contains()` sind als deklarative
117
+ Selector-Operatoren erlaubt, aber nicht als beliebige JS-Calls. PRIM-02 muss
118
+ sie als eigene AST-Nodes modellieren.
119
+
120
+ Lowering-Ziel:
121
+
122
+ - `core.selectors[]`
123
+ - Referenzen auf `core.state[]`
124
+ - Diagnose fuer unbekannte State- oder Record-Pfade
125
+
126
+ ### DataSource
127
+
128
+ ```rmt
129
+ datasource media.index from endpoint "/api/media?pageSize=200" {
130
+ method GET
131
+ contract MediaIndex
132
+ result records
133
+ fallback fixture media.fixture
134
+ }
135
+ ```
136
+
137
+ Lowering-Ziel:
138
+
139
+ - `core.dataSources[]`
140
+ - App-Platform-Report-Domain `dataSources`
141
+ - optionaler SSR-/Fixture-Fallback
142
+
143
+ ### Action und Effect
144
+
145
+ ```rmt
146
+ action media.reindex {
147
+ status state.actionStatus.reindex
148
+ effect fetch datasource media.reindex
149
+ on success -> reduce state.media.records = result.records
150
+ on success -> emit media.index.loaded with count result.records.length
151
+ on error -> overlay feedback.toast message error.message tone "danger"
152
+ }
153
+ ```
154
+
155
+ Lowering-Ziel:
156
+
157
+ - `core.actions[]`
158
+ - `core.effects[]` oder action-scoped `effects`
159
+ - Event-/Feedback-Result-Routing
160
+ - Resource ownership fuer async handles
161
+
162
+ ### Event Binding
163
+
164
+ ```rmt
165
+ on click "[data-command='scan']" -> action media.reindex {
166
+ preventDefault true
167
+ payload source from target.dataset.command
168
+ }
169
+
170
+ on xplayer-play target player.surface -> action media.playback.started {
171
+ payload mediaId from detail.mediaId
172
+ payload surfaceId from surface.id
173
+ }
174
+ ```
175
+
176
+ Lowering-Ziel:
177
+
178
+ - `core.events[]`
179
+ - Payload Contract
180
+ - DOM/custom event routing metadata
181
+ - Source pointer fuer jedes Payload Mapping
182
+
183
+ ### Surface
184
+
185
+ ```rmt
186
+ surface media.player kind window component x-surface-window {
187
+ repeat from selector player.instances
188
+ key instance.surfaceId
189
+ portal surface.root
190
+ bounds x 920 y 96 width 760 height 500
191
+ preserve on minimize
192
+ destroy releases resource player.stream
193
+
194
+ lane visible weight 90 {
195
+ hydrate player-view from selector media.activeRecord
196
+ }
197
+ }
198
+ ```
199
+
200
+ Lowering-Ziel:
201
+
202
+ - `core.surfaces[]`
203
+ - `core.lanes[]`
204
+ - `core.operations[]`
205
+ - Surface Graph Runtime records
206
+ - keyed repeater diagnostics
207
+
208
+ ### Portal und Overlay
209
+
210
+ ```rmt
211
+ portal overlay.root root "body" layer overlay z 1000 {
212
+ focus policy restore
213
+ pointer policy passthrough
214
+ scroll policy lock-when-modal
215
+ }
216
+
217
+ overlay media.lightbox kind lightbox portal overlay.root {
218
+ escape close topmost
219
+ focus trap
220
+ resource lightbox.import
221
+ }
222
+ ```
223
+
224
+ Lowering-Ziel:
225
+
226
+ - `core.portals[]`
227
+ - `core.overlays[]`
228
+ - portal reference diagnostics
229
+ - overlay stack policy
230
+
231
+ ### Resource
232
+
233
+ ```rmt
234
+ resource lightbox.import kind lazy-import owner overlay.media.lightbox {
235
+ import "@ccslabs/xtend/components/xlightbox"
236
+ }
237
+
238
+ resource preview.objectUrl kind object-url owner surface.media.player {
239
+ source selector media.activeRecord
240
+ dispose on surface.destroy
241
+ }
242
+ ```
243
+
244
+ Lowering-Ziel:
245
+
246
+ - `core.resources[]`
247
+ - owner-scoped lifecycle records
248
+ - teardown diagnostics fuer ownerless resources
249
+
250
+ ## AST-Node-Namen
251
+
252
+ PRIM-02 soll mindestens diese Node-Typen erzeugen:
253
+
254
+ | Syntax | AST Node |
255
+ |--------|----------|
256
+ | `state` | `RmtStateDeclaration` |
257
+ | `selector` | `RmtSelectorDeclaration` |
258
+ | `datasource` | `RmtDataSourceDeclaration` |
259
+ | `action` | `RmtActionDeclaration` |
260
+ | `effect` | `RmtEffectStatement` |
261
+ | `on ... -> action ...` | `RmtEventBinding` mit Payload-Block |
262
+ | `surface ... kind ... component ...` | `RmtSurfaceDeclaration` mit Primitive-Metadata |
263
+ | `portal` | `RmtPortalDeclaration` |
264
+ | `overlay` | `RmtOverlayDeclaration` |
265
+ | `resource` | `RmtResourceDeclaration` |
266
+ | `template` primitive block | `RmtTemplateDeclaration.body[]` |
267
+
268
+ ## Diagnostik-Mindestumfang
269
+
270
+ Der Grammar-Slice definiert folgende Fehlerklassen fuer PRIM-02/03:
271
+
272
+ | Code | Bedeutung |
273
+ |------|-----------|
274
+ | `rmt.vnext.primitive.unknown-reference` | Primitive referenziert unbekannten State, Selector, Action, Portal, Resource oder Surface. |
275
+ | `rmt.vnext.primitive.owner-missing` | Resource oder Overlay besitzt keinen stabilen Owner. |
276
+ | `rmt.vnext.primitive.unkeyed-repeat` | Surface oder Template wiederholt Records ohne `key`. |
277
+ | `rmt.vnext.primitive.payload-contract-missing` | Event bindet eine Action ohne Payload Contract oder Mapping. |
278
+ | `rmt.vnext.primitive.unsafe-html` | Template nutzt HTML ohne Trusted-DOM-Boundary. |
279
+ | `rmt.vnext.primitive.kernel-boundary` | Primitive verlangt Kernel-Import aus XTend, Fabric oder Browser Runtime. |
280
+
281
+ ## Akzeptanz fuer PRIM-01
282
+
283
+ - Dieses Dokument definiert eine zusammenhaengende vNext-Syntax fuer alle P0-
284
+ Primitive-Familien.
285
+ - Die Fixture `tests/rmt-language/fixtures/vnext-primitives-grammar-design.rmt`
286
+ zeigt denselben Syntaxumfang in einer kompakten App-Shell.
287
+ - Das Backlog markiert `RMT-VNEXT-PRIM-01` als `in_progress`.
288
+ - PRIM-02 kann direkt mit Parser-/AST-Arbeit starten, ohne die Syntaxfrage neu
289
+ zu klaeren.
@@ -0,0 +1,108 @@
1
+ # RMT vNext Primitive Lowering
2
+
3
+ - Contract: `xtend.rmt.vnext.primitive-lowering.v1`
4
+ - Workpackage: `RMT-VNEXT-PRIM-04`
5
+ - Status: `completed`
6
+ - Quelle: Media-Manager-Downstream-Transfer, `2026-05-19`
7
+
8
+ ## Ziel
9
+
10
+ `RMT-VNEXT-PRIM-04` senkt validierte vNext-Primitives aus dem PRIM-03 Semantic
11
+ Graph in deterministische Core-, App-Platform- und Kernel-Records ab. App-
12
+ Autoren bleiben dabei in RMT vNext; JSON bleibt Compiler-Output und nicht der
13
+ Authoring-Pfad.
14
+
15
+ Die Lowering-Stufe ist Teil des bestehenden vNext-Compilers:
16
+
17
+ ```js
18
+ const {
19
+ compileRmtVNextSource
20
+ } = require('./tools/rmt-language/vnext-compiler');
21
+
22
+ const result = compileRmtVNextSource({ text, filePath });
23
+ ```
24
+
25
+ Bei Primitive-Quellen baut der Compiler zuerst
26
+ `buildRmtVNextPrimitiveSemanticGraph(...)`. Error-Diagnostics aus dem Graph
27
+ stoppen das Lowering mit `status: "semantic_error"` und ohne Core-Document.
28
+
29
+ ## Core-Domains
30
+
31
+ Der vNext-Core erhaelt zusaetzliche Primitive-Domains:
32
+
33
+ - `states`
34
+ - `selectors`
35
+ - `actions`
36
+ - `effects`
37
+ - `portals`
38
+ - `overlays`
39
+ - `resources`
40
+
41
+ Vorhandene Domains wie `surfaces`, `lanes`, `operations`, `events` und
42
+ `dataSources` werden fuer Primitive angereichert, statt einen zweiten Runtime-
43
+ Pfad zu erzeugen.
44
+
45
+ ## App-Platform Artifact
46
+
47
+ Wenn Primitive vorhanden sind, enthaelt das Core-Document `appPlatform`:
48
+
49
+ ```json
50
+ {
51
+ "schema": "xtend.rmt.vnext.app-platform-records.v1",
52
+ "sourceSyntax": "rmt-vnext",
53
+ "surfaces": [],
54
+ "events": [],
55
+ "resources": []
56
+ }
57
+ ```
58
+
59
+ Dieses Artefakt ist fuer Host-/Scaffold-Adapter gedacht. Host-spezifische
60
+ Imports, etwa Lazy Component Imports, bleiben dort sichtbar und tragen
61
+ `kernelVisible: false`.
62
+
63
+ ## Kernel Records
64
+
65
+ Das Core-Document enthaelt bei Primitive-Quellen ausserdem `kernelRecords`:
66
+
67
+ ```json
68
+ {
69
+ "schema": "xtend.rmt.vnext.kernel-records.v1",
70
+ "boundary": "no-rmt-kernel-import-of-host-runtime-types",
71
+ "schedules": [],
72
+ "fibers": [],
73
+ "lifecycleRecords": []
74
+ }
75
+ ```
76
+
77
+ Der Kernel-Record-Slice enthaelt Lanes, Fibers, Lifecycle-, State-, Selector-,
78
+ Action-, DataSource- und Resource-Fakten ohne Host-Runtime-Imports. Dadurch ist
79
+ PRIM-05 vorbereitet: Fabric kann Lane/Fiber-Evidence aus Compiler-Output
80
+ ableiten, ohne dass der Kernel Fabric oder XTend importieren muss.
81
+
82
+ ## Evidence
83
+
84
+ Die Compiler-Suite prueft:
85
+
86
+ - positive Primitive-Fixture kompiliert zu State-, Selector-, DataSource-,
87
+ Action-, Effect-, Portal-, Overlay-, Resource-, Surface- und Event-Records;
88
+ - App-Platform-Artefakt und Kernel-Records werden erzeugt;
89
+ - keyed Surface-Repeater und Event-Payload-Contracts bleiben erhalten;
90
+ - Host-Imports bleiben ausserhalb der Kernel-Sichtbarkeit;
91
+ - negative PRIM-03-Fixture stoppt vor dem Lowering mit Semantic-Diagnostics;
92
+ - Core JSON bleibt byte-stabil.
93
+
94
+ Gezielte lokale Gates:
95
+
96
+ ```bash
97
+ node --check tools/rmt-language/vnext-compiler.js
98
+ node --check tests/rmt-language/rmt_vnext_compiler_suite.js
99
+ node -e "const suite=require('./tests/rmt-language/rmt_vnext_compiler_suite'); const result=suite.runRmtVNextCompilerSuite({rootDir:process.cwd()}); process.exit(result.ok ? 0 : 1);"
100
+ ```
101
+
102
+ ## PRIM-06 Anschluss
103
+
104
+ `RMT-VNEXT-PRIM-06` setzt auf `kernelRecords.schedules` und
105
+ `kernelRecords.fibers` auf. Die erste Source-to-Sea-Scheibe erzeugt daraus
106
+ Evidence, die vNext-Source-Maps, Kernel-Schedules, ableitbare Fabric-Fibers,
107
+ UI-Marker und eine Browser-Smoke-Fixture unter derselben Primitive-ID
108
+ korreliert.
@@ -0,0 +1,119 @@
1
+ # RMT vNext Primitive Migration
2
+
3
+ - Contract: `xtend.rmt.vnext.primitive-migration-preview.v1`
4
+ - Workpackage: `RMT-VNEXT-PRIM-08`
5
+ - Status: `in_progress`
6
+ - Source fixture: `tests/fixtures/rmt-app-platform-tooling.rmt`
7
+ - Local gate: `node scripts/run_xtend_tests.js rmt-vnext-compatibility --json`
8
+
9
+ ## Ziel
10
+
11
+ `RMT-VNEXT-PRIM-08` schiebt Legacy- und App-Platform-JSON-Authoring in den
12
+ Hintergrund. Bestehende App-Platform-Primitive-Records bleiben als
13
+ Compiler-Target und Compatibility-Evidence erhalten, aber die primaere
14
+ Authoring-Flaeche ist RMT vNext.
15
+
16
+ Der Migrationspfad erzeugt deshalb keinen neuen Legacy-Arbeitsmodus. Er erzeugt
17
+ einen vNext-Preview-Draft aus vorhandenen App-Platform-Records und kompiliert
18
+ diesen Draft direkt wieder durch den vNext-Compiler. Erst wenn dieser Draft
19
+ State, DataSources, Actions, Events, Portals, Overlays, Resources, Surfaces,
20
+ Lanes und Kernel-Records absenken kann, gilt die Migration als kompatibel.
21
+
22
+ ## Preview- und Apply-Plan-Vertrag
23
+
24
+ Die API `createAppPlatformPrimitiveMigrationPreview(...)` erkennt
25
+ App-Platform-JSON-Dokumente mit Primitive-Domains wie `state`, `dataSources`,
26
+ `actions`, `events`, `portals`, `overlays`, `resources` und `surfaces`.
27
+
28
+ Der Preview-Report enthaelt:
29
+
30
+ - `schema: "xtend.rmt.vnext.primitive-migration-preview.v1"`
31
+ - `workpackage: "RMT-VNEXT-PRIM-08"`
32
+ - `languageMode: "legacy-app-platform-json"`
33
+ - `vNextAuthoring.role: "default"`
34
+ - `legacyAuthoring.role: "compiler-target"`
35
+ - `legacyAuthoring.backgrounded: true`
36
+ - `authoringDraft` mit vNext-Primitive-Syntax
37
+ - `authoringDraftCompileStatus: "compiled"`
38
+ - `projection.appPlatform` und `projection.kernelRecords`
39
+ - `domainMapping` fuer die erkannten Primitive-Familien
40
+
41
+ Report-only-Mode schreibt keine Quelle um. Er meldet stattdessen
42
+ `rmt.vnext.migration.opt_in_required` und
43
+ `rmt.vnext.primitive_migration.preview_available`. Preview-Mode ist bewusst
44
+ opt-in, damit vorhandene downstream Fixtures nicht still migriert werden.
45
+
46
+ Die API `createAppPlatformPrimitiveMigrationApplyPlan(...)` baut darauf auf
47
+ und erzeugt einen deterministischen Apply-Plan:
48
+
49
+ - `schema: "xtend.rmt.vnext.primitive-migration-apply-plan.v1"`
50
+ - `status: "apply-plan-ready"`, wenn der vNext-Draft kompiliert und eine
51
+ Projektion erzeugt werden kann
52
+ - `status: "blocked"`, wenn JSON-Parsing oder vNext-Kompilation fehlschlagen
53
+ - `targetPath` als Zielpfad-Hinweis, standardmaessig
54
+ `<quelle>.vnext.rmt`
55
+ - `automaticWrite: false`
56
+ - `writePolicy: "manual-apply-only"`
57
+
58
+ Der Apply-Plan fuehrt keinen Datei-Write aus. Er ist ein pruefbarer Handoff
59
+ fuer Agenten, CLIs oder Editoren, die den vNext-Draft nach Review in einen
60
+ neuen Authoring-Pfad uebernehmen wollen. Legacy/App-Platform-JSON bleibt dabei
61
+ Mirror und Compiler-Target, nicht die Benutzeroberflaeche.
62
+
63
+ ## Authoring-Draft
64
+
65
+ Das App-Platform-Fixture wird in eine vNext-Shell dieser Form ueberfuehrt:
66
+
67
+ ```rmt
68
+ template epic18.app-platform-tooling.fixture {
69
+ state items type collection initial []
70
+
71
+ datasource items from fixture records.generic-items {
72
+ contract "domain.record.generic-item.v1[]"
73
+ }
74
+
75
+ action load-items {
76
+ effect fetch datasource items
77
+ reduce state.items = result.records
78
+ }
79
+
80
+ portal app root "#app-root" layer surface
81
+
82
+ surface workspace kind window component workspace {
83
+ repeat from datasource items
84
+ portal app
85
+
86
+ lane visible weight 70 {
87
+ hydrate workspace from datasource items
88
+ }
89
+
90
+ on open-detail target ref.row -> action open-detail {
91
+ payload id from detail.id
92
+ }
93
+ }
94
+ }
95
+ ```
96
+
97
+ Die Preview normalisiert bekannte App-Platform-Prefixes fuer vNext-Authoring:
98
+ `state.items` wird zu `state items`, `datasource.items` zu
99
+ `datasource items`, `surface.workspace` zu `surface workspace` und
100
+ `action.open-detail` zu `action open-detail`. Runtime- und Kernel-Records
101
+ bleiben ueber die Compiler-Projektion korrelierbar.
102
+
103
+ ## Gate-Erwartung
104
+
105
+ Das Compatibility-Gate prueft fuer PRIM-08:
106
+
107
+ - App-Platform-Primitive-JSON wird als `legacy-app-platform-json` erkannt.
108
+ - Report-only-Mode verlangt explizites Preview-Opt-in.
109
+ - Preview-Mode erzeugt einen vNext-Draft und kompiliert ihn.
110
+ - Apply-Plan-Mode erzeugt denselben Draft, einen Zielpfad-Hinweis und eine
111
+ blockierende Compile-/Parse-Pruefung, ohne Dateien zu schreiben.
112
+ - Die Projektion enthaelt App-Platform- und Kernel-Records.
113
+ - Legacy wird als `compiler-target` markiert, nicht als Authoring-Pfad.
114
+ - Die Compatibility-Matrix akzeptiert App-Platform-Preview und native vNext-
115
+ Quelle gemeinsam.
116
+
117
+ Damit wird die Upgrade-Regel testbar: Legacy ist weiterhin beweisbar
118
+ kompatibel, aber die Developer Experience fuer neue App-Shell-Arbeit liegt in
119
+ vNext.
@@ -0,0 +1,76 @@
1
+ # RMT vNext Primitive Parser AST
2
+
3
+ - Contract: `xtend.rmt.vnext-primitive-parser-ast.v1`
4
+ - Workpackage: `RMT-VNEXT-PRIM-02`
5
+ - Status: `completed`
6
+ - Parent backlog: [RMT vNext Primitive Compiler Backlog](./rmt-vnext-primitives-compiler-backlog.md)
7
+ - Grammar contract: [RMT vNext Primitive Grammar Design](./rmt-vnext-primitive-grammar-design.md)
8
+ - Parser module: `tools/rmt-language/vnext-parser.js`
9
+ - Parser suite: `tests/rmt-language/rmt_vnext_parser_suite.js`
10
+ - Fixture: `tests/rmt-language/fixtures/vnext-primitives-grammar-design.rmt`
11
+
12
+ ## Ziel
13
+
14
+ PRIM-02 erweitert den bestehenden vNext-Parser so, dass die in PRIM-01
15
+ definierte Primitive-Syntax als echte AST-Nodes sichtbar wird. Der Slice bleibt
16
+ abwaertskompatibel mit der bisherigen `template/surface/lane`-Syntax.
17
+
18
+ Compiler-Lowering und Kernel-Ingestion bleiben Folgearbeit in
19
+ `RMT-VNEXT-PRIM-04`. Die erste App-Graph-Semantik ist in
20
+ `RMT-VNEXT-PRIM-03` gestartet.
21
+
22
+ ## Implementierter Parser-Umfang
23
+
24
+ Der Parser akzeptiert jetzt die Design-Fixture
25
+ `vnext-primitives-grammar-design.rmt` ohne Syntaxdiagnosen und erzeugt
26
+ initiale AST-Nodes fuer:
27
+
28
+ | Primitive | AST Nodes |
29
+ |-----------|-----------|
30
+ | State | `RmtStateDeclaration`, `RmtInitialBlock`, `RmtInitialValueEntry`, `RmtPrimitiveValue`, `RmtTypeReference` |
31
+ | Selector | `RmtSelectorDeclaration`, `RmtSelectorWhereClause`, `RmtSelectorFindClause`, `RmtSelectorSortClause`, `RmtSelectorOutputClause` |
32
+ | DataSource | `RmtDataSourceDeclaration`, `RmtPrimitiveSourceReference`, `RmtDataSourceMethodClause`, `RmtDataSourceContractClause`, `RmtDataSourceResultClause`, `RmtDataSourceFallbackClause` |
33
+ | Action | `RmtActionDeclaration`, `RmtActionInputClause`, `RmtActionStatusClause`, `RmtEffectStatement`, `RmtReducerStatement`, `RmtEmitStatement`, `RmtActionResultHandler` |
34
+ | Portal | `RmtPortalDeclaration`, `RmtPrimitiveAttribute`, `RmtPortalPolicyClause` |
35
+ | Overlay | `RmtOverlayDeclaration`, `RmtOverlayPolicyClause` |
36
+ | Resource | `RmtResourceDeclaration`, `RmtResourceImportClause`, `RmtResourceSourceClause`, `RmtResourceDisposeClause` |
37
+ | Surface | erweiterte `RmtSurfaceDeclaration`, `RmtSurfaceHeaderClause`, `RmtSurfaceSourceClause`, `RmtSurfaceRepeatClause`, `RmtSurfaceKeyClause`, `RmtSurfacePortalClause`, `RmtSurfaceBoundsClause`, `RmtSurfacePreserveClause`, `RmtSurfaceDestroyClause` |
38
+ | Event | erweiterte `RmtEventBinding`, `RmtEventSelector`, `RmtEventPayloadBlock`, `RmtEventPayloadMapping`, `RmtEventOptionClause` |
39
+
40
+ ## Parser-Grenzen
41
+
42
+ - Selector-Ausdruecke wie `contains(record.name, state.media.filters.query)`
43
+ werden in PRIM-02 als deklarative Raw-Clause mit Source Range erhalten.
44
+ Die semantische Operator-AST folgt in PRIM-03.
45
+ - Action-Result-Handler wie `on success -> reduce ...` erhalten den Effekttext
46
+ und die Source Range. Typisierte Effect-Nodes folgen in PRIM-03/04.
47
+ - Der Compiler ignoriert unbekannte Template-Body-Nodes weiterhin, damit
48
+ bestehende vNext-Core-Builds stabil bleiben. Primitive-Lowering ist PRIM-04.
49
+ - Der RMT-Kernel wird in PRIM-02 nicht ingestiert. Das Source-to-Sea-Gate ist
50
+ PRIM-06.
51
+
52
+ ## Verifikation
53
+
54
+ Direkte lokale Checks:
55
+
56
+ ```bash
57
+ node --check tools/rmt-language/vnext-parser.js
58
+ node --check tests/rmt-language/rmt_vnext_parser_suite.js
59
+ node -e "const { runRmtVNextParserSuite } = require('./tests/rmt-language/rmt_vnext_parser_suite'); const result = runRmtVNextParserSuite(); process.exit(result.ok ? 0 : 1)"
60
+ node -e "const { runRmtVNextCompilerSuite } = require('./tests/rmt-language/rmt_vnext_compiler_suite'); const result = runRmtVNextCompilerSuite(); process.exit(result.ok ? 0 : 1)"
61
+ ```
62
+
63
+ Der globale Runner `node scripts/run_xtend_tests.js rmt-vnext-parser --json`
64
+ ist aktuell durch bestehende Merge-Conflict-Marker in
65
+ `tests/references/reference_path_suite.js` blockiert, weil der Runner diese
66
+ Suite beim Start importiert.
67
+
68
+ ## Handoff
69
+
70
+ - `RMT-VNEXT-PRIM-03`: [RMT vNext Primitive Semantic Graph](./rmt-vnext-primitive-semantic-graph.md)
71
+ baut Indexe, Referenzen und Pre-Runtime-Diagnostics fuer die Primitive-AST-
72
+ Nodes auf.
73
+ - `RMT-VNEXT-PRIM-04`: Primitive-AST und Semantic Graph in Core-/App-Platform-
74
+ Records absenken.
75
+ - Language Server nachziehen: completions, hover, symbols und code actions fuer
76
+ die neuen Node-Typen.