@supersoniks/concorde 5.1.1 → 5.1.3-immutable.1

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 (459) 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/.claude/skills +1 -0
  6. package/.github/workflows/ci.yml +21 -0
  7. package/.github-export-ignore +30 -0
  8. package/CONTRIBUTING.md +59 -0
  9. package/DEV.md +54 -0
  10. package/LICENSE +21 -0
  11. package/OPEN_SOURCE_CHECKPOINT.md +133 -0
  12. package/README.md +4 -4
  13. package/ai/README.md +29 -41
  14. package/ai/skills/concorde/SKILL.md +54 -324
  15. package/ai/skills/concorde/rules/composition.md +32 -0
  16. package/ai/skills/concorde/rules/data.md +47 -0
  17. package/ai/skills/concorde/rules/http.md +25 -0
  18. package/ai/skills/concorde/rules/lists-forms.md +35 -0
  19. package/ai/skills/concorde/rules/styling.md +46 -0
  20. package/ai/skills/concorde/rules/troubleshooting.md +45 -0
  21. package/build-infos.json +1 -1
  22. package/concorde-core.bundle.js +177 -177
  23. package/concorde-core.es.js +4993 -4833
  24. package/custom-elements-manifest.public.config.mjs +8 -0
  25. package/{.tmp-cem/custom-elements.json → custom-elements.json} +11758 -8904
  26. package/dist/concorde-core.bundle.js +177 -177
  27. package/dist/concorde-core.es.js +4993 -4833
  28. package/dist/docs-mock-api-sw.js +58 -223
  29. package/dist/docs-mock-api-sw.js.map +4 -4
  30. package/dist/img/concorde/plane_01.jpg +0 -0
  31. package/dist/img/concorde/plane_02.jpg +0 -0
  32. package/dist/img/concorde/plane_03.jpg +0 -0
  33. package/dist/img/concorde/plane_04.jpg +0 -0
  34. package/dist/img/concorde/plane_05.jpg +0 -0
  35. package/dist/img/concorde/plane_06.jpg +0 -0
  36. package/dist/img/concorde/plane_07.jpg +0 -0
  37. package/dist/img/concorde/plane_08.jpg +0 -0
  38. package/dist/img/concorde/plane_09.jpg +0 -0
  39. package/dist/img/concorde/plane_10.jpg +0 -0
  40. package/dist/img/concorde/plane_11.jpg +0 -0
  41. package/dist/img/concorde/plane_12.jpg +0 -0
  42. package/dist/img/concorde/plane_13.jpg +0 -0
  43. package/dist/img/og-concorde.jpg +0 -0
  44. package/dist/robots.txt +11 -10
  45. package/docs/assets/index-D_alEsng.js +12122 -0
  46. package/docs/crawl/core/components/functional/date/date.html +190 -0
  47. package/docs/crawl/core/components/functional/fetch/fetch.html +109 -0
  48. package/docs/crawl/core/components/functional/if/if.html +27 -0
  49. package/docs/crawl/core/components/functional/jsonata/jsonata.html +79 -0
  50. package/docs/crawl/core/components/functional/list/list.html +70 -0
  51. package/docs/crawl/core/components/functional/mix/mix.html +45 -0
  52. package/docs/crawl/core/components/functional/queue/queue.html +96 -0
  53. package/docs/crawl/core/components/functional/router/router.html +106 -0
  54. package/docs/crawl/core/components/functional/sdui/sdui-extension-points.html +126 -0
  55. package/docs/crawl/core/components/functional/sdui/sdui.html +368 -0
  56. package/docs/crawl/core/components/functional/states/states.html +66 -0
  57. package/docs/crawl/core/components/functional/submit/submit.html +160 -0
  58. package/docs/crawl/core/components/functional/subscriber/subscriber.html +67 -0
  59. package/docs/crawl/core/components/functional/value/value.html +51 -0
  60. package/docs/crawl/core/components/ui/alert/alert.html +211 -0
  61. package/docs/crawl/core/components/ui/alert-messages/alert-messages.html +131 -0
  62. package/docs/crawl/core/components/ui/badge/badge.html +197 -0
  63. package/docs/crawl/core/components/ui/button/button.html +150 -0
  64. package/docs/crawl/core/components/ui/captcha/captcha.html +112 -0
  65. package/docs/crawl/core/components/ui/card/card.html +253 -0
  66. package/docs/crawl/core/components/ui/divider/divider.html +144 -0
  67. package/docs/crawl/core/components/ui/form/checkbox/checkbox.html +73 -0
  68. package/docs/crawl/core/components/ui/form/fieldset/fieldset.html +266 -0
  69. package/docs/crawl/core/components/ui/form/form-actions/form-actions.html +122 -0
  70. package/docs/crawl/core/components/ui/form/form-layout/form-layout.html +121 -0
  71. package/docs/crawl/core/components/ui/form/input/input.html +109 -0
  72. package/docs/crawl/core/components/ui/form/input-autocomplete/input-autocomplete.html +38 -0
  73. package/docs/crawl/core/components/ui/form/radio/radio.html +56 -0
  74. package/docs/crawl/core/components/ui/form/select/select.html +73 -0
  75. package/docs/crawl/core/components/ui/form/switch/switch.html +56 -0
  76. package/docs/crawl/core/components/ui/form/textarea/textarea.html +59 -0
  77. package/docs/crawl/core/components/ui/group/group.html +104 -0
  78. package/docs/crawl/core/components/ui/icon/icon.html +222 -0
  79. package/docs/crawl/core/components/ui/image/image.html +298 -0
  80. package/docs/crawl/core/components/ui/link/link.html +100 -0
  81. package/docs/crawl/core/components/ui/loader/loader.html +124 -0
  82. package/docs/crawl/core/components/ui/menu/menu.html +394 -0
  83. package/docs/crawl/core/components/ui/modal/modal.html +342 -0
  84. package/docs/crawl/core/components/ui/pop/pop.html +296 -0
  85. package/docs/crawl/core/components/ui/progress/progress.html +131 -0
  86. package/docs/crawl/core/components/ui/table/table.html +545 -0
  87. package/docs/crawl/core/components/ui/theme/theme.html +131 -0
  88. package/docs/crawl/core/components/ui/toast/toast.html +233 -0
  89. package/docs/crawl/core/components/ui/tooltip/tooltip.html +140 -0
  90. package/docs/crawl/docs/_core-concept/dataFlow.html +177 -0
  91. package/docs/crawl/docs/_core-concept/overview.html +66 -0
  92. package/docs/crawl/docs/_core-concept/subscriber.html +75 -0
  93. package/docs/crawl/docs/_decorators/ancestor-attribute.html +117 -0
  94. package/docs/crawl/docs/_decorators/auto-subscribe.html +202 -0
  95. package/docs/crawl/docs/_decorators/bind.html +141 -0
  96. package/docs/crawl/docs/_decorators/get.html +149 -0
  97. package/docs/crawl/docs/_decorators/handle.html +165 -0
  98. package/docs/crawl/docs/_decorators/on-assign.html +355 -0
  99. package/docs/crawl/docs/_decorators/patch.html +78 -0
  100. package/docs/crawl/docs/_decorators/post.html +139 -0
  101. package/docs/crawl/docs/_decorators/publish.html +61 -0
  102. package/docs/crawl/docs/_decorators/put.html +78 -0
  103. package/docs/crawl/docs/_decorators/subscribe.html +109 -0
  104. package/docs/crawl/docs/_decorators/wait-for-ancestors.html +137 -0
  105. package/docs/crawl/docs/_directives/sub.html +93 -0
  106. package/docs/crawl/docs/_getting-started/ai-agents.html +173 -0
  107. package/docs/crawl/docs/_getting-started/concorde-manual-install.html +100 -0
  108. package/docs/crawl/docs/_getting-started/concorde-outside.html +58 -0
  109. package/docs/crawl/docs/_getting-started/create-a-component.html +111 -0
  110. package/docs/crawl/docs/_getting-started/my-first-component.html +189 -0
  111. package/docs/crawl/docs/_getting-started/my-first-subscriber.html +110 -0
  112. package/docs/crawl/docs/_getting-started/pubsub.html +62 -0
  113. package/docs/crawl/docs/_getting-started/start.html +76 -0
  114. package/docs/crawl/docs/_getting-started/theming.html +333 -0
  115. package/docs/crawl/docs/_misc/api-configuration.html +149 -0
  116. package/docs/crawl/docs/_misc/dataProviderKey.html +135 -0
  117. package/docs/crawl/docs/_misc/docs-mock-api.html +158 -0
  118. package/docs/crawl/docs/_misc/dynamic-path.html +180 -0
  119. package/docs/crawl/docs/_misc/endpoint.html +50 -0
  120. package/docs/crawl/docs/_misc/formelement-subscriber-removal.html +138 -0
  121. package/docs/crawl/docs/_misc/html-integration.html +48 -0
  122. package/docs/crawl/hubs/decorators.html +547 -0
  123. package/docs/crawl/hubs/form-components.html +381 -0
  124. package/docs/crawl/hubs/remote-data.html +452 -0
  125. package/docs/crawl/index.html +103 -0
  126. package/docs/index.html +1 -1
  127. package/docs/llms-full.txt +7174 -0
  128. package/docs/llms.txt +98 -0
  129. package/docs/sitemap.xml +243 -0
  130. package/docs/src/core/components/functional/date/date.md +290 -0
  131. package/docs/src/core/components/functional/fetch/fetch.md +125 -0
  132. package/docs/src/core/components/functional/if/if.md +9 -0
  133. package/docs/src/core/components/functional/jsonata/jsonata.md +56 -0
  134. package/docs/src/core/components/functional/list/list.md +65 -0
  135. package/docs/src/core/components/functional/mix/mix.md +41 -0
  136. package/docs/src/core/components/functional/queue/queue.md +72 -0
  137. package/docs/src/core/components/functional/router/router.md +94 -0
  138. package/docs/src/core/components/functional/sdui/component-catalog.gaps.json +511 -0
  139. package/docs/src/core/components/functional/sdui/component-catalog.json +3103 -0
  140. package/docs/src/core/components/functional/sdui/default-library.json +108 -0
  141. package/docs/src/core/components/functional/sdui/example.json +99 -0
  142. package/docs/src/core/components/functional/sdui/sdui-extension-points.md +94 -0
  143. package/docs/src/core/components/functional/sdui/sdui.md +478 -0
  144. package/docs/src/core/components/functional/states/states.md +87 -0
  145. package/docs/src/core/components/functional/submit/submit.md +114 -0
  146. package/docs/src/core/components/functional/subscriber/subscriber.md +91 -0
  147. package/docs/src/core/components/functional/value/value.md +35 -0
  148. package/docs/src/core/components/ui/alert/alert.md +196 -0
  149. package/docs/src/core/components/ui/alert-messages/alert-messages.md +85 -0
  150. package/docs/src/core/components/ui/badge/badge.md +188 -0
  151. package/docs/src/core/components/ui/button/button.md +183 -0
  152. package/docs/src/core/components/ui/captcha/captcha.md +71 -0
  153. package/docs/src/core/components/ui/card/card.md +215 -0
  154. package/docs/src/core/components/ui/divider/divider.md +129 -0
  155. package/docs/src/core/components/ui/form/checkbox/checkbox.md +77 -0
  156. package/docs/src/core/components/ui/form/fieldset/fieldset.md +205 -0
  157. package/docs/src/core/components/ui/form/form-actions/form-actions.md +100 -0
  158. package/docs/src/core/components/ui/form/form-layout/form-layout.md +119 -0
  159. package/docs/src/core/components/ui/form/input/input.md +142 -0
  160. package/docs/src/core/components/ui/form/radio/radio.md +57 -0
  161. package/docs/src/core/components/ui/form/select/select.md +71 -0
  162. package/docs/src/core/components/ui/form/switch/switch.md +57 -0
  163. package/docs/src/core/components/ui/form/textarea/textarea.md +65 -0
  164. package/docs/src/core/components/ui/group/group.md +75 -0
  165. package/docs/src/core/components/ui/icon/icon.md +214 -0
  166. package/docs/src/core/components/ui/icon/icons.json +1 -0
  167. package/docs/src/core/components/ui/image/image.md +233 -0
  168. package/docs/src/core/components/ui/link/link.md +81 -0
  169. package/docs/src/core/components/ui/loader/loader.md +112 -0
  170. package/docs/src/core/components/ui/menu/menu.md +370 -0
  171. package/docs/src/core/components/ui/modal/modal.md +235 -0
  172. package/docs/src/core/components/ui/pop/pop.md +294 -0
  173. package/docs/src/core/components/ui/progress/progress.md +109 -0
  174. package/docs/src/core/components/ui/table/table.md +431 -0
  175. package/docs/src/core/components/ui/theme/theme.md +122 -0
  176. package/docs/src/core/components/ui/toast/toast.md +216 -0
  177. package/docs/src/core/components/ui/tooltip/tooltip.md +124 -0
  178. package/{src → docs/src}/docs/_core-concept/subscriber.md +0 -0
  179. package/{src → docs/src}/docs/_getting-started/my-first-subscriber.md +0 -0
  180. package/{src → docs/src}/docs/_getting-started/pubsub.md +0 -0
  181. package/docs/src/docs/_getting-started/theming.md +253 -0
  182. package/docs/src/docs/search/docs-search.json +12242 -0
  183. package/docs/src/tag-list.json +1 -0
  184. package/docs/src/tsconfig-model.json +23 -0
  185. package/docs/src/tsconfig.declarations.json +22 -0
  186. package/docs/src/tsconfig.emit.json +23 -0
  187. package/docs/src/tsconfig.json +1332 -0
  188. package/gitlab/job_github_mirror.sh +39 -0
  189. package/index.html +157 -5
  190. package/package.json +22 -4
  191. package/public/docs-mock-api-sw.js +58 -223
  192. package/public/docs-mock-api-sw.js.map +4 -4
  193. package/public/img/concorde/plane_01.jpg +0 -0
  194. package/public/img/concorde/plane_02.jpg +0 -0
  195. package/public/img/concorde/plane_03.jpg +0 -0
  196. package/public/img/concorde/plane_04.jpg +0 -0
  197. package/public/img/concorde/plane_05.jpg +0 -0
  198. package/public/img/concorde/plane_06.jpg +0 -0
  199. package/public/img/concorde/plane_07.jpg +0 -0
  200. package/public/img/concorde/plane_08.jpg +0 -0
  201. package/public/img/concorde/plane_09.jpg +0 -0
  202. package/public/img/concorde/plane_10.jpg +0 -0
  203. package/public/img/concorde/plane_11.jpg +0 -0
  204. package/public/img/concorde/plane_12.jpg +0 -0
  205. package/public/img/concorde/plane_13.jpg +0 -0
  206. package/public/img/og-concorde.jpg +0 -0
  207. package/public/robots.txt +11 -10
  208. package/scripts/ai-init.mjs +104 -379
  209. package/scripts/ai-init.test.mjs +81 -239
  210. package/scripts/docs-markdown-vite-plugin.ts +43 -0
  211. package/scripts/docs-public-url.mjs +56 -0
  212. package/scripts/docs.htaccess +82 -0
  213. package/scripts/generate-cem.mjs +244 -0
  214. package/scripts/generate-cem.test.mjs +122 -0
  215. package/scripts/generate-crawl-docs.mjs +233 -118
  216. package/scripts/generate-crawl-docs.test.mjs +124 -0
  217. package/scripts/generate-sdui-catalog.mjs +11 -10
  218. package/scripts/github-export.mjs +150 -0
  219. package/scripts/post-build-docs.js +37 -50
  220. package/scripts/post-build.mjs +0 -0
  221. package/scripts/pre-publish.mjs +2 -1
  222. package/scripts/site-pages.mjs +212 -0
  223. package/scripts/site-pages.test.mjs +116 -0
  224. package/site-pages/about.md +22 -0
  225. package/site-pages/privacy.md +32 -0
  226. package/src/core/components/functional/date/date.md +91 -231
  227. package/src/core/components/functional/example/example.ts +3 -1
  228. package/src/core/components/functional/fetch/fetch.md +66 -83
  229. package/src/core/components/functional/if/if.md +28 -3
  230. package/src/core/components/functional/if/if.ts +0 -0
  231. package/src/core/components/functional/jsonata/jsonata.md +42 -37
  232. package/src/core/components/functional/list/list.demo.ts +0 -0
  233. package/src/core/components/functional/list/list.md +103 -43
  234. package/src/core/components/functional/list/list.ts +17 -4
  235. package/src/core/components/functional/mix/mix.md +31 -26
  236. package/src/core/components/functional/queue/queue.demo.ts +10 -7
  237. package/src/core/components/functional/queue/queue.md +40 -61
  238. package/src/core/components/functional/router/router.demo.ts +16 -16
  239. package/src/core/components/functional/router/router.md +64 -65
  240. package/src/core/components/functional/router/router.ts +0 -0
  241. package/src/core/components/functional/sdui/SDUIDescriptorTransformer.ts +0 -0
  242. package/src/core/components/functional/sdui/component-catalog.gaps.json +1 -1
  243. package/src/core/components/functional/sdui/component-catalog.json +2 -2
  244. package/src/core/components/functional/sdui/example.json +19 -86
  245. package/src/core/components/functional/sdui/sdui-extension-points.md +1 -1
  246. package/src/core/components/functional/sdui/sdui-immutable.spec.ts +74 -0
  247. package/src/core/components/functional/sdui/sdui.md +187 -358
  248. package/src/core/components/functional/sdui/sdui.ts +33 -8
  249. package/src/core/components/functional/sdui/types.ts +0 -0
  250. package/src/core/components/functional/states/states.demo.ts +21 -22
  251. package/src/core/components/functional/states/states.md +86 -61
  252. package/src/core/components/functional/states/states.ts +1 -1
  253. package/src/core/components/functional/submit/submit.md +64 -72
  254. package/src/core/components/functional/submit/submit.spec.ts +60 -0
  255. package/src/core/components/functional/submit/submit.ts +6 -3
  256. package/src/core/components/functional/subscriber/subscriber.ts +0 -0
  257. package/src/core/components/functional/translation/translation.md +38 -0
  258. package/src/core/components/functional/value/value.md +34 -22
  259. package/src/core/components/functional/value/value.ts +0 -0
  260. package/src/core/components/ui/_css/size.ts +0 -0
  261. package/src/core/components/ui/alert/alert.md +48 -58
  262. package/src/core/components/ui/badge/badge.md +27 -34
  263. package/src/core/components/ui/button/button.md +139 -106
  264. package/src/core/components/ui/captcha/altchaStyles.ts +0 -0
  265. package/src/core/components/ui/captcha/captcha.md +17 -32
  266. package/src/core/components/ui/card/card.md +6 -6
  267. package/src/core/components/ui/divider/divider.md +8 -11
  268. package/src/core/components/ui/form/checkbox/checkbox.md +90 -42
  269. package/src/core/components/ui/form/fieldset/fieldset.md +31 -75
  270. package/src/core/components/ui/form/form-actions/form-actions.md +14 -16
  271. package/src/core/components/ui/form/form-layout/form-layout.md +19 -29
  272. package/src/core/components/ui/form/input/input.md +108 -90
  273. package/src/core/components/ui/form/input/input.ts +8 -2
  274. package/src/core/components/ui/form/radio/radio.md +65 -30
  275. package/src/core/components/ui/form/select/select.md +60 -45
  276. package/src/core/components/ui/form/switch/switch.md +57 -34
  277. package/src/core/components/ui/form/textarea/textarea.md +55 -38
  278. package/src/core/components/ui/group/group.md +35 -33
  279. package/src/core/components/ui/icon/icon.md +4 -4
  280. package/src/core/components/ui/image/image.md +41 -107
  281. package/src/core/components/ui/link/link.md +6 -6
  282. package/src/core/components/ui/loader/loader.md +30 -55
  283. package/src/core/components/ui/menu/menu.md +27 -27
  284. package/src/core/components/ui/modal/modal.md +72 -96
  285. package/src/core/components/ui/pop/pop.md +80 -158
  286. package/src/core/components/ui/progress/progress.md +2 -2
  287. package/src/core/components/ui/table/table.md +91 -255
  288. package/src/core/components/ui/theme/theme.md +11 -36
  289. package/src/core/components/ui/toast/toast.md +48 -117
  290. package/src/core/components/ui/tooltip/tooltip.md +27 -62
  291. package/src/core/decorators/subscriber/bind.ts +9 -14
  292. package/src/core/decorators/subscriber/subscribe.ts +15 -9
  293. package/src/core/decorators/subscriber/subscribe.type-test.ts +14 -5
  294. package/src/core/mixins/Subscriber.ts +0 -0
  295. package/src/core/utils/DataBindObserver.ts +0 -0
  296. package/src/core/utils/LocationHandler.spec.ts +80 -0
  297. package/src/core/utils/LocationHandler.ts +5 -9
  298. package/src/core/utils/Objects.ts +0 -0
  299. package/src/core/utils/PublisherProxy.ts +166 -125
  300. package/src/core/utils/deepReadonly.spec.ts +66 -0
  301. package/src/core/utils/deepReadonly.ts +71 -0
  302. package/src/core/utils/immutableValue.spec.ts +54 -0
  303. package/src/core/utils/immutableValue.ts +102 -0
  304. package/src/core/utils/nestedDotForm.spec.ts +88 -0
  305. package/src/core/utils/publisherImmutable.spec.ts +76 -0
  306. package/src/core/utils/route.ts +0 -0
  307. package/src/core/utils/strictGet.spec.ts +61 -0
  308. package/src/core/utils/strictGet.ts +102 -0
  309. package/src/css.d.ts +19 -0
  310. package/src/docs/components/docs-demo-sources.ts +55 -140
  311. package/src/docs/components/docs-lit-demo.ts +1 -3
  312. package/src/docs/components/docs-source-link.ts +0 -82
  313. package/src/docs/decorators/ancestor-attribute.md +59 -0
  314. package/src/docs/decorators/auto-subscribe.md +40 -0
  315. package/src/docs/decorators/bind.md +76 -0
  316. package/src/docs/decorators/get.md +160 -0
  317. package/src/docs/decorators/handle.md +119 -0
  318. package/src/docs/decorators/on-assign.md +63 -0
  319. package/src/docs/decorators/patch.md +44 -0
  320. package/src/docs/decorators/post.md +134 -0
  321. package/src/docs/decorators/publish.md +56 -0
  322. package/src/docs/decorators/put.md +51 -0
  323. package/src/docs/decorators/subscribe.md +87 -0
  324. package/src/docs/decorators/wait-for-ancestors.md +76 -0
  325. package/src/docs/directives/sub.md +75 -0
  326. package/src/docs/directives/t.md +73 -0
  327. package/src/docs/docs-location.spec.ts +56 -0
  328. package/src/docs/docs-location.ts +133 -32
  329. package/src/docs/docs.ts +1 -2
  330. package/src/docs/example/decorators-demo-bind-demos.ts +83 -135
  331. package/src/docs/example/decorators-demo-geo.ts +30 -19
  332. package/src/docs/example/decorators-demo-post.ts +88 -186
  333. package/src/docs/example/decorators-demo-subscribe-publish-get-demos.ts +165 -268
  334. package/src/docs/example/decorators-demo.ts +85 -98
  335. package/src/docs/example/docs-api-config-demos.ts +19 -20
  336. package/src/docs/example/docs-flight-demos.ts +147 -0
  337. package/src/docs/example/docs-jsonata-demos.ts +52 -52
  338. package/src/docs/example/docs-list-demos.ts +43 -123
  339. package/src/docs/example/docs-provider-keys.ts +21 -28
  340. package/src/docs/example/docs-queue-demos.ts +37 -77
  341. package/src/docs/example/docs-router-demos.ts +20 -25
  342. package/src/docs/example/docs-submit-demos.ts +48 -48
  343. package/src/docs/example/docs-toggle-demos.ts +4 -3
  344. package/src/docs/example/users.ts +0 -0
  345. package/src/docs/getting-started/ai-agents.md +50 -0
  346. package/src/docs/getting-started/create-a-component.md +136 -0
  347. package/src/docs/getting-started/dataFlow.md +87 -0
  348. package/src/docs/getting-started/installation.md +36 -0
  349. package/src/docs/getting-started/my-first-component.md +227 -0
  350. package/src/docs/getting-started/start.md +35 -0
  351. package/src/docs/header/header.ts +11 -6
  352. package/src/docs/home/catalog.ts +1 -1
  353. package/src/docs/home/home.ts +20 -11
  354. package/src/docs/layout.ts +12 -13
  355. package/src/docs/misc/api-configuration.md +79 -0
  356. package/src/docs/misc/dataProviderKey.md +168 -0
  357. package/src/docs/misc/docs-mock-api.md +62 -0
  358. package/src/docs/misc/dynamic-path.md +71 -0
  359. package/src/docs/misc/endpoint.md +45 -0
  360. package/src/docs/misc/html-integration.md +14 -0
  361. package/src/docs/misc/publisher-get-immutability-docs-crawl.json +902 -0
  362. package/src/docs/misc/publisher-get-immutability-docs-recheck.json +13 -0
  363. package/src/docs/misc/publisher-get-immutability-study.md +229 -0
  364. package/src/docs/mock-api/api-config-mock.ts +5 -0
  365. package/src/docs/mock-api/fixtures.ts +0 -278
  366. package/src/docs/mock-api/flights.ts +89 -0
  367. package/src/docs/mock-api/router.ts +3 -4
  368. package/src/docs/mock-api/urls.ts +1 -2
  369. package/src/docs/navigation/navigation.ts +84 -101
  370. package/src/docs/navigation/toc.ts +7 -4
  371. package/src/docs/search/docs-search.json +3188 -5153
  372. package/src/docs/search/markdown-renderer.ts +31 -8
  373. package/src/docs/search/page.ts +9 -6
  374. package/src/docs/search/search.ts +154 -122
  375. package/src/docs/tailwind/css/docs/content.css +4 -5
  376. package/src/tsconfig.declarations.json +22 -0
  377. package/src/tsconfig.emit.json +23 -0
  378. package/src/tsconfig.json +53 -5
  379. package/src/tsconfig.tsbuildinfo +1 -1
  380. package/vite.config.mts +11 -2
  381. package/.agents/skills/concorde-component-docs/SKILL.md +0 -194
  382. package/.taste-skill/after/desktop-fold.jpg +0 -0
  383. package/.taste-skill/after/desktop-page-01.jpg +0 -0
  384. package/.taste-skill/after/desktop-page-02.jpg +0 -0
  385. package/.taste-skill/after/desktop-page-03.jpg +0 -0
  386. package/.taste-skill/after/mobile-fold.jpg +0 -0
  387. package/.taste-skill/after/mobile-page-01.jpg +0 -0
  388. package/.taste-skill/after/report.json +0 -4103
  389. package/.taste-skill/after/tablet-fold.jpg +0 -0
  390. package/.taste-skill/after/tablet-page-01.jpg +0 -0
  391. package/.taste-skill/after/tablet-page-02.jpg +0 -0
  392. package/.taste-skill/before/desktop-fold.jpg +0 -0
  393. package/.taste-skill/before/desktop-page-01.jpg +0 -0
  394. package/.taste-skill/before/desktop-page-02.jpg +0 -0
  395. package/.taste-skill/before/mobile-fold.jpg +0 -0
  396. package/.taste-skill/before/mobile-page-01.jpg +0 -0
  397. package/.taste-skill/before/report.json +0 -2556
  398. package/.taste-skill/before/tablet-fold.jpg +0 -0
  399. package/.taste-skill/before/tablet-page-01.jpg +0 -0
  400. package/.taste-skill/direction.json +0 -510
  401. package/.taste-skill/notes.md +0 -84
  402. package/.taste-skill/prod/desktop-fold.jpg +0 -0
  403. package/.taste-skill/prod/desktop-page-01.jpg +0 -0
  404. package/.taste-skill/prod/desktop-page-02.jpg +0 -0
  405. package/.taste-skill/prod/desktop-page-03.jpg +0 -0
  406. package/.taste-skill/prod/mobile-fold.jpg +0 -0
  407. package/.taste-skill/prod/mobile-page-01.jpg +0 -0
  408. package/.taste-skill/prod/mobile-page-02.jpg +0 -0
  409. package/.taste-skill/prod/report.json +0 -1973
  410. package/.taste-skill/prod/tablet-fold.jpg +0 -0
  411. package/.taste-skill/prod/tablet-page-01.jpg +0 -0
  412. package/.taste-skill/prod/tablet-page-02.jpg +0 -0
  413. package/AUDIT.md +0 -228
  414. package/PLAN-AMELIORATION.md +0 -220
  415. package/ai/AGENTS.md +0 -56
  416. package/ai/cursor/rules/concorde-menu.mdc +0 -15
  417. package/ai/cursor/rules/concorde-scope.mdc +0 -14
  418. package/ai/cursor/rules/concorde-theme.mdc +0 -13
  419. package/ai/cursor/rules/concorde.mdc +0 -66
  420. package/ai/jetbrains/rules/concorde.md +0 -53
  421. package/ai/skills/concorde-get-set-dp/SKILL.md +0 -194
  422. package/ai/skills/concorde-imports/SKILL.md +0 -78
  423. package/ai/skills/concorde-menu/SKILL.md +0 -74
  424. package/ai/skills/concorde-scope/SKILL.md +0 -70
  425. package/ai/skills/concorde-theme/SKILL.md +0 -57
  426. package/docs/assets/index-Bb-_LRyY.js +0 -12280
  427. package/src/docs/example/docs-input-autocomplete-demos.ts +0 -110
  428. package/src/docs/example/docs-joke-demos.ts +0 -297
  429. /package/{src → docs/src}/core/components/ui/form/input-autocomplete/input-autocomplete.md +0 -0
  430. /package/{src → docs/src}/docs/_core-concept/dataFlow.md +0 -0
  431. /package/{src → docs/src}/docs/_core-concept/overview.md +0 -0
  432. /package/{src → docs/src}/docs/_decorators/ancestor-attribute.md +0 -0
  433. /package/{src → docs/src}/docs/_decorators/auto-subscribe.md +0 -0
  434. /package/{src → docs/src}/docs/_decorators/bind.md +0 -0
  435. /package/{src → docs/src}/docs/_decorators/get.md +0 -0
  436. /package/{src → docs/src}/docs/_decorators/handle.md +0 -0
  437. /package/{src → docs/src}/docs/_decorators/on-assign.md +0 -0
  438. /package/{src → docs/src}/docs/_decorators/patch.md +0 -0
  439. /package/{src → docs/src}/docs/_decorators/post.md +0 -0
  440. /package/{src → docs/src}/docs/_decorators/publish.md +0 -0
  441. /package/{src → docs/src}/docs/_decorators/put.md +0 -0
  442. /package/{src → docs/src}/docs/_decorators/subscribe.md +0 -0
  443. /package/{src → docs/src}/docs/_decorators/wait-for-ancestors.md +0 -0
  444. /package/{src → docs/src}/docs/_directives/sub.md +0 -0
  445. /package/{src → docs/src}/docs/_getting-started/ai-agents.md +0 -0
  446. /package/{src → docs/src}/docs/_getting-started/concorde-manual-install.md +0 -0
  447. /package/{src → docs/src}/docs/_getting-started/concorde-outside.md +0 -0
  448. /package/{src → docs/src}/docs/_getting-started/create-a-component.md +0 -0
  449. /package/{src → docs/src}/docs/_getting-started/my-first-component.md +0 -0
  450. /package/{src → docs/src}/docs/_getting-started/start.md +0 -0
  451. /package/{src → docs/src}/docs/_misc/api-configuration.md +0 -0
  452. /package/{src → docs/src}/docs/_misc/dataProviderKey.md +0 -0
  453. /package/{src → docs/src}/docs/_misc/docs-mock-api.md +0 -0
  454. /package/{src → docs/src}/docs/_misc/dynamic-path.md +0 -0
  455. /package/{src → docs/src}/docs/_misc/endpoint.md +0 -0
  456. /package/{src → docs/src}/docs/_misc/formelement-subscriber-removal.md +0 -0
  457. /package/{src → docs/src}/docs/_misc/html-integration.md +0 -0
  458. /package/src/docs/{_getting-started → getting-started}/components.md +0 -0
  459. /package/src/docs/{_getting-started → getting-started}/theming.md +0 -0
