@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
+ # Third-Party Design Authoring
2
+
3
+ Docs Contract: `xtend.enterprise.third-party-authoring-guide.v1`
4
+
5
+ Workpackage: `ECH-WP-11`
6
+
7
+ Local 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
+ This guide is for teams that want to embed XTend components into their own corporate design, white-label product or internal enterprise design system. The target path is: XTend remains visually polished and distinct, but every visible decision flows through XTend.css, XTheme, CSS parts, slots, attributes or icon packs. Component forks are not a regular skinning path.
15
+
16
+ ## Principles
17
+
18
+ 1. Define corporate tokens first, then derive component tokens.
19
+ 2. Keep XTend Signature UI as the quality baseline, but deliberately replace brand color, typography, radius, elevation and density.
20
+ 3. Do not select Shadow DOM internals. Skinning happens through CSS Custom Properties and `::part(...)`.
21
+ 4. Light, Dark, High Contrast, Forced Colors, Reduced Motion, Comfortable, Compact and Dense are required variants.
22
+ 5. Controls use `x-icon`, inline SVG or tokenized CSS graphics, never visible text characters.
23
+ 6. Status, active, error, disabled and focus states must not communicate only through color.
24
+
25
+ ## XTend.css Override Patterns
26
+
27
+ Corporate overrides belong in their own cascade layer. This keeps host tokens traceable, and product teams can apply XTend updates without copying Shadow DOM rules.
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` and `window.XTend.theme` are the runtime path for theme changes, density, reduced motion and forced colors. A corporate theme should set the same values as XTend.css so static CSS overrides and runtime changes stay identical.
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
+ Required modes:
131
+
132
+ | Mode | Rule |
133
+ |------|------|
134
+ | `light` | text, icons, controls and focus must remain readable on light surfaces |
135
+ | `dark` | no hard-coded light surfaces without dark text fallback |
136
+ | `high-contrast` | active and error states need shape, border or marker |
137
+ | `forced-colors` | use system colors such as `Canvas`, `CanvasText`, `Highlight`, `HighlightText`, `ButtonFace`, `ButtonText` |
138
+
139
+ Density presets:
140
+
141
+ | Density | Use |
142
+ |---------|-----|
143
+ | `comfortable` | default for mixed enterprise shells |
144
+ | `compact` | toolbars, data density, workbench shells |
145
+ | `dense` | navigation, filter bars, table surroundings |
146
+
147
+ ## CSS Parts
148
+
149
+ CSS parts are the skinning API. Use them for zones, not private Shadow DOM structures.
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
+ Rule: a `::part(...)` may set corporate styling, but must not remove semantic usability. Focus, disabled, busy, active and error states must remain intact.
179
+
180
+ ## Icon Pack Registration
181
+
182
+ Product icons belong in a local icon pack. Remote CDNs are not an XTend default path.
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 need a real button element, an accessible name and separate parts for control and icon. Visible characters such as `X`, `+`, `-`, `...` or emoji are not allowed as control graphics.
206
+
207
+ ## Layout Modes
208
+
209
+ Layout variants are public API. Host apps should set modes declaratively and fine-tune them through tokens.
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` supports `drawer`, `side-panel`, `popover`, `fullscreen` and `inline-main`. Modal variants need escape, focus return and, when focus trap is used, a visible backdrop. Non-modal variants must not remove main content from reading flow.
226
+
227
+ Overlay-near components use shared skinning zones:
228
+
229
+ | Component | Modes/Variant | Required Parts |
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 or `modal` | `surface`, `backdrop`, `close`, `content` |
236
+
237
+ ## A11y Dos and Donts
238
+
239
+ | Do | Dont |
240
+ |----|------|
241
+ | keep a visible `focus-visible` ring through tokens | remove focus through `outline: none` without replacement |
242
+ | respect `prefers-reduced-motion` down into overlay and feedback components | test motion only in light mode |
243
+ | test `forced-colors` with `Canvas`, `CanvasText`, `Highlight` and `HighlightText` | force brand colors in Forced Colors |
244
+ | do not represent active, selected, error and disabled only through color | communicate status only through red/green |
245
+ | protect long labels with `overflow-wrap` and stable control height | clip text in buttons, tabs or menus |
246
+ | author icon controls with `aria-label`, `part="... control"` and `part="... icon"` | use visible text glyphs for close/menu/disclosure |
247
+
248
+ Status and route information must remain readable in every theme and must not communicate only through color. Use border, marker, underline, icon, text or shape as a second signal.
249
+
250
+ ## Complete Third-Party Theme Example
251
+
252
+ This example combines XTend.css, XTheme, CSS parts, icon pack, header mode, density and a11y modes. It is deliberately not generic blue: the palette mixes ink, warm panel, cool action blue, deep green and copper accent.
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 Reference
352
+
353
+ Every P0 component must have a token/part reference in this guide. The detail tables remain in the component documents so they can be maintained beside attributes, slots, events and a11y rules.
354
+
355
+ | Component | Docs | Alias Prefix | Token/Part Table | Required Parts |
356
+ |-----------|------|--------------|------------------|----------------|
357
+ | `x-theme` | [xtheme](./components/xtheme.md) | `--xtend-theme-` | `Central XTend Tokens` / [Design Tokens](./design-tokens.md) | `root` |
358
+ | `x-header` | [xheader](./components/xheader.md) | `--xtend-header-` | `ECH-WP-07 Token Table and signatureDesign`, `ECH-WP-09 Token Table and 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 Rule` | `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 Table and Navigation States` | `root`, `nav`, `item`, `disclosure-icon` |
362
+ | `x-drawer` | [xdrawer](./components/xdrawer.md) | `--xtend-drawer-` | `ECH-WP-06 Overlay Parity` | `root`, `surface`, `backdrop`, `close`, `content` |
363
+ | `x-side-panel` | [xsidepanel](./components/xsidepanel.md) | `--xtend-side-panel-` | `ECH-WP-06 Overlay Parity` | `root`, `surface`, `backdrop`, `close`, `content` |
364
+ | `x-modal` | [xmodal](./components/xmodal.md) | `--xtend-modal-` | `ECH-WP-06 Overlay Parity` | `root`, `surface`, `backdrop`, `close`, `content` |
365
+ | `x-dialog` | [xdialog](./components/xdialog.md) | `--xtend-dialog-` | `ECH-WP-06 Overlay Parity` | `root`, `surface`, `backdrop`, `close`, `content` |
366
+ | `x-popover` | [xpopover](./components/xpopover.md) | `--xtend-popover-` | `ECH-WP-06 Overlay Parity` | `root`, `surface`, `backdrop`, `close`, `content` |
367
+ | `x-toast` | [xtoast](./components/xtoast.md) | `--xtend-toast-` | `Styling & Theming` | `root`, `surface`, `content`, `close`, `icon` |
368
+
369
+ ## Migrating Legacy Token Names
370
+
371
+ Legacy tokens remain visible as bridges, but new corporate themes should map them to the normalized alias layer.
372
+
373
+ | Legacy Token | New 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
+ Migration rule: old names may remain as fallback, but new documentation, new themes and new components must lead with the `--xtend-*` alias chain. Removing or renaming public parts and tokens requires migration notes.
388
+
389
+ ## Acceptance for Corporate Themes
390
+
391
+ Before handoff to a host design system, these gates should run:
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
+ Acceptance is only robust when Light, Dark, High Contrast, Forced Colors, Reduced Motion, Comfortable, Compact and Dense have been tested in the same corporate theme.
403
+
404
+ ## Release Handoff
405
+
406
+ Starting with `ECH-WP-12`, [Enterprise Component Flex Release Handoff](./enterprise-component-flex-release-handoff.md) carries the contract `xtend.enterprise.component-flex-release-handoff.v1`. It connects SemVer assessment, deprecated aliases, migration notes, release checklist and adoption risks for corporate themes. The local gate `node scripts/run_xtend_tests.js enterprise-component-flex-release-handoff --json` must be green before release-owner review; publishing remains blocked by `private-until-release-owner-acceptance` until then.
@@ -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
+ ## Goal
8
+
9
+ This RC1 gate proves that Parsedown HTML and RMT `htmlFragment` do not flow unchecked into the Docs app DOM sinks. The app still renders shell-first through RMT, but the host adapter sanitizes content before writing it into the content slot.
10
+
11
+ ## Rules
12
+
13
+ - `parsedownHtml` requires `xtend.security.trusted-dom-sanitizer.v1`.
14
+ - RMT `htmlFragment` requires `xtend.security.sanitizing-boundary.v1`.
15
+ - RMT `dom_descriptor` remains the preferred path for structured templates.
16
+ - The RMT kernel imports no sanitizer, no PHP/Parsedown and no XTend types.
17
+
18
+ Blocked content includes `script`, `iframe`, inline event handlers, `javascript:` URLs and `srcdoc`.
19
+
20
+ ## Browser-Close Smoke
21
+
22
+ The fixture intentionally places hostile content in `window.xtendDocsPages` and then loads `docs/utils/pageloader.js`. The smoke verifies that:
23
+
24
+ - the content slot carries `data-rmt-sanitized="true"`
25
+ - `data-rmt-trusted-dom-proof="xtend.epic13.trusted-dom-boundary.v1"` is set
26
+ - script elements, event handlers, JavaScript URLs and `srcdoc` are removed
27
+ - safe Parsedown text remains intact
28
+ - the shell continues to render shell-first
29
+
30
+ ## Handoff
31
+
32
+ `WP-E13-11` is complete. `WP-E13-12` is complete with [RC1 Migration Notes](./rc1-migration-notes.md) and `xtend.epic13.rc1-migration-notes-semver.v1`. `WP-E13-13` is complete with [RC1 Gate Matrix and CI Handoff](./rc1-gate-matrix-ci-handoff.md) and `xtend.epic13.rc1-gate-matrix-ci-handoff.v1`.
@@ -0,0 +1,124 @@
1
+ # Trusted DOM and 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
+ - Machine-readable contract: `security/trusted-dom-policy.js`
8
+
9
+ ## Goal
10
+
11
+ XTend treats dynamic markup as its own trust boundary. This matters especially
12
+ for RMT `html_fragment`, RMT template authoring, and the Parsedown-based Docs
13
+ App.
14
+
15
+ This page describes the developer rule: markup is classified first and then
16
+ written into an appropriate DOM sink. Raw HTML strings must not casually land in
17
+ `innerHTML`.
18
+
19
+ ## Markup Classes
20
+
21
+ | Class | Source | Default |
22
+ |-------|--------|---------|
23
+ | `text` | labels, Markdown text, body copy | `textContent` |
24
+ | `attribute` | `aria-label`, `href`, `slot`, `data-*` | validated `setAttribute` |
25
+ | `structuredTemplate` | RMT `dom_descriptor`, component trees | nodes via `replaceChildren` |
26
+ | `htmlFragment` | RMT `html_fragment` | sanitizing boundary |
27
+ | `parsedownHtml` | HTML from `docs/index.php` / Parsedown | sanitizing boundary |
28
+
29
+ ## Allowed and Restricted Sinks
30
+
31
+ Allowed:
32
+
33
+ - `textContent`
34
+ - validated `setAttribute`
35
+ - `classList`
36
+ - `dataset` without secrets and without code values
37
+ - `append` and `replaceChildren` with nodes
38
+
39
+ Restricted:
40
+
41
+ - `innerHTML`
42
+ - `insertAdjacentHTML`
43
+ - `template.innerHTML`
44
+
45
+ These restricted sinks require `xtend.security.sanitizing-boundary.v1`.
46
+ Browser-near docs/RMT sinks must also expose the sanitizer contract
47
+ `xtend.security.trusted-dom-sanitizer.v1`.
48
+
49
+ Forbidden by default:
50
+
51
+ - inline handlers such as `onclick`
52
+ - `eval`
53
+ - `new Function`
54
+ - dynamic script tags from RMT, manifest, event, or docs data
55
+
56
+ ## RMT Templates
57
+
58
+ For XTendRMT:
59
+
60
+ - `dom_descriptor` is preferred.
61
+ - `html_fragment` is allowed only with a Trusted DOM boundary.
62
+ - Events use `actionRef`, `commandName`, `routeRef`, or typed payloads.
63
+ - The RMT kernel schedules records and diagnostics but does not sanitize HTML
64
+ itself.
65
+ - Host adapters own the DOM sink.
66
+
67
+ ```json
68
+ {
69
+ "id": "settings.shell",
70
+ "mode": "html_fragment",
71
+ "markup": "<x-card></x-card>",
72
+ "security": {
73
+ "markupClass": "htmlFragment",
74
+ "trustBoundary": "xtend.security.sanitizing-boundary.v1",
75
+ "sink": "trustedDomBoundary"
76
+ }
77
+ }
78
+ ```
79
+
80
+ ## Parsedown Docs App
81
+
82
+ The Docs App renders Markdown through `docs/index.php` and
83
+ `docs/utils/parsedown.php`. `Parsedown::setSafeMode(true)` remains mandatory,
84
+ but it does not replace a Trusted DOM policy. The app shell is now generated
85
+ shell-first from `docs.app.shell` in the RMT document; Parsedown HTML is then
86
+ inserted only into the `data-rmt-slot="content"` slot.
87
+
88
+ Rules:
89
+
90
+ - Markdown files are content.
91
+ - Parsedown output is `parsedownHtml`.
92
+ - RMT renders shell descriptors and may schedule Parsedown work.
93
+ - `docs.rich-content` and `docs.media.lazy` prepare future rich HTML and
94
+ XPlayer tutorial slots.
95
+ - Sanitizing and DOM sinks remain host responsibilities.
96
+ - `WP-E13-11` checks this boundary in a browser-near way with
97
+ [Trusted DOM Boundary Browser Proof](./trusted-dom-boundary-browser-proof.md),
98
+ `xtend.epic13.trusted-dom-boundary.v1`, and
99
+ `node scripts/run_xtend_tests.js epic13-trusted-dom-boundary --json`.
100
+
101
+ ## Diagnostics
102
+
103
+ Future implementations should use these codes:
104
+
105
+ - `xtend.security.trusted_dom.required`
106
+ - `xtend.security.sanitizer.missing`
107
+ - `xtend.security.sink.refused`
108
+ - `xtend.security.attribute.refused`
109
+ - `xtend.security.event.refused`
110
+
111
+ ## Gates
112
+
113
+ ```bash
114
+ node --check security/trusted-dom-policy.js
115
+ node scripts/run_xtend_tests.js epic13-trusted-dom-boundary --json
116
+ node scripts/run_xtend_tests.js references --json
117
+ ```
118
+
119
+ ## Related Documents
120
+
121
+ - [XTendRMT Native Authoring](./xtendrmt-native-authoring.md)
122
+ - [Trusted DOM Boundary Browser Proof](./trusted-dom-boundary-browser-proof.md)
123
+ - [XTendRMT Parsedown Scheduling Pilot](./xtendrmt-parsedown-scheduling.md)
124
+ - [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
+ ## Purpose
14
+
15
+ TypeExports makes the public `package.json` export surface explicit for TypeScript consumers. The first run classified every public export; `WP-TypeExports-02` through `WP-TypeExports-08` delivered the declaration packs. As of `WP-TypeExports-09`, TypeExports is a productive release gate with drift report.
16
+
17
+ The gate is intentionally strict: if a new public export appears in `package.json` without updating the TypeExports classification, `type-exports` fails locally. The release gate additionally bundles all TypeExports subpackages and writes the handoff report:
18
+
19
+ ```bash
20
+ npm run test:type-exports:release
21
+ ```
22
+
23
+ ## Type Condition Matrix
24
+
25
+ | Export area | Examples | Target 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 and Tooling | `./rmt-language/*`, `./rmt-language/app-platform-tooling`, `./rmt-linter/*`, `./rmt-language-server/*` | matching `tools/**/*.d.ts` plus `./tools/rmt-language/rmt-tooling-public-types.d.ts` | `WP-TypeExports-04` completed |
33
+ | Fabric, A11y, Security | `./fabric`, `./a11y/*`, `./security/*` | matching runtime module as `.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 and 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
+ The report `xtend.type-exports.drift-report.v1` checks:
42
+
43
+ - package export count and fingerprint against the Package Export Lock
44
+ - unclassified public exports
45
+ - declaration drift for all typed exports
46
+ - package `types` condition drift when an export has an explicit `types` condition
47
+ - wildcard declarations such as `./components/*.d.ts` and `./xtend-builder/*.d.ts`
48
+ - release/candidate gates and artifact checklist for the TypeExports handoff
49
+
50
+ `./components/*` remains an intentionally documented wildcard boundary with adjacent declarations. `./builder/*` has an explicit package `types` condition pointing to `./xtend-builder/*.d.ts`.
51
+
52
+ ## Non-Goals
53
+
54
+ - No runtime import of XTend types in the RMT kernel.
55
+ - No porting of JS modules to TypeScript in the first run.
56
+ - No new runtime dependency for consumers.
57
+ - No copied type world from external vendor internals for Prism or Turndown.
58
+
59
+ ## Handoff
60
+
61
+ `WP-TypeExports-02` delivered `./xtend-loader.d.ts`, `./xtend-dev.d.ts` and [XTend Loader Types](./xtend-loader-types.md). `WP-TypeExports-03` delivered `./api.d.ts` and [XTend API Types](./xtend-api-types.md) for `window.XTend.*`. `WP-TypeExports-04` delivered `./xtendrmt/rmt-core.d.ts`, `./tools/rmt-language/rmt-tooling-public-types.d.ts`, `./tools/rmt-language/app-platform-tooling.d.ts`, the RMT language facades and [XTend RMT Types](./xtend-rmt-types.md). `WP-TypeExports-05` delivered `./fabric/xtend-policy-public-types.d.ts`, Fabric/a11y/security facades and [XTend Policy Types](./xtend-policy-types.md). `WP-TypeExports-06` delivered `./xtend-builder/builder-public-types.d.ts`, builder/scaffold/Component Lab facades and [XTend Builder Types](./xtend-builder-types.md). `WP-TypeExports-07` delivered `./catalog/catalog-public-types.d.ts`, catalog facades and [XTend Catalog Types](./xtend-catalog-types.md). `WP-TypeExports-08` delivered `./design-tokens/xtend-design-tokens.d.ts`, `./design-tokens/xtheme-token-alias-layer.d.ts`, `./components/prism.d.ts`, `./components/turndown.d.ts` and [XTend Vendor and Utility Types](./xtend-vendor-types.md). `WP-TypeExports-09` productizes the drift report and package handoff for release owners.