@ccslabs/xtend 0.1.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (664) hide show
  1. package/CHANGELOG.md +65 -0
  2. package/LICENSE +201 -0
  3. package/README.md +184 -0
  4. package/a11y/motion-contrast-policy.d.ts +32 -0
  5. package/a11y/motion-contrast-policy.js +261 -0
  6. package/a11y/runtime-a11y-contract.d.ts +44 -0
  7. package/a11y/runtime-a11y-contract.js +385 -0
  8. package/a11y/screenreader-signals.d.ts +32 -0
  9. package/a11y/screenreader-signals.js +372 -0
  10. package/api.d.ts +168 -0
  11. package/api.js +864 -0
  12. package/catalog/catalog-public-types.d.ts +66 -0
  13. package/catalog/component-catalog-coverage.d.ts +20 -0
  14. package/catalog/component-catalog-coverage.js +377 -0
  15. package/catalog/component-long-tail-migration.d.ts +18 -0
  16. package/catalog/component-long-tail-migration.js +305 -0
  17. package/catalog/component-regression-priority.d.ts +20 -0
  18. package/catalog/component-regression-priority.js +305 -0
  19. package/catalog/enterprise-component-flex-release-handoff.d.ts +32 -0
  20. package/catalog/enterprise-component-flex-release-handoff.js +437 -0
  21. package/catalog/enterprise-component-style-audit.d.ts +22 -0
  22. package/catalog/enterprise-component-style-audit.js +353 -0
  23. package/catalog/enterprise-form-control-theme-a11y.d.ts +19 -0
  24. package/catalog/enterprise-form-control-theme-a11y.js +220 -0
  25. package/catalog/enterprise-icon-control-audit.d.ts +21 -0
  26. package/catalog/enterprise-icon-control-audit.js +258 -0
  27. package/catalog/enterprise-layout-display-media-tokenization.d.ts +20 -0
  28. package/catalog/enterprise-layout-display-media-tokenization.js +237 -0
  29. package/catalog/enterprise-navigation-routing-state-hardening.d.ts +20 -0
  30. package/catalog/enterprise-navigation-routing-state-hardening.js +255 -0
  31. package/catalog/enterprise-overlay-mode-token-parity.d.ts +15 -0
  32. package/catalog/enterprise-overlay-mode-token-parity.js +178 -0
  33. package/catalog/enterprise-third-party-authoring-guide.d.ts +23 -0
  34. package/catalog/enterprise-third-party-authoring-guide.js +310 -0
  35. package/catalog/enterprise-visual-dom-snapshot-matrix.d.ts +31 -0
  36. package/catalog/enterprise-visual-dom-snapshot-matrix.js +357 -0
  37. package/catalog/epic10-existing-component-metadata.d.ts +25 -0
  38. package/catalog/epic10-existing-component-metadata.js +534 -0
  39. package/catalog/epic10-p0-component-wave.d.ts +28 -0
  40. package/catalog/epic10-p0-component-wave.js +688 -0
  41. package/catalog/epic10-platform-gates.d.ts +31 -0
  42. package/catalog/epic10-platform-gates.js +425 -0
  43. package/catalog/epic10-release-handoff.d.ts +30 -0
  44. package/catalog/epic10-release-handoff.js +195 -0
  45. package/catalog/epic11-enterprise-ux-handoff.d.ts +29 -0
  46. package/catalog/epic11-enterprise-ux-handoff.js +403 -0
  47. package/catalog/epic12-docs-adoption.d.ts +29 -0
  48. package/catalog/epic12-docs-adoption.js +183 -0
  49. package/catalog/epic12-rc0-gate-matrix.d.ts +36 -0
  50. package/catalog/epic12-rc0-gate-matrix.js +439 -0
  51. package/catalog/epic12-rc0-handoff.d.ts +30 -0
  52. package/catalog/epic12-rc0-handoff.js +385 -0
  53. package/catalog/epic13-conditional-network-evidence-ci.d.ts +35 -0
  54. package/catalog/epic13-conditional-network-evidence-ci.js +278 -0
  55. package/catalog/epic13-conditional-network-evidence.d.ts +34 -0
  56. package/catalog/epic13-conditional-network-evidence.js +280 -0
  57. package/catalog/epic13-docs-rmt-production-hardening.d.ts +39 -0
  58. package/catalog/epic13-docs-rmt-production-hardening.js +286 -0
  59. package/catalog/epic13-hydration-performance-closure.d.ts +33 -0
  60. package/catalog/epic13-hydration-performance-closure.js +234 -0
  61. package/catalog/epic13-known-residual-triage.d.ts +32 -0
  62. package/catalog/epic13-known-residual-triage.js +339 -0
  63. package/catalog/epic13-package-export-lock.d.ts +41 -0
  64. package/catalog/epic13-package-export-lock.js +604 -0
  65. package/catalog/epic13-prod-browser-csp-smoke.d.ts +35 -0
  66. package/catalog/epic13-prod-browser-csp-smoke.js +218 -0
  67. package/catalog/epic13-rc1-gate-matrix-ci-handoff.d.ts +36 -0
  68. package/catalog/epic13-rc1-gate-matrix-ci-handoff.js +418 -0
  69. package/catalog/epic13-rc1-migration-notes.d.ts +36 -0
  70. package/catalog/epic13-rc1-migration-notes.js +271 -0
  71. package/catalog/epic13-rc1-readiness.d.ts +33 -0
  72. package/catalog/epic13-rc1-readiness.js +487 -0
  73. package/catalog/epic13-release-owner-acceptance.d.ts +33 -0
  74. package/catalog/epic13-release-owner-acceptance.js +354 -0
  75. package/catalog/epic13-release-report-pack-dry-run-evidence.d.ts +36 -0
  76. package/catalog/epic13-release-report-pack-dry-run-evidence.js +253 -0
  77. package/catalog/epic13-rmt-production-readiness.d.ts +35 -0
  78. package/catalog/epic13-rmt-production-readiness.js +314 -0
  79. package/catalog/epic13-trusted-dom-boundary.d.ts +36 -0
  80. package/catalog/epic13-trusted-dom-boundary.js +230 -0
  81. package/catalog/epic13-visual-owner-artifact.d.ts +35 -0
  82. package/catalog/epic13-visual-owner-artifact.js +233 -0
  83. package/catalog/epic14-lsp-handoff.d.ts +28 -0
  84. package/catalog/epic14-lsp-handoff.js +312 -0
  85. package/catalog/epic14-rmt-tooling.d.ts +33 -0
  86. package/catalog/epic14-rmt-tooling.js +282 -0
  87. package/catalog/surface-manager-adapter-runtime.d.ts +37 -0
  88. package/catalog/surface-manager-adapter-runtime.js +203 -0
  89. package/catalog/surface-manager-browser-lab.d.ts +39 -0
  90. package/catalog/surface-manager-browser-lab.js +225 -0
  91. package/catalog/surface-manager-controller.d.ts +43 -0
  92. package/catalog/surface-manager-controller.js +290 -0
  93. package/catalog/surface-manager-layout-engines.d.ts +32 -0
  94. package/catalog/surface-manager-layout-engines.js +161 -0
  95. package/catalog/surface-manager-lazy-loading.d.ts +35 -0
  96. package/catalog/surface-manager-lazy-loading.js +173 -0
  97. package/catalog/surface-manager-materialization.d.ts +37 -0
  98. package/catalog/surface-manager-materialization.js +202 -0
  99. package/catalog/surface-manager-native-rmt-surfaces.d.ts +48 -0
  100. package/catalog/surface-manager-native-rmt-surfaces.js +325 -0
  101. package/catalog/surface-manager-overlay-bridge.d.ts +42 -0
  102. package/catalog/surface-manager-overlay-bridge.js +247 -0
  103. package/catalog/surface-manager-persistence.d.ts +37 -0
  104. package/catalog/surface-manager-persistence.js +178 -0
  105. package/catalog/surface-manager-quality-gates.d.ts +48 -0
  106. package/catalog/surface-manager-quality-gates.js +324 -0
  107. package/catalog/surface-manager-release-handoff.d.ts +47 -0
  108. package/catalog/surface-manager-release-handoff.js +274 -0
  109. package/catalog/surface-manager-remote-policy.d.ts +34 -0
  110. package/catalog/surface-manager-remote-policy.js +199 -0
  111. package/catalog/surface-manager-rmt-authoring.d.ts +44 -0
  112. package/catalog/surface-manager-rmt-authoring.js +368 -0
  113. package/catalog/surface-manager-route-lifecycle.d.ts +32 -0
  114. package/catalog/surface-manager-route-lifecycle.js +162 -0
  115. package/catalog/surface-manager-runtime-release-handoff.d.ts +36 -0
  116. package/catalog/surface-manager-runtime-release-handoff.js +245 -0
  117. package/catalog/surface-manager-side-panel-runtime.d.ts +46 -0
  118. package/catalog/surface-manager-side-panel-runtime.js +307 -0
  119. package/catalog/surface-manager-stack-policy.d.ts +32 -0
  120. package/catalog/surface-manager-stack-policy.js +169 -0
  121. package/catalog/surface-manager-window-runtime.d.ts +45 -0
  122. package/catalog/surface-manager-window-runtime.js +285 -0
  123. package/catalog/surface-manager-workbench-fixture.d.ts +50 -0
  124. package/catalog/surface-manager-workbench-fixture.js +315 -0
  125. package/catalog/type-exports-api.js +236 -0
  126. package/catalog/type-exports-builder.js +405 -0
  127. package/catalog/type-exports-catalog.js +394 -0
  128. package/catalog/type-exports-loader.js +266 -0
  129. package/catalog/type-exports-policy.js +461 -0
  130. package/catalog/type-exports-rmt.js +407 -0
  131. package/catalog/type-exports-vendor.js +365 -0
  132. package/catalog/type-exports.js +574 -0
  133. package/components/icon-packs/core.js +154 -0
  134. package/components/icon-packs/lucide.js +136 -0
  135. package/components/manifest.json +44 -0
  136. package/components/prism.d.ts +73 -0
  137. package/components/prism.js +300 -0
  138. package/components/turndown.d.ts +34 -0
  139. package/components/turndown.js +107 -0
  140. package/components/x-rmt-lifecycle-demo-build.d.ts +78 -0
  141. package/components/x-rmt-lifecycle-demo-build.js +1175 -0
  142. package/components/x-rmt-lifecycle-demo.d.ts +83 -0
  143. package/components/x-rmt-lifecycle-demo.js +1175 -0
  144. package/components/xalert.d.ts +42 -0
  145. package/components/xalert.js +538 -0
  146. package/components/xbutton.d.ts +127 -0
  147. package/components/xbutton.js +612 -0
  148. package/components/xcalendar.d.ts +39 -0
  149. package/components/xcalendar.js +338 -0
  150. package/components/xcards.d.ts +34 -0
  151. package/components/xcards.js +253 -0
  152. package/components/xcheckbox.d.ts +48 -0
  153. package/components/xcheckbox.js +448 -0
  154. package/components/xcode.d.ts +35 -0
  155. package/components/xcode.js +370 -0
  156. package/components/xdialog.d.ts +48 -0
  157. package/components/xdialog.js +763 -0
  158. package/components/xdrawer.d.ts +61 -0
  159. package/components/xdrawer.js +654 -0
  160. package/components/xfooter.d.ts +41 -0
  161. package/components/xfooter.js +351 -0
  162. package/components/xform.d.ts +43 -0
  163. package/components/xform.js +456 -0
  164. package/components/xheader.d.ts +68 -0
  165. package/components/xheader.js +1253 -0
  166. package/components/xhero.d.ts +42 -0
  167. package/components/xhero.js +475 -0
  168. package/components/xicon.d.ts +146 -0
  169. package/components/xicon.js +688 -0
  170. package/components/xinput.d.ts +37 -0
  171. package/components/xinput.js +444 -0
  172. package/components/xlightbox.d.ts +48 -0
  173. package/components/xlightbox.js +571 -0
  174. package/components/xlink.d.ts +63 -0
  175. package/components/xlink.js +565 -0
  176. package/components/xmasonry.d.ts +35 -0
  177. package/components/xmasonry.js +666 -0
  178. package/components/xmenu.d.ts +118 -0
  179. package/components/xmenu.js +1005 -0
  180. package/components/xmodal.d.ts +64 -0
  181. package/components/xmodal.js +831 -0
  182. package/components/xplayer.d.ts +57 -0
  183. package/components/xplayer.js +1748 -0
  184. package/components/xpopover.d.ts +54 -0
  185. package/components/xpopover.js +466 -0
  186. package/components/xprogress.d.ts +40 -0
  187. package/components/xprogress.js +345 -0
  188. package/components/xradio.d.ts +50 -0
  189. package/components/xradio.js +474 -0
  190. package/components/xrouter.d.ts +244 -0
  191. package/components/xrouter.js +1841 -0
  192. package/components/xsection.d.ts +34 -0
  193. package/components/xsection.js +253 -0
  194. package/components/xselect.d.ts +46 -0
  195. package/components/xselect.js +463 -0
  196. package/components/xsidepanel.d.ts +56 -0
  197. package/components/xsidepanel.js +728 -0
  198. package/components/xspinner.d.ts +38 -0
  199. package/components/xspinner.js +388 -0
  200. package/components/xstate.d.ts +137 -0
  201. package/components/xstate.js +493 -0
  202. package/components/xstatus.d.ts +41 -0
  203. package/components/xstatus.js +381 -0
  204. package/components/xsummary.d.ts +43 -0
  205. package/components/xsummary.js +293 -0
  206. package/components/xsurfacemanager-controller.d.ts +130 -0
  207. package/components/xsurfacemanager-controller.js +699 -0
  208. package/components/xsurfacemanager.d.ts +452 -0
  209. package/components/xsurfacemanager.js +3775 -0
  210. package/components/xsurfaceoverlay-bridge.d.ts +43 -0
  211. package/components/xsurfaceoverlay-bridge.js +238 -0
  212. package/components/xsurfacewindow.d.ts +50 -0
  213. package/components/xsurfacewindow.js +576 -0
  214. package/components/xtabs.d.ts +73 -0
  215. package/components/xtabs.js +611 -0
  216. package/components/xtend-public-types.d.ts +208 -0
  217. package/components/xtextarea.d.ts +46 -0
  218. package/components/xtextarea.js +451 -0
  219. package/components/xtheme.d.ts +253 -0
  220. package/components/xtheme.js +1438 -0
  221. package/components/xtoast.d.ts +39 -0
  222. package/components/xtoast.js +389 -0
  223. package/components/xtooltip.d.ts +53 -0
  224. package/components/xtooltip.js +432 -0
  225. package/components/xtype.d.ts +42 -0
  226. package/components/xtype.js +244 -0
  227. package/components/xutils.d.ts +164 -0
  228. package/components/xutils.js +496 -0
  229. package/components/xwriter.d.ts +67 -0
  230. package/components/xwriter.js +854 -0
  231. package/design-tokens/themes/enterprise-light.json +40 -0
  232. package/design-tokens/themes/xtend-signature.json +126 -0
  233. package/design-tokens/xtend-design-tokens.d.ts +95 -0
  234. package/design-tokens/xtend-design-tokens.js +395 -0
  235. package/design-tokens/xtheme-token-alias-layer.d.ts +84 -0
  236. package/design-tokens/xtheme-token-alias-layer.js +423 -0
  237. package/docs/.htaccess +51 -0
  238. package/docs/README.md +340 -0
  239. package/docs/XTend-ADR.md +221 -0
  240. package/docs/a11y-keyboard-smokes.md +62 -0
  241. package/docs/about.md +18 -0
  242. package/docs/api.md +157 -0
  243. package/docs/best-practices.md +76 -0
  244. package/docs/component-catalog-coverage.md +58 -0
  245. package/docs/component-lab.md +103 -0
  246. package/docs/component-long-tail-migration.md +41 -0
  247. package/docs/component-platform.md +159 -0
  248. package/docs/component-ux-app-authoring.md +130 -0
  249. package/docs/component-ux-authoring.md +96 -0
  250. package/docs/component-ux-gates.md +45 -0
  251. package/docs/components/x-rmt-lifecycle-demo-build.md +60 -0
  252. package/docs/components/xalert.md +81 -0
  253. package/docs/components/xbutton.md +103 -0
  254. package/docs/components/xcalendar.md +82 -0
  255. package/docs/components/xcards.md +128 -0
  256. package/docs/components/xcheckbox.md +102 -0
  257. package/docs/components/xcode.md +126 -0
  258. package/docs/components/xdialog.md +92 -0
  259. package/docs/components/xdrawer.md +84 -0
  260. package/docs/components/xfooter.md +126 -0
  261. package/docs/components/xform.md +128 -0
  262. package/docs/components/xheader.md +308 -0
  263. package/docs/components/xhero.md +142 -0
  264. package/docs/components/xicon.md +125 -0
  265. package/docs/components/xinput.md +129 -0
  266. package/docs/components/xlightbox.md +98 -0
  267. package/docs/components/xlink.md +109 -0
  268. package/docs/components/xmasonry.md +124 -0
  269. package/docs/components/xmenu.md +158 -0
  270. package/docs/components/xmodal.md +82 -0
  271. package/docs/components/xplayer.md +104 -0
  272. package/docs/components/xpopover.md +67 -0
  273. package/docs/components/xprogress.md +56 -0
  274. package/docs/components/xradio.md +103 -0
  275. package/docs/components/xrouter.md +260 -0
  276. package/docs/components/xsection.md +125 -0
  277. package/docs/components/xselect.md +105 -0
  278. package/docs/components/xsidepanel.md +30 -0
  279. package/docs/components/xspinner.md +102 -0
  280. package/docs/components/xstate.md +148 -0
  281. package/docs/components/xstatus.md +55 -0
  282. package/docs/components/xsummary.md +78 -0
  283. package/docs/components/xsurfacemanager.md +27 -0
  284. package/docs/components/xsurfacewindow.md +21 -0
  285. package/docs/components/xtabs.md +160 -0
  286. package/docs/components/xtextarea.md +98 -0
  287. package/docs/components/xtheme.md +167 -0
  288. package/docs/components/xtoast.md +62 -0
  289. package/docs/components/xtooltip.md +66 -0
  290. package/docs/components/xtype.md +82 -0
  291. package/docs/components/xutils.md +144 -0
  292. package/docs/components/xwriter.md +94 -0
  293. package/docs/components.md +117 -0
  294. package/docs/conditional-network-evidence-ci.md +38 -0
  295. package/docs/conditional-network-evidence.md +50 -0
  296. package/docs/core-migration-guide.md +110 -0
  297. package/docs/design-tokens.md +116 -0
  298. package/docs/docs-rmt-production-hardening.md +31 -0
  299. package/docs/enterprise-adoption.md +411 -0
  300. package/docs/enterprise-component-flex-release-handoff.md +129 -0
  301. package/docs/epic10-platform-gates.md +62 -0
  302. package/docs/epic10-release-handoff.md +81 -0
  303. package/docs/epic11-enterprise-ux-handoff.md +70 -0
  304. package/docs/epic12-rc0-handoff.md +61 -0
  305. package/docs/existing-component-metadata.md +67 -0
  306. package/docs/hydration-performance-closure.md +34 -0
  307. package/docs/hydration-policies.md +71 -0
  308. package/docs/index.php +1625 -0
  309. package/docs/known-residual-triage.md +22 -0
  310. package/docs/manifest-import-policy.md +79 -0
  311. package/docs/manifest.md +106 -0
  312. package/docs/menu.json +1190 -0
  313. package/docs/motion-contrast.md +67 -0
  314. package/docs/package-export-lock.md +44 -0
  315. package/docs/performance-measurements.md +106 -0
  316. package/docs/performance-regression.md +89 -0
  317. package/docs/performance.md +94 -0
  318. package/docs/previews/README.md +17 -0
  319. package/docs/prod-browser-csp-smokes.md +40 -0
  320. package/docs/public-component-types.md +79 -0
  321. package/docs/quick-start-guide.md +152 -0
  322. package/docs/rc0-adoption-guide.md +102 -0
  323. package/docs/rc0-gate-matrix.md +58 -0
  324. package/docs/rc1-gate-matrix-ci-handoff.md +56 -0
  325. package/docs/rc1-migration-notes.md +69 -0
  326. package/docs/rc1-readiness.md +46 -0
  327. package/docs/release-owner-acceptance.md +56 -0
  328. package/docs/release-report-pack-dry-run-evidence.md +39 -0
  329. package/docs/rmt-dsl-authoring-polish.md +122 -0
  330. package/docs/rmt-first-demo-app.md +77 -0
  331. package/docs/rmt-first-xtend-apps.md +105 -0
  332. package/docs/rmt-kernel-panic-recovery-incident-handoff.md +61 -0
  333. package/docs/rmt-kernel-security-hardening-migration.md +50 -0
  334. package/docs/rmt-kernel-trusted-output-authoring.md +69 -0
  335. package/docs/rmt-language-server.md +177 -0
  336. package/docs/rmt-lifecycle-demo.md +25 -0
  337. package/docs/rmt-linter.md +140 -0
  338. package/docs/rmt-production-readiness.md +63 -0
  339. package/docs/rmt-tooling-release-gates.md +77 -0
  340. package/docs/rmt-vnext-authoring.md +60 -0
  341. package/docs/rmt-vnext-cross-surface-events.md +68 -0
  342. package/docs/rmt-vnext-enterprise-mfe-handoff.md +70 -0
  343. package/docs/rmt-vnext-migration-notes.md +62 -0
  344. package/docs/rmt-vnext-release-handoff.md +69 -0
  345. package/docs/rmt-vnext-remote-surfaces.md +90 -0
  346. package/docs/rmt-vnext-surface-registry-enterprise.md +76 -0
  347. package/docs/screenreader-signals.md +56 -0
  348. package/docs/supply-chain-gates.md +100 -0
  349. package/docs/surface-manager-authoring-guide.md +94 -0
  350. package/docs/surface-manager-browser-lab.md +45 -0
  351. package/docs/surface-manager-component-lab.md +43 -0
  352. package/docs/surface-manager-controller.md +66 -0
  353. package/docs/surface-manager-layout-engines.md +32 -0
  354. package/docs/surface-manager-lazy-hydration.md +63 -0
  355. package/docs/surface-manager-migration-guide.md +94 -0
  356. package/docs/surface-manager-native-rmt-surfaces.md +38 -0
  357. package/docs/surface-manager-overlay-bridge.md +53 -0
  358. package/docs/surface-manager-persistence.md +30 -0
  359. package/docs/surface-manager-quality-gates.md +51 -0
  360. package/docs/surface-manager-release-handoff.md +68 -0
  361. package/docs/surface-manager-remote-policy.md +54 -0
  362. package/docs/surface-manager-rmt-authoring.md +86 -0
  363. package/docs/surface-manager-route-lifecycle.md +59 -0
  364. package/docs/surface-manager-runtime-release-handoff.md +69 -0
  365. package/docs/surface-manager-side-panel-runtime.md +36 -0
  366. package/docs/surface-manager-stack-policy.md +39 -0
  367. package/docs/surface-manager-window-runtime.md +47 -0
  368. package/docs/surface-manager-workbench-fixture.md +43 -0
  369. package/docs/third-party-design-authoring.md +406 -0
  370. package/docs/trusted-dom-boundary-browser-proof.md +32 -0
  371. package/docs/trusted-dom-sanitizing.md +110 -0
  372. package/docs/type-exports.md +61 -0
  373. package/docs/typescript-components.md +63 -0
  374. package/docs/utils/fabric-runtime.js +650 -0
  375. package/docs/utils/pageloader.js +2823 -0
  376. package/docs/utils/parsedown.php +298 -0
  377. package/docs/visual-browser-regression.md +83 -0
  378. package/docs/visual-owner-artifacts.md +46 -0
  379. package/docs/visual-snapshot-automation.md +87 -0
  380. package/docs/xtend-api-types.md +55 -0
  381. package/docs/xtend-builder-types.md +55 -0
  382. package/docs/xtend-catalog-types.md +44 -0
  383. package/docs/xtend-fabric-rmt-lane-mapping.md +143 -0
  384. package/docs/xtend-fabric.md +474 -0
  385. package/docs/xtend-loader-types.md +58 -0
  386. package/docs/xtend-loader.md +265 -0
  387. package/docs/xtend-policy-types.md +38 -0
  388. package/docs/xtend-rmt-types.md +39 -0
  389. package/docs/xtend-vendor-types.md +36 -0
  390. package/docs/xtendrmt-app-dsl.md +269 -0
  391. package/docs/xtendrmt-migration-guide.md +235 -0
  392. package/docs/xtendrmt-native-authoring.md +337 -0
  393. package/docs/xtendrmt-overview.md +89 -0
  394. package/docs/xtendrmt-parsedown-docs.rmt +956 -0
  395. package/docs/xtendrmt-parsedown-scheduling.md +301 -0
  396. package/docs/xtendrmt-runtime-bridge.md +155 -0
  397. package/fabric/hydration-policy.d.ts +27 -0
  398. package/fabric/hydration-policy.js +306 -0
  399. package/fabric/package.json +58 -0
  400. package/fabric/rmt-lane-mapping.d.ts +47 -0
  401. package/fabric/rmt-lane-mapping.js +504 -0
  402. package/fabric/xtend-fabric.d.ts +81 -0
  403. package/fabric/xtend-fabric.js +2669 -0
  404. package/fabric/xtend-policy-public-types.d.ts +135 -0
  405. package/package.json +8225 -0
  406. package/security/README.md +54 -0
  407. package/security/manifest-import-policy.d.ts +43 -0
  408. package/security/manifest-import-policy.js +260 -0
  409. package/security/supply-chain-gate-policy.d.ts +45 -0
  410. package/security/supply-chain-gate-policy.js +249 -0
  411. package/security/trusted-dom-policy.d.ts +36 -0
  412. package/security/trusted-dom-policy.js +316 -0
  413. package/tools/package.json +77 -0
  414. package/tools/rmt-editor/vscode/README.md +33 -0
  415. package/tools/rmt-editor/vscode/extension.d.ts +9 -0
  416. package/tools/rmt-editor/vscode/extension.js +55 -0
  417. package/tools/rmt-editor/vscode/language-configuration.json +28 -0
  418. package/tools/rmt-editor/vscode/package.json +83 -0
  419. package/tools/rmt-editor/vscode/snippets/rmt.code-snippets +243 -0
  420. package/tools/rmt-editor/vscode/syntaxes/rmt.tmLanguage.json +13 -0
  421. package/tools/rmt-editor/vscode/xtend-rmt-language-0.0.0-enterprise-readiness.vsix +0 -0
  422. package/tools/rmt-language/code-actions.d.ts +15 -0
  423. package/tools/rmt-language/code-actions.js +566 -0
  424. package/tools/rmt-language/completions.d.ts +22 -0
  425. package/tools/rmt-language/completions.js +475 -0
  426. package/tools/rmt-language/definitions.d.ts +13 -0
  427. package/tools/rmt-language/definitions.js +212 -0
  428. package/tools/rmt-language/diagnostics.d.ts +23 -0
  429. package/tools/rmt-language/diagnostics.js +486 -0
  430. package/tools/rmt-language/format-adapter.d.ts +16 -0
  431. package/tools/rmt-language/format-adapter.js +270 -0
  432. package/tools/rmt-language/hover.d.ts +12 -0
  433. package/tools/rmt-language/hover.js +326 -0
  434. package/tools/rmt-language/kernel-escalation.d.ts +122 -0
  435. package/tools/rmt-language/kernel-escalation.js +427 -0
  436. package/tools/rmt-language/kernel-panic-monitor.d.ts +176 -0
  437. package/tools/rmt-language/kernel-panic-monitor.js +674 -0
  438. package/tools/rmt-language/kernel-policy-parity.d.ts +142 -0
  439. package/tools/rmt-language/kernel-policy-parity.js +629 -0
  440. package/tools/rmt-language/kernel-recovery.d.ts +173 -0
  441. package/tools/rmt-language/kernel-recovery.js +666 -0
  442. package/tools/rmt-language/kernel-scheduler-failure.d.ts +136 -0
  443. package/tools/rmt-language/kernel-scheduler-failure.js +486 -0
  444. package/tools/rmt-language/kernel-security-regression.d.ts +154 -0
  445. package/tools/rmt-language/kernel-security-regression.js +465 -0
  446. package/tools/rmt-language/kernel-trust-authority.d.ts +120 -0
  447. package/tools/rmt-language/kernel-trust-authority.js +549 -0
  448. package/tools/rmt-language/parser.d.ts +14 -0
  449. package/tools/rmt-language/parser.js +111 -0
  450. package/tools/rmt-language/rmt-tooling-public-types.d.ts +179 -0
  451. package/tools/rmt-language/rules/boundary-policy.js +81 -0
  452. package/tools/rmt-language/rules/document-policy.js +65 -0
  453. package/tools/rmt-language/rules/index.js +29 -0
  454. package/tools/rmt-language/rules/route-policy.js +81 -0
  455. package/tools/rmt-language/rules/scheduler-policy.js +66 -0
  456. package/tools/rmt-language/rules/template-policy.js +130 -0
  457. package/tools/rmt-language/semantic-graph.d.ts +18 -0
  458. package/tools/rmt-language/semantic-graph.js +827 -0
  459. package/tools/rmt-language/snippets/README.md +17 -0
  460. package/tools/rmt-language/snippets/index.d.ts +17 -0
  461. package/tools/rmt-language/snippets/index.js +417 -0
  462. package/tools/rmt-language/snippets/rmt.code-snippets +243 -0
  463. package/tools/rmt-language/source-model.d.ts +14 -0
  464. package/tools/rmt-language/source-model.js +731 -0
  465. package/tools/rmt-language/symbols.d.ts +13 -0
  466. package/tools/rmt-language/symbols.js +183 -0
  467. package/tools/rmt-language/vnext-compatibility.d.ts +28 -0
  468. package/tools/rmt-language/vnext-compatibility.js +675 -0
  469. package/tools/rmt-language/vnext-compiler.d.ts +17 -0
  470. package/tools/rmt-language/vnext-compiler.js +716 -0
  471. package/tools/rmt-language/vnext-composition.d.ts +30 -0
  472. package/tools/rmt-language/vnext-composition.js +595 -0
  473. package/tools/rmt-language/vnext-conditions.d.ts +25 -0
  474. package/tools/rmt-language/vnext-conditions.js +474 -0
  475. package/tools/rmt-language/vnext-cross-surface-events.d.ts +30 -0
  476. package/tools/rmt-language/vnext-cross-surface-events.js +607 -0
  477. package/tools/rmt-language/vnext-degradation.d.ts +23 -0
  478. package/tools/rmt-language/vnext-degradation.js +428 -0
  479. package/tools/rmt-language/vnext-enterprise-fixtures.d.ts +28 -0
  480. package/tools/rmt-language/vnext-enterprise-fixtures.js +487 -0
  481. package/tools/rmt-language/vnext-enterprise-registry.d.ts +21 -0
  482. package/tools/rmt-language/vnext-enterprise-registry.js +495 -0
  483. package/tools/rmt-language/vnext-enterprise-release.d.ts +44 -0
  484. package/tools/rmt-language/vnext-enterprise-release.js +472 -0
  485. package/tools/rmt-language/vnext-event-governance.d.ts +29 -0
  486. package/tools/rmt-language/vnext-event-governance.js +488 -0
  487. package/tools/rmt-language/vnext-events.d.ts +44 -0
  488. package/tools/rmt-language/vnext-events.js +680 -0
  489. package/tools/rmt-language/vnext-import-resolver.d.ts +28 -0
  490. package/tools/rmt-language/vnext-import-resolver.js +642 -0
  491. package/tools/rmt-language/vnext-lifecycle.d.ts +22 -0
  492. package/tools/rmt-language/vnext-lifecycle.js +404 -0
  493. package/tools/rmt-language/vnext-parser.d.ts +21 -0
  494. package/tools/rmt-language/vnext-parser.js +1391 -0
  495. package/tools/rmt-language/vnext-regression.d.ts +25 -0
  496. package/tools/rmt-language/vnext-regression.js +394 -0
  497. package/tools/rmt-language/vnext-release.d.ts +29 -0
  498. package/tools/rmt-language/vnext-release.js +293 -0
  499. package/tools/rmt-language/vnext-remote-compatibility.d.ts +33 -0
  500. package/tools/rmt-language/vnext-remote-compatibility.js +892 -0
  501. package/tools/rmt-language/vnext-remote-compiler.d.ts +14 -0
  502. package/tools/rmt-language/vnext-remote-compiler.js +520 -0
  503. package/tools/rmt-language/vnext-remote-manifest.d.ts +33 -0
  504. package/tools/rmt-language/vnext-remote-manifest.js +538 -0
  505. package/tools/rmt-language/vnext-remote-security.d.ts +27 -0
  506. package/tools/rmt-language/vnext-remote-security.js +380 -0
  507. package/tools/rmt-language/vnext-remote-tooling.d.ts +25 -0
  508. package/tools/rmt-language/vnext-remote-tooling.js +805 -0
  509. package/tools/rmt-language/vnext-scheduler.d.ts +24 -0
  510. package/tools/rmt-language/vnext-scheduler.js +469 -0
  511. package/tools/rmt-language/vnext-security.d.ts +28 -0
  512. package/tools/rmt-language/vnext-security.js +597 -0
  513. package/tools/rmt-language/vnext-streaming.d.ts +28 -0
  514. package/tools/rmt-language/vnext-streaming.js +593 -0
  515. package/tools/rmt-language/vnext-surfaces.d.ts +24 -0
  516. package/tools/rmt-language/vnext-surfaces.js +406 -0
  517. package/tools/rmt-language/vnext-tooling.d.ts +25 -0
  518. package/tools/rmt-language/vnext-tooling.js +728 -0
  519. package/tools/rmt-language-server/protocol.d.ts +22 -0
  520. package/tools/rmt-language-server/protocol.js +352 -0
  521. package/tools/rmt-language-server/server.d.ts +15 -0
  522. package/tools/rmt-language-server/server.js +622 -0
  523. package/tools/rmt-linter/cli.d.ts +14 -0
  524. package/tools/rmt-linter/cli.js +450 -0
  525. package/tools/rmt-linter/reporter.d.ts +16 -0
  526. package/tools/rmt-linter/reporter.js +472 -0
  527. package/xtend-builder/README.md +83 -0
  528. package/xtend-builder/a11y/README.md +42 -0
  529. package/xtend-builder/a11y/component-a11y-profile.d.ts +14 -0
  530. package/xtend-builder/a11y/component-a11y-profile.js +314 -0
  531. package/xtend-builder/blueprints/README.md +105 -0
  532. package/xtend-builder/blueprints/component-blueprint.contract.d.ts +16 -0
  533. package/xtend-builder/blueprints/component-blueprint.contract.js +343 -0
  534. package/xtend-builder/builder-public-types.d.ts +234 -0
  535. package/xtend-builder/extensions/README.md +26 -0
  536. package/xtend-builder/extensions/component-extension-points.d.ts +11 -0
  537. package/xtend-builder/extensions/component-extension-points.js +277 -0
  538. package/xtend-builder/generators/README.md +149 -0
  539. package/xtend-builder/generators/component-files.d.ts +5 -0
  540. package/xtend-builder/generators/component-files.js +769 -0
  541. package/xtend-builder/generators/component-plan.d.ts +4 -0
  542. package/xtend-builder/generators/component-plan.js +104 -0
  543. package/xtend-builder/generators/registry.d.ts +6 -0
  544. package/xtend-builder/generators/registry.js +118 -0
  545. package/xtend-builder/generators/rmt-build.js +738 -0
  546. package/xtend-builder/generators/rmt-lifecycle-demo.js +922 -0
  547. package/xtend-builder/lib/cli.d.ts +9 -0
  548. package/xtend-builder/lib/cli.js +543 -0
  549. package/xtend-builder/lib/layout.d.ts +6 -0
  550. package/xtend-builder/lib/layout.js +153 -0
  551. package/xtend-builder/lib/package-resolver.js +25 -0
  552. package/xtend-builder/package.json +90 -0
  553. package/xtend-builder/performance/README.md +31 -0
  554. package/xtend-builder/performance/component-performance-profile.d.ts +11 -0
  555. package/xtend-builder/performance/component-performance-profile.js +347 -0
  556. package/xtend-builder/performance/component-ux-performance-contract.d.ts +27 -0
  557. package/xtend-builder/performance/component-ux-performance-contract.js +424 -0
  558. package/xtend-builder/preview/README.md +61 -0
  559. package/xtend-builder/preview/component-lab-ux-inspector.d.ts +20 -0
  560. package/xtend-builder/preview/component-lab-ux-inspector.js +448 -0
  561. package/xtend-builder/preview/component-lab.d.ts +14 -0
  562. package/xtend-builder/preview/component-lab.js +278 -0
  563. package/xtend-builder/preview/component-preview.d.ts +5 -0
  564. package/xtend-builder/preview/component-preview.js +160 -0
  565. package/xtend-builder/scaffold.config.d.ts +4 -0
  566. package/xtend-builder/scaffold.config.js +2056 -0
  567. package/xtend-builder/scaffold.d.ts +3 -0
  568. package/xtend-builder/scaffold.js +11 -0
  569. package/xtend-builder/templates/README.md +33 -0
  570. package/xtend-builder/templates/component/a11y.template.ts +11 -0
  571. package/xtend-builder/templates/component/component-suite.template.d.ts +2 -0
  572. package/xtend-builder/templates/component/component-suite.template.js +108 -0
  573. package/xtend-builder/templates/component/contract.template.ts +10 -0
  574. package/xtend-builder/templates/component/demo-plan.template.md +73 -0
  575. package/xtend-builder/templates/component/docs.template.md +301 -0
  576. package/xtend-builder/templates/component/fixture-data.template.ts +28 -0
  577. package/xtend-builder/templates/component/fixture.template.html +37 -0
  578. package/xtend-builder/templates/component/manifest-plan.template.json +22 -0
  579. package/xtend-builder/templates/component/performance.template.ts +13 -0
  580. package/xtend-builder/templates/component/rmt.template.ts +12 -0
  581. package/xtend-builder/templates/component/source.template.d.ts +2 -0
  582. package/xtend-builder/templates/component/source.template.js +137 -0
  583. package/xtend-builder/templates/component/source.template.ts +110 -0
  584. package/xtend-builder/templates/component/types.template.d.ts +423 -0
  585. package/xtend-builder/templates/loader.d.ts +4 -0
  586. package/xtend-builder/templates/loader.js +51 -0
  587. package/xtend-builder/templates/registry.d.ts +6 -0
  588. package/xtend-builder/templates/registry.js +119 -0
  589. package/xtend-builder/typing/README.md +130 -0
  590. package/xtend-builder/typing/component-contract-v2.d.ts +15 -0
  591. package/xtend-builder/typing/component-contract-v2.js +248 -0
  592. package/xtend-builder/typing/component-network-contract.d.ts +22 -0
  593. package/xtend-builder/typing/component-network-contract.js +478 -0
  594. package/xtend-builder/typing/component-shell-contract.d.ts +21 -0
  595. package/xtend-builder/typing/component-shell-contract.js +312 -0
  596. package/xtend-builder/typing/component-styling-contract.d.ts +22 -0
  597. package/xtend-builder/typing/component-styling-contract.js +301 -0
  598. package/xtend-builder/typing/component-types.d.ts +10 -0
  599. package/xtend-builder/typing/component-types.js +551 -0
  600. package/xtend-builder/typing/enterprise-component-flex-hardening-contract.d.ts +20 -0
  601. package/xtend-builder/typing/enterprise-component-flex-hardening-contract.js +332 -0
  602. package/xtend-builder/typing/feedback-status-ux-contract.d.ts +25 -0
  603. package/xtend-builder/typing/feedback-status-ux-contract.js +347 -0
  604. package/xtend-builder/typing/form-controls-ux-contract.d.ts +25 -0
  605. package/xtend-builder/typing/form-controls-ux-contract.js +357 -0
  606. package/xtend-builder/typing/layout-display-media-ux-contract.d.ts +25 -0
  607. package/xtend-builder/typing/layout-display-media-ux-contract.js +420 -0
  608. package/xtend-builder/typing/navigation-routing-ux-contract.d.ts +17 -0
  609. package/xtend-builder/typing/navigation-routing-ux-contract.js +297 -0
  610. package/xtend-builder/typing/overlay-interaction-ux-contract.d.ts +25 -0
  611. package/xtend-builder/typing/overlay-interaction-ux-contract.js +383 -0
  612. package/xtend-builder/typing/rmt-dsl-authoring-polish.d.ts +27 -0
  613. package/xtend-builder/typing/rmt-dsl-authoring-polish.js +419 -0
  614. package/xtend-builder/typing/rmt-shell-authoring-contract.d.ts +26 -0
  615. package/xtend-builder/typing/rmt-shell-authoring-contract.js +315 -0
  616. package/xtend-builder/utils/README.md +8 -0
  617. package/xtend-builder/utils/naming.d.ts +7 -0
  618. package/xtend-builder/utils/naming.js +36 -0
  619. package/xtend-builder/utils/validation.d.ts +5 -0
  620. package/xtend-builder/utils/validation.js +95 -0
  621. package/xtend-builder/wiring/README.md +46 -0
  622. package/xtend-builder/wiring/features.d.ts +5 -0
  623. package/xtend-builder/wiring/features.js +165 -0
  624. package/xtend-builder/wiring/hydration.d.ts +4 -0
  625. package/xtend-builder/wiring/hydration.js +44 -0
  626. package/xtend-builder/wiring/manifest.d.ts +5 -0
  627. package/xtend-builder/wiring/manifest.js +48 -0
  628. package/xtend-builder/workflows/README.md +47 -0
  629. package/xtend-builder/workflows/developer-workflow.d.ts +6 -0
  630. package/xtend-builder/workflows/developer-workflow.js +125 -0
  631. package/xtend-builder/writing/manifest-patcher.d.ts +49 -0
  632. package/xtend-builder/writing/manifest-patcher.js +391 -0
  633. package/xtend-builder/writing/write-plan.d.ts +148 -0
  634. package/xtend-builder/writing/write-plan.js +646 -0
  635. package/xtend-dev.d.ts +23 -0
  636. package/xtend-dev.js +4 -0
  637. package/xtend-loader.d.ts +201 -0
  638. package/xtend-loader.js +1704 -0
  639. package/xtend.css +402 -0
  640. package/xtendrmt/package.json +64 -0
  641. package/xtendrmt/rmt-core.d.ts +4452 -0
  642. package/xtendrmt/rmt-core.esm.js +25793 -0
  643. package/xtendrmt/rmt-first-demo-app.js +265 -0
  644. package/xtendrmt/rmt-first-demo-app.rmt +737 -0
  645. package/xtendrmt/rmt-lifecycle-demo.app.js +493 -0
  646. package/xtendrmt/rmt-lifecycle-demo.core.json +810 -0
  647. package/xtendrmt/rmt-lifecycle-demo.rmt +35 -0
  648. package/xtendrmt/rmt-lifecycle-demo.rmt-build.app.js +153 -0
  649. package/xtendrmt/rmt-lifecycle-demo.rmt-build.core.json +810 -0
  650. package/xtendrmt/rmt-lifecycle-demo.rmt-build.scaffold.json +202 -0
  651. package/xtendrmt/rmt-lifecycle-demo.scaffold.json +187 -0
  652. package/xtendrmt/rmt-manifest.json +548 -0
  653. package/xtendrmt/rmt-runtime.browser.js +26183 -0
  654. package/xtendrmt/rmt-runtime.esm.js +26214 -0
  655. package/xtendrmt/rmt-vnext-enterprise-mfe-demo.core.json +849 -0
  656. package/xtendrmt/rmt-vnext-enterprise-mfe-demo.rmt +50 -0
  657. package/xtendrmt/rmt-vnext-reference-demo.core.json +1069 -0
  658. package/xtendrmt/rmt-vnext-reference-demo.rmt +50 -0
  659. package/xtendrmt/rmt.schema.json +3145 -0
  660. package/xtendrmt/surface-workbench.js +316 -0
  661. package/xtendrmt/surface-workbench.rmt +762 -0
  662. package/xtendrmt/xtendrmt-bestcase-demo.core.json +1187 -0
  663. package/xtendrmt/xtendrmt-bestcase-demo.js +1728 -0
  664. package/xtendrmt/xtendrmt-bestcase-demo.rmt +57 -0
