@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,56 @@
1
+ # Screenreader Signals
2
+
3
+ - Contract: `xtend.docs.screenreader-signals.v1`
4
+ - Runtime-/Gate-Contract: `xtend.a11y.screenreader-signals.v1`
5
+ - Signal Record: `xtend.a11y.screenreader-signal.v1`
6
+ - Gate: `node scripts/run_xtend_tests.js screenreader-signals --json`
7
+
8
+ ## Zweck
9
+
10
+ Screenreader-Signale machen sichtbar, welche UI-Zustandswechsel nicht still bleiben duerfen. Der Contract beschreibt `aria-live`, Statusregionen, Errorregionen und Announcements, ohne eine bestimmte UI-Runtime in XTendRMT einzubetten.
11
+
12
+ XTend nutzt den Contract fuer Komponenten und Scaffold-Artefakte. XTendRMT kann die resultierende A11y-Arbeit ueber Fabric-Lane `a11y`, Fiber `a11y.announce` und Schedule `a11y.user-blocking.announce` schedulen.
13
+
14
+ ## Signalarten
15
+
16
+ | Signal | Live Region | Region | Typischer Einsatz |
17
+ |--------|-------------|--------|-------------------|
18
+ | `status-announcement` | `polite` | `status` | Toasts, Alerts, Submit-Erfolg |
19
+ | `dismissal-announcement` | `polite` | `status` | Toast/Alert wurde geschlossen |
20
+ | `validation-error-summary` | `assertive` | `error` | Formular- oder Input-Fehler |
21
+ | `submit-status` | `polite` | `status` | Formular erfolgreich verarbeitet |
22
+ | `dialog-context` | `none` | `dialog` | Dialog-/Modal-Kontext via Rolle und Label |
23
+ | `focus-return` | `none` | `focus` | Fokus geht nach Overlay-Schluss zur Quelle zurueck |
24
+ | `route-change-announcement` | `polite` | `status` | Route wurde gewechselt |
25
+
26
+ ## Komponentenpflichten
27
+
28
+ Feedback-Komponenten deklarieren Statussignale und setzen eine Live-Region. Fehlerzustaende duerfen assertiv sein, muessen aber reviewbar bleiben.
29
+
30
+ Form-Komponenten deklarieren mindestens `validation-error-summary` und `submit-status`. Errorregionen brauchen eine klare Quelle und duerfen leere Announcements nicht als Erfolg werten.
31
+
32
+ Overlay-Komponenten deklarieren `dialog-context` und `focus-return`. Sie brauchen nicht zwingend `aria-live`, weil der Screenreader-Kontext ueber `role="dialog"`, `aria-modal`, `aria-labelledby` und Fokusmanagement entsteht.
33
+
34
+ ## Scaffold
35
+
36
+ Neue Scaffold-Komponenten enthalten den Screenreader-Contract in:
37
+
38
+ - `xtendScaffoldA11yProfile.screenreader.signalContract`
39
+ - Manifest-Key `screenreaderSignals`
40
+ - Component-Doku Abschnitt `Screenreader-Signale`
41
+ - Fixture-Ergebnis `screenreaderSignals`
42
+ - Type Contract `ScreenreaderSignalContract`
43
+
44
+ ## Verifikation
45
+
46
+ ```bash
47
+ npm run test:screenreader-signals
48
+ node scripts/run_xtend_tests.js screenreader-signals --json
49
+ node scripts/run_xtend_tests.js a11y-hydration --json
50
+ ```
51
+
52
+ Der Gate prueft die Contract-Fabrik, reale Feedback-/Form-/Overlay-Komponenten, Scaffold-Ausgaben und Package-Metadaten.
53
+
54
+ ## Grenzen
55
+
56
+ Der Contract ist kein Ersatz fuer manuelle Screenreader-Abnahme. Er verhindert aber, dass relevante Status-, Fehler- oder Overlay-Signale unbenannt bleiben.
@@ -0,0 +1,100 @@
1
+ # XTend Supply-Chain Gates
2
+
3
+ - Status: Active ab `ER-WP-30`
4
+ - Docs Contract: `xtend.docs.supply-chain-gates.v1`
5
+ - Supply-Chain Contract: `xtend.security.supply-chain-gate-plan.v1`
6
+ - Dependency Audit Gate: `xtend.security.dependency-audit-gate.v1`
7
+ - License Policy: `xtend.security.license-policy.v1`
8
+ - Vulnerability Policy: `xtend.security.vulnerability-policy.v1`
9
+ - Release Gate: `xtend.security.release-supply-chain-gate.v1`
10
+
11
+ ## Uebersicht
12
+
13
+ XTend ist fuer RC1-Publish-Prep als scoped Public-Package-Flaeche vorbereitet. Supply-Chain-Gates kontrollieren dafuer Dependencies, Lizenzen, Vulnerabilities, SBOM, Provenance und die installierbare Package-Oberflaeche.
14
+
15
+ Der lokale Default-Pfad ist offline und reproduzierbar. Er fragt keine npm Registry ab.
16
+
17
+ ## Lokale Checks
18
+
19
+ ```bash
20
+ node scripts/verify_supply_chain_policy.js --json
21
+ node scripts/run_xtend_tests.js supply-chain --json
22
+ npm run test:supply-chain
23
+ ```
24
+
25
+ Der Verify prueft:
26
+
27
+ - `private: false` fuer RC1-Publish-Prep
28
+ - `license: "Apache-2.0"` fuer den kompletten XTend-Stack
29
+ - `publishConfig.provenance = true`
30
+ - Export von `security/supply-chain-gate-policy.js`
31
+ - Release-Gate-Metadaten in `package.json`
32
+ - Dependency-Inventar und Lockfile-Pflicht
33
+
34
+ ## CI-/Release-Stufen
35
+
36
+ Diese Kommandos sind fuer CI und Release Automation geplant:
37
+
38
+ ```bash
39
+ npm audit --audit-level=moderate
40
+ npm sbom --sbom-format=cyclonedx --json
41
+ npm run release:report
42
+ npm run pack:dry-run
43
+ ```
44
+
45
+ `npm audit` und `npm sbom` koennen Netzwerkzugriff benoetigen. Sie gehoeren deshalb nicht in den lokalen Default-Test, sondern in kontrollierte CI-/Release-Stufen.
46
+
47
+ ## License Policy
48
+
49
+ Der komplette XTend-Stack ist auf `Apache-2.0` gesetzt. Fuer RC1-Publish-Prep ist `private: false` gesetzt; der eigentliche `npm publish` bleibt ein separater Owner-Schritt.
50
+
51
+ Die scoped Release-Manifests sind Teil des Supply-Chain-Gates:
52
+
53
+ | Package | Manifest |
54
+ |---------|----------|
55
+ | `@ccslabs/xtend` | `package.json` |
56
+ | `@ccslabs/xtend-rmt` | `xtendrmt/package.json` |
57
+ | `@ccslabs/xtend-fabric` | `fabric/package.json` |
58
+ | `@ccslabs/xtend-cli` | `xtend-builder/package.json` |
59
+ | `@ccslabs/xtend-compiler` | `tools/package.json` |
60
+
61
+ Ein oeffentlicher Release braucht vorher:
62
+
63
+ - bestaetigte Apache-2.0 License-Entscheidung
64
+ - Dependency-License-Inventar
65
+ - Review aller nicht-permissiven Dependency-Lizenzen
66
+ - Ausschluss von AGPL/GPL/UNLICENSED als Default-Third-Party-Abhaengigkeiten
67
+
68
+ ## Vulnerability Policy
69
+
70
+ - `critical` blockiert jeden Release.
71
+ - `high` blockiert Release Candidates.
72
+ - Production-Findings ab `moderate` muessen triagiert werden.
73
+ - bekannte Exploits duerfen nicht in Release Candidates verbleiben.
74
+
75
+ ## Maschinenlesbare Policy
76
+
77
+ ```js
78
+ const {
79
+ createSupplyChainGatePlan,
80
+ classifyPackageSupplyChain
81
+ } = require('./security/supply-chain-gate-policy');
82
+ ```
83
+
84
+ Die Policy selbst liegt in:
85
+
86
+ ```text
87
+ security/supply-chain-gate-policy.js
88
+ ```
89
+
90
+ Der lokale Report nutzt:
91
+
92
+ ```text
93
+ xtend.security.supply-chain-report.v1
94
+ ```
95
+
96
+ ## Weiterfuehrende Dokumente
97
+
98
+ - [XTend Loader](./xtend-loader.md)
99
+ - [Trusted DOM und Sanitizing](./trusted-dom-sanitizing.md)
100
+ - [XTend-Fabric Runtime](./xtend-fabric.md)
@@ -0,0 +1,94 @@
1
+ # SurfaceManager Authoring Guide
2
+
3
+ - Contract: `xtend.surface.release-handoff.v1`
4
+ - Workpackage: `WP-SM-09`
5
+ - Fixture: `tests/fixtures/rmt-surface-manager-component-lab.rmt`
6
+ - Local Gate: `node scripts/run_xtend_tests.js surface-release-handoff --json`
7
+
8
+ ## Ziel
9
+
10
+ Dieser Guide beschreibt den empfohlenen Authoring-Pfad fuer XTend App Shells mit SurfaceManager. Er verbindet den fruehen Component-Metadata-Pfad aus `WP-SM-01` mit der nativen RMT `surfaces` Domain aus `WP-SM-08`.
11
+
12
+ ## Authoring-Modi
13
+
14
+ | Modus | Wann nutzen | Quelle |
15
+ |-------|-------------|--------|
16
+ | `component-metadata-mvp` | Kleine Shells, bestehende Component Records, schnelle Migration | `components[*].metadata.surface` |
17
+ | `dual-record-handoff` | Uebergang, Tooling-Vergleich, Regression gegen bestehende Runtime | `components[*].metadata.surface` plus `surfaces[*]` |
18
+ | `native-surfaces-preferred` | Komplexe App Shells, Multi Window, Panels, Overlay Stack | `surfaces[*]` als fachliche Surface-Quelle |
19
+
20
+ ## Component-Metadata bleibt gueltig
21
+
22
+ Bestehende RMT Component Records bleiben kompatibel:
23
+
24
+ ```json
25
+ {
26
+ "id": "workbench.inspector",
27
+ "kind": "custom_element",
28
+ "adapter": "xtend.component",
29
+ "tag": "x-surface-window",
30
+ "schedule": "surface.user-blocking.open",
31
+ "metadata": {
32
+ "surface": {
33
+ "schema": "xtend.surface.record.v1",
34
+ "id": "surface.inspector",
35
+ "type": "window",
36
+ "manager": "workbench.manager",
37
+ "stateKey": "xtend.surface.inspector.state"
38
+ }
39
+ }
40
+ }
41
+ ```
42
+
43
+ Dieser Modus reicht, wenn eine App Shell ueber `x-surface-manager` bereits korrekt laeuft und keine native RMT Surface-Domain fuer Tooling, Migration oder Cross-Record-Validierung gebraucht wird.
44
+
45
+ ## Native Surfaces bevorzugen
46
+
47
+ Fuer neue komplexe Shells ist `surfaces[*]` der Zielzustand:
48
+
49
+ ```json
50
+ {
51
+ "id": "surface.inspector",
52
+ "schema": "xtend.surface.record.v1",
53
+ "type": "window",
54
+ "adapter": "xtend.surface",
55
+ "manager": "workbench.manager",
56
+ "component": "workbench.inspector",
57
+ "route": "workbench",
58
+ "schedule": "surface.user-blocking.open",
59
+ "stateKey": "xtend.surface.inspector.state"
60
+ }
61
+ ```
62
+
63
+ Authoring-Regeln:
64
+
65
+ - `manager` referenziert den `x-surface-manager` Component Record.
66
+ - `component` referenziert die sichtbare Surface-Komponente.
67
+ - `route` bindet die Surface an den App-Shell-Kontext.
68
+ - `schedule` bindet Open, Layout, Persistenz oder Diagnostics an RMT Scheduling.
69
+ - `stateKey` bleibt stabil zwischen Component-Metadata und nativer Domain.
70
+ - Historisch blieb `xtend.surface` bis `WP-SM-19` ein Adapter-Handoff; seit dem Runtime-Handoff ist der produktive Adapter-Claim gatebar, waehrend die sichtbare UI weiterhin ueber die SurfaceManager-Komponentenfamilie materialisiert wird.
71
+
72
+ ## Release-Handoff
73
+
74
+ Nach `WP-SM-09` galt fuer den historischen Authoring-Handoff:
75
+
76
+ - Component-Metadata ist stabiler Compatibility-Pfad.
77
+ - Native `surfaces[*]` ist der bevorzugte Authoring-Pfad fuer neue App Shells.
78
+ - Dual Records sind der sichere Migrationsmodus.
79
+ - Der RMT Kernel bleibt host-neutral.
80
+ - Die produktive `xtend.surface` Adapter Runtime war Folgearbeit und ist seit `WP-SM-19` umgesetzt.
81
+
82
+ ## WP-SM-19 Runtime Authoring
83
+
84
+ Ab `WP-SM-19` ist die produktive `xtend.surface` Adapter Runtime umgesetzt und ueber `xtend.surface.runtime-release-handoff.v1` gatebar. Fuer neue komplexe App Shells bleibt `native-surfaces-preferred` der Default: `surfaces[*]` beschreibt die fachlichen Surfaces, waehrend Component Records die sichtbaren XTend-UI-Bindings liefern.
85
+
86
+ Produktive Authoring-Regeln:
87
+
88
+ - `surfaces[*]` ist die Quelle fuer neue Multi-Surface-App-Shells.
89
+ - `components[*].metadata.surface` bleibt fuer bestehende Shells und Dual-Record-Migrationen kompatibel.
90
+ - `x-surface-manager` und der SurfaceController bleiben die Runtime-Registry.
91
+ - Fabric, XRouter, `xstate` und RMT-Kernel bleiben eigenstaendige Schichten.
92
+ - `node scripts/run_xtend_tests.js surface-runtime-release-handoff --json` prueft den finalen Runtime-Handoff.
93
+
94
+ Details stehen im [SurfaceManager Runtime Release Handoff](./surface-manager-runtime-release-handoff.md).
@@ -0,0 +1,45 @@
1
+ # SurfaceManager Browser Lab
2
+
3
+ `WP-SM-18` ergaenzt die SurfaceManager-Schicht um ein browsernahes Lab fuer echte App-Shell-Stabilitaet. Der Contract `xtend.surface.browser-lab.v1` bleibt bewusst framework-nativ: Das Fixture nutzt `x-surface-manager`, `x-surface-window`, `x-side-panel`, `x-modal`, den `SkeletonLoader` aus dem Loader und die bestehende Surface-Hydration. Es ist keine Doku-App-Sonderloesung und kein Monkeypatch.
4
+
5
+ ## Artefakte
6
+
7
+ | Artefakt | Pfad |
8
+ | --- | --- |
9
+ | Catalog | `catalog/surface-manager-browser-lab.js` |
10
+ | Browser-Lab Fixture | `tests/browser/fixtures/surface-manager-browser-lab.html` |
11
+ | Visual Baseline | `tests/browser/visual-baselines/surface-manager-browser-lab.dom-baseline.json` |
12
+ | Gate | `node scripts/run_xtend_tests.js surface-browser-lab --json` |
13
+
14
+ Die Visual Baseline verwendet `xtend.surface.browser-lab.visual-baseline.v1`. Sie ist JSON-basiert und pixel-ready: spaetere Browser-Lab-Laeufe koennen echte Snapshot-Dateien anhaengen, waehrend der lokale Fast-Gate bereits DOM-Signaturen, States und Budgets prueft.
15
+
16
+ ## Gate-Zustaende
17
+
18
+ Das Fixture deckt fuenf reproduzierbare Zustaende ab:
19
+
20
+ | Snapshot | Zustand |
21
+ | --- | --- |
22
+ | `surface-lab-cold-start` | App Shell sichtbar vor Content-Hydration |
23
+ | `surface-lab-skeleton` | Parsedown-Content hinter SkeletonLoader verborgen |
24
+ | `surface-lab-hydrated` | Content freigegeben, Skeleton entfernt |
25
+ | `surface-lab-route-change` | Route-bound Surface ohne Shell-Resize |
26
+ | `surface-lab-modal-stack` | Modal Stack ueber SurfaceManager-Policy |
27
+
28
+ ## Regressionen
29
+
30
+ Der Report verbindet `xtend.surface.browser-lab.performance-report.v1` und `xtend.surface.browser-lab.cls-report.v1`. Lokal muessen folgende Risiken fehlschlagen:
31
+
32
+ | Risiko | Budget |
33
+ | --- | --- |
34
+ | CLS | `<= 0.01` |
35
+ | Layout Shift | `<= 1px` |
36
+ | Pop-In von ungestyltem Content | `0` |
37
+ | Open/Focus | `<= 16ms` |
38
+ | Route | `<= 32ms` |
39
+ | Hydrate | `<= 120ms` |
40
+
41
+ ## App-Shell-Proben
42
+
43
+ Das Lab referenziert die Docs-App ueber `docs/index.php` und den Parsedown/RMT-Pilot `docs/xtendrmt-parsedown-docs.rmt`. Zusaetzlich bleibt `tests/browser/fixtures/rmt-surface-workbench-smoke.html` als Referenz-Workbench im Gate. Dadurch prueft WP-SM-18 den produktnahen App-Shell-Pfad, ohne Parsedown, PHP oder Workbench-spezifisches Verhalten in den SurfaceManager zu verschieben.
44
+
45
+ Der SurfaceManager bleibt eine unterstuetzende XTend-UI-Schicht. Er erzeugt keine zweite Registry, ersetzt nicht Fabric oder den RMT-Kernel und laedt keine Remote Runtime im Kernel.
@@ -0,0 +1,43 @@
1
+ # SurfaceManager Component Lab
2
+
3
+ - Contract: `xtend.surface.component-lab-fixture.v1`
4
+ - Release Contract: `xtend.surface.release-handoff.v1`
5
+ - Fixture: `tests/fixtures/rmt-surface-manager-component-lab.rmt`
6
+ - Gate: `node scripts/run_xtend_tests.js surface-release-handoff --json`
7
+
8
+ ## Zweck
9
+
10
+ Das SurfaceManager Component Lab ist die statische Lab-Fixture fuer die SurfaceManager-Linie. Es zeigt, wie eine App Shell mit `x-surface-manager`, `x-surface-window`, `x-side-panel`, einem kompatiblen Dialog und nativen `surfaces[*]` Records beschrieben wird.
11
+
12
+ Die Fixture ist kein neuer Lab-Server. Sie erweitert den bestehenden Component-Lab-Gedanken um Surface-spezifische Authoring- und Migrationssicht.
13
+
14
+ ## Panels
15
+
16
+ | Panel | Aufgabe |
17
+ |-------|---------|
18
+ | `surface-preview` | sichtbare Surface Shell mit WindowManager- und SidePanel-Komponenten pruefen |
19
+ | `native-rmt-inspector` | `surfaces[*]`, `adapters`, `components`, `routes` und `schedules` inspizieren |
20
+ | `migration-diff` | `components[*].metadata.surface` mit nativen Surface Records vergleichen |
21
+ | `quality-gates` | Gate-Kette von `surface-manager-quality` bis `surface-native-rmt` sichtbar machen |
22
+ | `source-links` | Doku-, Katalog-, Fixture-, Runtime- und Suite-Pfade verlinken |
23
+
24
+ ## Fixture-Modell
25
+
26
+ `tests/fixtures/rmt-surface-manager-component-lab.rmt` enthaelt:
27
+
28
+ - vier Adapter: `xtend.component`, `xtend.xrouter`, `rmt.state-scheduler-diagnostics`, `xtend.surface`
29
+ - eine SurfaceManager-Komponente `surface.lab.manager`
30
+ - zwei Windows: `surface.lab.preview` und `surface.lab.rmtInspector`
31
+ - zwei SidePanels: `surface.lab.migrationPanel` und `surface.lab.qualityPanel`
32
+ - einen Dialog: `surface.lab.commandDialog`
33
+ - native `surfaces[*]` Records plus passende `components[*].metadata.surface` Dual Records
34
+
35
+ Die Fixture prueft die Authoring-Boundary. Sie behauptet keine produktive `xtend.surface` Runtime.
36
+
37
+ ## Lokaler Ablauf
38
+
39
+ ```bash
40
+ node scripts/run_xtend_tests.js surface-release-handoff --json
41
+ ```
42
+
43
+ Der Gate validiert die Fixture ueber RMT-Normalisierung und Semantic Graph. Damit bleiben Surface-IDs, Component-Refs, Manager-Refs, Routes und Schedules sichtbar und maschinenpruefbar.
@@ -0,0 +1,66 @@
1
+ # SurfaceManager Controller
2
+
3
+ `WP-SM-02` fuehrt den internen Surface Controller fuer XTend ein. Er ist der lauffaehige Unterbau fuer Multi Window Oberflaechen, aber noch kein sichtbares Custom Element.
4
+
5
+ - Contract: `xtend.surface.controller.v1`
6
+ - Runtime: `components/xsurfacemanager-controller.js`
7
+ - Types: `components/xsurfacemanager-controller.d.ts`
8
+ - Snapshot: `xtend.surface.snapshot.v1`
9
+ - Gate: `node scripts/run_xtend_tests.js surface-controller --json`
10
+
11
+ ## Rolle
12
+
13
+ Der Controller verwaltet Surface Records aus dem `WP-SM-01` Authoring-Modell. RMT kann also weiterhin normale Component Records mit `metadata.surface` beschreiben; der Controller normalisiert diese Records zu einer Laufzeit-Registry.
14
+
15
+ Er ist bewusst `controller-only-no-custom-element`. `WP-SM-03` baut darauf `x-surface-manager` und `x-surface-window`.
16
+
17
+ ## API
18
+
19
+ Wichtige Methoden:
20
+
21
+ ```js
22
+ const {
23
+ createSurfaceController
24
+ } = require('./components/xsurfacemanager-controller.js');
25
+
26
+ const controller = createSurfaceController({
27
+ managerId: 'workbench.manager',
28
+ xstate,
29
+ fabric
30
+ });
31
+
32
+ controller.registerSurface(surfaceRecord);
33
+ controller.openSurface('workbench.inspector');
34
+ controller.focusSurface('workbench.inspector');
35
+ controller.moveSurface('workbench.inspector', { x: 128, y: 96 });
36
+ controller.resizeSurface('workbench.inspector', { width: 700, height: 460 });
37
+ controller.closeSurface('workbench.inspector');
38
+
39
+ const snapshot = controller.snapshot();
40
+ ```
41
+
42
+ Unterstuetzt werden `registerSurface`, `openSurface`, `closeSurface`, `focusSurface`, `updateSurface`, `moveSurface`, `resizeSurface`, `minimizeSurface`, `maximizeSurface`, `restoreSurface`, `snapshot` und `dispose`.
43
+
44
+ ## State
45
+
46
+ Nach jedem Commit spiegelt der Controller:
47
+
48
+ ```text
49
+ xtend.surface.registry
50
+ xtend.surface.active
51
+ xtend.surface.<surfaceId>.state
52
+ xtend.surface.<surfaceId>.bounds
53
+ xtend.surface.<surfaceId>.lifecycle
54
+ xtend.surface.diagnostics
55
+ xtend.surface.snapshot
56
+ ```
57
+
58
+ Der Snapshot enthaelt nur Layout-, Lifecycle- und UI-State. Raw Metadata, DOM Nodes und Content-Payloads werden nicht serialisiert.
59
+
60
+ ## Diagnostics
61
+
62
+ Wenn Fabric uebergeben wird, sendet der Controller `xtend.surface.diagnostic.v1` Events ueber `emitDiagnostic`. Ohne Fabric bleibt der Controller trotzdem lauffaehig und spiegelt Diagnostics nach xstate.
63
+
64
+ ## Naechster Schritt
65
+
66
+ `WP-SM-03` sollte die sichtbare Komponentenfamilie auf diesem Controller aufbauen: `x-surface-manager`, `x-surface-window`, erste Layer-Container, Events und echte Window-Chrome.
@@ -0,0 +1,32 @@
1
+ # SurfaceManager Layout Engines
2
+
3
+ Ab `WP-SM-16` besitzt `x-surface-manager` den Contract `xtend.surface.layout-engine.v1` fuer sichtbare, snapshot-kompatible Surface Layouts.
4
+
5
+ ## Engines
6
+
7
+ | Engine | Zweck |
8
+ |--------|-------|
9
+ | `freeform` | freie Fenster mit Viewport-Clamp, Snap und einfacher Kollisionskorrektur |
10
+ | `docked` | SidePanels und docked Surfaces belegen Ränder, Workspace-Surfaces fuellen den Rest |
11
+ | `split` | offene Layout-Surfaces werden als Split Panes verteilt |
12
+ | `tile` | offene Layout-Surfaces werden in einem Raster verteilt |
13
+ | `stacked` | offene Layout-Surfaces werden als versetzter Stack dargestellt und als kompakter Fallback genutzt |
14
+
15
+ ## Runtime
16
+
17
+ - `snapshotSurfaceLayout()` liefert `xtend.surface.layout-engine-report.v1`.
18
+ - `applyLayoutEngine(engine)` schreibt berechnete Bounds ueber den bestehenden SurfaceController in den Snapshot.
19
+ - `dockSurface()` setzt Placement/Mode und wendet eine docked oder aktuell aktive Layout Engine sichtbar an.
20
+ - `undockSurface()` setzt eine Surface auf `floating` und laesst sie wieder im Freeform-Modus laufen.
21
+ - `surface-layout-gap` und `surface-layout-snap` steuern Abstaende und Snap-Raster.
22
+ - kompakte Viewports fallen auf `stacked` zurueck.
23
+
24
+ ## Boundary
25
+
26
+ Die Layout Engine bleibt eine XTend-UI-Unterstuetzungsschicht. Der SurfaceController bleibt Registry- und Snapshot-Quelle, Fabric bleibt fuer Diagnostics/Backpressure zustaendig, und der RMT Kernel importiert keine XTend-Typen. Es entsteht keine zweite Registry.
27
+
28
+ Lokaler Gate:
29
+
30
+ ```bash
31
+ node scripts/run_xtend_tests.js surface-layout-engines --json
32
+ ```
@@ -0,0 +1,63 @@
1
+ # SurfaceManager Lazy Hydration
2
+
3
+ Docs Contract: `xtend.docs.surface-manager-lazy-hydration.v1`
4
+
5
+ `WP-SM-13` haertet `x-surface-manager` fuer shell-first Apps: Surface Chrome und App Shell koennen sofort sichtbar werden, waehrend Surface Content ueber den framework-nativen XTendLoader skeletonisiert, geladen und hydriert wird.
6
+
7
+ ## Contract
8
+
9
+ - Loading Policy: `xtend.surface.loading-policy.v1`
10
+ - Loading Report: `xtend.surface.loading-report.v1`
11
+ - Gate: `node scripts/run_xtend_tests.js surface-lazy-hydration --json`
12
+ - Package Script: `npm run test:surface-lazy-hydration`
13
+
14
+ ## Policies
15
+
16
+ `surface-loading-policy` am Manager setzt die Default-Policy. Einzelne Surfaces koennen sie mit `data-surface-hydration-policy` ueberschreiben.
17
+
18
+ | Policy | Verhalten |
19
+ |--------|-----------|
20
+ | `eager` | Content wird direkt nach der Surface-Registrierung hydriert. |
21
+ | `visible` | Content wird hydriert, sobald die Surface sichtbar ist. |
22
+ | `open` | Content wird hydriert, wenn die Surface geoeffnet ist. |
23
+ | `idle` | Content wird ueber `requestIdleCallback` oder Timeout-Fallback geladen. |
24
+ | `route` | Content wartet auf Route-Signale wie `xtend-route-changed`. |
25
+
26
+ ## Runtime
27
+
28
+ `x-surface-manager` nutzt keine Doku-App-Sonderloesung. Die Runtime greift auf die vorhandenen Loader-APIs zu:
29
+
30
+ - `XTendLoader.ensureComponent`
31
+ - `XTendLoader.hydrateTree`
32
+ - `XTendLoader.showSkeleton`
33
+ - `XTendLoader.hideSkeleton`
34
+ - `XTendStyleRegistry.ensureRuntimeStyles`
35
+
36
+ Vor der Hydration setzt der Manager `data-xtend-surface-content-ready="false"` und laesst den SkeletonLoader direkte Content-Kinder verdecken. Erst nach erfolgreichem Component-Ready- und `hydrateTree`-Gate wird der Skeleton entfernt. Bei Fehlern oder Timeouts bleibt der Skeleton aktiv, damit kein ungestylter Content aufpoppt.
37
+
38
+ ## Parsedown und Remote Slots
39
+
40
+ Parsedown-Container und remote-faehige Slots sind normale Surface-Inhalte. Es gibt kein Monkeypatch in der Doku-App:
41
+
42
+ ```html
43
+ <x-surface-window
44
+ surface-id="docs.surface"
45
+ data-surface-hydration-policy="open"
46
+ open>
47
+ <section data-xtend-parsedown-container="true">
48
+ <x-code language="markdown"># Docs</x-code>
49
+ </section>
50
+ </x-surface-window>
51
+ ```
52
+
53
+ Remote-faehige Slots koennen mit `data-remote-capable-content-slot="true"` markiert werden. Die Lazy-Hydration laedt dabei nur den DOM-/Komponenten-Scope; Remote Trust, Ownership und Capabilities bleiben spaeteren Remote-Surface-Policies vorbehalten.
54
+
55
+ ## Diagnostics
56
+
57
+ Der Manager bietet:
58
+
59
+ - `snapshotSurfaceLoading()`
60
+ - `hydrateSurfaceContent(surfaceRef, options)`
61
+ - Events `surface-content-loading`, `surface-content-hydrated`, `surface-content-hydration-skipped` und `surface-content-hydration-error`
62
+
63
+ `snapshotSurfaceLoading()` meldet Policy, Skeleton-Status, Hydration-Status, Tags, unresolved Tags, Dauer und die Boundaries `shellFirst`, `protectsUnstyledContent` und `createsSecondRegistry: false`.
@@ -0,0 +1,122 @@
1
+ # SurfaceManager Migration Guide
2
+
3
+ - Contract: `xtend.surface.release-handoff.v1`
4
+ - Native Domain: `xtend.rmt.surfaces-domain.v1`
5
+ - Adapter Handoff: `xtend.surface.adapter.v1`
6
+ - Gate: `node scripts/run_xtend_tests.js surface-release-handoff --json`
7
+
8
+ ## Ziel
9
+
10
+ Dieser Guide beschreibt die additive Migration von Surface-Metadata in Component
11
+ Records zu nativen RMT Surface Records. Die Migration ist bewusst ohne Big
12
+ Bang: bestehende `components[*].metadata.surface` Records bleiben gueltig,
13
+ waehrend neue App Shells in RMT vNext authoriert werden. `surfaces[*]` ist der
14
+ Runtime- und Compatibility-Output, nicht die neue Handarbeit.
15
+
16
+ ## Migrationsschritte
17
+
18
+ | Schritt | Ergebnis |
19
+ |---------|----------|
20
+ | `inventory-component-metadata-surfaces` | alle bestehenden `metadata.surface` Records und State Keys erfassen |
21
+ | `stabilize-surface-ids-and-state-keys` | IDs, `type`, `manager` und `stateKey` einfrieren |
22
+ | `add-native-surfaces-records` | parallele `surfaces[*]` Records mit gleicher Identitaet anlegen |
23
+ | `keep-dual-records-during-handoff` | Component-Metadata und native Records im Gate vergleichen |
24
+ | `switch-authoring-default-to-vnext-surfaces` | neue komplexe Shells als `surface ... component ...` in RMT vNext schreiben |
25
+ | `close-xtend-surface-runtime-after-adapter-implementation` | historisches Adapter-Handoff aus `WP-SM-09` durch `WP-SM-19` Runtime-Gates schliessen |
26
+
27
+ ## vNext-Zielbild
28
+
29
+ ```rmt
30
+ template workbench.surfaceMigration {
31
+ state workbench.properties type object initial null
32
+
33
+ portal surface.root root "#workbench-root" layer surface
34
+
35
+ surface surface.properties kind side-panel component x-side-panel {
36
+ source state workbench.properties
37
+ portal surface.root
38
+
39
+ lane visible weight 70 {
40
+ hydrate properties-panel from state workbench.properties
41
+ }
42
+ }
43
+ }
44
+ ```
45
+
46
+ ## Vorher: Legacy Component Metadata
47
+
48
+ ```json
49
+ {
50
+ "id": "workbench.properties",
51
+ "tag": "x-side-panel",
52
+ "metadata": {
53
+ "surface": {
54
+ "schema": "xtend.surface.record.v1",
55
+ "id": "surface.properties",
56
+ "type": "side-panel",
57
+ "manager": "workbench.manager",
58
+ "stateKey": "xtend.surface.properties.state"
59
+ }
60
+ }
61
+ }
62
+ ```
63
+
64
+ ## Nachher: Dual Record als Runtime-Output
65
+
66
+ ```json
67
+ {
68
+ "surfaces": [
69
+ {
70
+ "id": "surface.properties",
71
+ "schema": "xtend.surface.record.v1",
72
+ "type": "side-panel",
73
+ "adapter": "xtend.surface",
74
+ "manager": "workbench.manager",
75
+ "component": "workbench.properties",
76
+ "route": "workbench",
77
+ "schedule": "surface.visible.render",
78
+ "stateKey": "xtend.surface.properties.state"
79
+ }
80
+ ]
81
+ }
82
+ ```
83
+
84
+ Die Component-Metadata bleibt waehrend des Handoffs im Component Record und
85
+ verweist optional mit `nativeRecord` auf den nativen Record. Neue Beispiele
86
+ sollen das vNext-Zielbild zeigen; Dual Records dienen als Migrationsevidence.
87
+
88
+ ## Review-Checkliste
89
+
90
+ - Jede native Surface besitzt einen stabilen `id`.
91
+ - `component` zeigt auf genau einen Component Record.
92
+ - `manager` zeigt auf den `x-surface-manager` Record.
93
+ - `route` und `schedule` loesen auf native RMT Records auf.
94
+ - `stateKey` ist identisch zwischen `components[*].metadata.surface` und `surfaces[*]`.
95
+ - `xtend.surface` ist als `surface_adapter` deklariert und seit `WP-SM-19` ueber die Runtime-Gates produktiv beworben.
96
+ - Die Gates `surface-native-rmt`, `surface-release-handoff` und `surface-runtime-release-handoff` sind gruen.
97
+
98
+ Details zur generischen RMT-Migration stehen in [XTendRMT Native Migration Guide](./xtendrmt-migration-guide.md). Details zum Surface-Authoring stehen in [SurfaceManager Authoring Guide](./surface-manager-authoring-guide.md).
99
+
100
+ ## WP-SM-19 Runtime Migration Notes
101
+
102
+ `WP-SM-19` akzeptiert `xtend.surface.runtime-migration-notes.v1` als finale Migrationslinie fuer die produktive Surface Runtime.
103
+
104
+ Erweiterte Gate-Reihenfolge fuer Migrationen:
105
+
106
+ ```bash
107
+ node scripts/run_xtend_tests.js surface-adapter-runtime --json
108
+ node scripts/run_xtend_tests.js surface-native-materialization --json
109
+ node scripts/run_xtend_tests.js surface-persistence --json
110
+ node scripts/run_xtend_tests.js surface-lazy-hydration --json
111
+ node scripts/run_xtend_tests.js surface-route-lifecycle --json
112
+ node scripts/run_xtend_tests.js surface-stack-policy --json
113
+ node scripts/run_xtend_tests.js surface-layout-engines --json
114
+ node scripts/run_xtend_tests.js surface-remote-policy --json
115
+ node scripts/run_xtend_tests.js surface-browser-lab --json
116
+ node scripts/run_xtend_tests.js surface-runtime-release-handoff --json
117
+ ```
118
+
119
+ Bestehende `components[*].metadata.surface` Records bleiben erlaubt. Der
120
+ Zielzustand fuer neue Shells ist dennoch RMT vNext; `surfaces[*]` bleibt der
121
+ pruefbare Output, weil Tooling, Materialisierung, Persistenz, Routing, Remote
122
+ Policy und Browser-Lab-Stabilitaet dort gemeinsam pruefbar sind.
@@ -0,0 +1,38 @@
1
+ # SurfaceManager Native RMT Surfaces
2
+
3
+ `WP-SM-08` fuehrt `xtend.rmt.surfaces-domain.v1` und den Adapter-Handoff `xtend.surface.adapter.v1` ein.
4
+
5
+ ## Lokaler Gate
6
+
7
+ ```bash
8
+ node scripts/run_xtend_tests.js surface-native-rmt --json
9
+ npm run test:surface-native-rmt
10
+ ```
11
+
12
+ ## Domain
13
+
14
+ `surfaces` ist eine optionale Top-Level-Domain in `.rmt` Dokumenten. Ein Surface Record referenziert weiter normale RMT-Domains:
15
+
16
+ - `adapter`: `xtend.surface`
17
+ - `manager`: `x-surface-manager` Component Record
18
+ - `component`: sichtbare Surface-Komponente, zum Beispiel `x-surface-window`, `x-side-panel`, `x-modal`, `x-dialog` oder `x-drawer`
19
+ - `route`: Route Record
20
+ - `schedule`: Schedule Record
21
+
22
+ Die Fixture `tests/fixtures/rmt-surface-native-domain.rmt` zeigt sechs Surface Records: zwei Windows, ein SidePanel, Modal, Dialog und Drawer.
23
+
24
+ ## Adapter
25
+
26
+ `xtend.surface` ist als `surface_adapter` registrierbar. In `WP-SM-08` war `runtimeImplemented: false` Absicht und der Adapter blieb ein Handoff-Contract. Seit `WP-SM-19` ist die produktive Runtime-Linie im [SurfaceManager Runtime Release Handoff](./surface-manager-runtime-release-handoff.md) gatebar: Die Runtime konsumiert `surfaces[*]`, ruft den SurfaceController und haelt DOM, xstate und Fabric ausserhalb des RMT Kernels.
27
+
28
+ ## Migration
29
+
30
+ Bestehende Component Records mit `metadata.surface` bleiben gueltig. Neue native Records koennen parallel gefuehrt werden, solange `id`, `type`, `manager`, `component`, `route`, `schedule` und `stateKey` stabil zusammenpassen.
31
+
32
+ ## Tooling
33
+
34
+ Schema, Type Artifact, Normalizer, Semantic Graph, Completion Provider und Linter kennen `surfaces`. Damit kann der Language Server Surface Records referenzieren und Completion fuer `surfaces[*].component`, `surfaces[*].adapter`, `surfaces[*].route`, `surfaces[*].schedule` und `surfaces[*].type` anbieten.
35
+
36
+ ## Handoff
37
+
38
+ `WP-SM-09` finalisiert Docs, Component Lab und Migration Guide auf dieser Contract-Basis. Der Abschluss liegt in [SurfaceManager Release Handoff](./surface-manager-release-handoff.md) (`docs/surface-manager-release-handoff.md`) und wird ueber `node scripts/run_xtend_tests.js surface-release-handoff --json` geprueft.