@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
@@ -18,7 +18,17 @@ const TOP_LEVEL_DOMAINS = Object.freeze([
18
18
  ['components', 'array', 'Component records and XTend custom element bindings.'],
19
19
  ['routes', 'array', 'Route records for router adapters.'],
20
20
  ['schedules', 'array', 'Scheduler policies and endpoint names.'],
21
- ['surfaces', 'array', 'Surface records for WindowManager, SidePanel and overlay adapter handoff.'],
21
+ ['state', 'array', 'Typed App State records.'],
22
+ ['selectors', 'array', 'Derived selector records.'],
23
+ ['dataSources', 'array', 'Fixture, REST, SSR or host data source records.'],
24
+ ['actions', 'array', 'Declarative action records.'],
25
+ ['effects', 'array', 'Feedback, navigation, focus and lazy import effects.'],
26
+ ['resources', 'array', 'Owned object URL, stream, observer, timer and import resources.'],
27
+ ['events', 'array', 'Declarative event bindings with payload contracts.'],
28
+ ['portals', 'array', 'Generic overlay portal layer definitions.'],
29
+ ['overlays', 'array', 'Tooltip, toast, popover, lightbox, menu and dialog overlay definitions.'],
30
+ ['records', 'object', 'Named fixture or SSR record collections.'],
31
+ ['surfaces', 'array', 'Generic keyed Surface Graph records.'],
22
32
  ['templates', 'array', 'Template records and DOM descriptors.'],
23
33
  ['diagnostics', 'object', 'Optional diagnostics and gate metadata.'],
24
34
  ['extensionSlots', 'object', 'Optional host extension slots.']
@@ -30,7 +40,16 @@ const DOMAIN_FIELD_COMPLETIONS = Object.freeze({
30
40
  components: ['id', 'kind', 'adapter', 'tag', 'schedule', 'props', 'attributes', 'slots', 'events', 'hydration', 'metadata'],
31
41
  routes: ['id', 'path', 'router', 'component', 'template', 'shell', 'schedule', 'documentTitle', 'metaDescription', 'metadata'],
32
42
  schedules: ['id', 'endpointName', 'lane', 'fiber', 'priority', 'budgetMs', 'deadlineMs', 'preferIdle', 'coalesceKey'],
33
- surfaces: ['id', 'schema', 'type', 'adapter', 'manager', 'component', 'route', 'schedule', 'stateKey', 'defaultOpen', 'active', 'bounds', 'placement', 'mode', 'layer', 'capabilities', 'a11y', 'persistence', 'metadata'],
43
+ state: ['id', 'type', 'schema', 'initial', 'preserve', 'metadata'],
44
+ selectors: ['id', 'from', 'compute', 'output', 'structural', 'metadata'],
45
+ dataSources: ['id', 'kind', 'endpoint', 'adapter', 'records', 'payload', 'resultPath', 'contract', 'metadata'],
46
+ actions: ['id', 'datasource', 'resultState', 'loadingState', 'statusState', 'resourceOwner', 'effects', 'resources', 'cancelable', 'metadata'],
47
+ effects: ['id', 'kind', 'target', 'message', 'path', 'severity', 'resource', 'resources', 'metadata'],
48
+ resources: ['id', 'kind', 'owner', 'source', 'importId', 'delayMs', 'metadata'],
49
+ events: ['id', 'kind', 'event', 'target', 'component', 'owner', 'action', 'payload', 'payloadContract', 'governance', 'metadata'],
50
+ portals: ['id', 'root', 'layer', 'policy', 'focusPolicy', 'pointerPolicy', 'scrollPolicy', 'zIndexStart', 'zStep', 'metadata'],
51
+ overlays: ['id', 'kind', 'portal', 'layer', 'surface', 'resources', 'dismissible', 'singleton', 'focusPolicy', 'escapePolicy', 'pointerPolicy', 'scrollPolicy', 'metadata'],
52
+ surfaces: ['id', 'schema', 'kind', 'type', 'source', 'repeat', 'key', 'owner', 'portal', 'adapter', 'manager', 'component', 'template', 'route', 'schedule', 'resources', 'bounds', 'placement', 'mode', 'initialState', 'persistent', 'closeReleasesResources', 'destroyOnClose', 'metadata'],
34
53
  templates: ['id', 'mode', 'nodes', 'slots', 'hydration', 'metadata', 'security'],
35
54
  routeMetadata: ['title', 'documentTitle', 'titleTemplate', 'metaDescription', 'contentKind', 'announcement', 'a11y'],
36
55
  hydrationMetadata: ['endpointHint', 'scheduleRef', 'policy', 'deferUntil']
@@ -73,12 +92,54 @@ const TEMPLATE_MODES = Object.freeze([
73
92
 
74
93
  const SURFACE_TYPES = Object.freeze([
75
94
  ['window', 'Movable and resizable workspace window.'],
95
+ ['panel', 'Dockable or responsive app panel.'],
96
+ ['overlay-host', 'Invisible owner surface for overlay lifecycle.'],
76
97
  ['side-panel', 'Docked, pinned, collapsed or responsive side panel.'],
77
98
  ['modal', 'Modal overlay surface in the shared stack.'],
78
99
  ['dialog', 'Dialog overlay surface in the shared stack.'],
79
100
  ['drawer', 'Drawer overlay surface in the shared stack.']
80
101
  ]);
81
102
 
103
+ const OVERLAY_KINDS = Object.freeze([
104
+ ['tooltip', 'Viewport-fixed hint overlay.'],
105
+ ['toast', 'Nonmodal feedback overlay.'],
106
+ ['popover', 'Anchored interactive overlay.'],
107
+ ['lightbox', 'Modal media or detail overlay.'],
108
+ ['menu', 'Keyboard navigable menu overlay.'],
109
+ ['dialog', 'Modal or nonmodal dialog overlay.']
110
+ ]);
111
+
112
+ const PORTAL_POLICIES = Object.freeze([
113
+ ['stacked', 'Generic stacked app layer.'],
114
+ ['modal', 'Blocks interaction below the portal.'],
115
+ ['nonmodal', 'Allows interaction outside the portal.'],
116
+ ['toast-region', 'Feedback region for transient messages.'],
117
+ ['clipping-escape', 'Viewport layer that escapes clipping containers.']
118
+ ]);
119
+
120
+ const RESOURCE_KINDS = Object.freeze([
121
+ ['object-url', 'Object URL resource with revoke cleanup.'],
122
+ ['stream', 'Stream resource with open and close lifecycle.'],
123
+ ['observer', 'Observer resource with disconnect cleanup.'],
124
+ ['timer', 'Timer or idle handle resource.'],
125
+ ['lazy-import', 'Lazy module import resource.']
126
+ ]);
127
+
128
+ const EVENT_KINDS = Object.freeze([
129
+ ['dom', 'DOM event binding.'],
130
+ ['custom', 'Custom component event binding.'],
131
+ ['keyboard', 'Keyboard event binding.'],
132
+ ['form', 'Form event binding.'],
133
+ ['surface', 'Surface lifecycle event binding.'],
134
+ ['drop', 'Drag and drop event binding.']
135
+ ]);
136
+
137
+ const SURFACE_STATES = Object.freeze([
138
+ ['closed', 'Surface starts closed.'],
139
+ ['open', 'Surface starts open.'],
140
+ ['minimized', 'Surface starts minimized.']
141
+ ]);
142
+
82
143
  function normalizeString(value) {
83
144
  return typeof value === 'string' ? value.trim() : '';
84
145
  }
@@ -214,6 +275,24 @@ function referenceItems(graph, domain, options = {}) {
214
275
  }));
215
276
  }
216
277
 
278
+ function documentIds(graph, domain) {
279
+ const document = graph && graph.sourceDocument && typeof graph.sourceDocument === 'object' ? graph.sourceDocument : {};
280
+ return toArray(document[domain])
281
+ .map((record) => normalizeString(record && record.id))
282
+ .filter(Boolean);
283
+ }
284
+
285
+ function documentReferenceItems(graph, domain, detail) {
286
+ return documentIds(graph, domain).map((id) => createCompletionItem({
287
+ label: id,
288
+ kind: 'reference',
289
+ detail,
290
+ documentation: `Referenz auf ${domain}[*].id.`,
291
+ source: 'rmt-app-platform-document',
292
+ targetDomain: domain
293
+ }));
294
+ }
295
+
217
296
  function inferCompletionContext(input = {}) {
218
297
  if (input.context) {
219
298
  return input.context;
@@ -263,10 +342,38 @@ function inferCompletionContext(input = {}) {
263
342
  return 'route-paths';
264
343
  }
265
344
 
266
- if ((field === 'type' || /\/type$/.test(pointer)) && (pointer.includes('/surfaces/') || domain === 'surfaces')) {
345
+ if ((field === 'type' || field === 'kind' || /\/(type|kind)$/.test(pointer)) && (pointer.includes('/surfaces/') || domain === 'surfaces')) {
267
346
  return 'surface-types';
268
347
  }
269
348
 
349
+ if ((field === 'kind' || /\/kind$/.test(pointer)) && (pointer.includes('/overlays/') || domain === 'overlays')) {
350
+ return 'overlay-kinds';
351
+ }
352
+
353
+ if ((field === 'kind' || /\/kind$/.test(pointer)) && (pointer.includes('/resources/') || domain === 'resources')) {
354
+ return 'resource-kinds';
355
+ }
356
+
357
+ if ((field === 'kind' || /\/kind$/.test(pointer)) && (pointer.includes('/events/') || domain === 'events')) {
358
+ return 'event-kinds';
359
+ }
360
+
361
+ if (field === 'portal' || /\/portal$/.test(pointer)) {
362
+ return 'portal-ids';
363
+ }
364
+
365
+ if (field === 'resources' || /\/resources(?:\/\d+)?$/.test(pointer)) {
366
+ return 'resource-ids';
367
+ }
368
+
369
+ if ((field === 'policy' || /\/policy$/.test(pointer)) && (pointer.includes('/portals/') || domain === 'portals')) {
370
+ return 'portal-policies';
371
+ }
372
+
373
+ if ((field === 'initialState' || field === 'state' || /\/(initialState|state)$/.test(pointer)) && (pointer.includes('/surfaces/') || domain === 'surfaces')) {
374
+ return 'surface-states';
375
+ }
376
+
270
377
  if (field === 'mode' || /\/mode$/.test(pointer)) {
271
378
  return pointer.includes('/hydration/') || domain === 'hydration' ? 'hydration-policies' : 'template-modes';
272
379
  }
@@ -295,6 +402,30 @@ function inferCompletionContext(input = {}) {
295
402
  return 'surface-fields';
296
403
  }
297
404
 
405
+ if (/^\/portals\/\d+$/.test(pointer) || domain === 'portals') {
406
+ return 'portal-fields';
407
+ }
408
+
409
+ if (/^\/overlays\/\d+$/.test(pointer) || domain === 'overlays') {
410
+ return 'overlay-fields';
411
+ }
412
+
413
+ if (/^\/resources\/\d+$/.test(pointer) || domain === 'resources') {
414
+ return 'resource-fields';
415
+ }
416
+
417
+ if (/^\/events\/\d+$/.test(pointer) || domain === 'events') {
418
+ return 'event-fields';
419
+ }
420
+
421
+ if (/^\/actions\/\d+$/.test(pointer) || domain === 'actions') {
422
+ return 'action-fields';
423
+ }
424
+
425
+ if (/^\/dataSources\/\d+$/.test(pointer) || domain === 'dataSources') {
426
+ return 'data-source-fields';
427
+ }
428
+
298
429
  if (/^\/adapters\/\d+$/.test(pointer) || domain === 'adapters') {
299
430
  return 'adapter-fields';
300
431
  }
@@ -336,6 +467,18 @@ function buildContextItems(graph, context, options = {}) {
336
467
  return domainFieldItems('schedules', 'schedules[*]');
337
468
  case 'surface-fields':
338
469
  return domainFieldItems('surfaces', 'surfaces[*]');
470
+ case 'portal-fields':
471
+ return domainFieldItems('portals', 'portals[*]');
472
+ case 'overlay-fields':
473
+ return domainFieldItems('overlays', 'overlays[*]');
474
+ case 'resource-fields':
475
+ return domainFieldItems('resources', 'resources[*]');
476
+ case 'event-fields':
477
+ return domainFieldItems('events', 'events[*]');
478
+ case 'action-fields':
479
+ return domainFieldItems('actions', 'actions[*]');
480
+ case 'data-source-fields':
481
+ return domainFieldItems('dataSources', 'dataSources[*]');
339
482
  case 'template-fields':
340
483
  return domainFieldItems('templates', 'templates[*]');
341
484
  case 'hydration-metadata-fields':
@@ -383,6 +526,40 @@ function buildContextItems(graph, context, options = {}) {
383
526
  detail: 'Surface Type aus aktivem Dokument',
384
527
  source: 'semantic-graph.catalogHints'
385
528
  })));
529
+ case 'overlay-kinds':
530
+ return createStaticItems(OVERLAY_KINDS, {
531
+ kind: 'enum',
532
+ detail: 'RMT Overlay Kind',
533
+ source: 'rmt-app-platform-overlay-catalog'
534
+ });
535
+ case 'portal-policies':
536
+ return createStaticItems(PORTAL_POLICIES, {
537
+ kind: 'enum',
538
+ detail: 'RMT Portal Policy',
539
+ source: 'rmt-app-platform-portal-catalog'
540
+ });
541
+ case 'resource-kinds':
542
+ return createStaticItems(RESOURCE_KINDS, {
543
+ kind: 'enum',
544
+ detail: 'RMT Resource Kind',
545
+ source: 'rmt-app-platform-resource-catalog'
546
+ });
547
+ case 'event-kinds':
548
+ return createStaticItems(EVENT_KINDS, {
549
+ kind: 'enum',
550
+ detail: 'RMT Event Kind',
551
+ source: 'rmt-app-platform-event-catalog'
552
+ });
553
+ case 'surface-states':
554
+ return createStaticItems(SURFACE_STATES, {
555
+ kind: 'enum',
556
+ detail: 'RMT Surface Initial State',
557
+ source: 'rmt-app-platform-surface-state-catalog'
558
+ });
559
+ case 'portal-ids':
560
+ return documentReferenceItems(graph, 'portals', 'Portal ID');
561
+ case 'resource-ids':
562
+ return documentReferenceItems(graph, 'resources', 'Resource ID');
386
563
  case 'hydration-policies':
387
564
  return createStaticItems(HYDRATION_POLICIES, {
388
565
  kind: 'enum',
@@ -455,7 +632,10 @@ function getRmtCompletions(input = {}, options = {}) {
455
632
  module.exports = {
456
633
  BUILT_IN_ADAPTER_IDS,
457
634
  DOMAIN_FIELD_COMPLETIONS,
635
+ EVENT_KINDS,
458
636
  HYDRATION_POLICIES,
637
+ OVERLAY_KINDS,
638
+ PORTAL_POLICIES,
459
639
  RMT_COMPLETION_ITEM_SCHEMA,
460
640
  RMT_COMPLETION_MODULE_PATH,
461
641
  RMT_COMPLETION_PACKAGE_SCRIPT,
@@ -463,7 +643,9 @@ module.exports = {
463
643
  RMT_COMPLETION_REPORT_SCHEMA,
464
644
  RMT_COMPLETION_SUITE_PATH,
465
645
  RMT_COMPLETION_WORKPACKAGE,
646
+ RESOURCE_KINDS,
466
647
  SCHEDULE_LANES,
648
+ SURFACE_STATES,
467
649
  SURFACE_TYPES,
468
650
  TEMPLATE_MODES,
469
651
  TOP_LEVEL_DOMAINS,
@@ -32,15 +32,29 @@ const SEVERITY_ORDER = {
32
32
  const DEFAULT_ALLOWED_TOP_LEVEL_DOMAINS = Object.freeze([
33
33
  'kind',
34
34
  'version',
35
+ 'schema',
35
36
  'manifest',
36
37
  'adapters',
37
38
  'components',
38
39
  'routes',
39
40
  'schedules',
40
41
  'surfaces',
42
+ 'portals',
43
+ 'overlays',
44
+ 'state',
45
+ 'states',
46
+ 'selectors',
47
+ 'dataSources',
48
+ 'datasources',
49
+ 'actions',
50
+ 'effects',
51
+ 'resources',
52
+ 'events',
53
+ 'records',
41
54
  'templates',
42
55
  'diagnostics',
43
56
  'extensionSlots',
57
+ 'acceptance',
44
58
  'metadata'
45
59
  ]);
46
60
 
@@ -169,6 +183,46 @@ const DIAGNOSTIC_CATALOG = Object.freeze({
169
183
  severity: 'warning',
170
184
  category: 'migration',
171
185
  repair: { kind: 'replace-field-value', title: 'Feld auf aktuellen Domain-Contract migrieren', safe: false }
186
+ },
187
+ 'rmt.app.no-manual-shell.html-sink': {
188
+ severity: 'error',
189
+ category: 'security',
190
+ repair: { kind: 'replace-with-dom-descriptor', title: 'DOM Descriptor oder Component Template verwenden', safe: false }
191
+ },
192
+ 'rmt.app.unsafe-html.boundary-missing': {
193
+ severity: 'warning',
194
+ category: 'security',
195
+ repair: { kind: 'add-trusted-dom-boundary', title: 'Trusted-DOM-Boundary explizit setzen', safe: true }
196
+ },
197
+ 'rmt.app.repeat.key.missing': {
198
+ severity: 'error',
199
+ category: 'state',
200
+ repair: { kind: 'add-key', title: 'Stabilen key fuer repeat setzen', safe: true }
201
+ },
202
+ 'rmt.app.event.payload-contract.missing': {
203
+ severity: 'error',
204
+ category: 'events',
205
+ repair: { kind: 'add-payload-contract', title: 'Payload Contract fuer Event Binding ergaenzen', safe: true }
206
+ },
207
+ 'rmt.app.resource.ownership.missing': {
208
+ severity: 'warning',
209
+ category: 'lifecycle',
210
+ repair: { kind: 'add-owner-template', title: 'Resource Owner deklarieren', safe: true }
211
+ },
212
+ 'rmt.app.resource.unresolved': {
213
+ severity: 'error',
214
+ category: 'references',
215
+ repair: { kind: 'create-resource', title: 'Resource Record anlegen oder Referenz korrigieren', safe: true }
216
+ },
217
+ 'rmt.app.portal.unresolved': {
218
+ severity: 'error',
219
+ category: 'references',
220
+ repair: { kind: 'create-portal', title: 'Portal Record anlegen oder Referenz korrigieren', safe: true }
221
+ },
222
+ 'rmt.app.surface.source.unresolved': {
223
+ severity: 'warning',
224
+ category: 'references',
225
+ repair: { kind: 'create-record-source', title: 'Record Source, DataSource oder State deklarieren', safe: true }
172
226
  }
173
227
  });
174
228
 
@@ -4,8 +4,14 @@ const {
4
4
  const {
5
5
  BUILT_IN_ADAPTER_IDS,
6
6
  DOMAIN_FIELD_COMPLETIONS,
7
+ EVENT_KINDS,
7
8
  HYDRATION_POLICIES,
9
+ OVERLAY_KINDS,
10
+ PORTAL_POLICIES,
11
+ RESOURCE_KINDS,
8
12
  SCHEDULE_LANES,
13
+ SURFACE_STATES,
14
+ SURFACE_TYPES,
9
15
  TEMPLATE_MODES,
10
16
  TOP_LEVEL_DOMAINS,
11
17
  loadComponentManifest
@@ -227,6 +233,36 @@ function inferStaticHover(graph, pointer, options = {}) {
227
233
  return entry ? createStaticHover(graph, pointer, 'lane', stringValue, entry, 'rmt-lane-catalog') : null;
228
234
  }
229
235
 
236
+ if ((field === 'type' || field === 'kind') && pointer.startsWith('/surfaces/')) {
237
+ const entry = lookupEntry(SURFACE_TYPES, stringValue);
238
+ return entry ? createStaticHover(graph, pointer, 'surface-kind', stringValue, entry, 'rmt-surface-type-catalog') : null;
239
+ }
240
+
241
+ if (field === 'kind' && pointer.startsWith('/overlays/')) {
242
+ const entry = lookupEntry(OVERLAY_KINDS, stringValue);
243
+ return entry ? createStaticHover(graph, pointer, 'overlay-kind', stringValue, entry, 'rmt-app-platform-overlay-catalog') : null;
244
+ }
245
+
246
+ if (field === 'kind' && pointer.startsWith('/resources/')) {
247
+ const entry = lookupEntry(RESOURCE_KINDS, stringValue);
248
+ return entry ? createStaticHover(graph, pointer, 'resource-kind', stringValue, entry, 'rmt-app-platform-resource-catalog') : null;
249
+ }
250
+
251
+ if (field === 'kind' && pointer.startsWith('/events/')) {
252
+ const entry = lookupEntry(EVENT_KINDS, stringValue);
253
+ return entry ? createStaticHover(graph, pointer, 'event-kind', stringValue, entry, 'rmt-app-platform-event-catalog') : null;
254
+ }
255
+
256
+ if (field === 'policy' && pointer.startsWith('/portals/')) {
257
+ const entry = lookupEntry(PORTAL_POLICIES, stringValue);
258
+ return entry ? createStaticHover(graph, pointer, 'portal-policy', stringValue, entry, 'rmt-app-platform-portal-catalog') : null;
259
+ }
260
+
261
+ if ((field === 'initialState' || field === 'state') && pointer.startsWith('/surfaces/')) {
262
+ const entry = lookupEntry(SURFACE_STATES, stringValue);
263
+ return entry ? createStaticHover(graph, pointer, 'surface-state', stringValue, entry, 'rmt-app-platform-surface-state-catalog') : null;
264
+ }
265
+
230
266
  if (field === 'mode' && pointer.includes('/hydration/')) {
231
267
  const entry = lookupEntry(HYDRATION_POLICIES, stringValue);
232
268
  return entry ? createStaticHover(graph, pointer, 'hydration-policy', stringValue, entry, 'rmt-hydration-policy-catalog') : null;
@@ -88,9 +88,16 @@ export interface RmtDefinitionTarget {
88
88
  export interface RmtCodeAction {
89
89
  title: string;
90
90
  kind?: string;
91
+ diagnosticCode?: string;
92
+ pointer?: string;
93
+ safe?: boolean;
94
+ confidence?: string;
91
95
  diagnostics?: RmtToolingDiagnostic[];
92
96
  edit?: RmtWorkspaceEdit;
93
97
  command?: RmtCommand;
98
+ preview?: RmtJsonValue;
99
+ fixAllActionCount?: number | null;
100
+ diagnosticCodes?: string[];
94
101
  isPreferred?: boolean;
95
102
  data?: RmtJsonValue;
96
103
  }
@@ -0,0 +1,39 @@
1
+ const {
2
+ lintAppPlatformDocument
3
+ } = require('../app-platform-tooling');
4
+
5
+ function isAppPlatformDocument(document = {}) {
6
+ const metadata = document.manifest && document.manifest.metadata && typeof document.manifest.metadata === 'object'
7
+ ? document.manifest.metadata
8
+ : {};
9
+ const contract = typeof metadata.contractVersion === 'string' ? metadata.contractVersion : '';
10
+ return contract.includes('epic18')
11
+ || Array.isArray(document.portals)
12
+ || Array.isArray(document.overlays)
13
+ || Array.isArray(document.resources)
14
+ || Array.isArray(document.events)
15
+ || Array.isArray(document.actions)
16
+ || Array.isArray(document.dataSources);
17
+ }
18
+
19
+ function createAppPlatformPolicyRule() {
20
+ return {
21
+ id: 'rmt.app-platform-policy',
22
+ description: 'Validiert Epic-18 App-Platform Primitives fuer Surfaces, Portals, Events und Resources.',
23
+ defaultSeverity: 'error',
24
+ run(context) {
25
+ if (!isAppPlatformDocument(context.document)) return [];
26
+ return lintAppPlatformDocument(context.document, {
27
+ sourceModel: context.sourceModel
28
+ }).map((diagnostic) => ({
29
+ ...diagnostic,
30
+ ruleId: 'rmt.app-platform-policy'
31
+ }));
32
+ }
33
+ };
34
+ }
35
+
36
+ module.exports = {
37
+ createAppPlatformPolicyRule,
38
+ isAppPlatformDocument
39
+ };
@@ -13,6 +13,9 @@ const {
13
13
  const {
14
14
  createTemplatePolicyRule
15
15
  } = require('./template-policy');
16
+ const {
17
+ createAppPlatformPolicyRule
18
+ } = require('./app-platform-policy');
16
19
 
17
20
  function getDefaultRmtLinterRules() {
18
21
  return [
@@ -20,7 +23,8 @@ function getDefaultRmtLinterRules() {
20
23
  createRoutePolicyRule(),
21
24
  createTemplatePolicyRule(),
22
25
  createSchedulerPolicyRule(),
23
- createBoundaryPolicyRule()
26
+ createBoundaryPolicyRule(),
27
+ createAppPlatformPolicyRule()
24
28
  ];
25
29
  }
26
30
 
@@ -2,7 +2,9 @@ export * from './rmt-tooling-public-types';
2
2
  import type { RmtToolingConstant, RmtToolingFactory, RmtToolingFunction } from './rmt-tooling-public-types';
3
3
 
4
4
  export declare const buildSemanticGraph: RmtToolingFactory;
5
+ export declare const buildRmtVNextPrimitiveSemanticGraph: RmtToolingFactory;
5
6
  export declare const createSemanticDiagnostic: RmtToolingFactory;
7
+ export declare const createVNextPrimitiveDiagnostic: RmtToolingFactory;
6
8
  export declare const DOMAIN_NAMES: RmtToolingConstant;
7
9
  export declare const DUPLICATE_ID_CODE: RmtToolingConstant;
8
10
  export declare const DUPLICATE_ROUTE_PATH_CODE: RmtToolingConstant;
@@ -16,3 +18,7 @@ export declare const RMT_SEMANTIC_GRAPH_REPORT_SCHEMA: RmtToolingConstant;
16
18
  export declare const RMT_SEMANTIC_GRAPH_SCHEMA: RmtToolingConstant;
17
19
  export declare const RMT_SEMANTIC_GRAPH_SUITE_PATH: RmtToolingConstant;
18
20
  export declare const RMT_SEMANTIC_GRAPH_WORKPACKAGE: RmtToolingConstant;
21
+ export declare const RMT_VNEXT_PRIMITIVE_DIAGNOSTIC_CODES: RmtToolingConstant;
22
+ export declare const RMT_VNEXT_PRIMITIVE_DOMAIN_NAMES: RmtToolingConstant;
23
+ export declare const RMT_VNEXT_PRIMITIVE_SEMANTIC_GRAPH_SCHEMA: RmtToolingConstant;
24
+ export declare const RMT_VNEXT_PRIMITIVE_SEMANTIC_GRAPH_WORKPACKAGE: RmtToolingConstant;