@@ -0,0 +1,298 @@
1
+ <?php
2
+
3
+ /**
4
+ * Lightweight Parsedown-compatible adapter for the local XTend docs app.
5
+ *
6
+ * The original Docs host expects the public Parsedown API surface:
7
+ * - new Parsedown()
8
+ * - setSafeMode(true)
9
+ * - text($markdown)
10
+ *
11
+ * This adapter intentionally keeps the surface tiny and safe for local
12
+ * development. It supports the Markdown constructs used by the XTend docs
13
+ * without adding a Composer/runtime dependency to the repository.
14
+ */
15
+ class Parsedown
16
+ {
17
+ private bool $safeMode = false;
18
+
19
+ public function setSafeMode($safeMode): self
20
+ {
21
+ $this->safeMode = (bool) $safeMode;
22
+ return $this;
23
+ }
24
+
25
+ public function text($text): string
26
+ {
27
+ $lines = preg_split('/\r\n|\r|\n/', (string) $text);
28
+ $html = [];
29
+ $paragraph = [];
30
+ $listType = null;
31
+ $table = [];
32
+ $inCode = false;
33
+ $codeFence = '';
34
+ $codeLines = [];
35
+
36
+ $flushParagraph = function () use (&$html, &$paragraph): void {
37
+ if (!$paragraph) return;
38
+ $content = trim(implode(' ', $paragraph));
39
+ if ($content !== '') {
40
+ $html[] = '<p>' . $this->inline($content) . '</p>';
41
+ }
42
+ $paragraph = [];
43
+ };
44
+
45
+ $flushList = function () use (&$html, &$listType): void {
46
+ if ($listType) {
47
+ $html[] = '</' . $listType . '>';
48
+ $listType = null;
49
+ }
50
+ };
51
+
52
+ $flushTable = function () use (&$html, &$table): void {
53
+ if (!$table) return;
54
+ $html[] = $this->renderTable($table);
55
+ $table = [];
56
+ };
57
+
58
+ foreach ($lines as $line) {
59
+ $raw = rtrim($line, "\r\n");
60
+
61
+ if ($inCode) {
62
+ if (preg_match('/^\s*```\s*$/', $raw)) {
63
+ $html[] = '<pre><code' . ($codeFence ? ' class="language-' . $this->escapeAttribute($codeFence) . '"' : '') . '>'
64
+ . $this->escapeHtml(implode("\n", $codeLines))
65
+ . '</code></pre>';
66
+ $inCode = false;
67
+ $codeFence = '';
68
+ $codeLines = [];
69
+ } else {
70
+ $codeLines[] = $raw;
71
+ }
72
+ continue;
73
+ }
74
+
75
+ if (preg_match('/^\s*```\s*([A-Za-z0-9_-]+)?\s*$/', $raw, $matches)) {
76
+ $flushParagraph();
77
+ $flushList();
78
+ $flushTable();
79
+ $inCode = true;
80
+ $codeFence = $matches[1] ?? '';
81
+ $codeLines = [];
82
+ continue;
83
+ }
84
+
85
+ if (trim($raw) === '') {
86
+ $flushParagraph();
87
+ $flushList();
88
+ $flushTable();
89
+ continue;
90
+ }
91
+
92
+ if ($this->isHorizontalRule($raw)) {
93
+ $flushParagraph();
94
+ $flushList();
95
+ $flushTable();
96
+ $html[] = '<hr>';
97
+ continue;
98
+ }
99
+
100
+ if (preg_match('/^\s{0,3}(#{1,6})\s+(.+?)\s*#*\s*$/', $raw, $matches)) {
101
+ $flushParagraph();
102
+ $flushList();
103
+ $flushTable();
104
+ $level = strlen($matches[1]);
105
+ $content = trim($matches[2]);
106
+ $id = $this->slug($content);
107
+ $html[] = '<h' . $level . ($id ? ' id="' . $this->escapeAttribute($id) . '"' : '') . '>'
108
+ . $this->inline($content)
109
+ . '</h' . $level . '>';
110
+ continue;
111
+ }
112
+
113
+ if (preg_match('/^\s{0,3}>\s?(.*)$/', $raw, $matches)) {
114
+ $flushParagraph();
115
+ $flushList();
116
+ $flushTable();
117
+ $html[] = '<blockquote><p>' . $this->inline($matches[1]) . '</p></blockquote>';
118
+ continue;
119
+ }
120
+
121
+ if ($this->isTableLine($raw)) {
122
+ $flushParagraph();
123
+ $flushList();
124
+ $table[] = $raw;
125
+ continue;
126
+ }
127
+
128
+ if (preg_match('/^\s*[-*+]\s+(.+)$/', $raw, $matches)) {
129
+ $flushParagraph();
130
+ $flushTable();
131
+ if ($listType !== 'ul') {
132
+ $flushList();
133
+ $listType = 'ul';
134
+ $html[] = '<ul>';
135
+ }
136
+ $html[] = '<li>' . $this->inline(trim($matches[1])) . '</li>';
137
+ continue;
138
+ }
139
+
140
+ if (preg_match('/^\s*\d+[.)]\s+(.+)$/', $raw, $matches)) {
141
+ $flushParagraph();
142
+ $flushTable();
143
+ if ($listType !== 'ol') {
144
+ $flushList();
145
+ $listType = 'ol';
146
+ $html[] = '<ol>';
147
+ }
148
+ $html[] = '<li>' . $this->inline(trim($matches[1])) . '</li>';
149
+ continue;
150
+ }
151
+
152
+ $flushList();
153
+ $flushTable();
154
+ $paragraph[] = trim($raw);
155
+ }
156
+
157
+ if ($inCode) {
158
+ $html[] = '<pre><code' . ($codeFence ? ' class="language-' . $this->escapeAttribute($codeFence) . '"' : '') . '>'
159
+ . $this->escapeHtml(implode("\n", $codeLines))
160
+ . '</code></pre>';
161
+ }
162
+
163
+ $flushParagraph();
164
+ $flushList();
165
+ $flushTable();
166
+
167
+ return implode("\n", $html);
168
+ }
169
+
170
+ private function inline(string $text): string
171
+ {
172
+ $escaped = $this->safeMode ? $this->escapeHtml($text) : $text;
173
+ $tokens = [];
174
+
175
+ $escaped = preg_replace_callback('/`([^`]+)`/', function ($matches) use (&$tokens) {
176
+ $token = "\x1A" . count($tokens) . "\x1A";
177
+ $tokens[$token] = '<code>' . $this->escapeHtml($matches[1]) . '</code>';
178
+ return $token;
179
+ }, $escaped);
180
+
181
+ $escaped = preg_replace_callback('/!\[([^\]]*)\]\(([^)\s]+)(?:\s+"([^"]*)")?\)/', function ($matches) {
182
+ $alt = $this->escapeAttribute($matches[1]);
183
+ $src = $this->sanitizeUrl($matches[2]);
184
+ $title = isset($matches[3]) ? ' title="' . $this->escapeAttribute($matches[3]) . '"' : '';
185
+ return '<img src="' . $this->escapeAttribute($src) . '" alt="' . $alt . '"' . $title . '>';
186
+ }, $escaped);
187
+
188
+ $escaped = preg_replace_callback('/\[([^\]]+)\]\(([^)\s]+)(?:\s+"([^"]*)")?\)/', function ($matches) {
189
+ $href = $this->sanitizeUrl($matches[2]);
190
+ $title = isset($matches[3]) ? ' title="' . $this->escapeAttribute($matches[3]) . '"' : '';
191
+ return '<a href="' . $this->escapeAttribute($href) . '"' . $title . '>' . $matches[1] . '</a>';
192
+ }, $escaped);
193
+
194
+ $escaped = preg_replace('/\*\*([^*]+)\*\*/', '<strong>$1</strong>', $escaped);
195
+ $escaped = preg_replace('/__([^_]+)__/', '<strong>$1</strong>', $escaped);
196
+ $escaped = preg_replace('/\*([^*]+)\*/', '<em>$1</em>', $escaped);
197
+ $escaped = preg_replace('/_([^_]+)_/', '<em>$1</em>', $escaped);
198
+
199
+ return strtr($escaped, $tokens);
200
+ }
201
+
202
+ private function renderTable(array $lines): string
203
+ {
204
+ if (count($lines) < 2 || !$this->isSeparatorLine($lines[1])) {
205
+ return '<p>' . $this->inline(implode(' ', array_map('trim', $lines))) . '</p>';
206
+ }
207
+
208
+ $headers = $this->splitTableRow($lines[0]);
209
+ $align = $this->splitTableRow($lines[1]);
210
+ $rows = array_slice($lines, 2);
211
+ $html = ['<table>', '<thead><tr>'];
212
+
213
+ foreach ($headers as $index => $header) {
214
+ $style = $this->tableAlignStyle($align[$index] ?? '');
215
+ $html[] = '<th' . $style . '>' . $this->inline(trim($header)) . '</th>';
216
+ }
217
+
218
+ $html[] = '</tr></thead>';
219
+ if ($rows) {
220
+ $html[] = '<tbody>';
221
+ foreach ($rows as $row) {
222
+ $html[] = '<tr>';
223
+ foreach ($this->splitTableRow($row) as $index => $cell) {
224
+ $style = $this->tableAlignStyle($align[$index] ?? '');
225
+ $html[] = '<td' . $style . '>' . $this->inline(trim($cell)) . '</td>';
226
+ }
227
+ $html[] = '</tr>';
228
+ }
229
+ $html[] = '</tbody>';
230
+ }
231
+
232
+ $html[] = '</table>';
233
+ return implode('', $html);
234
+ }
235
+
236
+ private function isTableLine(string $line): bool
237
+ {
238
+ return str_contains($line, '|');
239
+ }
240
+
241
+ private function isSeparatorLine(string $line): bool
242
+ {
243
+ return (bool) preg_match('/^\s*\|?\s*:?-{3,}:?\s*(\|\s*:?-{3,}:?\s*)+\|?\s*$/', $line);
244
+ }
245
+
246
+ private function isHorizontalRule(string $line): bool
247
+ {
248
+ return (bool) preg_match('/^\s{0,3}(?:-{3,}|\*{3,}|_{3,})\s*$/', $line);
249
+ }
250
+
251
+ private function splitTableRow(string $line): array
252
+ {
253
+ $line = trim($line);
254
+ $line = trim($line, '|');
255
+ return array_map('trim', explode('|', $line));
256
+ }
257
+
258
+ private function tableAlignStyle(string $marker): string
259
+ {
260
+ $marker = trim($marker);
261
+ if (str_starts_with($marker, ':') && str_ends_with($marker, ':')) {
262
+ return ' style="text-align:center"';
263
+ }
264
+ if (str_ends_with($marker, ':')) {
265
+ return ' style="text-align:right"';
266
+ }
267
+ if (str_starts_with($marker, ':')) {
268
+ return ' style="text-align:left"';
269
+ }
270
+ return '';
271
+ }
272
+
273
+ private function sanitizeUrl(string $url): string
274
+ {
275
+ $url = trim($url);
276
+ if (preg_match('/^\s*(javascript|vbscript|data):/i', $url)) {
277
+ return '#';
278
+ }
279
+ return $url;
280
+ }
281
+
282
+ private function slug(string $text): string
283
+ {
284
+ $slug = strtolower(strip_tags($text));
285
+ $slug = preg_replace('/[^a-z0-9]+/i', '-', $slug);
286
+ return trim((string) $slug, '-');
287
+ }
288
+
289
+ private function escapeHtml(string $value): string
290
+ {
291
+ return htmlspecialchars($value, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8');
292
+ }
293
+
294
+ private function escapeAttribute(string $value): string
295
+ {
296
+ return htmlspecialchars($value, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8');
297
+ }
298
+ }
@@ -0,0 +1,83 @@
1
+ # Visual Browser Regression
2
+
3
+ - Contract: `xtend.docs.visual-browser-regression.v1`
4
+ - Plan Contract: `xtend.catalog.component-regression-priority-plan.v1`
5
+ - Gate Contract: `xtend.catalog.component-regression-priority-gate.v1`
6
+ - Snapshot Contract: `xtend.epic12.visual-snapshot-automation-contract.v1`
7
+ - Workpackage: `ER-WP-35`
8
+
9
+ Diese Seite beschreibt den aktuellen XTend-Plan fuer visuelle und browsernahe Regression. ER-WP-35 fuehrt noch keinen Screenshot-Runner ein. Stattdessen erzeugt XTend einen stabilen Prioritaetsplan, der pro Manifest-Komponente festlegt, welche Browser-Smokes, Viewports, Theme-Varianten, visuellen Zustaende und Performance-Profile zuerst automatisiert werden muessen.
10
+
11
+ ## Lokal pruefen
12
+
13
+ ```bash
14
+ node scripts/run_xtend_tests.js regression-priority
15
+ node scripts/run_xtend_tests.js regression-priority --json
16
+ npm run test:regression-priority
17
+ ```
18
+
19
+ Der Gate ist Teil des lokalen Test-Runners und nutzt die Component Catalog Coverage Matrix als Quelle. Er bleibt CDN-frei und braucht keine externe Browser-Automation.
20
+
21
+ ## Mindestabdeckung
22
+
23
+ Jede Komponente im Plan erhaelt:
24
+
25
+ - Viewports: `desktop-1280`, `mobile-390`
26
+ - Theme-/Preference-Varianten: `light`, `dark`, `forced-colors`, `reduced-motion`
27
+ - Performance-Profil: `xtend.performance.component-profile.v1`
28
+ - Handoff-Gates: `browser`, `performance-regression`, `catalog-coverage`, `references`
29
+
30
+ P0-Komponenten wie `x-router`, `x-link`, `x-modal`, `x-input`, `x-select`, `x-checkbox`, `x-radio`, `x-textarea`, `x-tooltip`, `x-popover`, `x-drawer`, `x-form`, `x-calendar`, `x-writer`, `x-dialog` und `x-lightbox` werden als `p0-browser-critical` eingeordnet. P1-Komponenten wie `x-status` und `x-progress` bilden die visuelle und Performance-Baseline. P2-Komponenten bleiben als Long-Tail sichtbar.
31
+
32
+ ## Profil-Regeln
33
+
34
+ | Profil | Browser-Smokes | Visuelle Zustaende |
35
+ |--------|----------------|--------------------|
36
+ | `routing` | Route-Wechsel, Keyboard Navigation, History State, RMT Route Adapter | Initial Route, Active Route, RMT Scheduled Route |
37
+ | `form` | Input Sync, Validation Feedback, Keyboard Entry, Form Submit | Default, Focus, Invalid, Disabled |
38
+ | `overlay` | Focus Trap, Escape Close, Scroll Lock, Focus Restore | Closed, Open, Focus Trapped, Reduced Motion Open |
39
+ | `feedback` | Live Region, Dismiss Timer, Reduced Motion | Info, Warning, Error, Dismissed |
40
+ | `interactive` | Keyboard Activation, Focus Visible, Mobile Tap | Default, Hover, Focus Visible, Active, Disabled |
41
+ | `media` | Media Controls, Poster Load, Fullscreen Toggle | Poster, Playing, Controls Focus |
42
+ | `theme` | Theme Switch, Token Contrast, Forced Colors | Light Theme, Dark Theme, Forced Colors |
43
+ | `display` | Layout Stability, Responsive Overflow | Default Layout, Narrow Layout |
44
+ | `iconography` | Layout Stability, Theme Token Color | Default Layout, High Contrast CurrentColor |
45
+ | `utility` | Utility Integration Probe | Helper Ready |
46
+
47
+ ## Boundary-Abschluss
48
+
49
+ Der Plan haelt die frueheren Boundary-Luecken nachvollziehbar, aber nicht mehr als offene RC1-Restpunkte:
50
+
51
+ - 0 Manifest-Eintraege brauchen noch Suite-, Fixture- oder Type-Nacharbeit.
52
+ - `xstate` ist seit `WP-E13-05` als Runtime-Boundary geschlossen.
53
+ - `x-utils` ist seit `WP-E13-05` als Utility-Boundary geschlossen.
54
+ - Die 40 sichtbaren Runtime-/UI-Komponenten behalten explizite Performance-Profile; `xstate` und `x-utils` werden nicht kuenstlich zu visuellen Profiltraegern umgedeutet.
55
+
56
+ Damit ist klar, dass `ER-WP-35` priorisiert, aber die eigentliche Screenshot-/Pixel-Regression an CI und Release Readiness uebergibt.
57
+
58
+ ## Snapshot Automation Contract
59
+
60
+ Seit `WP-E12-10` ist der naechste Schritt ueber `xtend.epic12.visual-snapshot-automation-contract.v1` festgelegt:
61
+
62
+ ```bash
63
+ node scripts/run_xtend_tests.js visual-snapshot-automation --json
64
+ npm run test:visual-snapshot-automation
65
+ node scripts/run_xtend_tests.js visual-snapshots --json
66
+ npm run test:visual-snapshots
67
+ node scripts/run_xtend_tests.js design-tokens --json
68
+ npm run test:design-tokens
69
+ ```
70
+
71
+ Der Snapshot-Contract uebernimmt die 360 Kombinationen aus der Component Shell Theme Matrix und beschreibt `shell-structure`, `visual-state`, `theme-token-state`, `motion-density-state`, `viewport-layout`, `focus-a11y-state` und `rmt-shell-descriptor` als Snapshot Scopes. Die Diff-Strategie ist `dom-first-pixel-ready`: DOM-Struktur und CSS Token werden mit Toleranz `0` behandelt. Seit `WP-E12-11` vergleicht `xtend.epic12.visual-snapshot-runner.v1` die lokale Fixture gegen eine textuelle JSON DOM-Baseline. Pixel-Diff ist als `optional-local-pixel-diff` vorbereitet und bleibt ausserhalb des Node-Contract-Gates. Seit `WP-E12-12` werden diese CSS Token als `xtend.design-tokens.product-contract.v1` produktisiert und ueber dieselben `--xtend-*` Namen in `x-theme`, Theme Matrix und Snapshot Baseline geprueft.
72
+
73
+ ## Handoff
74
+
75
+ - `WP-E12-10`: Visual Snapshot Automation Contract ist abgeschlossen.
76
+ - `WP-E12-11`: lokales Snapshot Fixture und DOM-first Runner ist abgeschlossen.
77
+ - `WP-E12-12`: Enterprise Design System Token Productization ist abgeschlossen.
78
+ - `ER-WP-36`: CI Workflow fuer Default Gates und Regression Priority Gate produktisieren.
79
+ - `ER-WP-38`: Release Checklist um Browser-/Visual-Regression, Artefakte und SemVer-Risiken erweitern.
80
+ - `ER-WP-39`: Enterprise Adoption Guide mit QS-Empfehlungen und Baseline-Strategie ist abgeschlossen.
81
+ - `ER-WP-40`: Docs-App mit RMT Parsedown Scheduling Pilot ist abgeschlossen.
82
+
83
+ Die maschinenlesbare Umsetzung liegt in `catalog/component-regression-priority.js`. Die Architekturentscheidung liegt in `development/XTend-Visuelle-und-Browsernahe-Regression-Prioritaetsplan.md`.
@@ -0,0 +1,46 @@
1
+ # Visual Owner Artifacts
2
+
3
+ - Contract: `xtend.epic13.visual-owner-artifact.v1`
4
+ - Manifest Contract: `xtend.epic13.visual-owner-artifact-manifest.v1`
5
+ - Report: `xtend.epic13.visual-owner-artifact-report.v1`
6
+ - Workpackage: `WP-E13-08`
7
+ - Lokaler Gate: `node scripts/run_xtend_tests.js epic13-visual-owner-artifact --json`
8
+ - Package Script: `npm run test:epic13-visual-owner-artifact`
9
+ - Manifest: `tests/browser/visual-baselines/rc1-visual-owner-artifact.manifest.json`
10
+ - Publish Boundary: `private-until-release-owner-acceptance`
11
+
12
+ ## Zweck
13
+
14
+ Visual Owner Artifacts verbinden die bestehende DOM-first Visual Snapshot Automation mit einem reproduzierbaren Screenshot-/Pixel-Artefaktpfad fuer RC1. Der lokale Gate validiert Contract, Manifest und DOM-Snapshot-Zustand. Die eigentliche Screenshot-Erzeugung bleibt optional und gehoert in stabile Browser- oder CI-Umgebungen.
15
+
16
+ ## Pfadkonvention
17
+
18
+ ```text
19
+ .xtend-test-results/visual-snapshots/rc1/{family}/{viewport}/{theme}/{density}/{motion}.png
20
+ ```
21
+
22
+ Der Report liegt unter:
23
+
24
+ ```text
25
+ .xtend-test-results/visual-snapshots/rc1/visual-owner-artifact-report.json
26
+ ```
27
+
28
+ Die Fixture bleibt `tests/browser/fixtures/visual-snapshots-fixture.html`, die DOM-Baseline bleibt `tests/browser/visual-baselines/visual-snapshots.dom-baseline.json`.
29
+
30
+ ## Lokale Nutzung
31
+
32
+ ```bash
33
+ npm run test:epic13-visual-owner-artifact
34
+ ```
35
+
36
+ Der lokale Modus ist `static-artifact-manifest-plus-dom-snapshot-gate`. `pixelDiffRequiredInLocalGate`, `screenshotRequiredInLocalGate` und `binaryBaselineCommitted` sind `false`.
37
+
38
+ ## Beziehung zu vorhandenen Gates
39
+
40
+ - Die DOM-Struktur kommt aus [Visual Snapshot Automation](./visual-snapshot-automation.md).
41
+ - Die PROD-nahe Browser-/CSP-Vorbereitung kommt aus [PROD Browser CSP Smokes](./prod-browser-csp-smokes.md).
42
+ - Das Owner-Artefakt bleibt `optional-browser-driver-or-ci-artifact`, bis eine stabile Browser-Capture-Umgebung als verpflichtender Release-Gate entschieden wird.
43
+
44
+ ## Handoff
45
+
46
+ `WP-E13-08` ist abgeschlossen. `WP-E13-09` hat `xtend.epic13.rmt-production-readiness.v1` unter [RMT Production Readiness](./rmt-production-readiness.md) gebuendelt. `WP-E13-10` hat [Docs RMT Production Hardening](./docs-rmt-production-hardening.md) abgeschlossen. `WP-E13-11` hat [Trusted DOM Boundary Browser Proof](./trusted-dom-boundary-browser-proof.md) und `xtend.epic13.trusted-dom-boundary.v1` abgeschlossen. `WP-E13-12` hat [RC1 Migration Notes](./rc1-migration-notes.md) und `xtend.epic13.rc1-migration-notes-semver.v1` abgeschlossen. `WP-E13-13` hat [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,87 @@
1
+ # Visual Snapshot Automation
2
+
3
+ - Contract: `xtend.epic12.visual-snapshot-automation-contract.v1`
4
+ - Entry Contract: `xtend.epic12.visual-snapshot-automation-entry.v1`
5
+ - Automation Report Contract: `xtend.epic12.visual-snapshot-automation-report.v1`
6
+ - Runner Contract: `xtend.epic12.visual-snapshot-runner.v1`
7
+ - Fixture Contract: `xtend.epic12.visual-snapshot-fixture.v1`
8
+ - Runner Report Contract: `xtend.epic12.visual-snapshot-runner-report.v1`
9
+ - Design Token Contract: `xtend.design-tokens.product-contract.v1`
10
+ - Workpackages: `WP-E12-10`, `WP-E12-11`, `WP-E12-12`
11
+ - Contract Gate: `node scripts/run_xtend_tests.js visual-snapshot-automation --json`
12
+ - Snapshot Gate: `node scripts/run_xtend_tests.js visual-snapshots --json`
13
+
14
+ XTend Visual Snapshot Automation ist die Epic-12-Linie fuer lokale visuelle Regression. `WP-E12-10` definiert Scopes, Matrix, Toleranzen und Artefaktpolitik. `WP-E12-11` setzt darauf einen lokalen DOM-first Snapshot Runner mit JSON-Baseline auf.
15
+
16
+ ## Lokal pruefen
17
+
18
+ ```bash
19
+ node scripts/run_xtend_tests.js visual-snapshot-automation
20
+ node scripts/run_xtend_tests.js visual-snapshot-automation --json
21
+ npm run test:visual-snapshot-automation
22
+ node scripts/run_xtend_tests.js visual-snapshots --json
23
+ npm run test:visual-snapshots
24
+ node scripts/run_xtend_tests.js design-tokens --json
25
+ npm run test:design-tokens
26
+ ```
27
+
28
+ Der Gate ist local-only, CDN-frei und nutzt keine externen Browserdienste.
29
+
30
+ ## Matrix
31
+
32
+ Der Contract uebernimmt die 360 Kombinationen der Component Shell Theme Matrix:
33
+
34
+ - Themes: `light`, `dark`, `high-contrast`, `forced-colors`
35
+ - Motion: `default-motion`, `reduced-motion`
36
+ - Density: `comfortable`, `compact`, `dense`
37
+ - Viewports: `desktop-1280`, `tablet-768`, `mobile-390`
38
+ - UX-Familien: `form-controls`, `feedback-status`, `navigation-routing`, `overlay-interaction`, `layout-display-media`
39
+
40
+ ## Snapshot Scopes
41
+
42
+ - `shell-structure`
43
+ - `visual-state`
44
+ - `theme-token-state`
45
+ - `motion-density-state`
46
+ - `viewport-layout`
47
+ - `focus-a11y-state`
48
+ - `rmt-shell-descriptor`
49
+
50
+ Die RMT-Grenze bleibt `no-rmt-kernel-import-of-xtend-types`: RMT beschreibt und scheduled Shells, importiert aber keine XTend-Typen in den Kernel.
51
+
52
+ Ab `WP-E12-12` nutzt die Snapshot-Fixture dieselben Produkt-Tokens wie `x-theme` und die Component Shell Theme Matrix. Die DOM-Baseline trackt `--xtend-surface`, `--xtend-text`, `--xtend-color-primary`, `--xtend-density-spacing` und `--xtend-radius`; lokale Fixture-Namen wie `--snapshot-*` sind entfernt.
53
+
54
+ ## Diff-Strategie
55
+
56
+ `WP-E12-10` legt `dom-first-pixel-ready` fest, `WP-E12-11` fuehrt den lokalen DOM-Diff aus:
57
+
58
+ - DOM-Struktur und CSS Token haben Toleranz `0`.
59
+ - Pixel-Diff ist vorbereitet als `optional-local-pixel-diff`, laeuft im Node-Contract-Gate aber nicht.
60
+ - Maximaler Pixel-Mismatch ist `0.01`.
61
+ - Layout Shift ist auf `1px` begrenzt.
62
+ - Vor Capture muss der Runner auf Custom Elements, Fonts, Loader-Abschluss und einen Animation Frame warten.
63
+
64
+ ## Artefakte
65
+
66
+ | Artefakt | Pfad |
67
+ |----------|------|
68
+ | Contract | `development/XTend-Visual-Snapshot-Automation-Contract.md` |
69
+ | Plan | `tests/browser/visual-snapshot-automation-plan.js` |
70
+ | Automation Suite | `tests/browser/visual_snapshot_automation_suite.js` |
71
+ | Runner | `tests/browser/visual-snapshots-runner.js` |
72
+ | Fixture | `tests/browser/fixtures/visual-snapshots-fixture.html` |
73
+ | DOM Baseline | `tests/browser/visual-baselines/visual-snapshots.dom-baseline.json` |
74
+ | Snapshot Suite | `tests/browser/visual_snapshots_suite.js` |
75
+ | Output Root | `.xtend-test-results/visual-snapshots` |
76
+ | Report Path | `.xtend-test-results/visual-snapshots/visual-snapshots-report.json` |
77
+ | RC1 Owner Manifest | `tests/browser/visual-baselines/rc1-visual-owner-artifact.manifest.json` |
78
+
79
+ Die Baseline ist in `WP-E12-11` textuell und reviewbar. Binary- oder Screenshot-Baselines bleiben einem optionalen lokalen Pixel-Diff-Modus vorbehalten.
80
+
81
+ ## RC1 Visual Owner Artifact
82
+
83
+ Ab `WP-E13-08` nutzt [Visual Owner Artifacts](./visual-owner-artifacts.md) diese DOM-first Linie als Quelle fuer `xtend.epic13.visual-owner-artifact.v1`. Der lokale Gate `node scripts/run_xtend_tests.js epic13-visual-owner-artifact --json` normalisiert Artifact Root, Report-Pfad, Screenshot-Template und Viewports. Die Screenshot-/Pixel-Erzeugung bleibt `optional-browser-driver-or-ci-artifact`.
84
+
85
+ ## RC0 Adoption Update
86
+
87
+ Seit `WP-E12-15` verweist der [RC0 Adoption Guide](./rc0-adoption-guide.md) auf diesen DOM-first Snapshot-Pfad als RC0-Baseline. Component Authors behandeln `visual-snapshots`, `design-tokens` und `component-shell-theme-matrix` gemeinsam als lokale Review-Kette; Pixel-Baselines bleiben optional und duerfen den lokalen RC0 Dry Run nicht blockieren.
@@ -0,0 +1,55 @@
1
+ # XTend API Types
2
+
3
+ - Contract: `xtend.type-exports.api-declarations.v1`
4
+ - Workpackage: `WP-TypeExports-03`
5
+ - Gate: `node scripts/run_xtend_tests.js type-exports-api --json`
6
+ - Report: `.xtend-test-results/xtend-type-exports-api-report.json`
7
+ - Declaration: `api.d.ts`
8
+
9
+ ## Zweck
10
+
11
+ `api.d.ts` beschreibt die oeffentliche Core-API aus `api.js`: `initXTendAPI(manifest)`, den globalen Namespace `window.XTend.*`, die Legacy-Aliase und das Event `xtend-api-ready`. Die Declaration ist types-only; `api.js` bleibt runtime-unveraendert.
12
+
13
+ ## Namespace
14
+
15
+ Der zentrale Namespace-Typ heisst `XTendNamespace`.
16
+
17
+ | API | Typ |
18
+ | --- | --- |
19
+ | `window.XTend.compliance` | `XTendComplianceApi` |
20
+ | `window.XTend.theme` | `XTendThemeApi` |
21
+ | `window.XTend.toast` | `XTendToastApi` |
22
+ | `window.XTend.alert` | `XTendAlertApi` |
23
+ | `window.XTend.dialog` | `XTendDialogApi` |
24
+ | `window.XTend.modal` | `XTendModalApi` |
25
+
26
+ ## Legacy-Aliase
27
+
28
+ `api.d.ts` typisiert weiterhin die bestehenden globalen Komfort-Aliase:
29
+
30
+ - `window.XTheme`
31
+ - `window.XToast`
32
+ - `window.XAlert`
33
+ - `window.XDialog`
34
+ - `window.XModal`
35
+ - `window.showToast`
36
+ - `window.showAlert`
37
+ - `window.showDialog`
38
+ - `window.showModal`
39
+
40
+ ## Event
41
+
42
+ `WindowEventMap` enthaelt `xtend-api-ready` mit `XTendApiReadyDetail`. Der Payload meldet, ob Toast, Alert, Dialog, Modal und Theme APIs initialisiert sind.
43
+
44
+ ## Package Export
45
+
46
+ Der Package-Export `./api` besitzt ab `WP-TypeExports-03` die `types`-Condition `./api.d.ts`. `browser` und `default` zeigen weiter auf `./api.js`.
47
+
48
+ ## Drift Gate
49
+
50
+ Der Gate `type-exports-api` prueft:
51
+
52
+ - `api.d.ts` existiert und ist im Package enthalten.
53
+ - `./api` zeigt per `types` auf `./api.d.ts`.
54
+ - `initXTendAPI`, `window.XTend.*`, Legacy-Aliase und `xtend-api-ready` sind in Runtime und Declaration sichtbar.
55
+ - `api.js` importiert keine Declaration-Datei.
@@ -0,0 +1,55 @@
1
+ # XTend Builder Types
2
+
3
+ Status: `completed`
4
+ Workpackage: `WP-TypeExports-06`
5
+ Schema: `xtend.type-exports.builder-declarations.v1`
6
+ Gate: `node scripts/run_xtend_tests.js type-exports-builder --json`
7
+
8
+ ## Scope
9
+
10
+ `WP-TypeExports-06` typisiert die Builder-, Scaffold- und Component-Lab-Programm-APIs, ohne die CLI oder die Generatoren nach TypeScript zu portieren.
11
+
12
+ Die gemeinsame Grundlage liegt in `./xtend-builder/builder-public-types.d.ts`:
13
+
14
+ - `XtendBuilderComponentInput`
15
+ - `XtendBuilderComponentPlan`
16
+ - `XtendBuilderComponentFilesResult`
17
+ - `XtendBuilderWorkflow`
18
+ - `XtendBuilderComponentLabPlan`
19
+
20
+ ## Declaration Pack
21
+
22
+ Die Root- und Workflow-APIs sind ueber diese Facades stabilisiert:
23
+
24
+ - `./xtend-builder/scaffold.d.ts`
25
+ - `./xtend-builder/lib/cli.d.ts`
26
+ - `./xtend-builder/blueprints/component-blueprint.contract.d.ts`
27
+ - `./xtend-builder/generators/component-plan.d.ts`
28
+ - `./xtend-builder/generators/component-files.d.ts`
29
+ - `./xtend-builder/generators/registry.d.ts`
30
+ - `./xtend-builder/workflows/developer-workflow.d.ts`
31
+
32
+ Component-Lab- und Preview-Consumer erhalten eigene Contracts:
33
+
34
+ - `./xtend-builder/preview/component-preview.d.ts`
35
+ - `./xtend-builder/preview/component-lab.d.ts`
36
+ - `./xtend-builder/preview/component-lab-ux-inspector.d.ts`
37
+
38
+ Die bereits exportierten Typing- und UX-Contract-Module sind als schmale Facades abgebildet, darunter `component-shell-contract`, `component-styling-contract`, `component-network-contract`, `rmt-shell-authoring-contract`, `rmt-dsl-authoring-polish`, die Form-/Feedback-/Navigation-/Overlay-/Layout-UX Contracts und `component-ux-performance-contract`.
39
+
40
+ ## Package Exports
41
+
42
+ Die Package-Exports `./builder`, `./builder/*` sowie die expliziten Builder-Subexports erhalten `types`-Conditions. Beispiel:
43
+
44
+ ```json
45
+ "./builder": {
46
+ "types": "./xtend-builder/scaffold.d.ts",
47
+ "default": "./xtend-builder/scaffold.js"
48
+ }
49
+ ```
50
+
51
+ `./builder/*` bleibt als generischer Anschluss fuer repo-lokale Builder-Module erhalten und zeigt auf `./xtend-builder/*.d.ts`.
52
+
53
+ ## Boundary
54
+
55
+ Die Declarations bleiben `types-only-no-runtime-imports`. Sie importieren keine Builder-Runtime, keine Komponenten, keinen RMT-Kernel und keine Loader-/API-Laufzeit. Der lokale Gate vergleicht Runtime-Exports, Package-`types`-Conditions, vorhandene Declaration-Dateien und die gemeinsame Builder-Type-Basis.
@@ -0,0 +1,44 @@
1
+ # XTend Catalog Types
2
+
3
+ - Contract: `xtend.type-exports.catalog-declarations.v1`
4
+ - Workpackage: `WP-TypeExports-07`
5
+ - Gate: `node scripts/run_xtend_tests.js type-exports-catalog --json`
6
+ - Report: `.xtend-test-results/xtend-type-exports-catalog-report.json`
7
+
8
+ ## Zweck
9
+
10
+ Catalog-Module beschreiben XTend-Gates, Handoffs, Release-Plaene und SurfaceManager-Runtime-Scopes als maschinenlesbare Plan-/Report-Strukturen. `WP-TypeExports-07` fuehrt dafuer ein gemeinsames Declaration-Pattern ein, damit neue Catalogs nicht pro Property neu typisiert werden muessen.
11
+
12
+ `./catalog/catalog-public-types.d.ts` definiert die gemeinsamen Basistypen `XtendCatalogPlan`, `XtendCatalogReport`, `XtendCatalogGate`, `XtendCatalogFactory`, `XtendCatalogValidator` und `XtendCatalogDiagnostic`. Die einzelnen Catalog-Facades exportieren die Runtime-Symbole des jeweiligen `.js`-Moduls und binden Funktionen wie `create*Plan`, `create*Report`, `create*Gate` und `validate*Plan` an diese Basistypen.
13
+
14
+ ## Package Surface
15
+
16
+ Alle oeffentlichen `./catalog/*` Package-Exports besitzen nun eine eigene `types`-Condition. Beispiele:
17
+
18
+ ```json
19
+ "./catalog/epic13-package-export-lock": {
20
+ "types": "./catalog/epic13-package-export-lock.d.ts",
21
+ "default": "./catalog/epic13-package-export-lock.js"
22
+ }
23
+ ```
24
+
25
+ Das Runtime-Ziel bleibt unveraendert. Die Declarations importieren keine Runtime-Dateien und sind als Consumer-Facades gedacht.
26
+
27
+ ## Catalog Familien
28
+
29
+ Der Gate klassifiziert drei fuer XTend wichtige Catalog-Familien:
30
+
31
+ - SurfaceManager-Catalogs bleiben interne XTend-UI-Unterstuetzung und dokumentieren App-Shell-, Surface-, Routing- und Runtime-Handoffs.
32
+ - Epic-Catalogs beschreiben Workpackage-, Gate- und Contract-Plaene ueber mehrere Epics hinweg.
33
+ - Release-Catalogs bündeln Handoff-, Readiness-, Export-Lock- und Migration-Entscheidungen.
34
+
35
+ Die SurfaceManager-Catalogs ersetzen keine Fabric-, RMT-Kernel- oder Runtime-Schicht. Sie bleiben deklarative Plaene und Reports, die UI-Surfaces unterstuetzen.
36
+
37
+ ## Drift Gate
38
+
39
+ ```bash
40
+ node scripts/run_xtend_tests.js type-exports-catalog --json
41
+ npm run test:type-exports-catalog
42
+ ```
43
+
44
+ Der Gate prueft, dass Package-Catalogs ihre `types`-Conditions besitzen, dass alle Catalog-Runtime-Exports in den `.d.ts`-Facades auftauchen, dass SurfaceManager-/Epic-/Release-Catalogs klassifiziert sind und dass keine Runtime-Dateien Declaration-Imports erhalten.