@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,118 @@
1
+ # xspinner - XTend Component
2
+
3
+ > **See also:** [xtoast](./xtoast.md), [xalert](./xalert.md)
4
+
5
+ ## Overview
6
+
7
+ `<x-spinner>` is an animated, accessible loading indicator for asynchronous
8
+ processes, loading states, and feedback. It is flexible, themeable, and
9
+ supports multiple variants, overlay mode, state integration, and accessibility
10
+ integration.
11
+
12
+ ---
13
+
14
+ ## Features
15
+
16
+ - Animated loading indicator (circle, dots)
17
+ - Size, color, speed, and type through attributes
18
+ - Overlay mode (centered, translucent)
19
+ - Slot for custom content
20
+ - State integration through xstate
21
+ - Events for pause/resume
22
+ - Theming through CSS custom properties and XTheme
23
+ - Accessibility: ARIA, `aria-busy`, `aria-label`, `aria-valuetext`
24
+ - `prefers-reduced-motion` support
25
+
26
+ ---
27
+
28
+ ## Usage
29
+
30
+ ```html
31
+ <x-spinner size="32" color="#C70039" speed="0.7s" type="dots"></x-spinner>
32
+ ```
33
+
34
+ ---
35
+
36
+ ## Attributes
37
+
38
+ | Attribute | Type | Description |
39
+ |-----------|------|-------------|
40
+ | `size` | String | spinner size, for example 32, 48, 64 |
41
+ | `color` | String | color as CSS color value, for example #007bff |
42
+ | `speed` | String | animation duration, for example 1s, 0.7s |
43
+ | `type` | String | `circle` (default), `dots` |
44
+ | `paused` | Boolean | pauses animation |
45
+ | `overlay` | Boolean | shows spinner as page overlay |
46
+ | `aria-label` | String | accessible text for screen readers |
47
+ | `aria-busy` | String | ARIA state (`true`/`false`) |
48
+ | `aria-valuetext` | String | progress text for screen readers |
49
+
50
+ ---
51
+
52
+ ## Events
53
+
54
+ | Event | Description |
55
+ |-------|-------------|
56
+ | `spinner-started` | emitted when inserted |
57
+ | `spinner-stopped` | emitted when removed |
58
+ | `paused` | animation was paused |
59
+ | `resumed` | animation was resumed |
60
+
61
+ ---
62
+
63
+ ## API
64
+
65
+ - **Set size:** `element.setAttribute('size', '48')`
66
+ - **Change type:** `element.setAttribute('type', 'dots')`
67
+ - **Pause/resume:** `element.setAttribute('paused', '')` /
68
+ `element.removeAttribute('paused')`
69
+ - **Imperative pause/resume:** `element.pause()` / `element.resume()`
70
+ - **Snapshot:** `element.snapshot()`
71
+ - **Enable overlay:** `element.setAttribute('overlay', '')`
72
+ - **State integration:** `xstate.set('xspinner-paused-'+element.id, true)`
73
+
74
+ ## Feedback Status UX from WP-E11-09
75
+
76
+ `<x-spinner>` exposes `xtendFeedbackStatusUxProfile` with
77
+ `xtend.component.feedback-status-ux-profile.v1`. The profile describes the
78
+ spinner as busy status with `spinner-started`, `spinner-stopped`, `paused`,
79
+ `resumed`, `xspinner-paused-<id>`, `component.visible.mount`, Fabric lane
80
+ `feedback`, a11y lane `a11y`, and RMT shell authoring.
81
+
82
+ The component reports pause/resume through events with `source: 'x-spinner'`
83
+ and `stateKey`. Animations are reduced-motion safe; busy state and
84
+ `aria-valuetext` remain available to screen readers even without visible
85
+ motion.
86
+
87
+ ---
88
+
89
+ ## Example: Dynamic JS
90
+
91
+ ```js
92
+ const spinner = document.createElement('x-spinner');
93
+ spinner.setAttribute('size', '48');
94
+ spinner.setAttribute('type', 'dots');
95
+ document.body.appendChild(spinner);
96
+ ```
97
+
98
+ ---
99
+
100
+ ## Styling and Theming
101
+
102
+ ```css
103
+ x-spinner {
104
+ --spinner-color: #007bff;
105
+ --spinner-size: 40px;
106
+ }
107
+ ```
108
+
109
+ ---
110
+
111
+ ## Accessibility
112
+
113
+ - ARIA role, `aria-busy`, `aria-label`, `aria-valuetext`
114
+ - respects `prefers-reduced-motion`
115
+
116
+ ---
117
+
118
+ *Last updated: July 18, 2025*
@@ -0,0 +1,163 @@
1
+ # xstate - XTend Component
2
+
3
+ > **See also:** [xalert](./xalert.md), [xtoast](./xtoast.md), [xbutton](./xbutton.md), [xtheme](./xtheme.md)
4
+
5
+ ## Overview
6
+
7
+ `xstate` is the central state management module for XTend components. It
8
+ supports global and local state, subscriptions, and reactive updates.
9
+
10
+ Since `WP-E12-08`, `xstate` is explicitly documented as a non-visual
11
+ **boundary probe**. The module is not reinterpreted as a Custom Element.
12
+ Instead, it provides a gateable adapter, typing, and lifecycle surface for
13
+ XTend UI, Fabric, and XTendRMT.
14
+
15
+ ---
16
+
17
+ ## Features
18
+
19
+ - Global and component-based state management
20
+ - Subscriptions for state changes with key filters
21
+ - Reactive updates for components
22
+ - Path updates, batch updates, and storage helpers
23
+ - Compatibility facade for `on/off`
24
+ - Lifecycle events for state operations
25
+ - Fabric-compatible diagnostics snapshots
26
+ - RMT State Scheduler Adapter without kernel coupling
27
+
28
+ ---
29
+
30
+ ## Usage
31
+
32
+ ```js
33
+ import { xstate } from 'components/xstate.js';
34
+
35
+ xstate.set('key', 'value');
36
+ const value = xstate.get('key');
37
+ const unsubscribe = xstate.subscribe((key, value, allData) => { ... }, 'key');
38
+ ```
39
+
40
+ ---
41
+
42
+ ## API
43
+
44
+ | Method | Description |
45
+ |--------|-------------|
46
+ | `get(key)` | returns the value for a key |
47
+ | `set(key, val)` | sets a value and notifies listeners |
48
+ | `subscribe(fn, keyFilter?)` | canonical subscription contract with optional key filter |
49
+ | `remove(key)` | removes a key from state |
50
+ | `getPath(path)` | reads nested values through dot notation |
51
+ | `setPath(path, value)` | writes nested values through dot notation |
52
+ | `batchUpdate(updates)` | applies multiple updates in one step |
53
+ | `saveToStorage(type?, key?)` | persists state to local or session storage |
54
+ | `loadFromStorage(type?, key?)` | loads state from browser storage |
55
+ | `on(key, fn)` | legacy compatibility for key-based listeners |
56
+ | `off(key, fn)` | removes a listener registered through `on` |
57
+ | `subscribeLifecycle(fn)` | subscribes to lifecycle/diagnostics events from the state boundary |
58
+ | `snapshot()` | returns a stable state snapshot for tests and adapters |
59
+ | `snapshotDiagnostics()` | returns Fabric-compatible diagnostics |
60
+ | `createRmtStateAdapter(options?)` | creates a host-neutral RMT state adapter |
61
+
62
+ ---
63
+
64
+ ## Example: Use State in a Component
65
+
66
+ ```js
67
+ xstate.set('user', { name: 'Konni' });
68
+ const unsubscribe = xstate.subscribe((key, value) => {
69
+ if (key === 'user') {
70
+ // React to changes
71
+ }
72
+ });
73
+ ```
74
+
75
+ ### Canonical Recommendation
76
+
77
+ - New core implementations should use `subscribe(fn, keyFilter)`.
78
+ - `on/off` remain allowed as a compatibility facade, but they are not the
79
+ canonical contract.
80
+
81
+ ---
82
+
83
+ ## Boundary Probe Contract
84
+
85
+ `xstate` is not a visual element. Component catalog hardening therefore checks
86
+ it as an infrastructure boundary:
87
+
88
+ - Boundary Schema: `xtend.state.boundary-probe.v1`
89
+ - Snapshot Schema: `xtend.state.snapshot.v1`
90
+ - Lifecycle Schema: `xtend.state.lifecycle-event.v1`
91
+ - Diagnostics Schema: `xtend.fabric.state-diagnostics.v1`
92
+ - RMT Compatibility Schema: `xtend.rmt.state-scheduler-compatibility.v1`
93
+ - Kernel Boundary: `no-rmt-kernel-import-of-xtend-types`
94
+
95
+ ```js
96
+ import { xstate } from '/components/xstate.js';
97
+
98
+ const unsubscribeLifecycle = xstate.subscribeLifecycle((event, diagnostics) => {
99
+ console.log(event.type, diagnostics.operationCounts);
100
+ });
101
+
102
+ xstate.set('rmt.bridge.ready', true);
103
+
104
+ const snapshot = xstate.snapshot();
105
+ const diagnostics = xstate.snapshotDiagnostics();
106
+
107
+ unsubscribeLifecycle();
108
+ ```
109
+
110
+ ## RMT State Scheduler Compatibility
111
+
112
+ RMT must not import `xstate` directly. An XTend host can intentionally create
113
+ an adapter and pass it to the State/Scheduler/Diagnostics Bridge:
114
+
115
+ ```js
116
+ const stateAdapter = xstate.createRmtStateAdapter({
117
+ schedulerId: 'docs.app.shell'
118
+ });
119
+
120
+ stateAdapter.set('rmt.scheduler.lastEndpoint', {
121
+ id: 'docs.header.search',
122
+ lane: 'user-blocking'
123
+ });
124
+
125
+ stateAdapter.snapshot();
126
+ stateAdapter.diagnostics();
127
+ ```
128
+
129
+ XTendRMT therefore remains framework-agnostic. `xstate` is an optional host
130
+ capability and not a kernel dependency.
131
+
132
+ ---
133
+
134
+ ## XTendRMT Bridge State
135
+
136
+ XTendRMT uses `xstate` optionally as a host-state mirror. The
137
+ State/Scheduler/Diagnostics Bridge writes into `xstate` only when a host passes
138
+ a compatible target. Without `xstate`, an in-memory state handle remains
139
+ active.
140
+
141
+ Current bridge keys:
142
+
143
+ - `rmt.bridge.ready`
144
+ - `rmt.scheduler.lastEndpoint`
145
+ - `rmt.adapter.lastResult`
146
+ - `rmt.diagnostics.last`
147
+ - `rmt.route.<id>.lastResult`
148
+ - `rmt.component.<id>.lastResult`
149
+
150
+ The implementation lives in `createRmtStateSchedulerDiagnosticsBridge`; details
151
+ are in [XTendRMT Runtime Bridge](../xtendrmt-runtime-bridge.md).
152
+
153
+ ---
154
+
155
+ ## Notes
156
+
157
+ - Used by almost all XTend components
158
+ - Can also be used for custom purposes
159
+ - In XTend Core, `xstate` is the first bootstrap base module
160
+
161
+ ---
162
+
163
+ *Last updated: May 7, 2026*
@@ -0,0 +1,71 @@
1
+ # xstatus - XTend Component
2
+
3
+ > **See also:** [xalert](./xalert.md), [xtoast](./xtoast.md), [xprogress](./xprogress.md), [xstate](./xstate.md)
4
+
5
+ ## Overview
6
+
7
+ `<x-status>` is a Fabric- and RMT-capable status control from `WP-E10-10`. It
8
+ renders scheduler, validation, and system feedback as a live region and stays
9
+ small enough to be used in RMT shells as a feedback building block.
10
+
11
+ ## Usage
12
+
13
+ ```html
14
+ <x-status id="route-status" type="warning" state="validating" message="Validation is running" dismissible busy>
15
+ <span slot="label">Scheduler status</span>
16
+ </x-status>
17
+ ```
18
+
19
+ ## Attributes
20
+
21
+ | Attribute | Type | Description |
22
+ |-----------|------|-------------|
23
+ | `type` | String | `info`, `success`, `warning`, or `error` |
24
+ | `state` | String | domain status key |
25
+ | `message` | String | visible message |
26
+ | `dismissible` | Boolean | shows close action |
27
+ | `busy` | Boolean | sets `aria-busy` |
28
+ | `polite` | Boolean | forces polite live region |
29
+ | `label` | String | label without slot |
30
+
31
+ ## Events
32
+
33
+ | Event | Detail |
34
+ |-------|--------|
35
+ | `status-changed` | `{ type, status, message, busy, source: 'x-status' }` |
36
+ | `status-dismissed` | `{ type, status, message, busy, source: 'x-status' }` |
37
+
38
+ ## API
39
+
40
+ - `element.state`
41
+ - `element.setStatus(nextState)`
42
+ - `element.announce(message?)`
43
+ - `element.dismiss()`
44
+
45
+ ## State, RMT, and Fabric
46
+
47
+ `<x-status>` writes to `xstatus-state-<id>`. RMT can schedule status updates to
48
+ `feedback.status.update` through `xtend.rmt.component-contract.v1` without
49
+ importing XTend internally. The kernel boundary remains
50
+ `no-rmt-kernel-import-of-xtend-types`; the UI component is the adapter outward.
51
+
52
+ ## A11y and Performance
53
+
54
+ The control uses `role="status"` for polite messages and `role=alert` for
55
+ critical warning/error paths. `scheduler-feedback`, `status-update`, and
56
+ `validation-feedback` are documented as screen reader signals. The performance
57
+ profile is `xtend.performance.component-profile.v1` with
58
+ `budgetClass: 'feedback-small'`, `lane: 'feedback'`, and
59
+ `hydrationPolicy: 'visible'`.
60
+
61
+ ## Feedback Status UX from WP-E11-09
62
+
63
+ `<x-status>` exposes `xtendFeedbackStatusUxProfile` with
64
+ `xtend.component.feedback-status-ux-profile.v1`. The profile connects
65
+ `status-changed`, `status-dismissed`, `xstatus-state-<id>`,
66
+ `feedback.status.update`, Fabric lane `feedback`, a11y lane `a11y`, and RMT
67
+ shell authoring.
68
+
69
+ The component is the shared inline status for forms, schedulers, route feedback,
70
+ and diagnostics. It avoids color-only communication, remains forced-colors
71
+ safe, and can be explicitly updated as a live region with `announce()`.
@@ -0,0 +1,90 @@
1
+ # xsummary - XTend Component
2
+
3
+ ## Overview
4
+
5
+ `<x-summary>` is an expandable disclosure component for compact detail areas.
6
+ It uses native `<details>`/`<summary>` semantics, mirrors its open state into
7
+ `xstate`, and works well for FAQ blocks, technical details, inline help, or
8
+ dashboard summaries.
9
+
10
+ ## Usage
11
+
12
+ ```html
13
+ <x-summary id="billing-details" type="info" open>
14
+ <span slot="title">Billing details</span>
15
+ <p>All invoice items are grouped by project and time period.</p>
16
+ </x-summary>
17
+ ```
18
+
19
+ ## Attributes
20
+
21
+ | Attribute | Type | Description |
22
+ |-----------|------|-------------|
23
+ | `open` | boolean | opens the detail area |
24
+ | `type` | string | visual variant: `info`, `success`, `warning`, `danger` |
25
+
26
+ ## Slots
27
+
28
+ | Slot | Description |
29
+ |------|-------------|
30
+ | `title` | content of the clickable summary header |
31
+ | default | expandable content |
32
+
33
+ ## Events
34
+
35
+ | Event | Description |
36
+ |-------|-------------|
37
+ | `open` | emitted when opening |
38
+ | `close` | emitted when closing |
39
+
40
+ The event detail contains:
41
+
42
+ ```js
43
+ {
44
+ open: true
45
+ }
46
+ ```
47
+
48
+ ## State Contract
49
+
50
+ The instance uses a compatible `xstate` key:
51
+
52
+ ```js
53
+ xsummary-open-<id>
54
+ ```
55
+
56
+ If no `id` is set, the component creates a stable runtime ID for the current
57
+ instance. External state changes on the key can open or close the component.
58
+
59
+ Synchronization is reentrant-safe: attributes, native `<details>` state, and
60
+ `xstate` are reconciled through one central open-state routine. Unchanged values
61
+ are not published to `xstate` again, so external state updates do not trigger a
62
+ recursive `open()`/`close()` loop.
63
+
64
+ ## A11y
65
+
66
+ - The native `<summary>` remains the primary keyboard and screen reader surface.
67
+ - `Enter` and `Space` toggle the state.
68
+ - `aria-expanded` is synchronized with the current open state.
69
+ - The summary header is focusable and has a visible focus state.
70
+
71
+ ## Notes
72
+
73
+ - `x-summary` is an interactive display component and has been
74
+ component-suite-gated since `ER-WP-33`.
75
+ - The Catalog Coverage Matrix now lists the component as `contract-gated`.
76
+ - Further contract hardening for performance, browser regression, and
77
+ long-tail coverage follows in `ER-WP-35`; public types and event details have
78
+ existed since `ER-WP-34`.
79
+
80
+ ## Layout Display Media UX Profile
81
+
82
+ Starting with `WP-E11-12`, `x-summary` exposes the profile
83
+ `xtend.component.layout-display-media-ux-profile.v1`. The component remains a
84
+ disclosure display shell and uses the state key `xsummary-open-<id>`.
85
+
86
+ - Profile getter: `xtendLayoutDisplayMediaUxProfile`
87
+ - Schedule: `component.visible.mount`
88
+ - Events: `open`, `close`
89
+ - Snapshot: `snapshot()`
90
+ - CSS parts: `container`, `summary`, `content`
@@ -0,0 +1,42 @@
1
+ # xsurfacemanager - XTend Component
2
+
3
+ `x-surface-manager` is the app-shell surface root for multi-window interfaces.
4
+ The component instantiates `xtend.surface.controller.v1`, registers slotted
5
+ `x-surface-window`, `x-side-panel`, and compatible overlay elements, and
6
+ mirrors layout, focus, and lifecycle changes as `xtend.surface.snapshot.v1`.
7
+
8
+ ## Attributes
9
+
10
+ - `manager-id`: stable manager ID for surface records
11
+ - `state-key`: xstate registry key, defaults to `xtend.surface.registry`
12
+ - `layout`: layout profile for the surface zone
13
+ - `restore-key`: future persistence key for layout restore
14
+ - `route-aware`: marks route-bound surface management
15
+ - `modal-policy`: policy for future modal surface stacks
16
+
17
+ ## Slots
18
+
19
+ - `windows`: freely positioned windows
20
+ - `panels`: `x-side-panel` surfaces with docked, pinned, overlay, or collapsed modes
21
+ - `overlays`: optional overlay bridge for `x-modal`, `x-dialog`, and `x-drawer`
22
+ - `default`: simple Light DOM fallbacks
23
+
24
+ ## API
25
+
26
+ `registerSurface(surface)`, `openSurface(id)`, `closeSurface(id)`,
27
+ `focusSurface(id)`, `updateSurface(id, patch)`, `moveSurface(id, bounds)`,
28
+ `resizeSurface(id, bounds)`, `minimizeSurface(id)`, `maximizeSurface(id)`,
29
+ `restoreSurface(id)`, `pinSurface(id)`, `collapseSurface(id)`,
30
+ `expandSurface(id)`, `dockSurface(id)`, and `snapshot()` delegate to the
31
+ Surface Controller.
32
+
33
+ Events: `surface-manager-ready`, `surface-registered`, `surface-opened`,
34
+ `surface-closed`, `surface-focused`, `surface-updated`,
35
+ `surface-layout-changed`, `surface-window-command`, `surface-panel-command`,
36
+ and `surface-overlay-command`.
37
+
38
+ RMT: `xtend.rmt.component-contract.v1`, `xtend.surface.manager.v1`,
39
+ `xtend.surface.controller.v1`, `xtend.surface.overlay-stack-bridge.v1`,
40
+ `surface.visible.render`, `surface.user-blocking.open`,
41
+ `surface.user-blocking.close`, `surface.transition.layout`,
42
+ `surface.diagnostics.snapshot`.
@@ -0,0 +1,31 @@
1
+ # xsurfacewindow - XTend Component
2
+
3
+ `x-surface-window` is XTend's first visible WindowManager surface. It registers
4
+ with an enclosing `x-surface-manager`, provides window chrome, actions, bounds,
5
+ and a content slot, and mirrors controller snapshots into attributes and CSS
6
+ variables.
7
+
8
+ ## Attributes
9
+
10
+ - `surface-id`: stable surface ID
11
+ - `label`: accessible name and window title
12
+ - `open`, `active`, `minimized`, `maximized`
13
+ - `draggable`, `resizable`, `modal`
14
+ - `initial-x`, `initial-y`, `initial-width`, `initial-height`
15
+
16
+ ## API
17
+
18
+ `toSurfaceRecord(managerId)` creates an `xtend.surface.record.v1` for the
19
+ manager. `applySurfaceSnapshot(record)` updates visible state, bounds, and
20
+ z-order.
21
+
22
+ Commands: `openWindow()`, `closeWindow(reason)`, `focusWindow()`,
23
+ `minimizeWindow()`, `maximizeWindow()`, and `restoreWindow()`.
24
+
25
+ The element emits `surface-window-command` with `open`, `close`, `focus`,
26
+ `move`, `resize`, `minimize`, `maximize`, `restore`, or `update`. The manager
27
+ translates these commands into controller operations.
28
+
29
+ RMT: `xtend.rmt.component-contract.v1`, `xtend.surface.record.v1`,
30
+ `surface.user-blocking.open`, `surface.user-blocking.close`,
31
+ `surface.transition.layout`, `surface.diagnostics.snapshot`.
@@ -0,0 +1,187 @@
1
+ # xtabs - XTend Component
2
+
3
+ > **See also:** [xsection](./xsection.md), [xstate](./xstate.md)
4
+
5
+ ## Overview
6
+
7
+ `<x-tabs>` is a component for tab navigation and structured content. It
8
+ supports dynamic tabs, theming, and state integration.
9
+
10
+ ---
11
+
12
+ ## Features
13
+
14
+ - Dynamic tab navigation
15
+ - Slot for tab content
16
+ - State integration through xstate
17
+ - Theming through CSS custom properties
18
+
19
+ ---
20
+
21
+ ## Usage
22
+
23
+ ```html
24
+ <x-tabs selected="0">
25
+ <x-tab name="Tab 1">Content 1</x-tab>
26
+ <x-tab name="Tab 2">Content 2</x-tab>
27
+ </x-tabs>
28
+ ```
29
+
30
+ ---
31
+
32
+ ## Attributes
33
+
34
+ | Attribute | Type | Description |
35
+ |-----------|------|-------------|
36
+ | - | - | - |
37
+
38
+ ---
39
+
40
+ ## Events
41
+
42
+ | Event | Description |
43
+ |-------|-------------|
44
+ | `tab-selected` | tab change with `{ index }`, `bubbles: true`, `composed: true` |
45
+
46
+ ---
47
+
48
+ ## API
49
+
50
+ - **Insert tabs through slot**
51
+ - **State integration:** automatic through xstate
52
+
53
+ ---
54
+
55
+ ## Example: Dynamic JS
56
+
57
+ ```js
58
+ const tabs = document.createElement('x-tabs');
59
+ tabs.innerHTML = '<div slot="tab" label="A">A</div>';
60
+ document.body.appendChild(tabs);
61
+ ```
62
+
63
+ ---
64
+
65
+ ## Styling and Theming
66
+
67
+ ```css
68
+ x-tabs {
69
+ --tab-active-bg: #007bff;
70
+ }
71
+ ```
72
+
73
+ ---
74
+
75
+ ## Accessibility
76
+
77
+ `x-tabs` renders a `role="tablist"` header, creates `role="tab"` for every
78
+ button, and connects buttons and panels through `aria-controls` and
79
+ `aria-labelledby`.
80
+
81
+ Keyboard navigation uses roving `tabindex`:
82
+
83
+ | Key | Behavior |
84
+ |-----|----------|
85
+ | `ArrowRight` | next tab |
86
+ | `ArrowLeft` | previous tab |
87
+ | `Home` | first tab |
88
+ | `End` | last tab |
89
+ | `Enter` / `Space` | activate focused tab |
90
+
91
+ Active panels carry `role="tabpanel"` and `aria-hidden="false"`; inactive
92
+ panels are removed from visible navigation with `hidden` and
93
+ `aria-hidden="true"`.
94
+
95
+ ## Performance Profile from WP-E12-02
96
+
97
+ `x-tabs` has an explicit `xtendScaffoldPerformanceProfile` under
98
+ `xtend.performance.component-profile.v1`.
99
+
100
+ | Field | Value |
101
+ |-------|-------|
102
+ | Budget class | `critical` |
103
+ | Lane | `user-blocking` |
104
+ | Hydration policy | `visible` |
105
+ | Tab switch budget | `16 ms` |
106
+ | Keyboard budget | `16 ms` |
107
+ | Render update budget | `28 ms` |
108
+
109
+ RMT shells can schedule `x-tabs` through `ui.user-blocking.tabs`,
110
+ `route.transition.tab`, `component.visible.hydrate`, and `diagnostics.snapshot`.
111
+ The RMT kernel remains framework-agnostic; XTend-specific data lives in the
112
+ component adapter metadata profile.
113
+
114
+ The runtime provides `getPerformanceBudget()` and `snapshotPerformance()`.
115
+ `snapshotPerformance()` returns local measurement points for hydration, render,
116
+ tab switch, and keyboard interactions so Fabric or a later reporter can consume
117
+ the data.
118
+
119
+ ## Component-Level Contract from ER-WP-33
120
+
121
+ - `selected` determines the active tab index.
122
+ - `text-color` synchronizes the text color in the tab header.
123
+ - `tab-selected` is emitted after a tab change with `{ index }`.
124
+ - `xtabs-selected` is the canonical `xstate` key for external tab changes.
125
+ - Keyboard navigation includes `ArrowRight`, `ArrowLeft`, `Home`, `End`,
126
+ `Enter`, and `Space`.
127
+ - `data-rmt-schedule="ui.user-blocking.tabs"` and
128
+ `data-xtend-lane="user-blocking"` form the fixture line for RMT/Fabric
129
+ scheduling.
130
+ - `snapshotPerformance()` makes the WP-E12-02 runtime budget testable.
131
+ - Since `WP-E12-03`, browser smoke and theme matrix explicitly cover `x-tabs`
132
+ keyboard, ARIA, and theme shell journeys.
133
+
134
+ ---
135
+
136
+ *Last updated: May 7, 2026*
137
+
138
+ ## ECH-WP-09 Token Table and Navigation States
139
+
140
+ `signatureDesign`: `x-tabs` creates an independent enterprise tab navigation
141
+ with visible selected rail, wrap-safe labels, and fully replaceable typography.
142
+ Active/current/selected, hover, focus, and disabled states are themeable through
143
+ shared navigation tokens.
144
+
145
+ | Token | Purpose |
146
+ | --- | --- |
147
+ | `--xtend-nav-surface` | tablist surface |
148
+ | `--xtend-nav-text` | tab text |
149
+ | `--xtend-nav-border-color` | tab and tablist edges |
150
+ | `--xtend-nav-radius` | tab radius |
151
+ | `--xtend-nav-gap` | spacing between tabs |
152
+ | `--xtend-nav-font-family` | tab typography |
153
+ | `--xtend-nav-font-size` | tab text size |
154
+ | `--xtend-nav-active-surface` | selected surface |
155
+ | `--xtend-nav-active-text` | selected text |
156
+ | `--xtend-nav-current-indicator` | non-color-only selected indicator |
157
+ | `--xtend-nav-hover-surface` | hover surface |
158
+ | `--xtend-nav-focus-ring` | keyboard focus |
159
+ | `--xtend-nav-disabled-opacity` | disabled dimming |
160
+
161
+ ## ECH-WP-09 Keyboard Behavior
162
+
163
+ `ArrowRight`, `ArrowLeft`, `Home`, `End`, `Enter`, and `Space` remain the
164
+ binding keys. Disabled tabs are not focusable or activatable.
165
+ Active/current/selected is mirrored through `aria-selected="true"` on the tab
166
+ and `role="tabpanel"` on the panel; route tabs may additionally carry
167
+ `aria-current="page"` through host logic.
168
+
169
+ ## ECH-WP-09 External Theme
170
+
171
+ ```css
172
+ [data-xtend-nav-theme="enterprise-foreign"] x-tabs {
173
+ --xtend-nav-surface: #f3f0e8;
174
+ --xtend-nav-text: #202520;
175
+ --xtend-nav-border-color: rgba(32, 37, 32, 0.24);
176
+ --xtend-nav-radius: 0.35rem;
177
+ --xtend-nav-gap: 0.4rem;
178
+ --xtend-nav-font-family: "Aptos", "Segoe UI", sans-serif;
179
+ --xtend-nav-font-size: 0.95rem;
180
+ --xtend-nav-active-surface: #243c34;
181
+ --xtend-nav-active-text: #fff9ed;
182
+ --xtend-nav-current-indicator: #a65f2d;
183
+ --xtend-nav-hover-surface: rgba(166, 95, 45, 0.14);
184
+ --xtend-nav-focus-ring: 3px solid #a65f2d;
185
+ --xtend-nav-disabled-opacity: 0.42;
186
+ }
187
+ ```