@supersoniks/concorde 5.1.1 → 5.1.3

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 (494) hide show
  1. package/.agents/skills/concorde-docs/SKILL.md +153 -0
  2. package/.agents/skills/{concorde-component-docs/template.md → concorde-docs/templates/component.md} +6 -2
  3. package/.agents/skills/concorde-docs/templates/decorator.md +43 -0
  4. package/.agents/skills/concorde-docs/templates/guide.md +25 -0
  5. package/PLAN-DOCS-AGENTS.md +80 -0
  6. package/README.md +4 -4
  7. package/ai/README.md +29 -41
  8. package/ai/skills/concorde/SKILL.md +54 -324
  9. package/ai/skills/concorde/rules/composition.md +32 -0
  10. package/ai/skills/concorde/rules/data.md +47 -0
  11. package/ai/skills/concorde/rules/http.md +25 -0
  12. package/ai/skills/concorde/rules/lists-forms.md +35 -0
  13. package/ai/skills/concorde/rules/styling.md +46 -0
  14. package/ai/skills/concorde/rules/troubleshooting.md +45 -0
  15. package/build-infos.json +1 -1
  16. package/concorde-core.bundle.js +21 -21
  17. package/concorde-core.es.js +977 -980
  18. package/custom-elements-manifest.public.config.mjs +8 -0
  19. package/{.tmp-cem/custom-elements.json → custom-elements.json} +11758 -8904
  20. package/dist/concorde-core.bundle.js +21 -21
  21. package/dist/concorde-core.es.js +977 -980
  22. package/dist/docs-mock-api-sw.js +58 -223
  23. package/dist/docs-mock-api-sw.js.map +4 -4
  24. package/dist/img/concorde/plane_01.jpg +0 -0
  25. package/dist/img/concorde/plane_02.jpg +0 -0
  26. package/dist/img/concorde/plane_03.jpg +0 -0
  27. package/dist/img/concorde/plane_04.jpg +0 -0
  28. package/dist/img/concorde/plane_05.jpg +0 -0
  29. package/dist/img/concorde/plane_06.jpg +0 -0
  30. package/dist/img/concorde/plane_07.jpg +0 -0
  31. package/dist/img/concorde/plane_08.jpg +0 -0
  32. package/dist/img/concorde/plane_09.jpg +0 -0
  33. package/dist/img/concorde/plane_10.jpg +0 -0
  34. package/dist/img/concorde/plane_11.jpg +0 -0
  35. package/dist/img/concorde/plane_12.jpg +0 -0
  36. package/dist/img/concorde/plane_13.jpg +0 -0
  37. package/dist/img/og-concorde.jpg +0 -0
  38. package/dist/robots.txt +11 -10
  39. package/docs/.htaccess +82 -0
  40. package/docs/404.html +15 -0
  41. package/docs/404.md +5 -0
  42. package/docs/about.html +111 -0
  43. package/docs/about.md +22 -0
  44. package/docs/assets/{index-Bb-_LRyY.js → index-6sS76xWj.js} +2625 -3158
  45. package/docs/assets/index-DkdPbH0F.css +1 -0
  46. package/docs/core/components/functional/date/date.html +211 -0
  47. package/docs/core/components/functional/date/date.md +150 -0
  48. package/docs/core/components/functional/fetch/fetch.html +180 -0
  49. package/docs/core/components/functional/fetch/fetch.md +108 -0
  50. package/docs/core/components/functional/if/if.html +65 -0
  51. package/docs/core/components/functional/if/if.md +34 -0
  52. package/docs/core/components/functional/jsonata/jsonata.html +110 -0
  53. package/docs/core/components/functional/jsonata/jsonata.md +61 -0
  54. package/docs/core/components/functional/list/list.html +200 -0
  55. package/docs/core/components/functional/list/list.md +125 -0
  56. package/docs/core/components/functional/mix/mix.html +78 -0
  57. package/docs/core/components/functional/mix/mix.md +46 -0
  58. package/docs/core/components/functional/queue/queue.html +155 -0
  59. package/docs/core/components/functional/queue/queue.md +51 -0
  60. package/docs/core/components/functional/router/router.html +154 -0
  61. package/docs/core/components/functional/router/router.md +93 -0
  62. package/docs/core/components/functional/sdui/sdui-extension-points.html +127 -0
  63. package/docs/core/components/functional/sdui/sdui-extension-points.md +94 -0
  64. package/docs/core/components/functional/sdui/sdui.html +397 -0
  65. package/docs/core/components/functional/sdui/sdui.md +307 -0
  66. package/docs/core/components/functional/states/states.html +141 -0
  67. package/docs/core/components/functional/states/states.md +112 -0
  68. package/docs/core/components/functional/submit/submit.html +178 -0
  69. package/docs/core/components/functional/submit/submit.md +106 -0
  70. package/docs/core/components/functional/subscriber/subscriber.html +68 -0
  71. package/docs/core/components/functional/subscriber/subscriber.md +91 -0
  72. package/docs/core/components/functional/translation/translation.html +60 -0
  73. package/docs/core/components/functional/translation/translation.md +38 -0
  74. package/docs/core/components/functional/value/value.html +81 -0
  75. package/docs/core/components/functional/value/value.md +47 -0
  76. package/docs/core/components/ui/alert/alert.html +201 -0
  77. package/docs/core/components/ui/alert/alert.md +186 -0
  78. package/docs/core/components/ui/alert-messages/alert-messages.html +132 -0
  79. package/docs/core/components/ui/alert-messages/alert-messages.md +85 -0
  80. package/docs/core/components/ui/badge/badge.html +197 -0
  81. package/docs/core/components/ui/badge/badge.md +181 -0
  82. package/docs/core/components/ui/button/button.html +309 -0
  83. package/docs/core/components/ui/button/button.md +216 -0
  84. package/docs/core/components/ui/captcha/captcha.html +80 -0
  85. package/docs/core/components/ui/captcha/captcha.md +56 -0
  86. package/docs/core/components/ui/card/card.html +254 -0
  87. package/docs/core/components/ui/card/card.md +215 -0
  88. package/docs/core/components/ui/divider/divider.html +144 -0
  89. package/docs/core/components/ui/divider/divider.md +126 -0
  90. package/docs/core/components/ui/form/checkbox/checkbox.html +200 -0
  91. package/docs/core/components/ui/form/checkbox/checkbox.md +125 -0
  92. package/docs/core/components/ui/form/fieldset/fieldset.html +238 -0
  93. package/docs/core/components/ui/form/fieldset/fieldset.md +161 -0
  94. package/docs/core/components/ui/form/form-actions/form-actions.html +122 -0
  95. package/docs/core/components/ui/form/form-actions/form-actions.md +98 -0
  96. package/docs/core/components/ui/form/form-layout/form-layout.html +115 -0
  97. package/docs/core/components/ui/form/form-layout/form-layout.md +109 -0
  98. package/docs/core/components/ui/form/input/input.html +235 -0
  99. package/docs/core/components/ui/form/input/input.md +142 -0
  100. package/docs/core/components/ui/form/radio/radio.html +144 -0
  101. package/docs/core/components/ui/form/radio/radio.md +78 -0
  102. package/docs/core/components/ui/form/select/select.html +178 -0
  103. package/docs/core/components/ui/form/select/select.md +86 -0
  104. package/docs/core/components/ui/form/switch/switch.html +146 -0
  105. package/docs/core/components/ui/form/switch/switch.md +80 -0
  106. package/docs/core/components/ui/form/textarea/textarea.html +162 -0
  107. package/docs/core/components/ui/form/textarea/textarea.md +82 -0
  108. package/docs/core/components/ui/group/group.html +113 -0
  109. package/docs/core/components/ui/group/group.md +77 -0
  110. package/docs/core/components/ui/icon/icon.html +223 -0
  111. package/docs/core/components/ui/icon/icon.md +214 -0
  112. package/docs/core/components/ui/image/image.html +194 -0
  113. package/docs/core/components/ui/image/image.md +167 -0
  114. package/docs/core/components/ui/link/link.html +101 -0
  115. package/docs/core/components/ui/link/link.md +81 -0
  116. package/docs/core/components/ui/loader/loader.html +114 -0
  117. package/docs/core/components/ui/loader/loader.md +87 -0
  118. package/docs/core/components/ui/menu/menu.html +395 -0
  119. package/docs/core/components/ui/menu/menu.md +370 -0
  120. package/docs/core/components/ui/modal/modal.html +324 -0
  121. package/docs/core/components/ui/modal/modal.md +211 -0
  122. package/docs/core/components/ui/pop/pop.html +250 -0
  123. package/docs/core/components/ui/pop/pop.md +216 -0
  124. package/docs/core/components/ui/progress/progress.html +132 -0
  125. package/docs/core/components/ui/progress/progress.md +109 -0
  126. package/docs/core/components/ui/table/table.html +333 -0
  127. package/docs/core/components/ui/table/table.md +267 -0
  128. package/docs/core/components/ui/theme/theme.html +116 -0
  129. package/docs/core/components/ui/theme/theme.md +97 -0
  130. package/docs/core/components/ui/toast/toast.html +185 -0
  131. package/docs/core/components/ui/toast/toast.md +147 -0
  132. package/docs/core/components/ui/tooltip/tooltip.html +112 -0
  133. package/docs/core/components/ui/tooltip/tooltip.md +89 -0
  134. package/docs/custom-elements.json +16559 -0
  135. package/docs/docs/decorators/ancestor-attribute.html +71 -0
  136. package/docs/docs/decorators/ancestor-attribute.md +59 -0
  137. package/docs/docs/decorators/auto-subscribe.html +61 -0
  138. package/docs/docs/decorators/auto-subscribe.md +40 -0
  139. package/docs/docs/decorators/bind.html +87 -0
  140. package/docs/docs/decorators/bind.md +76 -0
  141. package/docs/docs/decorators/get.html +166 -0
  142. package/docs/docs/decorators/get.md +160 -0
  143. package/docs/docs/decorators/handle.html +139 -0
  144. package/docs/docs/decorators/handle.md +119 -0
  145. package/docs/docs/decorators/on-assign.html +72 -0
  146. package/docs/docs/decorators/on-assign.md +63 -0
  147. package/docs/docs/decorators/patch.html +76 -0
  148. package/docs/docs/decorators/patch.md +44 -0
  149. package/docs/docs/decorators/post.html +150 -0
  150. package/docs/docs/decorators/post.md +134 -0
  151. package/docs/docs/decorators/publish.html +74 -0
  152. package/docs/docs/decorators/publish.md +56 -0
  153. package/docs/docs/decorators/put.html +83 -0
  154. package/docs/docs/decorators/put.md +51 -0
  155. package/docs/docs/decorators/subscribe.html +91 -0
  156. package/docs/docs/decorators/subscribe.md +87 -0
  157. package/docs/docs/decorators/wait-for-ancestors.html +82 -0
  158. package/docs/docs/decorators/wait-for-ancestors.md +76 -0
  159. package/docs/docs/directives/sub.html +79 -0
  160. package/docs/docs/directives/sub.md +75 -0
  161. package/docs/docs/directives/t.html +91 -0
  162. package/docs/docs/directives/t.md +73 -0
  163. package/docs/docs/getting-started/ai-agents.html +130 -0
  164. package/docs/docs/getting-started/ai-agents.md +50 -0
  165. package/docs/docs/getting-started/components.html +27 -0
  166. package/docs/docs/getting-started/create-a-component.html +108 -0
  167. package/{src/docs/_getting-started → docs/docs/getting-started}/create-a-component.md +3 -6
  168. package/docs/docs/getting-started/dataFlow.html +174 -0
  169. package/{src/docs/_core-concept → docs/docs/getting-started}/dataFlow.md +18 -19
  170. package/docs/docs/getting-started/installation.html +69 -0
  171. package/docs/docs/getting-started/installation.md +36 -0
  172. package/docs/docs/getting-started/my-first-component.html +180 -0
  173. package/{src/docs/_getting-started → docs/docs/getting-started}/my-first-component.md +5 -14
  174. package/docs/docs/getting-started/start.html +47 -0
  175. package/{src/docs/_getting-started → docs/docs/getting-started}/start.md +1 -13
  176. package/docs/docs/getting-started/theming.html +334 -0
  177. package/docs/docs/index.html +99 -0
  178. package/docs/docs/misc/api-configuration.html +149 -0
  179. package/{src/docs/_misc → docs/docs/misc}/api-configuration.md +10 -12
  180. package/docs/docs/misc/dataProviderKey.html +136 -0
  181. package/{src/docs/_misc → docs/docs/misc}/dataProviderKey.md +4 -4
  182. package/docs/docs/misc/docs-mock-api.html +155 -0
  183. package/{src/docs/_misc → docs/docs/misc}/docs-mock-api.md +12 -13
  184. package/docs/docs/misc/dynamic-path.html +181 -0
  185. package/{src/docs/_misc → docs/docs/misc}/dynamic-path.md +8 -8
  186. package/docs/docs/misc/endpoint.html +51 -0
  187. package/{src/docs/_misc → docs/docs/misc}/endpoint.md +8 -8
  188. package/docs/docs/misc/html-integration.html +45 -0
  189. package/{src/docs/_misc → docs/docs/misc}/html-integration.md +4 -5
  190. package/docs/docs-mock-api-sw.js +58 -223
  191. package/docs/docs-mock-api-sw.js.map +4 -4
  192. package/docs/hubs/decorators.html +438 -0
  193. package/docs/hubs/form-components.html +404 -0
  194. package/docs/hubs/remote-data.html +367 -0
  195. package/docs/img/archive/concorde-001-2cv.webp +0 -0
  196. package/docs/img/archive/concorde-red-arrows-2002-poster.jpg +0 -0
  197. package/docs/img/archive/concorde-red-arrows-2002.webm +0 -0
  198. package/docs/img/archive/credits.json +28 -0
  199. package/docs/img/concorde/plane_01.jpg +0 -0
  200. package/docs/img/concorde/plane_02.jpg +0 -0
  201. package/docs/img/concorde/plane_03.jpg +0 -0
  202. package/docs/img/concorde/plane_04.jpg +0 -0
  203. package/docs/img/concorde/plane_05.jpg +0 -0
  204. package/docs/img/concorde/plane_06.jpg +0 -0
  205. package/docs/img/concorde/plane_07.jpg +0 -0
  206. package/docs/img/concorde/plane_08.jpg +0 -0
  207. package/docs/img/concorde/plane_09.jpg +0 -0
  208. package/docs/img/concorde/plane_10.jpg +0 -0
  209. package/docs/img/concorde/plane_11.jpg +0 -0
  210. package/docs/img/concorde/plane_12.jpg +0 -0
  211. package/docs/img/concorde/plane_13.jpg +0 -0
  212. package/docs/img/og-concorde.jpg +0 -0
  213. package/docs/index.html +184 -68
  214. package/docs/index.md +22 -0
  215. package/docs/llms-full.txt +5779 -0
  216. package/docs/llms.txt +108 -0
  217. package/docs/privacy.html +122 -0
  218. package/docs/privacy.md +32 -0
  219. package/docs/robots.txt +11 -10
  220. package/docs/sitemap.xml +243 -0
  221. package/docs/src/core/components/functional/date/date.md +150 -0
  222. package/docs/src/core/components/functional/fetch/fetch.md +108 -0
  223. package/docs/src/core/components/functional/if/if.md +34 -0
  224. package/docs/src/core/components/functional/jsonata/jsonata.md +61 -0
  225. package/docs/src/core/components/functional/list/list.md +125 -0
  226. package/docs/src/core/components/functional/mix/mix.md +46 -0
  227. package/docs/src/core/components/functional/queue/queue.md +51 -0
  228. package/docs/src/core/components/functional/router/router.md +93 -0
  229. package/docs/src/core/components/functional/sdui/component-catalog.gaps.json +511 -0
  230. package/docs/src/core/components/functional/sdui/component-catalog.json +3103 -0
  231. package/docs/src/core/components/functional/sdui/default-library.json +108 -0
  232. package/docs/src/core/components/functional/sdui/example.json +32 -0
  233. package/docs/src/core/components/functional/sdui/sdui-extension-points.md +94 -0
  234. package/docs/src/core/components/functional/sdui/sdui.md +307 -0
  235. package/docs/src/core/components/functional/states/states.md +112 -0
  236. package/docs/src/core/components/functional/submit/submit.md +106 -0
  237. package/docs/src/core/components/functional/subscriber/subscriber.md +91 -0
  238. package/docs/src/core/components/functional/translation/translation.md +38 -0
  239. package/docs/src/core/components/functional/value/value.md +47 -0
  240. package/docs/src/core/components/ui/alert/alert.md +186 -0
  241. package/docs/src/core/components/ui/alert-messages/alert-messages.md +85 -0
  242. package/docs/src/core/components/ui/badge/badge.md +181 -0
  243. package/docs/src/core/components/ui/button/button.md +216 -0
  244. package/docs/src/core/components/ui/captcha/captcha.md +56 -0
  245. package/docs/src/core/components/ui/card/card.md +215 -0
  246. package/docs/src/core/components/ui/divider/divider.md +126 -0
  247. package/docs/src/core/components/ui/form/checkbox/checkbox.md +125 -0
  248. package/docs/src/core/components/ui/form/fieldset/fieldset.md +161 -0
  249. package/docs/src/core/components/ui/form/form-actions/form-actions.md +98 -0
  250. package/docs/src/core/components/ui/form/form-layout/form-layout.md +109 -0
  251. package/docs/src/core/components/ui/form/input/input.md +142 -0
  252. package/docs/src/core/components/ui/form/radio/radio.md +78 -0
  253. package/docs/src/core/components/ui/form/select/select.md +86 -0
  254. package/docs/src/core/components/ui/form/switch/switch.md +80 -0
  255. package/docs/src/core/components/ui/form/textarea/textarea.md +82 -0
  256. package/docs/src/core/components/ui/group/group.md +77 -0
  257. package/docs/src/core/components/ui/icon/icon.md +214 -0
  258. package/docs/src/core/components/ui/icon/icons.json +1 -0
  259. package/docs/src/core/components/ui/image/image.md +167 -0
  260. package/docs/src/core/components/ui/link/link.md +81 -0
  261. package/docs/src/core/components/ui/loader/loader.md +87 -0
  262. package/docs/src/core/components/ui/menu/menu.md +370 -0
  263. package/docs/src/core/components/ui/modal/modal.md +211 -0
  264. package/docs/src/core/components/ui/pop/pop.md +216 -0
  265. package/docs/src/core/components/ui/progress/progress.md +109 -0
  266. package/docs/src/core/components/ui/table/table.md +267 -0
  267. package/docs/src/core/components/ui/theme/theme.md +97 -0
  268. package/docs/src/core/components/ui/toast/toast.md +147 -0
  269. package/docs/src/core/components/ui/tooltip/tooltip.md +89 -0
  270. package/docs/src/docs/decorators/ancestor-attribute.md +59 -0
  271. package/docs/src/docs/decorators/auto-subscribe.md +40 -0
  272. package/docs/src/docs/decorators/bind.md +76 -0
  273. package/docs/src/docs/decorators/get.md +160 -0
  274. package/docs/src/docs/decorators/handle.md +119 -0
  275. package/docs/src/docs/decorators/on-assign.md +63 -0
  276. package/docs/src/docs/decorators/patch.md +44 -0
  277. package/docs/src/docs/decorators/post.md +134 -0
  278. package/docs/src/docs/decorators/publish.md +56 -0
  279. package/docs/src/docs/decorators/put.md +51 -0
  280. package/docs/src/docs/decorators/subscribe.md +87 -0
  281. package/docs/src/docs/decorators/wait-for-ancestors.md +76 -0
  282. package/docs/src/docs/directives/sub.md +75 -0
  283. package/docs/src/docs/directives/t.md +73 -0
  284. package/docs/src/docs/getting-started/ai-agents.md +50 -0
  285. package/docs/src/docs/getting-started/components.md +5 -0
  286. package/docs/src/docs/getting-started/create-a-component.md +136 -0
  287. package/docs/src/docs/getting-started/dataFlow.md +87 -0
  288. package/docs/src/docs/getting-started/installation.md +36 -0
  289. package/docs/src/docs/getting-started/my-first-component.md +227 -0
  290. package/docs/src/docs/getting-started/start.md +35 -0
  291. package/docs/src/docs/getting-started/theming.md +253 -0
  292. package/docs/src/docs/misc/api-configuration.md +79 -0
  293. package/docs/src/docs/misc/dataProviderKey.md +168 -0
  294. package/docs/src/docs/misc/docs-mock-api.md +62 -0
  295. package/docs/src/docs/misc/dynamic-path.md +71 -0
  296. package/docs/src/docs/misc/endpoint.md +45 -0
  297. package/docs/src/docs/misc/html-integration.md +14 -0
  298. package/docs/src/docs/search/docs-search.json +10332 -0
  299. package/docs/src/tag-list.json +1 -0
  300. package/docs/src/tsconfig-model.json +23 -0
  301. package/docs/src/tsconfig.json +1359 -0
  302. package/index.html +157 -5
  303. package/package.json +8 -4
  304. package/public/docs-mock-api-sw.js +58 -223
  305. package/public/docs-mock-api-sw.js.map +4 -4
  306. package/public/img/concorde/plane_01.jpg +0 -0
  307. package/public/img/concorde/plane_02.jpg +0 -0
  308. package/public/img/concorde/plane_03.jpg +0 -0
  309. package/public/img/concorde/plane_04.jpg +0 -0
  310. package/public/img/concorde/plane_05.jpg +0 -0
  311. package/public/img/concorde/plane_06.jpg +0 -0
  312. package/public/img/concorde/plane_07.jpg +0 -0
  313. package/public/img/concorde/plane_08.jpg +0 -0
  314. package/public/img/concorde/plane_09.jpg +0 -0
  315. package/public/img/concorde/plane_10.jpg +0 -0
  316. package/public/img/concorde/plane_11.jpg +0 -0
  317. package/public/img/concorde/plane_12.jpg +0 -0
  318. package/public/img/concorde/plane_13.jpg +0 -0
  319. package/public/img/og-concorde.jpg +0 -0
  320. package/public/robots.txt +11 -10
  321. package/scripts/ai-init.mjs +104 -379
  322. package/scripts/ai-init.test.mjs +81 -239
  323. package/scripts/docs-markdown-vite-plugin.ts +43 -0
  324. package/scripts/docs-public-url.mjs +56 -0
  325. package/scripts/docs.htaccess +82 -0
  326. package/scripts/generate-cem.mjs +244 -0
  327. package/scripts/generate-cem.test.mjs +122 -0
  328. package/scripts/generate-crawl-docs.mjs +233 -118
  329. package/scripts/generate-crawl-docs.test.mjs +124 -0
  330. package/scripts/generate-sdui-catalog.mjs +11 -10
  331. package/scripts/post-build-docs.js +37 -50
  332. package/scripts/pre-publish.mjs +2 -1
  333. package/scripts/site-pages.mjs +212 -0
  334. package/scripts/site-pages.test.mjs +116 -0
  335. package/site-pages/about.md +22 -0
  336. package/site-pages/privacy.md +32 -0
  337. package/src/core/components/functional/date/date.md +91 -231
  338. package/src/core/components/functional/fetch/fetch.md +66 -83
  339. package/src/core/components/functional/if/if.md +28 -3
  340. package/src/core/components/functional/jsonata/jsonata.md +42 -37
  341. package/src/core/components/functional/list/list.md +103 -43
  342. package/src/core/components/functional/mix/mix.md +31 -26
  343. package/src/core/components/functional/queue/queue.demo.ts +10 -7
  344. package/src/core/components/functional/queue/queue.md +40 -61
  345. package/src/core/components/functional/router/router.demo.ts +16 -16
  346. package/src/core/components/functional/router/router.md +64 -65
  347. package/src/core/components/functional/sdui/component-catalog.gaps.json +1 -1
  348. package/src/core/components/functional/sdui/component-catalog.json +1 -1
  349. package/src/core/components/functional/sdui/example.json +19 -86
  350. package/src/core/components/functional/sdui/sdui-extension-points.md +1 -1
  351. package/src/core/components/functional/sdui/sdui.md +187 -358
  352. package/src/core/components/functional/states/states.demo.ts +21 -22
  353. package/src/core/components/functional/states/states.md +86 -61
  354. package/src/core/components/functional/states/states.ts +1 -1
  355. package/src/core/components/functional/submit/submit.md +64 -72
  356. package/src/core/components/functional/translation/translation.md +38 -0
  357. package/src/core/components/functional/value/value.md +34 -22
  358. package/src/core/components/ui/alert/alert.md +48 -58
  359. package/src/core/components/ui/badge/badge.md +27 -34
  360. package/src/core/components/ui/button/button.md +139 -106
  361. package/src/core/components/ui/captcha/captcha.md +17 -32
  362. package/src/core/components/ui/card/card.md +6 -6
  363. package/src/core/components/ui/divider/divider.md +8 -11
  364. package/src/core/components/ui/form/checkbox/checkbox.md +90 -42
  365. package/src/core/components/ui/form/fieldset/fieldset.md +31 -75
  366. package/src/core/components/ui/form/form-actions/form-actions.md +14 -16
  367. package/src/core/components/ui/form/form-layout/form-layout.md +19 -29
  368. package/src/core/components/ui/form/input/input.md +95 -95
  369. package/src/core/components/ui/form/radio/radio.md +55 -34
  370. package/src/core/components/ui/form/select/select.md +60 -45
  371. package/src/core/components/ui/form/switch/switch.md +57 -34
  372. package/src/core/components/ui/form/textarea/textarea.md +55 -38
  373. package/src/core/components/ui/group/group.md +35 -33
  374. package/src/core/components/ui/icon/icon.md +4 -4
  375. package/src/core/components/ui/image/image.md +41 -107
  376. package/src/core/components/ui/link/link.md +6 -6
  377. package/src/core/components/ui/loader/loader.md +30 -55
  378. package/src/core/components/ui/menu/menu.md +27 -27
  379. package/src/core/components/ui/modal/modal.md +72 -96
  380. package/src/core/components/ui/pop/pop.md +80 -158
  381. package/src/core/components/ui/progress/progress.md +2 -2
  382. package/src/core/components/ui/table/table.md +91 -255
  383. package/src/core/components/ui/theme/theme.md +11 -36
  384. package/src/core/components/ui/toast/toast.md +48 -117
  385. package/src/core/components/ui/tooltip/tooltip.md +27 -62
  386. package/src/core/decorators/subscriber/bind.ts +9 -14
  387. package/src/core/utils/LocationHandler.spec.ts +80 -0
  388. package/src/core/utils/LocationHandler.ts +5 -9
  389. package/src/docs/components/docs-demo-sources.ts +55 -140
  390. package/src/docs/components/docs-lit-demo.ts +1 -3
  391. package/src/docs/components/docs-source-link.ts +0 -82
  392. package/src/docs/decorators/ancestor-attribute.md +59 -0
  393. package/src/docs/decorators/auto-subscribe.md +40 -0
  394. package/src/docs/decorators/bind.md +76 -0
  395. package/src/docs/decorators/get.md +160 -0
  396. package/src/docs/decorators/handle.md +119 -0
  397. package/src/docs/decorators/on-assign.md +63 -0
  398. package/src/docs/decorators/patch.md +44 -0
  399. package/src/docs/decorators/post.md +134 -0
  400. package/src/docs/decorators/publish.md +56 -0
  401. package/src/docs/decorators/put.md +51 -0
  402. package/src/docs/decorators/subscribe.md +87 -0
  403. package/src/docs/decorators/wait-for-ancestors.md +76 -0
  404. package/src/docs/directives/sub.md +75 -0
  405. package/src/docs/directives/t.md +73 -0
  406. package/src/docs/docs-location.spec.ts +56 -0
  407. package/src/docs/docs-location.ts +133 -32
  408. package/src/docs/docs.ts +1 -2
  409. package/src/docs/example/decorators-demo-bind-demos.ts +83 -135
  410. package/src/docs/example/decorators-demo-geo.ts +30 -19
  411. package/src/docs/example/decorators-demo-post.ts +88 -186
  412. package/src/docs/example/decorators-demo-subscribe-publish-get-demos.ts +165 -268
  413. package/src/docs/example/decorators-demo.ts +85 -98
  414. package/src/docs/example/docs-api-config-demos.ts +19 -20
  415. package/src/docs/example/docs-flight-demos.ts +147 -0
  416. package/src/docs/example/docs-jsonata-demos.ts +52 -52
  417. package/src/docs/example/docs-list-demos.ts +43 -123
  418. package/src/docs/example/docs-provider-keys.ts +21 -28
  419. package/src/docs/example/docs-queue-demos.ts +37 -77
  420. package/src/docs/example/docs-router-demos.ts +20 -25
  421. package/src/docs/example/docs-submit-demos.ts +48 -48
  422. package/src/docs/example/docs-toggle-demos.ts +4 -3
  423. package/src/docs/getting-started/ai-agents.md +50 -0
  424. package/src/docs/getting-started/components.md +5 -0
  425. package/src/docs/getting-started/create-a-component.md +136 -0
  426. package/src/docs/getting-started/dataFlow.md +87 -0
  427. package/src/docs/getting-started/installation.md +36 -0
  428. package/src/docs/getting-started/my-first-component.md +227 -0
  429. package/src/docs/getting-started/start.md +35 -0
  430. package/src/docs/getting-started/theming.md +253 -0
  431. package/src/docs/header/header.ts +11 -6
  432. package/src/docs/home/catalog.ts +1 -1
  433. package/src/docs/home/home.ts +20 -11
  434. package/src/docs/layout.ts +12 -13
  435. package/src/docs/misc/api-configuration.md +79 -0
  436. package/src/docs/misc/dataProviderKey.md +168 -0
  437. package/src/docs/misc/docs-mock-api.md +62 -0
  438. package/src/docs/misc/dynamic-path.md +71 -0
  439. package/src/docs/misc/endpoint.md +45 -0
  440. package/src/docs/misc/html-integration.md +14 -0
  441. package/src/docs/mock-api/api-config-mock.ts +5 -0
  442. package/src/docs/mock-api/fixtures.ts +0 -278
  443. package/src/docs/mock-api/flights.ts +89 -0
  444. package/src/docs/mock-api/router.ts +3 -4
  445. package/src/docs/mock-api/urls.ts +1 -2
  446. package/src/docs/navigation/navigation.ts +82 -103
  447. package/src/docs/navigation/toc.ts +7 -4
  448. package/src/docs/search/docs-search.json +2804 -5024
  449. package/src/docs/search/markdown-renderer.ts +31 -8
  450. package/src/docs/search/page.ts +9 -6
  451. package/src/docs/search/search.ts +154 -122
  452. package/src/docs/tailwind/css/docs/content.css +4 -5
  453. package/src/tsconfig.json +11 -5
  454. package/src/tsconfig.tsbuildinfo +1 -1
  455. package/vite.config.mts +11 -2
  456. package/.agents/skills/concorde-component-docs/SKILL.md +0 -194
  457. package/ai/AGENTS.md +0 -56
  458. package/ai/cursor/rules/concorde-menu.mdc +0 -15
  459. package/ai/cursor/rules/concorde-scope.mdc +0 -14
  460. package/ai/cursor/rules/concorde-theme.mdc +0 -13
  461. package/ai/cursor/rules/concorde.mdc +0 -66
  462. package/ai/jetbrains/rules/concorde.md +0 -53
  463. package/ai/skills/concorde-get-set-dp/SKILL.md +0 -194
  464. package/ai/skills/concorde-imports/SKILL.md +0 -78
  465. package/ai/skills/concorde-menu/SKILL.md +0 -74
  466. package/ai/skills/concorde-scope/SKILL.md +0 -70
  467. package/ai/skills/concorde-theme/SKILL.md +0 -57
  468. package/docs/assets/index-CD4WyL6o.css +0 -1
  469. package/src/core/components/ui/form/input-autocomplete/input-autocomplete.md +0 -29
  470. package/src/docs/_core-concept/overview.md +0 -57
  471. package/src/docs/_core-concept/subscriber.md +0 -75
  472. package/src/docs/_decorators/ancestor-attribute.md +0 -128
  473. package/src/docs/_decorators/auto-subscribe.md +0 -202
  474. package/src/docs/_decorators/bind.md +0 -167
  475. package/src/docs/_decorators/get.md +0 -162
  476. package/src/docs/_decorators/handle.md +0 -175
  477. package/src/docs/_decorators/on-assign.md +0 -390
  478. package/src/docs/_decorators/patch.md +0 -70
  479. package/src/docs/_decorators/post.md +0 -146
  480. package/src/docs/_decorators/publish.md +0 -55
  481. package/src/docs/_decorators/put.md +0 -70
  482. package/src/docs/_decorators/subscribe.md +0 -100
  483. package/src/docs/_decorators/wait-for-ancestors.md +0 -163
  484. package/src/docs/_directives/sub.md +0 -91
  485. package/src/docs/_getting-started/ai-agents.md +0 -76
  486. package/src/docs/_getting-started/concorde-manual-install.md +0 -133
  487. package/src/docs/_getting-started/concorde-outside.md +0 -33
  488. package/src/docs/_getting-started/my-first-subscriber.md +0 -120
  489. package/src/docs/_getting-started/pubsub.md +0 -37
  490. package/src/docs/_misc/formelement-subscriber-removal.md +0 -115
  491. package/src/docs/example/docs-input-autocomplete-demos.ts +0 -110
  492. package/src/docs/example/docs-joke-demos.ts +0 -297
  493. /package/{src/docs/_getting-started → docs/docs/getting-started}/components.md +0 -0
  494. /package/{src/docs/_getting-started → docs/docs/getting-started}/theming.md +0 -0
