@ccslabs/xtend 0.1.0-rc.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (566) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +4 -0
  3. package/catalog/component-catalog-coverage.js +2 -0
  4. package/catalog/epic13-package-export-lock.js +11 -1
  5. package/catalog/epic13-rmt-production-readiness.js +0 -1
  6. package/catalog/epic18-rmt-action-effect-runtime.d.ts +36 -0
  7. package/catalog/epic18-rmt-action-effect-runtime.js +249 -0
  8. package/catalog/epic18-rmt-app-platform-authoring.d.ts +39 -0
  9. package/catalog/epic18-rmt-app-platform-authoring.js +319 -0
  10. package/catalog/epic18-rmt-app-platform-fixture.d.ts +33 -0
  11. package/catalog/epic18-rmt-app-platform-fixture.js +221 -0
  12. package/catalog/epic18-rmt-app-platform-release-handoff.d.ts +30 -0
  13. package/catalog/epic18-rmt-app-platform-release-handoff.js +231 -0
  14. package/catalog/epic18-rmt-app-platform-tooling.d.ts +38 -0
  15. package/catalog/epic18-rmt-app-platform-tooling.js +242 -0
  16. package/catalog/epic18-rmt-component-template-primitives.d.ts +33 -0
  17. package/catalog/epic18-rmt-component-template-primitives.js +240 -0
  18. package/catalog/epic18-rmt-dom-descriptor-renderer.d.ts +35 -0
  19. package/catalog/epic18-rmt-dom-descriptor-renderer.js +232 -0
  20. package/catalog/epic18-rmt-event-routing-runtime.d.ts +35 -0
  21. package/catalog/epic18-rmt-event-routing-runtime.js +234 -0
  22. package/catalog/epic18-rmt-state-selector-runtime.d.ts +34 -0
  23. package/catalog/epic18-rmt-state-selector-runtime.js +216 -0
  24. package/catalog/epic18-rmt-surface-resource-graph-runtime.d.ts +36 -0
  25. package/catalog/epic18-rmt-surface-resource-graph-runtime.js +256 -0
  26. package/catalog/surface-manager-controller.js +5 -1
  27. package/catalog/surface-manager-materialization.js +7 -1
  28. package/catalog/surface-manager-overlay-bridge.js +41 -6
  29. package/catalog/surface-manager-workbench-fixture.js +1 -1
  30. package/catalog/surface-type-capability-matrix.d.ts +61 -0
  31. package/catalog/surface-type-capability-matrix.js +183 -0
  32. package/catalog/type-exports-rmt.js +37 -1
  33. package/catalog/type-exports.js +3 -3
  34. package/components/icon-packs/lucide.js +4 -0
  35. package/components/manifest.json +2 -0
  36. package/components/prism-rmt.d.ts +34 -0
  37. package/components/prism-rmt.js +130 -0
  38. package/components/xcards.js +15 -0
  39. package/components/xcode.d.ts +36 -1
  40. package/components/xcode.js +215 -20
  41. package/components/xfooter.js +17 -0
  42. package/components/xheader.js +14 -0
  43. package/components/xhero.js +16 -1
  44. package/components/xlink.js +97 -14
  45. package/components/xmasonry.js +15 -0
  46. package/components/xplayer.d.ts +44 -2
  47. package/components/xplayer.js +242 -15
  48. package/components/xrouter.js +27 -2
  49. package/components/xsection.js +15 -0
  50. package/components/xsidepanel.js +10 -2
  51. package/components/xsurfacemanager-controller.d.ts +2 -1
  52. package/components/xsurfacemanager-controller.js +27 -3
  53. package/components/xsurfacemanager.d.ts +2 -0
  54. package/components/xsurfacemanager.js +20 -8
  55. package/components/xsurfaceoverlay-bridge.d.ts +20 -5
  56. package/components/xsurfaceoverlay-bridge.js +114 -18
  57. package/components/xsurfaceportal.d.ts +29 -0
  58. package/components/xsurfaceportal.js +122 -0
  59. package/components/xsurfaceregion.d.ts +50 -0
  60. package/components/xsurfaceregion.js +285 -0
  61. package/components/xsurfacewindow.js +2 -1
  62. package/components/xtooltip.js +89 -23
  63. package/docs/README.md +222 -298
  64. package/docs/changelog.md +107 -0
  65. package/docs/component-catalog-coverage.md +9 -9
  66. package/docs/component-platform.md +19 -1
  67. package/docs/component-ux-app-authoring.md +56 -63
  68. package/docs/components/xcode.md +83 -53
  69. package/docs/components/xsurfaceportal.md +32 -0
  70. package/docs/components/xsurfaceregion.md +37 -0
  71. package/docs/components.md +105 -69
  72. package/docs/de/README.md +264 -0
  73. package/docs/de/XTend-ADR.md +221 -0
  74. package/docs/de/a11y-keyboard-smokes.md +62 -0
  75. package/docs/de/about.md +18 -0
  76. package/docs/de/api.md +157 -0
  77. package/docs/de/best-practices.md +76 -0
  78. package/docs/de/changelog.md +107 -0
  79. package/docs/de/component-catalog-coverage.md +58 -0
  80. package/docs/de/component-lab.md +103 -0
  81. package/docs/de/component-long-tail-migration.md +41 -0
  82. package/docs/de/component-platform.md +177 -0
  83. package/docs/de/component-ux-app-authoring.md +123 -0
  84. package/docs/de/component-ux-authoring.md +96 -0
  85. package/docs/de/component-ux-gates.md +45 -0
  86. package/docs/de/components/x-rmt-lifecycle-demo-build.md +60 -0
  87. package/docs/de/components/xalert.md +81 -0
  88. package/docs/de/components/xbutton.md +103 -0
  89. package/docs/de/components/xcalendar.md +82 -0
  90. package/docs/de/components/xcards.md +128 -0
  91. package/docs/de/components/xcheckbox.md +102 -0
  92. package/docs/de/components/xcode.md +156 -0
  93. package/docs/de/components/xdialog.md +92 -0
  94. package/docs/de/components/xdrawer.md +84 -0
  95. package/docs/de/components/xfooter.md +126 -0
  96. package/docs/de/components/xform.md +128 -0
  97. package/docs/de/components/xheader.md +308 -0
  98. package/docs/de/components/xhero.md +142 -0
  99. package/docs/de/components/xicon.md +125 -0
  100. package/docs/de/components/xinput.md +129 -0
  101. package/docs/de/components/xlightbox.md +98 -0
  102. package/docs/de/components/xlink.md +109 -0
  103. package/docs/de/components/xmasonry.md +124 -0
  104. package/docs/de/components/xmenu.md +158 -0
  105. package/docs/de/components/xmodal.md +82 -0
  106. package/docs/de/components/xplayer.md +104 -0
  107. package/docs/de/components/xpopover.md +67 -0
  108. package/docs/de/components/xprogress.md +56 -0
  109. package/docs/de/components/xradio.md +103 -0
  110. package/docs/de/components/xrouter.md +260 -0
  111. package/docs/de/components/xsection.md +125 -0
  112. package/docs/de/components/xselect.md +105 -0
  113. package/docs/de/components/xsidepanel.md +30 -0
  114. package/docs/de/components/xspinner.md +102 -0
  115. package/docs/de/components/xstate.md +148 -0
  116. package/docs/de/components/xstatus.md +55 -0
  117. package/docs/de/components/xsummary.md +78 -0
  118. package/docs/de/components/xsurfacemanager.md +27 -0
  119. package/docs/de/components/xsurfacewindow.md +21 -0
  120. package/docs/de/components/xtabs.md +160 -0
  121. package/docs/de/components/xtextarea.md +98 -0
  122. package/docs/de/components/xtheme.md +167 -0
  123. package/docs/de/components/xtoast.md +62 -0
  124. package/docs/de/components/xtooltip.md +66 -0
  125. package/docs/de/components/xtype.md +82 -0
  126. package/docs/de/components/xutils.md +144 -0
  127. package/docs/de/components/xwriter.md +94 -0
  128. package/docs/de/components.md +153 -0
  129. package/docs/de/conditional-network-evidence-ci.md +38 -0
  130. package/docs/de/conditional-network-evidence.md +50 -0
  131. package/docs/de/core-migration-guide.md +110 -0
  132. package/docs/de/design-tokens.md +116 -0
  133. package/docs/de/docs-rmt-production-hardening.md +31 -0
  134. package/docs/de/enterprise-adoption.md +413 -0
  135. package/docs/de/enterprise-component-flex-release-handoff.md +129 -0
  136. package/docs/de/epic10-platform-gates.md +62 -0
  137. package/docs/de/epic10-release-handoff.md +81 -0
  138. package/docs/de/epic11-enterprise-ux-handoff.md +70 -0
  139. package/docs/de/epic12-rc0-handoff.md +61 -0
  140. package/docs/de/epic18-media-manager-vendor-upstream.md +318 -0
  141. package/docs/de/epic18-rmt-app-platform-release-handoff.md +67 -0
  142. package/docs/de/epic18-vendor-bugfixes.md +34 -0
  143. package/docs/de/existing-component-metadata.md +67 -0
  144. package/docs/de/hydration-performance-closure.md +34 -0
  145. package/docs/de/hydration-policies.md +71 -0
  146. package/docs/de/known-residual-triage.md +22 -0
  147. package/docs/de/manifest-import-policy.md +79 -0
  148. package/docs/de/manifest.md +112 -0
  149. package/docs/de/motion-contrast.md +67 -0
  150. package/docs/de/package-export-lock.md +44 -0
  151. package/docs/de/performance-measurements.md +106 -0
  152. package/docs/de/performance-regression.md +89 -0
  153. package/docs/de/performance.md +94 -0
  154. package/docs/de/previews/README.md +17 -0
  155. package/docs/de/prod-browser-csp-smokes.md +40 -0
  156. package/docs/de/public-component-types.md +79 -0
  157. package/docs/de/quick-start-guide.md +220 -0
  158. package/docs/de/rc0-adoption-guide.md +102 -0
  159. package/docs/de/rc0-gate-matrix.md +58 -0
  160. package/docs/de/rc1-gate-matrix-ci-handoff.md +56 -0
  161. package/docs/de/rc1-migration-notes.md +69 -0
  162. package/docs/de/rc1-readiness.md +46 -0
  163. package/docs/de/release-owner-acceptance.md +56 -0
  164. package/docs/de/release-report-pack-dry-run-evidence.md +39 -0
  165. package/docs/de/rmt-action-effect-runtime.md +81 -0
  166. package/docs/de/rmt-app-platform-authoring.md +54 -0
  167. package/docs/de/rmt-app-platform-fixture.md +46 -0
  168. package/docs/de/rmt-app-platform-migration-guide.md +88 -0
  169. package/docs/de/rmt-app-platform-tooling.md +79 -0
  170. package/docs/de/rmt-component-template-primitives.md +57 -0
  171. package/docs/de/rmt-dom-descriptor-renderer.md +64 -0
  172. package/docs/de/rmt-dsl-authoring-polish.md +145 -0
  173. package/docs/de/rmt-event-routing-runtime.md +81 -0
  174. package/docs/de/rmt-first-demo-app.md +77 -0
  175. package/docs/de/rmt-first-xtend-apps.md +129 -0
  176. package/docs/de/rmt-kernel-panic-recovery-incident-handoff.md +61 -0
  177. package/docs/de/rmt-kernel-security-hardening-migration.md +50 -0
  178. package/docs/de/rmt-kernel-trusted-output-authoring.md +69 -0
  179. package/docs/de/rmt-language-server.md +234 -0
  180. package/docs/de/rmt-lifecycle-demo.md +24 -0
  181. package/docs/de/rmt-linter.md +140 -0
  182. package/docs/de/rmt-node-ssr-adapter.md +100 -0
  183. package/docs/de/rmt-php-ssr-adapter.md +120 -0
  184. package/docs/de/rmt-production-readiness.md +63 -0
  185. package/docs/de/rmt-state-selector-runtime.md +47 -0
  186. package/docs/de/rmt-surface-resource-graph-runtime.md +92 -0
  187. package/docs/de/rmt-tooling-release-gates.md +77 -0
  188. package/docs/de/rmt-vnext-authoring.md +170 -0
  189. package/docs/de/rmt-vnext-component-primitives.md +188 -0
  190. package/docs/de/rmt-vnext-cross-surface-events.md +68 -0
  191. package/docs/de/rmt-vnext-enterprise-mfe-handoff.md +70 -0
  192. package/docs/de/rmt-vnext-fabric-bridge-evidence.md +81 -0
  193. package/docs/de/rmt-vnext-migration-notes.md +62 -0
  194. package/docs/de/rmt-vnext-primitive-authoring-tooling.md +247 -0
  195. package/docs/de/rmt-vnext-primitive-grammar-design.md +289 -0
  196. package/docs/de/rmt-vnext-primitive-lowering.md +108 -0
  197. package/docs/de/rmt-vnext-primitive-migration.md +119 -0
  198. package/docs/de/rmt-vnext-primitive-parser-ast.md +76 -0
  199. package/docs/de/rmt-vnext-primitive-semantic-graph.md +118 -0
  200. package/docs/de/rmt-vnext-primitives-compiler-backlog.md +739 -0
  201. package/docs/de/rmt-vnext-release-handoff.md +83 -0
  202. package/docs/de/rmt-vnext-remote-surfaces.md +90 -0
  203. package/docs/de/rmt-vnext-source-to-sea-gate.md +612 -0
  204. package/docs/de/rmt-vnext-surface-registry-enterprise.md +76 -0
  205. package/docs/de/screenreader-signals.md +56 -0
  206. package/docs/de/supply-chain-gates.md +100 -0
  207. package/docs/de/surface-manager-authoring-guide.md +94 -0
  208. package/docs/de/surface-manager-browser-lab.md +45 -0
  209. package/docs/de/surface-manager-component-lab.md +43 -0
  210. package/docs/de/surface-manager-controller.md +66 -0
  211. package/docs/de/surface-manager-layout-engines.md +32 -0
  212. package/docs/de/surface-manager-lazy-hydration.md +63 -0
  213. package/docs/de/surface-manager-migration-guide.md +122 -0
  214. package/docs/de/surface-manager-native-rmt-surfaces.md +38 -0
  215. package/docs/de/surface-manager-overlay-bridge.md +53 -0
  216. package/docs/de/surface-manager-persistence.md +30 -0
  217. package/docs/de/surface-manager-quality-gates.md +51 -0
  218. package/docs/de/surface-manager-release-handoff.md +68 -0
  219. package/docs/de/surface-manager-remote-policy.md +54 -0
  220. package/docs/de/surface-manager-rmt-authoring.md +102 -0
  221. package/docs/de/surface-manager-route-lifecycle.md +59 -0
  222. package/docs/de/surface-manager-runtime-release-handoff.md +69 -0
  223. package/docs/de/surface-manager-side-panel-runtime.md +36 -0
  224. package/docs/de/surface-manager-stack-policy.md +39 -0
  225. package/docs/de/surface-manager-window-runtime.md +47 -0
  226. package/docs/de/surface-manager-workbench-fixture.md +43 -0
  227. package/docs/de/third-party-design-authoring.md +406 -0
  228. package/docs/de/trusted-dom-boundary-browser-proof.md +32 -0
  229. package/docs/de/trusted-dom-sanitizing.md +110 -0
  230. package/docs/de/type-exports.md +61 -0
  231. package/docs/de/typescript-components.md +63 -0
  232. package/docs/de/visual-browser-regression.md +83 -0
  233. package/docs/de/visual-owner-artifacts.md +46 -0
  234. package/docs/de/visual-snapshot-automation.md +87 -0
  235. package/docs/de/xtend-api-types.md +55 -0
  236. package/docs/de/xtend-builder-types.md +55 -0
  237. package/docs/de/xtend-catalog-types.md +44 -0
  238. package/docs/de/xtend-fabric-rmt-lane-mapping.md +143 -0
  239. package/docs/de/xtend-fabric.md +474 -0
  240. package/docs/de/xtend-loader-types.md +58 -0
  241. package/docs/de/xtend-loader.md +265 -0
  242. package/docs/de/xtend-policy-types.md +38 -0
  243. package/docs/de/xtend-rmt-types.md +40 -0
  244. package/docs/de/xtend-vendor-types.md +36 -0
  245. package/docs/de/xtendrmt-app-dsl.md +334 -0
  246. package/docs/de/xtendrmt-migration-guide.md +266 -0
  247. package/docs/de/xtendrmt-native-authoring.md +333 -0
  248. package/docs/de/xtendrmt-overview.md +109 -0
  249. package/docs/de/xtendrmt-parsedown-scheduling.md +301 -0
  250. package/docs/de/xtendrmt-runtime-bridge.md +155 -0
  251. package/docs/en/README.md +163 -0
  252. package/docs/en/XTend-ADR.md +221 -0
  253. package/docs/en/a11y-keyboard-smokes.md +68 -0
  254. package/docs/en/about.md +25 -0
  255. package/docs/en/api.md +171 -0
  256. package/docs/en/best-practices.md +125 -0
  257. package/docs/en/changelog.md +104 -0
  258. package/docs/en/component-catalog-coverage.md +104 -0
  259. package/docs/en/component-lab.md +103 -0
  260. package/docs/en/component-long-tail-migration.md +41 -0
  261. package/docs/en/component-platform.md +243 -0
  262. package/docs/en/component-ux-app-authoring.md +118 -0
  263. package/docs/en/component-ux-authoring.md +96 -0
  264. package/docs/en/component-ux-gates.md +45 -0
  265. package/docs/en/components/x-rmt-lifecycle-demo-build.md +75 -0
  266. package/docs/en/components/xalert.md +94 -0
  267. package/docs/en/components/xbutton.md +118 -0
  268. package/docs/en/components/xcalendar.md +95 -0
  269. package/docs/en/components/xcards.md +139 -0
  270. package/docs/en/components/xcheckbox.md +118 -0
  271. package/docs/en/components/xcode.md +153 -0
  272. package/docs/en/components/xdialog.md +108 -0
  273. package/docs/en/components/xdrawer.md +110 -0
  274. package/docs/en/components/xfooter.md +138 -0
  275. package/docs/en/components/xform.md +147 -0
  276. package/docs/en/components/xheader.md +308 -0
  277. package/docs/en/components/xhero.md +157 -0
  278. package/docs/en/components/xicon.md +149 -0
  279. package/docs/en/components/xinput.md +147 -0
  280. package/docs/en/components/xlightbox.md +113 -0
  281. package/docs/en/components/xlink.md +130 -0
  282. package/docs/en/components/xmasonry.md +136 -0
  283. package/docs/en/components/xmenu.md +185 -0
  284. package/docs/en/components/xmodal.md +102 -0
  285. package/docs/en/components/xplayer.md +114 -0
  286. package/docs/en/components/xpopover.md +87 -0
  287. package/docs/en/components/xprogress.md +73 -0
  288. package/docs/en/components/xradio.md +119 -0
  289. package/docs/en/components/xrouter.md +260 -0
  290. package/docs/en/components/xsection.md +136 -0
  291. package/docs/en/components/xselect.md +122 -0
  292. package/docs/en/components/xsidepanel.md +48 -0
  293. package/docs/en/components/xspinner.md +118 -0
  294. package/docs/en/components/xstate.md +163 -0
  295. package/docs/en/components/xstatus.md +71 -0
  296. package/docs/en/components/xsummary.md +90 -0
  297. package/docs/en/components/xsurfacemanager.md +42 -0
  298. package/docs/en/components/xsurfacewindow.md +31 -0
  299. package/docs/en/components/xtabs.md +187 -0
  300. package/docs/en/components/xtextarea.md +115 -0
  301. package/docs/en/components/xtheme.md +203 -0
  302. package/docs/en/components/xtoast.md +78 -0
  303. package/docs/en/components/xtooltip.md +85 -0
  304. package/docs/en/components/xtype.md +91 -0
  305. package/docs/en/components/xutils.md +161 -0
  306. package/docs/en/components/xwriter.md +106 -0
  307. package/docs/en/components.md +151 -0
  308. package/docs/en/conditional-network-evidence-ci.md +38 -0
  309. package/docs/en/conditional-network-evidence.md +50 -0
  310. package/docs/en/core-migration-guide.md +110 -0
  311. package/docs/en/design-tokens.md +137 -0
  312. package/docs/en/docs-rmt-production-hardening.md +31 -0
  313. package/docs/en/enterprise-adoption.md +413 -0
  314. package/docs/en/enterprise-component-flex-release-handoff.md +129 -0
  315. package/docs/en/epic10-platform-gates.md +62 -0
  316. package/docs/en/epic10-release-handoff.md +81 -0
  317. package/docs/en/epic11-enterprise-ux-handoff.md +70 -0
  318. package/docs/en/epic12-rc0-handoff.md +61 -0
  319. package/docs/en/epic18-media-manager-vendor-upstream.md +232 -0
  320. package/docs/en/epic18-rmt-app-platform-release-handoff.md +60 -0
  321. package/docs/en/epic18-vendor-bugfixes.md +29 -0
  322. package/docs/en/existing-component-metadata.md +67 -0
  323. package/docs/en/hydration-performance-closure.md +34 -0
  324. package/docs/en/hydration-policies.md +75 -0
  325. package/docs/en/known-residual-triage.md +22 -0
  326. package/docs/en/manifest-import-policy.md +81 -0
  327. package/docs/en/manifest.md +135 -0
  328. package/docs/en/motion-contrast.md +67 -0
  329. package/docs/en/package-export-lock.md +44 -0
  330. package/docs/en/performance-measurements.md +106 -0
  331. package/docs/en/performance-regression.md +89 -0
  332. package/docs/en/performance.md +132 -0
  333. package/docs/en/previews/README.md +17 -0
  334. package/docs/en/prod-browser-csp-smokes.md +40 -0
  335. package/docs/en/public-component-types.md +79 -0
  336. package/docs/en/quick-start-guide.md +189 -0
  337. package/docs/en/rc0-adoption-guide.md +102 -0
  338. package/docs/en/rc0-gate-matrix.md +58 -0
  339. package/docs/en/rc1-gate-matrix-ci-handoff.md +56 -0
  340. package/docs/en/rc1-migration-notes.md +69 -0
  341. package/docs/en/rc1-readiness.md +46 -0
  342. package/docs/en/release-owner-acceptance.md +56 -0
  343. package/docs/en/release-report-pack-dry-run-evidence.md +39 -0
  344. package/docs/en/rmt-action-effect-runtime.md +101 -0
  345. package/docs/en/rmt-app-platform-authoring.md +47 -0
  346. package/docs/en/rmt-app-platform-fixture.md +35 -0
  347. package/docs/en/rmt-app-platform-migration-guide.md +75 -0
  348. package/docs/en/rmt-app-platform-tooling.md +58 -0
  349. package/docs/en/rmt-component-template-primitives.md +49 -0
  350. package/docs/en/rmt-dom-descriptor-renderer.md +54 -0
  351. package/docs/en/rmt-dsl-authoring-polish.md +143 -0
  352. package/docs/en/rmt-event-routing-runtime.md +98 -0
  353. package/docs/en/rmt-first-demo-app.md +87 -0
  354. package/docs/en/rmt-first-xtend-apps.md +127 -0
  355. package/docs/en/rmt-kernel-panic-recovery-incident-handoff.md +60 -0
  356. package/docs/en/rmt-kernel-security-hardening-migration.md +49 -0
  357. package/docs/en/rmt-kernel-trusted-output-authoring.md +68 -0
  358. package/docs/en/rmt-language-server.md +243 -0
  359. package/docs/en/rmt-lifecycle-demo.md +23 -0
  360. package/docs/en/rmt-linter.md +146 -0
  361. package/docs/en/rmt-node-ssr-adapter.md +99 -0
  362. package/docs/en/rmt-php-ssr-adapter.md +118 -0
  363. package/docs/en/rmt-production-readiness.md +63 -0
  364. package/docs/en/rmt-state-selector-runtime.md +34 -0
  365. package/docs/en/rmt-surface-resource-graph-runtime.md +68 -0
  366. package/docs/en/rmt-tooling-release-gates.md +77 -0
  367. package/docs/en/rmt-vnext-authoring.md +102 -0
  368. package/docs/en/rmt-vnext-component-primitives.md +185 -0
  369. package/docs/en/rmt-vnext-cross-surface-events.md +59 -0
  370. package/docs/en/rmt-vnext-enterprise-mfe-handoff.md +62 -0
  371. package/docs/en/rmt-vnext-fabric-bridge-evidence.md +64 -0
  372. package/docs/en/rmt-vnext-migration-notes.md +62 -0
  373. package/docs/en/rmt-vnext-primitive-authoring-tooling.md +174 -0
  374. package/docs/en/rmt-vnext-primitive-grammar-design.md +268 -0
  375. package/docs/en/rmt-vnext-primitive-lowering.md +91 -0
  376. package/docs/en/rmt-vnext-primitive-migration.md +93 -0
  377. package/docs/en/rmt-vnext-primitive-parser-ast.md +59 -0
  378. package/docs/en/rmt-vnext-primitive-semantic-graph.md +103 -0
  379. package/docs/en/rmt-vnext-primitives-compiler-backlog.md +327 -0
  380. package/docs/en/rmt-vnext-release-handoff.md +83 -0
  381. package/docs/en/rmt-vnext-remote-surfaces.md +81 -0
  382. package/docs/en/rmt-vnext-source-to-sea-gate.md +482 -0
  383. package/docs/en/rmt-vnext-surface-registry-enterprise.md +68 -0
  384. package/docs/en/screenreader-signals.md +56 -0
  385. package/docs/en/supply-chain-gates.md +106 -0
  386. package/docs/en/surface-manager-authoring-guide.md +94 -0
  387. package/docs/en/surface-manager-browser-lab.md +45 -0
  388. package/docs/en/surface-manager-component-lab.md +43 -0
  389. package/docs/en/surface-manager-controller.md +66 -0
  390. package/docs/en/surface-manager-layout-engines.md +32 -0
  391. package/docs/en/surface-manager-lazy-hydration.md +63 -0
  392. package/docs/en/surface-manager-migration-guide.md +113 -0
  393. package/docs/en/surface-manager-native-rmt-surfaces.md +38 -0
  394. package/docs/en/surface-manager-overlay-bridge.md +53 -0
  395. package/docs/en/surface-manager-persistence.md +30 -0
  396. package/docs/en/surface-manager-quality-gates.md +51 -0
  397. package/docs/en/surface-manager-release-handoff.md +68 -0
  398. package/docs/en/surface-manager-remote-policy.md +54 -0
  399. package/docs/en/surface-manager-rmt-authoring.md +89 -0
  400. package/docs/en/surface-manager-route-lifecycle.md +59 -0
  401. package/docs/en/surface-manager-runtime-release-handoff.md +69 -0
  402. package/docs/en/surface-manager-side-panel-runtime.md +36 -0
  403. package/docs/en/surface-manager-stack-policy.md +39 -0
  404. package/docs/en/surface-manager-window-runtime.md +47 -0
  405. package/docs/en/surface-manager-workbench-fixture.md +43 -0
  406. package/docs/en/third-party-design-authoring.md +406 -0
  407. package/docs/en/trusted-dom-boundary-browser-proof.md +32 -0
  408. package/docs/en/trusted-dom-sanitizing.md +124 -0
  409. package/docs/en/type-exports.md +61 -0
  410. package/docs/en/typescript-components.md +63 -0
  411. package/docs/en/visual-browser-regression.md +83 -0
  412. package/docs/en/visual-owner-artifacts.md +46 -0
  413. package/docs/en/visual-snapshot-automation.md +87 -0
  414. package/docs/en/xtend-api-types.md +55 -0
  415. package/docs/en/xtend-builder-types.md +55 -0
  416. package/docs/en/xtend-catalog-types.md +44 -0
  417. package/docs/en/xtend-fabric-rmt-lane-mapping.md +143 -0
  418. package/docs/en/xtend-fabric.md +474 -0
  419. package/docs/en/xtend-loader-types.md +58 -0
  420. package/docs/en/xtend-loader.md +265 -0
  421. package/docs/en/xtend-policy-types.md +38 -0
  422. package/docs/en/xtend-rmt-types.md +40 -0
  423. package/docs/en/xtend-vendor-types.md +36 -0
  424. package/docs/en/xtendrmt-app-dsl.md +331 -0
  425. package/docs/en/xtendrmt-migration-guide.md +256 -0
  426. package/docs/en/xtendrmt-native-authoring.md +336 -0
  427. package/docs/en/xtendrmt-overview.md +63 -0
  428. package/docs/en/xtendrmt-parsedown-scheduling.md +301 -0
  429. package/docs/en/xtendrmt-runtime-bridge.md +155 -0
  430. package/docs/enterprise-adoption.md +4 -2
  431. package/docs/epic18-media-manager-vendor-upstream.md +318 -0
  432. package/docs/epic18-rmt-app-platform-release-handoff.md +67 -0
  433. package/docs/epic18-vendor-bugfixes.md +34 -0
  434. package/docs/index.php +1056 -109
  435. package/docs/manifest.md +8 -2
  436. package/docs/menu.json +986 -133
  437. package/docs/package-export-lock.md +2 -2
  438. package/docs/public-component-types.md +2 -2
  439. package/docs/quick-start-guide.md +126 -58
  440. package/docs/rmt-action-effect-runtime.md +101 -0
  441. package/docs/rmt-app-platform-authoring.md +54 -0
  442. package/docs/rmt-app-platform-fixture.md +46 -0
  443. package/docs/rmt-app-platform-migration-guide.md +88 -0
  444. package/docs/rmt-app-platform-tooling.md +79 -0
  445. package/docs/rmt-component-template-primitives.md +57 -0
  446. package/docs/rmt-dom-descriptor-renderer.md +64 -0
  447. package/docs/rmt-dsl-authoring-polish.md +67 -44
  448. package/docs/rmt-event-routing-runtime.md +98 -0
  449. package/docs/rmt-first-demo-app.md +2 -2
  450. package/docs/rmt-first-xtend-apps.md +70 -46
  451. package/docs/rmt-language-server.md +61 -4
  452. package/docs/rmt-lifecycle-demo.md +1 -2
  453. package/docs/rmt-node-ssr-adapter.md +144 -0
  454. package/docs/rmt-php-ssr-adapter.md +158 -0
  455. package/docs/rmt-state-selector-runtime.md +47 -0
  456. package/docs/rmt-surface-resource-graph-runtime.md +92 -0
  457. package/docs/rmt-vnext-authoring.md +128 -18
  458. package/docs/rmt-vnext-component-primitives.md +188 -0
  459. package/docs/rmt-vnext-fabric-bridge-evidence.md +81 -0
  460. package/docs/rmt-vnext-primitive-authoring-tooling.md +247 -0
  461. package/docs/rmt-vnext-primitive-grammar-design.md +289 -0
  462. package/docs/rmt-vnext-primitive-lowering.md +108 -0
  463. package/docs/rmt-vnext-primitive-migration.md +119 -0
  464. package/docs/rmt-vnext-primitive-parser-ast.md +76 -0
  465. package/docs/rmt-vnext-primitive-semantic-graph.md +118 -0
  466. package/docs/rmt-vnext-primitives-compiler-backlog.md +742 -0
  467. package/docs/rmt-vnext-release-handoff.md +14 -0
  468. package/docs/rmt-vnext-source-to-sea-gate.md +629 -0
  469. package/docs/surface-manager-migration-guide.md +34 -6
  470. package/docs/surface-manager-overlay-bridge.md +9 -4
  471. package/docs/surface-manager-rmt-authoring.md +50 -34
  472. package/docs/surface-manager-workbench-fixture.md +1 -2
  473. package/docs/third-party-design-authoring.md +1 -1
  474. package/docs/type-exports.md +3 -3
  475. package/docs/utils/pageloader.js +811 -62
  476. package/docs/visual-browser-regression.md +1 -1
  477. package/docs/xtend-rmt-types.md +3 -2
  478. package/docs/xtendrmt-app-dsl.md +187 -122
  479. package/docs/xtendrmt-docs-shell-vnext.rmt +165 -0
  480. package/docs/xtendrmt-migration-guide.md +48 -17
  481. package/docs/xtendrmt-native-authoring.md +213 -217
  482. package/docs/xtendrmt-overview.md +81 -61
  483. package/docs/xtendrmt-parsedown-scheduling.md +23 -8
  484. package/fabric/package.json +1 -1
  485. package/package.json +684 -21
  486. package/tools/package.json +5 -1
  487. package/tools/rmt-editor/vscode/README.md +72 -5
  488. package/tools/rmt-editor/vscode/XTend-Logo.png +0 -0
  489. package/tools/rmt-editor/vscode/extension.d.ts +33 -0
  490. package/tools/rmt-editor/vscode/extension.js +1816 -7
  491. package/tools/rmt-editor/vscode/language-configuration.json +2 -1
  492. package/tools/rmt-editor/vscode/package.json +193 -2
  493. package/tools/rmt-editor/vscode/snippets/rmt.code-snippets +41 -0
  494. package/tools/rmt-editor/vscode/syntaxes/rmt.tmLanguage.json +103 -1
  495. package/tools/rmt-editor/vscode/templates/launch.json +70 -0
  496. package/tools/rmt-editor/vscode/templates/tasks.json +172 -0
  497. package/tools/rmt-editor/vscode/xtend-rmt-language-0.0.0-enterprise-readiness.vsix +0 -0
  498. package/tools/rmt-language/app-platform-tooling.d.ts +128 -0
  499. package/tools/rmt-language/app-platform-tooling.js +677 -0
  500. package/tools/rmt-language/completions.d.ts +5 -0
  501. package/tools/rmt-language/completions.js +185 -3
  502. package/tools/rmt-language/diagnostics.js +54 -0
  503. package/tools/rmt-language/hover.js +36 -0
  504. package/tools/rmt-language/rmt-tooling-public-types.d.ts +7 -0
  505. package/tools/rmt-language/rules/app-platform-policy.js +39 -0
  506. package/tools/rmt-language/rules/index.js +5 -1
  507. package/tools/rmt-language/semantic-graph.d.ts +6 -0
  508. package/tools/rmt-language/semantic-graph.js +928 -0
  509. package/tools/rmt-language/snippets/index.js +44 -0
  510. package/tools/rmt-language/snippets/rmt.code-snippets +41 -0
  511. package/tools/rmt-language/vnext-compatibility.d.ts +10 -0
  512. package/tools/rmt-language/vnext-compatibility.js +642 -0
  513. package/tools/rmt-language/vnext-compiler.d.ts +5 -0
  514. package/tools/rmt-language/vnext-compiler.js +863 -17
  515. package/tools/rmt-language/vnext-parser.js +725 -9
  516. package/tools/rmt-language/vnext-release.d.ts +1 -0
  517. package/tools/rmt-language/vnext-release.js +20 -0
  518. package/tools/rmt-language/vnext-source-to-sea.d.ts +33 -0
  519. package/tools/rmt-language/vnext-source-to-sea.js +2227 -0
  520. package/tools/rmt-language/vnext-surfaces.js +111 -52
  521. package/tools/rmt-language/vnext-tooling.d.ts +19 -1
  522. package/tools/rmt-language/vnext-tooling.js +1247 -5
  523. package/tools/rmt-language-server/protocol.js +3 -0
  524. package/tools/rmt-language-server/server.d.ts +2 -0
  525. package/tools/rmt-language-server/server.js +176 -22
  526. package/tools/rmt-linter/cli.d.ts +2 -0
  527. package/tools/rmt-linter/cli.js +62 -0
  528. package/xtend-builder/generators/registry.js +11 -0
  529. package/xtend-builder/generators/rmt-app-platform.js +239 -0
  530. package/xtend-builder/generators/rmt-lifecycle-demo.js +3 -11
  531. package/xtend-builder/lib/cli.js +38 -0
  532. package/xtend-builder/package.json +3 -3
  533. package/xtend-builder/scaffold.config.js +29 -2
  534. package/xtend.css +49 -2
  535. package/xtendrmt/package.json +49 -1
  536. package/xtendrmt/rmt-action-effect-runtime.d.ts +126 -0
  537. package/xtendrmt/rmt-action-effect-runtime.js +494 -0
  538. package/xtendrmt/rmt-component-capability-registry.d.ts +180 -0
  539. package/xtendrmt/rmt-component-capability-registry.js +636 -0
  540. package/xtendrmt/rmt-core.d.ts +6 -0
  541. package/xtendrmt/rmt-core.esm.js +32 -6
  542. package/xtendrmt/rmt-dom-descriptor-renderer.d.ts +107 -0
  543. package/xtendrmt/rmt-dom-descriptor-renderer.js +1066 -0
  544. package/xtendrmt/rmt-event-routing-runtime.d.ts +144 -0
  545. package/xtendrmt/rmt-event-routing-runtime.js +666 -0
  546. package/xtendrmt/rmt-lifecycle-demo.app.js +2 -2
  547. package/xtendrmt/rmt-lifecycle-demo.core.json +4 -0
  548. package/xtendrmt/rmt-lifecycle-demo.rmt-build.app.js +1 -1
  549. package/xtendrmt/rmt-lifecycle-demo.rmt-build.scaffold.json +2 -2
  550. package/xtendrmt/rmt-lifecycle-demo.scaffold.json +4 -4
  551. package/xtendrmt/rmt-native-shell-runtime.d.ts +77 -0
  552. package/xtendrmt/rmt-native-shell-runtime.js +309 -0
  553. package/xtendrmt/rmt-node-ssr-adapter.d.ts +197 -0
  554. package/xtendrmt/rmt-node-ssr-adapter.js +1006 -0
  555. package/xtendrmt/rmt-php-ssr-adapter.php +976 -0
  556. package/xtendrmt/rmt-runtime.browser.js +32 -6
  557. package/xtendrmt/rmt-runtime.esm.js +32 -6
  558. package/xtendrmt/rmt-state-selector-runtime.d.ts +166 -0
  559. package/xtendrmt/rmt-state-selector-runtime.js +866 -0
  560. package/xtendrmt/rmt-surface-resource-graph-runtime.d.ts +224 -0
  561. package/xtendrmt/rmt-surface-resource-graph-runtime.js +932 -0
  562. package/xtendrmt/rmt-vnext-enterprise-mfe-demo.core.json +3 -0
  563. package/xtendrmt/rmt-vnext-reference-demo.core.json +3 -0
  564. package/xtendrmt/xtendrmt-bestcase-demo.core.json +3420 -372
  565. package/xtendrmt/xtendrmt-bestcase-demo.js +424 -8
  566. package/xtendrmt/xtendrmt-bestcase-demo.rmt +214 -6
