@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,30 @@
1
+ # SurfaceManager Persistence
2
+
3
+ `x-surface-manager` can save surface layouts under a `restore-key` and restore them through the SurfaceController on the next start.
4
+
5
+ ## Attributes
6
+
7
+ | Attribute | Values | Purpose |
8
+ | --- | --- | --- |
9
+ | `restore-key` | string | Stable key for the app-shell layout |
10
+ | `persistence-mode` | `none`, `memory`, `session`, `local` | Storage backend for snapshots |
11
+ | `restore-policy` | `auto`, `manual`, `reset` | Auto-restore on connect or manual control |
12
+
13
+ Without `restore-key`, persistence stays disabled. With `restore-key` and no explicit `persistence-mode`, the runtime uses `session`.
14
+
15
+ ## API
16
+
17
+ - `snapshotPersistence()` returns the active persistence contract.
18
+ - `persistSnapshot(snapshot, options)` stores a layout-only snapshot.
19
+ - `restorePersistedSnapshot(options)` reads and hydrates a stored snapshot.
20
+ - `clearPersistedSnapshot(options)` removes the stored snapshot.
21
+ - `resetSurfaceLayout(options)` clears persistence and registers the declared surface elements again.
22
+
23
+ The stored format is `xtend.surface.persisted-snapshot.v1`. Content payloads are not persisted; surface IDs, bounds, stack, active surface, panel modes, status and content refs are preserved.
24
+
25
+ ## Boundaries
26
+
27
+ - The SurfaceController remains the only source of registry truth.
28
+ - Restore runs through controller operations, not by directly mutating a second registry.
29
+ - Invalid or incompatible snapshots lead to a controlled skip with diagnostics.
30
+ - The RMT kernel imports no XTend components.
@@ -0,0 +1,51 @@
1
+ # SurfaceManager Quality Gates
2
+
3
+ `WP-SM-07` introduces `xtend.surface.quality-gates.v1`. The gate checks the SurfaceManager across four domains: browser, a11y, performance and visual.
4
+
5
+ ## Local 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
+ The domain gates run through the same contract and can be referenced specifically in local checks or CI matrices.
16
+
17
+ ## Browser
18
+
19
+ The fixture `tests/browser/fixtures/surface-manager-quality-smoke.html` builds a mixed surface UI:
20
+
21
+ - two `x-surface-window`
22
+ - one `x-side-panel`
23
+ - one `x-modal`
24
+ - one `x-dialog`
25
+ - one `x-drawer`
26
+
27
+ Overlays are opened through `surface-overlay-command` and added to the same surface stack.
28
+
29
+ ## A11y
30
+
31
+ The gate checks contract and fixture signals for:
32
+
33
+ - roles: `application`, `dialog`, `complementary`
34
+ - `aria-live` status
35
+ - focus restore
36
+ - Escape topmost behavior
37
+ - Tab focus trap
38
+ - reduced motion
39
+ - forced colors and visible focus
40
+
41
+ ## Performance
42
+
43
+ The contract defines budgets for open/close, focus, layout transition, snapshot and registration. The browser fixture additionally sets the performance measurement `surface-quality-open-close`.
44
+
45
+ ## Visual
46
+
47
+ The DOM baseline `tests/browser/visual-baselines/surface-manager-quality.dom-baseline.json` covers desktop, mobile, topmost overlay and forced colors. It intentionally remains JSON-only so the local gate can run stably without browser pixel diff.
48
+
49
+ ## Handoff
50
+
51
+ `WP-SM-08` can build on the quality gates and validate the native RMT `surfaces` domain against the same visible stack states.
@@ -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
+ The first SurfaceManager line is authoring-ready and gate-ready with `WP-SM-09`. XTend can describe app shells with multi-window, side panels, overlay compatibility, quality gates and native RMT surface records.
12
+
13
+ Historical `WP-SM-09` release boundary:
14
+
15
+ ```text
16
+ no-public-runtime-claim-for-xtend.surface-adapter-yet
17
+ ```
18
+
19
+ In the `WP-SM-09` authoring handoff, this meant: `surfaces[*]` and `xtend.surface.adapter.v1` were a stable handoff for tooling and the next runtime work. Since `WP-SM-19`, this runtime work has been closed through [SurfaceManager Runtime Release Handoff](./surface-manager-runtime-release-handoff.md), and the productive `xtend.surface` adapter claim is gateable.
20
+
21
+ ## Gate Chain
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
+ Ready:
38
+
39
+ - app-shell authoring through component records and surface metadata
40
+ - native `surfaces[*]` records for complex workbench UIs
41
+ - Component Lab fixture for surface preview, native RMT inspector, migration diff, quality gates and source links
42
+ - migration guide from `components[*].metadata.surface` to `surfaces[*]`
43
+ - local static gates for RMT normalization, semantic graph, docs and reference paths
44
+
45
+ Historical follow-up work from `WP-SM-09`:
46
+
47
+ - productive `xtend.surface` adapter runtime, closed by `WP-SM-19`
48
+ - optional browser-lab server or visual pixel baselines
49
+ - additional surface types such as docked workspaces, command palettes and split panes
50
+ - release hardening against real app-shell projects
51
+
52
+ ## WP-SM-19 Runtime Handoff
53
+
54
+ `WP-SM-19` closes this follow-up work for the productive runtime line. The new contract `xtend.surface.runtime-release-handoff.v1` documents the productive runtime line made of adapter runtime, native materialization, persistence, lazy hydration, route lifecycle, stack policy, layout engines, remote policy and browser lab.
55
+
56
+ ```bash
57
+ node scripts/run_xtend_tests.js surface-runtime-release-handoff --json
58
+ ```
59
+
60
+ `WP-SM-09` therefore remains the historical authoring handoff, while `WP-SM-19` makes the productive runtime claim gateable. Open scopes such as project-specific pixel artifacts, release-owner signoff before npm publish and optional additional surface types remain explicitly named in the runtime handoff.
61
+
62
+ ## References
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` connects E16 remote-surface records to the XTend UI surface runtime. The contract `xtend.surface.remote-policy-bridge.v1` belongs to `x-surface-manager`; the RMT kernel remains declarative and executes no remote runtime.
4
+
5
+ ## Decisions
6
+
7
+ Remote surfaces are converted host-side into exactly one decision. The accepted trust boundary is `xtend.security.remote-surface.v1`.
8
+
9
+ - `mounted`: owner, version, origin, integrity, trust boundary, capabilities, sandbox/CSP and event governance match.
10
+ - `degraded`: a policy violation exists, but an explicit fallback is available.
11
+ - `refused`: the surface may not be registered because a hard policy violation exists without fallback.
12
+
13
+ The SurfaceController remains the only registry. The policy bridge creates no second registry; it only manages host decisions, diagnostics and fallback mapping.
14
+
15
+ ## Manager API
16
+
17
+ - `evaluateRemoteSurfacePolicy(record, options)` checks a remote surface record without commit.
18
+ - `applyRemoteSurfacePolicy(record, options)` checks and registers a mounted or degraded surface with `commit: true`.
19
+ - `registerRemoteSurface(record, options)` is the productive mount path for `xtend.surface`.
20
+ - `snapshotRemoteSurfacePolicy()` returns `xtend.surface.remote-policy-report.v1`.
21
+ - `governRemoteSurfaceEvent(event, payload, options)` checks cross-surface events without an implicit global event bus.
22
+
23
+ Important host attributes:
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
+ The `xtend.surface` adapter consumes E16 remote-surface records, normalizes them as surface intent and forwards them to the SurfaceManager. It materializes at most a local shell or fallback. It loads no remote bundles, starts no `import()` and executes no remote runtime loading in the RMT kernel.
32
+
33
+ ## Diagnostics
34
+
35
+ Policy violations are diagnosable, including:
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
+ The gate checks runtime methods, public types, RMT adapter connection, enterprise MFE fixture, degradation/fallback, event governance, package metadata and the boundaries `no second registry` and `no remote runtime loading in the RMT kernel`.
@@ -0,0 +1,89 @@
1
+ # SurfaceManager RMT Authoring
2
+
3
+ Docs contract: `xtend.docs.surface-manager-rmt-authoring.v1`
4
+
5
+ The SurfaceManager is the XTend app-shell building block for multi-window UIs, side panels and later surface types in an SPA. `WP-SM-01` first defines the RMT authoring model; runtime components follow in the next packages.
6
+
7
+ ## Decision
8
+
9
+ SurfaceManager is built as an RMT-native component family:
10
+
11
+ - `x-surface-manager`
12
+ - `x-surface-window`
13
+ - `x-side-panel`
14
+
15
+ Fabric remains underneath for lanes, fibers, diagnostics and telemetry. SurfaceManager does not replace Fabric.
16
+
17
+ ## MVP Authoring
18
+
19
+ New SurfaceManager examples are written vNext-first. The compiler can still generate existing RMT `components` records with `metadata.surfaceManager` and `metadata.surface` from them:
20
+
21
+ ```rmt
22
+ template workbench.surfaces {
23
+ state workbench.selection type object initial null
24
+
25
+ portal surface.root root "#workbench-root" layer surface
26
+
27
+ surface workbench.manager kind workspace component x-surface-manager {
28
+ portal surface.root
29
+
30
+ lane visible weight 90 {
31
+ mount x-surface-manager
32
+ hydrate surface-manager from endpoint surface.visible.render
33
+ }
34
+ }
35
+
36
+ surface workbench.inspector kind window component x-surface-window {
37
+ source state workbench.selection
38
+ portal surface.root
39
+
40
+ lane user-blocking weight 95 {
41
+ hydrate inspector-window from endpoint surface.user-blocking.open
42
+ }
43
+
44
+ lane transition weight 55 {
45
+ hydrate inspector-layout from endpoint surface.transition.layout
46
+ }
47
+ }
48
+
49
+ surface workbench.details kind panel component x-side-panel {
50
+ portal surface.root
51
+
52
+ lane visible weight 70 {
53
+ hydrate details-panel from state workbench.selection
54
+ }
55
+ }
56
+ }
57
+ ```
58
+
59
+ `xtend.surface` and a native RMT `surfaces` domain remain the runtime projection of this vNext path. Legacy `components[*].metadata.surface` is migration source and mirror, but no longer the preferred authoring form.
60
+
61
+ ## Schedules
62
+
63
+ | Schedule | Lane | Purpose |
64
+ |----------|------|---------|
65
+ | `surface.visible.render` | `visible` | render manager and visible surface shell |
66
+ | `surface.user-blocking.open` | `user-blocking` | open surface and set focus |
67
+ | `surface.user-blocking.close` | `user-blocking` | close surface and restore focus |
68
+ | `surface.transition.layout` | `transition` | commit move, resize, docking and snap |
69
+ | `surface.background.persist` | `background` | persist layout snapshot |
70
+ | `surface.diagnostics.snapshot` | `diagnostics` | snapshot registry, stack and telemetry |
71
+ | `a11y.user-blocking.announce` | `user-blocking` | announce surface status for screenreaders |
72
+
73
+ ## Fixture
74
+
75
+ The reference document is located at:
76
+
77
+ ```text
78
+ tests/fixtures/rmt-surface-manager-workbench.rmt
79
+ ```
80
+
81
+ It describes a shell-first workbench with two `x-surface-window` records and one `x-side-panel` record. The next documentation line should show the same workbench as an RMT vNext draft and keep the records only as compiler/compatibility output.
82
+
83
+ ## Gate
84
+
85
+ ```bash
86
+ node scripts/run_xtend_tests.js rmt-surface-authoring --json
87
+ ```
88
+
89
+ The gate checks `xtend.rmt.surface-authoring.v1`, the fixture, package/scaffold hooks, runner registration, docs and RMT core normalization without browser or network requirements.
@@ -0,0 +1,59 @@
1
+ # SurfaceManager Route Lifecycle
2
+
3
+ Docs contract: `xtend.docs.surface-manager-route-lifecycle.v1`
4
+
5
+ `WP-SM-14` binds surfaces to XRouter routes without introducing a second routing or surface registry. XRouter remains the route-state source. SurfaceManager remains the lifecycle source for surfaces.
6
+
7
+ ## Contract
8
+
9
+ - Route lifecycle: `xtend.surface.route-lifecycle.v1`
10
+ - Report: `xtend.surface.route-lifecycle-report.v1`
11
+ - XRouter relation: `xtend.rmt.xrouter-adapter.v1`
12
+ - Gate: `node scripts/run_xtend_tests.js surface-route-lifecycle --json`
13
+
14
+ ## Manager
15
+
16
+ Route lifecycles are explicit. A manager reacts only when `route-aware` is set:
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()` returns a report with route state, surface policy, match status and the boundaries `controllerRemainsRegistryTruth`, `xrouterOwnsRouteState` and `createsSecondRegistry: false`.
28
+
29
+ `applyRouteLifecycle(routeInput, options)` can be used by tests, host adapters or XRouter events. The normal runtime path reacts to `route-changed`, `routechange`, `xrouter-after-navigate`, `xtend-route-changed`, `popstate` and `hashchange`.
30
+
31
+ ## Surface Policies
32
+
33
+ Surfaces are bound through `data-surface-route` and `data-surface-route-policy`:
34
+
35
+ | Policy | Match | No match |
36
+ |--------|-------|----------|
37
+ | `global` | remains unchanged | remains unchanged |
38
+ | `open-close` | open/restore and route-hydrate | close |
39
+ | `open-collapse` | open/restore/expand and route-hydrate | side panels collapse, windows minimize |
40
+ | `open-minimize` | open/restore and route-hydrate | minimize, with collapse fallback |
41
+ | `open-keep` | open/restore and route-hydrate | remains open |
42
+ | `hydrate-only` | route-hydrate | no lifecycle change |
43
+ | `manual` | no automatic change | no automatic change |
44
+
45
+ Global surfaces, command palettes or persistence surfaces can remain stable across route changes with `data-surface-route-policy="global"` or `data-surface-route-persistent="true"`.
46
+
47
+ ## RMT
48
+
49
+ RMT-materialized surfaces carry route information as DOM attributes:
50
+
51
+ - `data-surface-route`
52
+ - `data-surface-route-policy`
53
+ - `data-surface-hydration-policy="route"` as default when a surface has a route and no explicit hydration policy is set
54
+
55
+ The RMT kernel imports no XTend types. The adapter materializes only attributes; the runtime decision remains in the SurfaceManager.
56
+
57
+ ## No Competing Lifecycle Sources
58
+
59
+ Standalone `x-side-panel route-aware` keeps its old fallback. However, as soon as a panel is managed by `x-surface-manager`, it delegates route changes to the manager. Managed surfaces therefore have no competing lifecycle sources.
@@ -0,0 +1,69 @@
1
+ # SurfaceManager Runtime Release Handoff
2
+
3
+ `WP-SM-19` finalizes the surface runtime as a productive XTend UI layer for app shells. The contract `xtend.surface.runtime-release-handoff.v1` bundles the work from `WP-SM-10` through `WP-SM-18` and makes the runtime claim locally gateable.
4
+
5
+ ## Productive 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
+ The final gate is:
20
+
21
+ ```bash
22
+ node scripts/run_xtend_tests.js surface-runtime-release-handoff --json
23
+ ```
24
+
25
+ ## Authoring
26
+
27
+ New complex app shells should use native `surfaces[*]`. `components[*].metadata.surface` remains as a compatibility path, especially for existing fixtures and additive migrations.
28
+
29
+ The productive path is:
30
+
31
+ 1. Model surface records in `surfaces[*]`.
32
+ 2. Reference component records as manager and content bindings.
33
+ 3. Keep route, schedule, state key and restore key stable.
34
+ 4. Check `surface-adapter-runtime` and `surface-native-materialization`.
35
+ 5. Check app-shell stability through `surface-browser-lab`.
36
+
37
+ ## Release Gate Matrix
38
+
39
+ The runtime handoff expects the existing baseline plus the hardened runtime line:
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` records:
49
+
50
+ - existing component-metadata surfaces remain runnable
51
+ - workbench and browser-lab fixtures remain in the gate
52
+ - Docs app Parsedown remains a host boundary and is not moved into SurfaceManager
53
+ - remote runtime loading remains outside the RMT kernel
54
+ - SurfaceManager replaces neither Fabric nor the RMT kernel
55
+ - SurfaceController remains the only registry
56
+
57
+ ## Open Scopes
58
+
59
+ These points are intentionally not part of the runtime claim:
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
+ The classification for the current state is `0.x-minor-with-migration-notes`. Before external publish, release-owner signoff, changelog and the general release checklist remain required.
@@ -0,0 +1,36 @@
1
+ # SurfaceManager SidePanel Runtime
2
+
3
+ `WP-SM-04` introduces `x-side-panel` as a native surface component. The contract `xtend.surface.side-panel-runtime.v1` extends the window runtime with app-shell-close side panels for docking, pinning, collapse, overlay and responsive fullscreen behavior.
4
+
5
+ ## Components
6
+
7
+ - `x-surface-manager`: detects `x-side-panel` in the `panels` slot and processes `surface-panel-command`.
8
+ - `x-side-panel`: creates `xtend.surface.record.v1` with `type: "side-panel"`.
9
+ - `components/xsurfacemanager-controller.js`: remains the only registry and snapshot truth.
10
+
11
+ ## Modes
12
+
13
+ | Mode | Use |
14
+ |------|-----|
15
+ | Docked | persistent app-shell sidebar |
16
+ | Pinned | open, persistent panel |
17
+ | Overlay | temporary panel above the workspace |
18
+ | Collapsed | compact panel rail |
19
+ | Fullscreen | responsive fallback for small viewports |
20
+
21
+ Placements: `left`, `right`, `bottom`, `inline`.
22
+
23
+ ## Commands
24
+
25
+ `x-side-panel` sends `surface-panel-command` with `open`, `close`, `focus`, `resize`, `pin`, `unpin`, `collapse`, `expand`, `dock`, `restore` or `update`.
26
+
27
+ The manager maps these commands to `openSurface`, `closeSurface`, `focusSurface`, `resizeSurface`, `updateSurface`, `pinSurface`, `collapseSurface`, `expandSurface`, `dockSurface` and `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` builds on this with the RMT-first workbench fixture containing two windows, a side panel, route-bound content and a shared surface snapshot.
@@ -0,0 +1,39 @@
1
+ # SurfaceManager Stack Policy
2
+
3
+ As of `WP-SM-15`, `x-surface-manager` owns the `xtend.surface.stack-policy.v1` contract for mixed surface stacks made of windows, side panels, dialogs, modals and drawers.
4
+
5
+ ## Goal
6
+
7
+ `modal-policy` is evaluated productively at manager level. The SurfaceController remains the registry source while the manager applies the UI-close stack policy to existing XTend components:
8
+
9
+ - `snapshotStackPolicy()` returns the current report `xtend.surface.stack-policy-report.v1`.
10
+ - `applyStackPolicy()` applies layer tokens, active modality, inert, `aria-hidden`, `aria-modal`, focus trap, focus restore, Escape priority and scroll lock.
11
+ - existing overlay components keep their local APIs and focus/Escape implementations.
12
+
13
+ ## Modal Policies
14
+
15
+ | Policy | Effect |
16
+ |--------|--------|
17
+ | `topmost` | the topmost modal surface receives active modality |
18
+ | `none` | no manager modality, no inert or scroll-lock rule |
19
+ | `all-modal` | every open surface can be treated as modal; the topmost one is active |
20
+ | `surface-modal` | all surfaces declared as modal are recognized; the topmost modal surface is active |
21
+
22
+ ## Runtime Rules
23
+
24
+ - Focus restore: when a modal surface is activated, the manager remembers the previous focus target and restores it after close.
25
+ - Inert: background surfaces receive `data-surface-inert="manager"`, `inert` and `aria-hidden` while an active modal surface exists.
26
+ - Escape: a document-wide capture handler closes the active modal surface or otherwise the topmost closable surface.
27
+ - Scroll lock: active modality sets `data-xtend-surface-scroll-lock` on `html` and `body`.
28
+ - Layer tokens: every surface receives `data-surface-layer-token`, `--surface-layer-z` and compatible component z variables.
29
+ - Diagnostics: missing labels, missing focus targets and modality below non-modal surfaces become visible in the stack-policy report.
30
+
31
+ ## Boundary
32
+
33
+ The stack policy is a supporting XTend UI layer. It creates no second registry, replaces neither Fabric nor the RMT kernel, and does not change SurfaceController truth. RMT can declare `modal-policy`, but the runtime decision remains with `x-surface-manager`.
34
+
35
+ Local 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` makes the SurfaceManager visible for the first time: `x-surface-manager` manages the controller, and `x-surface-window` is the first 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
+ ## Example
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` provides `registerSurface`, `openSurface`, `closeSurface`, `focusSurface`, `updateSurface`, `moveSurface`, `resizeSurface`, `minimizeSurface`, `maximizeSurface`, `restoreSurface` and `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` provides `toSurfaceRecord`, `applySurfaceSnapshot`, `openWindow`, `closeWindow`, `focusWindow`, `minimizeWindow`, `maximizeWindow` and `restoreWindow`.
42
+
43
+ The element sends `surface-window-command`. The manager turns it into the controller operation and mirrors the snapshot back.
44
+
45
+ ## Handoff
46
+
47
+ `WP-SM-04` extends this runtime with `x-side-panel` and responsive surface modes. The window runtime remains the first multi-window proof and must not introduce a second registry beside the controller.
@@ -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` introduces the first RMT-first workbench for the SurfaceManager. It renders an app shell from RMT, binds the SurfaceManager to a route and shows two windows plus a side panel with a shared snapshot.
8
+
9
+ ## Artifacts
10
+
11
+ | Path | Purpose |
12
+ |------|---------|
13
+ | `xtendrmt/surface-workbench.rmt` | RMT document with app shell, route, SurfaceManager, two windows, side panel and content |
14
+ | `tests/browser/fixtures/rmt-surface-workbench-smoke.html` | host/smoke fixture without manual surface components |
15
+ | `xtendrmt/surface-workbench.js` | workbench renderer for `dom_descriptor`, slots, routes and snapshot |
16
+ | `tests/browser/fixtures/rmt-surface-workbench-smoke.html` | prepared browser smoke for later surface gates |
17
+
18
+ ## Model
19
+
20
+ The workbench continues to use the MVP path from `xtend.rmt.surface-authoring.v1`: surfaces are normal `components` records with `metadata.surface`. The native RMT `surfaces` domain remains reserved.
21
+
22
+ Included:
23
+
24
+ - `workbench.manager` as `x-surface-manager`
25
+ - `workbench.inspector` and `workbench.editor` as two windows
26
+ - `workbench.properties` as `x-side-panel`
27
+ - `app.router` as route-bound outlet
28
+ - `workbench` as route for surface content
29
+ - `xtend.surface.snapshot` as shared surface snapshot key
30
+
31
+ ## Runtime
32
+
33
+ `xtendrmt/surface-workbench.js` renders only structured DOM nodes. The renderer does not use `innerHTML`; it uses `renderDomDescriptor`, `renderSurfaceWorkbenchFromDocument` and `root.replaceChildren(shellFragment)`.
34
+
35
+ The snapshot is read via `collectSurfaceSnapshot(root)`. If `x-surface-manager.snapshot()` is available, the snapshot comes directly from the manager; otherwise the fixture provides a DOM fallback for static gates.
36
+
37
+ ## Gate
38
+
39
+ ```bash
40
+ node scripts/run_xtend_tests.js surface-workbench-fixture --json
41
+ ```
42
+
43
+ The gate checks contract, RMT normalization, host boundary, runtime boundary, route-bound content, two windows, side panel, shared surface snapshot, package/scaffold metadata, docs and runner registration.