@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,106 @@
1
+ # XTend Supply-Chain Gates
2
+
3
+ - Status: active since `ER-WP-30`
4
+ - Docs Contract: `xtend.docs.supply-chain-gates.v1`
5
+ - Supply-Chain Contract: `xtend.security.supply-chain-gate-plan.v1`
6
+ - Dependency Audit Gate: `xtend.security.dependency-audit-gate.v1`
7
+ - License Policy: `xtend.security.license-policy.v1`
8
+ - Vulnerability Policy: `xtend.security.vulnerability-policy.v1`
9
+ - Release Gate: `xtend.security.release-supply-chain-gate.v1`
10
+
11
+ ## Overview
12
+
13
+ XTend is prepared for RC1 publish prep as a scoped public package surface.
14
+ Supply-chain gates control dependencies, licenses, vulnerabilities, SBOM,
15
+ provenance, and the installable package surface.
16
+
17
+ The local default path is offline and reproducible. It does not query the npm
18
+ registry.
19
+
20
+ ## Local Checks
21
+
22
+ ```bash
23
+ node scripts/verify_supply_chain_policy.js --json
24
+ node scripts/run_xtend_tests.js supply-chain --json
25
+ npm run test:supply-chain
26
+ ```
27
+
28
+ The verifier checks:
29
+
30
+ - `private: false` for RC1 publish prep
31
+ - `license: "Apache-2.0"` for the full XTend stack
32
+ - `publishConfig.provenance = true`
33
+ - export of `security/supply-chain-gate-policy.js`
34
+ - release gate metadata in `package.json`
35
+ - dependency inventory and lockfile requirement
36
+
37
+ ## CI and Release Stages
38
+
39
+ These commands are planned for CI and release automation:
40
+
41
+ ```bash
42
+ npm audit --audit-level=moderate
43
+ npm sbom --sbom-format=cyclonedx --json
44
+ npm run release:report
45
+ npm run pack:dry-run
46
+ ```
47
+
48
+ `npm audit` and `npm sbom` may need network access. They therefore do not
49
+ belong to the local default test, but to controlled CI/release stages.
50
+
51
+ ## License Policy
52
+
53
+ The full XTend stack is set to `Apache-2.0`. For RC1 publish prep,
54
+ `private: false` is set; the actual `npm publish` remains a separate owner
55
+ step.
56
+
57
+ The scoped release manifests are part of the supply-chain gate:
58
+
59
+ | Package | Manifest |
60
+ |---------|----------|
61
+ | `@ccslabs/xtend` | `package.json` |
62
+ | `@ccslabs/xtend-rmt` | `xtendrmt/package.json` |
63
+ | `@ccslabs/xtend-fabric` | `fabric/package.json` |
64
+ | `@ccslabs/xtend-cli` | `xtend-builder/package.json` |
65
+ | `@ccslabs/xtend-compiler` | `tools/package.json` |
66
+
67
+ A public release first needs:
68
+
69
+ - confirmed Apache-2.0 license decision
70
+ - dependency license inventory
71
+ - review of all non-permissive dependency licenses
72
+ - exclusion of AGPL/GPL/UNLICENSED as default third-party dependencies
73
+
74
+ ## Vulnerability Policy
75
+
76
+ - `critical` blocks every release.
77
+ - `high` blocks release candidates.
78
+ - Production findings from `moderate` upward must be triaged.
79
+ - Known exploits must not remain in release candidates.
80
+
81
+ ## Machine-Readable Policy
82
+
83
+ ```js
84
+ const {
85
+ createSupplyChainGatePlan,
86
+ classifyPackageSupplyChain
87
+ } = require('./security/supply-chain-gate-policy');
88
+ ```
89
+
90
+ The policy itself lives in:
91
+
92
+ ```text
93
+ security/supply-chain-gate-policy.js
94
+ ```
95
+
96
+ The local report uses:
97
+
98
+ ```text
99
+ xtend.security.supply-chain-report.v1
100
+ ```
101
+
102
+ ## Related Documents
103
+
104
+ - [XTend Loader](./xtend-loader.md)
105
+ - [Trusted DOM and Sanitizing](./trusted-dom-sanitizing.md)
106
+ - [XTend Fabric Runtime](./xtend-fabric.md)
@@ -0,0 +1,94 @@
1
+ # SurfaceManager Authoring Guide
2
+
3
+ - Contract: `xtend.surface.release-handoff.v1`
4
+ - Workpackage: `WP-SM-09`
5
+ - Fixture: `tests/fixtures/rmt-surface-manager-component-lab.rmt`
6
+ - Local gate: `node scripts/run_xtend_tests.js surface-release-handoff --json`
7
+
8
+ ## Goal
9
+
10
+ This guide describes the recommended authoring path for XTend app shells with SurfaceManager. It connects the early component-metadata path from `WP-SM-01` with the native RMT `surfaces` domain from `WP-SM-08`.
11
+
12
+ ## Authoring Modes
13
+
14
+ | Mode | When to use | Source |
15
+ |------|-------------|--------|
16
+ | `component-metadata-mvp` | small shells, existing component records, fast migration | `components[*].metadata.surface` |
17
+ | `dual-record-handoff` | transition, tooling comparison, regression against existing runtime | `components[*].metadata.surface` plus `surfaces[*]` |
18
+ | `native-surfaces-preferred` | complex app shells, multi-window, panels, overlay stack | `surfaces[*]` as domain surface source |
19
+
20
+ ## Component Metadata Remains Valid
21
+
22
+ Existing RMT component records remain compatible:
23
+
24
+ ```json
25
+ {
26
+ "id": "workbench.inspector",
27
+ "kind": "custom_element",
28
+ "adapter": "xtend.component",
29
+ "tag": "x-surface-window",
30
+ "schedule": "surface.user-blocking.open",
31
+ "metadata": {
32
+ "surface": {
33
+ "schema": "xtend.surface.record.v1",
34
+ "id": "surface.inspector",
35
+ "type": "window",
36
+ "manager": "workbench.manager",
37
+ "stateKey": "xtend.surface.inspector.state"
38
+ }
39
+ }
40
+ }
41
+ ```
42
+
43
+ This mode is enough when an app shell already runs correctly through `x-surface-manager` and does not need the native RMT surface domain for tooling, migration or cross-record validation.
44
+
45
+ ## Prefer Native Surfaces
46
+
47
+ For new complex shells, `surfaces[*]` is the target state:
48
+
49
+ ```json
50
+ {
51
+ "id": "surface.inspector",
52
+ "schema": "xtend.surface.record.v1",
53
+ "type": "window",
54
+ "adapter": "xtend.surface",
55
+ "manager": "workbench.manager",
56
+ "component": "workbench.inspector",
57
+ "route": "workbench",
58
+ "schedule": "surface.user-blocking.open",
59
+ "stateKey": "xtend.surface.inspector.state"
60
+ }
61
+ ```
62
+
63
+ Authoring rules:
64
+
65
+ - `manager` references the `x-surface-manager` component record.
66
+ - `component` references the visible surface component.
67
+ - `route` binds the surface to the app-shell context.
68
+ - `schedule` binds open, layout, persistence or diagnostics to RMT scheduling.
69
+ - `stateKey` remains stable between component metadata and native domain.
70
+ - Historically, `xtend.surface` stayed an adapter handoff until `WP-SM-19`; since the runtime handoff, the productive adapter claim is gateable while the visible UI continues to materialize through the SurfaceManager component family.
71
+
72
+ ## Release Handoff
73
+
74
+ After `WP-SM-09`, the historical authoring handoff stated:
75
+
76
+ - component metadata is the stable compatibility path.
77
+ - native `surfaces[*]` is the preferred authoring path for new app shells.
78
+ - dual records are the safe migration mode.
79
+ - the RMT kernel remains host-neutral.
80
+ - the productive `xtend.surface` adapter runtime was follow-up work and has been implemented since `WP-SM-19`.
81
+
82
+ ## WP-SM-19 Runtime Authoring
83
+
84
+ As of `WP-SM-19`, the productive `xtend.surface` adapter runtime is implemented and gateable through `xtend.surface.runtime-release-handoff.v1`. For new complex app shells, `native-surfaces-preferred` remains the default: `surfaces[*]` describes domain surfaces, while component records provide the visible XTend UI bindings.
85
+
86
+ Productive authoring rules:
87
+
88
+ - `surfaces[*]` is the source for new multi-surface app shells.
89
+ - `components[*].metadata.surface` remains compatible for existing shells and dual-record migrations.
90
+ - `x-surface-manager` and the SurfaceController remain the runtime registry.
91
+ - Fabric, XRouter, `xstate` and the RMT kernel remain independent layers.
92
+ - `node scripts/run_xtend_tests.js surface-runtime-release-handoff --json` checks the final runtime handoff.
93
+
94
+ Details are in [SurfaceManager Runtime Release Handoff](./surface-manager-runtime-release-handoff.md).
@@ -0,0 +1,45 @@
1
+ # SurfaceManager Browser Lab
2
+
3
+ `WP-SM-18` adds a browser-close lab to the SurfaceManager layer for real app-shell stability. The contract `xtend.surface.browser-lab.v1` intentionally stays framework-native: the fixture uses `x-surface-manager`, `x-surface-window`, `x-side-panel`, `x-modal`, the `SkeletonLoader` from the loader and the existing surface hydration. It is not a Docs-app special case and not a monkeypatch.
4
+
5
+ ## Artifacts
6
+
7
+ | Artifact | Path |
8
+ | --- | --- |
9
+ | Catalog | `catalog/surface-manager-browser-lab.js` |
10
+ | Browser-lab fixture | `tests/browser/fixtures/surface-manager-browser-lab.html` |
11
+ | Visual baseline | `tests/browser/visual-baselines/surface-manager-browser-lab.dom-baseline.json` |
12
+ | Gate | `node scripts/run_xtend_tests.js surface-browser-lab --json` |
13
+
14
+ The visual baseline uses `xtend.surface.browser-lab.visual-baseline.v1`. It is JSON-based and pixel-ready: later browser-lab runs can attach real snapshot files, while the local fast gate already checks DOM signatures, states and budgets.
15
+
16
+ ## Gate States
17
+
18
+ The fixture covers five reproducible states:
19
+
20
+ | Snapshot | State |
21
+ | --- | --- |
22
+ | `surface-lab-cold-start` | app shell visible before content hydration |
23
+ | `surface-lab-skeleton` | Parsedown content hidden behind SkeletonLoader |
24
+ | `surface-lab-hydrated` | content released, skeleton removed |
25
+ | `surface-lab-route-change` | route-bound surface without shell resize |
26
+ | `surface-lab-modal-stack` | modal stack above SurfaceManager policy |
27
+
28
+ ## Regressions
29
+
30
+ The report connects `xtend.surface.browser-lab.performance-report.v1` and `xtend.surface.browser-lab.cls-report.v1`. Locally, these risks must fail:
31
+
32
+ | Risk | Budget |
33
+ | --- | --- |
34
+ | CLS | `<= 0.01` |
35
+ | Layout shift | `<= 1px` |
36
+ | Pop-in of unstyled content | `0` |
37
+ | Open/Focus | `<= 16ms` |
38
+ | Route | `<= 32ms` |
39
+ | Hydrate | `<= 120ms` |
40
+
41
+ ## App-Shell Probes
42
+
43
+ The lab references the Docs app through `docs/index.php` and the Parsedown/RMT pilot `docs/xtendrmt-parsedown-docs.rmt`. `tests/browser/fixtures/rmt-surface-workbench-smoke.html` also remains a reference workbench in the gate. This lets WP-SM-18 check the production-close app-shell path without moving Parsedown, PHP or workbench-specific behavior into the SurfaceManager.
44
+
45
+ The SurfaceManager remains a supporting XTend UI layer. It does not create a second registry, replace Fabric or the RMT kernel, or load a remote runtime in the kernel.
@@ -0,0 +1,43 @@
1
+ # SurfaceManager Component Lab
2
+
3
+ - Contract: `xtend.surface.component-lab-fixture.v1`
4
+ - Release contract: `xtend.surface.release-handoff.v1`
5
+ - Fixture: `tests/fixtures/rmt-surface-manager-component-lab.rmt`
6
+ - Gate: `node scripts/run_xtend_tests.js surface-release-handoff --json`
7
+
8
+ ## Purpose
9
+
10
+ The SurfaceManager Component Lab is the static lab fixture for the SurfaceManager line. It shows how an app shell is described with `x-surface-manager`, `x-surface-window`, `x-side-panel`, a compatible dialog and native `surfaces[*]` records.
11
+
12
+ The fixture is not a new lab server. It extends the existing Component Lab idea with a surface-specific authoring and migration view.
13
+
14
+ ## Panels
15
+
16
+ | Panel | Task |
17
+ |-------|------|
18
+ | `surface-preview` | check the visible surface shell with WindowManager and SidePanel components |
19
+ | `native-rmt-inspector` | inspect `surfaces[*]`, `adapters`, `components`, `routes` and `schedules` |
20
+ | `migration-diff` | compare `components[*].metadata.surface` with native surface records |
21
+ | `quality-gates` | make the gate chain from `surface-manager-quality` to `surface-native-rmt` visible |
22
+ | `source-links` | link docs, catalog, fixture, runtime and suite paths |
23
+
24
+ ## Fixture Model
25
+
26
+ `tests/fixtures/rmt-surface-manager-component-lab.rmt` contains:
27
+
28
+ - four adapters: `xtend.component`, `xtend.xrouter`, `rmt.state-scheduler-diagnostics`, `xtend.surface`
29
+ - one SurfaceManager component `surface.lab.manager`
30
+ - two windows: `surface.lab.preview` and `surface.lab.rmtInspector`
31
+ - two side panels: `surface.lab.migrationPanel` and `surface.lab.qualityPanel`
32
+ - one dialog: `surface.lab.commandDialog`
33
+ - native `surfaces[*]` records plus matching `components[*].metadata.surface` dual records
34
+
35
+ The fixture checks the authoring boundary. It does not claim a productive `xtend.surface` runtime.
36
+
37
+ ## Local Flow
38
+
39
+ ```bash
40
+ node scripts/run_xtend_tests.js surface-release-handoff --json
41
+ ```
42
+
43
+ The gate validates the fixture through RMT normalization and semantic graph. Surface IDs, component refs, manager refs, routes and schedules therefore remain visible and machine-checkable.
@@ -0,0 +1,66 @@
1
+ # SurfaceManager Controller
2
+
3
+ `WP-SM-02` introduces the internal Surface Controller for XTend. It is the runnable foundation for multi-window UIs, but not yet a visible custom element.
4
+
5
+ - Contract: `xtend.surface.controller.v1`
6
+ - Runtime: `components/xsurfacemanager-controller.js`
7
+ - Types: `components/xsurfacemanager-controller.d.ts`
8
+ - Snapshot: `xtend.surface.snapshot.v1`
9
+ - Gate: `node scripts/run_xtend_tests.js surface-controller --json`
10
+
11
+ ## Role
12
+
13
+ The controller manages surface records from the `WP-SM-01` authoring model. RMT can therefore continue to describe normal component records with `metadata.surface`; the controller normalizes these records into a runtime registry.
14
+
15
+ It is intentionally `controller-only-no-custom-element`. `WP-SM-03` builds `x-surface-manager` and `x-surface-window` on top of it.
16
+
17
+ ## API
18
+
19
+ Important methods:
20
+
21
+ ```js
22
+ const {
23
+ createSurfaceController
24
+ } = require('./components/xsurfacemanager-controller.js');
25
+
26
+ const controller = createSurfaceController({
27
+ managerId: 'workbench.manager',
28
+ xstate,
29
+ fabric
30
+ });
31
+
32
+ controller.registerSurface(surfaceRecord);
33
+ controller.openSurface('workbench.inspector');
34
+ controller.focusSurface('workbench.inspector');
35
+ controller.moveSurface('workbench.inspector', { x: 128, y: 96 });
36
+ controller.resizeSurface('workbench.inspector', { width: 700, height: 460 });
37
+ controller.closeSurface('workbench.inspector');
38
+
39
+ const snapshot = controller.snapshot();
40
+ ```
41
+
42
+ Supported methods are `registerSurface`, `openSurface`, `closeSurface`, `focusSurface`, `updateSurface`, `moveSurface`, `resizeSurface`, `minimizeSurface`, `maximizeSurface`, `restoreSurface`, `snapshot` and `dispose`.
43
+
44
+ ## State
45
+
46
+ After every commit, the controller mirrors:
47
+
48
+ ```text
49
+ xtend.surface.registry
50
+ xtend.surface.active
51
+ xtend.surface.<surfaceId>.state
52
+ xtend.surface.<surfaceId>.bounds
53
+ xtend.surface.<surfaceId>.lifecycle
54
+ xtend.surface.diagnostics
55
+ xtend.surface.snapshot
56
+ ```
57
+
58
+ The snapshot contains only layout, lifecycle and UI state. Raw metadata, DOM nodes and content payloads are not serialized.
59
+
60
+ ## Diagnostics
61
+
62
+ If Fabric is passed in, the controller sends `xtend.surface.diagnostic.v1` events through `emitDiagnostic`. Without Fabric, the controller remains runnable and mirrors diagnostics to xstate.
63
+
64
+ ## Next Step
65
+
66
+ `WP-SM-03` should build the visible component family on this controller: `x-surface-manager`, `x-surface-window`, first layer containers, events and real window chrome.
@@ -0,0 +1,32 @@
1
+ # SurfaceManager Layout Engines
2
+
3
+ As of `WP-SM-16`, `x-surface-manager` owns the `xtend.surface.layout-engine.v1` contract for visible, snapshot-compatible surface layouts.
4
+
5
+ ## Engines
6
+
7
+ | Engine | Purpose |
8
+ |--------|---------|
9
+ | `freeform` | free windows with viewport clamp, snap and simple collision correction |
10
+ | `docked` | side panels and docked surfaces occupy edges; workspace surfaces fill the rest |
11
+ | `split` | open layout surfaces are distributed as split panes |
12
+ | `tile` | open layout surfaces are distributed in a grid |
13
+ | `stacked` | open layout surfaces are shown as an offset stack and used as compact fallback |
14
+
15
+ ## Runtime
16
+
17
+ - `snapshotSurfaceLayout()` returns `xtend.surface.layout-engine-report.v1`.
18
+ - `applyLayoutEngine(engine)` writes calculated bounds through the existing SurfaceController into the snapshot.
19
+ - `dockSurface()` sets placement/mode and visibly applies a docked or currently active layout engine.
20
+ - `undockSurface()` sets a surface to `floating` and lets it run in freeform mode again.
21
+ - `surface-layout-gap` and `surface-layout-snap` control spacing and the snap grid.
22
+ - compact viewports fall back to `stacked`.
23
+
24
+ ## Boundary
25
+
26
+ The layout engine remains an XTend UI support layer. The SurfaceController remains the registry and snapshot source, Fabric remains responsible for diagnostics/backpressure, and the RMT kernel imports no XTend types. No second registry is created.
27
+
28
+ Local gate:
29
+
30
+ ```bash
31
+ node scripts/run_xtend_tests.js surface-layout-engines --json
32
+ ```
@@ -0,0 +1,63 @@
1
+ # SurfaceManager Lazy Hydration
2
+
3
+ Docs contract: `xtend.docs.surface-manager-lazy-hydration.v1`
4
+
5
+ `WP-SM-13` hardens `x-surface-manager` for shell-first apps: surface chrome and app shell can become visible immediately while surface content is skeletonized, loaded and hydrated through the framework-native XTendLoader.
6
+
7
+ ## Contract
8
+
9
+ - Loading policy: `xtend.surface.loading-policy.v1`
10
+ - Loading report: `xtend.surface.loading-report.v1`
11
+ - Gate: `node scripts/run_xtend_tests.js surface-lazy-hydration --json`
12
+ - Package script: `npm run test:surface-lazy-hydration`
13
+
14
+ ## Policies
15
+
16
+ `surface-loading-policy` on the manager sets the default policy. Individual surfaces can override it with `data-surface-hydration-policy`.
17
+
18
+ | Policy | Behavior |
19
+ |--------|----------|
20
+ | `eager` | content is hydrated directly after surface registration |
21
+ | `visible` | content is hydrated as soon as the surface is visible |
22
+ | `open` | content is hydrated when the surface is open |
23
+ | `idle` | content is loaded through `requestIdleCallback` or timeout fallback |
24
+ | `route` | content waits for route signals such as `xtend-route-changed` |
25
+
26
+ ## Runtime
27
+
28
+ `x-surface-manager` uses no Docs-app special case. The runtime uses the existing loader APIs:
29
+
30
+ - `XTendLoader.ensureComponent`
31
+ - `XTendLoader.hydrateTree`
32
+ - `XTendLoader.showSkeleton`
33
+ - `XTendLoader.hideSkeleton`
34
+ - `XTendStyleRegistry.ensureRuntimeStyles`
35
+
36
+ Before hydration, the manager sets `data-xtend-surface-content-ready="false"` and lets the SkeletonLoader cover direct content children. Only after a successful component-ready and `hydrateTree` gate is the skeleton removed. On errors or timeouts, the skeleton remains active so unstyled content does not pop in.
37
+
38
+ ## Parsedown and Remote Slots
39
+
40
+ Parsedown containers and remote-capable slots are normal surface content. There is no monkeypatch in the Docs app:
41
+
42
+ ```html
43
+ <x-surface-window
44
+ surface-id="docs.surface"
45
+ data-surface-hydration-policy="open"
46
+ open>
47
+ <section data-xtend-parsedown-container="true">
48
+ <x-code language="markdown"># Docs</x-code>
49
+ </section>
50
+ </x-surface-window>
51
+ ```
52
+
53
+ Remote-capable slots can be marked with `data-remote-capable-content-slot="true"`. Lazy hydration loads only the DOM/component scope; remote trust, ownership and capabilities remain reserved for later remote-surface policies.
54
+
55
+ ## Diagnostics
56
+
57
+ The manager provides:
58
+
59
+ - `snapshotSurfaceLoading()`
60
+ - `hydrateSurfaceContent(surfaceRef, options)`
61
+ - events `surface-content-loading`, `surface-content-hydrated`, `surface-content-hydration-skipped` and `surface-content-hydration-error`
62
+
63
+ `snapshotSurfaceLoading()` reports policy, skeleton status, hydration status, tags, unresolved tags, duration and the boundaries `shellFirst`, `protectsUnstyledContent` and `createsSecondRegistry: false`.
@@ -0,0 +1,113 @@
1
+ # SurfaceManager Migration Guide
2
+
3
+ - Contract: `xtend.surface.release-handoff.v1`
4
+ - Native Domain: `xtend.rmt.surfaces-domain.v1`
5
+ - Adapter Handoff: `xtend.surface.adapter.v1`
6
+ - Gate: `node scripts/run_xtend_tests.js surface-release-handoff --json`
7
+
8
+ ## Goal
9
+
10
+ This guide describes the additive migration from surface metadata in component records to native RMT surface records. The migration intentionally avoids a big bang: existing `components[*].metadata.surface` records remain valid while new app shells are authored in RMT vNext. `surfaces[*]` is the runtime and compatibility output, not the new manual authoring surface.
11
+
12
+ ## Migration Steps
13
+
14
+ | Step | Result |
15
+ |------|--------|
16
+ | `inventory-component-metadata-surfaces` | capture all existing `metadata.surface` records and state keys |
17
+ | `stabilize-surface-ids-and-state-keys` | freeze IDs, `type`, `manager` and `stateKey` |
18
+ | `add-native-surfaces-records` | add parallel `surfaces[*]` records with the same identity |
19
+ | `keep-dual-records-during-handoff` | compare component metadata and native records in the gate |
20
+ | `switch-authoring-default-to-vnext-surfaces` | write new complex shells as `surface ... component ...` in RMT vNext |
21
+ | `close-xtend-surface-runtime-after-adapter-implementation` | close the historical adapter handoff from `WP-SM-09` through `WP-SM-19` runtime gates |
22
+
23
+ ## vNext Target Shape
24
+
25
+ ```rmt
26
+ template workbench.surfaceMigration {
27
+ state workbench.properties type object initial null
28
+
29
+ portal surface.root root "#workbench-root" layer surface
30
+
31
+ surface surface.properties kind side-panel component x-side-panel {
32
+ source state workbench.properties
33
+ portal surface.root
34
+
35
+ lane visible weight 70 {
36
+ hydrate properties-panel from state workbench.properties
37
+ }
38
+ }
39
+ }
40
+ ```
41
+
42
+ ## Before: Legacy Component Metadata
43
+
44
+ ```json
45
+ {
46
+ "id": "workbench.properties",
47
+ "tag": "x-side-panel",
48
+ "metadata": {
49
+ "surface": {
50
+ "schema": "xtend.surface.record.v1",
51
+ "id": "surface.properties",
52
+ "type": "side-panel",
53
+ "manager": "workbench.manager",
54
+ "stateKey": "xtend.surface.properties.state"
55
+ }
56
+ }
57
+ }
58
+ ```
59
+
60
+ ## After: Dual Record as Runtime Output
61
+
62
+ ```json
63
+ {
64
+ "surfaces": [
65
+ {
66
+ "id": "surface.properties",
67
+ "schema": "xtend.surface.record.v1",
68
+ "type": "side-panel",
69
+ "adapter": "xtend.surface",
70
+ "manager": "workbench.manager",
71
+ "component": "workbench.properties",
72
+ "route": "workbench",
73
+ "schedule": "surface.visible.render",
74
+ "stateKey": "xtend.surface.properties.state"
75
+ }
76
+ ]
77
+ }
78
+ ```
79
+
80
+ During the handoff, the component metadata remains in the component record and can optionally point to the native record with `nativeRecord`. New examples should show the vNext target shape; dual records serve as migration evidence.
81
+
82
+ ## Review Checklist
83
+
84
+ - Every native surface has a stable `id`.
85
+ - `component` points to exactly one component record.
86
+ - `manager` points to the `x-surface-manager` record.
87
+ - `route` and `schedule` resolve to native RMT records.
88
+ - `stateKey` is identical between `components[*].metadata.surface` and `surfaces[*]`.
89
+ - `xtend.surface` is declared as `surface_adapter` and has been promoted for production through the runtime gates since `WP-SM-19`.
90
+ - The gates `surface-native-rmt`, `surface-release-handoff` and `surface-runtime-release-handoff` are green.
91
+
92
+ Details for the generic RMT migration are in [XTendRMT Native Migration Guide](./xtendrmt-migration-guide.md). Surface authoring details are in [SurfaceManager Authoring Guide](./surface-manager-authoring-guide.md).
93
+
94
+ ## WP-SM-19 Runtime Migration Notes
95
+
96
+ `WP-SM-19` accepts `xtend.surface.runtime-migration-notes.v1` as the final migration line for the production Surface Runtime.
97
+
98
+ Extended gate order for migrations:
99
+
100
+ ```bash
101
+ node scripts/run_xtend_tests.js surface-adapter-runtime --json
102
+ node scripts/run_xtend_tests.js surface-native-materialization --json
103
+ node scripts/run_xtend_tests.js surface-persistence --json
104
+ node scripts/run_xtend_tests.js surface-lazy-hydration --json
105
+ node scripts/run_xtend_tests.js surface-route-lifecycle --json
106
+ node scripts/run_xtend_tests.js surface-stack-policy --json
107
+ node scripts/run_xtend_tests.js surface-layout-engines --json
108
+ node scripts/run_xtend_tests.js surface-remote-policy --json
109
+ node scripts/run_xtend_tests.js surface-browser-lab --json
110
+ node scripts/run_xtend_tests.js surface-runtime-release-handoff --json
111
+ ```
112
+
113
+ Existing `components[*].metadata.surface` records remain allowed. The target state for new shells is still RMT vNext; `surfaces[*]` remains the verifiable output because tooling, materialization, persistence, routing, remote policy and browser-lab stability can be verified together there.
@@ -0,0 +1,38 @@
1
+ # SurfaceManager Native RMT Surfaces
2
+
3
+ `WP-SM-08` introduces `xtend.rmt.surfaces-domain.v1` and the adapter handoff `xtend.surface.adapter.v1`.
4
+
5
+ ## Local Gate
6
+
7
+ ```bash
8
+ node scripts/run_xtend_tests.js surface-native-rmt --json
9
+ npm run test:surface-native-rmt
10
+ ```
11
+
12
+ ## Domain
13
+
14
+ `surfaces` is an optional top-level domain in `.rmt` documents. A surface record continues to reference normal RMT domains:
15
+
16
+ - `adapter`: `xtend.surface`
17
+ - `manager`: `x-surface-manager` component record
18
+ - `component`: visible surface component, for example `x-surface-window`, `x-side-panel`, `x-modal`, `x-dialog` or `x-drawer`
19
+ - `route`: route record
20
+ - `schedule`: schedule record
21
+
22
+ The fixture `tests/fixtures/rmt-surface-native-domain.rmt` shows six surface records: two windows, one side panel, modal, dialog and drawer.
23
+
24
+ ## Adapter
25
+
26
+ `xtend.surface` can be registered as a `surface_adapter`. In `WP-SM-08`, `runtimeImplemented: false` was intentional and the adapter remained a handoff contract. Since `WP-SM-19`, the productive runtime line is gateable in the [SurfaceManager Runtime Release Handoff](./surface-manager-runtime-release-handoff.md): the runtime consumes `surfaces[*]`, calls the SurfaceController and keeps DOM, xstate and Fabric outside the RMT kernel.
27
+
28
+ ## Migration
29
+
30
+ Existing component records with `metadata.surface` remain valid. New native records can be maintained in parallel as long as `id`, `type`, `manager`, `component`, `route`, `schedule` and `stateKey` stay aligned.
31
+
32
+ ## Tooling
33
+
34
+ Schema, type artifact, normalizer, semantic graph, completion provider and linter understand `surfaces`. This allows the Language Server to reference surface records and offer completion for `surfaces[*].component`, `surfaces[*].adapter`, `surfaces[*].route`, `surfaces[*].schedule` and `surfaces[*].type`.
35
+
36
+ ## Handoff
37
+
38
+ `WP-SM-09` finalizes docs, Component Lab and migration guide on this contract base. The closure is in [SurfaceManager Release Handoff](./surface-manager-release-handoff.md) (`docs/surface-manager-release-handoff.md`) and is checked through `node scripts/run_xtend_tests.js surface-release-handoff --json`.
@@ -0,0 +1,53 @@
1
+ # SurfaceManager Overlay Bridge
2
+
3
+ `WP-SM-06` introduces `xtend.surface.overlay-stack-bridge.v1`. The bridge makes `x-modal`, `x-dialog` and `x-drawer` optionally compatible with the `x-surface-manager` surface stack.
4
+
5
+ ## What Changes
6
+
7
+ `x-surface-manager` now also registers these elements in the `overlays` slot:
8
+
9
+ - `x-modal` as surface type `modal`
10
+ - `x-dialog` as surface type `dialog`
11
+ - `x-drawer` as surface type `drawer`
12
+
13
+ Existing overlay APIs remain available. A modal can still be controlled through `open()` and `close()`, and a drawer through `openDrawer()` and `closeDrawer()`. The legacy events `modal-opened`, `dialog-opened` and `drawer-opened` remain visible.
14
+
15
+ ## Command Bridge
16
+
17
+ Overlays can use a `surface-overlay-command` event inside the manager:
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
+ Supported commands are the existing surface operations such as `open`, `close`, `focus` and `update`. The manager uses the same controller stack as windows and side panels.
31
+
32
+ ## Stack Behavior
33
+
34
+ The bridge mirrors the surface snapshot into overlay CSS custom properties:
35
+
36
+ - `--surface-overlay-z`
37
+ - `--surface-overlay-backdrop-z`
38
+
39
+ Outside a SurfaceManager, `x-modal`, `x-dialog` and `x-drawer` keep their previous default z-indices.
40
+
41
+ ## RMT and Lifecycle
42
+
43
+ At this stage, RMT remains on `xtend.component`. The bridge internally creates `xtend.surface.record.v1`, but it does not yet activate a native `xtend.surface` domain.
44
+
45
+ The local gate:
46
+
47
+ ```bash
48
+ node scripts/run_xtend_tests.js surface-overlay-bridge --json
49
+ ```
50
+
51
+ ## Boundary
52
+
53
+ `WP-SM-06` prepares stack compatibility. Browser, a11y, performance and visual smokes follow in `WP-SM-07`; the native RMT `surfaces` domain follows later in `WP-SM-08`.