@ccslabs/xtend 0.1.0-rc.1

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 (664) hide show
  1. package/CHANGELOG.md +65 -0
  2. package/LICENSE +201 -0
  3. package/README.md +184 -0
  4. package/a11y/motion-contrast-policy.d.ts +32 -0
  5. package/a11y/motion-contrast-policy.js +261 -0
  6. package/a11y/runtime-a11y-contract.d.ts +44 -0
  7. package/a11y/runtime-a11y-contract.js +385 -0
  8. package/a11y/screenreader-signals.d.ts +32 -0
  9. package/a11y/screenreader-signals.js +372 -0
  10. package/api.d.ts +168 -0
  11. package/api.js +864 -0
  12. package/catalog/catalog-public-types.d.ts +66 -0
  13. package/catalog/component-catalog-coverage.d.ts +20 -0
  14. package/catalog/component-catalog-coverage.js +377 -0
  15. package/catalog/component-long-tail-migration.d.ts +18 -0
  16. package/catalog/component-long-tail-migration.js +305 -0
  17. package/catalog/component-regression-priority.d.ts +20 -0
  18. package/catalog/component-regression-priority.js +305 -0
  19. package/catalog/enterprise-component-flex-release-handoff.d.ts +32 -0
  20. package/catalog/enterprise-component-flex-release-handoff.js +437 -0
  21. package/catalog/enterprise-component-style-audit.d.ts +22 -0
  22. package/catalog/enterprise-component-style-audit.js +353 -0
  23. package/catalog/enterprise-form-control-theme-a11y.d.ts +19 -0
  24. package/catalog/enterprise-form-control-theme-a11y.js +220 -0
  25. package/catalog/enterprise-icon-control-audit.d.ts +21 -0
  26. package/catalog/enterprise-icon-control-audit.js +258 -0
  27. package/catalog/enterprise-layout-display-media-tokenization.d.ts +20 -0
  28. package/catalog/enterprise-layout-display-media-tokenization.js +237 -0
  29. package/catalog/enterprise-navigation-routing-state-hardening.d.ts +20 -0
  30. package/catalog/enterprise-navigation-routing-state-hardening.js +255 -0
  31. package/catalog/enterprise-overlay-mode-token-parity.d.ts +15 -0
  32. package/catalog/enterprise-overlay-mode-token-parity.js +178 -0
  33. package/catalog/enterprise-third-party-authoring-guide.d.ts +23 -0
  34. package/catalog/enterprise-third-party-authoring-guide.js +310 -0
  35. package/catalog/enterprise-visual-dom-snapshot-matrix.d.ts +31 -0
  36. package/catalog/enterprise-visual-dom-snapshot-matrix.js +357 -0
  37. package/catalog/epic10-existing-component-metadata.d.ts +25 -0
  38. package/catalog/epic10-existing-component-metadata.js +534 -0
  39. package/catalog/epic10-p0-component-wave.d.ts +28 -0
  40. package/catalog/epic10-p0-component-wave.js +688 -0
  41. package/catalog/epic10-platform-gates.d.ts +31 -0
  42. package/catalog/epic10-platform-gates.js +425 -0
  43. package/catalog/epic10-release-handoff.d.ts +30 -0
  44. package/catalog/epic10-release-handoff.js +195 -0
  45. package/catalog/epic11-enterprise-ux-handoff.d.ts +29 -0
  46. package/catalog/epic11-enterprise-ux-handoff.js +403 -0
  47. package/catalog/epic12-docs-adoption.d.ts +29 -0
  48. package/catalog/epic12-docs-adoption.js +183 -0
  49. package/catalog/epic12-rc0-gate-matrix.d.ts +36 -0
  50. package/catalog/epic12-rc0-gate-matrix.js +439 -0
  51. package/catalog/epic12-rc0-handoff.d.ts +30 -0
  52. package/catalog/epic12-rc0-handoff.js +385 -0
  53. package/catalog/epic13-conditional-network-evidence-ci.d.ts +35 -0
  54. package/catalog/epic13-conditional-network-evidence-ci.js +278 -0
  55. package/catalog/epic13-conditional-network-evidence.d.ts +34 -0
  56. package/catalog/epic13-conditional-network-evidence.js +280 -0
  57. package/catalog/epic13-docs-rmt-production-hardening.d.ts +39 -0
  58. package/catalog/epic13-docs-rmt-production-hardening.js +286 -0
  59. package/catalog/epic13-hydration-performance-closure.d.ts +33 -0
  60. package/catalog/epic13-hydration-performance-closure.js +234 -0
  61. package/catalog/epic13-known-residual-triage.d.ts +32 -0
  62. package/catalog/epic13-known-residual-triage.js +339 -0
  63. package/catalog/epic13-package-export-lock.d.ts +41 -0
  64. package/catalog/epic13-package-export-lock.js +604 -0
  65. package/catalog/epic13-prod-browser-csp-smoke.d.ts +35 -0
  66. package/catalog/epic13-prod-browser-csp-smoke.js +218 -0
  67. package/catalog/epic13-rc1-gate-matrix-ci-handoff.d.ts +36 -0
  68. package/catalog/epic13-rc1-gate-matrix-ci-handoff.js +418 -0
  69. package/catalog/epic13-rc1-migration-notes.d.ts +36 -0
  70. package/catalog/epic13-rc1-migration-notes.js +271 -0
  71. package/catalog/epic13-rc1-readiness.d.ts +33 -0
  72. package/catalog/epic13-rc1-readiness.js +487 -0
  73. package/catalog/epic13-release-owner-acceptance.d.ts +33 -0
  74. package/catalog/epic13-release-owner-acceptance.js +354 -0
  75. package/catalog/epic13-release-report-pack-dry-run-evidence.d.ts +36 -0
  76. package/catalog/epic13-release-report-pack-dry-run-evidence.js +253 -0
  77. package/catalog/epic13-rmt-production-readiness.d.ts +35 -0
  78. package/catalog/epic13-rmt-production-readiness.js +314 -0
  79. package/catalog/epic13-trusted-dom-boundary.d.ts +36 -0
  80. package/catalog/epic13-trusted-dom-boundary.js +230 -0
  81. package/catalog/epic13-visual-owner-artifact.d.ts +35 -0
  82. package/catalog/epic13-visual-owner-artifact.js +233 -0
  83. package/catalog/epic14-lsp-handoff.d.ts +28 -0
  84. package/catalog/epic14-lsp-handoff.js +312 -0
  85. package/catalog/epic14-rmt-tooling.d.ts +33 -0
  86. package/catalog/epic14-rmt-tooling.js +282 -0
  87. package/catalog/surface-manager-adapter-runtime.d.ts +37 -0
  88. package/catalog/surface-manager-adapter-runtime.js +203 -0
  89. package/catalog/surface-manager-browser-lab.d.ts +39 -0
  90. package/catalog/surface-manager-browser-lab.js +225 -0
  91. package/catalog/surface-manager-controller.d.ts +43 -0
  92. package/catalog/surface-manager-controller.js +290 -0
  93. package/catalog/surface-manager-layout-engines.d.ts +32 -0
  94. package/catalog/surface-manager-layout-engines.js +161 -0
  95. package/catalog/surface-manager-lazy-loading.d.ts +35 -0
  96. package/catalog/surface-manager-lazy-loading.js +173 -0
  97. package/catalog/surface-manager-materialization.d.ts +37 -0
  98. package/catalog/surface-manager-materialization.js +202 -0
  99. package/catalog/surface-manager-native-rmt-surfaces.d.ts +48 -0
  100. package/catalog/surface-manager-native-rmt-surfaces.js +325 -0
  101. package/catalog/surface-manager-overlay-bridge.d.ts +42 -0
  102. package/catalog/surface-manager-overlay-bridge.js +247 -0
  103. package/catalog/surface-manager-persistence.d.ts +37 -0
  104. package/catalog/surface-manager-persistence.js +178 -0
  105. package/catalog/surface-manager-quality-gates.d.ts +48 -0
  106. package/catalog/surface-manager-quality-gates.js +324 -0
  107. package/catalog/surface-manager-release-handoff.d.ts +47 -0
  108. package/catalog/surface-manager-release-handoff.js +274 -0
  109. package/catalog/surface-manager-remote-policy.d.ts +34 -0
  110. package/catalog/surface-manager-remote-policy.js +199 -0
  111. package/catalog/surface-manager-rmt-authoring.d.ts +44 -0
  112. package/catalog/surface-manager-rmt-authoring.js +368 -0
  113. package/catalog/surface-manager-route-lifecycle.d.ts +32 -0
  114. package/catalog/surface-manager-route-lifecycle.js +162 -0
  115. package/catalog/surface-manager-runtime-release-handoff.d.ts +36 -0
  116. package/catalog/surface-manager-runtime-release-handoff.js +245 -0
  117. package/catalog/surface-manager-side-panel-runtime.d.ts +46 -0
  118. package/catalog/surface-manager-side-panel-runtime.js +307 -0
  119. package/catalog/surface-manager-stack-policy.d.ts +32 -0
  120. package/catalog/surface-manager-stack-policy.js +169 -0
  121. package/catalog/surface-manager-window-runtime.d.ts +45 -0
  122. package/catalog/surface-manager-window-runtime.js +285 -0
  123. package/catalog/surface-manager-workbench-fixture.d.ts +50 -0
  124. package/catalog/surface-manager-workbench-fixture.js +315 -0
  125. package/catalog/type-exports-api.js +236 -0
  126. package/catalog/type-exports-builder.js +405 -0
  127. package/catalog/type-exports-catalog.js +394 -0
  128. package/catalog/type-exports-loader.js +266 -0
  129. package/catalog/type-exports-policy.js +461 -0
  130. package/catalog/type-exports-rmt.js +407 -0
  131. package/catalog/type-exports-vendor.js +365 -0
  132. package/catalog/type-exports.js +574 -0
  133. package/components/icon-packs/core.js +154 -0
  134. package/components/icon-packs/lucide.js +136 -0
  135. package/components/manifest.json +44 -0
  136. package/components/prism.d.ts +73 -0
  137. package/components/prism.js +300 -0
  138. package/components/turndown.d.ts +34 -0
  139. package/components/turndown.js +107 -0
  140. package/components/x-rmt-lifecycle-demo-build.d.ts +78 -0
  141. package/components/x-rmt-lifecycle-demo-build.js +1175 -0
  142. package/components/x-rmt-lifecycle-demo.d.ts +83 -0
  143. package/components/x-rmt-lifecycle-demo.js +1175 -0
  144. package/components/xalert.d.ts +42 -0
  145. package/components/xalert.js +538 -0
  146. package/components/xbutton.d.ts +127 -0
  147. package/components/xbutton.js +612 -0
  148. package/components/xcalendar.d.ts +39 -0
  149. package/components/xcalendar.js +338 -0
  150. package/components/xcards.d.ts +34 -0
  151. package/components/xcards.js +253 -0
  152. package/components/xcheckbox.d.ts +48 -0
  153. package/components/xcheckbox.js +448 -0
  154. package/components/xcode.d.ts +35 -0
  155. package/components/xcode.js +370 -0
  156. package/components/xdialog.d.ts +48 -0
  157. package/components/xdialog.js +763 -0
  158. package/components/xdrawer.d.ts +61 -0
  159. package/components/xdrawer.js +654 -0
  160. package/components/xfooter.d.ts +41 -0
  161. package/components/xfooter.js +351 -0
  162. package/components/xform.d.ts +43 -0
  163. package/components/xform.js +456 -0
  164. package/components/xheader.d.ts +68 -0
  165. package/components/xheader.js +1253 -0
  166. package/components/xhero.d.ts +42 -0
  167. package/components/xhero.js +475 -0
  168. package/components/xicon.d.ts +146 -0
  169. package/components/xicon.js +688 -0
  170. package/components/xinput.d.ts +37 -0
  171. package/components/xinput.js +444 -0
  172. package/components/xlightbox.d.ts +48 -0
  173. package/components/xlightbox.js +571 -0
  174. package/components/xlink.d.ts +63 -0
  175. package/components/xlink.js +565 -0
  176. package/components/xmasonry.d.ts +35 -0
  177. package/components/xmasonry.js +666 -0
  178. package/components/xmenu.d.ts +118 -0
  179. package/components/xmenu.js +1005 -0
  180. package/components/xmodal.d.ts +64 -0
  181. package/components/xmodal.js +831 -0
  182. package/components/xplayer.d.ts +57 -0
  183. package/components/xplayer.js +1748 -0
  184. package/components/xpopover.d.ts +54 -0
  185. package/components/xpopover.js +466 -0
  186. package/components/xprogress.d.ts +40 -0
  187. package/components/xprogress.js +345 -0
  188. package/components/xradio.d.ts +50 -0
  189. package/components/xradio.js +474 -0
  190. package/components/xrouter.d.ts +244 -0
  191. package/components/xrouter.js +1841 -0
  192. package/components/xsection.d.ts +34 -0
  193. package/components/xsection.js +253 -0
  194. package/components/xselect.d.ts +46 -0
  195. package/components/xselect.js +463 -0
  196. package/components/xsidepanel.d.ts +56 -0
  197. package/components/xsidepanel.js +728 -0
  198. package/components/xspinner.d.ts +38 -0
  199. package/components/xspinner.js +388 -0
  200. package/components/xstate.d.ts +137 -0
  201. package/components/xstate.js +493 -0
  202. package/components/xstatus.d.ts +41 -0
  203. package/components/xstatus.js +381 -0
  204. package/components/xsummary.d.ts +43 -0
  205. package/components/xsummary.js +293 -0
  206. package/components/xsurfacemanager-controller.d.ts +130 -0
  207. package/components/xsurfacemanager-controller.js +699 -0
  208. package/components/xsurfacemanager.d.ts +452 -0
  209. package/components/xsurfacemanager.js +3775 -0
  210. package/components/xsurfaceoverlay-bridge.d.ts +43 -0
  211. package/components/xsurfaceoverlay-bridge.js +238 -0
  212. package/components/xsurfacewindow.d.ts +50 -0
  213. package/components/xsurfacewindow.js +576 -0
  214. package/components/xtabs.d.ts +73 -0
  215. package/components/xtabs.js +611 -0
  216. package/components/xtend-public-types.d.ts +208 -0
  217. package/components/xtextarea.d.ts +46 -0
  218. package/components/xtextarea.js +451 -0
  219. package/components/xtheme.d.ts +253 -0
  220. package/components/xtheme.js +1438 -0
  221. package/components/xtoast.d.ts +39 -0
  222. package/components/xtoast.js +389 -0
  223. package/components/xtooltip.d.ts +53 -0
  224. package/components/xtooltip.js +432 -0
  225. package/components/xtype.d.ts +42 -0
  226. package/components/xtype.js +244 -0
  227. package/components/xutils.d.ts +164 -0
  228. package/components/xutils.js +496 -0
  229. package/components/xwriter.d.ts +67 -0
  230. package/components/xwriter.js +854 -0
  231. package/design-tokens/themes/enterprise-light.json +40 -0
  232. package/design-tokens/themes/xtend-signature.json +126 -0
  233. package/design-tokens/xtend-design-tokens.d.ts +95 -0
  234. package/design-tokens/xtend-design-tokens.js +395 -0
  235. package/design-tokens/xtheme-token-alias-layer.d.ts +84 -0
  236. package/design-tokens/xtheme-token-alias-layer.js +423 -0
  237. package/docs/.htaccess +51 -0
  238. package/docs/README.md +340 -0
  239. package/docs/XTend-ADR.md +221 -0
  240. package/docs/a11y-keyboard-smokes.md +62 -0
  241. package/docs/about.md +18 -0
  242. package/docs/api.md +157 -0
  243. package/docs/best-practices.md +76 -0
  244. package/docs/component-catalog-coverage.md +58 -0
  245. package/docs/component-lab.md +103 -0
  246. package/docs/component-long-tail-migration.md +41 -0
  247. package/docs/component-platform.md +159 -0
  248. package/docs/component-ux-app-authoring.md +130 -0
  249. package/docs/component-ux-authoring.md +96 -0
  250. package/docs/component-ux-gates.md +45 -0
  251. package/docs/components/x-rmt-lifecycle-demo-build.md +60 -0
  252. package/docs/components/xalert.md +81 -0
  253. package/docs/components/xbutton.md +103 -0
  254. package/docs/components/xcalendar.md +82 -0
  255. package/docs/components/xcards.md +128 -0
  256. package/docs/components/xcheckbox.md +102 -0
  257. package/docs/components/xcode.md +126 -0
  258. package/docs/components/xdialog.md +92 -0
  259. package/docs/components/xdrawer.md +84 -0
  260. package/docs/components/xfooter.md +126 -0
  261. package/docs/components/xform.md +128 -0
  262. package/docs/components/xheader.md +308 -0
  263. package/docs/components/xhero.md +142 -0
  264. package/docs/components/xicon.md +125 -0
  265. package/docs/components/xinput.md +129 -0
  266. package/docs/components/xlightbox.md +98 -0
  267. package/docs/components/xlink.md +109 -0
  268. package/docs/components/xmasonry.md +124 -0
  269. package/docs/components/xmenu.md +158 -0
  270. package/docs/components/xmodal.md +82 -0
  271. package/docs/components/xplayer.md +104 -0
  272. package/docs/components/xpopover.md +67 -0
  273. package/docs/components/xprogress.md +56 -0
  274. package/docs/components/xradio.md +103 -0
  275. package/docs/components/xrouter.md +260 -0
  276. package/docs/components/xsection.md +125 -0
  277. package/docs/components/xselect.md +105 -0
  278. package/docs/components/xsidepanel.md +30 -0
  279. package/docs/components/xspinner.md +102 -0
  280. package/docs/components/xstate.md +148 -0
  281. package/docs/components/xstatus.md +55 -0
  282. package/docs/components/xsummary.md +78 -0
  283. package/docs/components/xsurfacemanager.md +27 -0
  284. package/docs/components/xsurfacewindow.md +21 -0
  285. package/docs/components/xtabs.md +160 -0
  286. package/docs/components/xtextarea.md +98 -0
  287. package/docs/components/xtheme.md +167 -0
  288. package/docs/components/xtoast.md +62 -0
  289. package/docs/components/xtooltip.md +66 -0
  290. package/docs/components/xtype.md +82 -0
  291. package/docs/components/xutils.md +144 -0
  292. package/docs/components/xwriter.md +94 -0
  293. package/docs/components.md +117 -0
  294. package/docs/conditional-network-evidence-ci.md +38 -0
  295. package/docs/conditional-network-evidence.md +50 -0
  296. package/docs/core-migration-guide.md +110 -0
  297. package/docs/design-tokens.md +116 -0
  298. package/docs/docs-rmt-production-hardening.md +31 -0
  299. package/docs/enterprise-adoption.md +411 -0
  300. package/docs/enterprise-component-flex-release-handoff.md +129 -0
  301. package/docs/epic10-platform-gates.md +62 -0
  302. package/docs/epic10-release-handoff.md +81 -0
  303. package/docs/epic11-enterprise-ux-handoff.md +70 -0
  304. package/docs/epic12-rc0-handoff.md +61 -0
  305. package/docs/existing-component-metadata.md +67 -0
  306. package/docs/hydration-performance-closure.md +34 -0
  307. package/docs/hydration-policies.md +71 -0
  308. package/docs/index.php +1625 -0
  309. package/docs/known-residual-triage.md +22 -0
  310. package/docs/manifest-import-policy.md +79 -0
  311. package/docs/manifest.md +106 -0
  312. package/docs/menu.json +1190 -0
  313. package/docs/motion-contrast.md +67 -0
  314. package/docs/package-export-lock.md +44 -0
  315. package/docs/performance-measurements.md +106 -0
  316. package/docs/performance-regression.md +89 -0
  317. package/docs/performance.md +94 -0
  318. package/docs/previews/README.md +17 -0
  319. package/docs/prod-browser-csp-smokes.md +40 -0
  320. package/docs/public-component-types.md +79 -0
  321. package/docs/quick-start-guide.md +152 -0
  322. package/docs/rc0-adoption-guide.md +102 -0
  323. package/docs/rc0-gate-matrix.md +58 -0
  324. package/docs/rc1-gate-matrix-ci-handoff.md +56 -0
  325. package/docs/rc1-migration-notes.md +69 -0
  326. package/docs/rc1-readiness.md +46 -0
  327. package/docs/release-owner-acceptance.md +56 -0
  328. package/docs/release-report-pack-dry-run-evidence.md +39 -0
  329. package/docs/rmt-dsl-authoring-polish.md +122 -0
  330. package/docs/rmt-first-demo-app.md +77 -0
  331. package/docs/rmt-first-xtend-apps.md +105 -0
  332. package/docs/rmt-kernel-panic-recovery-incident-handoff.md +61 -0
  333. package/docs/rmt-kernel-security-hardening-migration.md +50 -0
  334. package/docs/rmt-kernel-trusted-output-authoring.md +69 -0
  335. package/docs/rmt-language-server.md +177 -0
  336. package/docs/rmt-lifecycle-demo.md +25 -0
  337. package/docs/rmt-linter.md +140 -0
  338. package/docs/rmt-production-readiness.md +63 -0
  339. package/docs/rmt-tooling-release-gates.md +77 -0
  340. package/docs/rmt-vnext-authoring.md +60 -0
  341. package/docs/rmt-vnext-cross-surface-events.md +68 -0
  342. package/docs/rmt-vnext-enterprise-mfe-handoff.md +70 -0
  343. package/docs/rmt-vnext-migration-notes.md +62 -0
  344. package/docs/rmt-vnext-release-handoff.md +69 -0
  345. package/docs/rmt-vnext-remote-surfaces.md +90 -0
  346. package/docs/rmt-vnext-surface-registry-enterprise.md +76 -0
  347. package/docs/screenreader-signals.md +56 -0
  348. package/docs/supply-chain-gates.md +100 -0
  349. package/docs/surface-manager-authoring-guide.md +94 -0
  350. package/docs/surface-manager-browser-lab.md +45 -0
  351. package/docs/surface-manager-component-lab.md +43 -0
  352. package/docs/surface-manager-controller.md +66 -0
  353. package/docs/surface-manager-layout-engines.md +32 -0
  354. package/docs/surface-manager-lazy-hydration.md +63 -0
  355. package/docs/surface-manager-migration-guide.md +94 -0
  356. package/docs/surface-manager-native-rmt-surfaces.md +38 -0
  357. package/docs/surface-manager-overlay-bridge.md +53 -0
  358. package/docs/surface-manager-persistence.md +30 -0
  359. package/docs/surface-manager-quality-gates.md +51 -0
  360. package/docs/surface-manager-release-handoff.md +68 -0
  361. package/docs/surface-manager-remote-policy.md +54 -0
  362. package/docs/surface-manager-rmt-authoring.md +86 -0
  363. package/docs/surface-manager-route-lifecycle.md +59 -0
  364. package/docs/surface-manager-runtime-release-handoff.md +69 -0
  365. package/docs/surface-manager-side-panel-runtime.md +36 -0
  366. package/docs/surface-manager-stack-policy.md +39 -0
  367. package/docs/surface-manager-window-runtime.md +47 -0
  368. package/docs/surface-manager-workbench-fixture.md +43 -0
  369. package/docs/third-party-design-authoring.md +406 -0
  370. package/docs/trusted-dom-boundary-browser-proof.md +32 -0
  371. package/docs/trusted-dom-sanitizing.md +110 -0
  372. package/docs/type-exports.md +61 -0
  373. package/docs/typescript-components.md +63 -0
  374. package/docs/utils/fabric-runtime.js +650 -0
  375. package/docs/utils/pageloader.js +2823 -0
  376. package/docs/utils/parsedown.php +298 -0
  377. package/docs/visual-browser-regression.md +83 -0
  378. package/docs/visual-owner-artifacts.md +46 -0
  379. package/docs/visual-snapshot-automation.md +87 -0
  380. package/docs/xtend-api-types.md +55 -0
  381. package/docs/xtend-builder-types.md +55 -0
  382. package/docs/xtend-catalog-types.md +44 -0
  383. package/docs/xtend-fabric-rmt-lane-mapping.md +143 -0
  384. package/docs/xtend-fabric.md +474 -0
  385. package/docs/xtend-loader-types.md +58 -0
  386. package/docs/xtend-loader.md +265 -0
  387. package/docs/xtend-policy-types.md +38 -0
  388. package/docs/xtend-rmt-types.md +39 -0
  389. package/docs/xtend-vendor-types.md +36 -0
  390. package/docs/xtendrmt-app-dsl.md +269 -0
  391. package/docs/xtendrmt-migration-guide.md +235 -0
  392. package/docs/xtendrmt-native-authoring.md +337 -0
  393. package/docs/xtendrmt-overview.md +89 -0
  394. package/docs/xtendrmt-parsedown-docs.rmt +956 -0
  395. package/docs/xtendrmt-parsedown-scheduling.md +301 -0
  396. package/docs/xtendrmt-runtime-bridge.md +155 -0
  397. package/fabric/hydration-policy.d.ts +27 -0
  398. package/fabric/hydration-policy.js +306 -0
  399. package/fabric/package.json +58 -0
  400. package/fabric/rmt-lane-mapping.d.ts +47 -0
  401. package/fabric/rmt-lane-mapping.js +504 -0
  402. package/fabric/xtend-fabric.d.ts +81 -0
  403. package/fabric/xtend-fabric.js +2669 -0
  404. package/fabric/xtend-policy-public-types.d.ts +135 -0
  405. package/package.json +8225 -0
  406. package/security/README.md +54 -0
  407. package/security/manifest-import-policy.d.ts +43 -0
  408. package/security/manifest-import-policy.js +260 -0
  409. package/security/supply-chain-gate-policy.d.ts +45 -0
  410. package/security/supply-chain-gate-policy.js +249 -0
  411. package/security/trusted-dom-policy.d.ts +36 -0
  412. package/security/trusted-dom-policy.js +316 -0
  413. package/tools/package.json +77 -0
  414. package/tools/rmt-editor/vscode/README.md +33 -0
  415. package/tools/rmt-editor/vscode/extension.d.ts +9 -0
  416. package/tools/rmt-editor/vscode/extension.js +55 -0
  417. package/tools/rmt-editor/vscode/language-configuration.json +28 -0
  418. package/tools/rmt-editor/vscode/package.json +83 -0
  419. package/tools/rmt-editor/vscode/snippets/rmt.code-snippets +243 -0
  420. package/tools/rmt-editor/vscode/syntaxes/rmt.tmLanguage.json +13 -0
  421. package/tools/rmt-editor/vscode/xtend-rmt-language-0.0.0-enterprise-readiness.vsix +0 -0
  422. package/tools/rmt-language/code-actions.d.ts +15 -0
  423. package/tools/rmt-language/code-actions.js +566 -0
  424. package/tools/rmt-language/completions.d.ts +22 -0
  425. package/tools/rmt-language/completions.js +475 -0
  426. package/tools/rmt-language/definitions.d.ts +13 -0
  427. package/tools/rmt-language/definitions.js +212 -0
  428. package/tools/rmt-language/diagnostics.d.ts +23 -0
  429. package/tools/rmt-language/diagnostics.js +486 -0
  430. package/tools/rmt-language/format-adapter.d.ts +16 -0
  431. package/tools/rmt-language/format-adapter.js +270 -0
  432. package/tools/rmt-language/hover.d.ts +12 -0
  433. package/tools/rmt-language/hover.js +326 -0
  434. package/tools/rmt-language/kernel-escalation.d.ts +122 -0
  435. package/tools/rmt-language/kernel-escalation.js +427 -0
  436. package/tools/rmt-language/kernel-panic-monitor.d.ts +176 -0
  437. package/tools/rmt-language/kernel-panic-monitor.js +674 -0
  438. package/tools/rmt-language/kernel-policy-parity.d.ts +142 -0
  439. package/tools/rmt-language/kernel-policy-parity.js +629 -0
  440. package/tools/rmt-language/kernel-recovery.d.ts +173 -0
  441. package/tools/rmt-language/kernel-recovery.js +666 -0
  442. package/tools/rmt-language/kernel-scheduler-failure.d.ts +136 -0
  443. package/tools/rmt-language/kernel-scheduler-failure.js +486 -0
  444. package/tools/rmt-language/kernel-security-regression.d.ts +154 -0
  445. package/tools/rmt-language/kernel-security-regression.js +465 -0
  446. package/tools/rmt-language/kernel-trust-authority.d.ts +120 -0
  447. package/tools/rmt-language/kernel-trust-authority.js +549 -0
  448. package/tools/rmt-language/parser.d.ts +14 -0
  449. package/tools/rmt-language/parser.js +111 -0
  450. package/tools/rmt-language/rmt-tooling-public-types.d.ts +179 -0
  451. package/tools/rmt-language/rules/boundary-policy.js +81 -0
  452. package/tools/rmt-language/rules/document-policy.js +65 -0
  453. package/tools/rmt-language/rules/index.js +29 -0
  454. package/tools/rmt-language/rules/route-policy.js +81 -0
  455. package/tools/rmt-language/rules/scheduler-policy.js +66 -0
  456. package/tools/rmt-language/rules/template-policy.js +130 -0
  457. package/tools/rmt-language/semantic-graph.d.ts +18 -0
  458. package/tools/rmt-language/semantic-graph.js +827 -0
  459. package/tools/rmt-language/snippets/README.md +17 -0
  460. package/tools/rmt-language/snippets/index.d.ts +17 -0
  461. package/tools/rmt-language/snippets/index.js +417 -0
  462. package/tools/rmt-language/snippets/rmt.code-snippets +243 -0
  463. package/tools/rmt-language/source-model.d.ts +14 -0
  464. package/tools/rmt-language/source-model.js +731 -0
  465. package/tools/rmt-language/symbols.d.ts +13 -0
  466. package/tools/rmt-language/symbols.js +183 -0
  467. package/tools/rmt-language/vnext-compatibility.d.ts +28 -0
  468. package/tools/rmt-language/vnext-compatibility.js +675 -0
  469. package/tools/rmt-language/vnext-compiler.d.ts +17 -0
  470. package/tools/rmt-language/vnext-compiler.js +716 -0
  471. package/tools/rmt-language/vnext-composition.d.ts +30 -0
  472. package/tools/rmt-language/vnext-composition.js +595 -0
  473. package/tools/rmt-language/vnext-conditions.d.ts +25 -0
  474. package/tools/rmt-language/vnext-conditions.js +474 -0
  475. package/tools/rmt-language/vnext-cross-surface-events.d.ts +30 -0
  476. package/tools/rmt-language/vnext-cross-surface-events.js +607 -0
  477. package/tools/rmt-language/vnext-degradation.d.ts +23 -0
  478. package/tools/rmt-language/vnext-degradation.js +428 -0
  479. package/tools/rmt-language/vnext-enterprise-fixtures.d.ts +28 -0
  480. package/tools/rmt-language/vnext-enterprise-fixtures.js +487 -0
  481. package/tools/rmt-language/vnext-enterprise-registry.d.ts +21 -0
  482. package/tools/rmt-language/vnext-enterprise-registry.js +495 -0
  483. package/tools/rmt-language/vnext-enterprise-release.d.ts +44 -0
  484. package/tools/rmt-language/vnext-enterprise-release.js +472 -0
  485. package/tools/rmt-language/vnext-event-governance.d.ts +29 -0
  486. package/tools/rmt-language/vnext-event-governance.js +488 -0
  487. package/tools/rmt-language/vnext-events.d.ts +44 -0
  488. package/tools/rmt-language/vnext-events.js +680 -0
  489. package/tools/rmt-language/vnext-import-resolver.d.ts +28 -0
  490. package/tools/rmt-language/vnext-import-resolver.js +642 -0
  491. package/tools/rmt-language/vnext-lifecycle.d.ts +22 -0
  492. package/tools/rmt-language/vnext-lifecycle.js +404 -0
  493. package/tools/rmt-language/vnext-parser.d.ts +21 -0
  494. package/tools/rmt-language/vnext-parser.js +1391 -0
  495. package/tools/rmt-language/vnext-regression.d.ts +25 -0
  496. package/tools/rmt-language/vnext-regression.js +394 -0
  497. package/tools/rmt-language/vnext-release.d.ts +29 -0
  498. package/tools/rmt-language/vnext-release.js +293 -0
  499. package/tools/rmt-language/vnext-remote-compatibility.d.ts +33 -0
  500. package/tools/rmt-language/vnext-remote-compatibility.js +892 -0
  501. package/tools/rmt-language/vnext-remote-compiler.d.ts +14 -0
  502. package/tools/rmt-language/vnext-remote-compiler.js +520 -0
  503. package/tools/rmt-language/vnext-remote-manifest.d.ts +33 -0
  504. package/tools/rmt-language/vnext-remote-manifest.js +538 -0
  505. package/tools/rmt-language/vnext-remote-security.d.ts +27 -0
  506. package/tools/rmt-language/vnext-remote-security.js +380 -0
  507. package/tools/rmt-language/vnext-remote-tooling.d.ts +25 -0
  508. package/tools/rmt-language/vnext-remote-tooling.js +805 -0
  509. package/tools/rmt-language/vnext-scheduler.d.ts +24 -0
  510. package/tools/rmt-language/vnext-scheduler.js +469 -0
  511. package/tools/rmt-language/vnext-security.d.ts +28 -0
  512. package/tools/rmt-language/vnext-security.js +597 -0
  513. package/tools/rmt-language/vnext-streaming.d.ts +28 -0
  514. package/tools/rmt-language/vnext-streaming.js +593 -0
  515. package/tools/rmt-language/vnext-surfaces.d.ts +24 -0
  516. package/tools/rmt-language/vnext-surfaces.js +406 -0
  517. package/tools/rmt-language/vnext-tooling.d.ts +25 -0
  518. package/tools/rmt-language/vnext-tooling.js +728 -0
  519. package/tools/rmt-language-server/protocol.d.ts +22 -0
  520. package/tools/rmt-language-server/protocol.js +352 -0
  521. package/tools/rmt-language-server/server.d.ts +15 -0
  522. package/tools/rmt-language-server/server.js +622 -0
  523. package/tools/rmt-linter/cli.d.ts +14 -0
  524. package/tools/rmt-linter/cli.js +450 -0
  525. package/tools/rmt-linter/reporter.d.ts +16 -0
  526. package/tools/rmt-linter/reporter.js +472 -0
  527. package/xtend-builder/README.md +83 -0
  528. package/xtend-builder/a11y/README.md +42 -0
  529. package/xtend-builder/a11y/component-a11y-profile.d.ts +14 -0
  530. package/xtend-builder/a11y/component-a11y-profile.js +314 -0
  531. package/xtend-builder/blueprints/README.md +105 -0
  532. package/xtend-builder/blueprints/component-blueprint.contract.d.ts +16 -0
  533. package/xtend-builder/blueprints/component-blueprint.contract.js +343 -0
  534. package/xtend-builder/builder-public-types.d.ts +234 -0
  535. package/xtend-builder/extensions/README.md +26 -0
  536. package/xtend-builder/extensions/component-extension-points.d.ts +11 -0
  537. package/xtend-builder/extensions/component-extension-points.js +277 -0
  538. package/xtend-builder/generators/README.md +149 -0
  539. package/xtend-builder/generators/component-files.d.ts +5 -0
  540. package/xtend-builder/generators/component-files.js +769 -0
  541. package/xtend-builder/generators/component-plan.d.ts +4 -0
  542. package/xtend-builder/generators/component-plan.js +104 -0
  543. package/xtend-builder/generators/registry.d.ts +6 -0
  544. package/xtend-builder/generators/registry.js +118 -0
  545. package/xtend-builder/generators/rmt-build.js +738 -0
  546. package/xtend-builder/generators/rmt-lifecycle-demo.js +922 -0
  547. package/xtend-builder/lib/cli.d.ts +9 -0
  548. package/xtend-builder/lib/cli.js +543 -0
  549. package/xtend-builder/lib/layout.d.ts +6 -0
  550. package/xtend-builder/lib/layout.js +153 -0
  551. package/xtend-builder/lib/package-resolver.js +25 -0
  552. package/xtend-builder/package.json +90 -0
  553. package/xtend-builder/performance/README.md +31 -0
  554. package/xtend-builder/performance/component-performance-profile.d.ts +11 -0
  555. package/xtend-builder/performance/component-performance-profile.js +347 -0
  556. package/xtend-builder/performance/component-ux-performance-contract.d.ts +27 -0
  557. package/xtend-builder/performance/component-ux-performance-contract.js +424 -0
  558. package/xtend-builder/preview/README.md +61 -0
  559. package/xtend-builder/preview/component-lab-ux-inspector.d.ts +20 -0
  560. package/xtend-builder/preview/component-lab-ux-inspector.js +448 -0
  561. package/xtend-builder/preview/component-lab.d.ts +14 -0
  562. package/xtend-builder/preview/component-lab.js +278 -0
  563. package/xtend-builder/preview/component-preview.d.ts +5 -0
  564. package/xtend-builder/preview/component-preview.js +160 -0
  565. package/xtend-builder/scaffold.config.d.ts +4 -0
  566. package/xtend-builder/scaffold.config.js +2056 -0
  567. package/xtend-builder/scaffold.d.ts +3 -0
  568. package/xtend-builder/scaffold.js +11 -0
  569. package/xtend-builder/templates/README.md +33 -0
  570. package/xtend-builder/templates/component/a11y.template.ts +11 -0
  571. package/xtend-builder/templates/component/component-suite.template.d.ts +2 -0
  572. package/xtend-builder/templates/component/component-suite.template.js +108 -0
  573. package/xtend-builder/templates/component/contract.template.ts +10 -0
  574. package/xtend-builder/templates/component/demo-plan.template.md +73 -0
  575. package/xtend-builder/templates/component/docs.template.md +301 -0
  576. package/xtend-builder/templates/component/fixture-data.template.ts +28 -0
  577. package/xtend-builder/templates/component/fixture.template.html +37 -0
  578. package/xtend-builder/templates/component/manifest-plan.template.json +22 -0
  579. package/xtend-builder/templates/component/performance.template.ts +13 -0
  580. package/xtend-builder/templates/component/rmt.template.ts +12 -0
  581. package/xtend-builder/templates/component/source.template.d.ts +2 -0
  582. package/xtend-builder/templates/component/source.template.js +137 -0
  583. package/xtend-builder/templates/component/source.template.ts +110 -0
  584. package/xtend-builder/templates/component/types.template.d.ts +423 -0
  585. package/xtend-builder/templates/loader.d.ts +4 -0
  586. package/xtend-builder/templates/loader.js +51 -0
  587. package/xtend-builder/templates/registry.d.ts +6 -0
  588. package/xtend-builder/templates/registry.js +119 -0
  589. package/xtend-builder/typing/README.md +130 -0
  590. package/xtend-builder/typing/component-contract-v2.d.ts +15 -0
  591. package/xtend-builder/typing/component-contract-v2.js +248 -0
  592. package/xtend-builder/typing/component-network-contract.d.ts +22 -0
  593. package/xtend-builder/typing/component-network-contract.js +478 -0
  594. package/xtend-builder/typing/component-shell-contract.d.ts +21 -0
  595. package/xtend-builder/typing/component-shell-contract.js +312 -0
  596. package/xtend-builder/typing/component-styling-contract.d.ts +22 -0
  597. package/xtend-builder/typing/component-styling-contract.js +301 -0
  598. package/xtend-builder/typing/component-types.d.ts +10 -0
  599. package/xtend-builder/typing/component-types.js +551 -0
  600. package/xtend-builder/typing/enterprise-component-flex-hardening-contract.d.ts +20 -0
  601. package/xtend-builder/typing/enterprise-component-flex-hardening-contract.js +332 -0
  602. package/xtend-builder/typing/feedback-status-ux-contract.d.ts +25 -0
  603. package/xtend-builder/typing/feedback-status-ux-contract.js +347 -0
  604. package/xtend-builder/typing/form-controls-ux-contract.d.ts +25 -0
  605. package/xtend-builder/typing/form-controls-ux-contract.js +357 -0
  606. package/xtend-builder/typing/layout-display-media-ux-contract.d.ts +25 -0
  607. package/xtend-builder/typing/layout-display-media-ux-contract.js +420 -0
  608. package/xtend-builder/typing/navigation-routing-ux-contract.d.ts +17 -0
  609. package/xtend-builder/typing/navigation-routing-ux-contract.js +297 -0
  610. package/xtend-builder/typing/overlay-interaction-ux-contract.d.ts +25 -0
  611. package/xtend-builder/typing/overlay-interaction-ux-contract.js +383 -0
  612. package/xtend-builder/typing/rmt-dsl-authoring-polish.d.ts +27 -0
  613. package/xtend-builder/typing/rmt-dsl-authoring-polish.js +419 -0
  614. package/xtend-builder/typing/rmt-shell-authoring-contract.d.ts +26 -0
  615. package/xtend-builder/typing/rmt-shell-authoring-contract.js +315 -0
  616. package/xtend-builder/utils/README.md +8 -0
  617. package/xtend-builder/utils/naming.d.ts +7 -0
  618. package/xtend-builder/utils/naming.js +36 -0
  619. package/xtend-builder/utils/validation.d.ts +5 -0
  620. package/xtend-builder/utils/validation.js +95 -0
  621. package/xtend-builder/wiring/README.md +46 -0
  622. package/xtend-builder/wiring/features.d.ts +5 -0
  623. package/xtend-builder/wiring/features.js +165 -0
  624. package/xtend-builder/wiring/hydration.d.ts +4 -0
  625. package/xtend-builder/wiring/hydration.js +44 -0
  626. package/xtend-builder/wiring/manifest.d.ts +5 -0
  627. package/xtend-builder/wiring/manifest.js +48 -0
  628. package/xtend-builder/workflows/README.md +47 -0
  629. package/xtend-builder/workflows/developer-workflow.d.ts +6 -0
  630. package/xtend-builder/workflows/developer-workflow.js +125 -0
  631. package/xtend-builder/writing/manifest-patcher.d.ts +49 -0
  632. package/xtend-builder/writing/manifest-patcher.js +391 -0
  633. package/xtend-builder/writing/write-plan.d.ts +148 -0
  634. package/xtend-builder/writing/write-plan.js +646 -0
  635. package/xtend-dev.d.ts +23 -0
  636. package/xtend-dev.js +4 -0
  637. package/xtend-loader.d.ts +201 -0
  638. package/xtend-loader.js +1704 -0
  639. package/xtend.css +402 -0
  640. package/xtendrmt/package.json +64 -0
  641. package/xtendrmt/rmt-core.d.ts +4452 -0
  642. package/xtendrmt/rmt-core.esm.js +25793 -0
  643. package/xtendrmt/rmt-first-demo-app.js +265 -0
  644. package/xtendrmt/rmt-first-demo-app.rmt +737 -0
  645. package/xtendrmt/rmt-lifecycle-demo.app.js +493 -0
  646. package/xtendrmt/rmt-lifecycle-demo.core.json +810 -0
  647. package/xtendrmt/rmt-lifecycle-demo.rmt +35 -0
  648. package/xtendrmt/rmt-lifecycle-demo.rmt-build.app.js +153 -0
  649. package/xtendrmt/rmt-lifecycle-demo.rmt-build.core.json +810 -0
  650. package/xtendrmt/rmt-lifecycle-demo.rmt-build.scaffold.json +202 -0
  651. package/xtendrmt/rmt-lifecycle-demo.scaffold.json +187 -0
  652. package/xtendrmt/rmt-manifest.json +548 -0
  653. package/xtendrmt/rmt-runtime.browser.js +26183 -0
  654. package/xtendrmt/rmt-runtime.esm.js +26214 -0
  655. package/xtendrmt/rmt-vnext-enterprise-mfe-demo.core.json +849 -0
  656. package/xtendrmt/rmt-vnext-enterprise-mfe-demo.rmt +50 -0
  657. package/xtendrmt/rmt-vnext-reference-demo.core.json +1069 -0
  658. package/xtendrmt/rmt-vnext-reference-demo.rmt +50 -0
  659. package/xtendrmt/rmt.schema.json +3145 -0
  660. package/xtendrmt/surface-workbench.js +316 -0
  661. package/xtendrmt/surface-workbench.rmt +762 -0
  662. package/xtendrmt/xtendrmt-bestcase-demo.core.json +1187 -0
  663. package/xtendrmt/xtendrmt-bestcase-demo.js +1728 -0
  664. package/xtendrmt/xtendrmt-bestcase-demo.rmt +57 -0
