@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,247 @@
1
+ # RMT vNext Primitive Authoring Tooling
2
+
3
+ - Contract: `xtend.rmt.vnext.primitive-authoring-tooling.v1`
4
+ - Workpackage: `RMT-VNEXT-PRIM-07`
5
+ - Status: `completed`
6
+ - Quelle: Media-Manager-Downstream-Transfer, `2026-05-19`
7
+
8
+ ## Ziel
9
+
10
+ `RMT-VNEXT-PRIM-07` macht die neue Primitive-Syntax in der Developer
11
+ Experience sichtbar. App-Autoren sollen State, Selectors, Actions, Events,
12
+ Surfaces, Portals, Overlays und Resources nicht in Legacy-JSON suchen muessen:
13
+ Completions, Hover, Document Symbols und Snippets fuehren direkt durch RMT
14
+ vNext.
15
+
16
+ ## Tooling Surface
17
+
18
+ Die erste PRIM-07-Scheibe erweitert `tools/rmt-language/vnext-tooling.js`.
19
+ Das Modul indexiert nun auch Primitive-Domains aus PRIM-04:
20
+
21
+ - `states`
22
+ - `selectors`
23
+ - `actions`
24
+ - `effects`
25
+ - `portals`
26
+ - `overlays`
27
+ - `resources`
28
+
29
+ Bestehende Domains wie `surfaces`, `events` und `dataSources` bleiben erhalten
30
+ und werden fuer Primitive-Records angereichert.
31
+
32
+ ## Completions
33
+
34
+ Neue Completion-Kontexte:
35
+
36
+ | Context | Zweck |
37
+ | --- | --- |
38
+ | `vnext-primitive-keywords` | top-level Primitive-Keywords wie `state`, `selector`, `action`, `surface`, `resource` |
39
+ | `vnext-primitive-state-clauses` | `type`, `preserve`, `initial` |
40
+ | `vnext-primitive-selector-clauses` | `from state`, `where`, `find`, `sort by`, `output` |
41
+ | `vnext-primitive-action-clauses` | `input`, `reduce`, `effect fetch datasource`, `on success`, `on error`, `emit` |
42
+ | `vnext-primitive-surface-clauses` | `source selector`, `repeat from selector`, `key`, `portal`, `bounds`, `lane visible`, Event- und Lifecycle-Klauseln |
43
+ | `vnext-primitive-resource-kinds` | `object-url`, `stream`, `observer`, `timer`, `lazy-import` |
44
+ | `vnext-primitive-overlay-kinds` | `tooltip`, `toast`, `popover`, `lightbox`, `menu`, `dialog` |
45
+
46
+ Wenn ein Pointer in einer Primitive-Domain liegt, waehlt das Tooling den
47
+ passenden Kontext automatisch.
48
+
49
+ ### Cursor-nahe Completion
50
+
51
+ Die zweite PRIM-07-Scheibe macht Completion ohne expliziten
52
+ `xtend.context` nutzbar. `getRmtVNextToolingCompletions(...)` akzeptiert nun
53
+ eine LSP-Position, loest daraus wenn moeglich den Source-Map-Pointer auf und
54
+ wertet die aktuelle Zeile sowie das Teilwort vor dem Cursor aus.
55
+
56
+ Abgedeckte Authoring-Faelle:
57
+
58
+ - `state ... {` liefert direkt State-Klauseln wie `initial`.
59
+ - `resource ... kind ` liefert Resource-Kinds wie `lazy-import`.
60
+ - Teilwoerter in Action-Bloecken, z. B. `red`, priorisieren Action-Klauseln
61
+ wie `reduce`.
62
+
63
+ Der Language Server reicht `textDocument/completion.position` an das vNext-
64
+ Tooling weiter. Damit bekommen Editoren Primitive-Completions auch dann, wenn
65
+ sie keine XTend-spezifischen Zusatzparameter setzen.
66
+
67
+ ## Hover
68
+
69
+ Hover nutzt die PRIM-04-Core-Records und Source Maps. Beispiele:
70
+
71
+ - `State: media.records`
72
+ - `Action: media.select`
73
+ - `Resource: lightbox.import`
74
+
75
+ Die Hover-Ausgabe enthaelt weiterhin Core Pointer, damit Editor, Compiler und
76
+ Runtime-Evidence dieselbe Primitive-ID nachvollziehen koennen.
77
+
78
+ ## Document Symbols
79
+
80
+ Document Symbols enthalten nun Primitive-Namespaces:
81
+
82
+ ```text
83
+ states
84
+ selectors
85
+ actions
86
+ portals
87
+ overlays
88
+ resources
89
+ surfaces
90
+ events
91
+ ```
92
+
93
+ Damit kann ein Editor eine granulare App Shell aus der Outline heraus
94
+ navigieren, ohne Legacy-Records zu oeffnen.
95
+
96
+ ## Code Actions
97
+
98
+ Die dritte PRIM-07-Scheibe liefert sichere Quick-Fixes fuer Primitive-
99
+ Diagnosen aus `getRmtVNextToolingCodeActions(...)` und ueber
100
+ `textDocument/codeAction` im Language Server.
101
+
102
+ Unterstuetzte erste Reparaturen:
103
+
104
+ - `rmt.vnext.primitive.owner-missing`: ergaenzt `owner surface.<id>` an einer
105
+ Resource-Deklaration, wenn eine Surface im Dokument vorhanden ist.
106
+ - `rmt.vnext.primitive.unkeyed-repeat`: ergaenzt `key instance.id` nach einer
107
+ `repeat from selector`-Klausel.
108
+ - `rmt.vnext.primitive.payload-contract-missing`: ergaenzt einen
109
+ Payload-Contract fuer Event-Bindings oder `emit`-Statements.
110
+
111
+ Die naechste Scheibe erweitert diese Reparaturen um die haeufigsten
112
+ Authoring-Luecken:
113
+
114
+ - `rmt.vnext.primitive.initial-missing`: ergaenzt einen sicheren initial-Wert
115
+ oder einen kleinen `initial {}`-Block.
116
+ - `rmt.vnext.primitive.resource-kind-missing`: ergaenzt `kind object-url` als
117
+ konservativen Resource-Default.
118
+ - `rmt.vnext.primitive.unknown-reference` fuer Selector-Referenzen: erzeugt
119
+ einen source-erhaltenden Selector-Stub aus dem ersten vorhandenen State.
120
+ - `rmt.vnext.primitive.unknown-reference` fuer Portal-Referenzen: erzeugt einen
121
+ Portal-Stub mit stabilem `root` und `layer surface`.
122
+
123
+ Die Action-Authoring-Scheibe ergaenzt ausserdem:
124
+
125
+ - `rmt.vnext.primitive.action-reducer-missing`: ergaenzt ein
126
+ `reduce state.<id> = input.<name>`-Ziel vor dem Action-Ende.
127
+ - `rmt.vnext.primitive.effect-source-missing`: ergaenzt
128
+ `datasource <id>` an einem `effect fetch`.
129
+ - `rmt.vnext.primitive.kernel-boundary`: erzeugt bewusst keinen Textedit,
130
+ sondern ein Command-Action-Handoff, damit Kernel-/Fabric-Imports in einen
131
+ Host-Adapter ausgelagert werden.
132
+
133
+ Die Actions sind absichtlich source-erhaltende Textedits. Sie reparieren die
134
+ naheliegende Authoring-Luecke und lassen weitergehende semantische Probleme
135
+ sichtbar, statt ganze Primitive-Bloecke synthetisch umzuschreiben.
136
+
137
+ ### Code-Action-Previews und Fix-All
138
+
139
+ Die naechste PRIM-07-Scheibe macht die Quick-Fixes editorfreundlicher:
140
+
141
+ - Jede Code Action traegt eine `xtend.rmt.vnext.primitive-code-action-preview.v1`
142
+ Preview mit betroffenen URIs, Edit-Anzahl, erstem veraenderten Source-Line-
143
+ Ausschnitt und Vorher-/Nachher-Zeilen.
144
+ - Sichere Textedit-Actions werden zusaetzlich in
145
+ `source.fixAll.rmt.vnext.primitives` zusammengefasst.
146
+ - Das Fix-All bleibt auf Actions mit `safe: true` und `edit` begrenzt.
147
+ Manuelle Command-Handoffs wie `kernel-boundary` werden nicht automatisch
148
+ angewendet.
149
+ - Der Language Server gibt die Preview im `CodeAction.data.preview`-Feld
150
+ weiter, damit Editoren eine Reparatur anzeigen koennen, bevor sie den
151
+ WorkspaceEdit anwenden.
152
+
153
+ ### Command-Handoff
154
+
155
+ Manuelle Boundary-Faelle bekommen jetzt ebenfalls eine stabile Editor-
156
+ Erfahrung:
157
+
158
+ - Der Language Server meldet `executeCommandProvider.commands` mit
159
+ `xtend.rmt.vnext.extractKernelImport`.
160
+ - `workspace/executeCommand` erzeugt fuer diesen Command ein
161
+ `xtend.rmt.vnext.primitive-command-handoff.v1` Ergebnis.
162
+ - Das Ergebnis bleibt `safe: false`, `edit: null` und `status:
163
+ "manual_handoff"`, weil Kernel-/Fabric-Imports nicht automatisch in RMT
164
+ vNext-Source geschrieben werden duerfen.
165
+ - Der Handoff benennt die Boundary
166
+ `no-kernel-fabric-imports-in-vnext-source` und fuehrt den Zielort
167
+ `xtend-rmt-host-adapter`, damit Editoren einen klaren manuellen Apply-Pfad
168
+ anzeigen koennen.
169
+
170
+ ### VS Code Bridge Apply Experience
171
+
172
+ Die VS-Code-Bridge bietet nun eine erste sichtbare Authoring-Erfahrung fuer
173
+ die drei Apply-Pfade:
174
+
175
+ - `XTendRMT: Show vNext Primitive Apply Experience` rendert einen
176
+ `xtend.rmt.editor.vscode-primitive-authoring-experience.v1` Report im
177
+ Output Channel.
178
+ - `XTendRMT: Show vNext Primitive Code Action Preview` zeigt den Preview-
179
+ Ausschnitt einer einzelnen Code Action.
180
+ - `XTendRMT: Show vNext Primitive Command Handoff` zeigt manuelle Boundary-
181
+ Handoffs ohne WorkspaceEdit.
182
+
183
+ Die Bridge bleibt bewusst duenn: sie klassifiziert bereits vom Language Server
184
+ gelieferte Actions in `workspace-edit`, `fix-all` und `manual-command` und
185
+ macht diese Pfade sichtbar. Der LSP bleibt die Source of Truth fuer Diagnose,
186
+ Preview und Command-Handoff.
187
+
188
+ ### Aktive VS-Code-Dokument-Integration
189
+
190
+ Die abschliessende PRIM-07-Scheibe verbindet die Bridge mit dem aktiven
191
+ `.rmt`-Dokument:
192
+
193
+ - `createActiveDocumentPrimitiveAuthoringExperience(...)` liest das aktive
194
+ Dokument, startet den lokalen RMT Language Server in-process und ruft
195
+ `textDocument/codeAction` gegen echte LSP-Diagnosen ab.
196
+ - `XTendRMT: Show vNext Primitive Apply Experience` kann ohne uebergebenen
197
+ Report direkt aus dem aktiven Dokument eine QuickPick-Auswahl fuer Preview,
198
+ Fix-All und manuelle Handoffs aufbauen.
199
+ - `applyPrimitiveAuthoringWorkspaceEdit(...)` wendet nur sichere
200
+ WorkspaceEdits an. `kernel-boundary`-Actions bleiben blockiert, weil sie
201
+ `edit: null` tragen und in einen Host-Adapter ueberfuehrt werden muessen.
202
+ - `XTendRMT: Apply Safe vNext Primitive Fix-All` wendet ausschliesslich
203
+ `source.fixAll.rmt.vnext.primitives` an. Wenn kein sicherer Fix-All
204
+ verfuegbar ist, rendert die Bridge den aktuellen Apply-Report statt blind
205
+ einzelne Edits auszufuehren.
206
+
207
+ Damit ist PRIM-07 nicht mehr nur ein LSP-/Dokumentationspaket: Die
208
+ Editor-Bruecke kann vNext-Primitive-Reparaturen aus echtem Source-Kontext
209
+ auswaehlen, previewen und sicher anwenden, waehrend Boundary-Handoffs sichtbar
210
+ und manuell bleiben.
211
+
212
+ ## Snippet
213
+
214
+ Neues Snippet:
215
+
216
+ ```text
217
+ RMT vNext Primitive Shell
218
+ ```
219
+
220
+ Prefix:
221
+
222
+ ```text
223
+ rmt-vnext-primitive-shell
224
+ ```
225
+
226
+ Das Snippet erzeugt eine kleine App Shell mit State, Selector, Action, Portal,
227
+ Surface, sichtbarer Lane und Event-Payload-Contract.
228
+
229
+ ## Lokale Gates
230
+
231
+ ```bash
232
+ node --check tools/rmt-language/vnext-tooling.js
233
+ node --check tests/rmt-language/rmt_vnext_tooling_suite.js
234
+ node -e "const suite=require('./tests/rmt-language/rmt_vnext_tooling_suite'); const result=suite.runRmtVNextToolingSuite({rootDir:process.cwd()}); process.exit(result.ok ? 0 : 1);"
235
+ ```
236
+
237
+ Der globale Runner fuehrt `rmt-vnext-tooling` und `rmt-editor-packaging` als
238
+ Release-Gates aus. Die VS-Code-Bridge wird ueber
239
+ `node scripts/run_xtend_tests.js rmt-editor-packaging --json` gegen aktive
240
+ Dokument-CodeActions, Safe-Fix-All und blockierte Kernel-Boundary-Handoffs
241
+ geprueft.
242
+
243
+ ## Naechster Handoff
244
+
245
+ `RMT-VNEXT-PRIM-07` ist abgeschlossen. Weitere Editor-Arbeit kann auf dieser
246
+ Bridge aufsetzen, etwa echte LanguageClient-Verpackung oder UI-spezifische
247
+ Preview-Panels; der vNext-Primitive-Authoring-Pfad selbst ist release-gated.
@@ -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.