@@ -0,0 +1,136 @@
1
+ # xmasonry - XTend Component
2
+
3
+ > **See also:** [xcards](./xcards.md), [xsection](./xsection.md)
4
+
5
+ ## Overview
6
+
7
+ `<x-masonry>` is a flexible grid layout for tile-like arrangements
8
+ (masonry layout). It is suitable for galleries, cards, and dynamic content.
9
+
10
+ ---
11
+
12
+ ## Features
13
+
14
+ - Masonry layout (Pinterest style)
15
+ - Responsive design
16
+ - Theming through CSS custom properties
17
+
18
+ ---
19
+
20
+ ## Usage
21
+
22
+ ```html
23
+ <x-masonry>
24
+ <div>Item 1</div>
25
+ <div>Item 2</div>
26
+ </x-masonry>
27
+ ```
28
+
29
+ ---
30
+
31
+ ## Attributes
32
+
33
+ | Attribute | Type | Description |
34
+ |-----------|------|-------------|
35
+ | `columns` | Number | number of columns (default: 3) |
36
+ | `gap` | String | spacing between items (default: 1rem) |
37
+
38
+ ---
39
+
40
+ ## Events
41
+
42
+ | Event | Description |
43
+ |-------|-------------|
44
+ | - | - |
45
+
46
+ ---
47
+
48
+ ## API
49
+
50
+ - **Set columns dynamically:** `element.setAttribute('columns', 4)`
51
+
52
+ ---
53
+
54
+ ## Example: Dynamic JS
55
+
56
+ ```js
57
+ const masonry = document.createElement('x-masonry');
58
+ masonry.setAttribute('columns', 4);
59
+ document.body.appendChild(masonry);
60
+ ```
61
+
62
+ ---
63
+
64
+ ## Styling and Theming
65
+
66
+ ```css
67
+ x-masonry {
68
+ --masonry-gap: 2rem;
69
+ }
70
+ ```
71
+
72
+ ---
73
+
74
+ ## Accessibility
75
+
76
+ - Semantic HTML
77
+
78
+ ---
79
+
80
+ *Last updated: July 16, 2025*
81
+
82
+ ## Layout Display Media UX Profile
83
+
84
+ Starting with `WP-E11-12`, `x-masonry` exposes the profile
85
+ `xtend.component.layout-display-media-ux-profile.v1`. The component can be
86
+ authored as a responsive layout grid with deterministic reflow scheduling and
87
+ uses the state key `xmasonry-state-<id>`.
88
+
89
+ - Profile getter: `xtendLayoutDisplayMediaUxProfile`
90
+ - Schedule: `layout.reflow.commit`
91
+ - Event: `masonry-layout`
92
+ - Snapshot: `snapshot()`
93
+ - CSS parts: `root`, `grid`, `item`, `toggle`, `content`
94
+
95
+ ## ECH-WP-07 Token Table and signatureDesign
96
+
97
+ `signatureDesign`: reorderable enterprise masonry with tactile depth,
98
+ icon-only toggle control, and themeable drag feedback. The component is suited
99
+ for galleries, dashboards, and knowledge layouts without text-character
100
+ controls.
101
+
102
+ | Token | Purpose |
103
+ | --- | --- |
104
+ | `--xtend-layout-surface` | masonry item surface |
105
+ | `--xtend-layout-text` | item text color |
106
+ | `--xtend-layout-border-color` | item and drop edges |
107
+ | `--xtend-layout-radius` | item radius |
108
+ | `--xtend-layout-elevation` | item and drag shadow |
109
+ | `--xtend-layout-spacing` | item padding |
110
+ | `--xtend-layout-gap` | grid spacing |
111
+ | `--xtend-layout-font-family` | masonry typography |
112
+ | `--xtend-layout-font-size` | item text size |
113
+ | `--xtend-layout-media-radius` | toggle/media radius |
114
+ | `--xtend-layout-focus-ring` | toggle focus |
115
+ | `--xtend-layout-grid-min` | grid lower bound |
116
+ | `--xtend-layout-content-max` | masonry max width |
117
+
118
+ ## ECH-WP-07 External Theme
119
+
120
+ ```css
121
+ [data-xtend-layout-theme="enterprise-foreign"] x-masonry {
122
+ --xtend-layout-surface: #fbf7f1;
123
+ --xtend-layout-text: #1b2823;
124
+ --xtend-layout-border-color: rgba(27, 40, 35, 0.2);
125
+ --xtend-layout-radius: 0.35rem;
126
+ --xtend-layout-elevation: 0 10px 28px rgba(27, 40, 35, 0.12);
127
+ --xtend-layout-spacing: 1.25rem;
128
+ --xtend-layout-gap: 1rem;
129
+ --xtend-layout-font-family: "Aptos", "Segoe UI", sans-serif;
130
+ --xtend-layout-font-size: 1rem;
131
+ --xtend-layout-media-radius: 999px;
132
+ --xtend-layout-focus-ring: 3px solid #8f4f2a;
133
+ --xtend-layout-grid-min: minmax(14rem, 1fr);
134
+ --xtend-layout-content-max: 72rem;
135
+ }
136
+ ```
@@ -0,0 +1,185 @@
1
+ # xmenu - XTend Component
2
+
3
+ > **See also:** [xlink](./xlink.md), [xrouter](./xrouter.md), [xheader](./xheader.md), [xfooter](./xfooter.md)
4
+
5
+ ## Overview
6
+
7
+ `<x-menu>` is the enterprise navigation component for menubars, toolbars, and
8
+ app navigation. Since `WP-E12-07`, it has an explicit performance, RMT, Fabric,
9
+ and routing contract. RMT can declare menu entries as DOM descriptors; the
10
+ XTend host adapter handles hydration, keyboard navigation, active-state sync,
11
+ and XRouter compatibility.
12
+
13
+ ## Features
14
+
15
+ - Slotted entries for `a`, `button`, `x-link`, and `[role="menuitem"]`
16
+ - ARIA roles with `role="menubar"` and `role="menuitem"`
17
+ - Keyboard navigation with arrow keys, `Home`, `End`, `Enter`, and `Space`
18
+ - Roving `tabindex` and `aria-current="page"` for active entries
19
+ - `x-link` and `x-router` compatibility through `x-navigate` and
20
+ `router-navigate`
21
+ - `xtend.performance.component-profile.v1` with navigation and interaction
22
+ budgets
23
+ - Fabric-compatible events for navigation, keyboard, and performance
24
+
25
+ ## Usage
26
+
27
+ ```html
28
+ <x-menu data-rmt-schedule="ui.user-blocking.navigation" data-xtend-lane="user-blocking">
29
+ <a href="/overview">Overview</a>
30
+ <x-link href="/settings">Settings</x-link>
31
+ <button type="button">Action</button>
32
+ </x-menu>
33
+ ```
34
+
35
+ ## Events
36
+
37
+ | Event | Detail | Description |
38
+ |-------|--------|-------------|
39
+ | `menu-item-clicked` | `{ href, index, label, source, scheduleRef }` | emitted on click or keyboard activation of an entry |
40
+ | `menu-navigate` | `{ href, path, mode, scheduleRef }` | signals internal navigation to XRouter/RMT |
41
+ | `menu-keyboard-navigation` | `{ key, fromIndex, toIndex }` | measures roving-focus navigation |
42
+ | `menu-performance-measured` | `xtend.performance.measurement.v1` | Fabric/diagnostics measurement for hydration, slotchange, keyboard, and route activation |
43
+
44
+ ## Runtime API
45
+
46
+ ```js
47
+ const menu = document.querySelector('x-menu');
48
+
49
+ menu.getPerformanceBudget();
50
+ menu.getInteractionBudget();
51
+ menu.snapshotPerformance();
52
+ ```
53
+
54
+ `snapshotPerformance()` returns `xtend.component.performance-snapshot.v1` with
55
+ counters, budgets, and the latest measurement points.
56
+
57
+ ## Performance Contract
58
+
59
+ `x-menu` uses:
60
+
61
+ - Schema: `xtend.performance.component-profile.v1`
62
+ - `componentRef`: `x-menu`
63
+ - Profile: `interactive`, `routing`
64
+ - Budget Class: `navigation-small`
65
+ - Lane: `user-blocking`
66
+ - Hydration Policy: `visible`
67
+ - critical measurements:
68
+ - `xtend.component.hydrate`
69
+ - `xtend.component.render`
70
+ - `xtend.component.slotchange`
71
+ - `xtend.interaction.keyboard`
72
+ - `xtend.route.navigate`
73
+ - `xtend.state.sync`
74
+
75
+ The interaction budget includes `keyboardBudgetMs`, `routeActivationBudgetMs`,
76
+ `touchTargetMinPx: 44`, `rovingTabindexRequired`, `xLinkCompatible`, and
77
+ `xRouterCompatible`.
78
+
79
+ ## RMT and Fabric
80
+
81
+ The RMT contract stays host-neutral:
82
+
83
+ - Adapter: `xtend.component`
84
+ - Template Mode: `dom_descriptor`
85
+ - Event Binding Mode: `dom-event-to-rmt-command`
86
+ - Schedule Refs: `component.visible.hydrate`, `ui.user-blocking.navigation`,
87
+ `route.transition.navigate`, `diagnostics.snapshot`
88
+ - Boundary: `no-rmt-kernel-import-of-xtend-types`
89
+
90
+ Fabric can connect the component through `menu-performance-measured`,
91
+ `menu-keyboard-navigation`, `menu-navigate`, and `snapshotPerformance()`.
92
+
93
+ ## State and Routing
94
+
95
+ - `xmenu-active` is the canonical `xstate` key for the active entry.
96
+ - `xmenu-state-<id>` contains the full local state including performance
97
+ snapshot.
98
+ - Internal links write `router-navigate` and emit `x-navigate`, so XRouter can
99
+ trigger hash and history mode.
100
+ - Active entries receive `aria-current="page"` and remain focusable in the
101
+ roving tabindex.
102
+
103
+ ## Styling and Theming
104
+
105
+ ```css
106
+ x-menu {
107
+ --xtend-menu-bg: rgba(40, 60, 120, 0.25);
108
+ --xtend-menu-color: #fff;
109
+ --xtend-menu-min-touch-target: 44px;
110
+ }
111
+ ```
112
+
113
+ ## Accessibility
114
+
115
+ - ARIA roles: `menubar` on the shell, `menuitem` on slotted items.
116
+ - Keyboard navigation: `ArrowRight`, `ArrowDown`, `ArrowLeft`, `ArrowUp`,
117
+ `Home`, `End`, `Enter`, `Space`.
118
+ - Focus visible and forced colors are supported without relying on motion.
119
+ - `prefers-reduced-motion` disables non-essential transitions.
120
+
121
+ ## Component-Level Contract from WP-E12-07
122
+
123
+ - `xtendComponentContract`, `xtendRmtMetadata`,
124
+ `xtendComponentLifecycleTelemetry`, `xtendScaffoldA11yProfile`, and
125
+ `xtendScaffoldPerformanceProfile` exist in the runtime.
126
+ - `menu-item-clicked`, `menu-navigate`, `menu-keyboard-navigation`, and
127
+ `menu-performance-measured` form the public event surface.
128
+ - `snapshotPerformance()`, `getPerformanceBudget()`, and
129
+ `getInteractionBudget()` make the component testable for Fabric, RMT
130
+ adapters, and local gates.
131
+
132
+ ---
133
+
134
+ *Last updated: May 7, 2026*
135
+
136
+ ## ECH-WP-09 Token Table and Navigation States
137
+
138
+ `signatureDesign`: `x-menu` uses a calm enterprise menu bar with clearly
139
+ visible active route, non-color-only current indicator, and replaceable
140
+ typography. Active/current/selected, hover, focus, and disabled states must
141
+ remain visible in external themes.
142
+
143
+ | Token | Purpose |
144
+ | --- | --- |
145
+ | `--xtend-nav-surface` | menu surface |
146
+ | `--xtend-nav-text` | menu and item text |
147
+ | `--xtend-nav-border-color` | menu edge |
148
+ | `--xtend-nav-radius` | menu and item radius |
149
+ | `--xtend-nav-gap` | spacing between navigation entries |
150
+ | `--xtend-nav-font-family` | navigation typography |
151
+ | `--xtend-nav-font-size` | navigation text size |
152
+ | `--xtend-nav-active-surface` | active/current/selected surface |
153
+ | `--xtend-nav-active-text` | active/current/selected text |
154
+ | `--xtend-nav-current-indicator` | non-color-only route indicator |
155
+ | `--xtend-nav-hover-surface` | hover surface |
156
+ | `--xtend-nav-focus-ring` | keyboard focus |
157
+ | `--xtend-nav-disabled-opacity` | disabled dimming |
158
+
159
+ ## ECH-WP-09 Keyboard Behavior
160
+
161
+ `ArrowRight`, `ArrowDown`, `ArrowLeft`, `ArrowUp`, `Home`, `End`, `Enter`, and
162
+ `Space` remain gateable. Disabled items are not activated and are skipped by
163
+ roving focus. Nested menus may display disclosure controls only with icon
164
+ controls such as `part="disclosure-icon control icon"` or authorized `x-icon`
165
+ elements, not with text glyphs.
166
+
167
+ ## ECH-WP-09 External Theme
168
+
169
+ ```css
170
+ [data-xtend-nav-theme="enterprise-foreign"] x-menu {
171
+ --xtend-nav-surface: #f7f4ee;
172
+ --xtend-nav-text: #19231f;
173
+ --xtend-nav-border-color: rgba(25, 35, 31, 0.24);
174
+ --xtend-nav-radius: 0.4rem;
175
+ --xtend-nav-gap: 0.35rem;
176
+ --xtend-nav-font-family: "Aptos", "Segoe UI", sans-serif;
177
+ --xtend-nav-font-size: 0.96rem;
178
+ --xtend-nav-active-surface: #173f35;
179
+ --xtend-nav-active-text: #fffaf0;
180
+ --xtend-nav-current-indicator: #b56b35;
181
+ --xtend-nav-hover-surface: rgba(181, 107, 53, 0.14);
182
+ --xtend-nav-focus-ring: 3px solid #b56b35;
183
+ --xtend-nav-disabled-opacity: 0.44;
184
+ }
185
+ ```
@@ -0,0 +1,102 @@
1
+ # xmodal - XTend Component
2
+
3
+ ## Overview
4
+
5
+ `<x-modal>` is XTend's state-driven modal component. It is mainly used through
6
+ `window.XModal.show()`, but can also be operated directly in the DOM with
7
+ attributes and slots.
8
+
9
+ ## Usage
10
+
11
+ ```html
12
+ <x-modal title="Notice" open>
13
+ <p>Modal content</p>
14
+ </x-modal>
15
+ ```
16
+
17
+ ## Attributes
18
+
19
+ | Attribute | Type | Description |
20
+ |-----------|------|-------------|
21
+ | `open` | boolean | modal is open |
22
+ | `overlay` | boolean | shows an overlay backdrop |
23
+ | `title` | string | modal title |
24
+ | `content` | string | textual content |
25
+ | `actions` | string | JSON array for action buttons |
26
+
27
+ ## Slots
28
+
29
+ | Slot | Description |
30
+ |------|-------------|
31
+ | default | main modal content |
32
+ | `actions` | optional action area |
33
+
34
+ ## Events
35
+
36
+ | Event | Description |
37
+ |-------|-------------|
38
+ | `modal-opened` | after successful opening |
39
+ | `modal-closed` | after successful closing |
40
+ | `modal-action` | when a configured action is selected |
41
+
42
+ ## API
43
+
44
+ - `element.open()`
45
+ - `element.close()`
46
+
47
+ Open state is routed through the same paths:
48
+
49
+ - `xtend.component.x-modal.<id>.open`
50
+ - `modal-open-<id>`
51
+
52
+ ## Runtime Contract
53
+
54
+ - API-managed modals read title, content, and actions from
55
+ `xstate.get('ui').modals`.
56
+ - Escape, overlay click, and close button write open state back.
57
+ - API-managed modals remove themselves from `ui.modals` and the DOM after
58
+ closing.
59
+ - Directly embedded overlay modals are moved into a `document.body` portal layer
60
+ while `open`, so blur and overlay cover the full viewport.
61
+
62
+ ## Notes
63
+
64
+ - `modal-action` contains the selected action definition in event detail.
65
+ - `window.XModal.show()` is the preferred entry point for API-managed modals.
66
+ - Focus return to the last active element is part of the default behavior.
67
+
68
+ ## Overlay Interaction UX Profile
69
+
70
+ Since `WP-E11-11`, `<x-modal>` declares the runtime profile
71
+ `xtend.component.overlay-interaction-ux-profile.v1` through
72
+ `xtendOverlayInteractionUxProfile`.
73
+
74
+ | Field | Value |
75
+ |-------|-------|
76
+ | Family | `modal-dialog` |
77
+ | State Key | `modal-open-<id>` |
78
+ | Schedule | `overlay.stack.open` |
79
+ | Commands | `open`, `close`, `focus-trap`, `apply-inert`, `lock-scroll`, `snapshot` |
80
+
81
+ The profile defines focus trap, focus return, Escape topmost rule, background
82
+ inert, balanced scroll lock, and a document-wide portal layer. RMT describes
83
+ these rules shell-first through `tests/fixtures/rmt-overlay-interaction-ux.rmt`;
84
+ the RMT kernel still imports no XTend types.
85
+
86
+ The portal layer is document-wide: when a modal with `overlay` is opened inside
87
+ nested app shells, XRouter routes, or transformed layout containers, the host is
88
+ temporarily parked under `document.body` and returned to its original position
89
+ after closing. Slot capability remains intact while overlay and blur are no
90
+ longer limited to the local `main` or route container.
91
+
92
+ ## ECH-WP-06 Overlay Parity
93
+
94
+ `x-modal` exposes `surface`, `backdrop`, `close`, and `content` as shared
95
+ overlay parts. `overlay` remains as an alias for `backdrop`. Host themes can
96
+ control backdrop, surface, text, elevation, radius, z-index, action text, close
97
+ surface, and focus ring through `--xtend-overlay-*`, `--modal-*`, or
98
+ `--xmodal-*` tokens.
99
+
100
+ `x-modal` is modal: focus trap, background inert, scroll lock, Escape, and
101
+ focus return are part of the default path. A modal without `overlay` keeps the
102
+ surface parts but renders no visual backdrop.
@@ -0,0 +1,114 @@
1
+ # xplayer - XTend Component
2
+
3
+ > **See also:** [xlightbox](./xlightbox.md)
4
+
5
+ ## Overview
6
+
7
+ `<x-player>` is a versatile media player component for audio and video. It
8
+ supports playlists, custom controls, theming, state integration, download,
9
+ media chooser, and fullscreen.
10
+
11
+ ---
12
+
13
+ ## Features
14
+
15
+ - Audio/video playback
16
+ - Playlists and media controls
17
+ - Download button (optional)
18
+ - Media chooser (source selection)
19
+ - Poster image for videos
20
+ - Fullscreen mode
21
+ - State integration through xstate
22
+ - Theming through CSS custom properties
23
+
24
+ ---
25
+
26
+ ## Usage
27
+
28
+ ```html
29
+ <x-player src="song.mp3" type="audio"></x-player>
30
+ <x-player src="video.mp4" poster="cover.jpg" type="video" title="Demo Video" downloadable="true"></x-player>
31
+ ```
32
+
33
+ ---
34
+
35
+ ## Attributes
36
+
37
+ | Attribute | Type | Description |
38
+ |-----------|------|-------------|
39
+ | `src` | String | media URL (audio/video) |
40
+ | `poster` | String | preview image for video |
41
+ | `type` | String | media type (`audio` or `video`, default: `video`) |
42
+ | `media-chooser` | String | `true` for source selection dropdown |
43
+ | `downloadable` | String | `true` for download button |
44
+ | `autoplay` | Boolean | autoplay on load |
45
+ | `title` | String | title displayed in the player |
46
+ | `height` | String | height, for example `360` |
47
+ | `width` | String | width, for example `640` |
48
+
49
+ ---
50
+
51
+ ## Events
52
+
53
+ | Event | Description |
54
+ |-------|-------------|
55
+ | `xplayer-play` | playback started, detail: `{ currentTime }` |
56
+ | `xplayer-pause` | playback paused, detail: `{ currentTime }` |
57
+ | `xplayer-mute` | mute changed, detail: `{ muted }` |
58
+ | `xplayer-volume` | volume changed, detail: `{ volume }` |
59
+
60
+ ---
61
+
62
+ ## API
63
+
64
+ - **Play:** `element.play()`
65
+ - **Pause:** `element.pause()`
66
+ - **State integration:** automatic through xstate
67
+ - **Fullscreen:** `element.requestFullscreen()`
68
+
69
+ ---
70
+
71
+ ## Example: Dynamic JS
72
+
73
+ ```js
74
+ const player = document.createElement('x-player');
75
+ player.setAttribute('src', 'song.mp3');
76
+ document.body.appendChild(player);
77
+ player.play();
78
+ ```
79
+
80
+ ---
81
+
82
+ ## Styling and Theming
83
+
84
+ ```css
85
+ x-player {
86
+ --primary-color: #4fc3f7;
87
+ --border-radius: 8px;
88
+ /* See CSS for more custom properties */
89
+ }
90
+ ```
91
+
92
+ ---
93
+
94
+ ## Accessibility
95
+
96
+ - Semantic HTML, ARIA
97
+ - Keyboard operation
98
+
99
+ ---
100
+
101
+ *Last updated: July 16, 2025*
102
+
103
+ ## Layout Display Media UX Profile
104
+
105
+ Starting with `WP-E11-12`, `x-player` exposes the profile
106
+ `xtend.component.layout-display-media-ux-profile.v1`. Media can therefore be
107
+ rendered shell-first and scheduled only later through `media.lazy.load` or
108
+ `media.playback.user`. The state key is `xplayer-state-<id>`.
109
+
110
+ - Profile getter: `xtendLayoutDisplayMediaUxProfile`
111
+ - Schedule: `media.lazy.load`
112
+ - Events: `xplayer-play`, `xplayer-pause`, `xplayer-fullscreen`, `xplayer-pip`
113
+ - Snapshot: `snapshot()`
114
+ - CSS parts: `root`, `media`, `controls`, `progress`, `overlay`
@@ -0,0 +1,87 @@
1
+ # xpopover - XTend Component
2
+
3
+ > **See also:** [xtooltip](./xtooltip.md), [xdrawer](./xdrawer.md), [xdialog](./xdialog.md), [xmodal](./xmodal.md)
4
+
5
+ ## Overview
6
+
7
+ `<x-popover>` is an interactive anchored overlay from `WP-E10-11`. It is useful
8
+ for filters, menus, toolbars, and contextual actions, can operate modally, and
9
+ remains describable as a Custom Element through RMT.
10
+
11
+ ## Usage
12
+
13
+ ```html
14
+ <x-popover id="filters" placement="bottom" modal label="Filter options">
15
+ <button slot="trigger" type="button">Open filters</button>
16
+ <p>Filter content can be mounted by RMT.</p>
17
+ <button slot="actions" type="button">Apply</button>
18
+ </x-popover>
19
+ ```
20
+
21
+ ## Attributes
22
+
23
+ | Attribute | Type | Description |
24
+ |-----------|------|-------------|
25
+ | `open` | Boolean | opens the popover in controlled mode |
26
+ | `placement` | String | `top`, `right`, `bottom`, or `left` |
27
+ | `modal` | Boolean | activates focus trap and `aria-modal` |
28
+ | `anchor` | String | prepared anchor mapping for RMT authoring |
29
+ | `label` | String | accessible name for the dialog |
30
+
31
+ ## Events
32
+
33
+ | Event | Detail |
34
+ |-------|--------|
35
+ | `popover-opened` | `{ id, open, source, placement, modal }` |
36
+ | `popover-closed` | `{ id, open, source, placement, modal }` |
37
+
38
+ ## API
39
+
40
+ - `show()`
41
+ - `hide()`
42
+ - `toggle()`
43
+
44
+ ## State, RMT, and Fabric
45
+
46
+ `<x-popover>` writes to `xpopover-open-<id>`. RMT uses
47
+ `xtend.rmt.component-contract.v1`, `dom_descriptor` templates, and can bind
48
+ events as `dom-event-to-rmt-command`. Interactive UIs use the `user-blocking`
49
+ lane; the kernel boundary remains `no-rmt-kernel-import-of-xtend-types`.
50
+
51
+ ## A11y and Performance
52
+
53
+ The popover uses `role="dialog"`, `aria-expanded`, `aria-controls`, optional
54
+ `aria-modal`, and focus return. `Escape`, outside click, and `focus-return` are
55
+ required signals. The performance profile is
56
+ `xtend.performance.component-profile.v1` with `budgetClass: 'overlay-medium'`,
57
+ `lane: 'user-blocking'`, and `hydrationPolicy: 'visible'`.
58
+
59
+ ## Overlay Interaction UX Profile
60
+
61
+ Since `WP-E11-11`, `<x-popover>` declares the runtime profile
62
+ `xtend.component.overlay-interaction-ux-profile.v1` through
63
+ `xtendOverlayInteractionUxProfile`.
64
+
65
+ | Field | Value |
66
+ |-------|-------|
67
+ | Family | `popover` |
68
+ | State Key | `xpopover-open-<id>` |
69
+ | Schedule | `overlay.position.update` |
70
+ | Commands | `show`, `hide`, `toggle`, `focus-trap`, `snapshot` |
71
+
72
+ The profile separates the lightweight anchor layer from optional modal
73
+ operation. Focus trap is activated only with `modal`; Escape closes the topmost
74
+ popover, and outside click remains documented as intentional dismissal
75
+ behavior.
76
+
77
+ ## ECH-WP-06 Overlay Parity
78
+
79
+ `x-popover` exposes `surface`, `backdrop`, `close`, and `content` as shared
80
+ overlay parts. The backdrop is visible only with `modal`; the close button is
81
+ tokenized and can be adapted to corporate patterns through
82
+ `--popover-close-display` and `--xpopover-close-*`.
83
+
84
+ The default remains non-modal: no inert and no scroll lock. With `modal`, the
85
+ popover activates backdrop, focus trap, Escape, and focus return. Surface,
86
+ text, border, elevation, radius, backdrop, and z-index use
87
+ `--xtend-overlay-*`, `--popover-*`, or `--xpopover-*` tokens.
@@ -0,0 +1,73 @@
1
+ # xprogress - XTend Component
2
+
3
+ > **See also:** [xstatus](./xstatus.md), [xspinner](./xspinner.md), [xstate](./xstate.md)
4
+
5
+ ## Overview
6
+
7
+ `<x-progress>` is the RMT-first progress control from `WP-E10-10`. It visualizes
8
+ determinate and indeterminate progress, reports progress events to
9
+ Fabric/telemetry, and can be used in shell-first RMT templates for hydration,
10
+ upload, route, or worker tasks.
11
+
12
+ ## Usage
13
+
14
+ ```html
15
+ <x-progress id="route-progress" value="64" max="100" status="Hydrating route" busy>
16
+ <span slot="label">Route hydration</span>
17
+ </x-progress>
18
+ ```
19
+
20
+ ## Attributes
21
+
22
+ | Attribute | Type | Description |
23
+ |-----------|------|-------------|
24
+ | `value` | Number | current value |
25
+ | `max` | Number | maximum value |
26
+ | `label` | String | label without slot |
27
+ | `status` | String | status message for screen readers and UI |
28
+ | `indeterminate` | Boolean | activates indeterminate progress |
29
+ | `busy` | Boolean | sets `aria-busy` |
30
+
31
+ ## Events
32
+
33
+ | Event | Detail |
34
+ |-------|--------|
35
+ | `progress-changed` | `{ value, max, percent, source: 'x-progress' }` |
36
+ | `progress-complete` | `{ value, max, percent: 100, source: 'x-progress' }` |
37
+
38
+ ## API
39
+
40
+ - `element.value`
41
+ - `element.max`
42
+ - `element.percent`
43
+ - `element.setProgress(value)`
44
+ - `element.complete()`
45
+ - `element.reset()`
46
+
47
+ ## State, RMT, and Fabric
48
+
49
+ `<x-progress>` writes to `xprogress-value-<id>` and is prepared for
50
+ `feedback.progress.update`. RMT metadata uses
51
+ `xtend.rmt.component-contract.v1`, `adapter: 'xtend.component'`, and
52
+ `kernelBoundary: 'no-rmt-kernel-import-of-xtend-types'`. RMT can therefore
53
+ treat progress as scheduled UI feedback while XTend renders the Web Component.
54
+
55
+ ## A11y and Performance
56
+
57
+ The control uses `role="progressbar"`, `aria-valuenow`, `aria-valuemax`,
58
+ `aria-valuetext`, `aria-busy`, and a polite status region. The performance
59
+ profile is `xtend.performance.component-profile.v1` with
60
+ `budgetClass: 'feedback-small'`, `lane: 'background'`, and
61
+ `hydrationPolicy: 'visible'`.
62
+
63
+ ## Feedback Status UX from WP-E11-09
64
+
65
+ `<x-progress>` exposes `xtendFeedbackStatusUxProfile` with
66
+ `xtend.component.feedback-status-ux-profile.v1`. The profile describes progress
67
+ as scheduled feedback with `progress-changed`, `progress-complete`,
68
+ `xprogress-value-<id>`, `feedback.progress.update`, Fabric lane `background`,
69
+ a11y lane `a11y`, and RMT shell authoring.
70
+
71
+ Determinate and indeterminate progress states must not be communicated only
72
+ through color or animation. `aria-valuetext`, the status region, and
73
+ reduced-motion rules therefore remain part of the public UX surface.