@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,406 @@
1
+ # Drittanbieter Design Authoring
2
+
3
+ Docs Contract: `xtend.enterprise.third-party-authoring-guide.v1`
4
+
5
+ Workpackage: `ECH-WP-11`
6
+
7
+ Lokaler Gate:
8
+
9
+ ```bash
10
+ node scripts/run_xtend_tests.js enterprise-third-party-authoring-guide --json
11
+ npm run test:enterprise-third-party-authoring-guide
12
+ ```
13
+
14
+ Dieser Guide richtet sich an Teams, die XTend-Komponenten in ein eigenes Corporate Design, White-Label-Produkt oder internes Enterprise Designsystem einbinden wollen. Der Zielpfad ist: XTend bleibt optisch hochwertig und eigenstaendig, aber alle sichtbaren Entscheidungen laufen ueber XTend.css, XTheme, CSS Parts, Slots, Attribute oder Icon Packs. Forks von Komponenten sind kein regulaerer Skinning-Pfad.
15
+
16
+ ## Prinzipien
17
+
18
+ 1. Corporate Tokens zuerst definieren, dann Komponententokens ableiten.
19
+ 2. XTend Signature UI als Qualitaetsbasis behalten, aber Markenfarbe, Typografie, Radius, Elevation und Dichte bewusst ersetzen.
20
+ 3. Shadow-DOM-Interna nicht selektieren. Skinning passiert ueber CSS Custom Properties und `::part(...)`.
21
+ 4. Light, Dark, High Contrast, Forced Colors, Reduced Motion, Comfortable, Compact und Dense sind Pflichtvarianten.
22
+ 5. Controls verwenden `x-icon`, Inline-SVG oder tokenisierte CSS-Grafik, nie sichtbare Textzeichen.
23
+ 6. Status, Active, Error, Disabled und Focus duerfen nicht nur ueber Farbe kommunizieren.
24
+
25
+ ## XTend.css Override Patterns
26
+
27
+ Corporate Overrides gehoeren in eine eigene Cascade Layer. Dadurch bleiben Host-Tokens nachvollziehbar, und Produktteams koennen XTend-Updates einspielen, ohne Shadow-DOM-Regeln zu kopieren.
28
+
29
+ ```css
30
+ @layer xtend-customer {
31
+ :root {
32
+ --acme-ink: #17231f;
33
+ --acme-muted: #5f6b64;
34
+ --acme-canvas: #f7f4ee;
35
+ --acme-panel: #fffdf8;
36
+ --acme-action: #0e6e8f;
37
+ --acme-action-strong: #173f35;
38
+ --acme-warm: #b56b35;
39
+ --acme-edge: rgba(23, 35, 31, 0.22);
40
+ --acme-radius-control: 0.35rem;
41
+ --acme-radius-panel: 0.55rem;
42
+ --acme-focus: 3px solid var(--acme-warm);
43
+ --acme-font-body: "Aptos", "Segoe UI", system-ui, sans-serif;
44
+ --acme-font-display: "Aptos Display", "Aptos", "Segoe UI", system-ui, sans-serif;
45
+ --acme-font-code: "Cascadia Code", "SFMono-Regular", Consolas, monospace;
46
+
47
+ --xtend-surface: var(--acme-canvas);
48
+ --xtend-surface-muted: var(--acme-panel);
49
+ --xtend-text: var(--acme-ink);
50
+ --xtend-color-primary: var(--acme-action);
51
+ --xtend-border-color: var(--acme-edge);
52
+ --xtend-focus-outline: var(--acme-focus);
53
+ --xtend-radius: var(--acme-radius-panel);
54
+ --xtend-font-family: var(--acme-font-body);
55
+ --xtend-font-family-body: var(--acme-font-body);
56
+ --xtend-font-family-heading: var(--acme-font-display);
57
+ --xtend-font-family-control: var(--acme-font-body);
58
+ --xtend-font-family-code: var(--acme-font-code);
59
+ }
60
+
61
+ :root[data-theme="dark"] {
62
+ --acme-ink: #f6f1e8;
63
+ --acme-muted: #d4c9b8;
64
+ --acme-canvas: #121916;
65
+ --acme-panel: #1c2823;
66
+ --acme-action: #8bd4e6;
67
+ --acme-action-strong: #b56b35;
68
+ --acme-edge: rgba(246, 241, 232, 0.2);
69
+ }
70
+
71
+ :root[data-theme="high-contrast"] {
72
+ --acme-ink: #ffffff;
73
+ --acme-muted: #ffffff;
74
+ --acme-canvas: #000000;
75
+ --acme-panel: #000000;
76
+ --acme-action: #ffff00;
77
+ --acme-action-strong: #ffffff;
78
+ --acme-edge: #ffffff;
79
+ --acme-focus: 3px solid #ffff00;
80
+ }
81
+
82
+ :root[data-theme="forced-colors"] {
83
+ --acme-ink: CanvasText;
84
+ --acme-muted: CanvasText;
85
+ --acme-canvas: Canvas;
86
+ --acme-panel: Canvas;
87
+ --acme-action: Highlight;
88
+ --acme-action-strong: Highlight;
89
+ --acme-edge: CanvasText;
90
+ --acme-focus: 2px solid Highlight;
91
+ }
92
+ }
93
+ ```
94
+
95
+ ## XTheme Token Bridge
96
+
97
+ `x-theme` und `window.XTend.theme` sind der Runtime-Pfad fuer Theme-Wechsel, Density, Reduced Motion und Forced Colors. Ein Corporate Theme sollte dieselben Werte setzen wie XTend.css, damit statische CSS-Overrides und Runtime-Wechsel identisch bleiben.
98
+
99
+ ```js
100
+ window.XTend.theme.registerTheme('acme-enterprise', {
101
+ '--xtend-surface-page': '#f7f4ee',
102
+ '--xtend-surface-panel': '#fffdf8',
103
+ '--xtend-surface-raised': '#ffffff',
104
+ '--xtend-text-primary': '#17231f',
105
+ '--xtend-text-muted': '#5f6b64',
106
+ '--xtend-color-action': '#0e6e8f',
107
+ '--xtend-color-action-hover': '#173f35',
108
+ '--xtend-text-on-action': '#fffaf0',
109
+ '--xtend-border-subtle': 'rgba(23, 35, 31, 0.22)',
110
+ '--xtend-radius-control': '0.35rem',
111
+ '--xtend-radius-panel': '0.55rem',
112
+ '--xtend-space-control-gap': '0.55rem',
113
+ '--xtend-elevation-2': '0 14px 34px rgba(23, 35, 31, 0.14)',
114
+ '--xtend-font-family-body': '"Aptos", "Segoe UI", system-ui, sans-serif',
115
+ '--xtend-font-family-heading': '"Aptos Display", "Aptos", "Segoe UI", system-ui, sans-serif',
116
+ '--xtend-header-surface': 'var(--xtend-surface-panel)',
117
+ '--xtend-header-menu-surface': 'var(--xtend-surface-raised)',
118
+ '--xtend-button-primary-surface': 'var(--xtend-color-action)',
119
+ '--xtend-button-primary-text': 'var(--xtend-text-on-action)',
120
+ '--xtend-menu-item-hover-surface': 'rgba(181, 107, 53, 0.14)',
121
+ '--xtend-drawer-overlay-surface': 'rgba(23, 35, 31, 0.45)',
122
+ '--xtend-modal-overlay-surface': 'rgba(23, 35, 31, 0.45)',
123
+ '--xtend-icon-color': 'currentColor'
124
+ });
125
+
126
+ window.XTend.theme.setTheme('acme-enterprise');
127
+ window.XTend.theme.setDensity('compact');
128
+ ```
129
+
130
+ Pflichtmodi:
131
+
132
+ | Modus | Regel |
133
+ |-------|-------|
134
+ | `light` | Text, Icons, Controls und Focus muessen auf hellen Flaechen lesbar bleiben |
135
+ | `dark` | keine hart gesetzten Light-Flaechen ohne dunklen Text-Fallback |
136
+ | `high-contrast` | aktive und fehlerhafte Zustaende brauchen Form, Border oder Marker |
137
+ | `forced-colors` | Systemfarben wie `Canvas`, `CanvasText`, `Highlight`, `HighlightText`, `ButtonFace`, `ButtonText` verwenden |
138
+
139
+ Density-Presets:
140
+
141
+ | Density | Einsatz |
142
+ |---------|---------|
143
+ | `comfortable` | Default fuer gemischte Enterprise-Shells |
144
+ | `compact` | Toolbars, Datendichte, Workbench-Shells |
145
+ | `dense` | Navigation, Filterleisten, Tabellenumfelder |
146
+
147
+ ## CSS Parts
148
+
149
+ CSS Parts sind Skinning API. Verwende sie fuer Zonen, nicht fuer private Shadow-DOM-Strukturen.
150
+
151
+ ```css
152
+ @layer xtend-customer {
153
+ x-header::part(root) {
154
+ border-block-end: 1px solid var(--acme-edge);
155
+ }
156
+
157
+ x-header::part(menu-surface),
158
+ x-drawer::part(surface),
159
+ x-modal::part(surface),
160
+ x-dialog::part(surface),
161
+ x-popover::part(surface) {
162
+ border: 1px solid var(--acme-edge);
163
+ border-radius: var(--acme-radius-panel);
164
+ }
165
+
166
+ x-button::part(control),
167
+ x-menu::part(item) {
168
+ border-radius: var(--acme-radius-control);
169
+ }
170
+
171
+ x-icon::part(icon),
172
+ x-header::part(trigger-icon) {
173
+ color: currentColor;
174
+ }
175
+ }
176
+ ```
177
+
178
+ Regel: Ein `::part(...)` darf Corporate-Optik setzen, aber keine semantische Bedienbarkeit entfernen. Focus, Disabled, Busy, Active und Error muessen erhalten bleiben.
179
+
180
+ ## Icon Pack Registrierung
181
+
182
+ Produkticons gehoeren in ein lokales Icon Pack. Remote-CDNs sind kein XTend-Default-Pfad.
183
+
184
+ ```js
185
+ window.XTend.icons.register({
186
+ id: 'acme',
187
+ label: 'Acme Enterprise Icons',
188
+ cdnAllowed: false,
189
+ icons: {
190
+ product: {
191
+ aliases: ['brand-mark'],
192
+ nodes: [
193
+ { tag: 'path', attrs: { d: 'M12 3 21 8v8l-9 5-9-5V8Z' } }
194
+ ]
195
+ },
196
+ command: {
197
+ nodes: [
198
+ { tag: 'path', attrs: { d: 'M5 7h14M5 12h14M5 17h14' } }
199
+ ]
200
+ }
201
+ }
202
+ });
203
+ ```
204
+
205
+ Controls brauchen ein echtes Button-Element, einen zugaenglichen Namen und getrennte Parts fuer Control und Icon. Sichtbare Zeichen wie `X`, `+`, `-`, `...` oder Emoji sind als Control-Grafik nicht erlaubt.
206
+
207
+ ## Layout Modes
208
+
209
+ Layoutvarianten sind Public API. Host-Apps sollen Modi deklarativ setzen und per Token feinjustieren.
210
+
211
+ ```html
212
+ <x-header
213
+ menu-mode="side-panel"
214
+ menu-placement="end"
215
+ menu-modal
216
+ menu-width="min(30rem, 92vw)"
217
+ menu-max-height="calc(100dvh - 2rem)"
218
+ menu-align="stretch">
219
+ <span slot="title">Acme Operations</span>
220
+ <x-link slot="nav" href="/overview" aria-current="page">Overview</x-link>
221
+ <x-link slot="nav" href="/control-room">Control Room</x-link>
222
+ </x-header>
223
+ ```
224
+
225
+ `x-header` unterstuetzt `drawer`, `side-panel`, `popover`, `fullscreen` und `inline-main`. Modale Varianten brauchen Escape, Focus Return und bei Focus Trap einen sichtbaren Backdrop. Nicht-modale Varianten duerfen den Hauptinhalt nicht aus dem Lesefluss nehmen.
226
+
227
+ Overlay-nahe Komponenten nutzen gemeinsame Skinning-Zonen:
228
+
229
+ | Komponente | Modi/Variante | Pflichtparts |
230
+ |------------|---------------|--------------|
231
+ | `x-drawer` | Drawer/Overlay | `surface`, `backdrop`, `close`, `content` |
232
+ | `x-side-panel` | docked, pinned, overlay, collapsed | `surface`, `backdrop`, `close`, `content` |
233
+ | `x-modal` | modal overlay | `surface`, `backdrop`, `close`, `content` |
234
+ | `x-dialog` | modal dialog | `surface`, `backdrop`, `close`, `content` |
235
+ | `x-popover` | non-modal oder `modal` | `surface`, `backdrop`, `close`, `content` |
236
+
237
+ ## A11y-Dos and Donts
238
+
239
+ | Do | Dont |
240
+ |----|------|
241
+ | sichtbaren `focus-visible` Ring ueber Token erhalten | Fokus durch `outline: none` ohne Ersatz entfernen |
242
+ | `prefers-reduced-motion` bis in Overlay- und Feedback-Komponenten respektieren | Motion nur in Light Mode testen |
243
+ | `forced-colors` mit `Canvas`, `CanvasText`, `Highlight` und `HighlightText` pruefen | Markenfarben in Forced Colors erzwingen |
244
+ | Active, Selected, Error und Disabled nicht nur ueber Farbe darstellen | Status nur durch Rot/Gruen kommunizieren |
245
+ | Long Labels mit `overflow-wrap` und stabiler Control-Hoehe absichern | Text in Buttons, Tabs oder Menues clippen |
246
+ | Icon Controls mit `aria-label`, `part="... control"` und `part="... icon"` authoren | sichtbare Textglyphen als Close/Menu/Disclosure verwenden |
247
+
248
+ Status- und Routeninformationen muessen in jedem Theme lesbar bleiben und nicht nur ueber Farbe kommunizieren. Nutze Border, Marker, Unterstreichung, Icon, Text oder Form als zweites Signal.
249
+
250
+ ## Vollstaendiges Fremdtheme-Beispiel
251
+
252
+ Dieses Beispiel kombiniert XTend.css, XTheme, CSS Parts, Icon Pack, Header Mode, Density und A11y-Modi. Es ist bewusst nicht blau-generisch: die Palette mischt Tinte, warmes Panel, kuehles Action-Blau, tiefes Gruen und Kupfer-Akzent.
253
+
254
+ ```html
255
+ <html data-theme="light" data-xtend-density="compact">
256
+ <head>
257
+ <link rel="stylesheet" href="/xtend.css">
258
+ <meta name="xtend-preload" content="x-theme,x-header,x-link,x-button,x-icon">
259
+ <style>
260
+ @layer xtend-customer {
261
+ :root {
262
+ --acme-ink: #17231f;
263
+ --acme-canvas: #f7f4ee;
264
+ --acme-panel: #fffdf8;
265
+ --acme-action: #0e6e8f;
266
+ --acme-action-strong: #173f35;
267
+ --acme-warm: #b56b35;
268
+ --acme-edge: rgba(23, 35, 31, 0.22);
269
+ --acme-focus: 3px solid var(--acme-warm);
270
+ --acme-font-body: "Aptos", "Segoe UI", system-ui, sans-serif;
271
+ --acme-font-display: "Aptos Display", "Aptos", "Segoe UI", system-ui, sans-serif;
272
+
273
+ --xtend-surface: var(--acme-canvas);
274
+ --xtend-surface-muted: var(--acme-panel);
275
+ --xtend-text: var(--acme-ink);
276
+ --xtend-border-color: var(--acme-edge);
277
+ --xtend-color-primary: var(--acme-action);
278
+ --xtend-focus-outline: var(--acme-focus);
279
+ --xtend-font-family-body: var(--acme-font-body);
280
+ --xtend-font-family-heading: var(--acme-font-display);
281
+ --xtend-header-surface: var(--acme-panel);
282
+ --xtend-header-menu-surface: #ffffff;
283
+ --xtend-header-menu-backdrop: rgba(23, 35, 31, 0.45);
284
+ --xtend-button-primary-surface: var(--acme-action);
285
+ --xtend-button-primary-text: #fffaf0;
286
+ --xtend-menu-item-hover-surface: rgba(181, 107, 53, 0.14);
287
+ --xtend-nav-current-indicator: var(--acme-warm);
288
+ --xtend-overlay-surface: #ffffff;
289
+ --xtend-overlay-text: var(--acme-ink);
290
+ --xtend-overlay-backdrop: rgba(23, 35, 31, 0.45);
291
+ }
292
+
293
+ :root[data-theme="dark"] {
294
+ --acme-ink: #f6f1e8;
295
+ --acme-canvas: #121916;
296
+ --acme-panel: #1c2823;
297
+ --acme-action: #8bd4e6;
298
+ --acme-action-strong: #b56b35;
299
+ --acme-edge: rgba(246, 241, 232, 0.2);
300
+ --xtend-button-primary-text: #121916;
301
+ }
302
+
303
+ :root[data-theme="forced-colors"] {
304
+ --acme-ink: CanvasText;
305
+ --acme-canvas: Canvas;
306
+ --acme-panel: Canvas;
307
+ --acme-action: Highlight;
308
+ --acme-action-strong: Highlight;
309
+ --acme-warm: Highlight;
310
+ --acme-edge: CanvasText;
311
+ --xtend-button-primary-text: HighlightText;
312
+ --xtend-overlay-backdrop: Canvas;
313
+ }
314
+
315
+ @media (prefers-reduced-motion: reduce) {
316
+ :root {
317
+ --xtend-motion-duration-fast: 0ms;
318
+ --xtend-motion-duration-base: 0ms;
319
+ }
320
+ }
321
+
322
+ x-header::part(root),
323
+ x-modal::part(surface),
324
+ x-drawer::part(surface) {
325
+ border: 1px solid var(--acme-edge);
326
+ }
327
+
328
+ x-header::part(trigger-icon),
329
+ x-button::part(icon),
330
+ x-menu::part(disclosure-icon) {
331
+ color: currentColor;
332
+ }
333
+ }
334
+ </style>
335
+ <script type="module" src="/xtend-loader.js" data-manifest="/components/manifest.json"></script>
336
+ </head>
337
+ <body>
338
+ <x-header menu-mode="side-panel" menu-placement="end" menu-modal>
339
+ <span slot="title">Acme Operations</span>
340
+ <x-link slot="nav" href="/overview" aria-current="page">Overview</x-link>
341
+ <x-link slot="nav" href="/reports">Reports</x-link>
342
+ <x-button slot="actions" variant="primary">
343
+ <x-icon pack="acme" name="command" decorative></x-icon>
344
+ Command
345
+ </x-button>
346
+ </x-header>
347
+ </body>
348
+ </html>
349
+ ```
350
+
351
+ ## P0 Token-/Part-Referenz
352
+
353
+ Jede P0-Komponente muss in diesem Guide eine Token-/Part-Referenz haben. Die Detailtabellen bleiben in den Komponentendokumenten, damit sie neben Attributen, Slots, Events und A11y-Regeln gepflegt werden.
354
+
355
+ | Komponente | Doku | Alias Prefix | Token-/Part-Tabelle | Pflichtparts |
356
+ |------------|------|--------------|---------------------|--------------|
357
+ | `x-theme` | [xtheme](./components/xtheme.md) | `--xtend-theme-` | `Zentrale XTend-Tokens` / [Design Tokens](./design-tokens.md) | `root` |
358
+ | `x-header` | [xheader](./components/xheader.md) | `--xtend-header-` | `ECH-WP-07 Token-Tabelle und signatureDesign`, `ECH-WP-09 Token-Tabelle und Navigation States` | `root`, `brand`, `trigger`, `trigger-icon`, `menu`, `menu-surface`, `backdrop` |
359
+ | `x-icon` | [xicon](./components/xicon.md) | `--xtend-icon-` | `Styling & Theming`, `ECH-WP-04 Control-Regel` | `root`, `control`, `icon` |
360
+ | `x-button` | [xbutton](./components/xbutton.md) | `--xtend-button-` | `Styling & Theming` | `root`, `control`, `label`, `icon` |
361
+ | `x-menu` | [xmenu](./components/xmenu.md) | `--xtend-menu-` | `ECH-WP-09 Token-Tabelle und Navigation States` | `root`, `nav`, `item`, `disclosure-icon` |
362
+ | `x-drawer` | [xdrawer](./components/xdrawer.md) | `--xtend-drawer-` | `ECH-WP-06 Overlay-Paritaet` | `root`, `surface`, `backdrop`, `close`, `content` |
363
+ | `x-side-panel` | [xsidepanel](./components/xsidepanel.md) | `--xtend-side-panel-` | `ECH-WP-06 Overlay-Paritaet` | `root`, `surface`, `backdrop`, `close`, `content` |
364
+ | `x-modal` | [xmodal](./components/xmodal.md) | `--xtend-modal-` | `ECH-WP-06 Overlay-Paritaet` | `root`, `surface`, `backdrop`, `close`, `content` |
365
+ | `x-dialog` | [xdialog](./components/xdialog.md) | `--xtend-dialog-` | `ECH-WP-06 Overlay-Paritaet` | `root`, `surface`, `backdrop`, `close`, `content` |
366
+ | `x-popover` | [xpopover](./components/xpopover.md) | `--xtend-popover-` | `ECH-WP-06 Overlay-Paritaet` | `root`, `surface`, `backdrop`, `close`, `content` |
367
+ | `x-toast` | [xtoast](./components/xtoast.md) | `--xtend-toast-` | `Styling & Theming` | `root`, `surface`, `content`, `close`, `icon` |
368
+
369
+ ## Migration von Legacy Token-Namen
370
+
371
+ Legacy Tokens bleiben als Bridge sichtbar, sollen in neuen Corporate Themes aber auf die normalisierte Alias-Schicht gemappt werden.
372
+
373
+ | Legacy Token | Neuer Alias |
374
+ |--------------|-------------|
375
+ | `--xtend-glass-bg` | `--xtend-surface-overlay` |
376
+ | `--xtend-shadow` | `--xtend-elevation-2` |
377
+ | `--xtend-radius` | `--xtend-radius-md` |
378
+ | `--xtend-font-family` | `--xtend-font-family-body` |
379
+ | `--xtend-overlay-bg` | `--xtend-surface-overlay` |
380
+ | `--xtend-border-color` | `--xtend-border-subtle` |
381
+ | `--header-bg` | `--xtend-header-surface` |
382
+ | `--header-fg` | `--xtend-header-text` |
383
+ | `--drawer-bg` | `--xtend-drawer-surface` |
384
+ | `--drawer-color` | `--xtend-drawer-text` |
385
+ | `--button-text-color` | `--xtend-button-text` |
386
+
387
+ Migrationsregel: Alte Namen duerfen als Fallback bleiben, aber neue Dokumentation, neue Themes und neue Komponenten muessen die `--xtend-*` Alias-Kette fuehren. Entfernen oder Umbenennen von Public Parts und Tokens braucht Migration Notes.
388
+
389
+ ## Abnahme fuer Corporate Themes
390
+
391
+ Vor der Uebergabe an ein Host-Designsystem sollten diese Gates laufen:
392
+
393
+ ```bash
394
+ node scripts/run_xtend_tests.js enterprise-third-party-authoring-guide --json
395
+ node scripts/run_xtend_tests.js xtheme-token-alias-layer --json
396
+ node scripts/run_xtend_tests.js enterprise-component-style-audit --json
397
+ node scripts/run_xtend_tests.js enterprise-visual-dom-snapshot-matrix --json
398
+ node scripts/run_xtend_tests.js enterprise-component-flex-release-handoff --json
399
+ node scripts/run_xtend_tests.js component-shell-theme-matrix --json
400
+ ```
401
+
402
+ Die Abnahme ist erst belastbar, wenn Light, Dark, High Contrast, Forced Colors, Reduced Motion, Comfortable, Compact und Dense im selben Corporate Theme geprueft wurden.
403
+
404
+ ## Release Handoff
405
+
406
+ Ab `ECH-WP-12` fuehrt [Enterprise Component Flex Release Handoff](./enterprise-component-flex-release-handoff.md) den Contract `xtend.enterprise.component-flex-release-handoff.v1`. Er verbindet SemVer-Bewertung, Deprecated Aliases, Migration Notes, Release Checklist und Adoption Risiken fuer Corporate Themes. Der lokale Gate `node scripts/run_xtend_tests.js enterprise-component-flex-release-handoff --json` muss vor Release Owner Review gruen sein; Publishing bleibt bis dahin durch `private-until-release-owner-acceptance` blockiert.
@@ -0,0 +1,32 @@
1
+ # Trusted DOM Boundary Browser Proof
2
+
3
+ - Contract: `xtend.epic13.trusted-dom-boundary.v1`
4
+ - Fixture: `tests/browser/fixtures/epic13-trusted-dom-boundary-smoke.html`
5
+ - Gate: `node scripts/run_xtend_tests.js epic13-trusted-dom-boundary --json`
6
+
7
+ ## Ziel
8
+
9
+ Dieser RC1-Gate beweist, dass Parsedown HTML und RMT `htmlFragment` nicht ungeprueft in die DOM-Sinks der Docs-App laufen. Die App rendert weiter Shell-first ueber RMT, aber der Host Adapter sanitized Content, bevor er in den Content-Slot geschrieben wird.
10
+
11
+ ## Regeln
12
+
13
+ - `parsedownHtml` braucht `xtend.security.trusted-dom-sanitizer.v1`.
14
+ - RMT `htmlFragment` braucht `xtend.security.sanitizing-boundary.v1`.
15
+ - RMT `dom_descriptor` bleibt der bevorzugte Pfad fuer strukturierte Templates.
16
+ - Der RMT Kernel importiert keinen Sanitizer, kein PHP/Parsedown und keine XTend-Typen.
17
+
18
+ Geblockt werden `script`, `iframe`, Inline-Event-Handler, `javascript:` URLs und `srcdoc`.
19
+
20
+ ## Browsernaher Smoke
21
+
22
+ Die Fixture legt absichtlich feindliche Inhalte in `window.xtendDocsPages` ab und laedt danach `docs/utils/pageloader.js`. Der Smoke prueft, dass:
23
+
24
+ - der Content-Slot `data-rmt-sanitized="true"` traegt
25
+ - `data-rmt-trusted-dom-proof="xtend.epic13.trusted-dom-boundary.v1"` gesetzt ist
26
+ - Script-Elemente, Event-Handler, JavaScript-URLs und `srcdoc` entfernt sind
27
+ - sicherer Parsedown-Text erhalten bleibt
28
+ - die Shell weiterhin Shell-first gerendert wird
29
+
30
+ ## Handoff
31
+
32
+ `WP-E13-11` ist abgeschlossen. `WP-E13-12` ist mit [RC1 Migration Notes](./rc1-migration-notes.md) und `xtend.epic13.rc1-migration-notes-semver.v1` abgeschlossen. `WP-E13-13` ist mit [RC1 Gate Matrix und CI-Handoff](./rc1-gate-matrix-ci-handoff.md) und `xtend.epic13.rc1-gate-matrix-ci-handoff.v1` abgeschlossen.
@@ -0,0 +1,110 @@
1
+ # Trusted DOM und Sanitizing
2
+
3
+ - Contract: `xtend.docs.trusted-dom-sanitizing.v1`
4
+ - Security Policy: `xtend.security.trusted-dom-policy.v1`
5
+ - Sanitizing Boundary: `xtend.security.sanitizing-boundary.v1`
6
+ - Sanitizer Contract: `xtend.security.trusted-dom-sanitizer.v1`
7
+ - Maschinenlesbarer Contract: `security/trusted-dom-policy.js`
8
+
9
+ ## Ziel
10
+
11
+ XTend behandelt dynamisches Markup als eigene Trust Boundary. Das betrifft besonders RMT `html_fragment`, RMT Template Authoring und die Parsedown-basierte Docs-App.
12
+
13
+ Diese Seite beschreibt die Entwicklerregel: Markup wird zuerst klassifiziert, dann in einen passenden DOM-Sink geschrieben. Rohe HTML-Strings duerfen nicht nebenbei ueber `innerHTML` landen.
14
+
15
+ ## Markup-Klassen
16
+
17
+ | Klasse | Quelle | Default |
18
+ |--------|--------|---------|
19
+ | `text` | Labels, Markdown-Text, Body Copy | `textContent` |
20
+ | `attribute` | `aria-label`, `href`, `slot`, `data-*` | validierter `setAttribute` |
21
+ | `structuredTemplate` | RMT `dom_descriptor`, Component Trees | Nodes via `replaceChildren` |
22
+ | `htmlFragment` | RMT `html_fragment` | Sanitizing Boundary |
23
+ | `parsedownHtml` | HTML aus `docs/index.php` / Parsedown | Sanitizing Boundary |
24
+
25
+ ## Erlaubte und eingeschraenkte Sinks
26
+
27
+ Erlaubt:
28
+
29
+ - `textContent`
30
+ - validierter `setAttribute`
31
+ - `classList`
32
+ - `dataset` ohne Secrets und ohne Codewerte
33
+ - `append` und `replaceChildren` mit Nodes
34
+
35
+ Eingeschraenkt:
36
+
37
+ - `innerHTML`
38
+ - `insertAdjacentHTML`
39
+ - `template.innerHTML`
40
+
41
+ Diese eingeschraenkten Sinks brauchen `xtend.security.sanitizing-boundary.v1`.
42
+ Browsernahe Docs-/RMT-Sinks muessen zusaetzlich den Sanitizer Contract `xtend.security.trusted-dom-sanitizer.v1` ausweisen.
43
+
44
+ Verboten im Default:
45
+
46
+ - Inline-Handler wie `onclick`
47
+ - `eval`
48
+ - `new Function`
49
+ - dynamische Script-Tags aus RMT-, Manifest-, Event- oder Docs-Daten
50
+
51
+ ## RMT Templates
52
+
53
+ Fuer XTendRMT gilt:
54
+
55
+ - `dom_descriptor` ist bevorzugt.
56
+ - `html_fragment` ist erlaubt, aber nur mit Trusted-DOM-Boundary.
57
+ - Events nutzen `actionRef`, `commandName`, `routeRef` oder typed Payloads.
58
+ - Der RMT Kernel plant Records und Diagnostics, aber sanitized kein HTML selbst.
59
+ - Host Adapter besitzen den DOM-Sink.
60
+
61
+ ```json
62
+ {
63
+ "id": "settings.shell",
64
+ "mode": "html_fragment",
65
+ "markup": "<x-card></x-card>",
66
+ "security": {
67
+ "markupClass": "htmlFragment",
68
+ "trustBoundary": "xtend.security.sanitizing-boundary.v1",
69
+ "sink": "trustedDomBoundary"
70
+ }
71
+ }
72
+ ```
73
+
74
+ ## Parsedown Docs-App
75
+
76
+ Die Docs-App rendert Markdown ueber `docs/index.php` und `docs/utils/parsedown.php`. `Parsedown::setSafeMode(true)` bleibt Pflicht, ersetzt aber keine Trusted-DOM-Policy. Die App Shell selbst wird inzwischen Shell-first aus `docs.app.shell` im RMT-Dokument erzeugt; Parsedown HTML wird danach nur in den `data-rmt-slot="content"` Slot eingesetzt.
77
+
78
+ Regel:
79
+
80
+ - Markdown-Dateien sind Content.
81
+ - Parsedown-Ausgabe ist `parsedownHtml`.
82
+ - RMT rendert Shell-Descriptoren und darf Parsedown-Arbeit schedulen.
83
+ - `docs.rich-content` und `docs.media.lazy` bereiten spaetere Rich-HTML- und XPlayer-Tutorial-Slots vor.
84
+ - Sanitizing und DOM-Sinks bleiben Host-Verantwortung.
85
+ - `WP-E13-11` prueft diese Boundary browsernah mit [Trusted DOM Boundary Browser Proof](./trusted-dom-boundary-browser-proof.md), `xtend.epic13.trusted-dom-boundary.v1` und `node scripts/run_xtend_tests.js epic13-trusted-dom-boundary --json`.
86
+
87
+ ## Diagnostics
88
+
89
+ Spaetere Implementierungen sollen diese Codes nutzen:
90
+
91
+ - `xtend.security.trusted_dom.required`
92
+ - `xtend.security.sanitizer.missing`
93
+ - `xtend.security.sink.refused`
94
+ - `xtend.security.attribute.refused`
95
+ - `xtend.security.event.refused`
96
+
97
+ ## Gates
98
+
99
+ ```bash
100
+ node --check security/trusted-dom-policy.js
101
+ node scripts/run_xtend_tests.js epic13-trusted-dom-boundary --json
102
+ node scripts/run_xtend_tests.js references --json
103
+ ```
104
+
105
+ ## Weiterfuehrende Dokumente
106
+
107
+ - [XTendRMT Native Authoring](./xtendrmt-native-authoring.md)
108
+ - [Trusted DOM Boundary Browser Proof](./trusted-dom-boundary-browser-proof.md)
109
+ - [XTendRMT Parsedown Scheduling Pilot](./xtendrmt-parsedown-scheduling.md)
110
+ - [XTendRMT App-DSL Reference](./xtendrmt-app-dsl.md)
@@ -0,0 +1,61 @@
1
+ # XTend TypeExports
2
+
3
+ - Contract: `xtend.type-exports.plan.v1`
4
+ - Release Contract: `xtend.type-exports.drift-report.v1`
5
+ - Workpackage: `WP-TypeExports-09`
6
+ - Gate: `node scripts/run_xtend_tests.js type-exports --json`
7
+ - Release Gate: `npm run test:type-exports:release`
8
+ - Report: `.xtend-test-results/xtend-type-exports-report.json`
9
+ - Boundary: `types-only-no-runtime-imports`
10
+ - Boundary: `no-rmt-kernel-import-of-xtend-types`
11
+ - Boundary: `declarations-follow-js-runtime-surface`
12
+
13
+ ## Zweck
14
+
15
+ TypeExports macht die oeffentliche `package.json` Export-Surface fuer TypeScript-Consumer explizit. Der erste Run hat jeden Public Export klassifiziert; `WP-TypeExports-02` bis `WP-TypeExports-08` haben die Declaration Packs geliefert. Ab `WP-TypeExports-09` ist TypeExports ein produktiver Release-Gate mit Drift-Report.
16
+
17
+ Der Gate ist absichtlich strikt: Wenn ein neuer Public Export in `package.json` auftaucht, ohne dass die TypeExports-Klassifikation aktualisiert wurde, schlaegt `type-exports` lokal fehl. Der Release-Gate buendelt zusaetzlich alle TypeExports-Teilpakete und schreibt den Handoff-Report:
18
+
19
+ ```bash
20
+ npm run test:type-exports:release
21
+ ```
22
+
23
+ ## Type Condition Matrix
24
+
25
+ | Export-Bereich | Beispiele | Ziel-Declaration | Workpackage |
26
+ | --- | --- | --- | --- |
27
+ | Loader | `.`, `./loader` | `./xtend-loader.d.ts` | `WP-TypeExports-02` completed |
28
+ | Legacy Loader | `./legacy-loader` | `./xtend-dev.d.ts` | `WP-TypeExports-02` completed |
29
+ | Core API | `./api` | `./api.d.ts` | `WP-TypeExports-03` completed |
30
+ | Components | `./components/*` | `./components/*.d.ts` | `ER-WP-34` |
31
+ | RMT Runtime | `./rmt`, `./rmt/browser`, `./rmt/dom-descriptor-renderer`, `./rmt/state-selector-runtime`, `./rmt/action-effect-runtime`, `./rmt/event-routing-runtime`, `./rmt/surface-resource-graph-runtime` | `./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` | `WP-TypeExports-04` completed |
32
+ | RMT Language und Tooling | `./rmt-language/*`, `./rmt-language/app-platform-tooling`, `./rmt-linter/*`, `./rmt-language-server/*` | jeweiliges `tools/**/*.d.ts` plus `./tools/rmt-language/rmt-tooling-public-types.d.ts` | `WP-TypeExports-04` completed |
33
+ | Fabric, A11y, Security | `./fabric`, `./a11y/*`, `./security/*` | jeweiliges Runtime-Modul als `.d.ts` plus `./fabric/xtend-policy-public-types.d.ts` | `WP-TypeExports-05` completed |
34
+ | Builder | `./builder`, `./builder/*` | `./xtend-builder/**/*.d.ts` plus `./xtend-builder/builder-public-types.d.ts` | `WP-TypeExports-06` completed |
35
+ | Catalog | `./catalog/*` | `./catalog/*.d.ts` plus `./catalog/catalog-public-types.d.ts` | `WP-TypeExports-07` completed |
36
+ | Design Tokens und Vendor Facades | `./design-tokens`, `./design-tokens/xtheme-token-alias-layer`, `components/prism.js`, `components/turndown.js` | `./design-tokens/xtend-design-tokens.d.ts`, `./design-tokens/xtheme-token-alias-layer.d.ts`, `./components/prism.d.ts`, `./components/turndown.d.ts` | `WP-TypeExports-08` completed |
37
+ | Assets | `./style.css`, `./manifest`, JSON-Exports, `./package.json` | `types-not-required` | `WP-TypeExports-01` |
38
+
39
+ ## Drift Report
40
+
41
+ Der Report `xtend.type-exports.drift-report.v1` prueft:
42
+
43
+ - Package Export Count und Fingerprint gegen den Package Export Lock
44
+ - unklassifizierte Public Exports
45
+ - Declaration Drift fuer alle typisierten Exports
46
+ - Package `types`-Condition Drift, wenn ein Export eine explizite `types`-Condition besitzt
47
+ - Wildcard-Declarations wie `./components/*.d.ts` und `./xtend-builder/*.d.ts`
48
+ - Release-/Candidate-Gates und Artifact-Checklist fuer das TypeExports-Handoff
49
+
50
+ `./components/*` bleibt eine bewusst dokumentierte Wildcard-Grenze mit adjacent Declarations. `./builder/*` besitzt eine explizite Package `types`-Condition auf `./xtend-builder/*.d.ts`.
51
+
52
+ ## Nicht-Ziele
53
+
54
+ - Kein Runtime-Import von XTend-Typen im RMT-Kernel.
55
+ - Keine Portierung von JS-Modulen nach TypeScript im ersten Run.
56
+ - Keine neue Runtime-Abhaengigkeit fuer Consumer.
57
+ - Keine Typkopie fremder Vendor-Interna fuer Prism oder Turndown.
58
+
59
+ ## Handoff
60
+
61
+ `WP-TypeExports-02` hat `./xtend-loader.d.ts`, `./xtend-dev.d.ts` und [XTend Loader Types](./xtend-loader-types.md) geliefert. `WP-TypeExports-03` hat `./api.d.ts` und [XTend API Types](./xtend-api-types.md) fuer `window.XTend.*` geliefert. `WP-TypeExports-04` hat `./xtendrmt/rmt-core.d.ts`, `./tools/rmt-language/rmt-tooling-public-types.d.ts`, `./tools/rmt-language/app-platform-tooling.d.ts`, die RMT-Language-Facades und [XTend RMT Types](./xtend-rmt-types.md) geliefert. `WP-TypeExports-05` hat `./fabric/xtend-policy-public-types.d.ts`, Fabric/A11y/Security-Facades und [XTend Policy Types](./xtend-policy-types.md) geliefert. `WP-TypeExports-06` hat `./xtend-builder/builder-public-types.d.ts`, Builder-/Scaffold-/Component-Lab-Facades und [XTend Builder Types](./xtend-builder-types.md) geliefert. `WP-TypeExports-07` hat `./catalog/catalog-public-types.d.ts`, Catalog-Facades und [XTend Catalog Types](./xtend-catalog-types.md) geliefert. `WP-TypeExports-08` hat `./design-tokens/xtend-design-tokens.d.ts`, `./design-tokens/xtheme-token-alias-layer.d.ts`, `./components/prism.d.ts`, `./components/turndown.d.ts` und [XTend Vendor and Utility Types](./xtend-vendor-types.md) geliefert. `WP-TypeExports-09` produktisiert den Drift-Report und das Package-Handoff fuer Release Owner.
@@ -0,0 +1,63 @@
1
+ # TypeScript Components
2
+
3
+ XTend fuehrt neue Komponenten TypeScript-first ein. Runtime-Artefakte bleiben weiter lokale ES Modules unter `components/`, waehrend die Source-of-Truth unter `src/components/<tag>/` liegt.
4
+
5
+ Contract: `xtend.scaffold.typescript-component-blueprint.v1`
6
+
7
+ Seit `WP-E10-16` ist dieser Guide Teil des Epic-10-Release-Handoffs `xtend.epic10.release-handoff.v1`. Neue Komponenten muessen nicht nur TypeScript Source besitzen, sondern auch RMT Metadata, Fabric Boundary, A11y, Performance, Fixture, Docs und lokale Gates nachweisen.
8
+
9
+ ## Source Layout
10
+
11
+ | Datei | Zweck |
12
+ |-------|-------|
13
+ | `<tag>.ts` | Custom Element Source mit statischen RMT-, Fabric-, A11y- und Performance-Metadaten |
14
+ | `<tag>.contract.ts` | Component Contract v2 |
15
+ | `<tag>.rmt.ts` | RMT Component Metadata fuer `xtend.component` |
16
+ | `<tag>.a11y.ts` | A11y Profil |
17
+ | `<tag>.performance.ts` | Performance Profil |
18
+ | `<tag>.fixture.ts` | typed Fixture Data |
19
+
20
+ ## Builder
21
+
22
+ Der Builder rendert die neue Artefaktgruppe im Dry-Run:
23
+
24
+ ```bash
25
+ node xtend-builder/scaffold.js component-files --tag x-example --profile display --feature state --json
26
+ ```
27
+
28
+ Der lokale Gate ist:
29
+
30
+ ```bash
31
+ node scripts/run_xtend_tests.js builder-typescript-blueprint --json
32
+ ```
33
+
34
+ ## Pflicht-Gates ab WP-E10-16
35
+
36
+ ```bash
37
+ node scripts/run_xtend_tests.js component-contract-v2 --json
38
+ node scripts/run_xtend_tests.js epic10-platform-gates --json
39
+ node scripts/run_xtend_tests.js epic10-release-handoff --json
40
+ ```
41
+
42
+ Neue Komponenten durchlaufen zusaetzlich ihre Component-Level-Suite, Catalog Coverage, A11y-, Performance- und Visual-Regression-Gates.
43
+
44
+ Ab `WP-TypeExports-09` gehoert auch der produktive TypeExports-Handoff zur Release-Sicht:
45
+
46
+ ```bash
47
+ npm run test:type-exports:release
48
+ ```
49
+
50
+ Neue TypeScript-first Komponenten duerfen deshalb nicht nur Runtime- und Component-Contract-Artefakte liefern, sondern muessen ihre Public Package Surface entweder ueber `components/*.d.ts`, eine explizite Package `types`-Condition oder eine dokumentierte `types-not-required` Boundary abdecken.
51
+
52
+ ## RMT und Fabric
53
+
54
+ Jede neue Komponente braucht einen `xtend.component` RMT Record und eine Fabric Boundary. Die kanonische Laufzeitgrenze fuer Fabric-Kontext ist `adapter-injection-via-xtend-component-resolveFabricContext`; `window.XTendFabric` ist Host-Komfortflaeche und nicht der Component-Contract.
55
+
56
+ ## Boundaries
57
+
58
+ - keine CDN-Imports
59
+ - keine neuen Runtime Dependencies fuer Core-Komponenten
60
+ - kein produktiver TypeScript Compiler im Blueprint-Paket
61
+ - keine automatische Datei-Ausgabe ohne Review
62
+ - RMT Kernel Boundary: `no-rmt-kernel-import-of-xtend-types`
63
+ - TypeExports Boundary: `declarations-follow-js-runtime-surface`