@@ -2,143 +2,102 @@ import { html, LitElement, nothing } from "lit";
2
2
  import { customElement, property, state } from "lit/decorators.js";
3
3
  import { post, publish, type ApiResult } from "@supersoniks/concorde/decorators";
4
4
  import type { APIConfiguration } from "@supersoniks/concorde/core/utils/api";
5
- import { DataProviderKey } from "@supersoniks/concorde/core/utils/dataProviderKey";
6
- import { Endpoint } from "@supersoniks/concorde/core/utils/endpoint";
7
- import {
8
- dp,
9
- set,
10
- } from "@supersoniks/concorde/core/utils/PublisherProxy";
5
+ import { DataProviderKey } from "@supersoniks/concorde/dataProviderKey";
6
+ import { Endpoint } from "@supersoniks/concorde/endpoint";
7
+ import { dp, set } from "@supersoniks/concorde/core/utils/PublisherProxy";
11
8
  import { DOCS_MOCK_REQRES_SERVICE } from "../mock-api/urls";
12
9
  import { tailwind } from "../tailwind";
13
10
  import "./decorators-demo-init";
14
11
 
15
- type RegisterResult = {
16
- id?: number;
17
- token?: string;
18
- email?: string;
19
- };
20
-
21
- type RegisterRequest = {
22
- email: string;
23
- password: string;
24
- };
12
+ type SignUpResult = { id?: number; token?: string; email?: string };
13
+ type SignUpRequest = { email: string; password: string };
14
+ type CheckInResult = { ok?: boolean; sessionId?: string; echo?: { seat?: string } };
15
+ type CheckInRequest = { seat: string };
25
16
 
