@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,305 @@
1
+ const {
2
+ createComponentCatalogCoverageReport
3
+ } = require('./component-catalog-coverage');
4
+ const {
5
+ createComponentRegressionPriorityPlan
6
+ } = require('./component-regression-priority');
7
+
8
+ const COMPONENT_LONG_TAIL_MIGRATION_SCHEMA = 'xtend.epic11.legacy-long-tail-migration.v1';
9
+ const COMPONENT_LONG_TAIL_MIGRATION_ENTRY_SCHEMA = 'xtend.epic11.legacy-long-tail-migration-entry.v1';
10
+ const COMPONENT_LONG_TAIL_MIGRATION_GATE_SCHEMA = 'xtend.epic11.legacy-long-tail-migration-gate.v1';
11
+
12
+ const KERNEL_BOUNDARY = 'no-rmt-kernel-import-of-xtend-types';
13
+
14
+ const WAVE_DEFINITIONS = Object.freeze({
15
+ 'wave-1-p0-routing-interaction': {
16
+ label: 'P0 routing and interaction closure',
17
+ goal: 'P0 controls reach ux-stable without broad runtime rewrites.',
18
+ components: ['x-tabs']
19
+ },
20
+ 'wave-2-p1-theme-and-interaction': {
21
+ label: 'P1 theme and interaction hardening',
22
+ goal: 'P1 interactive and theme primitives receive explicit A11y and performance profiles.',
23
+ components: ['x-theme', 'x-button', 'x-menu']
24
+ },
25
+ 'wave-3-infrastructure-and-utility-probes': {
26
+ label: 'Infrastructure and utility boundary probes',
27
+ goal: 'Non-visual helper surfaces get suites, types and adapter-boundary probes instead of forced visual shells.',
28
+ components: ['xstate', 'x-utils']
29
+ }
30
+ });
31
+
32
+ const REQUIRED_SOURCE_GATES = Object.freeze([
33
+ 'catalog-coverage',
34
+ 'regression-priority',
35
+ 'component-ux-authoring-docs',
36
+ 'component-ux-browser-smokes',
37
+ 'component-shell-theme-matrix',
38
+ 'references'
39
+ ]);
40
+
41
+ function unique(values) {
42
+ return Array.from(new Set((values || []).filter(Boolean)));
43
+ }
44
+
45
+ function sortMigrationEntries(entries) {
46
+ const waveOrder = Object.keys(WAVE_DEFINITIONS);
47
+ const priorityOrder = { P0: 0, P1: 1, P2: 2 };
48
+ return entries.slice().sort((left, right) => {
49
+ const waveDiff = waveOrder.indexOf(left.wave) - waveOrder.indexOf(right.wave);
50
+ if (waveDiff !== 0) return waveDiff;
51
+ const priorityDiff = (priorityOrder[left.priority] || 99) - (priorityOrder[right.priority] || 99);
52
+ if (priorityDiff !== 0) return priorityDiff;
53
+ return left.tag.localeCompare(right.tag);
54
+ });
55
+ }
56
+
57
+ function resolveWave(tag) {
58
+ return Object.entries(WAVE_DEFINITIONS).find(([, definition]) => definition.components.includes(tag))?.[0]
59
+ || 'wave-3-infrastructure-and-utility-probes';
60
+ }
61
+
62
+ function resolveMissingDimensions(coverage) {
63
+ return Object.entries(coverage || {})
64
+ .filter(([, covered]) => covered !== true)
65
+ .map(([dimension]) => dimension);
66
+ }
67
+
68
+ function resolveTargetMaturity(entry) {
69
+ if ((entry.profiles || []).includes('infrastructure') || (entry.profiles || []).includes('utility')) {
70
+ return 'ux-baseline-probe';
71
+ }
72
+ if (entry.priority === 'P0') return 'ux-stable';
73
+ if (entry.priority === 'P1') return 'ux-ready';
74
+ return entry.customElement === false ? 'ux-baseline-probe' : 'ux-ready';
75
+ }
76
+
77
+ function resolveMigrationKind(entry, missingDimensions) {
78
+ if (entry.customElement === false) {
79
+ return 'adapter-boundary-probe';
80
+ }
81
+ if (missingDimensions.length === 1 && missingDimensions.includes('performance')) {
82
+ return 'profile-completion';
83
+ }
84
+ return 'component-hardening';
85
+ }
86
+
87
+ function resolveRequiredActions(entry, missingDimensions) {
88
+ const actions = [];
89
+ if (missingDimensions.includes('componentSuite')) actions.push('component-suite-authoring');
90
+ if (missingDimensions.includes('fixture')) actions.push('fixture-authoring');
91
+ if (missingDimensions.includes('types')) actions.push('public-types-authoring');
92
+ if (missingDimensions.includes('a11y')) actions.push('runtime-a11y-profile');
93
+ if (missingDimensions.includes('performance')) actions.push('performance-profile');
94
+ if (entry.customElement === false) actions.push('non-custom-element-integration-probe');
95
+ if (entry.customElement === true) actions.push('browser-smoke-and-theme-matrix-coverage');
96
+ return unique(actions);
97
+ }
98
+
99
+ function resolveRequiredGates(entry, migrationKind) {
100
+ const gates = [
101
+ 'node scripts/run_xtend_tests.js catalog-coverage --json',
102
+ 'node scripts/run_xtend_tests.js regression-priority --json',
103
+ 'node scripts/run_xtend_tests.js references --json'
104
+ ];
105
+ if (migrationKind !== 'adapter-boundary-probe') {
106
+ gates.push('node scripts/run_xtend_tests.js component-ux-browser-smokes --json');
107
+ gates.push('node scripts/run_xtend_tests.js component-shell-theme-matrix --json');
108
+ }
109
+ if (entry.priority === 'P0') {
110
+ gates.push('node scripts/run_xtend_tests.js browser --json');
111
+ }
112
+ return unique(gates);
113
+ }
114
+
115
+ function createMigrationEntry(catalogEntry, regressionEntry) {
116
+ const missingDimensions = resolveMissingDimensions(catalogEntry.coverage);
117
+ const wave = resolveWave(catalogEntry.tag);
118
+ const migrationKind = resolveMigrationKind(catalogEntry, missingDimensions);
119
+ return {
120
+ schema: COMPONENT_LONG_TAIL_MIGRATION_ENTRY_SCHEMA,
121
+ tag: catalogEntry.tag,
122
+ status: catalogEntry.status,
123
+ priority: catalogEntry.priority,
124
+ profiles: catalogEntry.profiles.slice(),
125
+ wave,
126
+ waveLabel: WAVE_DEFINITIONS[wave].label,
127
+ targetMaturity: resolveTargetMaturity(catalogEntry),
128
+ migrationKind,
129
+ customElement: catalogEntry.customElement,
130
+ missingDimensions,
131
+ requiredActions: resolveRequiredActions(catalogEntry, missingDimensions),
132
+ regressionTier: regressionEntry ? regressionEntry.tier : 'unclassified',
133
+ browserSmokes: regressionEntry ? regressionEntry.browserSmokes.slice() : [],
134
+ visualStates: regressionEntry ? regressionEntry.visualStates.slice() : [],
135
+ requiredGates: resolveRequiredGates(catalogEntry, migrationKind),
136
+ kernelBoundary: KERNEL_BOUNDARY
137
+ };
138
+ }
139
+
140
+ function summarizeMigrationEntries(entries) {
141
+ return entries.reduce((summary, entry) => {
142
+ summary.byWave[entry.wave] = (summary.byWave[entry.wave] || 0) + 1;
143
+ summary.byMigrationKind[entry.migrationKind] = (summary.byMigrationKind[entry.migrationKind] || 0) + 1;
144
+ summary.byTargetMaturity[entry.targetMaturity] = (summary.byTargetMaturity[entry.targetMaturity] || 0) + 1;
145
+ entry.missingDimensions.forEach((dimension) => {
146
+ summary.missingByDimension[dimension] = summary.missingByDimension[dimension] || [];
147
+ summary.missingByDimension[dimension].push(entry.tag);
148
+ });
149
+ if (entry.customElement) {
150
+ summary.customElementCount += 1;
151
+ } else {
152
+ summary.boundaryProbeCount += 1;
153
+ }
154
+ return summary;
155
+ }, {
156
+ componentCount: entries.length,
157
+ byWave: {},
158
+ byMigrationKind: {},
159
+ byTargetMaturity: {},
160
+ missingByDimension: {},
161
+ customElementCount: 0,
162
+ boundaryProbeCount: 0
163
+ });
164
+ }
165
+
166
+ function createComponentLongTailMigrationPlan(options = {}) {
167
+ const coverageReport = options.coverageReport || createComponentCatalogCoverageReport(options);
168
+ const regressionPlan = options.regressionPlan || createComponentRegressionPriorityPlan({
169
+ rootDir: options.rootDir,
170
+ coverageReport
171
+ });
172
+ const regressionByTag = new Map(regressionPlan.entries.map((entry) => [entry.tag, entry]));
173
+ const entries = sortMigrationEntries(
174
+ coverageReport.entries
175
+ .filter((entry) => entry.status !== 'enterprise-ready')
176
+ .map((entry) => createMigrationEntry(entry, regressionByTag.get(entry.tag)))
177
+ );
178
+ const waves = Object.entries(WAVE_DEFINITIONS).map(([id, definition]) => ({
179
+ id,
180
+ label: definition.label,
181
+ goal: definition.goal,
182
+ components: definition.components.slice()
183
+ }));
184
+
185
+ return {
186
+ schema: COMPONENT_LONG_TAIL_MIGRATION_SCHEMA,
187
+ entrySchema: COMPONENT_LONG_TAIL_MIGRATION_ENTRY_SCHEMA,
188
+ gateSchema: COMPONENT_LONG_TAIL_MIGRATION_GATE_SCHEMA,
189
+ generatedAt: options.generatedAt || 'static-local',
190
+ workpackage: 'WP-E11-17',
191
+ status: 'accepted-migration-plan',
192
+ sourceSchemas: [
193
+ coverageReport.schema,
194
+ regressionPlan.schema,
195
+ 'xtend.epic11.component-ux-authoring-docs.v1',
196
+ 'xtend.epic11.component-ux-browser-smokes.v1',
197
+ 'xtend.epic11.component-shell-theme-matrix.v1'
198
+ ],
199
+ strategy: 'incremental-no-big-bang',
200
+ kernelBoundary: KERNEL_BOUNDARY,
201
+ gates: {
202
+ local: 'node scripts/run_xtend_tests.js component-long-tail-migration --json',
203
+ packageScript: 'npm run test:component-long-tail-migration',
204
+ source: REQUIRED_SOURCE_GATES.slice()
205
+ },
206
+ waves,
207
+ entries,
208
+ summary: summarizeMigrationEntries(entries),
209
+ handoff: {
210
+ nextWorkpackage: 'WP-E11-18',
211
+ nextTitle: 'Epic-11-Abschlussreview und Enterprise UX Handoff',
212
+ releaseReadinessGate: 'npm test'
213
+ }
214
+ };
215
+ }
216
+
217
+ function validateComponentLongTailMigrationPlan(plan) {
218
+ const errors = [];
219
+ if (!plan || plan.schema !== COMPONENT_LONG_TAIL_MIGRATION_SCHEMA) {
220
+ errors.push('plan schema must be xtend.epic11.legacy-long-tail-migration.v1');
221
+ }
222
+ if (!plan || plan.entrySchema !== COMPONENT_LONG_TAIL_MIGRATION_ENTRY_SCHEMA) {
223
+ errors.push('entry schema must be xtend.epic11.legacy-long-tail-migration-entry.v1');
224
+ }
225
+ if (!plan || !Array.isArray(plan.entries) || plan.entries.length === 0) {
226
+ errors.push('plan entries must be a non-empty array');
227
+ }
228
+ if (!plan || plan.strategy !== 'incremental-no-big-bang') {
229
+ errors.push('migration strategy must avoid a big-bang rewrite');
230
+ }
231
+ if (!plan || plan.kernelBoundary !== KERNEL_BOUNDARY) {
232
+ errors.push('RMT kernel boundary must stay visible');
233
+ }
234
+
235
+ (plan && plan.entries || []).forEach((entry) => {
236
+ if (entry.schema !== COMPONENT_LONG_TAIL_MIGRATION_ENTRY_SCHEMA) {
237
+ errors.push(`${entry.tag || '<unknown>'}: entry schema must match`);
238
+ }
239
+ if (!entry.tag || entry.status === 'enterprise-ready') {
240
+ errors.push(`${entry.tag || '<unknown>'}: only non-enterprise-ready entries are part of the long-tail plan`);
241
+ }
242
+ if (!Array.isArray(entry.missingDimensions) || entry.missingDimensions.length === 0) {
243
+ errors.push(`${entry.tag}: missing dimensions must be explicit`);
244
+ }
245
+ if (!Array.isArray(entry.requiredActions) || entry.requiredActions.length === 0) {
246
+ errors.push(`${entry.tag}: required actions must be explicit`);
247
+ }
248
+ if (!Array.isArray(entry.requiredGates) || !entry.requiredGates.some((gate) => gate.includes('catalog-coverage'))) {
249
+ errors.push(`${entry.tag}: catalog-coverage gate must remain required`);
250
+ }
251
+ if (entry.customElement === false && !entry.requiredActions.includes('non-custom-element-integration-probe')) {
252
+ errors.push(`${entry.tag}: non-custom elements require an integration probe`);
253
+ }
254
+ if (entry.priority === 'P0' && entry.targetMaturity !== 'ux-stable') {
255
+ errors.push(`${entry.tag}: P0 long-tail entries must target ux-stable`);
256
+ }
257
+ });
258
+
259
+ return {
260
+ schema: COMPONENT_LONG_TAIL_MIGRATION_GATE_SCHEMA,
261
+ ok: errors.length === 0,
262
+ errors
263
+ };
264
+ }
265
+
266
+ function createMarkdownMatrix(plan) {
267
+ const rows = [
268
+ '| Tag | Wave | Current | Target | Missing | Actions |',
269
+ '|-----|------|---------|--------|---------|---------|'
270
+ ];
271
+ plan.entries.forEach((entry) => {
272
+ rows.push([
273
+ `| \`${entry.tag}\``,
274
+ `\`${entry.wave}\``,
275
+ `\`${entry.status}\``,
276
+ `\`${entry.targetMaturity}\``,
277
+ `\`${entry.missingDimensions.join(', ')}\``,
278
+ `\`${entry.requiredActions.join(', ')}\` |`
279
+ ].join(' | '));
280
+ });
281
+ return rows.join('\n');
282
+ }
283
+
284
+ function createComponentLongTailMigrationGate(options = {}) {
285
+ const plan = createComponentLongTailMigrationPlan(options);
286
+ const validation = validateComponentLongTailMigrationPlan(plan);
287
+ return {
288
+ schema: COMPONENT_LONG_TAIL_MIGRATION_GATE_SCHEMA,
289
+ ok: validation.ok,
290
+ plan,
291
+ errors: validation.errors,
292
+ warnings: []
293
+ };
294
+ }
295
+
296
+ module.exports = {
297
+ COMPONENT_LONG_TAIL_MIGRATION_SCHEMA,
298
+ COMPONENT_LONG_TAIL_MIGRATION_ENTRY_SCHEMA,
299
+ COMPONENT_LONG_TAIL_MIGRATION_GATE_SCHEMA,
300
+ KERNEL_BOUNDARY,
301
+ createComponentLongTailMigrationGate,
302
+ createComponentLongTailMigrationPlan,
303
+ createMarkdownMatrix,
304
+ validateComponentLongTailMigrationPlan
305
+ };
@@ -0,0 +1,20 @@
1
+ import type {
2
+ XtendCatalogConstant,
3
+ XtendCatalogGate,
4
+ XtendCatalogOptions,
5
+ XtendCatalogPlan,
6
+ XtendCatalogRecord,
7
+ XtendCatalogReport
8
+ } from './catalog-public-types';
9
+
10
+
11
+ export declare const COMPONENT_REGRESSION_PRIORITY_ENTRY_SCHEMA: string;
12
+ export declare const COMPONENT_REGRESSION_PRIORITY_GATE_SCHEMA: string;
13
+ export declare const COMPONENT_REGRESSION_PRIORITY_SCHEMA: string;
14
+ export declare const CORE_THEME_VARIANTS: readonly XtendCatalogConstant[] | XtendCatalogConstant;
15
+ export declare const CORE_VIEWPORTS: readonly XtendCatalogConstant[] | XtendCatalogConstant;
16
+ export declare const PROFILE_BROWSER_SMOKES: readonly XtendCatalogConstant[] | XtendCatalogConstant;
17
+ export declare const PROFILE_VISUAL_STATES: readonly XtendCatalogConstant[] | XtendCatalogConstant;
18
+ export declare function createComponentRegressionPriorityGate(options?: XtendCatalogOptions): XtendCatalogGate;
19
+ export declare function createComponentRegressionPriorityPlan(options?: XtendCatalogOptions): XtendCatalogPlan;
20
+ export declare function validateComponentRegressionPriorityPlan(plan?: unknown): XtendCatalogReport;
@@ -0,0 +1,305 @@
1
+ const {
2
+ createComponentCatalogCoverageReport
3
+ } = require('./component-catalog-coverage');
4
+ const {
5
+ createComponentPerformanceProfile
6
+ } = require('../xtend-builder/performance/component-performance-profile');
7
+
8
+ const COMPONENT_REGRESSION_PRIORITY_SCHEMA = 'xtend.catalog.component-regression-priority-plan.v1';
9
+ const COMPONENT_REGRESSION_PRIORITY_ENTRY_SCHEMA = 'xtend.catalog.component-regression-priority-entry.v1';
10
+ const COMPONENT_REGRESSION_PRIORITY_GATE_SCHEMA = 'xtend.catalog.component-regression-priority-gate.v1';
11
+
12
+ const CORE_VIEWPORTS = Object.freeze([
13
+ 'desktop-1280',
14
+ 'mobile-390'
15
+ ]);
16
+
17
+ const CORE_THEME_VARIANTS = Object.freeze([
18
+ 'light',
19
+ 'dark',
20
+ 'forced-colors',
21
+ 'reduced-motion'
22
+ ]);
23
+
24
+ const PROFILE_BROWSER_SMOKES = Object.freeze({
25
+ routing: ['route-change', 'keyboard-navigation', 'history-state', 'rmt-route-adapter'],
26
+ form: ['input-sync', 'validation-feedback', 'keyboard-entry', 'form-associated-submit'],
27
+ overlay: ['focus-trap', 'escape-close', 'scroll-lock', 'focus-restore'],
28
+ feedback: ['live-region', 'dismiss-timer', 'reduced-motion'],
29
+ interactive: ['keyboard-activation', 'focus-visible', 'mobile-tap'],
30
+ media: ['media-controls', 'poster-load', 'fullscreen-toggle'],
31
+ theme: ['theme-switch', 'token-contrast', 'forced-colors'],
32
+ stateful: ['state-sync', 'derived-render-cache'],
33
+ display: ['layout-stability', 'responsive-overflow'],
34
+ iconography: ['layout-stability', 'theme-token-color'],
35
+ infrastructure: ['state-api-integration'],
36
+ utility: ['utility-integration-probe']
37
+ });
38
+
39
+ const PROFILE_VISUAL_STATES = Object.freeze({
40
+ routing: ['initial-route', 'active-route', 'rmt-scheduled-route'],
41
+ form: ['default', 'focus', 'invalid', 'disabled'],
42
+ overlay: ['closed', 'open', 'focus-trapped', 'reduced-motion-open'],
43
+ feedback: ['info', 'warning', 'error', 'dismissed'],
44
+ interactive: ['default', 'hover', 'focus-visible', 'active', 'disabled'],
45
+ media: ['poster', 'playing', 'controls-focus'],
46
+ theme: ['light-theme', 'dark-theme', 'forced-colors'],
47
+ stateful: ['initial-state', 'state-updated'],
48
+ display: ['default-layout', 'narrow-layout'],
49
+ iconography: ['default-layout', 'high-contrast-currentColor'],
50
+ infrastructure: ['api-ready'],
51
+ utility: ['helper-ready']
52
+ });
53
+
54
+ const WAVE_LABELS = Object.freeze({
55
+ 1: 'P0 browser-critical regression baseline',
56
+ 2: 'P1 visual and performance baseline',
57
+ 3: 'P2 long-tail suite and fixture completion',
58
+ 4: 'visual snapshot automation handoff'
59
+ });
60
+
61
+ function unique(values) {
62
+ return Array.from(new Set((values || []).filter(Boolean)));
63
+ }
64
+
65
+ function sortEntriesByPriority(entries) {
66
+ const priorityOrder = { P0: 0, P1: 1, P2: 2 };
67
+ return entries.slice().sort((left, right) => {
68
+ const priorityDiff = (priorityOrder[left.priority] || 99) - (priorityOrder[right.priority] || 99);
69
+ if (priorityDiff !== 0) return priorityDiff;
70
+ return left.tag.localeCompare(right.tag);
71
+ });
72
+ }
73
+
74
+ function resolveTier(entry) {
75
+ if (entry.priority === 'P0') return 'p0-browser-critical';
76
+ if (entry.priority === 'P1' || entry.status === 'typed-contract-gated') return 'p1-visual-performance';
77
+ return 'p2-long-tail';
78
+ }
79
+
80
+ function resolveWave(entry) {
81
+ if (entry.priority === 'P0') return 1;
82
+ if (entry.priority === 'P1') return 2;
83
+ if (!entry.coverage.componentSuite || !entry.coverage.fixture || !entry.coverage.types) return 3;
84
+ return 4;
85
+ }
86
+
87
+ function collectByProfiles(profiles, source) {
88
+ return unique(profiles.flatMap((profile) => source[profile] || []));
89
+ }
90
+
91
+ function resolveRemediation(entry) {
92
+ const remediation = [];
93
+ if (!entry.coverage.componentSuite || !entry.coverage.fixture) {
94
+ remediation.push('long-tail-component-suite-and-fixture');
95
+ }
96
+ if (!entry.coverage.types) {
97
+ remediation.push('public-types-long-tail');
98
+ }
99
+ if (!entry.coverage.a11y) {
100
+ remediation.push('a11y-profile-remediation');
101
+ }
102
+ if (!entry.coverage.performance) {
103
+ remediation.push('performance-profile-authoring');
104
+ }
105
+ if (entry.customElement === false) {
106
+ remediation.push('non-custom-element-integration-probe');
107
+ }
108
+ return remediation;
109
+ }
110
+
111
+ function createRegressionPriorityEntry(entry) {
112
+ const profiles = entry.profiles || ['display'];
113
+ const performanceProfile = createComponentPerformanceProfile({
114
+ tag: entry.tag,
115
+ name: entry.tag.replace(/^x-/, ''),
116
+ profiles
117
+ });
118
+ const tier = resolveTier(entry);
119
+ const wave = resolveWave(entry);
120
+ const browserSmokes = collectByProfiles(profiles, PROFILE_BROWSER_SMOKES);
121
+ const visualStates = collectByProfiles(profiles, PROFILE_VISUAL_STATES);
122
+
123
+ return {
124
+ schema: COMPONENT_REGRESSION_PRIORITY_ENTRY_SCHEMA,
125
+ tag: entry.tag,
126
+ catalogStatus: entry.status,
127
+ priority: entry.priority,
128
+ profiles,
129
+ tier,
130
+ wave,
131
+ waveLabel: WAVE_LABELS[wave],
132
+ customElement: entry.customElement,
133
+ viewports: CORE_VIEWPORTS.slice(),
134
+ themeVariants: CORE_THEME_VARIANTS.slice(),
135
+ browserSmokes,
136
+ visualStates,
137
+ performanceProfile: {
138
+ schema: performanceProfile.schema,
139
+ budgetClass: performanceProfile.budgetClass,
140
+ lane: performanceProfile.lane,
141
+ hydrationPolicy: performanceProfile.hydrationPolicy,
142
+ primaryProfile: performanceProfile.primaryProfile,
143
+ criticalMeasurements: performanceProfile.criticalMeasurements
144
+ },
145
+ remediation: resolveRemediation(entry),
146
+ requiredGates: [
147
+ 'node scripts/run_xtend_tests.js browser --json',
148
+ 'node scripts/run_xtend_tests.js performance-regression --json',
149
+ 'node scripts/run_xtend_tests.js catalog-coverage --json',
150
+ 'node scripts/run_xtend_tests.js references --json'
151
+ ],
152
+ nextAction: wave === 1
153
+ ? 'ER-WP-36: CI Gate fuer browserkritische Regression produktisieren'
154
+ : 'ER-WP-36/ER-WP-38: Regression in CI und Release Checklist staffeln'
155
+ };
156
+ }
157
+
158
+ function summarizeRegressionPriorityEntries(entries) {
159
+ return entries.reduce((summary, entry) => {
160
+ summary.byTier[entry.tier] = (summary.byTier[entry.tier] || 0) + 1;
161
+ summary.byWave[String(entry.wave)] = (summary.byWave[String(entry.wave)] || 0) + 1;
162
+ if (entry.remediation.includes('performance-profile-authoring')) {
163
+ summary.requiresPerformanceProfile += 1;
164
+ }
165
+ if (entry.remediation.includes('a11y-profile-remediation')) {
166
+ summary.requiresA11yRemediation += 1;
167
+ }
168
+ if (entry.remediation.includes('long-tail-component-suite-and-fixture')) {
169
+ summary.requiresLongTailSuite += 1;
170
+ }
171
+ return summary;
172
+ }, {
173
+ componentCount: entries.length,
174
+ byTier: {},
175
+ byWave: {},
176
+ requiresPerformanceProfile: 0,
177
+ requiresA11yRemediation: 0,
178
+ requiresLongTailSuite: 0
179
+ });
180
+ }
181
+
182
+ function createComponentRegressionPriorityPlan(options = {}) {
183
+ const coverageReport = options.coverageReport || createComponentCatalogCoverageReport(options);
184
+ const entries = sortEntriesByPriority(coverageReport.entries).map(createRegressionPriorityEntry);
185
+
186
+ return {
187
+ schema: COMPONENT_REGRESSION_PRIORITY_SCHEMA,
188
+ generatedAt: options.generatedAt || 'static-local',
189
+ sourceCoverageSchema: coverageReport.schema,
190
+ entrySchema: COMPONENT_REGRESSION_PRIORITY_ENTRY_SCHEMA,
191
+ gateSchema: COMPONENT_REGRESSION_PRIORITY_GATE_SCHEMA,
192
+ workpackage: 'ER-WP-35',
193
+ scope: [
194
+ 'visual-snapshots',
195
+ 'browser-smokes',
196
+ 'mobile-viewports',
197
+ 'theme-variants',
198
+ 'performance-profiles',
199
+ 'long-tail-regression'
200
+ ],
201
+ viewports: CORE_VIEWPORTS.slice(),
202
+ themeVariants: CORE_THEME_VARIANTS.slice(),
203
+ waves: Object.assign({}, WAVE_LABELS),
204
+ entries,
205
+ summary: summarizeRegressionPriorityEntries(entries),
206
+ gates: {
207
+ local: 'node scripts/run_xtend_tests.js regression-priority --json',
208
+ packageScript: 'npm run test:regression-priority',
209
+ browser: 'node scripts/run_xtend_tests.js browser --json',
210
+ performance: 'node scripts/run_xtend_tests.js performance-regression --json',
211
+ references: 'node scripts/run_xtend_tests.js references --json'
212
+ },
213
+ handoff: {
214
+ ci: 'ER-WP-36',
215
+ releaseChecklist: 'ER-WP-38',
216
+ adoptionGuide: 'ER-WP-39'
217
+ }
218
+ };
219
+ }
220
+
221
+ function validateComponentRegressionPriorityPlan(plan) {
222
+ const errors = [];
223
+ if (!plan || plan.schema !== COMPONENT_REGRESSION_PRIORITY_SCHEMA) {
224
+ errors.push('plan schema must be xtend.catalog.component-regression-priority-plan.v1');
225
+ }
226
+ if (!plan || !Array.isArray(plan.entries) || plan.entries.length === 0) {
227
+ errors.push('plan entries must be a non-empty array');
228
+ }
229
+
230
+ (plan && plan.entries || []).forEach((entry) => {
231
+ if (entry.schema !== COMPONENT_REGRESSION_PRIORITY_ENTRY_SCHEMA) {
232
+ errors.push(`${entry.tag || '<unknown>'}: entry schema must be xtend.catalog.component-regression-priority-entry.v1`);
233
+ }
234
+ if (!Array.isArray(entry.viewports) || !entry.viewports.includes('desktop-1280') || !entry.viewports.includes('mobile-390')) {
235
+ errors.push(`${entry.tag}: desktop and mobile viewport coverage must be planned`);
236
+ }
237
+ if (!Array.isArray(entry.themeVariants) || !entry.themeVariants.includes('light') || !entry.themeVariants.includes('dark')) {
238
+ errors.push(`${entry.tag}: light and dark theme variants must be planned`);
239
+ }
240
+ if (!entry.performanceProfile || entry.performanceProfile.schema !== 'xtend.performance.component-profile.v1') {
241
+ errors.push(`${entry.tag}: performance profile plan must be derived`);
242
+ }
243
+ if (entry.priority === 'P0' && entry.tier !== 'p0-browser-critical') {
244
+ errors.push(`${entry.tag}: P0 component must be browser-critical`);
245
+ }
246
+ if (entry.customElement !== false && (!Array.isArray(entry.visualStates) || entry.visualStates.length === 0)) {
247
+ errors.push(`${entry.tag}: custom element must define visual states`);
248
+ }
249
+ });
250
+
251
+ return {
252
+ schema: COMPONENT_REGRESSION_PRIORITY_GATE_SCHEMA,
253
+ ok: errors.length === 0,
254
+ errors
255
+ };
256
+ }
257
+
258
+ function createComponentRegressionPriorityGate(options = {}) {
259
+ const plan = createComponentRegressionPriorityPlan(options);
260
+ const validation = validateComponentRegressionPriorityPlan(plan);
261
+ const warnings = [];
262
+
263
+ if (plan.summary.requiresPerformanceProfile > 0) {
264
+ warnings.push({
265
+ dimension: 'performance',
266
+ count: plan.summary.requiresPerformanceProfile,
267
+ message: `${plan.summary.requiresPerformanceProfile} component performance profiles still need runtime/source authoring`
268
+ });
269
+ }
270
+ if (plan.summary.requiresA11yRemediation > 0) {
271
+ warnings.push({
272
+ dimension: 'a11y',
273
+ count: plan.summary.requiresA11yRemediation,
274
+ message: `${plan.summary.requiresA11yRemediation} components need A11y remediation before enterprise-ready classification`
275
+ });
276
+ }
277
+ if (plan.summary.requiresLongTailSuite > 0) {
278
+ warnings.push({
279
+ dimension: 'long-tail',
280
+ count: plan.summary.requiresLongTailSuite,
281
+ message: `${plan.summary.requiresLongTailSuite} long-tail components still need suite and fixture coverage`
282
+ });
283
+ }
284
+
285
+ return {
286
+ schema: COMPONENT_REGRESSION_PRIORITY_GATE_SCHEMA,
287
+ ok: validation.ok,
288
+ plan,
289
+ errors: validation.errors,
290
+ warnings
291
+ };
292
+ }
293
+
294
+ module.exports = {
295
+ COMPONENT_REGRESSION_PRIORITY_ENTRY_SCHEMA,
296
+ COMPONENT_REGRESSION_PRIORITY_GATE_SCHEMA,
297
+ COMPONENT_REGRESSION_PRIORITY_SCHEMA,
298
+ CORE_THEME_VARIANTS,
299
+ CORE_VIEWPORTS,
300
+ PROFILE_BROWSER_SMOKES,
301
+ PROFILE_VISUAL_STATES,
302
+ createComponentRegressionPriorityGate,
303
+ createComponentRegressionPriorityPlan,
304
+ validateComponentRegressionPriorityPlan
305
+ };
@@ -0,0 +1,32 @@
1
+ import type {
2
+ XtendCatalogConstant,
3
+ XtendCatalogOptions,
4
+ XtendCatalogRecord,
5
+ XtendCatalogReport
6
+ } from './catalog-public-types';
7
+
8
+ export declare const ADOPTION_RISKS: readonly XtendCatalogRecord[];
9
+ export declare const COMPATIBILITY_ALIASES: readonly XtendCatalogRecord[];
10
+ export declare const CURRENT_VERSION: string;
11
+ export declare const ENTERPRISE_COMPONENT_FLEX_RELEASE_HANDOFF_BACKLOG: string;
12
+ export declare const ENTERPRISE_COMPONENT_FLEX_RELEASE_HANDOFF_DOC: string;
13
+ export declare const ENTERPRISE_COMPONENT_FLEX_RELEASE_HANDOFF_LOCAL_GATE: string;
14
+ export declare const ENTERPRISE_COMPONENT_FLEX_RELEASE_HANDOFF_MODULE: string;
15
+ export declare const ENTERPRISE_COMPONENT_FLEX_RELEASE_HANDOFF_PACKAGE_SCRIPT: string;
16
+ export declare const ENTERPRISE_COMPONENT_FLEX_RELEASE_HANDOFF_REPORT_SCHEMA: string;
17
+ export declare const ENTERPRISE_COMPONENT_FLEX_RELEASE_HANDOFF_SCHEMA: string;
18
+ export declare const ENTERPRISE_COMPONENT_FLEX_RELEASE_HANDOFF_STATUS: string;
19
+ export declare const ENTERPRISE_COMPONENT_FLEX_RELEASE_HANDOFF_SUITE: string;
20
+ export declare const ENTERPRISE_COMPONENT_FLEX_RELEASE_HANDOFF_TARGET: string;
21
+ export declare const ENTERPRISE_COMPONENT_FLEX_RELEASE_HANDOFF_WORKPACKAGE: string;
22
+ export declare const MIGRATION_SECTIONS: readonly XtendCatalogRecord[];
23
+ export declare const PROPOSED_VERSION: string;
24
+ export declare const PUBLISH_BOUNDARY: string;
25
+ export declare const RELEASE_CHECKLIST: readonly XtendCatalogConstant[];
26
+ export declare const RELEASE_GATES: readonly XtendCatalogConstant[];
27
+ export declare const REQUIRED_WORKPACKAGES: readonly XtendCatalogConstant[];
28
+ export declare const SEMVER_IMPACTS: readonly XtendCatalogRecord[];
29
+ export declare const SOURCE_GATES: readonly XtendCatalogConstant[];
30
+ export declare function createEnterpriseComponentFlexReleaseHandoff(options?: XtendCatalogOptions): XtendCatalogRecord;
31
+ export declare function createEnterpriseComponentFlexReleaseHandoffReport(options?: XtendCatalogOptions): XtendCatalogReport;
32
+ export declare function validateEnterpriseComponentFlexReleaseHandoff(handoff?: unknown): XtendCatalogReport;