@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,157 @@
1
+ # xhero - XTend Component
2
+
3
+ > **See also:** [xsection](./xsection.md), [xbutton](./xbutton.md)
4
+
5
+ ## Overview
6
+
7
+ `<x-hero>` is a flexible hero component for high-impact headers, landing pages,
8
+ and entry points. It supports slots for title, subtitle, actions, and media.
9
+
10
+ ---
11
+
12
+ ## Features
13
+
14
+ - Flexible layout for hero areas
15
+ - Slots for title, text, actions, and media
16
+ - Theming through CSS custom properties
17
+ - Theme variants through `background-light`, `background-dark`,
18
+ `font-color-light`, `font-color-dark`, `overlay-light`, and `overlay-dark`
19
+ - Responsive design
20
+
21
+ ---
22
+
23
+ ## Usage
24
+
25
+ ```html
26
+ <x-hero>
27
+ <h1 slot="title">Welcome!</h1>
28
+ <p slot="subtitle">XTend makes web development simple.</p>
29
+ <x-button slot="action">Get started</x-button>
30
+ </x-hero>
31
+ ```
32
+
33
+ ---
34
+
35
+ ## Attributes
36
+
37
+ | Attribute | Type | Description |
38
+ |-----------|------|-------------|
39
+ | `background` | String | fixed background or CSS variable |
40
+ | `background-light` | String | background for light themes |
41
+ | `background-dark` | String | background for dark themes |
42
+ | `background-image` | String | image background |
43
+ | `overlay` | Boolean | activates overlay surface |
44
+ | `overlay-light` | String | overlay color for light themes |
45
+ | `overlay-dark` | String | overlay color for dark themes |
46
+ | `font-color` | String | fixed text color |
47
+ | `font-color-light` | String | text color for light themes |
48
+ | `font-color-dark` | String | text color for dark themes |
49
+ | `animate` | Boolean | activates entrance transition with reduced-motion fallback |
50
+
51
+ ---
52
+
53
+ ## Events
54
+
55
+ | Event | Description |
56
+ |-------|-------------|
57
+ | - | - |
58
+
59
+ ---
60
+
61
+ ## API
62
+
63
+ - **Insert content through slots**
64
+ - **State integration:** optional through xstate
65
+
66
+ ---
67
+
68
+ ## Example: Dynamic JS
69
+
70
+ ```js
71
+ const hero = document.createElement('x-hero');
72
+ hero.innerHTML = '<h1 slot="title">Hello XTend!</h1>';
73
+ document.body.appendChild(hero);
74
+ ```
75
+
76
+ ---
77
+
78
+ ## Styling and Theming
79
+
80
+ ```css
81
+ x-hero {
82
+ --hero-bg: #f5f5f5;
83
+ --hero-color: #222;
84
+ }
85
+ ```
86
+
87
+ ## Viewport Safety
88
+
89
+ `x-hero` constrains host, root, and content to `max-width: 100%` and avoids
90
+ inner `100vw` width on narrow viewports. The component therefore stays inside
91
+ the visible viewport even in padded app shells or docs layouts.
92
+
93
+ ---
94
+
95
+ ## Accessibility
96
+
97
+ - Semantic HTML, ARIA
98
+
99
+ ---
100
+
101
+ *Last updated: July 16, 2025*
102
+
103
+ ## Layout Display Media UX Profile
104
+
105
+ Starting with `WP-E11-12`, `x-hero` exposes the profile
106
+ `xtend.component.layout-display-media-ux-profile.v1`. The component remains a
107
+ hero/display shell and can be rendered first in RMT with
108
+ `component.shell.render`. The state key is `xhero-state-<id>`.
109
+
110
+ - Profile getter: `xtendLayoutDisplayMediaUxProfile`
111
+ - Schedule: `component.shell.render`
112
+ - Events: `hero-rendered`, `hero-animated`
113
+ - Snapshot: `snapshot()`
114
+ - CSS parts: `root`, `overlay`, `content`, `scroll-button`
115
+
116
+ ## ECH-WP-07 Token Table and signatureDesign
117
+
118
+ `signatureDesign`: immersive enterprise hero composition with editorial depth,
119
+ media-capable surface, and tokenized content block. The default effect should
120
+ feel elegant and independent while allowing image, app, and corporate
121
+ presentation.
122
+
123
+ | Token | Purpose |
124
+ | --- | --- |
125
+ | `--xtend-layout-surface` | hero and content surface |
126
+ | `--xtend-layout-text` | hero text color |
127
+ | `--xtend-layout-border-color` | scroll-control edge |
128
+ | `--xtend-layout-radius` | hero, content, and title radius |
129
+ | `--xtend-layout-elevation` | hero, content, and title shadow |
130
+ | `--xtend-layout-spacing` | hero and content padding |
131
+ | `--xtend-layout-gap` | composition spacing for theme authors |
132
+ | `--xtend-layout-font-family` | hero typography |
133
+ | `--xtend-layout-font-size` | control and content scaling |
134
+ | `--xtend-layout-media-radius` | image/hero radius |
135
+ | `--xtend-layout-focus-ring` | scroll-control focus |
136
+ | `--xtend-layout-grid-min` | responsive composition base |
137
+ | `--xtend-layout-content-max` | content width |
138
+
139
+ ## ECH-WP-07 External Theme
140
+
141
+ ```css
142
+ [data-xtend-layout-theme="enterprise-foreign"] x-hero {
143
+ --xtend-layout-surface: rgba(248, 244, 239, 0.88);
144
+ --xtend-layout-text: #15231d;
145
+ --xtend-layout-border-color: rgba(21, 35, 29, 0.22);
146
+ --xtend-layout-radius: 0.45rem;
147
+ --xtend-layout-elevation: 0 20px 60px rgba(21, 35, 29, 0.16);
148
+ --xtend-layout-spacing: 4rem 2rem;
149
+ --xtend-layout-gap: 1rem;
150
+ --xtend-layout-font-family: "Aptos Display", "Segoe UI", sans-serif;
151
+ --xtend-layout-font-size: 1.05rem;
152
+ --xtend-layout-media-radius: 0.65rem;
153
+ --xtend-layout-focus-ring: 3px solid #8f4f2a;
154
+ --xtend-layout-grid-min: minmax(0, 1fr);
155
+ --xtend-layout-content-max: 42rem;
156
+ }
157
+ ```
@@ -0,0 +1,149 @@
1
+ # xicon - XTend Component
2
+
3
+ > **See also:** [xbutton](./xbutton.md), [xtheme](./xtheme.md), [xrouter](./xrouter.md)
4
+
5
+ ## Overview
6
+
7
+ `<x-icon>` is the universal iconography adapter for XTend apps. The component
8
+ renders local inline SVG icons, registered icon packs, or controlled URL
9
+ sources while remaining framework-agnostic, RMT-compatible, and CDN-free.
10
+
11
+ The included `core` pack covers the most important XTend UI symbols. The local
12
+ `lucide` adapter serves as a larger superset, loads from local ESM artifacts,
13
+ and avoids external CDN dependencies, FCP slowdowns, and privacy issues.
14
+
15
+ ## Features
16
+
17
+ - local `core` icon pack with base icons for shell, docs, status, and
18
+ navigation
19
+ - local `lucide` IconPack adapter as a superset without remote runtime import
20
+ - global registry `window.XTend.icons` for custom icon packs and corporate
21
+ design sets
22
+ - direct sources through `src` for SVG files from repo, app bundle, or host CDN
23
+ policies
24
+ - raw SVG pack entries are reduced to allowed nodes and attributes before
25
+ rendering
26
+ - a11y mode for decorative and semantic icons
27
+ - state integration through `xicon-state-<id>`
28
+ - RMT shell authoring through `xtend.rmt.component-contract.v1`
29
+ - performance profile `xtend.performance.component-profile.v1` with
30
+ `display-micro` budget
31
+
32
+ ## Usage
33
+
34
+ ```html
35
+ <x-icon name="search" label="Search"></x-icon>
36
+ <x-icon name="gauge" pack="lucide" size="1.25rem" label="Performance"></x-icon>
37
+ <x-icon src="/assets/icons/company.svg" label="Corporate Icon"></x-icon>
38
+ <x-icon name="chevron-right" decorative></x-icon>
39
+ ```
40
+
41
+ ## Attributes
42
+
43
+ | Attribute | Type | Description |
44
+ |-----------|------|-------------|
45
+ | `name` | String | icon name or alias from the registry |
46
+ | `pack` | String | optional icon pack, for example `core` or `lucide` |
47
+ | `src` | String | controlled URL source for an icon from repo, app bundle, or host policy |
48
+ | `label` | String | accessible name for screen readers |
49
+ | `size` | String | CSS size, for example `1em`, `20px`, `1.25rem` |
50
+ | `stroke-width` | String | stroke width for inline SVG paths |
51
+ | `color` | String | CSS color value; default is `currentColor` |
52
+ | `decorative` | Boolean | sets `aria-hidden` and removes semantic image role |
53
+
54
+ ## Events
55
+
56
+ | Event | Description |
57
+ |-------|-------------|
58
+ | `icon-ready` | icon was resolved from pack or `src` |
59
+ | `icon-missing` | registry could not resolve `name`/`pack` |
60
+ | `icon-pack-registered` | a pack was registered in the global registry |
61
+
62
+ ## API
63
+
64
+ | Method | Purpose |
65
+ |--------|---------|
66
+ | `setIcon(name, options?)` | sets icon, pack, label, or `src` programmatically |
67
+ | `registerPack(pack, options?)` | registers a pack through the component |
68
+ | `snapshot()` | returns `xtend.component.x-icon.state.v1` including registry snapshot |
69
+ | `window.XTend.icons.register(pack, options?)` | global pack registration |
70
+ | `window.XTend.icons.resolve(name, options?)` | global resolution without rendering |
71
+ | `window.XTend.icons.snapshot()` | registry snapshot for diagnostics |
72
+
73
+ ## Custom Icon Packs
74
+
75
+ ```js
76
+ window.XTend.icons.register({
77
+ id: 'brand',
78
+ label: 'Corporate Design Icons',
79
+ cdnAllowed: false,
80
+ icons: {
81
+ product: {
82
+ aliases: ['logo-mark'],
83
+ nodes: [
84
+ { tag: 'path', attrs: { d: 'M12 3 21 8v8l-9 5-9-5V8Z' } }
85
+ ]
86
+ }
87
+ }
88
+ });
89
+ ```
90
+
91
+ Packs can contain custom SVG node descriptors, individual path strings, inline
92
+ SVG records, or URL records. Remote sources are not the XTend default; hosts
93
+ must intentionally provide them as `src` or pack URLs.
94
+
95
+ ## ECH-WP-04 Control Rule
96
+
97
+ No text glyphs as controls: close, menu, disclosure, status, and action
98
+ controls must not be styled with visible characters such as `x`, `&times;`,
99
+ arrows, or emoji. Use `x-icon`, inline SVG, or a tokenized CSS graphic.
100
+
101
+ Required for icon controls:
102
+
103
+ - The button has an accessible name, for example `aria-label`.
104
+ - The button exposes a stable control part, for example `part="close control"`.
105
+ - The graphic exposes an icon part, for example `part="control icon"` or
106
+ `part="close-icon control icon"`.
107
+ - The core pack contains at least `close`, `menu`, `chevron-left`,
108
+ `chevron-right`, `chevron-up`, `chevron-down`, `success`, `warning`, `error`,
109
+ and `info` for framework controls.
110
+ - Custom icon packs must use local SVG node descriptors or safe `src` sources;
111
+ CDN dependencies are not an XTend default base.
112
+
113
+ ## RMT and Fabric
114
+
115
+ `x-icon` declares `xtendRmtMetadata` with `adapter: 'xtend.component'`,
116
+ `templateMode: 'dom_descriptor'`, `shellAuthoring.attributes`, and the boundary
117
+ `no-rmt-kernel-import-of-xtend-types`. RMT can therefore author icons in app
118
+ shells, navigation, buttons, or docs templates without importing the XTend
119
+ kernel or an icon vendor.
120
+
121
+ Fabric consumes:
122
+
123
+ - `icon-ready`
124
+ - `icon-missing`
125
+ - `icon-pack-registered`
126
+ - State key `xicon-state-<id>`
127
+ - `snapshot()`
128
+
129
+ ## Styling and Theming
130
+
131
+ ```css
132
+ x-icon {
133
+ --xtend-icon-size: 1rem;
134
+ --xtend-icon-color: currentColor;
135
+ --xtend-icon-stroke-width: 2;
136
+ }
137
+ ```
138
+
139
+ The icon follows `currentColor` and therefore integrates into `x-theme`,
140
+ `x-header`, `x-button`, `x-menu`, and custom corporate design tokens. In
141
+ forced-colors mode, the component remains readable through system colors.
142
+
143
+ ## Accessibility
144
+
145
+ - with `label`, the host renders `role="img"` and `aria-label`
146
+ - without label or with `decorative`, the component renders `aria-hidden`
147
+ - URL icons receive an empty `alt` when decorative
148
+ - `icon-missing` is available as a diagnostic event without burdening screen
149
+ readers with error signals
@@ -0,0 +1,147 @@
1
+ # xinput - XTend Component
2
+
3
+ > **See also:** [xform](./xform.md), [xstate](./xstate.md)
4
+
5
+ ## Overview
6
+
7
+ `<x-input>` is a versatile input field with theming, state integration, and
8
+ full form support.
9
+
10
+ ---
11
+
12
+ ## Features
13
+
14
+ - Standard input with slot for label
15
+ - State integration through xstate
16
+ - Theming through CSS custom properties
17
+ - Form integration
18
+
19
+ ---
20
+
21
+ ## Usage
22
+
23
+ ```html
24
+ <x-input value="Hello"></x-input>
25
+ ```
26
+
27
+ ---
28
+
29
+ ## Attributes
30
+
31
+ | Attribute | Type | Description |
32
+ |-----------|------|-------------|
33
+ | `value` | String | value of the input field |
34
+ | `type` | String | input type (text, number, etc.) |
35
+ | `placeholder` | String | placeholder text |
36
+
37
+ ---
38
+
39
+ ## Events
40
+
41
+ | Event | Description |
42
+ |-------|-------------|
43
+ | `input` | emitted while typing |
44
+ | `change` | emitted when the value changes |
45
+ | `input-changed` | current XTend contract for value changes, detail: `{ value }` |
46
+ | `validation-failed` | validation error, detail: `{ value }` |
47
+
48
+ ---
49
+
50
+ ## API
51
+
52
+ - **Set/read value:** `element.value = 'Text'`
53
+ - **State integration:** automatic through xstate
54
+ - **Validation:** `element.checkValidity()`, `element.reportValidity()`
55
+ - **Reset:** `element.reset()`
56
+
57
+ ## State Contract from ER-WP-33
58
+
59
+ `<x-input>` writes its value to `xinput-value-<id>` and reacts to external
60
+ changes of that key. The validation region uses `role="alert"` and
61
+ `aria-live="assertive"`, so form errors become semantically visible and not
62
+ only color-coded.
63
+
64
+ ## Form Controls UX from WP-E11-08
65
+
66
+ `<x-input>` exposes `xtendFormControlUxProfile` with
67
+ `xtend.component.form-control-ux-profile.v1`. The profile connects label, hint,
68
+ error, `input-changed`, `validation-failed`, `xinput-value-<id>`,
69
+ `ui.user-blocking.input`, Fabric lane `user-blocking`, and RMT shell authoring.
70
+
71
+ ---
72
+
73
+ ## Example: Dynamic JS
74
+
75
+ ```js
76
+ const input = document.createElement('x-input');
77
+ input.value = 'Hello';
78
+ document.body.appendChild(input);
79
+ ```
80
+
81
+ ---
82
+
83
+ ## Styling and Theming
84
+
85
+ ```css
86
+ x-input {
87
+ --input-border: 1px solid #ccc;
88
+ --input-bg: #fff;
89
+ --input-bg-dark: #0f0f12;
90
+ --input-placeholder-color-dark: #b8c4d4;
91
+ }
92
+ ```
93
+
94
+ `<x-input>` automatically uses `--xtend-surface` and `--xtend-text` from
95
+ `x-theme`. In `data-theme="dark"`, a dark background is set through
96
+ `--input-bg-dark`, `--xtend-control-bg-dark`, or the theme surface fallback so
97
+ text and search fields remain readable in the Docs App.
98
+
99
+ ---
100
+
101
+ ## Accessibility
102
+
103
+ - Label slot, ARIA, form integration
104
+
105
+ ---
106
+
107
+ *Last updated: July 16, 2025*
108
+
109
+ ## ECH-WP-08 Form Theme/A11y Hardening
110
+
111
+ `signatureDesign`: precise enterprise text field with calm surface, clear
112
+ status typography, and dense but readable form rhythm.
113
+
114
+ | Token | Purpose |
115
+ | --- | --- |
116
+ | `--xtend-form-text` | host text color |
117
+ | `--xtend-form-control-surface` | input surface |
118
+ | `--xtend-form-control-text` | input text |
119
+ | `--xtend-form-label-text` | label |
120
+ | `--xtend-form-helper-text` | helper/hint |
121
+ | `--xtend-form-error-text` | error text |
122
+ | `--xtend-form-error-surface` | error surface |
123
+ | `--xtend-form-error-border` | error edge and marker |
124
+ | `--xtend-form-focus-ring` | native focus outline |
125
+ | `--xtend-form-radius` | control and error radius |
126
+ | `--xtend-form-gap` | label, helper, and error spacing |
127
+ | `--xtend-form-font-family` | form typography |
128
+ | `--xtend-form-control-font-size` | control font |
129
+ | `--xtend-form-helper-font-size` | helper/error font |
130
+ | `--xtend-form-icon-color` | icon/affordance color for controls with icons |
131
+
132
+ Density profiles: `density="comfortable"`, `density="compact"`, and
133
+ `density="dense"`. Invalid/error state is not color-only: control edge, inner
134
+ ring, and error marker remain visible in dark/forced-colors modes.
135
+
136
+ ```css
137
+ [data-xtend-form-theme="enterprise-foreign"] x-input {
138
+ --xtend-form-control-surface: #fbf8f2;
139
+ --xtend-form-control-text: #16231f;
140
+ --xtend-form-label-text: #22312c;
141
+ --xtend-form-helper-text: #596861;
142
+ --xtend-form-error-text: #7d231c;
143
+ --xtend-form-error-border: #a64036;
144
+ --xtend-form-focus-ring: 3px solid #8f4f2a;
145
+ --xtend-form-radius: 0.35rem;
146
+ }
147
+ ```
@@ -0,0 +1,113 @@
1
+ # xlightbox - XTend Component
2
+
3
+ > **See also:** [xplayer](./xplayer.md)
4
+
5
+ ## Overview
6
+
7
+ `<x-lightbox>` displays images in a viewport-wide overlay. It supports trigger
8
+ slots, API-controlled opening, Escape close, focus return, and
9
+ viewport-bounded media scaling.
10
+
11
+ ---
12
+
13
+ ## Features
14
+
15
+ - Overlay for images and media
16
+ - Trigger slot and global helper API
17
+ - Keyboard support with Escape close
18
+ - Viewport-bounded image scaling with body portal
19
+ - Theming through CSS custom properties
20
+
21
+ ---
22
+
23
+ ## Usage
24
+
25
+ ```html
26
+ <x-lightbox id="logo-lightbox" src="/assets/logo.png" alt="XTend Logo">
27
+ <x-button slot="trigger" variant="secondary">View logo</x-button>
28
+ </x-lightbox>
29
+
30
+ <img src="/assets/preview.jpg" data-xlightbox alt="Preview" />
31
+ ```
32
+
33
+ ---
34
+
35
+ ## Attributes
36
+
37
+ | Attribute | Type | Description |
38
+ |-----------|------|-------------|
39
+ | `src` | String | image source for trigger, API, and `data-xlightbox` |
40
+ | `open` | Boolean | opens the lightbox in controlled mode when `src` is set |
41
+ | `alt` | String | alternative text for the displayed image |
42
+
43
+ ---
44
+
45
+ ## Events
46
+
47
+ | Event | Description |
48
+ |-------|-------------|
49
+ | `lightbox-opened` | emitted on open, detail: `{ src }` |
50
+ | `lightbox-closed` | emitted on close |
51
+
52
+ ---
53
+
54
+ ## API
55
+
56
+ - **Open:** `element.open(src)`
57
+ - **Close:** `element.close()`
58
+ - **Global helper:** `window.showLightbox(src)`
59
+ - **State:** `xlightbox-open-<id>`
60
+
61
+ `src` configures the image source but does not open the lightbox
62
+ automatically. For direct UI usage, place an element in the `trigger` slot.
63
+ When opened, the lightbox portals itself to `document.body` so overlay and
64
+ image are not clipped by app-shell containers, `main`, cards, or transformed
65
+ demo frames.
66
+
67
+ ---
68
+
69
+ ## Example: Dynamic JS
70
+
71
+ ```js
72
+ const lightbox = document.createElement('x-lightbox');
73
+ document.body.appendChild(lightbox);
74
+ lightbox.open('/assets/image.jpg');
75
+ ```
76
+
77
+ ---
78
+
79
+ ## Styling and Theming
80
+
81
+ ```css
82
+ x-lightbox {
83
+ --lightbox-bg: rgba(0,0,0,0.9);
84
+ --lightbox-padding: clamp(0.75rem, 2vw, 2rem);
85
+ --lightbox-radius: 0.75rem;
86
+ }
87
+ ```
88
+
89
+ ---
90
+
91
+ ## Accessibility
92
+
93
+ - focus management, keyboard navigation, and focus return
94
+ - `role="dialog"`, `aria-modal="true"`, and closed state with `aria-hidden`
95
+ and `inert`
96
+ - image scaling via `object-fit: contain` and
97
+ `max-height: calc(100dvh - padding)`
98
+
99
+ ---
100
+
101
+ *Last updated: July 16, 2025*
102
+
103
+ ## Layout Display Media UX Profile
104
+
105
+ Starting with `WP-E11-12`, `x-lightbox` exposes the profile
106
+ `xtend.component.layout-display-media-ux-profile.v1`. The component combines
107
+ overlay and media maturity and uses the state key `xlightbox-open-<id>`.
108
+
109
+ - Profile getter: `xtendLayoutDisplayMediaUxProfile`
110
+ - Schedule: `media.lazy.load`
111
+ - Events: `lightbox-opened`, `lightbox-closed`
112
+ - Snapshot: `snapshot()`
113
+ - CSS parts: `overlay`, `content`, `close`, `media`
@@ -0,0 +1,130 @@
1
+ # xlink - XTend Component
2
+
3
+ ## Overview
4
+
5
+ `<x-link>` is the declarative link component for XTend SPAs. It works with
6
+ `<x-router>`, detects hash and history mode, and keeps active state current
7
+ even during programmatic navigation.
8
+
9
+ ## Usage
10
+
11
+ ```html
12
+ <x-link href="/docs">Open documentation</x-link>
13
+ <x-link href="https://example.com">External link</x-link>
14
+ ```
15
+
16
+ ## Attributes
17
+
18
+ | Attribute | Type | Description |
19
+ |-----------|------|-------------|
20
+ | `href` | string | target path or external URL |
21
+ | `active` | boolean | set when the link is currently active |
22
+ | `state` | string | optional JSON for `history.pushState()` |
23
+
24
+ ## Events
25
+
26
+ | Event | Description |
27
+ |-------|-------------|
28
+ | `before-navigate` | cancelable, before navigation |
29
+ | `after-navigate` | after successful navigation |
30
+
31
+ `before-navigate` and `after-navigate` provide:
32
+
33
+ ```js
34
+ {
35
+ href: '/docs',
36
+ mode: 'history',
37
+ state: { ... },
38
+ source: 'x-link',
39
+ stateKey: 'xlink-active-link-123',
40
+ scheduleRef: 'ui.user-blocking.navigation'
41
+ }
42
+ ```
43
+
44
+ ## Contract
45
+
46
+ - internal links are normalized and navigate in SPA-compatible mode
47
+ - external links keep default behavior and automatically receive
48
+ `target="_blank"` plus `rel="noopener noreferrer"`
49
+ - active state updates on `popstate`, `hashchange`, `x-navigate`, and
50
+ `xrouter-after-navigate`
51
+ - active links mirror `aria-current="page"` and `xlink-active-<id>`
52
+ - Enter and Space activate the same navigation path
53
+ - long labels and slotted icon/text content remain overflow-safe in narrow
54
+ menus, sidebars, and header drawers
55
+
56
+ ## Navigation Routing UX Profile
57
+
58
+ `<x-link>` exposes `xtendNavigationRoutingUxProfile` with
59
+ `xtend.component.navigation-routing-ux-profile.v1`. The profile describes
60
+ `x-link` as a router link with `before-navigate`, `after-navigate`,
61
+ `x-navigate`, `xlink-active-<id>`, `ui.user-blocking.navigation`, active state,
62
+ keyboard activation, Fabric lane `user-blocking`, and RMT shell authoring.
63
+
64
+ The link component delegates route announcements to `x-router`, but remains
65
+ responsible for visible active state, keyboard activation, and safe external
66
+ links.
67
+
68
+ ## Overflow Safety
69
+
70
+ `x-link` is overflow-safe for app-shell navigation, menus, and sidebars. The
71
+ host constrains itself to the available container, slotted content receives
72
+ `min-width: 0`, and long labels may wrap. For intentionally one-line links,
73
+ set `--xtend-link-white-space: nowrap`.
74
+
75
+ ## Notes
76
+
77
+ - router mode is detected from the first discovered `<x-router>`
78
+ - identical target paths do not trigger redundant URL changes
79
+ - `x-link` uses the same navigation contract as `x-router`
80
+
81
+ ## ECH-WP-09 Token Table and Navigation States
82
+
83
+ `signatureDesign`: `x-link` is the compact enterprise router link with visible
84
+ current indicator and tokenized active/disabled behavior. Active/current/
85
+ selected, hover, focus, and disabled states must remain readable in dense
86
+ headers, sidebars, and menus.
87
+
88
+ | Token | Purpose |
89
+ | --- | --- |
90
+ | `--xtend-nav-surface` | link surface |
91
+ | `--xtend-nav-text` | link text |
92
+ | `--xtend-nav-border-color` | shared navigation edge |
93
+ | `--xtend-nav-radius` | link radius |
94
+ | `--xtend-nav-gap` | spacing between icon and label |
95
+ | `--xtend-nav-font-family` | link typography |
96
+ | `--xtend-nav-font-size` | link text size |
97
+ | `--xtend-nav-active-surface` | active/current/selected surface |
98
+ | `--xtend-nav-active-text` | active/current/selected text |
99
+ | `--xtend-nav-current-indicator` | non-color-only current indicator |
100
+ | `--xtend-nav-hover-surface` | hover surface |
101
+ | `--xtend-nav-focus-ring` | keyboard focus |
102
+ | `--xtend-nav-disabled-opacity` | disabled dimming |
103
+
104
+ ## ECH-WP-09 Keyboard Behavior
105
+
106
+ `Enter` and `Space` activate internal links through the same navigation path as
107
+ click. Disabled links remove the internal `href`, set `aria-disabled="true"`,
108
+ and are not keyboard-activatable. Active/current is mirrored through
109
+ `aria-current="page"`; composite navigation can add `aria-selected="true"` on
110
+ the host.
111
+
112
+ ## ECH-WP-09 External Theme
113
+
114
+ ```css
115
+ [data-xtend-nav-theme="enterprise-foreign"] x-link {
116
+ --xtend-nav-surface: transparent;
117
+ --xtend-nav-text: #17231f;
118
+ --xtend-nav-border-color: transparent;
119
+ --xtend-nav-radius: 0.3rem;
120
+ --xtend-nav-gap: 0.4rem;
121
+ --xtend-nav-font-family: "Aptos", "Segoe UI", sans-serif;
122
+ --xtend-nav-font-size: 0.96rem;
123
+ --xtend-nav-active-surface: rgba(181, 107, 53, 0.16);
124
+ --xtend-nav-active-text: #173f35;
125
+ --xtend-nav-current-indicator: #b56b35;
126
+ --xtend-nav-hover-surface: rgba(181, 107, 53, 0.1);
127
+ --xtend-nav-focus-ring: 3px solid #b56b35;
128
+ --xtend-nav-disabled-opacity: 0.44;
129
+ }
130
+ ```