26
- const registerPostEndpoint = new Endpoint<RegisterResult>("api/register");
17
+ /** Mock route: POST /docs-mock-api/api/register (email + password required). */
18
+ const signUpEndpoint = new Endpoint<SignUpResult>("api/register");
27
19
 
28
- type SessionSyncResult = {
29
- ok?: boolean;
30
- sessionId?: string;
31
- serverTime?: number;
32
- echo?: { note?: string };
33
- };
34
-
35
- type SessionSyncRequest = {
36
- note: string;
37
- };
20
+ /** Mock route: POST /docs-mock-api/api/sessions/:id/sync (echoes the body). */
21
+ const checkInEndpoint = new Endpoint<CheckInResult, { flight: string }>(
22
+ "api/sessions/${flight}/sync",
23
+ );
38
24
 
39
- const sessionSyncPostEndpoint = new Endpoint<
40
- SessionSyncResult,
41
- { sessionId: string }
42
- >("api/sessions/${sessionId}/sync");
25
+ export const docsDemoReqresApiConfigurationKey =
26
+ new DataProviderKey<APIConfiguration>("docsDemoReqresApiConfiguration");
43
27
 
44
- const reqresApiConfiguration: APIConfiguration = {
28
+ set(docsDemoReqresApiConfigurationKey, {
45
29
  serviceURL: DOCS_MOCK_REQRES_SERVICE,
46
30
  token: null,
47
31
  userName: null,
48
32
  password: null,
49
33
  authToken: null,
50
34
  tokenProvider: null,
51
- };
52
-
53
- export const docsDemoReqresApiConfigurationKey =
54
- new DataProviderKey<APIConfiguration>("docsDemoReqresApiConfiguration");
35
+ });
55
36
 
