@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,53 @@
1
+ # SurfaceManager Overlay Bridge
2
+
3
+ `WP-SM-06` fuehrt `xtend.surface.overlay-stack-bridge.v1` ein. Die Bridge macht `x-modal`, `x-dialog` und `x-drawer` optional kompatibel mit dem `x-surface-manager` Surface Stack.
4
+
5
+ ## Was sich aendert
6
+
7
+ `x-surface-manager` registriert im `overlays` Slot nun auch:
8
+
9
+ - `x-modal` als Surface Type `modal`
10
+ - `x-dialog` als Surface Type `dialog`
11
+ - `x-drawer` als Surface Type `drawer`
12
+
13
+ Die bestehenden Overlay APIs bleiben erhalten. Ein Modal kann weiter ueber `open()` und `close()` gesteuert werden, ein Drawer weiter ueber `openDrawer()` und `closeDrawer()`. Die Legacy Events `modal-opened`, `dialog-opened` und `drawer-opened` bleiben sichtbar.
14
+
15
+ ## Command Bridge
16
+
17
+ Overlays koennen innerhalb des Managers ein `surface-overlay-command` Event nutzen:
18
+
19
+ ```js
20
+ manager.dispatchEvent(new CustomEvent('surface-overlay-command', {
21
+ bubbles: true,
22
+ composed: true,
23
+ detail: {
24
+ surfaceId: 'settings.dialog',
25
+ command: 'open'
26
+ }
27
+ }));
28
+ ```
29
+
30
+ Unterstuetzt werden die vorhandenen Surface-Operationen wie `open`, `close`, `focus` und `update`. Der Manager nutzt dafuer denselben Controller Stack wie Windows und SidePanels.
31
+
32
+ ## Stack-Verhalten
33
+
34
+ Die Bridge spiegelt den Surface Snapshot in Overlay CSS Custom Properties:
35
+
36
+ - `--surface-overlay-z`
37
+ - `--surface-overlay-backdrop-z`
38
+
39
+ Ausserhalb eines SurfaceManagers behalten `x-modal`, `x-dialog` und `x-drawer` ihre bisherigen Default-z-Indizes.
40
+
41
+ ## RMT und Lifecycle
42
+
43
+ RMT bleibt fuer diese Stufe bei `xtend.component`. Die Bridge erzeugt intern `xtend.surface.record.v1`, aber sie aktiviert noch keine native `xtend.surface` Domain.
44
+
45
+ Der lokale Gate:
46
+
47
+ ```bash
48
+ node scripts/run_xtend_tests.js surface-overlay-bridge --json
49
+ ```
50
+
51
+ ## Abgrenzung
52
+
53
+ `WP-SM-06` bereitet die Stack-Kompatibilitaet vor. Browser-, A11y-, Performance- und Visual-Smokes folgen in `WP-SM-07`; die native RMT `surfaces` Domain folgt spaeter in `WP-SM-08`.
@@ -0,0 +1,30 @@
1
+ # SurfaceManager Persistence
2
+
3
+ `x-surface-manager` kann Surface-Layouts unter einem `restore-key` speichern und beim naechsten Start wieder ueber den SurfaceController einspielen.
4
+
5
+ ## Attribute
6
+
7
+ | Attribut | Werte | Zweck |
8
+ | --- | --- | --- |
9
+ | `restore-key` | string | Stabiler Schluessel fuer das App-Shell-Layout |
10
+ | `persistence-mode` | `none`, `memory`, `session`, `local` | Storage-Backend fuer Snapshots |
11
+ | `restore-policy` | `auto`, `manual`, `reset` | Auto-Restore beim Connect oder manuelle Steuerung |
12
+
13
+ Ohne `restore-key` bleibt Persistenz aus. Mit `restore-key` und ohne explizites `persistence-mode` nutzt die Runtime `session`.
14
+
15
+ ## API
16
+
17
+ - `snapshotPersistence()` gibt den aktiven Persistenzcontract zurueck.
18
+ - `persistSnapshot(snapshot, options)` speichert einen layout-only Snapshot.
19
+ - `restorePersistedSnapshot(options)` liest und hydriert einen gespeicherten Snapshot.
20
+ - `clearPersistedSnapshot(options)` entfernt den gespeicherten Snapshot.
21
+ - `resetSurfaceLayout(options)` loescht Persistenz und registriert die deklarierten Surface-Elemente neu.
22
+
23
+ Gespeichert wird `xtend.surface.persisted-snapshot.v1`. Content-Payloads werden nicht persistiert; erhalten bleiben Surface IDs, Bounds, Stack, Active Surface, Panel Modes, Status und Content-Refs.
24
+
25
+ ## Boundaries
26
+
27
+ - Der SurfaceController bleibt die einzige Registry-Wahrheit.
28
+ - Restore laeuft ueber Controller-Operationen, nicht durch direktes Mutieren einer zweiten Registry.
29
+ - Ungueltige oder inkompatible Snapshots fuehren zu einem kontrollierten Skip mit Diagnostic.
30
+ - Der RMT-Kernel importiert keine XTend-Komponenten.
@@ -0,0 +1,51 @@
1
+ # SurfaceManager Quality Gates
2
+
3
+ `WP-SM-07` fuehrt `xtend.surface.quality-gates.v1` ein. Der Gate prueft den SurfaceManager ueber vier Domaenen: Browser, A11y, Performance und Visual.
4
+
5
+ ## Lokale Gates
6
+
7
+ ```bash
8
+ node scripts/run_xtend_tests.js surface-manager-quality --json
9
+ node scripts/run_xtend_tests.js surface-manager-browser --json
10
+ node scripts/run_xtend_tests.js surface-manager-a11y --json
11
+ node scripts/run_xtend_tests.js surface-manager-performance --json
12
+ node scripts/run_xtend_tests.js surface-manager-visual --json
13
+ ```
14
+
15
+ Die Domain-Gates laufen ueber denselben Contract und koennen gezielt in lokalen Checks oder CI-Matrizen referenziert werden.
16
+
17
+ ## Browser
18
+
19
+ Das Fixture `tests/browser/fixtures/surface-manager-quality-smoke.html` baut eine gemischte Surface-Oberflaeche:
20
+
21
+ - zwei `x-surface-window`
22
+ - ein `x-side-panel`
23
+ - ein `x-modal`
24
+ - ein `x-dialog`
25
+ - ein `x-drawer`
26
+
27
+ Overlays werden ueber `surface-overlay-command` geoeffnet und in denselben Surface Stack aufgenommen.
28
+
29
+ ## A11y
30
+
31
+ Der Gate prueft Contract- und Fixture-Signale fuer:
32
+
33
+ - Rollen: `application`, `dialog`, `complementary`
34
+ - `aria-live` Status
35
+ - Focus Restore
36
+ - Escape-Topmost-Verhalten
37
+ - Tab Focus Trap
38
+ - Reduced Motion
39
+ - Forced Colors und sichtbaren Fokus
40
+
41
+ ## Performance
42
+
43
+ Der Contract definiert Budgets fuer Open/Close, Focus, Layout Transition, Snapshot und Registration. Das Browser-Fixture setzt zusaetzlich die Performance-Messung `surface-quality-open-close`.
44
+
45
+ ## Visual
46
+
47
+ Die DOM-Baseline `tests/browser/visual-baselines/surface-manager-quality.dom-baseline.json` deckt Desktop, Mobile, Topmost Overlay und Forced Colors ab. Sie bleibt bewusst JSON-only, damit der lokale Gate stabil ohne Browser-Pixel-Diff laufen kann.
48
+
49
+ ## Handoff
50
+
51
+ `WP-SM-08` kann auf den Quality-Gates aufsetzen und die native RMT `surfaces` Domain gegen dieselben sichtbaren Stack-Zustaende validieren.
@@ -0,0 +1,68 @@
1
+ # SurfaceManager Release Handoff
2
+
3
+ - Contract: `xtend.surface.release-handoff.v1`
4
+ - Report: `xtend.surface.release-handoff-report.v1`
5
+ - Workpackage: `WP-SM-09`
6
+ - Local Gate: `node scripts/run_xtend_tests.js surface-release-handoff --json`
7
+ - Package Script: `npm run test:surface-release-handoff`
8
+
9
+ ## Status
10
+
11
+ Die erste SurfaceManager-Linie ist mit `WP-SM-09` authoring- und gatebereit. XTend kann App Shells mit Multi Window, SidePanels, Overlay-Kompatibilitaet, Quality Gates und nativen RMT Surface Records beschreiben.
12
+
13
+ Historische `WP-SM-09` Release Boundary:
14
+
15
+ ```text
16
+ no-public-runtime-claim-for-xtend.surface-adapter-yet
17
+ ```
18
+
19
+ Das bedeutete im `WP-SM-09` Authoring-Handoff: `surfaces[*]` und `xtend.surface.adapter.v1` waren stabiler Handoff fuer Tooling und die naechste Runtime-Arbeit. Seit `WP-SM-19` ist diese Runtime-Arbeit ueber [SurfaceManager Runtime Release Handoff](./surface-manager-runtime-release-handoff.md) geschlossen und der produktive `xtend.surface` Adapter-Claim gatebar.
20
+
21
+ ## Gate-Kette
22
+
23
+ ```bash
24
+ node scripts/run_xtend_tests.js rmt-surface-authoring --json
25
+ node scripts/run_xtend_tests.js surface-controller --json
26
+ node scripts/run_xtend_tests.js surface-manager --json
27
+ node scripts/run_xtend_tests.js surface-side-panel --json
28
+ node scripts/run_xtend_tests.js surface-workbench-fixture --json
29
+ node scripts/run_xtend_tests.js surface-overlay-bridge --json
30
+ node scripts/run_xtend_tests.js surface-manager-quality --json
31
+ node scripts/run_xtend_tests.js surface-native-rmt --json
32
+ node scripts/run_xtend_tests.js surface-release-handoff --json
33
+ ```
34
+
35
+ ## Handoff
36
+
37
+ Bereit:
38
+
39
+ - App-Shell Authoring ueber Component Records und Surface-Metadata
40
+ - native `surfaces[*]` Records fuer komplexe Workbench-Oberflaechen
41
+ - Component Lab Fixture fuer Surface Preview, Native RMT Inspector, Migration Diff, Quality Gates und Source Links
42
+ - Migration Guide fuer `components[*].metadata.surface` zu `surfaces[*]`
43
+ - lokale statische Gates fuer RMT-Normalisierung, Semantic Graph, Docs und Referenzpfade
44
+
45
+ Historische Folgearbeit aus `WP-SM-09`:
46
+
47
+ - produktive `xtend.surface` Adapter Runtime, geschlossen durch `WP-SM-19`
48
+ - optionaler Browser-Lab-Server oder visuelle Pixel-Baselines
49
+ - weitere Surface-Typen wie docked workspaces, command palettes und split panes
50
+ - Release-Hardening gegen echte App-Shell-Projekte
51
+
52
+ ## WP-SM-19 Runtime-Handoff
53
+
54
+ `WP-SM-19` schliesst diese Folgearbeit fuer die produktive Runtime-Linie ab. Der neue Contract `xtend.surface.runtime-release-handoff.v1` dokumentiert die produktive Runtime-Linie aus Adapter Runtime, nativer Materialisierung, Persistenz, Lazy Hydration, Route Lifecycle, Stack Policy, Layout Engines, Remote Policy und Browser Lab.
55
+
56
+ ```bash
57
+ node scripts/run_xtend_tests.js surface-runtime-release-handoff --json
58
+ ```
59
+
60
+ Damit bleibt `WP-SM-09` der historische Authoring-Handoff, waehrend `WP-SM-19` den produktiven Runtime-Claim gatebar macht. Offene Scopes wie projektbezogene Pixel-Artefakte, Release-Owner-Signoff vor npm Publish und optionale weitere Surface-Typen bleiben im Runtime-Handoff explizit benannt.
61
+
62
+ ## Referenzen
63
+
64
+ - [SurfaceManager Authoring Guide](./surface-manager-authoring-guide.md)
65
+ - [SurfaceManager Component Lab](./surface-manager-component-lab.md)
66
+ - [SurfaceManager Migration Guide](./surface-manager-migration-guide.md)
67
+ - [SurfaceManager Native RMT Surfaces](./surface-manager-native-rmt-surfaces.md)
68
+ - [SurfaceManager Runtime Release Handoff](./surface-manager-runtime-release-handoff.md)
@@ -0,0 +1,54 @@
1
+ # SurfaceManager Remote Policy Bridge
2
+
3
+ `WP-SM-17` bindet E16 Remote-Surface-Records an die XTend-UI-Surface-Runtime an. Der Contract `xtend.surface.remote-policy-bridge.v1` gehoert zum `x-surface-manager`; der RMT Kernel bleibt deklarativ und fuehrt keine Remote Runtime aus.
4
+
5
+ ## Entscheidungen
6
+
7
+ Remote Surfaces werden hostseitig in genau eine Entscheidung ueberfuehrt. Die akzeptierte Trust Boundary lautet `xtend.security.remote-surface.v1`.
8
+
9
+ - `mounted`: Owner, Version, Origin, Integrity, Trust Boundary, Capabilities, Sandbox/CSP und Event-Governance sind passend.
10
+ - `degraded`: eine Policy-Verletzung liegt vor, aber ein expliziter Fallback ist verfuegbar.
11
+ - `refused`: die Surface darf nicht registriert werden, weil eine harte Policy-Verletzung ohne Fallback vorliegt.
12
+
13
+ Der SurfaceController bleibt die einzige Registry. Die Policy Bridge legt keine zweite Registry an; sie fuehrt nur Host-Entscheidungen, Diagnostics und Fallback-Mapping.
14
+
15
+ ## Manager API
16
+
17
+ - `evaluateRemoteSurfacePolicy(record, options)` prueft einen Remote Surface Record ohne Commit.
18
+ - `applyRemoteSurfacePolicy(record, options)` prueft und registriert bei `commit: true` eine gemountete oder degradierte Surface.
19
+ - `registerRemoteSurface(record, options)` ist der produktive Mount-Pfad fuer `xtend.surface`.
20
+ - `snapshotRemoteSurfacePolicy()` liefert `xtend.surface.remote-policy-report.v1`.
21
+ - `governRemoteSurfaceEvent(event, payload, options)` prueft Cross-Surface Events ohne impliziten globalen Event-Bus.
22
+
23
+ Wichtige Host-Attribute:
24
+
25
+ - `remote-surface-policy="strict|audit|off"`
26
+ - `remote-origin-allowlist="https://cdn.example"`
27
+ - `remote-capabilities="surface.mount,event.emit,event.consume"`
28
+
29
+ ## Adapter Boundary
30
+
31
+ Der `xtend.surface` Adapter konsumiert E16 Remote-Surface-Records, normalisiert sie als Surface-Intent und reicht sie an den SurfaceManager weiter. Er materialisiert hoechstens eine lokale Shell oder einen Fallback. Er laedt keine Remote Bundles, startet kein `import()` und fuehrt kein Remote Runtime Loading im RMT Kernel aus.
32
+
33
+ ## Diagnostics
34
+
35
+ Policy-Verletzungen sind diagnostizierbar, darunter:
36
+
37
+ - `xtend.surface.remote-policy.owner-missing`
38
+ - `xtend.surface.remote-policy.version-missing`
39
+ - `xtend.surface.remote-policy.origin-not-allowed`
40
+ - `xtend.surface.remote-policy.integrity-missing`
41
+ - `xtend.surface.remote-policy.trust-boundary-refused`
42
+ - `xtend.surface.remote-policy.capability-refused`
43
+ - `xtend.surface.remote-policy.event-payload-missing`
44
+ - `xtend.surface.remote-policy.event-scope-refused`
45
+ - `xtend.surface.remote-policy.degradation-blocked`
46
+ - `xtend.surface.remote-policy.fallback-missing`
47
+
48
+ ## Gate
49
+
50
+ ```bash
51
+ node scripts/run_xtend_tests.js surface-remote-policy --json
52
+ ```
53
+
54
+ Der Gate prueft Runtime-Methoden, Public Types, RMT-Adapter-Anbindung, Enterprise-MFE-Fixture, Degradation/Fallback, Event-Governance, Package-Metadaten und die Boundaries `keine zweite Registry` sowie `kein Remote Runtime Loading im RMT Kernel`.
@@ -0,0 +1,102 @@
1
+ # SurfaceManager RMT Authoring
2
+
3
+ Docs Contract: `xtend.docs.surface-manager-rmt-authoring.v1`
4
+
5
+ Der SurfaceManager ist der XTend App-Shell-Baustein fuer Multi Window
6
+ Oberflaechen, SidePanels und spaetere Surface-Typen in einer SPA. `WP-SM-01`
7
+ definiert zuerst das RMT Authoring Model; Runtime-Komponenten folgen in den
8
+ naechsten Paketen.
9
+
10
+ ## Entscheidung
11
+
12
+ SurfaceManager wird als RMT-native Komponentenfamilie aufgebaut:
13
+
14
+ - `x-surface-manager`
15
+ - `x-surface-window`
16
+ - `x-side-panel`
17
+
18
+ Fabric bleibt darunter fuer Lanes, Fibers, Diagnostics und Telemetry. Der
19
+ SurfaceManager ersetzt Fabric nicht.
20
+
21
+ ## MVP Authoring
22
+
23
+ Neue SurfaceManager-Beispiele werden vNext-first geschrieben. Der Compiler kann
24
+ daraus weiterhin vorhandene RMT `components` Records mit
25
+ `metadata.surfaceManager` und `metadata.surface` erzeugen:
26
+
27
+ ```rmt
28
+ template workbench.surfaces {
29
+ state workbench.selection type object initial null
30
+
31
+ portal surface.root root "#workbench-root" layer surface
32
+
33
+ surface workbench.manager kind workspace component x-surface-manager {
34
+ portal surface.root
35
+
36
+ lane visible weight 90 {
37
+ mount x-surface-manager
38
+ hydrate surface-manager from endpoint surface.visible.render
39
+ }
40
+ }
41
+
42
+ surface workbench.inspector kind window component x-surface-window {
43
+ source state workbench.selection
44
+ portal surface.root
45
+
46
+ lane user-blocking weight 95 {
47
+ hydrate inspector-window from endpoint surface.user-blocking.open
48
+ }
49
+
50
+ lane transition weight 55 {
51
+ hydrate inspector-layout from endpoint surface.transition.layout
52
+ }
53
+ }
54
+
55
+ surface workbench.details kind panel component x-side-panel {
56
+ portal surface.root
57
+
58
+ lane visible weight 70 {
59
+ hydrate details-panel from state workbench.selection
60
+ }
61
+ }
62
+ }
63
+ ```
64
+
65
+ `xtend.surface` und eine native RMT `surfaces` Domain bleiben die Runtime-
66
+ Projektion dieses vNext-Pfads. Legacy `components[*].metadata.surface` ist
67
+ Migrationsquelle und Mirror, aber nicht mehr die bevorzugte Schreibform.
68
+
69
+ ## Schedules
70
+
71
+ | Schedule | Lane | Zweck |
72
+ |----------|------|-------|
73
+ | `surface.visible.render` | `visible` | Manager und sichtbare Surface Shell rendern |
74
+ | `surface.user-blocking.open` | `user-blocking` | Surface oeffnen und Fokus setzen |
75
+ | `surface.user-blocking.close` | `user-blocking` | Surface schliessen und Fokus restaurieren |
76
+ | `surface.transition.layout` | `transition` | Move, Resize, Docking und Snap committen |
77
+ | `surface.background.persist` | `background` | Layout Snapshot persistieren |
78
+ | `surface.diagnostics.snapshot` | `diagnostics` | Registry, Stack und Telemetry snapshotten |
79
+ | `a11y.user-blocking.announce` | `user-blocking` | Surface Status fuer Screenreader ansagen |
80
+
81
+ ## Fixture
82
+
83
+ Das Referenzdokument liegt in:
84
+
85
+ ```text
86
+ tests/fixtures/rmt-surface-manager-workbench.rmt
87
+ ```
88
+
89
+ Es beschreibt eine Shell-first Workbench mit zwei `x-surface-window` Records und
90
+ einem `x-side-panel` Record. Die naechste Dokumentationslinie sollte dieselbe
91
+ Workbench als RMT-vNext-Draft zeigen und die Records nur noch als
92
+ Compiler-/Compatibility-Output fuehren.
93
+
94
+ ## Gate
95
+
96
+ ```bash
97
+ node scripts/run_xtend_tests.js rmt-surface-authoring --json
98
+ ```
99
+
100
+ Der Gate prueft `xtend.rmt.surface-authoring.v1`, das Fixture,
101
+ Package-/Scaffold-Hooks, Runner-Registrierung, Docs und die
102
+ RMT-Core-Normalisierung ohne Browser- oder Netzwerkpflicht.
@@ -0,0 +1,59 @@
1
+ # SurfaceManager Route Lifecycle
2
+
3
+ Docs Contract: `xtend.docs.surface-manager-route-lifecycle.v1`
4
+
5
+ `WP-SM-14` bindet Surfaces an XRouter-Routen, ohne eine zweite Routing- oder Surface-Registry einzufuehren. XRouter bleibt Route-State-Quelle. SurfaceManager bleibt Lifecycle-Quelle fuer Surfaces.
6
+
7
+ ## Contract
8
+
9
+ - Route Lifecycle: `xtend.surface.route-lifecycle.v1`
10
+ - Report: `xtend.surface.route-lifecycle-report.v1`
11
+ - XRouter Bezug: `xtend.rmt.xrouter-adapter.v1`
12
+ - Gate: `node scripts/run_xtend_tests.js surface-route-lifecycle --json`
13
+
14
+ ## Manager
15
+
16
+ Route-Lifecycles sind explizit. Ein Manager reagiert nur, wenn `route-aware` gesetzt ist:
17
+
18
+ ```html
19
+ <x-surface-manager
20
+ manager-id="app.manager"
21
+ route-aware="true"
22
+ route-lifecycle-policy="open-close">
23
+ ...
24
+ </x-surface-manager>
25
+ ```
26
+
27
+ `snapshotRouteLifecycle()` liefert einen Report mit Route-State, Surface-Policy, Match-Status und den Boundaries `controllerRemainsRegistryTruth`, `xrouterOwnsRouteState` und `createsSecondRegistry: false`.
28
+
29
+ `applyRouteLifecycle(routeInput, options)` kann von Tests, Host-Adaptern oder XRouter-Events genutzt werden. Der normale Runtime-Pfad reagiert auf `route-changed`, `routechange`, `xrouter-after-navigate`, `xtend-route-changed`, `popstate` und `hashchange`.
30
+
31
+ ## Surface Policies
32
+
33
+ Surfaces werden ueber `data-surface-route` und `data-surface-route-policy` gebunden:
34
+
35
+ | Policy | Match | Kein Match |
36
+ |--------|-------|------------|
37
+ | `global` | bleibt unveraendert | bleibt unveraendert |
38
+ | `open-close` | open/restore und route-hydrate | close |
39
+ | `open-collapse` | open/restore/expand und route-hydrate | SidePanels collapse, Windows minimize |
40
+ | `open-minimize` | open/restore und route-hydrate | minimize, mit Collapse-Fallback |
41
+ | `open-keep` | open/restore und route-hydrate | bleibt offen |
42
+ | `hydrate-only` | route-hydrate | kein Lifecycle-Wechsel |
43
+ | `manual` | kein automatischer Wechsel | kein automatischer Wechsel |
44
+
45
+ globale Surfaces, Command Palettes oder Persistenz-Surfaces koennen mit `data-surface-route-policy="global"` oder `data-surface-route-persistent="true"` routewechselstabil bleiben.
46
+
47
+ ## RMT
48
+
49
+ RMT-materialisierte Surfaces tragen Route-Informationen als DOM-Attribute:
50
+
51
+ - `data-surface-route`
52
+ - `data-surface-route-policy`
53
+ - `data-surface-hydration-policy="route"` als Default, wenn eine Surface eine Route besitzt und keine explizite Hydration-Policy gesetzt ist
54
+
55
+ Der RMT Kernel importiert keine XTend-Typen. Der Adapter materialisiert nur Attribute; die Runtime-Entscheidung bleibt im SurfaceManager.
56
+
57
+ ## Keine konkurrierenden Lifecycle-Quellen
58
+
59
+ Standalone `x-side-panel route-aware` behaelt seinen alten Fallback. Sobald ein Panel aber von `x-surface-manager` verwaltet wird, delegiert es Routewechsel an den Manager. Damit gibt es fuer verwaltete Surfaces keine konkurrierenden Lifecycle-Quellen.
@@ -0,0 +1,69 @@
1
+ # SurfaceManager Runtime Release Handoff
2
+
3
+ `WP-SM-19` finalisiert die Surface Runtime als produktive XTend-UI-Schicht fuer App Shells. Der Contract `xtend.surface.runtime-release-handoff.v1` buendelt die Arbeit aus `WP-SM-10` bis `WP-SM-18` und macht den Runtime-Claim lokal gatebar.
4
+
5
+ ## Produktive Runtime Claims
6
+
7
+ | Claim | Gate |
8
+ | --- | --- |
9
+ | `productive-xtend-surface-adapter-runtime` | `surface-adapter-runtime` |
10
+ | `native-surfaces-materialize-xtend-ui-components` | `surface-native-materialization` |
11
+ | `restore-key-snapshot-hydration` | `surface-persistence` |
12
+ | `shell-first-skeleton-hydration` | `surface-lazy-hydration` |
13
+ | `xrouter-bound-surface-lifecycle` | `surface-route-lifecycle` |
14
+ | `modal-focus-inert-stack-policy` | `surface-stack-policy` |
15
+ | `layout-engines-docking-split-tile-stacked` | `surface-layout-engines` |
16
+ | `remote-surface-trust-policy` | `surface-remote-policy` |
17
+ | `browser-lab-visual-stability` | `surface-browser-lab` |
18
+
19
+ Der abschliessende Gate ist:
20
+
21
+ ```bash
22
+ node scripts/run_xtend_tests.js surface-runtime-release-handoff --json
23
+ ```
24
+
25
+ ## Authoring
26
+
27
+ Neue komplexe App Shells sollen native `surfaces[*]` nutzen. `components[*].metadata.surface` bleibt als Compatibility-Pfad bestehen, vor allem fuer bestehende Fixtures und additive Migrationen.
28
+
29
+ Der produktive Pfad ist:
30
+
31
+ 1. Surface Records in `surfaces[*]` modellieren.
32
+ 2. Component Records als Manager- und Content-Bindings referenzieren.
33
+ 3. Route, Schedule, State Key und Restore Key stabil halten.
34
+ 4. `surface-adapter-runtime` und `surface-native-materialization` pruefen.
35
+ 5. App-Shell-Stabilitaet ueber `surface-browser-lab` pruefen.
36
+
37
+ ## Release Gate Matrix
38
+
39
+ Der Runtime-Handoff erwartet die bestehende Baseline plus die gehaertete Runtime-Linie:
40
+
41
+ ```bash
42
+ node scripts/run_xtend_tests.js rmt-surface-authoring surface-controller surface-manager surface-side-panel surface-workbench-fixture surface-overlay-bridge surface-manager-quality surface-native-rmt surface-release-handoff --json
43
+ node scripts/run_xtend_tests.js surface-adapter-runtime surface-native-materialization surface-persistence surface-lazy-hydration surface-route-lifecycle surface-stack-policy surface-layout-engines surface-remote-policy surface-browser-lab surface-runtime-release-handoff --json
44
+ ```
45
+
46
+ ## Compatibility Notes
47
+
48
+ `xtend.surface.runtime-compatibility-notes.v1` haelt fest:
49
+
50
+ - bestehende Component-Metadata-Surfaces bleiben lauffaehig
51
+ - die Workbench- und Browser-Lab-Fixtures bleiben im Gate
52
+ - Docs-App Parsedown bleibt Host-Boundary und wird nicht in SurfaceManager verschoben
53
+ - Remote Runtime Loading bleibt ausserhalb des RMT-Kernels
54
+ - SurfaceManager ersetzt weder Fabric noch den RMT Kernel
55
+ - SurfaceController bleibt die einzige Registry
56
+
57
+ ## Offene Scopes
58
+
59
+ Diese Punkte sind bewusst nicht Teil des Runtime-Claims:
60
+
61
+ - `project-specific-pixel-artifact-storage`
62
+ - `release-owner-signoff-before-public-npm-publish`
63
+ - `optional-command-palette-and-workspace-surface-types`
64
+ - `remote-runtime-loading-remains-out-of-scope`
65
+ - `docs-app-php-parsedown-host-boundary-remains`
66
+
67
+ ## SemVer
68
+
69
+ Die Klassifizierung fuer den aktuellen Stand lautet `0.x-minor-with-migration-notes`. Vor externem Publish bleiben Release-Owner-Signoff, Changelog und die allgemeine Release Checklist erforderlich.
@@ -0,0 +1,36 @@
1
+ # SurfaceManager SidePanel Runtime
2
+
3
+ `WP-SM-04` fuehrt `x-side-panel` als native Surface-Komponente ein. Der Contract `xtend.surface.side-panel-runtime.v1` erweitert die Window Runtime um App-Shell-nahe SidePanels mit Docking, Pinning, Collapse, Overlay und responsive Fullscreen-Verhalten.
4
+
5
+ ## Komponenten
6
+
7
+ - `x-surface-manager`: erkennt `x-side-panel` im `panels`-Slot und verarbeitet `surface-panel-command`.
8
+ - `x-side-panel`: erzeugt `xtend.surface.record.v1` mit `type: "side-panel"`.
9
+ - `components/xsurfacemanager-controller.js`: bleibt die einzige Registry- und Snapshot-Wahrheit.
10
+
11
+ ## Modes
12
+
13
+ | Mode | Einsatz |
14
+ |------|---------|
15
+ | Docked | dauerhafte App-Shell-Seitenleiste |
16
+ | Pinned | geoeffnetes, persistentes Panel |
17
+ | Overlay | temporaeres Panel ueber dem Workspace |
18
+ | Collapsed | kompakte Panel-Leiste |
19
+ | Fullscreen | responsive Fallback fuer kleine Viewports |
20
+
21
+ Placements: `left`, `right`, `bottom`, `inline`.
22
+
23
+ ## Commands
24
+
25
+ `x-side-panel` sendet `surface-panel-command` mit `open`, `close`, `focus`, `resize`, `pin`, `unpin`, `collapse`, `expand`, `dock`, `restore` oder `update`.
26
+
27
+ Der Manager mappt diese Commands auf `openSurface`, `closeSurface`, `focusSurface`, `resizeSurface`, `updateSurface`, `pinSurface`, `collapseSurface`, `expandSurface`, `dockSurface` und `restoreSurface`.
28
+
29
+ ## Gates
30
+
31
+ ```bash
32
+ node scripts/run_xtend_tests.js surface-side-panel --json
33
+ npm run test:surface-side-panel -- --json
34
+ ```
35
+
36
+ `WP-SM-05` baut darauf das RMT-first Workbench Fixture mit zwei Windows, SidePanel, route-bound Content und shared Surface Snapshot.
@@ -0,0 +1,39 @@
1
+ # SurfaceManager Stack Policy
2
+
3
+ Ab `WP-SM-15` besitzt `x-surface-manager` den Contract `xtend.surface.stack-policy.v1` fuer gemischte Surface-Stacks aus Windows, SidePanels, Dialogen, Modals und Drawern.
4
+
5
+ ## Ziel
6
+
7
+ `modal-policy` wird produktiv auf Manager-Ebene ausgewertet. Der SurfaceController bleibt die Registry-Quelle, waehrend der Manager die UI-nahe Stack-Policy auf vorhandene XTend-Komponenten anwendet:
8
+
9
+ - `snapshotStackPolicy()` liefert den aktuellen Report `xtend.surface.stack-policy-report.v1`.
10
+ - `applyStackPolicy()` wendet Layer Tokens, aktive Modalitaet, Inert, `aria-hidden`, `aria-modal`, Focus Trap, Focus Restore, Escape-Prioritaet und Scroll Lock an.
11
+ - bestehende Overlay-Komponenten behalten ihre lokalen APIs und Focus-/Escape-Implementierungen.
12
+
13
+ ## Modal Policies
14
+
15
+ | Policy | Wirkung |
16
+ |--------|---------|
17
+ | `topmost` | die oberste modale Surface erhaelt aktive Modalitaet |
18
+ | `none` | keine Manager-Modalitaet, keine Inert- oder Scroll-Lock-Regel |
19
+ | `all-modal` | jede offene Surface kann als modal behandelt werden, aktiv ist die oberste |
20
+ | `surface-modal` | alle als modal deklarierten Surfaces werden erkannt, aktiv ist die oberste modale Surface |
21
+
22
+ ## Laufzeitregeln
23
+
24
+ - Focus Restore: Beim Aktivieren einer modalen Surface merkt sich der Manager das vorherige Fokusziel und stellt es nach Close wieder her.
25
+ - Inert: Hintergrund-Surfaces erhalten `data-surface-inert="manager"`, `inert` und `aria-hidden`, solange eine aktive modale Surface existiert.
26
+ - Escape: Ein dokumentweiter Capture-Handler schliesst die aktive modale Surface oder sonst die oberste schliessbare Surface.
27
+ - Scroll Lock: Aktive Modalitaet setzt `data-xtend-surface-scroll-lock` auf `html` und `body`.
28
+ - Layer Tokens: Jede Surface erhaelt `data-surface-layer-token`, `--surface-layer-z` und kompatible Komponenten-Z-Variablen.
29
+ - Diagnostics: fehlende Labels, fehlende Fokusziele und Modalitaet unterhalb nicht-modaler Surfaces werden im Stack-Policy-Report sichtbar.
30
+
31
+ ## Boundary
32
+
33
+ Die Stack Policy ist eine unterstuetzende XTend-UI-Schicht. Sie erzeugt keine zweite Registry, ersetzt weder Fabric noch den RMT Kernel und veraendert nicht die SurfaceController-Wahrheit. RMT kann `modal-policy` deklarieren, aber die Laufzeitentscheidung bleibt beim `x-surface-manager`.
34
+
35
+ Lokaler Gate:
36
+
37
+ ```bash
38
+ node scripts/run_xtend_tests.js surface-stack-policy --json
39
+ ```
@@ -0,0 +1,47 @@
1
+ # SurfaceManager Window Runtime
2
+
3
+ `WP-SM-03` macht den SurfaceManager erstmals sichtbar: `x-surface-manager` verwaltet den Controller und `x-surface-window` ist die erste WindowManager-Surface.
4
+
5
+ - Contract: `xtend.surface.window-runtime.v1`
6
+ - Manager: `components/xsurfacemanager.js`
7
+ - Window: `components/xsurfacewindow.js`
8
+ - Controller: `components/xsurfacemanager-controller.js`
9
+ - Gate: `node scripts/run_xtend_tests.js surface-manager --json`
10
+
11
+ ## Beispiel
12
+
13
+ ```html
14
+ <x-surface-manager id="workbench" manager-id="workbench.manager">
15
+ <x-surface-window
16
+ slot="windows"
17
+ surface-id="workbench.inspector"
18
+ label="Inspector"
19
+ open
20
+ draggable
21
+ resizable
22
+ initial-x="96"
23
+ initial-y="88"
24
+ initial-width="520"
25
+ initial-height="360">
26
+ <section>Inspector content</section>
27
+ </x-surface-window>
28
+ </x-surface-manager>
29
+ ```
30
+
31
+ ## Manager
32
+
33
+ `x-surface-manager` bietet `registerSurface`, `openSurface`, `closeSurface`, `focusSurface`, `updateSurface`, `moveSurface`, `resizeSurface`, `minimizeSurface`, `maximizeSurface`, `restoreSurface` und `snapshot`.
34
+
35
+ Slots: `windows`, `panels`, `overlays`, `default`.
36
+
37
+ Events: `surface-manager-ready`, `surface-registered`, `surface-opened`, `surface-closed`, `surface-focused`, `surface-updated`, `surface-layout-changed`.
38
+
39
+ ## Window
40
+
41
+ `x-surface-window` bietet `toSurfaceRecord`, `applySurfaceSnapshot`, `openWindow`, `closeWindow`, `focusWindow`, `minimizeWindow`, `maximizeWindow` und `restoreWindow`.
42
+
43
+ Das Element sendet `surface-window-command`. Der Manager fuehrt daraus die Controller-Operation aus und spiegelt den Snapshot zurueck.
44
+
45
+ ## Handoff
46
+
47
+ `WP-SM-04` erweitert diese Runtime um `x-side-panel` und responsive Surface Modes. Die Window-Runtime bleibt der erste Multi Window Beweis und darf keine zweite Registry neben dem Controller einfuehren.
@@ -0,0 +1,43 @@
1
+ # SurfaceManager Workbench Fixture
2
+
3
+ Docs Contract: `xtend.docs.surface-manager-workbench-fixture.v1`
4
+
5
+ Runtime Contract: `xtend.surface.workbench-fixture.v1`
6
+
7
+ `WP-SM-05` fuehrt die erste RMT-first Workbench fuer den SurfaceManager ein. Sie rendert eine App Shell aus RMT, bindet den SurfaceManager an eine Route und zeigt zwei Windows plus SidePanel mit gemeinsamem Snapshot.
8
+
9
+ ## Artefakte
10
+
11
+ | Pfad | Zweck |
12
+ |------|-------|
13
+ | `xtendrmt/surface-workbench.rmt` | RMT-Dokument mit App Shell, Route, SurfaceManager, zwei Windows, SidePanel und Content |
14
+ | `tests/browser/fixtures/rmt-surface-workbench-smoke.html` | Host-/Smoke-Fixture ohne manuelle Surface-Komponenten |
15
+ | `xtendrmt/surface-workbench.js` | Workbench Renderer fuer `dom_descriptor`, Slots, Routes und Snapshot |
16
+ | `tests/browser/fixtures/rmt-surface-workbench-smoke.html` | vorbereiteter Browser-Smoke fuer spaetere Surface-Gates |
17
+
18
+ ## Modell
19
+
20
+ Die Workbench nutzt weiter den MVP-Pfad aus `xtend.rmt.surface-authoring.v1`: Surfaces sind normale `components` Records mit `metadata.surface`. Die native RMT `surfaces` Domain bleibt reserviert.
21
+
22
+ Enthalten sind:
23
+
24
+ - `workbench.manager` als `x-surface-manager`
25
+ - `workbench.inspector` und `workbench.editor` als zwei Windows
26
+ - `workbench.properties` als `x-side-panel`
27
+ - `app.router` als route-bound Outlet
28
+ - `workbench` als Route fuer Surface Content
29
+ - `xtend.surface.snapshot` als shared Surface Snapshot Key
30
+
31
+ ## Runtime
32
+
33
+ `xtendrmt/surface-workbench.js` rendert nur strukturierte DOM Nodes. Der Renderer verwendet kein `innerHTML`, sondern `renderDomDescriptor`, `renderSurfaceWorkbenchFromDocument` und `root.replaceChildren(shellFragment)`.
34
+
35
+ Der Snapshot wird ueber `collectSurfaceSnapshot(root)` gelesen. Wenn `x-surface-manager.snapshot()` verfuegbar ist, kommt der Snapshot direkt vom Manager; andernfalls liefert das Fixture einen DOM-Fallback fuer statische Gates.
36
+
37
+ ## Gate
38
+
39
+ ```bash
40
+ node scripts/run_xtend_tests.js surface-workbench-fixture --json
41
+ ```
42
+
43
+ Der Gate prueft Contract, RMT-Normalisierung, Host-Boundary, Runtime-Boundary, route-bound Content, zwei Windows, SidePanel, shared Surface Snapshot, Package-/Scaffold-Metadaten, Docs und Runner-Registrierung.