@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,79 @@
1
+ # Manifest Import Policy
2
+
3
+ - Docs Contract: `xtend.docs.manifest-import-policy.v1`
4
+ - Loader Policy: `xtend.security.loader-policy.v1`
5
+ - Manifest Policy: `xtend.security.manifest-policy.v1`
6
+ - Import Policy: `xtend.security.import-policy.v1`
7
+ - Gate: `xtend.security.manifest-import-gate.v1`
8
+
9
+ XTend laedt Komponenten ueber das Manifest. Seit `ER-WP-28` wird dieser Pfad explizit abgesichert: Manifest-URLs, Manifest Records und dynamische Modul-Imports werden lokal validiert, bevor der Loader sie nutzt.
10
+
11
+ ## Erlaubt
12
+
13
+ - relative URLs wie `./xalert.js`
14
+ - root-relative URLs wie `/components/xrouter.js`
15
+ - same-origin URLs
16
+ - lokale Loopback-Dev-Server wie `http://localhost:4173/components/xmodal.js`
17
+ - `.json` fuer Manifeste
18
+ - `.js` und `.mjs` fuer Module
19
+
20
+ ## Verweigert
21
+
22
+ - externe CDN-/Remote-Module
23
+ - externe Manifest-URLs
24
+ - `javascript:`
25
+ - `data:` fuer Skripte
26
+ - `blob:` Module
27
+ - encoded Path Traversal wie `%2e%2e`
28
+ - Modulpfade ohne `.js` oder `.mjs`
29
+ - Manifestpfade ohne `.json`
30
+ - ungueltige Manifest-Keys
31
+ - URL-artige Dependency-Werte in Manifest-Records
32
+
33
+ ## Diagnostics
34
+
35
+ Der Loader emittiert Refusals als `xtend-loader-diagnostic`:
36
+
37
+ ```js
38
+ window.addEventListener('xtend-loader-diagnostic', (event) => {
39
+ console.log(event.detail.code, event.detail.metadata.diagnostics);
40
+ });
41
+ ```
42
+
43
+ Stabile Codes:
44
+
45
+ - `xtend.security.loader.refused`
46
+ - `xtend.security.manifest.invalid`
47
+ - `xtend.security.import.refused`
48
+
49
+ ## Maschinenlesbare Policy
50
+
51
+ ```js
52
+ const {
53
+ classifyPolicyUrl,
54
+ normalizeManifest
55
+ } = require('./security/manifest-import-policy');
56
+ ```
57
+
58
+ Die Policy liegt unter:
59
+
60
+ ```text
61
+ security/manifest-import-policy.js
62
+ ```
63
+
64
+ ## Lokale Gates
65
+
66
+ ```bash
67
+ node scripts/verify_manifest_import_policy.js --json
68
+ node scripts/run_xtend_tests.js manifest-import-policy --json
69
+ npm run test:manifest-policy
70
+ ```
71
+
72
+ Diese Checks sind offline und fragen keine externen Hosts ab.
73
+
74
+ ## Zusammenhang
75
+
76
+ - [XTend Loader](./xtend-loader.md)
77
+ - [Manifest-Format](./manifest.md)
78
+ - [Trusted DOM und Sanitizing](./trusted-dom-sanitizing.md)
79
+ - [Supply-Chain Gates](./supply-chain-gates.md)
@@ -0,0 +1,112 @@
1
+ # XTend Manifest
2
+
3
+ ## Übersicht
4
+
5
+ Das XTend Manifest ist eine zentrale JSON-Datei, die alle verfügbaren XTend-Komponenten und deren Pfade definiert. Es dient als "Single Source of Truth" für den Loader und die API, um Komponenten dynamisch und modular zu laden.
6
+
7
+ ---
8
+
9
+ ## Speicherort & Name
10
+
11
+ - Standardpfad: `components/manifest.json`
12
+ - Der Pfad kann beim Initialisieren des Loaders angepasst werden.
13
+
14
+ ---
15
+
16
+ ## Struktur des Manifests
17
+
18
+ Das Manifest ist ein einfaches JSON-Objekt. Die meisten Schlüssel entsprechen dem kanonischen Tag-Namen einer XTend-Komponente; zusätzlich gibt es reservierte Bootstrap-Keys wie `xstate`. Der Wert ist jeweils eine konkrete ES-Modul-Adresse.
19
+
20
+ ### Beispiel
21
+
22
+ ```json
23
+ {
24
+ "xstate": "./xstate.js",
25
+ "x-theme": "./xtheme.js",
26
+ "x-button": "./xbutton.js",
27
+ "x-input": "./xinput.js",
28
+ "x-router": "./xrouter.js",
29
+ "x-link": "./xlink.js"
30
+ }
31
+ ```
32
+
33
+ ### Konventionen
34
+ - Custom-Element-Tags sind kanonisch **kleingeschrieben, hyphenated und beginnen mit `x`** (z.B. `x-button`, `x-input`, `x-router`).
35
+ - Reservierte Bootstrap-Keys wie `xstate` sind zulässige Ausnahmen und werden nicht als DOM-Tag interpretiert.
36
+ - Werte dürfen **relativ**, **root-relativ** oder **same-origin/loopback-lokal absolut** sein.
37
+ - Der Loader löst relative Einträge relativ zur Manifest-URL auf.
38
+ - Der Default-Manifestpfad bleibt repo-lokal; CDN-URLs sind kein Standard- oder Testpfad.
39
+ - Seit `ER-WP-28` werden externe Manifest-/Modul-URLs, `javascript:`, `data:`, `blob:`, Path-Traversal und nicht-JavaScript-Module durch `xtend.security.manifest-policy.v1` und `xtend.security.import-policy.v1` verweigert.
40
+ - Kommentare sind im JSON-Standard nicht erlaubt und im echten Manifest unzulässig.
41
+
42
+ ---
43
+
44
+ ## Pflicht- und optionale Einträge
45
+
46
+ - **Pflicht:**
47
+ - `xstate` als Bootstrap-Basismodul
48
+ - **Optional:**
49
+ - `x-theme` (Theme-Engine)
50
+ - Weitere eigene Komponenten
51
+
52
+ ---
53
+
54
+ ## Erweiterbarkeit
55
+
56
+ - Das Manifest kann beliebig viele Komponenten enthalten.
57
+ - Eigene Komponenten können einfach durch Hinzufügen weiterer Schlüssel/Werte ergänzt werden.
58
+ - Für experimentelle oder Beta-Komponenten empfiehlt sich eine eigene Namenskonvention (z.B. `x-section-beta`).
59
+
60
+ ## Abgrenzung zu XTendRMT
61
+
62
+ Das XTend Manifest beschreibt aufloesbare ES-Modul-Pfade fuer XTend-Komponenten. Es ist nicht dasselbe wie ein `.rmt` Dokument.
63
+
64
+ | Datei/Format | Aufgabe |
65
+ |--------------|---------|
66
+ | `components/manifest.json` | XTend Loader und Component URL-Aufloesung |
67
+ | `xtendrmt/rmt.schema.json` | Schema-Referenz fuer RMT-Dokumente |
68
+ | `.rmt` | Native App-DSL mit `adapters`, `components`, `routes`, `schedules`, `templates` |
69
+ | `xtendrmt/rmt-manifest.json` | XTendRMT Produktmanifest, Entry Points und Artefakt-Paritaet |
70
+
71
+ RMT-Component-Records duerfen ein XTend Manifest fuer Manifest Lookup
72
+ referenzieren, aber der RMT Kernel liest daraus keine XTend Runtime. Die
73
+ Aufloesung gehoert in Host-Adapter und die RMT vNext Component Capability
74
+ Registry. Sie nutzt das Manifest als Import-Quelle, verbindet es mit
75
+ Component Contracts und RMT-Metadaten und erzeugt daraus Descriptor-
76
+ Faehigkeiten fuer den DOM Descriptor Renderer.
77
+
78
+ Native RMT-Dateien sollten mit `application/vnd.xtendrmt.rmt+json` ausgeliefert werden. Der JSON-Fallback bleibt fuer Sonderhosts moeglich, ist aber kein empfohlener Authoring-Pfad.
79
+
80
+ ---
81
+
82
+ ## Best Practices
83
+
84
+ - Das Manifest ist die **Single Source of Truth** für auflösbare Komponenten-URLs.
85
+ - Das Manifest sollte stets aktuell gehalten werden, um Dead Links und Ladefehler zu vermeiden.
86
+ - Für die Produktion empfiehlt sich ein minimiertes Manifest ohne ungenutzte Komponenten.
87
+ - `xstate` sollte immer explizit vorhanden sein; `x-theme` folgt direkt danach, wenn Theme-Funktionen genutzt werden.
88
+
89
+ ---
90
+
91
+ ## Validierung
92
+
93
+ - Vor dem Laden prüft der Loader, ob das Manifest und alle Modul-URLs gültig sind.
94
+ - Nicht-string Werte werden ignoriert.
95
+ - Fehler beim Parsen oder Laden werden im Konsolen-Log ausgegeben.
96
+ - Security Refusals erzeugen `xtend-loader-diagnostic` Events mit `xtend.security.loader.refused`, `xtend.security.manifest.invalid` oder `xtend.security.import.refused`.
97
+ - Der lokale Gate lautet `node scripts/run_xtend_tests.js manifest-import-policy --json`.
98
+ - Nach Core-Aenderungen kann `node scripts/verify_xtend_core_contracts.js` den Bootstrap-Contract gegen Manifest, API und Doku querpruefen.
99
+
100
+ ---
101
+
102
+ ## Weiterführende Themen
103
+ - [XTend Loader](./xtend-loader.md)
104
+ - [Manifest Import Policy](./manifest-import-policy.md)
105
+ - [Komponenten-Entwicklung](./components.md)
106
+ - [RMT vNext Component Primitives und XTend UI](./rmt-vnext-component-primitives.md)
107
+ - [API-Integration](./api.md)
108
+ - [XTendRMT App-DSL Reference](./xtendrmt-app-dsl.md)
109
+
110
+ ---
111
+
112
+ *Letzte Aktualisierung: 22. Mai 2026*
@@ -0,0 +1,67 @@
1
+ # Motion und Contrast
2
+
3
+ - Contract: `xtend.docs.motion-contrast.v1`
4
+ - Runtime-/Gate-Contract: `xtend.a11y.motion-contrast-policy.v1`
5
+ - Motion Contract: `xtend.a11y.motion-policy.v1`
6
+ - Contrast Contract: `xtend.a11y.contrast-policy.v1`
7
+ - Gate: `node scripts/run_xtend_tests.js motion-contrast --json`
8
+
9
+ ## Zweck
10
+
11
+ Motion und Contrast sind in XTend Bestandteil von A11y-by-design. Komponenten muessen reduzierte Bewegung, erzwungene Kontrastmodi, sichtbaren Fokus und Nicht-Farbstatus respektieren, ohne dass XTendRMT oder ein Host-Framework konkrete CSS-Details kennen muss.
12
+
13
+ ## Pflichtregeln
14
+
15
+ | Bereich | Umsetzung |
16
+ |---------|-----------|
17
+ | Reduced Motion | `@media (prefers-reduced-motion: reduce)` deaktiviert nicht essentielle Animationen und Transitions |
18
+ | High Contrast | `@media (forced-colors: active)` nutzt Systemfarben wie `CanvasText`, `ButtonText`, `Highlight`, `Mark` |
19
+ | Fokus | `:focus-visible` bleibt sichtbar und verwendet im Forced-Colors-Pfad `Highlight` |
20
+ | Status | Error, Warning, Busy und Active haben eine nicht nur farbliche Semantik |
21
+ | Tokens | Theme Tokens duerfen Forced-Colors nicht ueberschreiben, wenn Systemfarben gebraucht werden |
22
+
23
+ ## Component Contract
24
+
25
+ Relevante Komponenten deklarieren statisch:
26
+
27
+ ```js
28
+ static get xtendMotionContrastPolicy() {
29
+ return {
30
+ schema: 'xtend.a11y.motion-contrast-policy.v1',
31
+ componentRef: 'x-component',
32
+ motion: {
33
+ schema: 'xtend.a11y.motion-policy.v1',
34
+ mediaQuery: '(prefers-reduced-motion: reduce)',
35
+ noMotionOnlyState: true
36
+ },
37
+ contrast: {
38
+ schema: 'xtend.a11y.contrast-policy.v1',
39
+ mediaQuery: '(forced-colors: active)',
40
+ focusVisible: 'required',
41
+ nonColorStatus: 'required'
42
+ }
43
+ };
44
+ }
45
+ ```
46
+
47
+ ## Scaffold
48
+
49
+ Neue Scaffold-Komponenten erhalten:
50
+
51
+ - `motionContrast.policy` im A11y-Profil
52
+ - Manifest-Key `motionContrastPolicy`
53
+ - Docs-Abschnitt `Motion-und-Contrast-Policy`
54
+ - Fixture-Felder `motionContrastPolicy`, `motionMediaQuery`, `contrastMediaQuery`
55
+ - TypeScript-Type `X<Component>MotionContrastPolicy`
56
+
57
+ ## Fabric und RMT
58
+
59
+ Preference-Signale nutzen die Fabric-Lane `a11y`, Fiber `a11y.preference` und Schedule `a11y.user-blocking.preference`. RMT bleibt framework-agnostisch und bekommt nur host-neutrale Schedule-/Diagnostic-Signale, keine CSS-Ausfuehrung.
60
+
61
+ ## Lokale Verifikation
62
+
63
+ ```bash
64
+ npm run test:motion-contrast
65
+ node scripts/run_xtend_tests.js motion-contrast --json
66
+ node scripts/run_xtend_tests.js references --json
67
+ ```
@@ -0,0 +1,44 @@
1
+ # Package Export Lock
2
+
3
+ - Contract: `xtend.epic13.package-export-lock.v1`
4
+ - Report: `xtend.epic13.package-export-lock-report.v1`
5
+ - Surface: `xtend.epic13.package-export-surface.v1`
6
+ - Dry-Run Artifact: `xtend.epic13.package-dry-run-artifact.v1`
7
+ - Lokaler Gate: `node scripts/run_xtend_tests.js epic13-package-export-lock --json`
8
+
9
+ Der Package Export Lock macht den RC1-Paketinhalt pruefbar. Der lokale Gate validiert `package.json#exports`, `files`, die erwarteten Package Roots und die Surface Groups ohne `npm pack` auszufuehren.
10
+
11
+ ## Surface Groups
12
+
13
+ | Gruppe | Zweck |
14
+ |--------|-------|
15
+ | Loader | `xtend-loader.js`, Legacy Stub, API, CSS und Manifest |
16
+ | Components | Manifest und Component-Dateien |
17
+ | Fabric | Fabric Runtime, RMT Lane Mapping und Hydration Policy |
18
+ | XTendRMT | ESM- und Browser-Runtime |
19
+ | Builder | Scaffold CLI, Preview, Typing und Performance Contracts |
20
+ | Docs | Docs-App, Markdown, Parsedown/RMT Shell und Referenzen |
21
+ | Security | Manifest, Trusted DOM und Supply-Chain Policies |
22
+ | Catalog | Gate-, Handoff- und Epic-Contracts |
23
+
24
+ ## Release Owner Artifact
25
+
26
+ ```bash
27
+ npm run pack:dry-run:report
28
+ ```
29
+
30
+ Das Script schreibt:
31
+
32
+ - `.xtend-test-results/xtend-pack-dry-run.json`
33
+ - `.xtend-test-results/xtend-package-export-surface-lock.json`
34
+ - `.xtend-test-results/xtend-package-export-lock-report.json`
35
+
36
+ `private-until-release-owner-acceptance` bleibt aktiv. Der Lock beweist nur, dass Paketinhalt und Export Surface kontrolliert sind; er oeffnet kein Publishing.
37
+
38
+ ## TypeExports Anschluss
39
+
40
+ Ab `WP-TypeExports-01` nutzt [TypeExports](./type-exports.md) den Package Export Lock als Quelle fuer die Public Export Surface. Der Gate `node scripts/run_xtend_tests.js type-exports --json` koppelt die 121 erwarteten Exports ueber Count und Fingerprint an `xtend.epic13.package-export-lock.v1` und erzwingt fuer neue Public Exports eine Type-Entscheidung. Ab `WP-TypeExports-02` besitzen `.`, `./loader` und `./legacy-loader` die Type-Ziele `./xtend-loader.d.ts` und `./xtend-dev.d.ts`; `node scripts/run_xtend_tests.js type-exports-loader --json` prueft diesen Anschluss gegen die Loader-Runtime. Ab `WP-TypeExports-03` besitzt `./api` das Type-Ziel `./api.d.ts`; `node scripts/run_xtend_tests.js type-exports-api --json` prueft den Core-API-Namespace gegen `api.js`. Ab `WP-TypeExports-04` besitzen `./rmt`, `./rmt/browser`, `./rmt/dom-descriptor-renderer`, `./rmt/component-capability-registry`, `./rmt/state-selector-runtime`, `./rmt/action-effect-runtime`, `./rmt/event-routing-runtime`, `./rmt/surface-resource-graph-runtime`, `./rmt/native-shell-runtime`, `./rmt-language/app-platform-tooling` und die RMT-Language-/Tooling-Exports Type-Ziele wie `./xtendrmt/rmt-core.d.ts`, `./xtendrmt/rmt-dom-descriptor-renderer.d.ts`, `./xtendrmt/rmt-state-selector-runtime.d.ts`, `./xtendrmt/rmt-action-effect-runtime.d.ts`, `./xtendrmt/rmt-event-routing-runtime.d.ts`, `./xtendrmt/rmt-surface-resource-graph-runtime.d.ts`, `./tools/rmt-language/app-platform-tooling.d.ts` und `./tools/rmt-language/rmt-tooling-public-types.d.ts`; `node scripts/run_xtend_tests.js type-exports-rmt --json` prueft diesen Anschluss gegen die RMT Runtime- und Tooling-Surface. Ab `WP-TypeExports-05` besitzen Fabric/A11y/Security Exports Type-Ziele wie `./fabric/xtend-fabric.d.ts` und `./fabric/xtend-policy-public-types.d.ts`; `node scripts/run_xtend_tests.js type-exports-policy --json` prueft diesen Anschluss gegen die Policy-Surface. Ab `WP-TypeExports-06` besitzen Builder-Exports Type-Ziele wie `./xtend-builder/scaffold.d.ts`, `./xtend-builder/builder-public-types.d.ts` und `./xtend-builder/*.d.ts`; `node scripts/run_xtend_tests.js type-exports-builder --json` prueft diesen Anschluss gegen Scaffold, Generatoren, Component Lab und Typing Contracts. Ab `WP-TypeExports-07` besitzen Catalog-Exports Type-Ziele wie `./catalog/epic13-package-export-lock.d.ts` und das gemeinsame `./catalog/catalog-public-types.d.ts`; `node scripts/run_xtend_tests.js type-exports-catalog --json` prueft diesen Anschluss gegen Plan-/Report-/Validation-Catalogs. Ab `WP-TypeExports-08` besitzen Design Tokens und Vendor-Facades Type-Ziele wie `./design-tokens/xtend-design-tokens.d.ts`, `./design-tokens/xtheme-token-alias-layer.d.ts`, `./components/prism.d.ts` und `./components/turndown.d.ts`; `node scripts/run_xtend_tests.js type-exports-vendor --json` prueft diesen Anschluss gegen die Utility-Grenzen. Ab `WP-TypeExports-09` buendelt `npm run test:type-exports:release` die TypeExports-Gates als Release-Handoff und schreibt `.xtend-test-results/xtend-type-exports-report.json`.
41
+
42
+ ## Handoff
43
+
44
+ Nach `WP-E13-04` hat `WP-E13-05` die Known Residual Triage unter [Known Residual Triage](./known-residual-triage.md) mit `xtend.epic13.known-residual-triage.v1` abgeschlossen. `WP-E13-06` hat die [Hydration Performance Closure](./hydration-performance-closure.md) mit `xtend.epic13.hydration-performance-closure.v1` abgeschlossen. `WP-E13-07` hat die [PROD Browser CSP Smokes](./prod-browser-csp-smokes.md) vorbereitet, `WP-E13-08` hat [Visual Owner Artifacts](./visual-owner-artifacts.md) normalisiert, `WP-E13-09` hat [RMT Production Readiness](./rmt-production-readiness.md) gebuendelt, `WP-E13-10` hat [Docs RMT Production Hardening](./docs-rmt-production-hardening.md) abgeschlossen, `WP-E13-11` hat [Trusted DOM Boundary Browser Proof](./trusted-dom-boundary-browser-proof.md) abgeschlossen, `WP-E13-12` hat [RC1 Migration Notes](./rc1-migration-notes.md) abgeschlossen, `WP-E13-13` hat [RC1 Gate Matrix und CI-Handoff](./rc1-gate-matrix-ci-handoff.md) registriert, `DPF-WP-02` hat [Release Report und Pack Dry Run Evidence](./release-report-pack-dry-run-evidence.md) nachgezogen und `DPF-WP-03` hat [Conditional Network Evidence CI](./conditional-network-evidence-ci.md) nachgezogen. Der aktuelle Export Lock erwartet 124 Package-Exports inklusive `./design-tokens/xtheme-token-alias-layer`, `./catalog/epic13-rc1-migration-notes`, `./catalog/epic13-rc1-gate-matrix-ci-handoff`, `./catalog/epic13-release-report-pack-dry-run-evidence`, `./catalog/epic13-conditional-network-evidence-ci`, `./rmt/dom-descriptor-renderer`, `./rmt/component-capability-registry`, `./rmt/state-selector-runtime`, `./rmt/action-effect-runtime`, `./rmt/event-routing-runtime`, `./rmt/surface-resource-graph-runtime`, `./rmt/native-shell-runtime`, `./rmt/node-ssr-adapter`, `./rmt-language/app-platform-tooling`, `./rmt-language/kernel-trust-authority`, `./rmt-language/kernel-security-regression`, `./catalog/epic14-rmt-tooling`, `./catalog/epic14-lsp-handoff` sowie der klassischen und vNext RMT-Tooling-Surface.
@@ -0,0 +1,106 @@
1
+ # Performance Measurements
2
+
3
+ XTend misst ab `ER-WP-18` Loader-, Hydration-, Render- und Route-Kernpfade lokal.
4
+
5
+ Der stabile Measurement Contract lautet:
6
+
7
+ ```text
8
+ xtend.performance.measurement.v1
9
+ ```
10
+
11
+ ## Messpunkte
12
+
13
+ | Measure | Phase | Quelle |
14
+ |---------|-------|--------|
15
+ | `xtend.loader.manifest` | `load` | `xtend-loader.js` |
16
+ | `xtend.loader.module` | `load` | `xtend-loader.js`, Fabric Fibers |
17
+ | `xtend.component.define` | `define` | `xtend-loader.js` |
18
+ | `xtend.component.mount` | `mount` | Fabric Fibers |
19
+ | `xtend.component.hydrate` | `hydrate` | Fabric Fibers |
20
+ | `xtend.component.render` | `render` | Fabric Fibers |
21
+ | `xtend.component.update` | `update` | Fabric Fibers |
22
+ | `xtend.event.handler` | `event` | Fabric Fibers |
23
+ | `xtend.route.navigate` | `route` | Fabric Fibers |
24
+ | `xtend.route.render` | `route` | Fabric Fibers |
25
+ | `xtend.diagnostics.snapshot` | `diagnostics` | Fabric Fibers |
26
+
27
+ ## Loader
28
+
29
+ Der Loader setzt `performance.mark` und `performance.measure` fuer:
30
+
31
+ - Manifest laden und aufloesen
32
+ - ESM-Modul laden
33
+ - Custom Element Definition abwarten
34
+
35
+ Zusätzlich emittiert er ein lokales Browser-Event:
36
+
37
+ ```js
38
+ window.addEventListener('xtend-loader-performance', (event) => {
39
+ console.log(event.detail.name, event.detail.durationMs);
40
+ });
41
+ ```
42
+
43
+ Die automatische Boot-Promise enthaelt die Loader-Messwerte:
44
+
45
+ ```js
46
+ const boot = await window.__XTendLoaderBootPromise;
47
+ console.log(boot.performanceMeasurements);
48
+ ```
49
+
50
+ ## Fabric
51
+
52
+ Fabric misst bekannte Fibers automatisch:
53
+
54
+ ```js
55
+ const fabric = window.XTendFabric.createXtendFabric({
56
+ performance: window.performance
57
+ });
58
+
59
+ const component = fabric.createComponentFiberInstrumentation('x-alert');
60
+ await component.hydrate(() => hydrateAlert());
61
+ ```
62
+
63
+ Die Messung kann fuer Spezialtests deaktiviert werden:
64
+
65
+ ```js
66
+ const fabric = window.XTendFabric.createXtendFabric({
67
+ markPerformance: false
68
+ });
69
+ ```
70
+
71
+ ## Telemetry Snapshot
72
+
73
+ `createTelemetrySnapshot()` liest `mark` und `measure` Eintraege mit Prefix `xtend.` und normalisiert sie:
74
+
75
+ ```js
76
+ const snapshot = fabric.createTelemetrySnapshot({
77
+ performance: window.performance
78
+ });
79
+
80
+ console.log(snapshot.performance.measurements);
81
+ console.log(snapshot.performance.phaseSummary.hydrate);
82
+ ```
83
+
84
+ Die Snapshot-Sektion enthaelt:
85
+
86
+ - `measurementSchema`
87
+ - `measurementCount`
88
+ - `measurements`
89
+ - `phaseSummary`
90
+ - `entries`
91
+ - `totalDurationMs`
92
+ - `maxDurationMs`
93
+
94
+ ## Gates
95
+
96
+ ```bash
97
+ node scripts/run_xtend_tests.js fabric-performance-measurements --json
98
+ npm run test:fabric-performance
99
+ ```
100
+
101
+ Seit `ER-WP-19` nutzt [Performance Regression](./performance-regression.md) dieselben Measurements fuer lokale deterministische Baselines:
102
+
103
+ ```bash
104
+ node scripts/run_xtend_tests.js performance-regression --json
105
+ npm run test:performance
106
+ ```
@@ -0,0 +1,89 @@
1
+ # Performance Regression
2
+
3
+ - Docs Contract: `xtend.docs.performance-regression.v1`
4
+ - Gate Contract: `xtend.performance.regression-gate.v1`
5
+ - Baseline Contract: `xtend.performance.regression-baseline.v1`
6
+ - Report Schema: `xtend.performance.regression-report.v1`
7
+ - Seit: `ER-WP-19`
8
+
9
+ XTend misst Loader-, Hydration-, Render- und Route-Arbeit bereits als `xtend.performance.measurement.v1`. Das Performance Regression Gate wertet diese Measurements gegen lokale Baselines aus.
10
+
11
+ ## Lokaler Gate
12
+
13
+ ```bash
14
+ node scripts/run_xtend_tests.js performance-regression
15
+ npm run test:performance
16
+ node scripts/run_xtend_tests.js performance-regression --json
17
+ ```
18
+
19
+ Die Suite nutzt:
20
+
21
+ - `tests/performance/performance_regression_suite.js`
22
+ - `tests/performance/baselines/local-performance-baseline.json`
23
+ - Fabric `createTelemetrySnapshot`
24
+ - Budgetwerte aus `fabric/xtend-fabric.js` und `development/XTend-Performance-Budget-Matrix.md`
25
+
26
+ ## Statusmodell
27
+
28
+ | Status | Bedingung | Wirkung |
29
+ |--------|-----------|---------|
30
+ | `pass` | `durationMs <= budgetMs` | keine Aktion |
31
+ | `warn` | `durationMs <= budgetMs * 1.5` | sichtbar im Report |
32
+ | `fail` | `durationMs > budgetMs * 1.5` | Suite schlaegt fehl |
33
+
34
+ Warnungen sind Kalibrierungssignale. Harte `fail`-Eintraege sind Regressionen und erscheinen im Runner-Report unter `failures`. Seit `WP-E13-06` muss die lokale RC1-Baseline `warnCount === 0` melden; die fruehere Hydration-Warnung ist ueber [Hydration Performance Closure](./hydration-performance-closure.md) owner-frei geschlossen.
35
+
36
+ ## Baseline
37
+
38
+ Die erste Baseline ist bewusst deterministisch und lokal:
39
+
40
+ ```text
41
+ tests/performance/baselines/local-performance-baseline.json
42
+ ```
43
+
44
+ Sie deckt mindestens diese Messpunkte ab:
45
+
46
+ - `xtend.loader.manifest`
47
+ - `xtend.loader.module`
48
+ - `xtend.component.define`
49
+ - `xtend.component.mount`
50
+ - `xtend.component.hydrate`
51
+ - `xtend.component.render`
52
+ - `xtend.component.update`
53
+ - `xtend.event.handler`
54
+ - `xtend.route.navigate`
55
+ - `xtend.route.render`
56
+ - `xtend.diagnostics.snapshot`
57
+
58
+ ## JSON-Report
59
+
60
+ Der eingebettete Regression-Report nutzt:
61
+
62
+ ```text
63
+ xtend.performance.regression-report.v1
64
+ ```
65
+
66
+ Wichtige Felder:
67
+
68
+ - `measurementSchema`
69
+ - `measurementCount`
70
+ - `passCount`
71
+ - `warnCount`
72
+ - `failCount`
73
+ - `warnings`
74
+ - `failures`
75
+ - `phaseSummary`
76
+
77
+ `phaseSummary` macht sichtbar, welche Phase Budgetdruck erzeugt, ohne dass jede Komponente einen eigenen Browser-Test braucht.
78
+
79
+ ## Beziehung zu Measurements
80
+
81
+ Das Regression Gate baut auf [Performance Measurements](./performance-measurements.md) auf. Es fuehrt keine zweite Messlogik ein, sondern nimmt Fabric Telemetry Snapshots als Quelle.
82
+
83
+ ## RC1 Closure
84
+
85
+ `WP-E13-06` hat `xtend.component.hydrate` von `36ms / 32ms` auf `31ms / 32ms` kalibriert, ohne das Budget anzuheben. Die Failure-Fixture bleibt aktiv und belegt weiterhin, dass echte Budgetverletzungen hart fehlschlagen.
86
+
87
+ ## Handoff
88
+
89
+ `ER-WP-20` nutzt diese Reports fuer Lazy/Idle/Visible Hydration Policies. `ER-WP-21` hat daraus die praktischen Regeln fuer Komponentenautoren in [Performance fuer Komponentenautoren](./performance.md) abgeleitet.
@@ -0,0 +1,94 @@
1
+ # Performance fuer Komponentenautoren
2
+
3
+ - Docs Contract: `xtend.docs.performance-authoring.v1`
4
+ - Scaffold Policy: `xtend.scaffold.performance-policy.v1`
5
+ - Component Profile Contract: `xtend.performance.component-profile.v1`
6
+ - Budget Matrix: `xtend.performance.budget-matrix.v1`
7
+ - Measurement Contract: `xtend.performance.measurement.v1`
8
+ - Regression Gate: `xtend.performance.regression-gate.v1`
9
+ - Hydration Policy: `xtend.fabric.hydration-policy.v1`
10
+ - Seit: `ER-WP-21`
11
+
12
+ Dieses Dokument uebersetzt die Performance-Budget-Matrix in konkrete Autorenregeln. Neue Komponenten sollen nicht erst nachtraeglich optimiert werden, sondern ihr Performance-Profil bereits im Scaffold, in der Component-Doku, in Fabric Measurements und im lokalen Regression Gate sichtbar machen.
13
+
14
+ ## Performance-Profil
15
+
16
+ Jede neue Scaffold-Komponente erhaelt `xtendScaffoldPerformanceProfile` im Source, `performanceProfile` im Manifest-Patch-Plan und die Docs-Abschnitte `Performance-Profil` sowie `Performance-Regeln`. Diese Artefakte referenzieren dieselbe Policy `xtend.scaffold.performance-policy.v1`.
17
+
18
+ | Profil | Lane | Budgetklasse | Hydration | Kritische Phasen |
19
+ |--------|------|--------------|-----------|------------------|
20
+ | `display` | `visible` | `interactive` | `visible` | load, mount, hydrate, render, update |
21
+ | `interactive` | `user-blocking` | `critical` | `visible` | hydrate, render, update, event |
22
+ | `overlay` | `user-blocking` | `critical` | `visible` | mount, hydrate, render, event |
23
+ | `routing` | `transition` | `interactive` | `visible` | route navigate, route render, hydrate, event |
24
+ | `form` | `user-blocking` | `critical` | `visible` | hydrate, update, event |
25
+ | `media` | `visible` | `interactive` | `visible-or-idle` | mount, hydrate, render, event |
26
+ | `stateful` | `user-blocking` | `critical` | `visible` | update, event, state sync |
27
+ | `feedback` | `a11y` | `critical` | `visible` | render, update, event, announcement |
28
+ | `theme` | `visible` | `interactive` | `visible` | render, update, theme apply |
29
+
30
+ Komponenten mit mehreren Profilen verwenden die strengste Budgetklasse und die hoechstpriorisierte Lane. `feedback` darf eine eigene `a11y` Fiber nutzen; `media` darf nicht sichtbare Arbeit auf `idle` verschieben.
31
+
32
+ ## DOM-Regeln
33
+
34
+ - DOM-Suchen muessen auf `this.shadowRoot`, den Host oder einen bekannten Container begrenzt sein.
35
+ - `document.querySelectorAll` und globale DOM-Loops brauchen eine begruendete Ausnahme und ein Budget.
36
+ - Statische Referenzen duerfen gecacht werden; dynamische Node-Listen duerfen nicht unkontrolliert wachsen.
37
+ - Wiederholte Voll-Renderings sind nur fuer kleine, statische Komponenten akzeptabel. Groessere Komponenten muessen gezielt updaten.
38
+ - `MutationObserver`, `ResizeObserver`, Timer und Subscriptions muessen in `disconnectedCallback` bereinigt werden.
39
+
40
+ ## Event-Regeln
41
+
42
+ - `interactive`, `overlay` und `form` behandeln User Events als `critical`; der synchrone Handler-Zielwert ist 16 ms.
43
+ - Handler duerfen keine synchronen Netzwerk-, Storage- oder grossen DOM-Scan-Arbeiten ausfuehren.
44
+ - High-frequency Events wie `input`, `scroll`, `pointermove` und `resize` muessen gedrosselt, zusammengefasst oder auf `requestAnimationFrame` gelegt werden.
45
+ - Event-Daten sollen in kanonischen State oder lokale Render-Caches ueberfuehrt werden; abgeleitete DOM-Arbeit erfolgt danach gebuendelt.
46
+
47
+ ## Shadow DOM
48
+
49
+ - Styles sollten statisch bleiben. Wiederholtes Einfuegen identischer `<style>` Bloecke im Update-Pfad ist ein Review-Signal.
50
+ - Wo moeglich werden CSS Custom Properties und Parts genutzt, damit Theme-Arbeit nicht ueber JS-Layout-Loops laeuft.
51
+ - `slotchange` muss budgetiert sein und darf keine unbeschraenkten DOM-Scans ausloesen.
52
+ - Shadow-DOM-Updates sollen kleine Teilbaeume austauschen, statt bei jeder State-Aenderung die gesamte Oberflaeche neu zu schreiben.
53
+
54
+ ## Layout und Animation
55
+
56
+ - Layout-Reads passieren vor Layout-Writes. Gemischte Read/Write-Schleifen in derselben Sync-Phase sind verboten.
57
+ - Animationen sollen `transform` und `opacity` bevorzugen und `prefers-reduced-motion` respektieren.
58
+ - Messbare sichtbare Arbeit muss mit `componentRef`, `fiberId`, `lane`, `phase` und `durationMs` korrelierbar sein.
59
+ - Nicht sichtbare Arbeit nutzt `idle`, `background` oder `diagnostics`; sie darf keine `user-blocking` Lane beanspruchen.
60
+
61
+ ## Hydration
62
+
63
+ `visible` ist der Default fuer sichtbare UI. `idle` ist fuer nicht sofort benoetigte, aber bald erwartete Arbeit geeignet. `lazy` ist fuer Arbeit reserviert, die erst bei Bedarf oder Sichtbarkeit aktiviert wird. Nicht sichtbare Hydration darf nicht als `user-blocking` geplant werden.
64
+
65
+ Die operative Policy steht in [Hydration Policies](./hydration-policies.md). Die Messpunkte und Gate-Auswertung stehen in [Performance Measurements](./performance-measurements.md) und [Performance Regression](./performance-regression.md).
66
+
67
+ ## Scaffold-Pflicht
68
+
69
+ Neue Scaffold-Ausgaben muessen diese Daten sichtbar machen:
70
+
71
+ - `performanceProfile`
72
+ - `budgetClass`
73
+ - `lane`
74
+ - `hydrationPolicy`
75
+ - `criticalMeasurements`
76
+ - `idleOrBackgroundAllowed`
77
+ - `requiresA11yFiber`
78
+
79
+ Die Policy ist in `xtend-builder/scaffold.config.js` unter `performance` hinterlegt. Der Generator spiegelt sie in `xtend-builder/performance/component-performance-profile.js`, den Component-Templates und dem Manifest-Patch-Plan.
80
+
81
+ ## Gates
82
+
83
+ ```bash
84
+ node scripts/run_xtend_tests.js fabric-performance-measurements --json
85
+ node scripts/run_xtend_tests.js performance-regression --json
86
+ node scripts/run_xtend_tests.js hydration-policy --json
87
+ node scripts/run_xtend_tests.js references --json
88
+ ```
89
+
90
+ `performance-regression` darf lokale Warnungen erzeugen, wenn ein deterministischer Fixture-Pfad sein Budget ueberschreitet. Harte Failures bleiben fuer priorisierte Kernpfade und dokumentierte Budgetverletzungen reserviert.
91
+
92
+ ## Handoff
93
+
94
+ `ER-WP-25` ist abgeschlossen und verbindet Screenreader-Signale mit Performance-Fibers und der `a11y` Lane. `ER-WP-26` ist ebenfalls abgeschlossen: Reduced-Motion- und High-Contrast-Regeln nutzen dieselbe Profil-, Lane- und Gate-Sprache ueber `xtend.a11y.motion-contrast-policy.v1`.
@@ -0,0 +1,17 @@
1
+ # XTend Scaffold Previews
2
+
3
+ - Status: Scaffold-Preview-Konvention
4
+ - Referenz-Gate: `node scripts/run_xtend_tests.js references`
5
+ - Generator: `node xtend-builder/scaffold.js preview --tag x-example --profile display --feature state --json`
6
+
7
+ ## Zweck
8
+
9
+ Dieses Verzeichnis ist fuer gescaffoldete Component-Preview-Plaene reserviert. Ein Preview-Plan ist eine lokale Markdown-Referenz, die generierte Component-Quellen, Docs, Fixture, Typen und Manifest-Patch-Ausgabe mit der Dokumentations- und Demo-Referenzregistrierung verbindet.
10
+
11
+ ## Mindestvertrag
12
+
13
+ - Preview-Pfade folgen `docs/previews/<name>.preview.md`.
14
+ - Preview-Plaene muessen in `development/XTend-Dokumentations-und-Demo-Referenzpfade.md` gelistet sein, bevor sie automatisierte Referenzen werden.
15
+ - Preview-Plaene muessen repo-lokale Component-, Fixture- und Manifest-Pfade verwenden.
16
+ - Externe Netzwerkabhaengigkeiten sind fuer automatisierte Scaffold-Previews nicht erlaubt.
17
+ - Produktive Preview-Schreibvorgaenge bleiben review-first, bis ein spaeteres Paket einen Schreibmodus einfuehrt.
@@ -0,0 +1,40 @@
1
+ # PROD Browser CSP Smokes
2
+
3
+ - Contract: `xtend.epic13.prod-browser-csp-smoke.v1`
4
+ - Fixture Contract: `xtend.epic13.prod-browser-csp-smoke-fixture.v1`
5
+ - Report: `xtend.epic13.prod-browser-csp-smoke-report.v1`
6
+ - Workpackage: `WP-E13-07`
7
+ - Lokaler Gate: `node scripts/run_xtend_tests.js epic13-prod-browser-csp-smoke --json`
8
+ - Dev Server: `npm run dev:local:csp`
9
+ - Fixture: `tests/browser/fixtures/epic13-prod-csp-smoke.html`
10
+ - Publish Boundary: `private-until-release-owner-acceptance`
11
+
12
+ ## Zweck
13
+
14
+ Der PROD Browser CSP Smoke prueft den XTend-Loader unter einer PROD-aehnlichen Content Security Policy, ohne externe Netzwerke oder CDN-Fallbacks zu nutzen.
15
+
16
+ Die Fixture nutzt:
17
+
18
+ - eine `nonce` fuer alle Inline- und Loader-Skripte
19
+ - ein same-origin Manifest unter `/tests/browser/fixtures/components/manifest.json`
20
+ - den root-lokalen Loader `/xtend-loader.js`
21
+ - keine `importmap`
22
+ - keine `https://cdn.ccs-networks.de/xtend` Referenz
23
+ - XState und XRouter als minimale Hydration-Linie
24
+
25
+ ## Lokale Nutzung
26
+
27
+ ```bash
28
+ npm run test:epic13-prod-browser-csp-smoke
29
+ npm run dev:local:csp
30
+ ```
31
+
32
+ Der lokale Server setzt zusaetzlich zum CSP Meta der Fixture einen `content-security-policy` Header. Damit kann die HTML-Datei sowohl statisch als auch servernah geprueft werden.
33
+
34
+ ## Grenzen
35
+
36
+ Dieser Smoke ist eine PROD-nahe Boot- und Policy-Vorbereitung. Die Trusted-DOM-Pruefung fuer Parsedown, RMT HTML-Fragmente und untrusted Content liegt seit `WP-E13-11` unter [Trusted DOM Boundary Browser Proof](./trusted-dom-boundary-browser-proof.md) und `xtend.epic13.trusted-dom-boundary.v1`.
37
+
38
+ ## Handoff
39
+
40
+ `WP-E13-07` ist abgeschlossen. `WP-E13-08` hat [Visual Owner Artifacts](./visual-owner-artifacts.md) normalisiert. `WP-E13-09` ist ready und buendelt als naechstes die RMT-first App Production Readiness.