@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,138 @@
1
+ # xfooter - XTend Component
2
+
3
+ > **See also:** [xheader](./xheader.md), [xtheme](./xtheme.md)
4
+
5
+ ## Overview
6
+
7
+ `<x-footer>` is a customizable footer component with logo, sticky option, and
8
+ state integration. It is useful for branding and navigation at the end of a
9
+ page.
10
+
11
+ ---
12
+
13
+ ## Features
14
+
15
+ - Optional logo (`src` attribute)
16
+ - Sticky behavior (stays at the bottom)
17
+ - State integration through xstate
18
+ - Theming through CSS custom properties
19
+
20
+ ---
21
+
22
+ ## Usage
23
+
24
+ ```html
25
+ <x-footer src="logo.svg" logo-size="48" sticky></x-footer>
26
+ ```
27
+
28
+ ---
29
+
30
+ ## Attributes
31
+
32
+ | Attribute | Type | Description |
33
+ |-----------|------|-------------|
34
+ | `src` | String | logo URL |
35
+ | `logo-size` | String | logo size, for example 48, 64px |
36
+ | `sticky` | Boolean | footer stays at the bottom |
37
+
38
+ ---
39
+
40
+ ## Events
41
+
42
+ | Event | Description |
43
+ |-------|-------------|
44
+ | - | - |
45
+
46
+ ---
47
+
48
+ ## API
49
+
50
+ - **Set logo dynamically:** `element.setAttribute('src', 'logo.svg')`
51
+ - **Enable sticky:** `element.setAttribute('sticky', '')`
52
+ - **State integration:** automatic through xstate
53
+
54
+ ---
55
+
56
+ ## Example: Dynamic JS
57
+
58
+ ```js
59
+ const footer = document.createElement('x-footer');
60
+ footer.setAttribute('src', 'logo.svg');
61
+ document.body.appendChild(footer);
62
+ ```
63
+
64
+ ---
65
+
66
+ ## Styling and Theming
67
+
68
+ ```css
69
+ x-footer {
70
+ --header-bg: #222;
71
+ --header-fg: #fff;
72
+ }
73
+ ```
74
+
75
+ ---
76
+
77
+ ## Accessibility
78
+
79
+ - Semantic HTML, ARIA
80
+
81
+ ---
82
+
83
+ *Last updated: July 16, 2025*
84
+
85
+ ## Layout Display Media UX Profile
86
+
87
+ Starting with `WP-E11-12`, `x-footer` exposes the profile
88
+ `xtend.component.layout-display-media-ux-profile.v1`. The component can be
89
+ mounted visibly as an RMT shell footer and uses the state key
90
+ `xfooter-state-<id>`.
91
+
92
+ - Profile getter: `xtendLayoutDisplayMediaUxProfile`
93
+ - Schedule: `component.visible.mount`
94
+ - Events: `footer-ready`, `theme-applied`, `logo-loaded`
95
+ - Snapshot: `snapshot()`
96
+ - CSS parts: `root`, `title`, `logo`, `nav`, `extra`
97
+
98
+ ## ECH-WP-07 Token Table and signatureDesign
99
+
100
+ `signatureDesign`: calm enterprise footer with precise navigation,
101
+ logo-safe media area, and subtle signature depth. The default design remains
102
+ polished, but can be fully overridden by corporate themes.
103
+
104
+ | Token | Purpose |
105
+ | --- | --- |
106
+ | `--xtend-layout-surface` | footer surface |
107
+ | `--xtend-layout-text` | text and link color |
108
+ | `--xtend-layout-border-color` | footer and link edge |
109
+ | `--xtend-layout-radius` | footer and link radius |
110
+ | `--xtend-layout-elevation` | footer shadow |
111
+ | `--xtend-layout-spacing` | footer padding |
112
+ | `--xtend-layout-gap` | title, nav, and content spacing |
113
+ | `--xtend-layout-font-family` | footer typography |
114
+ | `--xtend-layout-font-size` | footer font size |
115
+ | `--xtend-layout-media-radius` | logo radius |
116
+ | `--xtend-layout-focus-ring` | link focus |
117
+ | `--xtend-layout-grid-min` | responsive footer cell width |
118
+ | `--xtend-layout-content-max` | footer max width |
119
+
120
+ ## ECH-WP-07 External Theme
121
+
122
+ ```css
123
+ [data-xtend-layout-theme="enterprise-foreign"] x-footer {
124
+ --xtend-layout-surface: #f8f4ef;
125
+ --xtend-layout-text: #1e2420;
126
+ --xtend-layout-border-color: rgba(30, 36, 32, 0.2);
127
+ --xtend-layout-radius: 0.25rem;
128
+ --xtend-layout-elevation: 0 8px 24px rgba(30, 36, 32, 0.1);
129
+ --xtend-layout-spacing: 1.15rem;
130
+ --xtend-layout-gap: 0.85rem;
131
+ --xtend-layout-font-family: "Aptos", "Segoe UI", sans-serif;
132
+ --xtend-layout-font-size: 0.95rem;
133
+ --xtend-layout-media-radius: 0.15rem;
134
+ --xtend-layout-focus-ring: 3px solid #8f4f2a;
135
+ --xtend-layout-grid-min: minmax(11rem, 1fr);
136
+ --xtend-layout-content-max: 72rem;
137
+ }
138
+ ```
@@ -0,0 +1,147 @@
1
+ # xform - XTend Component
2
+
3
+ > **See also:** [xinput](./xinput.md), [xselect](./xselect.md), [xcheckbox](./xcheckbox.md), [xradio](./xradio.md), [xtextarea](./xtextarea.md), [xcalendar](./xcalendar.md), [xstate](./xstate.md)
4
+
5
+ ## Overview
6
+
7
+ `<x-form>` is a flexible form component that wraps arbitrary content and
8
+ supports state integration and theming.
9
+
10
+ ---
11
+
12
+ ## Features
13
+
14
+ - Flexible layout for forms
15
+ - Slot for arbitrary content
16
+ - State integration through xstate
17
+ - Aggregation of `x-input`, `x-slider`, `x-calendar`, `x-select`,
18
+ `x-checkbox`, `x-radio`, and `x-textarea`
19
+ - Theming through CSS custom properties
20
+
21
+ ---
22
+
23
+ ## Usage
24
+
25
+ ```html
26
+ <x-form>
27
+ <input type="text" />
28
+ <x-button>Submit</x-button>
29
+ </x-form>
30
+ ```
31
+
32
+ ---
33
+
34
+ ## Attributes
35
+
36
+ | Attribute | Type | Description |
37
+ |-----------|------|-------------|
38
+ | - | - | - |
39
+
40
+ ---
41
+
42
+ ## Events
43
+
44
+ | Event | Description |
45
+ |-------|-------------|
46
+ | `submit` | emitted on submit |
47
+ | `invalid` | emitted when child validation fails |
48
+ | `reset` | emitted after form reset |
49
+
50
+ ---
51
+
52
+ ## API
53
+
54
+ - **Submit form by JS:** `element.submit()`
55
+ - **Read form data:** `element.getFormData()`
56
+ - **State integration:** automatic through xstate
57
+
58
+ ## State and Validation Contract from ER-WP-33
59
+
60
+ `<x-form>` collects values from `x-input`, `x-slider`, `x-calendar`,
61
+ `x-select`, `x-checkbox`, `x-radio`, `x-textarea`, and `x-writer`, mirrors them
62
+ to `xform-data-<id>`, and updates that key on `input-changed`,
63
+ `select-changed`, `checkbox-changed`, `radio-changed`, `textarea-changed`,
64
+ `date-select`, and `writer:change`. Checkboxes provide boolean values; radio
65
+ groups provide the value of the active control. The Shadow DOM contains
66
+ `role="form"`, a `role="status"` region for submit/reset feedback, and a
67
+ `role="alert"` region for validation errors.
68
+
69
+ ## Form Controls UX from WP-E11-08
70
+
71
+ `<x-form>` exposes `xtendFormControlUxProfile` with
72
+ `xtend.component.form-control-ux-profile.v1`. The profile describes the form
73
+ host, `submit`, `invalid`, `reset`, `xform-data-<id>`, validation aggregation,
74
+ Fabric lane `user-blocking`, and RMT shell authoring.
75
+
76
+ ---
77
+
78
+ ## Example: Dynamic JS
79
+
80
+ ```js
81
+ const form = document.createElement('x-form');
82
+ form.innerHTML = '<input type="text" />';
83
+ document.body.appendChild(form);
84
+ ```
85
+
86
+ ---
87
+
88
+ ## Styling and Theming
89
+
90
+ ```css
91
+ x-form {
92
+ --form-gap: 2em;
93
+ --form-border: 2px solid #007bff;
94
+ }
95
+ ```
96
+
97
+ ---
98
+
99
+ ## Accessibility
100
+
101
+ - Semantic HTML, ARIA
102
+
103
+ ---
104
+
105
+ *Last updated: July 16, 2025*
106
+
107
+ ## ECH-WP-08 Form Theme/A11y Hardening
108
+
109
+ `signatureDesign`: enterprise form host with polished surface composition,
110
+ aggregated status regions, and density-safe rhythm for nested controls.
111
+
112
+ | Token | Purpose |
113
+ | --- | --- |
114
+ | `--xtend-form-text` | form text color |
115
+ | `--xtend-form-surface` | form surface |
116
+ | `--xtend-form-control-surface` | child control surface |
117
+ | `--xtend-form-control-text` | child control text |
118
+ | `--xtend-form-label-text` | label cascade |
119
+ | `--xtend-form-helper-text` | helper cascade |
120
+ | `--xtend-form-error-text` | error cascade |
121
+ | `--xtend-form-error-surface` | error cascade surface |
122
+ | `--xtend-form-error-border` | form and error edge |
123
+ | `--xtend-form-focus-ring` | focus cascade |
124
+ | `--xtend-form-radius` | form and control radius |
125
+ | `--xtend-form-gap` | form and control spacing |
126
+ | `--xtend-form-font-family` | form typography |
127
+ | `--xtend-form-control-font-size` | control font |
128
+ | `--xtend-form-helper-font-size` | helper/error font for child controls |
129
+ | `--xtend-form-icon-color` | child-control icon accent |
130
+
131
+ Density profiles: `comfortable`, `compact`, `dense`. `busy`, `disabled`, and
132
+ invalid state are mirrored on the form host as surface state and through ARIA.
133
+
134
+ ```css
135
+ [data-xtend-form-theme="enterprise-foreign"] x-form {
136
+ --xtend-form-surface: #fffaf2;
137
+ --xtend-form-control-surface: #fbf8f2;
138
+ --xtend-form-text: #16231f;
139
+ --xtend-form-label-text: #22312c;
140
+ --xtend-form-helper-text: #596861;
141
+ --xtend-form-error-text: #7d231c;
142
+ --xtend-form-error-border: #a64036;
143
+ --xtend-form-focus-ring: 3px solid #8f4f2a;
144
+ --xtend-form-radius: 0.45rem;
145
+ --xtend-form-gap: 0.8rem;
146
+ }
147
+ ```
@@ -0,0 +1,308 @@
1
+ # xheader - XTend Component
2
+
3
+ > **See also:** [xfooter](./xfooter.md), [xtheme](./xtheme.md)
4
+
5
+ ## Overview
6
+
7
+ `<x-header>` is a versatile, accessible header component for branding, navigation and flexible app-shell layouts. It supports logos, titles, search, actions/utility and navigation slots, theming, state integration and several menu presentation modes for enterprise app shells.
8
+
9
+ ---
10
+
11
+ ## Features
12
+ - Optional logo (`src` attribute)
13
+ - Slot system for title, search, actions, legacy utility and navigation
14
+ - Sticky header
15
+ - State integration via xstate
16
+ - Theming via CSS custom properties; fully themeable
17
+ - **Responsive behavior:** header content runs through a slot grid. Search and actions wrap predictably on small displays; navigation uses the configured menu presentation mode.
18
+ - **Slot alignment:** brand, actions and menu trigger remain in a fixed top row on narrow viewports. Search is placed below, which prevents action buttons from being displaced.
19
+ - **Menu presentation modes:** `drawer`, `side-panel`, `popover`, `fullscreen` and `inline-main` cover shell, app and portal navigation.
20
+ - **Full-width drawer:** the default `drawer` still renders as a fixed overlay across the available page width and does not extend the document scroll area.
21
+ - **Overflow-safe navigation:** direct `x-link` entries and complex `[data-menu-shell]` menus remain inside their menu-surface containers.
22
+ - **Burger menu:** animated button; color can be controlled through theme tokens
23
+ - **Accessibility:** landmark roles, ARIA, keyboard navigation and focus management
24
+ - **Events:** menu opened/closed, logo loaded
25
+
26
+ ---
27
+
28
+ ## Usage
29
+
30
+ ```html
31
+ <x-header src="logo.svg" logo-size="40">
32
+ <span slot="title">My App</span>
33
+ <x-form slot="search">...</x-form>
34
+ <button slot="actions">Theme</button>
35
+ <x-link slot="nav" href="/docs">Docs</x-link>
36
+ </x-header>
37
+ ```
38
+
39
+ **Note:** `utility` remains available as a compatibility alias. New apps should use `search` for search controls and `actions` for buttons, toggles or status controls.
40
+
41
+ ---
42
+
43
+ ## Menu Presentation Modes
44
+
45
+ `menu-mode` controls how navigation becomes visible. Without the new attribute, `drawer` remains active and keeps the previous full-width drawer behavior compatible.
46
+
47
+ | Mode | Behavior | A11y behavior |
48
+ |------|----------|---------------|
49
+ | `drawer` | Fixed overlay below the header, full-width by default | Navigation, Escape, outside click, focus return |
50
+ | `side-panel` | Side panel via `menu-placement="start"` or `end` | optionally modal via `menu-modal`, then focus trap and backdrop |
51
+ | `popover` | Compact menu near the trigger | non-modal, Escape and outside click |
52
+ | `fullscreen` | Full-screen navigation | modal, backdrop, focus trap, Escape and focus return |
53
+ | `inline-main` | Menu in the header document flow | no overlay trap, clean navigation landmark |
54
+
55
+ ```html
56
+ <x-header
57
+ menu-mode="side-panel"
58
+ menu-placement="end"
59
+ menu-modal
60
+ menu-width="min(32rem, 92vw)"
61
+ menu-max-height="calc(100dvh - 2rem)"
62
+ menu-align="stretch">
63
+ <span slot="title">Enterprise Shell</span>
64
+ <x-link slot="nav" href="/workbench">Workbench</x-link>
65
+ </x-header>
66
+ ```
67
+
68
+ `menu-open` can be set declaratively. Programmatically, `toggleMenu(true | false, { source })` remains the stable API. `snapshot()` returns `menuMode`, `menuPlacement`, `menuModal`, `menuBreakpoint`, `menuWidth`, `menuMaxHeight` and `menuAlign`; `drawerMode: 'fixed-full-width-overlay'` remains as a legacy alias.
69
+
70
+ ---
71
+
72
+ ## Responsive Slot Logic
73
+ - Desktop: brand, search, actions and menu button share a stable grid row.
74
+ - Tablet: search occupies its own grid row so input fields do not clip against actions.
75
+ - Mobile: brand, actions and menu button remain in the first row. Search occupies the second row. Navigation uses the configured menu presentation mode.
76
+ - The drawer is positioned as a `fixed` overlay. This keeps the app shell stable and prevents route changes from an open navigation state to a shorter page from creating extra document height.
77
+ - Slotted navigation uses `max-width: 100%`, `min-width: 0`, `box-sizing: border-box` and `overflow-wrap: anywhere` so long menu items do not overflow app-shell containers.
78
+ - `header-layout-changed` is emitted when the header enters its compact state.
79
+
80
+ ## Slot Alignment
81
+
82
+ `x-header` uses the `fixed-responsive-slot-grid` alignment by default.
83
+
84
+ | Viewport | Slot mapping |
85
+ |----------|--------------|
86
+ | Desktop | `brand search actions trigger` |
87
+ | Tablet | `brand actions trigger` + `search search search` |
88
+ | Mobile | `brand actions trigger` + `search search search` |
89
+
90
+ Corporate designs can override this mapping through CSS custom properties without forking the component:
91
+
92
+ ```css
93
+ x-header {
94
+ --header-slot-template-areas: "brand search actions trigger";
95
+ --header-tablet-slot-template-areas: "brand actions trigger" "search search search";
96
+ --header-mobile-slot-template-areas: "brand actions trigger" "search search search";
97
+ --header-mobile-actions-justify: flex-end;
98
+ --header-mobile-actions-wrap: nowrap;
99
+ }
100
+ ```
101
+
102
+ ---
103
+
104
+ ## Slots
105
+ | Name | Description |
106
+ |------|-------------|
107
+ | `title` | Title/branding area |
108
+ | `search` | Search form or filter input |
109
+ | `actions` | Buttons, theme toggles and status actions |
110
+ | `utility` | Compatible alias for actions |
111
+ | `nav` | Navigation entries, such as links or menus |
112
+ | `logo` | Optional custom logo element |
113
+
114
+ ---
115
+
116
+ ## Attributes
117
+ | Attribute | Type | Description |
118
+ |-----------|------|-------------|
119
+ | `src` | String | Logo URL |
120
+ | `logo-size` | String | Logo size, for example 40 or 64px |
121
+ | `sticky` | Boolean | Keeps the header fixed at the top |
122
+ | `shadow` | Boolean | Enables shadow |
123
+ | `menu-mode` | `drawer`, `side-panel`, `popover`, `fullscreen`, `inline-main` | Menu presentation mode |
124
+ | `menu-placement` | `start`, `end`, `top`, `bottom` | preferred position |
125
+ | `menu-modal` | Boolean | Modal behavior with backdrop and focus trap |
126
+ | `menu-open` | Boolean | Opens the menu declaratively |
127
+ | `menu-breakpoint` | String | Preset (`sm`, `md`, `lg`, `xl`) or CSS length |
128
+ | `menu-width` | String | Width for panel/popover |
129
+ | `menu-max-height` | String | Height limit for the menu surface |
130
+ | `menu-align` | `start`, `center`, `end`, `stretch` | Alignment inside the menu surface |
131
+
132
+ ---
133
+
134
+ ## Events
135
+ | Event | Description |
136
+ |-------|-------------|
137
+ | `header-layout-changed` | Fired on responsive layout changes |
138
+ | `menu-before-open` | Cancelable event before opening |
139
+ | `menu-before-close` | Cancelable event before closing |
140
+ | `menu-opened` | Fired with snapshot when the menu opens |
141
+ | `menu-closed` | Fired with snapshot when the menu closes |
142
+ | `menu-mode-changed` | Fired when `menu-mode` changes |
143
+ | `menu-placement-changed` | Fired when `menu-placement` changes |
144
+ | `logo-loaded` | Fired when the logo has loaded |
145
+
146
+ ---
147
+
148
+ ## API
149
+ - **Set logo dynamically:** `element.setAttribute('src', 'logo.svg')`
150
+ - **Control menu directly:** `header.toggleMenu(false, { source: 'router' })`
151
+ - **State integration:** automatic via xstate (`xheader-state-<id>`, for example open/close menu)
152
+ - **Open menu programmatically:**
153
+ ```js
154
+ xstate.set('xheader-state-<id>', { menuOpen: true });
155
+ ```
156
+
157
+ ---
158
+
159
+ ## Example: Dynamic JS
160
+
161
+ ```js
162
+ const header = document.createElement('x-header');
163
+ header.setAttribute('src', 'logo.svg');
164
+ document.body.appendChild(header);
165
+ ```
166
+
167
+ ---
168
+
169
+ ## Styling & Theming
170
+
171
+ ```css
172
+ x-header {
173
+ --xtend-header-surface: #fff;
174
+ --xtend-header-text: #222;
175
+ --xtend-header-border-color: #d9dde5;
176
+ --xtend-header-menu-surface: #fff;
177
+ --xtend-header-menu-width: min(30rem, 92vw);
178
+ --xtend-header-menu-max-height: min(72dvh, 820px);
179
+ --xtend-header-menu-backdrop: rgba(15, 23, 42, 0.45);
180
+ --header-bg: var(--xtend-header-surface);
181
+ --header-fg: var(--xtend-header-text);
182
+ --header-title-color: #222; /* title in light mode */
183
+ --burger-color: #222; /* burger button strokes in light mode */
184
+ --header-menu-bg: var(--xtend-header-menu-surface);
185
+ --header-mobile-slot-template-areas: "brand actions trigger" "search search search";
186
+ --header-drawer-inline-offset: 1rem;
187
+ --header-drawer-content-max: none;
188
+ }
189
+ x-header[theme="dark"] {
190
+ --header-bg: #222;
191
+ --header-fg: #fff;
192
+ --header-title-color: #fff; /* title in dark mode */
193
+ --burger-color: #fff; /* burger button strokes in dark mode */
194
+ }
195
+ ```
196
+
197
+ ---
198
+
199
+ ## Accessibility
200
+ - Semantic HTML and landmark roles (`role="banner"`)
201
+ - ARIA attributes for menu, burger button and navigation
202
+ - Keyboard navigation with Tab and Escape
203
+ - Focus management in overlays; `fullscreen` and `menu-modal` use focus trap, backdrop and focus return
204
+
205
+ ---
206
+
207
+ ## Changelog
208
+ - **2025-07-18:** Modernization, theme variables for title and burger, events, accessibility, API and documentation updated
209
+ - **up to 07/2025:** Various bug fixes and responsive improvements
210
+
211
+ ---
212
+
213
+ *Last updated: July 18, 2025*
214
+
215
+ ## Layout Display Media UX Profile
216
+
217
+ As of `WP-E11-12`, `x-header` provides the `xtend.component.layout-display-media-ux-profile.v1` profile. The component is RMT-schedulable as a docs/app-shell header and uses the state key `xheader-state-<id>`.
218
+
219
+ - Profile getter: `xtendLayoutDisplayMediaUxProfile`
220
+ - Schedule: `component.visible.mount`
221
+ - Events: `header-ready`, `menu-before-open`, `menu-before-close`, `menu-opened`, `menu-closed`, `menu-mode-changed`, `menu-placement-changed`
222
+ - Snapshot: `snapshot()`
223
+ - CSS parts: `root`, `brand`, `title`, `logo`, `search`, `actions`, `utility`, `trigger`, `trigger-icon`, `menu`, `menu-surface`, `menu-content`, `nav`, `backdrop`
224
+ - Legacy CSS parts: `drawer` and `drawer-surface` remain aliases for `menu` and `menu-surface`.
225
+
226
+ ## ECH-WP-07 Token Table and signatureDesign
227
+
228
+ `signatureDesign`: precise enterprise app shell with calm surface hierarchy, dense slot rhythm, high-quality menu surface and brand-neutral premium feel. The default design should feel distinctive without forcing a single-brand look.
229
+
230
+ | Token | Purpose |
231
+ | --- | --- |
232
+ | `--xtend-layout-surface` | Shell and menu surface |
233
+ | `--xtend-layout-text` | Header, brand and navigation color |
234
+ | `--xtend-layout-border-color` | Header, trigger and menu edges |
235
+ | `--xtend-layout-radius` | Header and menu radius |
236
+ | `--xtend-layout-elevation` | Header and menu shadow |
237
+ | `--xtend-layout-spacing` | Header padding |
238
+ | `--xtend-layout-gap` | Slot and menu spacing |
239
+ | `--xtend-layout-font-family` | Shell typography |
240
+ | `--xtend-layout-font-size` | Brand/navigation typography |
241
+ | `--xtend-layout-media-radius` | Logo and media radius |
242
+ | `--xtend-layout-focus-ring` | Keyboard focus |
243
+ | `--xtend-layout-grid-min` | Slot-grid lower bound |
244
+ | `--xtend-layout-content-max` | Menu width and content boundary |
245
+
246
+ ## ECH-WP-07 Foreign Theme
247
+
248
+ ```css
249
+ [data-xtend-layout-theme="enterprise-foreign"] x-header {
250
+ --xtend-layout-surface: #f6f2ea;
251
+ --xtend-layout-text: #17231f;
252
+ --xtend-layout-border-color: rgba(23, 35, 31, 0.22);
253
+ --xtend-layout-radius: 0.35rem;
254
+ --xtend-layout-elevation: 0 14px 34px rgba(23, 35, 31, 0.14);
255
+ --xtend-layout-spacing: 0.9rem;
256
+ --xtend-layout-gap: 0.7rem;
257
+ --xtend-layout-font-family: "Aptos", "Segoe UI", sans-serif;
258
+ --xtend-layout-font-size: 1rem;
259
+ --xtend-layout-media-radius: 0.2rem;
260
+ --xtend-layout-focus-ring: 3px solid #8f4f2a;
261
+ --xtend-layout-grid-min: minmax(0, 1fr);
262
+ --xtend-layout-content-max: 24rem;
263
+ }
264
+ ```
265
+
266
+ ## ECH-WP-09 Token Table and Navigation States
267
+
268
+ `signatureDesign`: `x-header` combines a high-quality enterprise app shell with visibly stable navigation. Active/current/selected, hover, focus and disabled states apply to slotted `nav` entries in `drawer`, `side-panel`, `popover`, `fullscreen` and `inline-main`.
269
+
270
+ | Token | Purpose |
271
+ | --- | --- |
272
+ | `--xtend-nav-surface` | Menu and nav surface |
273
+ | `--xtend-nav-text` | Nav text |
274
+ | `--xtend-nav-border-color` | Menu and nav edge |
275
+ | `--xtend-nav-radius` | Nav radius |
276
+ | `--xtend-nav-gap` | Spacing inside the menu |
277
+ | `--xtend-nav-font-family` | Navigation typography |
278
+ | `--xtend-nav-font-size` | Navigation text size |
279
+ | `--xtend-nav-active-surface` | Active/current/selected surface |
280
+ | `--xtend-nav-active-text` | Active/current/selected text |
281
+ | `--xtend-nav-current-indicator` | Non-color-only current indicator |
282
+ | `--xtend-nav-hover-surface` | Hover surface |
283
+ | `--xtend-nav-focus-ring` | Keyboard focus |
284
+ | `--xtend-nav-disabled-opacity` | Disabled dimming |
285
+
286
+ ## ECH-WP-09 Keyboard Behavior
287
+
288
+ The menu trigger is an icon control with `part="trigger-icon control icon"`. Overlay modes support Escape, outside click, focus return and, with `menu-modal`, focus trap. Slotted navigation can carry `aria-current="page"`, `aria-selected="true"`, `active`, `disabled` or `aria-disabled="true"`. Nested navigation must mark disclosure icons as icon controls, for example `part="disclosure-icon control icon"`.
289
+
290
+ ## ECH-WP-09 Foreign Theme
291
+
292
+ ```css
293
+ [data-xtend-nav-theme="enterprise-foreign"] x-header {
294
+ --xtend-nav-surface: #f7f4ee;
295
+ --xtend-nav-text: #17231f;
296
+ --xtend-nav-border-color: rgba(23, 35, 31, 0.22);
297
+ --xtend-nav-radius: 0.35rem;
298
+ --xtend-nav-gap: 0.45rem;
299
+ --xtend-nav-font-family: "Aptos", "Segoe UI", sans-serif;
300
+ --xtend-nav-font-size: 0.98rem;
301
+ --xtend-nav-active-surface: #173f35;
302
+ --xtend-nav-active-text: #fffaf0;
303
+ --xtend-nav-current-indicator: #b56b35;
304
+ --xtend-nav-hover-surface: rgba(181, 107, 53, 0.14);
305
+ --xtend-nav-focus-ring: 3px solid #b56b35;
306
+ --xtend-nav-disabled-opacity: 0.44;
307
+ }
308
+ ```