@@ -0,0 +1,197 @@
1
+ <!DOCTYPE html>
2
+ <html lang="fr" data-crawl-url="https://concorde.supersoniks.org/crawl/core/components/ui/badge/badge.html" data-doc-id="core/components/ui/badge/badge">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Badge — Concorde</title>
7
+ <meta name="description" content="Badges are compact, non-interactive labels for status, counts, or categories. They mirror sonic-button styling (type, variant, size) without focus rings or click handling—use a button when the control">
8
+ <meta name="keywords" content="Concorde, supersoniks, core/components/ui/badge/badge, badge, Badge, UI component, sonic-badge, web component, sonic-button, type, variant, size, default, base-100, neutral, base-content, outline">
9
+ <meta name="concorde-doc-id" content="core/components/ui/badge/badge">
10
+ <link rel="canonical" href="https://concorde.supersoniks.org/crawl/core/components/ui/badge/badge.html">
11
+ </head>
12
+ <body>
13
+ <header>
14
+ <p><a href="../../../../index.html">Concorde documentation (crawl)</a> · <a href="https://concorde.supersoniks.org/#core/components/ui/badge/badge.md/badge" rel="nofollow">interactive version</a></p>
15
+ </header>
16
+ <main>
17
+ <article>
18
+ <p class="doc-lead" id="doc-summary"><strong>Concorde UI component — Badge</strong>. Badges are compact, non-interactive labels for status, counts, or categories. They mirror sonic-button styling (type, variant, size) without focus rings or click handling—use a button when the control <span>Doc ID: <code>core/components/ui/badge/badge</code>. Keywords: Concorde, supersoniks, core/components/ui/badge/badge, badge, Badge, UI component, sonic-badge, web component, sonic-button, type, variant, size, default, base-100, neutral, base-content, outline. URL: <a href="https://concorde.supersoniks.org/crawl/core/components/ui/badge/badge.html">https://concorde.supersoniks.org/crawl/core/components/ui/badge/badge.html</a>.</span></p>
19
+ <h1 id="badge">Badge</h1>
20
+ <p>Badges are <strong>compact, non-interactive</strong> labels for status, counts, or categories. They mirror <strong><code>sonic-button</code></strong> styling (<code>type</code>, <code>variant</code>, <code>size</code>) without focus rings or click handling—use a button when the control should be actionable.</p>
21
+ <h2 id="type">Type</h2>
22
+ <p><code>default</code> — subtle background (<code>base-100</code>). <code>neutral</code> — dark fill (<code>base-content</code>) with light text, useful on light backgrounds.</p>
23
+ <pre><code>&lt;div class=&quot;flex flex-wrap gap-2&quot;&gt;
24
+ &lt;sonic-badge&gt;Default&lt;/sonic-badge&gt;
25
+ &lt;sonic-badge type=&quot;primary&quot;&gt;Primary&lt;/sonic-badge&gt;
26
+ &lt;sonic-badge type=&quot;neutral&quot;&gt;Neutral&lt;/sonic-badge&gt;
27
+ &lt;sonic-badge type=&quot;warning&quot;&gt;Warning&lt;/sonic-badge&gt;
28
+ &lt;sonic-badge type=&quot;info&quot;&gt;Info&lt;/sonic-badge&gt;
29
+ &lt;sonic-badge type=&quot;success&quot;&gt;Success&lt;/sonic-badge&gt;
30
+ &lt;sonic-badge type=&quot;danger&quot;&gt;Danger&lt;/sonic-badge&gt;
31
+ &lt;/div&gt;
32
+ </code></pre>
33
+ <h2 id="variant">Variant</h2>
34
+ <p>Default <strong><code>variant</code></strong> is filled. <strong><code>outline</code></strong> — border and text in the <code>type</code> color. <strong><code>ghost</code></strong> — text only, no padding (except in forced-colors mode).</p>
35
+ <h3 id="outline">Outline</h3>
36
+ <pre><code>&lt;div class=&quot;flex items-center flex-wrap gap-3&quot;&gt;
37
+ &lt;sonic-badge variant=&quot;outline&quot;&gt;Default&lt;/sonic-badge&gt;
38
+ &lt;sonic-badge variant=&quot;outline&quot; type=&quot;primary&quot;&gt;Primary&lt;/sonic-badge&gt;
39
+ &lt;sonic-badge variant=&quot;outline&quot; type=&quot;neutral&quot;&gt;Neutral&lt;/sonic-badge&gt;
40
+ &lt;sonic-badge variant=&quot;outline&quot; type=&quot;warning&quot;&gt;Warning&lt;/sonic-badge&gt;
41
+ &lt;sonic-badge variant=&quot;outline&quot; type=&quot;info&quot;&gt;Info&lt;/sonic-badge&gt;
42
+ &lt;sonic-badge variant=&quot;outline&quot; type=&quot;success&quot;&gt;Success&lt;/sonic-badge&gt;
43
+ &lt;sonic-badge variant=&quot;outline&quot; type=&quot;danger&quot;&gt;Danger&lt;/sonic-badge&gt;
44
+ &lt;/div&gt;
45
+ </code></pre>
46
+ <h3 id="ghost">Ghost</h3>
47
+ <pre><code>&lt;div class=&quot;flex items-center flex-wrap gap-3&quot;&gt;
48
+ &lt;sonic-badge variant=&quot;ghost&quot;&gt;Default&lt;/sonic-badge&gt;
49
+ &lt;sonic-badge variant=&quot;ghost&quot; type=&quot;primary&quot;&gt;Primary&lt;/sonic-badge&gt;
50
+ &lt;sonic-badge variant=&quot;ghost&quot; type=&quot;neutral&quot;&gt;Neutral&lt;/sonic-badge&gt;
51
+ &lt;sonic-badge variant=&quot;ghost&quot; type=&quot;warning&quot;&gt;Warning&lt;/sonic-badge&gt;
52
+ &lt;sonic-badge variant=&quot;ghost&quot; type=&quot;info&quot;&gt;Info&lt;/sonic-badge&gt;
53
+ &lt;sonic-badge variant=&quot;ghost&quot; type=&quot;success&quot;&gt;Success&lt;/sonic-badge&gt;
54
+ &lt;sonic-badge variant=&quot;ghost&quot; type=&quot;danger&quot;&gt;Danger&lt;/sonic-badge&gt;
55
+ &lt;/div&gt;
56
+ </code></pre>
57
+ <h2 id="size">Size</h2>
58
+ <p>Default size is <code>md</code> (omit the <code>size</code> attribute). Typography and padding follow <code>sonic-button</code>.</p>
59
+ <pre><code>&lt;div class=&quot;flex flex-wrap items-center gap-2&quot;&gt;
60
+ &lt;sonic-badge size=&quot;2xs&quot;&gt;2Xs&lt;/sonic-badge&gt;
61
+ &lt;sonic-badge size=&quot;xs&quot;&gt;Xs&lt;/sonic-badge&gt;
62
+ &lt;sonic-badge size=&quot;sm&quot;&gt;Sm&lt;/sonic-badge&gt;
63
+ &lt;sonic-badge&gt;Md&lt;/sonic-badge&gt;
64
+ &lt;sonic-badge size=&quot;lg&quot;&gt;Lg&lt;/sonic-badge&gt;
65
+ &lt;sonic-badge size=&quot;xl&quot;&gt;Xl&lt;/sonic-badge&gt;
66
+ &lt;sonic-badge size=&quot;2xl&quot;&gt;2Xl&lt;/sonic-badge&gt;
67
+ &lt;/div&gt;
68
+ </code></pre>
69
+ <h2 id="prefix-and-suffix-slots">Prefix and suffix slots</h2>
70
+ <p>Icons or short text before / after the main label.</p>
71
+ <pre><code>&lt;sonic-badge type=&quot;info&quot; size=&quot;sm&quot;&gt;
72
+ &lt;sonic-icon slot=&quot;prefix&quot; name=&quot;info-empty&quot; library=&quot;iconoir&quot;&gt;&lt;/sonic-icon&gt;
73
+ Info
74
+ &lt;/sonic-badge&gt;
75
+ &lt;sonic-badge type=&quot;success&quot;&gt;
76
+ Verified
77
+ &lt;sonic-icon slot=&quot;suffix&quot; name=&quot;check&quot; library=&quot;iconoir&quot;&gt;&lt;/sonic-icon&gt;
78
+ &lt;/sonic-badge&gt;
79
+ </code></pre>
80
+ <h2 id="empty-badges">Empty badges</h2>
81
+ <p>Badge with no text (visual dot). <code>min-width</code> / <code>min-height</code> keep a readable shape.</p>
82
+ <pre><code>&lt;div class=&quot;flex items-center flex-wrap gap-3&quot;&gt;
83
+ &lt;sonic-badge type=&quot;danger&quot; size=&quot;2xs&quot;&gt;&lt;/sonic-badge&gt;
84
+ &lt;sonic-badge type=&quot;danger&quot; size=&quot;xs&quot;&gt;&lt;/sonic-badge&gt;
85
+ &lt;sonic-badge type=&quot;danger&quot; size=&quot;sm&quot;&gt;&lt;/sonic-badge&gt;
86
+ &lt;sonic-badge type=&quot;danger&quot;&gt;&lt;/sonic-badge&gt;
87
+ &lt;sonic-badge type=&quot;danger&quot; size=&quot;lg&quot;&gt;&lt;/sonic-badge&gt;
88
+ &lt;sonic-badge type=&quot;danger&quot; size=&quot;xl&quot;&gt;&lt;/sonic-badge&gt;
89
+ &lt;sonic-badge type=&quot;danger&quot; size=&quot;2xl&quot;&gt;&lt;/sonic-badge&gt;
90
+ &lt;/div&gt;
91
+ </code></pre>
92
+ <h2 id="ellipsis">Ellipsis</h2>
93
+ <p>With <code>ellipsis</code>, long labels truncate. The parent must constrain width (<code>max-width</code>, grid, etc.).</p>
94
+ <pre><code>&lt;div class=&quot;grid grid-cols-2 gap-4 max-w-xl&quot;&gt;
95
+ &lt;sonic-badge ellipsis size=&quot;sm&quot; variant=&quot;outline&quot;&gt;
96
+ &lt;sonic-icon slot=&quot;prefix&quot; name=&quot;info-empty&quot; library=&quot;iconoir&quot;&gt;&lt;/sonic-icon&gt;
97
+ Lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod.
98
+ &lt;/sonic-badge&gt;
99
+ &lt;sonic-badge ellipsis size=&quot;sm&quot;&gt;
100
+ &lt;sonic-icon slot=&quot;prefix&quot; name=&quot;info-empty&quot; library=&quot;iconoir&quot;&gt;&lt;/sonic-icon&gt;
101
+ Lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod.
102
+ &lt;/sonic-badge&gt;
103
+ &lt;/div&gt;
104
+ </code></pre>
105
+ <h2 id="badge-in-button">Badge in button</h2>
106
+ <p>Count inside a button (<code>slot=&quot;suffix&quot;</code>) or a badge absolutely positioned on a button / icon.</p>
107
+ <pre><code>&lt;div class=&quot;flex flex-wrap gap-4 items-center&quot;&gt;
108
+ &lt;sonic-button type=&quot;default&quot;&gt;
109
+ Messages &lt;sonic-badge slot=&quot;suffix&quot; type=&quot;danger&quot; size=&quot;xs&quot;&gt;5&lt;/sonic-badge&gt;
110
+ &lt;/sonic-button&gt;
111
+ &lt;div class=&quot;relative inline-block&quot;&gt;
112
+ &lt;sonic-button type=&quot;success&quot; class=&quot;relative&quot;&gt;My account&lt;/sonic-button&gt;
113
+ &lt;sonic-badge
114
+ type=&quot;danger&quot;
115
+ size=&quot;xs&quot;
116
+ class=&quot;absolute right-1 top-0 pe-none transform -translate-y-1/2&quot;
117
+ &gt;12&lt;/sonic-badge
118
+ &gt;
119
+ &lt;/div&gt;
120
+ &lt;div class=&quot;relative inline-block&quot;&gt;
121
+ &lt;sonic-button type=&quot;neutral&quot; shape=&quot;circle&quot; variant=&quot;outline&quot;&gt;
122
+ &lt;sonic-icon library=&quot;iconoir&quot; name=&quot;user&quot;&gt;&lt;/sonic-icon&gt;
123
+ &lt;/sonic-button&gt;
124
+ &lt;sonic-badge
125
+ type=&quot;danger&quot;
126
+ size=&quot;xs&quot;
127
+ class=&quot;absolute right-1 bottom-1 pe-none transform translate-y-1/2 translate-x-1/2&quot;
128
+ &gt;33&lt;/sonic-badge
129
+ &gt;
130
+ &lt;/div&gt;
131
+ &lt;div class=&quot;relative inline-block&quot;&gt;
132
+ &lt;sonic-button type=&quot;neutral&quot; shape=&quot;circle&quot; variant=&quot;outline&quot;&gt;
133
+ &lt;sonic-icon library=&quot;iconoir&quot; name=&quot;user&quot;&gt;&lt;/sonic-icon&gt;
134
+ &lt;/sonic-button&gt;
135
+ &lt;sonic-badge
136
+ type=&quot;danger&quot;
137
+ size=&quot;xs&quot;
138
+ class=&quot;absolute right-2 bottom-2 pe-none transform translate-y-1/2 translate-x-1/2&quot;
139
+ &gt;&lt;/sonic-badge&gt;
140
+ &lt;/div&gt;
141
+ &lt;/div&gt;
142
+ </code></pre>
143
+ <h2 id="api-reference">API reference</h2>
144
+ <table>
145
+ <thead>
146
+ <tr>
147
+ <th>Attribute</th>
148
+ <th>Values</th>
149
+ <th>Description</th>
150
+ </tr>
151
+ </thead>
152
+ <tbody><tr>
153
+ <td><code>type</code></td>
154
+ <td><code>default</code> (default) · <code>primary</code> · <code>neutral</code> · <code>warning</code> · <code>info</code> · <code>success</code> · <code>danger</code></td>
155
+ <td>Semantic color (<code>--sc-*</code> tokens)</td>
156
+ </tr>
157
+ <tr>
158
+ <td><code>variant</code></td>
159
+ <td><code>default</code> (default) · <code>outline</code> · <code>ghost</code></td>
160
+ <td>Filled, bordered, or text-only</td>
161
+ </tr>
162
+ <tr>
163
+ <td><code>size</code></td>
164
+ <td><code>2xs</code> … <code>2xl</code> (default <code>md</code>)</td>
165
+ <td>Typography and padding (aligned with <strong><code>sonic-button</code></strong>)</td>
166
+ </tr>
167
+ <tr>
168
+ <td><code>ellipsis</code></td>
169
+ <td>boolean</td>
170
+ <td>Single-line truncation; parent must constrain width</td>
171
+ </tr>
172
+ </tbody></table>
173
+ <table>
174
+ <thead>
175
+ <tr>
176
+ <th>Slot</th>
177
+ <th>Description</th>
178
+ </tr>
179
+ </thead>
180
+ <tbody><tr>
181
+ <td><em>(default)</em></td>
182
+ <td>Main label</td>
183
+ </tr>
184
+ <tr>
185
+ <td><code>prefix</code></td>
186
+ <td>Icon or short text before the label</td>
187
+ </tr>
188
+ <tr>
189
+ <td><code>suffix</code></td>
190
+ <td>Icon or short text after the label</td>
191
+ </tr>
192
+ </tbody></table>
193
+
194
+ </article>
195
+ </main>
196
+ </body>
197
+ </html>
@@ -0,0 +1,150 @@
1
+ <!DOCTYPE html>
2
+ <html lang="fr" data-crawl-url="https://concorde.supersoniks.org/crawl/core/components/ui/button/button.html" data-doc-id="core/components/ui/button/button">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Button — Concorde</title>
7
+ <meta name="description" content="The length of the button depends on the size of its content">
8
+ <meta name="keywords" content="Concorde, supersoniks, core/components/ui/button/button, button, Button, UI component, sonic-button, web component">
9
+ <meta name="concorde-doc-id" content="core/components/ui/button/button">
10
+ <link rel="canonical" href="https://concorde.supersoniks.org/crawl/core/components/ui/button/button.html">
11
+ </head>
12
+ <body>
13
+ <header>
14
+ <p><a href="../../../../index.html">Concorde documentation (crawl)</a> · <a href="https://concorde.supersoniks.org/#core/components/ui/button/button.md/button" rel="nofollow">interactive version</a></p>
15
+ </header>
16
+ <main>
17
+ <article>
18
+ <p class="doc-lead" id="doc-summary"><strong>Concorde UI component — Button</strong>. The length of the button depends on the size of its content <span>Doc ID: <code>core/components/ui/button/button</code>. Keywords: Concorde, supersoniks, core/components/ui/button/button, button, Button, UI component, sonic-button, web component. URL: <a href="https://concorde.supersoniks.org/crawl/core/components/ui/button/button.html">https://concorde.supersoniks.org/crawl/core/components/ui/button/button.html</a>.</span></p>
19
+ <h1 id="button">Button</h1>
20
+ <h2 id="type">Type</h2>
21
+ <pre><code>&lt;div class=&quot;flex flex-wrap gap-2&quot;&gt;
22
+ &lt;sonic-button&gt;Default&lt;/sonic-button&gt;
23
+ &lt;sonic-button type=&quot;primary&quot;&gt;Primary&lt;/sonic-button&gt;
24
+ &lt;sonic-button type=&quot;neutral&quot;&gt;Neutral&lt;/sonic-button&gt;
25
+ &lt;sonic-button type=&quot;warning&quot;&gt;Warning&lt;/sonic-button&gt;
26
+ &lt;sonic-button type=&quot;info&quot;&gt;Info&lt;/sonic-button&gt;
27
+ &lt;sonic-button type=&quot;success&quot;&gt;Success&lt;/sonic-button&gt;
28
+ &lt;sonic-button type=&quot;danger&quot;&gt;Danger&lt;/sonic-button&gt;
29
+ &lt;sonic-button type=&quot;custom&quot; style=&quot;--sc-btn-custom-color: #fde68a; --sc-btn-custom-bg: #5b21b6&quot;&gt;Custom&lt;/sonic-button&gt;
30
+ &lt;/div&gt;
31
+ </code></pre>
32
+ <h2 id="outline">Outline</h2>
33
+ <pre><code>&lt;div class=&quot;flex flex-wrap gap-2&quot;&gt;
34
+ &lt;sonic-button variant=&quot;outline&quot;&gt;Default&lt;/sonic-button&gt;
35
+ &lt;sonic-button variant=&quot;outline&quot; type=&quot;primary&quot;&gt;Primary&lt;/sonic-button&gt;
36
+ &lt;sonic-button variant=&quot;outline&quot; type=&quot;neutral&quot;&gt;Neutral&lt;/sonic-button&gt;
37
+ &lt;sonic-button variant=&quot;outline&quot; type=&quot;warning&quot;&gt;Warning&lt;/sonic-button&gt;
38
+ &lt;sonic-button variant=&quot;outline&quot; type=&quot;info&quot;&gt;Info&lt;/sonic-button&gt;
39
+ &lt;sonic-button variant=&quot;outline&quot; type=&quot;success&quot;&gt;Success&lt;/sonic-button&gt;
40
+ &lt;sonic-button variant=&quot;outline&quot; type=&quot;danger&quot;&gt;Danger&lt;/sonic-button&gt;
41
+ &lt;sonic-button variant=&quot;outline&quot; type=&quot;custom&quot; style=&quot;--sc-btn-custom-bg: #5b21b6&quot;&gt;Custom&lt;/sonic-button&gt;
42
+ &lt;/div&gt;
43
+ </code></pre>
44
+ <h2 id="variant">Variant</h2>
45
+ <pre><code>&lt;sonic-button variant=&quot;default&quot;&gt;Default&lt;/sonic-button&gt;
46
+ &lt;sonic-button variant=&quot;outline&quot;&gt;Outline&lt;/sonic-button&gt;
47
+ &lt;sonic-button variant=&quot;ghost&quot;&gt;Ghost&lt;/sonic-button&gt;
48
+ &lt;sonic-button variant=&quot;link&quot;&gt;Link&lt;/sonic-button&gt;
49
+ &lt;sonic-button variant=&quot;unstyled&quot;&gt;Unstyled&lt;/sonic-button&gt;
50
+ </code></pre>
51
+ <h2 id="size">Size</h2>
52
+ <pre><code>&lt;sonic-button size=&quot;2xs&quot;&gt;2Xs button&lt;/sonic-button&gt;
53
+ &lt;sonic-button size=&quot;xs&quot;&gt;Xs button&lt;/sonic-button&gt;
54
+ &lt;sonic-button size=&quot;sm&quot;&gt;Sm button&lt;/sonic-button&gt;
55
+ &lt;sonic-button size=&quot;md&quot;&gt;Md button&lt;/sonic-button&gt;
56
+ &lt;sonic-button&gt;Default button&lt;/sonic-button&gt;
57
+ &lt;sonic-button size=&quot;lg&quot;&gt;Lg button&lt;/sonic-button&gt;
58
+ &lt;sonic-button size=&quot;xl&quot;&gt;Xl button&lt;/sonic-button&gt;
59
+ &lt;sonic-button size=&quot;2xl&quot;&gt;2Xl button&lt;/sonic-button&gt;
60
+ </code></pre>
61
+ <h2 id="shape">Shape</h2>
62
+ <pre><code>&lt;sonic-button shape=&quot;circle&quot;&gt; 😂 &lt;/sonic-button&gt;
63
+ &lt;sonic-button shape=&quot;square&quot;&gt; 🚀 &lt;/sonic-button&gt;
64
+ </code></pre>
65
+ <h2 id="loading">Loading</h2>
66
+ <p>The length of the button depends on the size of its content</p>
67
+ <pre><code>&lt;sonic-button loading&gt;&lt;/sonic-button&gt;
68
+ &lt;sonic-button loading&gt;Loading button&lt;/sonic-button&gt;
69
+ &lt;sonic-button loading&gt;&lt;span slot=&quot;prefix&quot;&gt;🚀&lt;/span&gt;Loading with prefix&lt;span slot=&quot;suffix&quot;&gt;😂&lt;/span&gt;&lt;/sonic-button&gt;
70
+ </code></pre>
71
+ <h2 id="swap">Swap</h2>
72
+ <pre><code>&lt;sonic-button formDataProvider=&quot;button_swap_example&quot; name=&quot;youpi&quot; value=&quot;youpla&quot; type=&quot;primary&quot; shape=&quot;circle&quot; variant=&quot;outline&quot; class=&quot;mr-4&quot;&gt;
73
+ &lt;sonic-icon library=&quot;iconoir&quot; swap=&quot;on&quot; name=&quot;eye-empty&quot;&gt;&lt;/sonic-icon&gt;
74
+ &lt;sonic-icon library=&quot;iconoir&quot; swap=&quot;off&quot; name=&quot;eye-off&quot;&gt;&lt;/sonic-icon&gt;
75
+ &lt;/sonic-button&gt;
76
+ &lt;sonic-button formDataProvider=&quot;button_swap_example&quot; name=&quot;youpi&quot; value=&quot;youpla&quot; type=&quot;primary&quot; variant=&quot;outline&quot;&gt;
77
+ &lt;sonic-icon library=&quot;iconoir&quot; swap=&quot;on&quot; slot=&quot;prefix&quot; name=&quot;eye-empty&quot;&gt;&lt;/sonic-icon&gt;
78
+ &lt;sonic-icon library=&quot;iconoir&quot; swap=&quot;off&quot; slot=&quot;prefix&quot; name=&quot;eye-off&quot;&gt;&lt;/sonic-icon&gt;
79
+ Révélez
80
+ &lt;span swap=&quot;off&quot;&gt;...&lt;/span&gt;
81
+ &lt;span swap=&quot;on&quot;&gt;moi !&lt;/span&gt;
82
+ &lt;/sonic-button&gt;
83
+ </code></pre>
84
+ <h2 id="reset">Reset</h2>
85
+ <pre><code>&lt;div formDataProvider=&quot;button-reset-demo&quot; class=&quot;mb-2&quot;&gt;
86
+ &lt;sonic-checkbox name=&quot;aChexbox&quot; value=&quot;AValueToSet&quot;&gt;Set A value&lt;/sonic-checkbox&gt;&lt;br&gt;
87
+ &lt;sonic-button reset&gt;Reset current formDataProvider&lt;/sonic-button&gt;
88
+ &lt;/div&gt;
89
+ &lt;sonic-button reset=&quot;button-reset-demo&quot;&gt;Reset formDataProvider by name&lt;/sonic-button&gt;
90
+ </code></pre>
91
+ <h2 id="goback">GoBack</h2>
92
+ <pre><code>&lt;sonic-button goBack type=&quot;primary&quot; variant=&quot;outline&quot; class=&quot;mr-4&quot;&gt;
93
+ &lt;sonic-icon library=&quot;iconoir&quot; slot=&quot;prefix&quot; name=&quot;arrow-left&quot;&gt;&lt;/sonic-icon&gt;
94
+ Retour classique
95
+ &lt;/sonic-button&gt;
96
+ &lt;sonic-button goBack=&quot;http://la-billetterie.net&quot; type=&quot;primary&quot; variant=&quot;outline&quot; class=&quot;mr-4&quot;&gt;
97
+ &lt;sonic-icon library=&quot;iconoir&quot; slot=&quot;prefix&quot; name=&quot;arrow-left&quot;&gt;&lt;/sonic-icon&gt;
98
+ Retour url prédéfinie
99
+ &lt;/sonic-button&gt;
100
+ </code></pre>
101
+ <h2 id="button-with-icon">Button with icon</h2>
102
+ <pre><code>&lt;sonic-button goBack type=&quot;primary&quot; variant=&quot;outline&quot; class=&quot;mr-4&quot;&gt;
103
+ &lt;sonic-icon library=&quot;iconoir&quot; slot=&quot;prefix&quot; name=&quot;arrow-right&quot; &gt;&lt;/sonic-icon&gt;
104
+ Button with icon
105
+ &lt;/sonic-button&gt;
106
+ </code></pre>
107
+ <h2 id="button-group">Button group</h2>
108
+ <pre><code>&lt;sonic-group label=&quot;Code promo&quot; class=&quot;mr-4&quot;&gt;
109
+ &lt;sonic-input placeholder=&quot;Entrez votre code ici...&quot;&gt;&lt;/sonic-input&gt;
110
+ &lt;sonic-button type=&quot;primary&quot; shape=&quot;square&quot;&gt;
111
+ &lt;sonic-icon library=&quot;iconoir&quot; library=&quot;iconoir&quot; name=&quot;gift&quot;&gt;&lt;/sonic-icon&gt;
112
+ &lt;/sonic-button&gt;
113
+ &lt;/sonic-group&gt;
114
+ &lt;sonic-divider size=&quot;lg&quot;&gt;&lt;/sonic-divider&gt;
115
+ &lt;div class=&quot;text-lg mb-2&quot;&gt;Choose a subscription&lt;/div&gt;
116
+ &lt;sonic-group formDataProvider=&quot;subscriptionData&quot;&gt;
117
+ &lt;sonic-button radio minWidth=&quot;10rem&quot; name=&quot;subscription&quot; value=&quot;standard&quot; type=&quot;default&quot;
118
+ &gt;😎 Standard&lt;/sonic-button
119
+ &gt;
120
+ &lt;sonic-button radio minWidth=&quot;10rem&quot; name=&quot;subscription&quot; value=&quot;premium&quot; type=&quot;default&quot;&gt;⭐ Premium&lt;/sonic-button&gt;
121
+ &lt;sonic-button radio minWidth=&quot;10rem&quot; name=&quot;subscription&quot; value=&quot;diamond&quot; type=&quot;default&quot;&gt;💎 Diamond&lt;/sonic-button&gt;
122
+ &lt;/sonic-group&gt;
123
+ </code></pre>
124
+ <h2 id="aria-label">Aria-label</h2>
125
+ <pre><code>&lt;sonic-button data-aria-label=&quot;Custom aria label&quot; type=&quot;primary&quot; &gt;
126
+ Button with aria label
127
+ &lt;/sonic-button&gt;
128
+ &lt;sonic-button data-aria-label=&quot;Custom aria label&quot; href=&quot;https://google.fr&quot; type=&quot;primary&quot; &gt;
129
+ Button link with aria label
130
+ &lt;/sonic-button&gt;
131
+ </code></pre>
132
+ <h2 id="custom-styles--active-states-with-tailwind">Custom styles &amp; active states with tailwind</h2>
133
+ <pre><code>&lt;div formDataProvider=&quot;subscriptionData2&quot;&gt;
134
+ &lt;sonic-button
135
+ class=&quot;bg-neutral-100 transition-all text-center text-lg text-neutral-400 rounded-md min-w-[8rem] [&amp;[active]]:text-danger-content [&amp;[active]]:min-w-[13rem] [&amp;[active]]:bg-danger [&amp;[active]]:font-black [&amp;[active]]:rounded-full&quot;
136
+ variant=&quot;unstyled&quot;
137
+ checkable unique
138
+ name=&quot;subscription&quot;
139
+ value=&quot;premium&quot;
140
+ type=&quot;default&quot;&gt;
141
+ &lt;span swap=&quot;off&quot; class=&quot;inline-block py-2 px-3&quot; &gt;subscribe&lt;/span&gt;
142
+ &lt;span swap=&quot;on&quot; class=&quot;inline-block py-2 px-3&quot; &gt;⭐ Premium&lt;/span&gt;
143
+ &lt;/sonic-button&gt;
144
+ &lt;/div&gt;
145
+ </code></pre>
146
+
147
+ </article>
148
+ </main>
149
+ </body>
150
+ </html>
@@ -0,0 +1,112 @@
1
+ <!DOCTYPE html>
2
+ <html lang="fr" data-crawl-url="https://concorde.supersoniks.org/crawl/core/components/ui/captcha/captcha.html" data-doc-id="core/components/ui/captcha/captcha">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Captcha — Concorde</title>
7
+ <meta name="description" content="sonic-captcha embeds an ALTCHA widget and wires captchaToken / needsCaptchaValidation on the ancestor formDataProvider (or headersDataProvider). sonic-submit waits for a token before sending when vali">
8
+ <meta name="keywords" content="Concorde, supersoniks, core/components/ui/captcha/captcha, captcha, Captcha, UI component, sonic-captcha, web component, captchaToken, needsCaptchaValidation, formDataProvider, headersDataProvider, sonic-submit, key, generateEncryptedKey">
9
+ <meta name="concorde-doc-id" content="core/components/ui/captcha/captcha">
10
+ <link rel="canonical" href="https://concorde.supersoniks.org/crawl/core/components/ui/captcha/captcha.html">
11
+ </head>
12
+ <body>
13
+ <header>
14
+ <p><a href="../../../../index.html">Concorde documentation (crawl)</a> · <a href="https://concorde.supersoniks.org/#core/components/ui/captcha/captcha.md/captcha" rel="nofollow">interactive version</a></p>
15
+ </header>
16
+ <main>
17
+ <article>
18
+ <p class="doc-lead" id="doc-summary"><strong>Concorde UI component — Captcha</strong>. sonic-captcha embeds an ALTCHA widget and wires captchaToken / needsCaptchaValidation on the ancestor formDataProvider (or headersDataProvider). sonic-submit waits for a token before sending when vali <span>Doc ID: <code>core/components/ui/captcha/captcha</code>. Keywords: Concorde, supersoniks, core/components/ui/captcha/captcha, captcha, Captcha, UI component, sonic-captcha, web component, captchaToken, needsCaptchaValidation, formDataProvider, headersDataProvider, sonic-submit, key, generateEncryptedKey. URL: <a href="https://concorde.supersoniks.org/crawl/core/components/ui/captcha/captcha.html">https://concorde.supersoniks.org/crawl/core/components/ui/captcha/captcha.html</a>.</span></p>
19
+ <h1 id="captcha">Captcha</h1>
20
+ <p><strong><code>sonic-captcha</code></strong> embeds an <strong>ALTCHA</strong> widget and wires <strong><code>captchaToken</code></strong> / <strong><code>needsCaptchaValidation</code></strong> on the ancestor <strong><code>formDataProvider</code></strong> (or <strong><code>headersDataProvider</code></strong>). <strong><code>sonic-submit</code></strong> waits for a token before sending when validation is required. The widget loads only on <strong>HTTPS</strong>; on plain HTTP the host renders nothing.</p>
21
+ <blockquote>
22
+ <p>Live widget calls the Supersoniks challenge service — not part of <a href="../../../../docs/_misc/docs-mock-api.html#docs-mock-api">docs mock API</a>.</p>
23
+ </blockquote>
24
+ <h2 id="basic-example">Basic example</h2>
25
+ <p>Wrap the form scope and place <strong><code>sonic-submit</code></strong> in the default slot so the challenge appears above the action.</p>
26
+ <pre><code>&lt;sonic-scope
27
+ serviceURL=&quot;/docs-mock-api&quot;
28
+ formDataProvider=&quot;captcha-docs-form&quot;
29
+ submitResultDataProvider=&quot;captcha-docs-result&quot;
30
+ &gt;
31
+ &lt;sonic-captcha formDataProvider=&quot;captcha-docs-form&quot;&gt;
32
+ &lt;sonic-input class=&quot;mb-3&quot; name=&quot;email&quot; type=&quot;email&quot; label=&quot;Email&quot; value=&quot;demo@example.com&quot;&gt;&lt;/sonic-input&gt;
33
+ &lt;sonic-submit endPoint=&quot;api/register&quot; onClick&gt;
34
+ &lt;sonic-button type=&quot;primary&quot;&gt;Submit with captcha&lt;/sonic-button&gt;
35
+ &lt;/sonic-submit&gt;
36
+ &lt;/sonic-captcha&gt;
37
+ &lt;/sonic-scope&gt;
38
+ </code></pre>
39
+ <h2 id="encrypted-site-key">Encrypted site key</h2>
40
+ <p>Optional <strong><code>key</code></strong> skips client-side key generation. When omitted, the component derives an encrypted key on connect (after <strong><code>generateEncryptedKey</code></strong>).</p>
41
+ <pre><code>&lt;sonic-captcha formDataProvider=&quot;captcha-docs-form&quot; key=&quot;6Leq5V0iAAAAAB-41DlWN335jDlcIuXmhNtdd00t&quot;&gt;
42
+ &lt;sonic-button type=&quot;outline&quot; disabled&gt;Complete the challenge above to enable submit&lt;/sonic-button&gt;
43
+ &lt;/sonic-captcha&gt;
44
+ </code></pre>
45
+ <h2 id="form-publisher-fields">Form publisher fields</h2>
46
+ <p>On connect (HTTPS only), <strong><code>needsCaptchaValidation</code></strong> is set to <strong><code>true</code></strong> and <strong><code>captchaToken</code></strong> is cleared. When the ALTCHA widget reaches <strong><code>verified</code></strong>, <strong><code>captchaToken</code></strong> is written on the form publisher and <strong><code>sonic-captcha-validate</code></strong> fires (<code>detail.valid</code> · <strong><code>detail.state</code></strong> · optional <strong><code>detail.token</code></strong> / <strong><code>detail.payload</code></strong>). <strong><code>sonic-submit</code></strong> still listens for <strong><code>request_token</code></strong> to refresh the token immediately before send.</p>
47
+ <pre><code class="language-typescript">{
48
+ needsCaptchaValidation: true,
49
+ captchaKey: &quot;…&quot;,
50
+ captchaToken: &quot;…&quot;
51
+ }
52
+ </code></pre>
53
+ <h2 id="api-reference">API reference</h2>
54
+ <table>
55
+ <thead>
56
+ <tr>
57
+ <th>Attribute</th>
58
+ <th>Values</th>
59
+ <th>Description</th>
60
+ </tr>
61
+ </thead>
62
+ <tbody><tr>
63
+ <td><code>formDataProvider</code></td>
64
+ <td>publisher id</td>
65
+ <td>Same as ancestor form scope; reads/writes <strong><code>needsCaptchaValidation</code></strong> · <strong><code>captchaKey</code></strong> · <strong><code>captchaToken</code></strong></td>
66
+ </tr>
67
+ <tr>
68
+ <td><code>key</code></td>
69
+ <td>string</td>
70
+ <td>ALTCHA site key; auto-generated when empty</td>
71
+ </tr>
72
+ <tr>
73
+ <td><code>action</code></td>
74
+ <td>string</td>
75
+ <td>Optional action name forwarded to the widget</td>
76
+ </tr>
77
+ <tr>
78
+ <td><code>zIndex</code></td>
79
+ <td>number (default <code>9999</code>)</td>
80
+ <td>Stacking for the challenge overlay</td>
81
+ </tr>
82
+ </tbody></table>
83
+ <table>
84
+ <thead>
85
+ <tr>
86
+ <th>Slot</th>
87
+ <th>Description</th>
88
+ </tr>
89
+ </thead>
90
+ <tbody><tr>
91
+ <td><em>(default)</em></td>
92
+ <td>Form actions (typically <strong><code>sonic-submit</code></strong> and fields) rendered below the widget</td>
93
+ </tr>
94
+ </tbody></table>
95
+ <table>
96
+ <thead>
97
+ <tr>
98
+ <th>Event</th>
99
+ <th>Description</th>
100
+ </tr>
101
+ </thead>
102
+ <tbody><tr>
103
+ <td><code>sonic-captcha-validate</code></td>
104
+ <td>Fired when <strong><code>state</code></strong> is <strong><code>verified</code></strong> · <strong><code>error</code></strong> or <strong><code>expired</code></strong>; <strong><code>detail.valid</code></strong> is <strong><code>true</code></strong> only for <strong><code>verified</code></strong></td>
105
+ </tr>
106
+ </tbody></table>
107
+ <p>Related: <a href="../../functional/submit/submit.html#submit">Submit</a> — <strong><code>needsCaptchaValidation</code></strong> and deferred send.</p>
108
+
109
+ </article>
110
+ </main>
111
+ </body>
112
+ </html>