56
- set(docsDemoReqresApiConfigurationKey, reqresApiConfiguration);
37
+ const ADA: SignUpRequest = {
38
+ email: "ada.lindqvist@example.com",
39
+ password: "concorde",
40
+ };
41
+ const LEO: SignUpRequest = {
42
+ email: "leo.marchand@example.com",
43
+ password: "mach2",
44
+ };
57
45
 
58
- export const docsDemoPostRequestKey = new DataProviderKey<RegisterRequest>(
46
+ export const docsDemoPostRequestKey = new DataProviderKey<SignUpRequest>(
59
47
  "docsDemoPostRequest",
60
48
  );
61
- /** Clé body distincte — la page doc monte les deux démos live en même temps. */
62
- export const docsDemoPostPublishRequestKey = new DataProviderKey<RegisterRequest>(
49
+ /** Separate body: several live demos can be mounted on the same page. */
50
+ export const docsDemoPostPublishRequestKey = new DataProviderKey<SignUpRequest>(
63
51
  "docsDemoPostPublishRequest",
64
52
  );
65
- export const docsDemoPostTriggerKey = new DataProviderKey<number>(
66
- "docsDemoPostTrigger",
67
- );
68
- export const docsDemoPostMethodRequestKey = new DataProviderKey<RegisterRequest>(
53
+ export const docsDemoPostMethodRequestKey = new DataProviderKey<SignUpRequest>(
69
54
  "docsDemoPostMethodRequest",
70
55
  );
71
56
  export const docsDemoPostMethodTriggerKey = new DataProviderKey<number>(
72
57
  "docsDemoPostMethodTrigger",
73
58
  );
74
- export const docsDemoPostDynamicRequestKey = new DataProviderKey<SessionSyncRequest>(
59
+ export const docsDemoPostDynamicRequestKey = new DataProviderKey<CheckInRequest>(
75
60
  "docsDemoPostDynamicRequest",
76
61
  );
77
62
 
63
+ const crewSignUp = post(
64
+ signUpEndpoint,
65
+ docsDemoPostRequestKey,
66
+ docsDemoReqresApiConfigurationKey,
67
+ );
68
+
78
69
  @customElement("demo-api-post")
79
70
  export class DemoApiPost extends LitElement {
80
71
  static styles = [tailwind];
81
72
 
82
- @post(
83
- registerPostEndpoint,
84
- docsDemoPostRequestKey,
85
- docsDemoReqresApiConfigurationKey,
86
- { triggerKey: docsDemoPostTriggerKey },
87
- )
73
+ @crewSignUp
88
74
  @state()
89
- payload?: ApiResult<RegisterResult> | null;
75
+ payload?: ApiResult<SignUpResult> | null;
90
76
 
91
77
  connectedCallback() {
92
78
  super.connectedCallback();
93
- set(docsDemoPostRequestKey, {
94
- email: "demo@concorde.local",
95
- password: "demo-password",
96
- });
97
- set(docsDemoPostTriggerKey, 0);
98
- }
99
-
100
- private send() {
101
- set(docsDemoPostRequestKey, {
102
- email: "demo@concorde.local",
103
- password: "demo-password",
104
- });
105
- }
106
-
107
- private resendSameBody() {
108
- dp(docsDemoPostTriggerKey).invalidate();
79
+ set(docsDemoPostRequestKey, ADA);
109
80
  }
110
81
 
111
82
  render() {
112
83
  const result = this.payload?.result;
113
- const status = this.payload?.response?.status;
114
84
  return html`
115
- <div class="space-y-4">
116
- <p class="text-sm text-neutral-600 dark:text-neutral-400">
117
- <code>@post</code> vers le mock
118
- <code>POST /docs-mock-api/api/register</code> — body lu depuis
119
- <code>docsDemoPostRequest</code>.
120
- </p>
85
+ <div class="space-y-3">
121
86
  <div class="flex flex-wrap gap-2">
122
- <sonic-button @click=${this.send}>Set body &amp; POST</sonic-button>
123
- <sonic-button variant="secondary" @click=${this.resendSameBody}>
124
- invalidate trigger (re-POST)
87
+ <sonic-button @click=${() => set(docsDemoPostRequestKey, ADA)}>
88
+ Sign up Ada Lindqvist
89
+ </sonic-button>
90
+ <sonic-button @click=${() => set(docsDemoPostRequestKey, LEO)}>
91
+ Sign up Captain Leo Marchand
92
+ </sonic-button>
93
+ <sonic-button variant="outline" @click=${() => crewSignUp.send(this)}>
94
+ Send again
125
95
  </sonic-button>
126
96
  </div>
127
- <div
128
- class="rounded border border-neutral-200 dark:border-neutral-700 p-3 text-sm space-y-1"
129
- >
130
- <p>HTTP status: <strong>${status ?? "—"}</strong></p>
131
- ${result?.id != null
132
- ? html`<p>id: <span class="font-mono">${result.id}</span></p>`
133
- : nothing}
134
- ${result?.email
135
- ? html`<p>email: <span class="font-mono">${result.email}</span></p>`
136
- : nothing}
137
- ${result?.token
138
- ? html`<p>
139
- token:
140
- <span class="font-mono break-all">${result.token}</span>
141
- </p>`
97
+ <div class="rounded border p-3 text-sm">
98
+ <p>HTTP status: <strong>${this.payload?.response?.status ?? "—"}</strong></p>
99
+ ${result
100
+ ? html`<p>Crew member #${result.id}: <strong>${result.email}</strong></p>`
142
101
  : nothing}
143
102
  </div>
144
103
  </div>
@@ -151,60 +110,32 @@ export class DemoApiPostMethod extends LitElement {
151
110
  static styles = [tailwind];
152
111
 
153
112
  @state()
154
- private payload?: ApiResult<RegisterResult>;
113
+ private lastEmail = "—";
155
114
 
156
115
  connectedCallback() {
157
116
  super.connectedCallback();
158
- set(docsDemoPostMethodRequestKey, {
159
- email: "method@concorde.local",
160
- password: "method-password",
161
- });
162
- set(docsDemoPostMethodTriggerKey, 0);
117
+ set(docsDemoPostMethodRequestKey, LEO);
163
118
  }
164
119
 
165
120
  @post(
166
- registerPostEndpoint,
121
+ signUpEndpoint,
167
122
  docsDemoPostMethodRequestKey,
168
123
  docsDemoReqresApiConfigurationKey,
169
124
  { triggerKey: docsDemoPostMethodTriggerKey },
170
125
  )
171
- handlePayload(payload?: ApiResult<RegisterResult>) {
172
- this.payload = payload;
173
- }
174
-
175
- private updateBody() {
176
- set(docsDemoPostMethodRequestKey, {
177
- email: `method-${Date.now()}@concorde.local`,
178
- password: "method-password",
179
- });
180
- }
181
-
182
- private resend() {
183
- dp(docsDemoPostMethodTriggerKey).invalidate();
126
+ onSignedUp(payload?: ApiResult<SignUpResult>) {
127
+ this.lastEmail = payload?.result?.email ?? "—";
184
128
  }
185
129
 
186
130
  render() {
187
- const result = this.payload?.result;
188
131
  return html`
189
- <div class="space-y-3">
190
- <div class="flex flex-wrap items-center gap-2">
191
- <span class="text-sm font-medium">✉️ POST function mode</span>
192
- <sonic-button size="sm" @click=${this.updateBody}>
193
- Update body &amp; POST
194
- </sonic-button>
195
- <sonic-button size="sm" variant="secondary" @click=${this.resend}>
196
- Invalidate trigger
197
- </sonic-button>
198
- </div>
199
- <p class="text-sm text-neutral-600 dark:text-neutral-400">
200
- The <code>@post</code> decorator calls
201
- <code>handlePayload</code> with the complete API payload.
202
- </p>
203
- <p class="text-xs text-neutral-500">
204
- HTTP status:
205
- <strong>${this.payload?.response?.status ?? "loading…"}</strong>
206
- · email: <strong>${result?.email ?? "—"}</strong>
207
- </p>
132
+ <div class="flex flex-wrap items-center gap-2">
133
+ <sonic-button
134
+ @click=${() => dp(docsDemoPostMethodTriggerKey).invalidate()}
135
+ >
136
+ Invalidate trigger
137
+ </sonic-button>
138
+ <span class="text-sm">Last sign-up: <strong>${this.lastEmail}</strong></span>
208
139
  </div>
209
140
  `;
210
141
  }
@@ -214,62 +145,43 @@ export class DemoApiPostMethod extends LitElement {
214
145
  export class DemoApiPostDynamic extends LitElement {
215
146
  static styles = [tailwind];
216
147
 
217
- @property({ type: String }) sessionId = "alpha";
148
+ @property({ type: String }) flight = "CN001";
218
149
 
219
150
  @post(
220
- sessionSyncPostEndpoint,
151
+ checkInEndpoint,
221
152
  docsDemoPostDynamicRequestKey,
222
153
  docsDemoReqresApiConfigurationKey,
223
154
  )
224
155
  @state()
225
- payload?: ApiResult<SessionSyncResult> | null;
156
+ payload?: ApiResult<CheckInResult> | null;
226
157
 
227
158
  connectedCallback() {
228
159
  super.connectedCallback();
229
- set(docsDemoPostDynamicRequestKey, { note: "docs @post dynamic path" });
230
- }
231
-
232
- private setSession(sessionId: string) {
233
- this.sessionId = sessionId;
160
+ set(docsDemoPostDynamicRequestKey, { seat: "1A" });
234
161
  }
235
162
 
236
163
  render() {
237
- const result = this.payload?.result;
238
- const status = this.payload?.response?.status;
239
- const requestUrl = this.payload?.request?.url ?? "";
240
164
  return html`
241
- <div class="space-y-4">
242
- <p class="text-sm text-neutral-600 dark:text-neutral-400">
243
- <code>@post</code> vers
244
- <code>api/sessions/${"${sessionId}"}/sync</code> — changer
245
- <code>sessionId</code> sur l'hôte relance le POST (même body).
246
- </p>
247
- <div class="flex flex-wrap items-center gap-2">
248
- <span class="text-sm text-neutral-500">sessionId :</span>
249
- ${(["alpha", "beta", "gamma"] as const).map(
250
- (id) => html`
165
+ <div class="space-y-3">
166
+ <div class="flex flex-wrap gap-2">
167
+ ${["CN001", "CN002", "CN003"].map(
168
+ (flight) => html`
251
169
  <sonic-button
252
- variant=${this.sessionId === id ? "primary" : "secondary"}
253
170
  size="sm"
254
- @click=${() => this.setSession(id)}
171
+ type=${this.flight === flight ? "primary" : "default"}
172
+ @click=${() => (this.flight = flight)}
255
173
  >
256
- ${id}
174
+ ${flight}
257
175
  </sonic-button>
258
176
  `,
259
177
  )}
260
178
  </div>
261
- <div
262
- class="rounded border border-neutral-200 dark:border-neutral-700 p-3 text-sm space-y-1"
263
- >
264
- <p>HTTP status: <strong>${status ?? "—"}</strong></p>
179
+ <div class="rounded border p-3 text-sm">
265
180
  <p>
266
- Dernier path :
267
- <span class="font-mono text-xs break-all">${requestUrl || "—"}</span>
268
- </p>
269
- <p>
270
- Réponse <code>sessionId</code> :
271
- <strong class="font-mono">${result?.sessionId ?? "—"}</strong>
181
+ Request:
182
+ <span class="font-mono text-xs">${this.payload?.request?.url ?? "—"}</span>
272
183
  </p>
184
+ <p>Checked in on: <strong>${this.payload?.result?.sessionId ?? "—"}</strong></p>
273
185
  </div>
274
186
  </div>
275
187
  `;
@@ -281,39 +193,29 @@ export class DemoApiPostPublish extends LitElement {
281
193
  static styles = [tailwind];
282
194
 
283
195
  @post(
284
- registerPostEndpoint,
196
+ signUpEndpoint,
285
197
  docsDemoPostPublishRequestKey,
286
198
  docsDemoReqresApiConfigurationKey,
287
199
  )
288
200
  @publish(
289
- registerPostEndpoint.getDataProviderKey() as DataProviderKey<
290
- ApiResult<RegisterResult>
201
+ signUpEndpoint.getDataProviderKey() as DataProviderKey<
202
+ ApiResult<SignUpResult>
291
203
  >,
292
204
  )
293
205
  @state()
294
- payload?: ApiResult<RegisterResult> | null;
206
+ payload?: ApiResult<SignUpResult> | null;
295
207
 
296
208
  connectedCallback() {
297
209
  super.connectedCallback();
298
- set(docsDemoPostPublishRequestKey, {
299
- email: "publish@concorde.local",
300
- password: "secret",
301
- });
210
+ set(docsDemoPostPublishRequestKey, ADA);
302
211
  }
303
212
 
304
213
  render() {
305
- const email = this.payload?.result?.email;
306
214
  return html`
307
- <div class="space-y-3 text-sm">
308
- <p class="text-neutral-600 dark:text-neutral-400">
309
- <code>@post</code> + <code>@publish</code> sur le même champ — même
310
- pattern que <code>@get</code> + <code>@publish</code>.
311
- </p>
312
- <p>
313
- Result email:
314
- <strong class="font-mono">${email ?? "—"}</strong>
315
- </p>
316
- </div>
215
+ <p class="text-sm">
216
+ Published sign-up:
217
+ <strong>${this.payload?.result?.email ?? "—"}</strong>
218
+ </p>
317
219
  `;
318
220
  }
319
221
  }