@@ -0,0 +1,90 @@
1
+ # RMT vNext Remote Surfaces
2
+
3
+ RMT vNext beschreibt Remote Surfaces als deklarative Enterprise-MFE-Contracts.
4
+ Der RMT-Kernel fuehrt keine Remote Runtime aus und laedt keine Netzwerkquellen.
5
+ Hosts koennen aus dem Contract konkrete Loader-, Mount-, Sandbox- und Rollback-
6
+ Entscheidungen ableiten.
7
+ Boundary: no-remote-runtime-execution-in-rmt-kernel.
8
+
9
+ ## Contract
10
+
11
+ ```js
12
+ schema: "xtend.rmt.vnext-remote-surface.v1"
13
+ manifestSchema: "xtend.rmt.vnext-remote-surface-manifest.v1"
14
+ securitySchema: "xtend.rmt.vnext-remote-security-policy.v1"
15
+ compilerSchema: "xtend.rmt.vnext-remote-compiler.v1"
16
+ ```
17
+
18
+ Eine Remote Surface muss explizit deklarieren:
19
+
20
+ - `owner` als verantwortliches Team oder Produkt.
21
+ - `version` und `versionRange` fuer aktive und erwartete Versionen.
22
+ - `origin` und `integrity` fuer Manifest- und Artefaktbindung.
23
+ - `trustBoundary` und Sandbox-/CSP-Anforderungen.
24
+ - `fallback` auf eine lokale Surface oder ein blockierendes Verhalten.
25
+ - `exposes` als Lane- und Shell-Target-Bindings.
26
+ - `emits` und `consumes` als typisierte Cross-Surface-Events.
27
+
28
+ ## Authoring
29
+
30
+ ```rmt
31
+ remote surface checkout.cart from remote "@xtend/checkout-cart" {
32
+ owner: "checkout-platform"
33
+ version: "^3.1.0"
34
+
35
+ remote {
36
+ origin: "https://mfe.xtend.invalid/checkout"
37
+ integrity: "sha256-demo-integrity"
38
+ }
39
+
40
+ trust boundary enterprise.remote.strict {
41
+ sandbox: ["allow-scripts"]
42
+ capabilities: ["surface.mount", "event.emit", "event.consume"]
43
+ }
44
+
45
+ exposes {
46
+ critical -> shell.slot:sidebar.cart
47
+ idle -> shell.slot:background.prefetch
48
+ }
49
+
50
+ fallback surface panel.checkoutFallback
51
+
52
+ emits checkout.cart.updated.v1 {
53
+ owner: "checkout-platform"
54
+ payload: "xtend.schemas.cartUpdated.v1"
55
+ scope: lane critical -> shell.slot:sidebar.cart
56
+ }
57
+
58
+ consumes user.session.changed.v1 {
59
+ owner: "identity-platform"
60
+ payload: "xtend.schemas.userSessionChanged.v1"
61
+ scope: shell -> checkout.cart
62
+ }
63
+ }
64
+ ```
65
+
66
+ Das Beispiel ist absichtlich JSON-nah: alle fachlichen Fakten koennen stabil in
67
+ Core JSON serialisiert werden. Die Sprache bleibt dabei lesbar genug fuer
68
+ Produktteams und strikt genug fuer Gate-Suites.
69
+
70
+ ## Boundaries
71
+
72
+ - Kein Remote-Code wird im RMT-Kernel ausgefuehrt.
73
+ - Kein Netzwerkzugriff ist fuer Language-Layer-Gates erlaubt.
74
+ - Remote Surfaces sind deny-by-default, bis Owner, Version, Integrity,
75
+ Trust Boundary und Fallback vollstaendig sind.
76
+ - SurfaceManager bleibt Runtime-Orchestrierung; `surface.registry` bleibt der
77
+ deklarative Enterprise-MFE-Index.
78
+
79
+ ## Gates
80
+
81
+ ```bash
82
+ node scripts/run_xtend_tests.js rmt-vnext-remote-manifest --json
83
+ node scripts/run_xtend_tests.js rmt-vnext-remote-security --json
84
+ node scripts/run_xtend_tests.js rmt-vnext-remote-compiler --json
85
+ node scripts/run_xtend_tests.js rmt-vnext-remote-compatibility --json
86
+ node scripts/run_xtend_tests.js rmt-vnext-enterprise-release --json
87
+ ```
88
+
89
+ Die Enterprise Demo liegt in `xtendrmt/rmt-vnext-enterprise-mfe-demo.rmt`; der
90
+ byte-stabile Core Output liegt in `xtendrmt/rmt-vnext-enterprise-mfe-demo.core.json`.
@@ -0,0 +1,76 @@
1
+ # RMT vNext Enterprise Surface Registry
2
+
3
+ `surface.registry` ist der gemeinsame Enterprise-MFE-Index fuer lokale und
4
+ remote Surfaces. Er ist kein Runtime-Manager und kein globaler Event Bus,
5
+ sondern ein auditierbarer Snapshot fuer Ownership, Discoverability, aktive
6
+ Versionen, Shell Targets, Lanes, Fallbacks und Event-Fakten.
7
+
8
+ ## Contract
9
+
10
+ ```js
11
+ schema: "xtend.rmt.vnext-enterprise-surface-registry.v1"
12
+ surfaceSchema: "xtend.rmt.vnext-enterprise-surface.v1"
13
+ targetReadiness: "rmt-vnext-enterprise-mfe-ready"
14
+ ```
15
+
16
+ Der Registry-Snapshot beantwortet die Enterprise-Fragen:
17
+
18
+ - Welche Surfaces existieren zur Laufzeit?
19
+ - Welches Team besitzt welche Surface?
20
+ - Welche Version ist aktiv und welche Range wurde erwartet?
21
+ - Welche Shell Targets und Lanes sind gebunden?
22
+ - Welche Surfaces sind lokal, remote oder Fallback?
23
+ - Welche Events duerfen eine Surface verlassen oder erreichen?
24
+ - Welche Degradation-Policy gilt bei Inkompatibilitaet?
25
+
26
+ ## Registry Shape
27
+
28
+ ```json
29
+ {
30
+ "schema": "xtend.rmt.vnext-enterprise-surface-registry.v1",
31
+ "registryId": "enterprise:xtend.enterprise-mfe.demo",
32
+ "surfaceCount": 4,
33
+ "localSurfaceCount": 3,
34
+ "remoteSurfaceCount": 1,
35
+ "indexes": {
36
+ "byOwner": {
37
+ "checkout-platform": ["surface:panel.checkoutFallback", "remote:checkout.cart"]
38
+ },
39
+ "byShellTarget": {
40
+ "shell.slot:sidebar.cart": ["remote:checkout.cart"]
41
+ }
42
+ }
43
+ }
44
+ ```
45
+
46
+ Die Registry darf von Hosts und Operations-Tools gelesen werden. Sie bleibt aber
47
+ ein Language-Layer-Artefakt und erzeugt keine impliziten Runtime-Verbindungen.
48
+
49
+ ## Ownership
50
+
51
+ Jede Surface braucht einen fachlichen Owner. Der Owner verantwortet:
52
+
53
+ - Version Range und aktive Version.
54
+ - Fallback-Flaeche oder blockierenden Degradation-Pfad.
55
+ - Event Ownership und Payload Ownership.
56
+ - Security Policy und Trust Boundary.
57
+ - Migrationshinweise fuer Legacy-Surface-Fakten.
58
+
59
+ ## Discoverability
60
+
61
+ Discoverability entsteht ueber stabile Indizes, nicht ueber Laufzeit-Heuristik.
62
+ Die Registry muss mindestens nach Surface Name, Owner, Shell Target, Lane,
63
+ Status, Remote ID und Fallback aufloesbar sein. Das Demo-Szenario validiert dies
64
+ ueber `tools/rmt-language/vnext-enterprise-fixtures.js`.
65
+
66
+ ## Gates
67
+
68
+ ```bash
69
+ node scripts/run_xtend_tests.js rmt-vnext-enterprise-registry --json
70
+ node scripts/run_xtend_tests.js rmt-vnext-degradation --json
71
+ node scripts/run_xtend_tests.js rmt-vnext-enterprise-fixtures --json
72
+ node scripts/run_xtend_tests.js rmt-vnext-enterprise-release --json
73
+ ```
74
+
75
+ Der operative Handoff ist in `docs/rmt-vnext-enterprise-mfe-handoff.md`
76
+ zusammengefasst.
@@ -0,0 +1,56 @@
1
+ # Screenreader Signals
2
+
3
+ - Contract: `xtend.docs.screenreader-signals.v1`
4
+ - Runtime-/Gate-Contract: `xtend.a11y.screenreader-signals.v1`
5
+ - Signal Record: `xtend.a11y.screenreader-signal.v1`
6
+ - Gate: `node scripts/run_xtend_tests.js screenreader-signals --json`
7
+
8
+ ## Zweck
9
+
10
+ Screenreader-Signale machen sichtbar, welche UI-Zustandswechsel nicht still bleiben duerfen. Der Contract beschreibt `aria-live`, Statusregionen, Errorregionen und Announcements, ohne eine bestimmte UI-Runtime in XTendRMT einzubetten.
11
+
12
+ XTend nutzt den Contract fuer Komponenten und Scaffold-Artefakte. XTendRMT kann die resultierende A11y-Arbeit ueber Fabric-Lane `a11y`, Fiber `a11y.announce` und Schedule `a11y.user-blocking.announce` schedulen.
13
+
14
+ ## Signalarten
15
+
16
+ | Signal | Live Region | Region | Typischer Einsatz |
17
+ |--------|-------------|--------|-------------------|
18
+ | `status-announcement` | `polite` | `status` | Toasts, Alerts, Submit-Erfolg |
19
+ | `dismissal-announcement` | `polite` | `status` | Toast/Alert wurde geschlossen |
20
+ | `validation-error-summary` | `assertive` | `error` | Formular- oder Input-Fehler |
21
+ | `submit-status` | `polite` | `status` | Formular erfolgreich verarbeitet |
22
+ | `dialog-context` | `none` | `dialog` | Dialog-/Modal-Kontext via Rolle und Label |
23
+ | `focus-return` | `none` | `focus` | Fokus geht nach Overlay-Schluss zur Quelle zurueck |
24
+ | `route-change-announcement` | `polite` | `status` | Route wurde gewechselt |
25
+
26
+ ## Komponentenpflichten
27
+
28
+ Feedback-Komponenten deklarieren Statussignale und setzen eine Live-Region. Fehlerzustaende duerfen assertiv sein, muessen aber reviewbar bleiben.
29
+
30
+ Form-Komponenten deklarieren mindestens `validation-error-summary` und `submit-status`. Errorregionen brauchen eine klare Quelle und duerfen leere Announcements nicht als Erfolg werten.
31
+
32
+ Overlay-Komponenten deklarieren `dialog-context` und `focus-return`. Sie brauchen nicht zwingend `aria-live`, weil der Screenreader-Kontext ueber `role="dialog"`, `aria-modal`, `aria-labelledby` und Fokusmanagement entsteht.
33
+
34
+ ## Scaffold
35
+
36
+ Neue Scaffold-Komponenten enthalten den Screenreader-Contract in:
37
+
38
+ - `xtendScaffoldA11yProfile.screenreader.signalContract`
39
+ - Manifest-Key `screenreaderSignals`
40
+ - Component-Doku Abschnitt `Screenreader-Signale`
41
+ - Fixture-Ergebnis `screenreaderSignals`
42
+ - Type Contract `ScreenreaderSignalContract`
43
+
44
+ ## Verifikation
45
+
46
+ ```bash
47
+ npm run test:screenreader-signals
48
+ node scripts/run_xtend_tests.js screenreader-signals --json
49
+ node scripts/run_xtend_tests.js a11y-hydration --json
50
+ ```
51
+
52
+ Der Gate prueft die Contract-Fabrik, reale Feedback-/Form-/Overlay-Komponenten, Scaffold-Ausgaben und Package-Metadaten.
53
+
54
+ ## Grenzen
55
+
56
+ Der Contract ist kein Ersatz fuer manuelle Screenreader-Abnahme. Er verhindert aber, dass relevante Status-, Fehler- oder Overlay-Signale unbenannt bleiben.
@@ -0,0 +1,100 @@
1
+ # XTend Supply-Chain Gates
2
+
3
+ - Status: Active ab `ER-WP-30`
4
+ - Docs Contract: `xtend.docs.supply-chain-gates.v1`
5
+ - Supply-Chain Contract: `xtend.security.supply-chain-gate-plan.v1`
6
+ - Dependency Audit Gate: `xtend.security.dependency-audit-gate.v1`
7
+ - License Policy: `xtend.security.license-policy.v1`
8
+ - Vulnerability Policy: `xtend.security.vulnerability-policy.v1`
9
+ - Release Gate: `xtend.security.release-supply-chain-gate.v1`
10
+
11
+ ## Uebersicht
12
+
13
+ XTend ist fuer RC1-Publish-Prep als scoped Public-Package-Flaeche vorbereitet. Supply-Chain-Gates kontrollieren dafuer Dependencies, Lizenzen, Vulnerabilities, SBOM, Provenance und die installierbare Package-Oberflaeche.
14
+
15
+ Der lokale Default-Pfad ist offline und reproduzierbar. Er fragt keine npm Registry ab.
16
+
17
+ ## Lokale Checks
18
+
19
+ ```bash
20
+ node scripts/verify_supply_chain_policy.js --json
21
+ node scripts/run_xtend_tests.js supply-chain --json
22
+ npm run test:supply-chain
23
+ ```
24
+
25
+ Der Verify prueft:
26
+
27
+ - `private: false` fuer RC1-Publish-Prep
28
+ - `license: "Apache-2.0"` fuer den kompletten XTend-Stack
29
+ - `publishConfig.provenance = true`
30
+ - Export von `security/supply-chain-gate-policy.js`
31
+ - Release-Gate-Metadaten in `package.json`
32
+ - Dependency-Inventar und Lockfile-Pflicht
33
+
34
+ ## CI-/Release-Stufen
35
+
36
+ Diese Kommandos sind fuer CI und Release Automation geplant:
37
+
38
+ ```bash
39
+ npm audit --audit-level=moderate
40
+ npm sbom --sbom-format=cyclonedx --json
41
+ npm run release:report
42
+ npm run pack:dry-run
43
+ ```
44
+
45
+ `npm audit` und `npm sbom` koennen Netzwerkzugriff benoetigen. Sie gehoeren deshalb nicht in den lokalen Default-Test, sondern in kontrollierte CI-/Release-Stufen.
46
+
47
+ ## License Policy
48
+
49
+ Der komplette XTend-Stack ist auf `Apache-2.0` gesetzt. Fuer RC1-Publish-Prep ist `private: false` gesetzt; der eigentliche `npm publish` bleibt ein separater Owner-Schritt.
50
+
51
+ Die scoped Release-Manifests sind Teil des Supply-Chain-Gates:
52
+
53
+ | Package | Manifest |
54
+ |---------|----------|
55
+ | `@ccslabs/xtend` | `package.json` |
56
+ | `@ccslabs/xtend-rmt` | `xtendrmt/package.json` |
57
+ | `@ccslabs/xtend-fabric` | `fabric/package.json` |
58
+ | `@ccslabs/xtend-cli` | `xtend-builder/package.json` |
59
+ | `@ccslabs/xtend-compiler` | `tools/package.json` |
60
+
61
+ Ein oeffentlicher Release braucht vorher:
62
+
63
+ - bestaetigte Apache-2.0 License-Entscheidung
64
+ - Dependency-License-Inventar
65
+ - Review aller nicht-permissiven Dependency-Lizenzen
66
+ - Ausschluss von AGPL/GPL/UNLICENSED als Default-Third-Party-Abhaengigkeiten
67
+
68
+ ## Vulnerability Policy
69
+
70
+ - `critical` blockiert jeden Release.
71
+ - `high` blockiert Release Candidates.
72
+ - Production-Findings ab `moderate` muessen triagiert werden.
73
+ - bekannte Exploits duerfen nicht in Release Candidates verbleiben.
74
+
75
+ ## Maschinenlesbare Policy
76
+
77
+ ```js
78
+ const {
79
+ createSupplyChainGatePlan,
80
+ classifyPackageSupplyChain
81
+ } = require('./security/supply-chain-gate-policy');
82
+ ```
83
+
84
+ Die Policy selbst liegt in:
85
+
86
+ ```text
87
+ security/supply-chain-gate-policy.js
88
+ ```
89
+
90
+ Der lokale Report nutzt:
91
+
92
+ ```text
93
+ xtend.security.supply-chain-report.v1
94
+ ```
95
+
96
+ ## Weiterfuehrende Dokumente
97
+
98
+ - [XTend Loader](./xtend-loader.md)
99
+ - [Trusted DOM und Sanitizing](./trusted-dom-sanitizing.md)
100
+ - [XTend-Fabric Runtime](./xtend-fabric.md)
@@ -0,0 +1,94 @@
1
+ # SurfaceManager Authoring Guide
2
+
3
+ - Contract: `xtend.surface.release-handoff.v1`
4
+ - Workpackage: `WP-SM-09`
5
+ - Fixture: `tests/fixtures/rmt-surface-manager-component-lab.rmt`
6
+ - Local Gate: `node scripts/run_xtend_tests.js surface-release-handoff --json`
7
+
8
+ ## Ziel
9
+
10
+ Dieser Guide beschreibt den empfohlenen Authoring-Pfad fuer XTend App Shells mit SurfaceManager. Er verbindet den fruehen Component-Metadata-Pfad aus `WP-SM-01` mit der nativen RMT `surfaces` Domain aus `WP-SM-08`.
11
+
12
+ ## Authoring-Modi
13
+
14
+ | Modus | Wann nutzen | Quelle |
15
+ |-------|-------------|--------|
16
+ | `component-metadata-mvp` | Kleine Shells, bestehende Component Records, schnelle Migration | `components[*].metadata.surface` |
17
+ | `dual-record-handoff` | Uebergang, Tooling-Vergleich, Regression gegen bestehende Runtime | `components[*].metadata.surface` plus `surfaces[*]` |
18
+ | `native-surfaces-preferred` | Komplexe App Shells, Multi Window, Panels, Overlay Stack | `surfaces[*]` als fachliche Surface-Quelle |
19
+
20
+ ## Component-Metadata bleibt gueltig
21
+
22
+ Bestehende RMT Component Records bleiben kompatibel:
23
+
24
+ ```json
25
+ {
26
+ "id": "workbench.inspector",
27
+ "kind": "custom_element",
28
+ "adapter": "xtend.component",
29
+ "tag": "x-surface-window",
30
+ "schedule": "surface.user-blocking.open",
31
+ "metadata": {
32
+ "surface": {
33
+ "schema": "xtend.surface.record.v1",
34
+ "id": "surface.inspector",
35
+ "type": "window",
36
+ "manager": "workbench.manager",
37
+ "stateKey": "xtend.surface.inspector.state"
38
+ }
39
+ }
40
+ }
41
+ ```
42
+
43
+ Dieser Modus reicht, wenn eine App Shell ueber `x-surface-manager` bereits korrekt laeuft und keine native RMT Surface-Domain fuer Tooling, Migration oder Cross-Record-Validierung gebraucht wird.
44
+
45
+ ## Native Surfaces bevorzugen
46
+
47
+ Fuer neue komplexe Shells ist `surfaces[*]` der Zielzustand:
48
+
49
+ ```json
50
+ {
51
+ "id": "surface.inspector",
52
+ "schema": "xtend.surface.record.v1",
53
+ "type": "window",
54
+ "adapter": "xtend.surface",
55
+ "manager": "workbench.manager",
56
+ "component": "workbench.inspector",
57
+ "route": "workbench",
58
+ "schedule": "surface.user-blocking.open",
59
+ "stateKey": "xtend.surface.inspector.state"
60
+ }
61
+ ```
62
+
63
+ Authoring-Regeln:
64
+
65
+ - `manager` referenziert den `x-surface-manager` Component Record.
66
+ - `component` referenziert die sichtbare Surface-Komponente.
67
+ - `route` bindet die Surface an den App-Shell-Kontext.
68
+ - `schedule` bindet Open, Layout, Persistenz oder Diagnostics an RMT Scheduling.
69
+ - `stateKey` bleibt stabil zwischen Component-Metadata und nativer Domain.
70
+ - Historisch blieb `xtend.surface` bis `WP-SM-19` ein Adapter-Handoff; seit dem Runtime-Handoff ist der produktive Adapter-Claim gatebar, waehrend die sichtbare UI weiterhin ueber die SurfaceManager-Komponentenfamilie materialisiert wird.
71
+
72
+ ## Release-Handoff
73
+
74
+ Nach `WP-SM-09` galt fuer den historischen Authoring-Handoff:
75
+
76
+ - Component-Metadata ist stabiler Compatibility-Pfad.
77
+ - Native `surfaces[*]` ist der bevorzugte Authoring-Pfad fuer neue App Shells.
78
+ - Dual Records sind der sichere Migrationsmodus.
79
+ - Der RMT Kernel bleibt host-neutral.
80
+ - Die produktive `xtend.surface` Adapter Runtime war Folgearbeit und ist seit `WP-SM-19` umgesetzt.
81
+
82
+ ## WP-SM-19 Runtime Authoring
83
+
84
+ Ab `WP-SM-19` ist die produktive `xtend.surface` Adapter Runtime umgesetzt und ueber `xtend.surface.runtime-release-handoff.v1` gatebar. Fuer neue komplexe App Shells bleibt `native-surfaces-preferred` der Default: `surfaces[*]` beschreibt die fachlichen Surfaces, waehrend Component Records die sichtbaren XTend-UI-Bindings liefern.
85
+
86
+ Produktive Authoring-Regeln:
87
+
88
+ - `surfaces[*]` ist die Quelle fuer neue Multi-Surface-App-Shells.
89
+ - `components[*].metadata.surface` bleibt fuer bestehende Shells und Dual-Record-Migrationen kompatibel.
90
+ - `x-surface-manager` und der SurfaceController bleiben die Runtime-Registry.
91
+ - Fabric, XRouter, `xstate` und RMT-Kernel bleiben eigenstaendige Schichten.
92
+ - `node scripts/run_xtend_tests.js surface-runtime-release-handoff --json` prueft den finalen Runtime-Handoff.
93
+
94
+ Details stehen im [SurfaceManager Runtime Release Handoff](./surface-manager-runtime-release-handoff.md).
@@ -0,0 +1,45 @@
1
+ # SurfaceManager Browser Lab
2
+
3
+ `WP-SM-18` ergaenzt die SurfaceManager-Schicht um ein browsernahes Lab fuer echte App-Shell-Stabilitaet. Der Contract `xtend.surface.browser-lab.v1` bleibt bewusst framework-nativ: Das Fixture nutzt `x-surface-manager`, `x-surface-window`, `x-side-panel`, `x-modal`, den `SkeletonLoader` aus dem Loader und die bestehende Surface-Hydration. Es ist keine Doku-App-Sonderloesung und kein Monkeypatch.
4
+
5
+ ## Artefakte
6
+
7
+ | Artefakt | Pfad |
8
+ | --- | --- |
9
+ | Catalog | `catalog/surface-manager-browser-lab.js` |
10
+ | Browser-Lab Fixture | `tests/browser/fixtures/surface-manager-browser-lab.html` |
11
+ | Visual Baseline | `tests/browser/visual-baselines/surface-manager-browser-lab.dom-baseline.json` |
12
+ | Gate | `node scripts/run_xtend_tests.js surface-browser-lab --json` |
13
+
14
+ Die Visual Baseline verwendet `xtend.surface.browser-lab.visual-baseline.v1`. Sie ist JSON-basiert und pixel-ready: spaetere Browser-Lab-Laeufe koennen echte Snapshot-Dateien anhaengen, waehrend der lokale Fast-Gate bereits DOM-Signaturen, States und Budgets prueft.
15
+
16
+ ## Gate-Zustaende
17
+
18
+ Das Fixture deckt fuenf reproduzierbare Zustaende ab:
19
+
20
+ | Snapshot | Zustand |
21
+ | --- | --- |
22
+ | `surface-lab-cold-start` | App Shell sichtbar vor Content-Hydration |
23
+ | `surface-lab-skeleton` | Parsedown-Content hinter SkeletonLoader verborgen |
24
+ | `surface-lab-hydrated` | Content freigegeben, Skeleton entfernt |
25
+ | `surface-lab-route-change` | Route-bound Surface ohne Shell-Resize |
26
+ | `surface-lab-modal-stack` | Modal Stack ueber SurfaceManager-Policy |
27
+
28
+ ## Regressionen
29
+
30
+ Der Report verbindet `xtend.surface.browser-lab.performance-report.v1` und `xtend.surface.browser-lab.cls-report.v1`. Lokal muessen folgende Risiken fehlschlagen:
31
+
32
+ | Risiko | Budget |
33
+ | --- | --- |
34
+ | CLS | `<= 0.01` |
35
+ | Layout Shift | `<= 1px` |
36
+ | Pop-In von ungestyltem Content | `0` |
37
+ | Open/Focus | `<= 16ms` |
38
+ | Route | `<= 32ms` |
39
+ | Hydrate | `<= 120ms` |
40
+
41
+ ## App-Shell-Proben
42
+
43
+ Das Lab referenziert die Docs-App ueber `docs/index.php` und den Parsedown/RMT-Pilot `docs/xtendrmt-parsedown-docs.rmt`. Zusaetzlich bleibt `tests/browser/fixtures/rmt-surface-workbench-smoke.html` als Referenz-Workbench im Gate. Dadurch prueft WP-SM-18 den produktnahen App-Shell-Pfad, ohne Parsedown, PHP oder Workbench-spezifisches Verhalten in den SurfaceManager zu verschieben.
44
+
45
+ Der SurfaceManager bleibt eine unterstuetzende XTend-UI-Schicht. Er erzeugt keine zweite Registry, ersetzt nicht Fabric oder den RMT-Kernel und laedt keine Remote Runtime im Kernel.
@@ -0,0 +1,43 @@
1
+ # SurfaceManager Component Lab
2
+
3
+ - Contract: `xtend.surface.component-lab-fixture.v1`
4
+ - Release Contract: `xtend.surface.release-handoff.v1`
5
+ - Fixture: `tests/fixtures/rmt-surface-manager-component-lab.rmt`
6
+ - Gate: `node scripts/run_xtend_tests.js surface-release-handoff --json`
7
+
8
+ ## Zweck
9
+
10
+ Das SurfaceManager Component Lab ist die statische Lab-Fixture fuer die SurfaceManager-Linie. Es zeigt, wie eine App Shell mit `x-surface-manager`, `x-surface-window`, `x-side-panel`, einem kompatiblen Dialog und nativen `surfaces[*]` Records beschrieben wird.
11
+
12
+ Die Fixture ist kein neuer Lab-Server. Sie erweitert den bestehenden Component-Lab-Gedanken um Surface-spezifische Authoring- und Migrationssicht.
13
+
14
+ ## Panels
15
+
16
+ | Panel | Aufgabe |
17
+ |-------|---------|
18
+ | `surface-preview` | sichtbare Surface Shell mit WindowManager- und SidePanel-Komponenten pruefen |
19
+ | `native-rmt-inspector` | `surfaces[*]`, `adapters`, `components`, `routes` und `schedules` inspizieren |
20
+ | `migration-diff` | `components[*].metadata.surface` mit nativen Surface Records vergleichen |
21
+ | `quality-gates` | Gate-Kette von `surface-manager-quality` bis `surface-native-rmt` sichtbar machen |
22
+ | `source-links` | Doku-, Katalog-, Fixture-, Runtime- und Suite-Pfade verlinken |
23
+
24
+ ## Fixture-Modell
25
+
26
+ `tests/fixtures/rmt-surface-manager-component-lab.rmt` enthaelt:
27
+
28
+ - vier Adapter: `xtend.component`, `xtend.xrouter`, `rmt.state-scheduler-diagnostics`, `xtend.surface`
29
+ - eine SurfaceManager-Komponente `surface.lab.manager`
30
+ - zwei Windows: `surface.lab.preview` und `surface.lab.rmtInspector`
31
+ - zwei SidePanels: `surface.lab.migrationPanel` und `surface.lab.qualityPanel`
32
+ - einen Dialog: `surface.lab.commandDialog`
33
+ - native `surfaces[*]` Records plus passende `components[*].metadata.surface` Dual Records
34
+
35
+ Die Fixture prueft die Authoring-Boundary. Sie behauptet keine produktive `xtend.surface` Runtime.
36
+
37
+ ## Lokaler Ablauf
38
+
39
+ ```bash
40
+ node scripts/run_xtend_tests.js surface-release-handoff --json
41
+ ```
42
+
43
+ Der Gate validiert die Fixture ueber RMT-Normalisierung und Semantic Graph. Damit bleiben Surface-IDs, Component-Refs, Manager-Refs, Routes und Schedules sichtbar und maschinenpruefbar.
@@ -0,0 +1,66 @@
1
+ # SurfaceManager Controller
2
+
3
+ `WP-SM-02` fuehrt den internen Surface Controller fuer XTend ein. Er ist der lauffaehige Unterbau fuer Multi Window Oberflaechen, aber noch kein sichtbares Custom Element.
4
+
5
+ - Contract: `xtend.surface.controller.v1`
6
+ - Runtime: `components/xsurfacemanager-controller.js`
7
+ - Types: `components/xsurfacemanager-controller.d.ts`
8
+ - Snapshot: `xtend.surface.snapshot.v1`
9
+ - Gate: `node scripts/run_xtend_tests.js surface-controller --json`
10
+
11
+ ## Rolle
12
+
13
+ Der Controller verwaltet Surface Records aus dem `WP-SM-01` Authoring-Modell. RMT kann also weiterhin normale Component Records mit `metadata.surface` beschreiben; der Controller normalisiert diese Records zu einer Laufzeit-Registry.
14
+
15
+ Er ist bewusst `controller-only-no-custom-element`. `WP-SM-03` baut darauf `x-surface-manager` und `x-surface-window`.
16
+
17
+ ## API
18
+
19
+ Wichtige Methoden:
20
+
21
+ ```js
22
+ const {
23
+ createSurfaceController
24
+ } = require('./components/xsurfacemanager-controller.js');
25
+
26
+ const controller = createSurfaceController({
27
+ managerId: 'workbench.manager',
28
+ xstate,
29
+ fabric
30
+ });
31
+
32
+ controller.registerSurface(surfaceRecord);
33
+ controller.openSurface('workbench.inspector');
34
+ controller.focusSurface('workbench.inspector');
35
+ controller.moveSurface('workbench.inspector', { x: 128, y: 96 });
36
+ controller.resizeSurface('workbench.inspector', { width: 700, height: 460 });
37
+ controller.closeSurface('workbench.inspector');
38
+
39
+ const snapshot = controller.snapshot();
40
+ ```
41
+
42
+ Unterstuetzt werden `registerSurface`, `openSurface`, `closeSurface`, `focusSurface`, `updateSurface`, `moveSurface`, `resizeSurface`, `minimizeSurface`, `maximizeSurface`, `restoreSurface`, `snapshot` und `dispose`.
43
+
44
+ ## State
45
+
46
+ Nach jedem Commit spiegelt der Controller:
47
+
48
+ ```text
49
+ xtend.surface.registry
50
+ xtend.surface.active
51
+ xtend.surface.<surfaceId>.state
52
+ xtend.surface.<surfaceId>.bounds
53
+ xtend.surface.<surfaceId>.lifecycle
54
+ xtend.surface.diagnostics
55
+ xtend.surface.snapshot
56
+ ```
57
+
58
+ Der Snapshot enthaelt nur Layout-, Lifecycle- und UI-State. Raw Metadata, DOM Nodes und Content-Payloads werden nicht serialisiert.
59
+
60
+ ## Diagnostics
61
+
62
+ Wenn Fabric uebergeben wird, sendet der Controller `xtend.surface.diagnostic.v1` Events ueber `emitDiagnostic`. Ohne Fabric bleibt der Controller trotzdem lauffaehig und spiegelt Diagnostics nach xstate.
63
+
64
+ ## Naechster Schritt
65
+
66
+ `WP-SM-03` sollte die sichtbare Komponentenfamilie auf diesem Controller aufbauen: `x-surface-manager`, `x-surface-window`, erste Layer-Container, Events und echte Window-Chrome.
@@ -0,0 +1,32 @@
1
+ # SurfaceManager Layout Engines
2
+
3
+ Ab `WP-SM-16` besitzt `x-surface-manager` den Contract `xtend.surface.layout-engine.v1` fuer sichtbare, snapshot-kompatible Surface Layouts.
4
+
5
+ ## Engines
6
+
7
+ | Engine | Zweck |
8
+ |--------|-------|
9
+ | `freeform` | freie Fenster mit Viewport-Clamp, Snap und einfacher Kollisionskorrektur |
10
+ | `docked` | SidePanels und docked Surfaces belegen Ränder, Workspace-Surfaces fuellen den Rest |
11
+ | `split` | offene Layout-Surfaces werden als Split Panes verteilt |
12
+ | `tile` | offene Layout-Surfaces werden in einem Raster verteilt |
13
+ | `stacked` | offene Layout-Surfaces werden als versetzter Stack dargestellt und als kompakter Fallback genutzt |
14
+
15
+ ## Runtime
16
+
17
+ - `snapshotSurfaceLayout()` liefert `xtend.surface.layout-engine-report.v1`.
18
+ - `applyLayoutEngine(engine)` schreibt berechnete Bounds ueber den bestehenden SurfaceController in den Snapshot.
19
+ - `dockSurface()` setzt Placement/Mode und wendet eine docked oder aktuell aktive Layout Engine sichtbar an.
20
+ - `undockSurface()` setzt eine Surface auf `floating` und laesst sie wieder im Freeform-Modus laufen.
21
+ - `surface-layout-gap` und `surface-layout-snap` steuern Abstaende und Snap-Raster.
22
+ - kompakte Viewports fallen auf `stacked` zurueck.
23
+
24
+ ## Boundary
25
+
26
+ Die Layout Engine bleibt eine XTend-UI-Unterstuetzungsschicht. Der SurfaceController bleibt Registry- und Snapshot-Quelle, Fabric bleibt fuer Diagnostics/Backpressure zustaendig, und der RMT Kernel importiert keine XTend-Typen. Es entsteht keine zweite Registry.
27
+
28
+ Lokaler Gate:
29
+
30
+ ```bash
31
+ node scripts/run_xtend_tests.js surface-layout-engines --json
32
+ ```
@@ -0,0 +1,63 @@
1
+ # SurfaceManager Lazy Hydration
2
+
3
+ Docs Contract: `xtend.docs.surface-manager-lazy-hydration.v1`
4
+
5
+ `WP-SM-13` haertet `x-surface-manager` fuer shell-first Apps: Surface Chrome und App Shell koennen sofort sichtbar werden, waehrend Surface Content ueber den framework-nativen XTendLoader skeletonisiert, geladen und hydriert wird.
6
+
7
+ ## Contract
8
+
9
+ - Loading Policy: `xtend.surface.loading-policy.v1`
10
+ - Loading Report: `xtend.surface.loading-report.v1`
11
+ - Gate: `node scripts/run_xtend_tests.js surface-lazy-hydration --json`
12
+ - Package Script: `npm run test:surface-lazy-hydration`
13
+
14
+ ## Policies
15
+
16
+ `surface-loading-policy` am Manager setzt die Default-Policy. Einzelne Surfaces koennen sie mit `data-surface-hydration-policy` ueberschreiben.
17
+
18
+ | Policy | Verhalten |
19
+ |--------|-----------|
20
+ | `eager` | Content wird direkt nach der Surface-Registrierung hydriert. |
21
+ | `visible` | Content wird hydriert, sobald die Surface sichtbar ist. |
22
+ | `open` | Content wird hydriert, wenn die Surface geoeffnet ist. |
23
+ | `idle` | Content wird ueber `requestIdleCallback` oder Timeout-Fallback geladen. |
24
+ | `route` | Content wartet auf Route-Signale wie `xtend-route-changed`. |
25
+
26
+ ## Runtime
27
+
28
+ `x-surface-manager` nutzt keine Doku-App-Sonderloesung. Die Runtime greift auf die vorhandenen Loader-APIs zu:
29
+
30
+ - `XTendLoader.ensureComponent`
31
+ - `XTendLoader.hydrateTree`
32
+ - `XTendLoader.showSkeleton`
33
+ - `XTendLoader.hideSkeleton`
34
+ - `XTendStyleRegistry.ensureRuntimeStyles`
35
+
36
+ Vor der Hydration setzt der Manager `data-xtend-surface-content-ready="false"` und laesst den SkeletonLoader direkte Content-Kinder verdecken. Erst nach erfolgreichem Component-Ready- und `hydrateTree`-Gate wird der Skeleton entfernt. Bei Fehlern oder Timeouts bleibt der Skeleton aktiv, damit kein ungestylter Content aufpoppt.
37
+
38
+ ## Parsedown und Remote Slots
39
+
40
+ Parsedown-Container und remote-faehige Slots sind normale Surface-Inhalte. Es gibt kein Monkeypatch in der Doku-App:
41
+
42
+ ```html
43
+ <x-surface-window
44
+ surface-id="docs.surface"
45
+ data-surface-hydration-policy="open"
46
+ open>
47
+ <section data-xtend-parsedown-container="true">
48
+ <x-code language="markdown"># Docs</x-code>
49
+ </section>
50
+ </x-surface-window>
51
+ ```
52
+
53
+ Remote-faehige Slots koennen mit `data-remote-capable-content-slot="true"` markiert werden. Die Lazy-Hydration laedt dabei nur den DOM-/Komponenten-Scope; Remote Trust, Ownership und Capabilities bleiben spaeteren Remote-Surface-Policies vorbehalten.
54
+
55
+ ## Diagnostics
56
+
57
+ Der Manager bietet:
58
+
59
+ - `snapshotSurfaceLoading()`
60
+ - `hydrateSurfaceContent(surfaceRef, options)`
61
+ - Events `surface-content-loading`, `surface-content-hydrated`, `surface-content-hydration-skipped` und `surface-content-hydration-error`
62
+
63
+ `snapshotSurfaceLoading()` meldet Policy, Skeleton-Status, Hydration-Status, Tags, unresolved Tags, Dauer und die Boundaries `shellFirst`, `protectsUnstyledContent` und `createsSecondRegistry: false`.