@supersoniks/concorde 5.1.0 → 5.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (628) 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/launch.json +15 -0
  6. package/.claude/vite.http.config.mjs +7 -0
  7. package/.taste-skill/after/desktop-fold.jpg +0 -0
  8. package/.taste-skill/after/desktop-page-01.jpg +0 -0
  9. package/.taste-skill/after/desktop-page-02.jpg +0 -0
  10. package/.taste-skill/after/desktop-page-03.jpg +0 -0
  11. package/.taste-skill/after/mobile-fold.jpg +0 -0
  12. package/.taste-skill/after/mobile-page-01.jpg +0 -0
  13. package/.taste-skill/after/report.json +4103 -0
  14. package/.taste-skill/after/tablet-fold.jpg +0 -0
  15. package/.taste-skill/after/tablet-page-01.jpg +0 -0
  16. package/.taste-skill/after/tablet-page-02.jpg +0 -0
  17. package/.taste-skill/before/desktop-fold.jpg +0 -0
  18. package/.taste-skill/before/desktop-page-01.jpg +0 -0
  19. package/.taste-skill/before/desktop-page-02.jpg +0 -0
  20. package/.taste-skill/before/mobile-fold.jpg +0 -0
  21. package/.taste-skill/before/mobile-page-01.jpg +0 -0
  22. package/.taste-skill/before/report.json +2556 -0
  23. package/.taste-skill/before/tablet-fold.jpg +0 -0
  24. package/.taste-skill/before/tablet-page-01.jpg +0 -0
  25. package/.taste-skill/direction.json +510 -0
  26. package/.taste-skill/notes.md +84 -0
  27. package/.taste-skill/prod/desktop-fold.jpg +0 -0
  28. package/.taste-skill/prod/desktop-page-01.jpg +0 -0
  29. package/.taste-skill/prod/desktop-page-02.jpg +0 -0
  30. package/.taste-skill/prod/desktop-page-03.jpg +0 -0
  31. package/.taste-skill/prod/mobile-fold.jpg +0 -0
  32. package/.taste-skill/prod/mobile-page-01.jpg +0 -0
  33. package/.taste-skill/prod/mobile-page-02.jpg +0 -0
  34. package/.taste-skill/prod/report.json +1973 -0
  35. package/.taste-skill/prod/tablet-fold.jpg +0 -0
  36. package/.taste-skill/prod/tablet-page-01.jpg +0 -0
  37. package/.taste-skill/prod/tablet-page-02.jpg +0 -0
  38. package/.tmp-cem/custom-elements.json +2013 -2013
  39. package/AUDIT.md +228 -0
  40. package/PLAN-AMELIORATION.md +220 -0
  41. package/PLAN-DOCS-AGENTS.md +80 -0
  42. package/README.md +3 -3
  43. package/ai/skills/concorde/SKILL.md +1 -1
  44. package/ai/skills/concorde-get-set-dp/SKILL.md +3 -3
  45. package/ai/skills/concorde-theme/SKILL.md +1 -1
  46. package/build-infos.json +1 -1
  47. package/concorde-core.bundle.js +16 -16
  48. package/concorde-core.es.js +235 -233
  49. package/dist/concorde-core.bundle.js +16 -16
  50. package/dist/concorde-core.es.js +235 -233
  51. package/dist/img/archive/concorde-001-2cv.webp +0 -0
  52. package/dist/img/archive/concorde-red-arrows-2002-poster.jpg +0 -0
  53. package/dist/img/archive/concorde-red-arrows-2002.webm +0 -0
  54. package/dist/img/archive/credits.json +28 -0
  55. package/docs/.htaccess +75 -0
  56. package/docs/404.html +15 -0
  57. package/docs/404.md +5 -0
  58. package/docs/assets/index-BgG6FFPt.js +11765 -0
  59. package/docs/assets/index-x89XINSG.css +1 -0
  60. package/docs/core/components/functional/date/date.html +211 -0
  61. package/docs/core/components/functional/date/date.md +150 -0
  62. package/docs/core/components/functional/fetch/fetch.html +180 -0
  63. package/docs/core/components/functional/fetch/fetch.md +108 -0
  64. package/docs/core/components/functional/if/if.html +65 -0
  65. package/docs/core/components/functional/if/if.md +34 -0
  66. package/docs/core/components/functional/jsonata/jsonata.html +110 -0
  67. package/docs/core/components/functional/jsonata/jsonata.md +61 -0
  68. package/docs/core/components/functional/list/list.html +198 -0
  69. package/docs/core/components/functional/list/list.md +121 -0
  70. package/docs/core/components/functional/mix/mix.html +78 -0
  71. package/docs/core/components/functional/mix/mix.md +46 -0
  72. package/docs/core/components/functional/queue/queue.html +155 -0
  73. package/docs/core/components/functional/queue/queue.md +51 -0
  74. package/docs/core/components/functional/router/router.html +154 -0
  75. package/docs/core/components/functional/router/router.md +93 -0
  76. package/docs/core/components/functional/sdui/sdui-extension-points.html +127 -0
  77. package/docs/core/components/functional/sdui/sdui-extension-points.md +94 -0
  78. package/docs/core/components/functional/sdui/sdui.html +397 -0
  79. package/docs/core/components/functional/sdui/sdui.md +307 -0
  80. package/docs/core/components/functional/states/states.html +141 -0
  81. package/docs/core/components/functional/states/states.md +112 -0
  82. package/docs/core/components/functional/submit/submit.html +178 -0
  83. package/docs/core/components/functional/submit/submit.md +106 -0
  84. package/docs/{crawl/core → core}/components/functional/subscriber/subscriber.html +6 -5
  85. package/docs/core/components/functional/subscriber/subscriber.md +91 -0
  86. package/docs/core/components/functional/translation/translation.html +60 -0
  87. package/docs/core/components/functional/translation/translation.md +38 -0
  88. package/docs/core/components/functional/value/value.html +81 -0
  89. package/docs/core/components/functional/value/value.md +47 -0
  90. package/docs/core/components/ui/alert/alert.html +201 -0
  91. package/docs/core/components/ui/alert/alert.md +186 -0
  92. package/docs/core/components/ui/alert-messages/alert-messages.html +132 -0
  93. package/docs/core/components/ui/alert-messages/alert-messages.md +85 -0
  94. package/docs/core/components/ui/badge/badge.html +197 -0
  95. package/docs/core/components/ui/badge/badge.md +181 -0
  96. package/docs/core/components/ui/button/button.html +309 -0
  97. package/docs/core/components/ui/button/button.md +216 -0
  98. package/docs/core/components/ui/captcha/captcha.html +80 -0
  99. package/docs/core/components/ui/captcha/captcha.md +56 -0
  100. package/docs/core/components/ui/card/card.html +254 -0
  101. package/docs/core/components/ui/card/card.md +215 -0
  102. package/docs/core/components/ui/divider/divider.html +144 -0
  103. package/docs/core/components/ui/divider/divider.md +126 -0
  104. package/docs/core/components/ui/form/checkbox/checkbox.html +200 -0
  105. package/docs/core/components/ui/form/checkbox/checkbox.md +125 -0
  106. package/docs/core/components/ui/form/fieldset/fieldset.html +238 -0
  107. package/docs/core/components/ui/form/fieldset/fieldset.md +161 -0
  108. package/docs/core/components/ui/form/form-actions/form-actions.html +122 -0
  109. package/docs/core/components/ui/form/form-actions/form-actions.md +98 -0
  110. package/docs/core/components/ui/form/form-layout/form-layout.html +115 -0
  111. package/docs/core/components/ui/form/form-layout/form-layout.md +109 -0
  112. package/docs/core/components/ui/form/input/input.html +235 -0
  113. package/docs/core/components/ui/form/input/input.md +142 -0
  114. package/docs/core/components/ui/form/radio/radio.html +144 -0
  115. package/docs/core/components/ui/form/radio/radio.md +78 -0
  116. package/docs/core/components/ui/form/select/select.html +178 -0
  117. package/docs/core/components/ui/form/select/select.md +86 -0
  118. package/docs/core/components/ui/form/switch/switch.html +146 -0
  119. package/docs/core/components/ui/form/switch/switch.md +80 -0
  120. package/docs/core/components/ui/form/textarea/textarea.html +162 -0
  121. package/docs/core/components/ui/form/textarea/textarea.md +82 -0
  122. package/docs/core/components/ui/group/group.html +113 -0
  123. package/docs/core/components/ui/group/group.md +77 -0
  124. package/docs/core/components/ui/icon/icon.html +223 -0
  125. package/docs/core/components/ui/icon/icon.md +214 -0
  126. package/docs/core/components/ui/image/image.html +194 -0
  127. package/docs/core/components/ui/image/image.md +167 -0
  128. package/docs/core/components/ui/link/link.html +101 -0
  129. package/docs/core/components/ui/link/link.md +81 -0
  130. package/docs/core/components/ui/loader/loader.html +114 -0
  131. package/docs/core/components/ui/loader/loader.md +87 -0
  132. package/docs/{crawl/core → core}/components/ui/menu/menu.html +189 -116
  133. package/docs/core/components/ui/menu/menu.md +370 -0
  134. package/docs/core/components/ui/modal/modal.html +324 -0
  135. package/docs/core/components/ui/modal/modal.md +211 -0
  136. package/docs/core/components/ui/pop/pop.html +250 -0
  137. package/docs/core/components/ui/pop/pop.md +216 -0
  138. package/docs/core/components/ui/progress/progress.html +132 -0
  139. package/docs/core/components/ui/progress/progress.md +109 -0
  140. package/docs/core/components/ui/table/table.html +333 -0
  141. package/docs/core/components/ui/table/table.md +267 -0
  142. package/docs/core/components/ui/theme/theme.html +116 -0
  143. package/docs/core/components/ui/theme/theme.md +97 -0
  144. package/docs/core/components/ui/toast/toast.html +185 -0
  145. package/docs/core/components/ui/toast/toast.md +147 -0
  146. package/docs/core/components/ui/tooltip/tooltip.html +112 -0
  147. package/docs/core/components/ui/tooltip/tooltip.md +89 -0
  148. package/docs/docs/decorators/ancestor-attribute.html +71 -0
  149. package/docs/docs/decorators/ancestor-attribute.md +59 -0
  150. package/docs/docs/decorators/auto-subscribe.html +61 -0
  151. package/docs/docs/decorators/auto-subscribe.md +40 -0
  152. package/docs/docs/decorators/bind.html +86 -0
  153. package/docs/docs/decorators/bind.md +77 -0
  154. package/docs/docs/decorators/get.html +166 -0
  155. package/docs/docs/decorators/get.md +160 -0
  156. package/docs/docs/decorators/handle.html +139 -0
  157. package/docs/docs/decorators/handle.md +119 -0
  158. package/docs/docs/decorators/on-assign.html +72 -0
  159. package/docs/docs/decorators/on-assign.md +63 -0
  160. package/docs/docs/decorators/patch.html +76 -0
  161. package/docs/docs/decorators/patch.md +44 -0
  162. package/docs/docs/decorators/post.html +150 -0
  163. package/docs/docs/decorators/post.md +134 -0
  164. package/docs/docs/decorators/publish.html +74 -0
  165. package/docs/docs/decorators/publish.md +56 -0
  166. package/docs/docs/decorators/put.html +83 -0
  167. package/docs/docs/decorators/put.md +51 -0
  168. package/docs/docs/decorators/subscribe.html +91 -0
  169. package/docs/docs/decorators/subscribe.md +87 -0
  170. package/docs/docs/decorators/wait-for-ancestors.html +82 -0
  171. package/docs/docs/decorators/wait-for-ancestors.md +76 -0
  172. package/docs/docs/directives/sub.html +79 -0
  173. package/docs/docs/directives/sub.md +75 -0
  174. package/docs/docs/directives/t.html +91 -0
  175. package/docs/docs/directives/t.md +73 -0
  176. package/docs/{crawl/docs/_getting-started → docs/getting-started}/ai-agents.html +12 -11
  177. package/{src/docs/_getting-started → docs/docs/getting-started}/ai-agents.md +3 -3
  178. package/docs/docs/getting-started/components.html +27 -0
  179. package/docs/docs/getting-started/components.md +5 -0
  180. package/docs/{crawl/docs/_getting-started → docs/getting-started}/create-a-component.html +11 -14
  181. package/docs/{src/docs/_getting-started → docs/getting-started}/create-a-component.md +3 -6
  182. package/docs/{crawl/docs/_core-concept → docs/getting-started}/dataFlow.html +26 -29
  183. package/docs/{src/docs/_core-concept → docs/getting-started}/dataFlow.md +17 -18
  184. package/docs/docs/getting-started/installation.html +69 -0
  185. package/docs/docs/getting-started/installation.md +36 -0
  186. package/docs/{crawl/docs/_getting-started → docs/getting-started}/my-first-component.html +13 -22
  187. package/docs/{src/docs/_getting-started → docs/getting-started}/my-first-component.md +5 -14
  188. package/docs/docs/getting-started/start.html +47 -0
  189. package/{src/docs/_getting-started → docs/docs/getting-started}/start.md +1 -13
  190. package/docs/docs/getting-started/theming.html +334 -0
  191. package/{src/docs/_getting-started → docs/docs/getting-started}/theming.md +2 -2
  192. package/docs/docs/index.html +99 -0
  193. package/docs/{crawl/docs/_misc → docs/misc}/api-configuration.html +18 -18
  194. package/docs/{src/docs/_misc → docs/misc}/api-configuration.md +10 -12
  195. package/docs/{crawl/docs/_misc → docs/misc}/dataProviderKey.html +12 -11
  196. package/{src/docs/_misc → docs/docs/misc}/dataProviderKey.md +4 -4
  197. package/docs/{crawl/docs/_misc → docs/misc}/docs-mock-api.html +25 -28
  198. package/docs/{src/docs/_misc → docs/misc}/docs-mock-api.md +12 -13
  199. package/docs/{crawl/docs/_misc → docs/misc}/dynamic-path.html +16 -15
  200. package/{src/docs/_misc → docs/docs/misc}/dynamic-path.md +8 -8
  201. package/docs/{crawl/docs/_misc → docs/misc}/endpoint.html +16 -15
  202. package/{src/docs/_misc → docs/docs/misc}/endpoint.md +8 -8
  203. package/docs/{crawl/docs/_misc → docs/misc}/html-integration.html +12 -15
  204. package/docs/{src/docs/_misc → docs/misc}/html-integration.md +4 -5
  205. package/docs/docs-mock-api-sw.js +60 -223
  206. package/docs/docs-mock-api-sw.js.map +4 -4
  207. package/docs/hubs/decorators.html +443 -0
  208. package/docs/hubs/form-components.html +404 -0
  209. package/docs/hubs/remote-data.html +371 -0
  210. package/docs/img/archive/concorde-001-2cv.webp +0 -0
  211. package/docs/img/archive/concorde-red-arrows-2002-poster.jpg +0 -0
  212. package/docs/img/archive/concorde-red-arrows-2002.webm +0 -0
  213. package/docs/img/archive/credits.json +28 -0
  214. package/docs/img/concorde/plane_01.jpg +0 -0
  215. package/docs/img/concorde/plane_02.jpg +0 -0
  216. package/docs/img/concorde/plane_03.jpg +0 -0
  217. package/docs/img/concorde/plane_04.jpg +0 -0
  218. package/docs/img/concorde/plane_05.jpg +0 -0
  219. package/docs/img/concorde/plane_06.jpg +0 -0
  220. package/docs/img/concorde/plane_07.jpg +0 -0
  221. package/docs/img/concorde/plane_08.jpg +0 -0
  222. package/docs/img/concorde/plane_09.jpg +0 -0
  223. package/docs/img/concorde/plane_10.jpg +0 -0
  224. package/docs/img/concorde/plane_11.jpg +0 -0
  225. package/docs/img/concorde/plane_12.jpg +0 -0
  226. package/docs/img/concorde/plane_13.jpg +0 -0
  227. package/docs/index.html +96 -67
  228. package/docs/index.md +22 -0
  229. package/docs/llms-full.txt +3329 -3295
  230. package/docs/llms.txt +94 -92
  231. package/docs/robots.txt +11 -10
  232. package/docs/sitemap.xml +78 -78
  233. package/docs/src/core/components/functional/date/date.md +91 -231
  234. package/docs/src/core/components/functional/fetch/fetch.md +66 -83
  235. package/docs/src/core/components/functional/if/if.md +28 -3
  236. package/docs/src/core/components/functional/jsonata/jsonata.md +42 -37
  237. package/docs/src/core/components/functional/list/list.md +99 -43
  238. package/docs/src/core/components/functional/mix/mix.md +31 -26
  239. package/docs/src/core/components/functional/queue/queue.md +40 -61
  240. package/docs/src/core/components/functional/router/router.md +64 -65
  241. package/docs/src/core/components/functional/sdui/component-catalog.gaps.json +511 -0
  242. package/docs/src/core/components/functional/sdui/component-catalog.json +3103 -0
  243. package/docs/src/core/components/functional/sdui/example.json +19 -86
  244. package/docs/src/core/components/functional/sdui/sdui-extension-points.md +94 -0
  245. package/docs/src/core/components/functional/sdui/sdui.md +196 -245
  246. package/docs/src/core/components/functional/states/states.md +86 -61
  247. package/docs/src/core/components/functional/submit/submit.md +64 -72
  248. package/docs/src/core/components/functional/translation/translation.md +38 -0
  249. package/docs/src/core/components/functional/value/value.md +34 -22
  250. package/docs/src/core/components/ui/alert/alert.md +139 -74
  251. package/docs/src/core/components/ui/alert-messages/alert-messages.md +85 -0
  252. package/docs/src/core/components/ui/badge/badge.md +137 -83
  253. package/docs/src/core/components/ui/button/button.md +139 -105
  254. package/docs/src/core/components/ui/captcha/captcha.md +50 -6
  255. package/docs/src/core/components/ui/card/card.md +183 -65
  256. package/docs/src/core/components/ui/divider/divider.md +104 -13
  257. package/docs/src/core/components/ui/form/checkbox/checkbox.md +90 -42
  258. package/docs/src/core/components/ui/form/fieldset/fieldset.md +135 -103
  259. package/docs/src/core/components/ui/form/form-actions/form-actions.md +71 -50
  260. package/docs/src/core/components/ui/form/form-layout/form-layout.md +99 -34
  261. package/docs/src/core/components/ui/form/input/input.md +95 -95
  262. package/docs/src/core/components/ui/form/radio/radio.md +55 -34
  263. package/docs/src/core/components/ui/form/select/select.md +60 -45
  264. package/docs/src/core/components/ui/form/switch/switch.md +57 -34
  265. package/docs/src/core/components/ui/form/textarea/textarea.md +55 -38
  266. package/docs/src/core/components/ui/group/group.md +49 -47
  267. package/docs/src/core/components/ui/icon/icon.md +132 -43
  268. package/docs/src/core/components/ui/image/image.md +132 -72
  269. package/docs/src/core/components/ui/link/link.md +46 -8
  270. package/docs/src/core/components/ui/loader/loader.md +55 -23
  271. package/docs/src/core/components/ui/menu/menu.md +155 -114
  272. package/docs/src/core/components/ui/modal/modal.md +154 -62
  273. package/docs/src/core/components/ui/pop/pop.md +185 -65
  274. package/docs/src/core/components/ui/progress/progress.md +76 -30
  275. package/docs/src/core/components/ui/table/table.md +146 -334
  276. package/docs/src/core/components/ui/theme/theme.md +97 -0
  277. package/docs/src/core/components/ui/toast/toast.md +80 -99
  278. package/docs/src/core/components/ui/tooltip/tooltip.md +52 -45
  279. package/docs/src/docs/decorators/ancestor-attribute.md +59 -0
  280. package/docs/src/docs/decorators/auto-subscribe.md +40 -0
  281. package/docs/src/docs/decorators/bind.md +77 -0
  282. package/docs/src/docs/decorators/get.md +160 -0
  283. package/docs/src/docs/decorators/handle.md +119 -0
  284. package/docs/src/docs/decorators/on-assign.md +63 -0
  285. package/docs/src/docs/decorators/patch.md +44 -0
  286. package/docs/src/docs/decorators/post.md +134 -0
  287. package/docs/src/docs/decorators/publish.md +56 -0
  288. package/docs/src/docs/decorators/put.md +51 -0
  289. package/docs/src/docs/decorators/subscribe.md +87 -0
  290. package/docs/src/docs/decorators/wait-for-ancestors.md +76 -0
  291. package/docs/src/docs/directives/sub.md +75 -0
  292. package/docs/src/docs/directives/t.md +73 -0
  293. package/docs/src/docs/{_getting-started → getting-started}/ai-agents.md +3 -3
  294. package/docs/src/docs/getting-started/components.md +5 -0
  295. package/{src/docs/_getting-started → docs/src/docs/getting-started}/create-a-component.md +3 -6
  296. package/{src/docs/_core-concept → docs/src/docs/getting-started}/dataFlow.md +17 -18
  297. package/docs/src/docs/getting-started/installation.md +36 -0
  298. package/{src/docs/_getting-started → docs/src/docs/getting-started}/my-first-component.md +5 -14
  299. package/docs/src/docs/getting-started/start.md +35 -0
  300. package/docs/src/docs/getting-started/theming.md +253 -0
  301. package/{src/docs/_misc → docs/src/docs/misc}/api-configuration.md +10 -12
  302. package/docs/src/docs/{_misc → misc}/dataProviderKey.md +4 -4
  303. package/{src/docs/_misc → docs/src/docs/misc}/docs-mock-api.md +12 -13
  304. package/docs/src/docs/{_misc → misc}/dynamic-path.md +8 -8
  305. package/docs/src/docs/{_misc → misc}/endpoint.md +8 -8
  306. package/{src/docs/_misc → docs/src/docs/misc}/html-integration.md +4 -5
  307. package/docs/src/docs/search/docs-search.json +3729 -2949
  308. package/docs/src/tsconfig.json +176 -5
  309. package/index.html +94 -67
  310. package/package.json +11 -4
  311. package/public/docs-mock-api-sw.js +58 -223
  312. package/public/docs-mock-api-sw.js.map +4 -4
  313. package/public/img/archive/concorde-001-2cv.webp +0 -0
  314. package/public/img/archive/concorde-red-arrows-2002-poster.jpg +0 -0
  315. package/public/img/archive/concorde-red-arrows-2002.webm +0 -0
  316. package/public/img/archive/credits.json +28 -0
  317. package/public/img/concorde/plane_01.jpg +0 -0
  318. package/public/img/concorde/plane_02.jpg +0 -0
  319. package/public/img/concorde/plane_03.jpg +0 -0
  320. package/public/img/concorde/plane_04.jpg +0 -0
  321. package/public/img/concorde/plane_05.jpg +0 -0
  322. package/public/img/concorde/plane_06.jpg +0 -0
  323. package/public/img/concorde/plane_07.jpg +0 -0
  324. package/public/img/concorde/plane_08.jpg +0 -0
  325. package/public/img/concorde/plane_09.jpg +0 -0
  326. package/public/img/concorde/plane_10.jpg +0 -0
  327. package/public/img/concorde/plane_11.jpg +0 -0
  328. package/public/img/concorde/plane_12.jpg +0 -0
  329. package/public/img/concorde/plane_13.jpg +0 -0
  330. package/public/robots.txt +11 -10
  331. package/scripts/docs-markdown-vite-plugin.ts +37 -0
  332. package/scripts/docs-public-url.mjs +50 -0
  333. package/scripts/docs.htaccess +75 -0
  334. package/scripts/generate-crawl-docs.mjs +207 -116
  335. package/scripts/generate-crawl-docs.test.mjs +124 -0
  336. package/scripts/post-build-docs.js +34 -50
  337. package/scripts/post-build.mjs +0 -0
  338. package/src/core/components/functional/date/date.md +91 -231
  339. package/src/core/components/functional/fetch/fetch.md +66 -83
  340. package/src/core/components/functional/if/if.md +28 -3
  341. package/src/core/components/functional/if/if.ts +0 -0
  342. package/src/core/components/functional/jsonata/jsonata.md +42 -37
  343. package/src/core/components/functional/list/list.demo.ts +0 -0
  344. package/src/core/components/functional/list/list.md +99 -43
  345. package/src/core/components/functional/mix/mix.md +31 -26
  346. package/src/core/components/functional/queue/queue.demo.ts +10 -7
  347. package/src/core/components/functional/queue/queue.md +40 -61
  348. package/src/core/components/functional/router/router.demo.ts +16 -16
  349. package/src/core/components/functional/router/router.md +64 -65
  350. package/src/core/components/functional/router/router.ts +0 -0
  351. package/src/core/components/functional/sdui/SDUIDescriptorTransformer.ts +0 -0
  352. package/src/core/components/functional/sdui/component-catalog.gaps.json +1 -1
  353. package/src/core/components/functional/sdui/component-catalog.json +1 -1
  354. package/src/core/components/functional/sdui/example.json +19 -86
  355. package/src/core/components/functional/sdui/sdui-extension-points.md +1 -1
  356. package/src/core/components/functional/sdui/sdui.md +187 -358
  357. package/src/core/components/functional/sdui/types.ts +0 -0
  358. package/src/core/components/functional/states/states.demo.ts +21 -22
  359. package/src/core/components/functional/states/states.md +86 -61
  360. package/src/core/components/functional/states/states.ts +1 -1
  361. package/src/core/components/functional/submit/submit.md +64 -72
  362. package/src/core/components/functional/subscriber/subscriber.ts +0 -0
  363. package/src/core/components/functional/translation/translation.md +38 -0
  364. package/src/core/components/functional/value/value.md +34 -22
  365. package/src/core/components/functional/value/value.ts +0 -0
  366. package/src/core/components/ui/_css/size.ts +0 -0
  367. package/src/core/components/ui/alert/alert.md +48 -58
  368. package/src/core/components/ui/badge/badge.md +27 -34
  369. package/src/core/components/ui/button/button.md +139 -106
  370. package/src/core/components/ui/captcha/altchaStyles.ts +0 -0
  371. package/src/core/components/ui/captcha/captcha.md +17 -32
  372. package/src/core/components/ui/card/card.md +6 -6
  373. package/src/core/components/ui/divider/divider.md +8 -11
  374. package/src/core/components/ui/form/checkbox/checkbox.md +90 -42
  375. package/src/core/components/ui/form/fieldset/fieldset.md +31 -75
  376. package/src/core/components/ui/form/form-actions/form-actions.md +14 -16
  377. package/src/core/components/ui/form/form-layout/form-layout.md +19 -29
  378. package/src/core/components/ui/form/input/input.md +95 -95
  379. package/src/core/components/ui/form/radio/radio.md +55 -34
  380. package/src/core/components/ui/form/select/select.md +60 -45
  381. package/src/core/components/ui/form/switch/switch.md +57 -34
  382. package/src/core/components/ui/form/textarea/textarea.md +55 -38
  383. package/src/core/components/ui/group/group.md +35 -33
  384. package/src/core/components/ui/icon/icon.md +4 -4
  385. package/src/core/components/ui/image/image.md +41 -107
  386. package/src/core/components/ui/link/link.md +6 -6
  387. package/src/core/components/ui/loader/loader.md +30 -55
  388. package/src/core/components/ui/menu/menu.md +27 -27
  389. package/src/core/components/ui/modal/modal.md +72 -96
  390. package/src/core/components/ui/modal/modal.ts +14 -11
  391. package/src/core/components/ui/pop/pop.md +80 -158
  392. package/src/core/components/ui/progress/progress.md +2 -2
  393. package/src/core/components/ui/table/table.md +91 -255
  394. package/src/core/components/ui/theme/theme.md +11 -36
  395. package/src/core/components/ui/toast/toast.md +48 -117
  396. package/src/core/components/ui/tooltip/tooltip.md +27 -62
  397. package/src/core/mixins/Subscriber.ts +0 -0
  398. package/src/core/utils/DataBindObserver.ts +0 -0
  399. package/src/core/utils/LocationHandler.spec.ts +80 -0
  400. package/src/core/utils/LocationHandler.ts +5 -9
  401. package/src/core/utils/Objects.ts +0 -0
  402. package/src/core/utils/route.ts +0 -0
  403. package/src/docs/code.ts +88 -75
  404. package/src/docs/components/docs-demo-sources.ts +70 -147
  405. package/src/docs/components/docs-lit-demo.ts +20 -40
  406. package/src/docs/components/docs-source-link.ts +0 -82
  407. package/src/docs/decorators/ancestor-attribute.md +59 -0
  408. package/src/docs/decorators/auto-subscribe.md +40 -0
  409. package/src/docs/decorators/bind.md +77 -0
  410. package/src/docs/decorators/get.md +160 -0
  411. package/src/docs/decorators/handle.md +119 -0
  412. package/src/docs/decorators/on-assign.md +63 -0
  413. package/src/docs/decorators/patch.md +44 -0
  414. package/src/docs/decorators/post.md +134 -0
  415. package/src/docs/decorators/publish.md +56 -0
  416. package/src/docs/decorators/put.md +51 -0
  417. package/src/docs/decorators/subscribe.md +87 -0
  418. package/src/docs/decorators/wait-for-ancestors.md +76 -0
  419. package/src/docs/directives/sub.md +75 -0
  420. package/src/docs/directives/t.md +73 -0
  421. package/src/docs/docs-location.spec.ts +46 -0
  422. package/src/docs/docs-location.ts +123 -32
  423. package/src/docs/docs.ts +6 -2
  424. package/src/docs/example/decorators-demo-bind-demos.ts +81 -116
  425. package/src/docs/example/decorators-demo-geo.ts +30 -19
  426. package/src/docs/example/decorators-demo-post.ts +88 -186
  427. package/src/docs/example/decorators-demo-subscribe-publish-get-demos.ts +165 -268
  428. package/src/docs/example/decorators-demo.ts +85 -98
  429. package/src/docs/example/docs-api-config-demos.ts +19 -20
  430. package/src/docs/example/docs-boarding-pass-demo.ts +134 -0
  431. package/src/docs/example/docs-flight-demos.ts +147 -0
  432. package/src/docs/example/docs-jsonata-demos.ts +52 -52
  433. package/src/docs/example/docs-list-demos.ts +43 -123
  434. package/src/docs/example/docs-provider-keys.ts +33 -28
  435. package/src/docs/example/docs-queue-demos.ts +37 -77
  436. package/src/docs/example/docs-router-demos.ts +20 -25
  437. package/src/docs/example/docs-submit-demos.ts +48 -48
  438. package/src/docs/example/docs-toggle-demos.ts +4 -3
  439. package/src/docs/example/users.ts +0 -0
  440. package/src/docs/getting-started/ai-agents.md +76 -0
  441. package/src/docs/getting-started/components.md +5 -0
  442. package/src/docs/getting-started/create-a-component.md +136 -0
  443. package/src/docs/getting-started/dataFlow.md +87 -0
  444. package/src/docs/getting-started/installation.md +36 -0
  445. package/src/docs/getting-started/my-first-component.md +227 -0
  446. package/src/docs/getting-started/start.md +35 -0
  447. package/src/docs/getting-started/theming.md +253 -0
  448. package/src/docs/header/header.ts +240 -71
  449. package/src/docs/home/catalog.ts +44 -0
  450. package/src/docs/home/home.ts +520 -0
  451. package/src/docs/home/mach-stage.ts +389 -0
  452. package/src/docs/layout.ts +12 -11
  453. package/src/docs/misc/api-configuration.md +79 -0
  454. package/src/docs/misc/dataProviderKey.md +168 -0
  455. package/src/docs/misc/docs-mock-api.md +62 -0
  456. package/src/docs/misc/dynamic-path.md +71 -0
  457. package/src/docs/misc/endpoint.md +45 -0
  458. package/src/docs/misc/html-integration.md +14 -0
  459. package/src/docs/mock-api/api-config-mock.ts +5 -0
  460. package/src/docs/mock-api/fixtures.ts +0 -278
  461. package/src/docs/mock-api/flights.ts +89 -0
  462. package/src/docs/mock-api/router.ts +3 -4
  463. package/src/docs/mock-api/urls.ts +1 -2
  464. package/src/docs/navigation/components-index.ts +56 -0
  465. package/src/docs/navigation/navigation.ts +219 -232
  466. package/src/docs/navigation/pager.ts +67 -0
  467. package/src/docs/navigation/toc.ts +101 -0
  468. package/src/docs/search/docs-search.json +2419 -4374
  469. package/src/docs/search/markdown-renderer.ts +33 -7
  470. package/src/docs/search/page.ts +9 -6
  471. package/src/docs/search/search.ts +154 -122
  472. package/src/docs/shiki/index.ts +109 -0
  473. package/src/docs/tailwind/css/base/scrollbar.css +22 -0
  474. package/src/docs/tailwind/css/base/theme.css +96 -0
  475. package/src/docs/tailwind/css/base/typography.css +4 -0
  476. package/src/docs/tailwind/css/docs/boarding-pass.css +65 -0
  477. package/src/docs/tailwind/css/docs/content.css +32 -0
  478. package/src/docs/tailwind/css/docs/page.css +10 -0
  479. package/src/docs/tailwind/css/docs.css +9 -0
  480. package/src/docs/tailwind/css/home/hero.css +210 -0
  481. package/src/docs/tailwind/css/home/motion.css +84 -0
  482. package/src/docs/tailwind/css/home/sections.css +416 -0
  483. package/src/docs/tailwind/css/tailwind.css +7 -185
  484. package/src/tsconfig.json +23 -2
  485. package/src/tsconfig.tsbuildinfo +1 -1
  486. package/tailwind.config.js +8 -4
  487. package/vite.config.mts +11 -2
  488. package/.agents/skills/concorde-component-docs/SKILL.md +0 -194
  489. package/.github/workflows/ci.yml +0 -21
  490. package/.github-export-ignore +0 -30
  491. package/CONTRIBUTING.md +0 -59
  492. package/DEV.md +0 -54
  493. package/LICENSE +0 -21
  494. package/OPEN_SOURCE_CHECKPOINT.md +0 -133
  495. package/concorde-3d.bundle.js +0 -3960
  496. package/concorde-3d.es.js +0 -33433
  497. package/concorde-hugging-face-infer.bundle.js +0 -32
  498. package/concorde-hugging-face-infer.es.js +0 -2952
  499. package/concorde-interactive.bundle.js +0 -1157
  500. package/concorde-interactive.es.js +0 -10734
  501. package/concorde-shader.bundle.js +0 -116
  502. package/concorde-shader.es.js +0 -8353
  503. package/concorde-webgpu.bundle.js +0 -307
  504. package/concorde-webgpu.es.js +0 -8627
  505. package/docs/assets/index-D8MVWqY6.js +0 -12251
  506. package/docs/assets/index-DiD0qYvE.css +0 -1
  507. package/docs/crawl/core/components/functional/date/date.html +0 -190
  508. package/docs/crawl/core/components/functional/fetch/fetch.html +0 -109
  509. package/docs/crawl/core/components/functional/if/if.html +0 -27
  510. package/docs/crawl/core/components/functional/jsonata/jsonata.html +0 -79
  511. package/docs/crawl/core/components/functional/list/list.html +0 -70
  512. package/docs/crawl/core/components/functional/mix/mix.html +0 -45
  513. package/docs/crawl/core/components/functional/queue/queue.html +0 -96
  514. package/docs/crawl/core/components/functional/router/router.html +0 -106
  515. package/docs/crawl/core/components/functional/sdui/sdui.html +0 -269
  516. package/docs/crawl/core/components/functional/states/states.html +0 -66
  517. package/docs/crawl/core/components/functional/submit/submit.html +0 -160
  518. package/docs/crawl/core/components/functional/value/value.html +0 -51
  519. package/docs/crawl/core/components/ui/alert/alert.html +0 -110
  520. package/docs/crawl/core/components/ui/alert-messages/alert-messages.html +0 -23
  521. package/docs/crawl/core/components/ui/badge/badge.html +0 -119
  522. package/docs/crawl/core/components/ui/button/button.html +0 -149
  523. package/docs/crawl/core/components/ui/captcha/captcha.html +0 -30
  524. package/docs/crawl/core/components/ui/card/card.html +0 -99
  525. package/docs/crawl/core/components/ui/divider/divider.html +0 -58
  526. package/docs/crawl/core/components/ui/form/checkbox/checkbox.html +0 -73
  527. package/docs/crawl/core/components/ui/form/fieldset/fieldset.html +0 -135
  528. package/docs/crawl/core/components/ui/form/form-actions/form-actions.html +0 -79
  529. package/docs/crawl/core/components/ui/form/form-layout/form-layout.html +0 -62
  530. package/docs/crawl/core/components/ui/form/input/input.html +0 -109
  531. package/docs/crawl/core/components/ui/form/input-autocomplete/input-autocomplete.html +0 -38
  532. package/docs/crawl/core/components/ui/form/radio/radio.html +0 -56
  533. package/docs/crawl/core/components/ui/form/select/select.html +0 -73
  534. package/docs/crawl/core/components/ui/form/switch/switch.html +0 -56
  535. package/docs/crawl/core/components/ui/form/textarea/textarea.html +0 -59
  536. package/docs/crawl/core/components/ui/group/group.html +0 -82
  537. package/docs/crawl/core/components/ui/icon/icon.html +0 -133
  538. package/docs/crawl/core/components/ui/image/image.html +0 -110
  539. package/docs/crawl/core/components/ui/link/link.html +0 -42
  540. package/docs/crawl/core/components/ui/loader/loader.html +0 -50
  541. package/docs/crawl/core/components/ui/modal/modal.html +0 -117
  542. package/docs/crawl/core/components/ui/pop/pop.html +0 -102
  543. package/docs/crawl/core/components/ui/progress/progress.html +0 -58
  544. package/docs/crawl/core/components/ui/table/table.html +0 -413
  545. package/docs/crawl/core/components/ui/toast/toast.html +0 -122
  546. package/docs/crawl/core/components/ui/tooltip/tooltip.html +0 -79
  547. package/docs/crawl/docs/_core-concept/overview.html +0 -66
  548. package/docs/crawl/docs/_core-concept/subscriber.html +0 -75
  549. package/docs/crawl/docs/_decorators/ancestor-attribute.html +0 -116
  550. package/docs/crawl/docs/_decorators/auto-subscribe.html +0 -202
  551. package/docs/crawl/docs/_decorators/bind.html +0 -141
  552. package/docs/crawl/docs/_decorators/get.html +0 -149
  553. package/docs/crawl/docs/_decorators/handle.html +0 -165
  554. package/docs/crawl/docs/_decorators/on-assign.html +0 -355
  555. package/docs/crawl/docs/_decorators/patch.html +0 -78
  556. package/docs/crawl/docs/_decorators/post.html +0 -139
  557. package/docs/crawl/docs/_decorators/publish.html +0 -61
  558. package/docs/crawl/docs/_decorators/put.html +0 -78
  559. package/docs/crawl/docs/_decorators/subscribe.html +0 -109
  560. package/docs/crawl/docs/_decorators/wait-for-ancestors.html +0 -137
  561. package/docs/crawl/docs/_directives/sub.html +0 -93
  562. package/docs/crawl/docs/_getting-started/concorde-manual-install.html +0 -100
  563. package/docs/crawl/docs/_getting-started/concorde-outside.html +0 -58
  564. package/docs/crawl/docs/_getting-started/my-first-subscriber.html +0 -110
  565. package/docs/crawl/docs/_getting-started/pubsub.html +0 -62
  566. package/docs/crawl/docs/_getting-started/start.html +0 -76
  567. package/docs/crawl/docs/_getting-started/theming.html +0 -85
  568. package/docs/crawl/docs/_misc/formelement-subscriber-removal.html +0 -138
  569. package/docs/crawl/hubs/decorators.html +0 -547
  570. package/docs/crawl/hubs/form-components.html +0 -359
  571. package/docs/crawl/hubs/remote-data.html +0 -452
  572. package/docs/crawl/index.html +0 -101
  573. package/docs/src/core/components/ui/form/input-autocomplete/input-autocomplete.md +0 -29
  574. package/docs/src/docs/_core-concept/overview.md +0 -57
  575. package/docs/src/docs/_core-concept/subscriber.md +0 -75
  576. package/docs/src/docs/_decorators/ancestor-attribute.md +0 -127
  577. package/docs/src/docs/_decorators/auto-subscribe.md +0 -202
  578. package/docs/src/docs/_decorators/bind.md +0 -167
  579. package/docs/src/docs/_decorators/get.md +0 -162
  580. package/docs/src/docs/_decorators/handle.md +0 -175
  581. package/docs/src/docs/_decorators/on-assign.md +0 -390
  582. package/docs/src/docs/_decorators/patch.md +0 -70
  583. package/docs/src/docs/_decorators/post.md +0 -146
  584. package/docs/src/docs/_decorators/publish.md +0 -55
  585. package/docs/src/docs/_decorators/put.md +0 -70
  586. package/docs/src/docs/_decorators/subscribe.md +0 -100
  587. package/docs/src/docs/_decorators/wait-for-ancestors.md +0 -163
  588. package/docs/src/docs/_directives/sub.md +0 -91
  589. package/docs/src/docs/_getting-started/concorde-manual-install.md +0 -133
  590. package/docs/src/docs/_getting-started/concorde-outside.md +0 -33
  591. package/docs/src/docs/_getting-started/my-first-subscriber.md +0 -120
  592. package/docs/src/docs/_getting-started/pubsub.md +0 -37
  593. package/docs/src/docs/_getting-started/start.md +0 -47
  594. package/docs/src/docs/_getting-started/theming.md +0 -91
  595. package/docs/src/docs/_misc/formelement-subscriber-removal.md +0 -115
  596. package/docs/src/tsconfig.declarations.json +0 -22
  597. package/docs/src/tsconfig.emit.json +0 -23
  598. package/gitlab/job_github_mirror.sh +0 -39
  599. package/scripts/github-export.mjs +0 -150
  600. package/src/core/components/ui/form/input-autocomplete/input-autocomplete.md +0 -29
  601. package/src/css.d.ts +0 -19
  602. package/src/docs/_core-concept/overview.md +0 -57
  603. package/src/docs/_core-concept/subscriber.md +0 -75
  604. package/src/docs/_decorators/ancestor-attribute.md +0 -128
  605. package/src/docs/_decorators/auto-subscribe.md +0 -202
  606. package/src/docs/_decorators/bind.md +0 -167
  607. package/src/docs/_decorators/get.md +0 -162
  608. package/src/docs/_decorators/handle.md +0 -175
  609. package/src/docs/_decorators/on-assign.md +0 -390
  610. package/src/docs/_decorators/patch.md +0 -70
  611. package/src/docs/_decorators/post.md +0 -146
  612. package/src/docs/_decorators/publish.md +0 -55
  613. package/src/docs/_decorators/put.md +0 -70
  614. package/src/docs/_decorators/subscribe.md +0 -100
  615. package/src/docs/_decorators/wait-for-ancestors.md +0 -163
  616. package/src/docs/_directives/sub.md +0 -91
  617. package/src/docs/_getting-started/concorde-manual-install.md +0 -133
  618. package/src/docs/_getting-started/concorde-outside.md +0 -33
  619. package/src/docs/_getting-started/my-first-subscriber.md +0 -120
  620. package/src/docs/_getting-started/pubsub.md +0 -37
  621. package/src/docs/_misc/formelement-subscriber-removal.md +0 -115
  622. package/src/docs/example/docs-input-autocomplete-demos.ts +0 -110
  623. package/src/docs/example/docs-joke-demos.ts +0 -297
  624. package/src/docs/prism/index.ts +0 -6
  625. package/src/docs/prism/prism.css +0 -158
  626. package/src/docs/prism/prism.js +0 -1022
  627. package/src/tsconfig.declarations.json +0 -22
  628. package/src/tsconfig.emit.json +0 -23
@@ -0,0 +1,73 @@
1
+ # t()
2
+
3
+ Lit directive that renders a translated label by key. Keys are batched into one GET to the endpoint set by the nearest `wordingProvider` ancestor attribute, and results are cached in `localStorage`.
4
+
5
+ ## Import
6
+
7
+ <sonic-code language="typescript">
8
+ <template>
9
+ import { t } from "@supersoniks/concorde/directives/Wording";
10
+ </template>
11
+ </sonic-code>
12
+
13
+ `wording` and `w` are aliases of `t`. In plain HTML, use the [`sonic-t`](/core/components/functional/translation) element.
14
+
15
+ ## Usage
16
+
17
+ Set `serviceURL` and `wordingProvider` on the host component or one of its ancestors, then call `t(key)` in a template. Attributes on elements **inside** the component's own template are not read. Click the button to bump the version and reload the labels.
18
+
19
+ <docs-lit-demo for="docs-api-config-wording-demo"></docs-lit-demo>
20
+
21
+ ## Endpoint contract
22
+
23
+ All keys requested in the same tick are sent in one request, appended to `wordingProvider` as `labels[]`:
24
+
25
+ <sonic-code language="shell">
26
+ <template>
27
+ GET {serviceURL}/wording/labels?lang=fr&labels[]=greeting&labels[]=farewell
28
+ </template>
29
+ </sonic-code>
30
+
31
+ The response is a flat map of key to label:
32
+
33
+ <sonic-code language="json">
34
+ <template>
35
+ { "greeting": "Bonjour", "farewell": "Au revoir" }
36
+ </template>
37
+ </sonic-code>
38
+
39
+ Until the label arrives, `t()` renders an empty string.
40
+
41
+ ## HTML labels
42
+
43
+ `t()` escapes the label. Use `unsafeWording(key)` for labels that contain trusted HTML.
44
+
45
+ <sonic-code language="typescript">
46
+ <template>
47
+ import { unsafeWording } from "@supersoniks/concorde/directives/Wording";
48
+
49
+ html`&lt;p&gt;${unsafeWording("terms.notice")}&lt;/p&gt;`;
50
+ </template>
51
+ </sonic-code>
52
+
53
+ ## Reloading labels
54
+
55
+ Labels are fetched again when:
56
+
57
+ - the `lang` attribute of `<html>` changes
58
+ - the number stored at `wordingVersionProvider` changes — bump it after publishing new labels to invalidate the `localStorage` cache
59
+
60
+ ## API reference
61
+
62
+ | Function | Description |
63
+ |----------|-------------|
64
+ | `t(key)` · `wording(key)` · `w(key)` | Renders the escaped label for `key` |
65
+ | `unsafeWording(key)` | Renders the label as HTML |
66
+ | `isWordingReady(key)` | `true` once the label for `key` is loaded |
67
+
68
+ | Ancestor attribute | Description |
69
+ |--------------------|-------------|
70
+ | `wordingProvider` | Endpoint path and query, relative to `serviceURL` |
71
+ | `wordingVersionProvider` | DataProvider path holding a version number |
72
+
73
+ Other ancestor attributes (`serviceURL`, `token`, …) apply as for any request: see [API configuration](/docs/misc/api-configuration).
@@ -1,26 +1,27 @@
1
1
  <!DOCTYPE html>
2
- <html lang="fr" data-crawl-url="https://concorde.supersoniks.org/crawl/docs/_getting-started/ai-agents.html" data-doc-id="docs/_getting-started/ai-agents">
2
+ <html lang="en" data-doc-url="https://concorde.supersoniks.org/docs/getting-started/ai-agents" data-doc-id="docs/getting-started/ai-agents">
3
3
  <head>
4
4
  <meta charset="UTF-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>AI agents (skills &amp; AGENTS.md) — Concorde</title>
6
+ <title>AI agents (skills &amp; AGENTS.md) — Concorde by Supersoniks</title>
7
7
  <meta name="description" content="Concorde ships skills, rules, and a root AGENTS.md so Cursor, JetBrains AI Assistant, and other coding agents follow framework patterns (DataProvider, decorators, short imports, scope, theme, migratio">
8
- <meta name="keywords" content="Concorde, supersoniks, docs/_getting-started/ai-agents, ai-agents, AI agents (skills &amp; AGENTS.md), guide, AGENTS.md, yarn ai:sync, ai-init, yarn add @supersoniks/concorde, |
8
+ <meta name="keywords" content="Concorde, supersoniks, docs/getting-started/ai-agents, ai-agents, AI agents (skills &amp; AGENTS.md), guide, AGENTS.md, yarn ai:sync, ai-init, yarn add @supersoniks/concorde, |
9
9
  | Concorde repo (contributors) | , --skip-agents, --merge-agents, --force-agents">
10
- <meta name="concorde-doc-id" content="docs/_getting-started/ai-agents">
11
- <link rel="canonical" href="https://concorde.supersoniks.org/crawl/docs/_getting-started/ai-agents.html">
10
+ <meta name="concorde-doc-id" content="docs/getting-started/ai-agents">
11
+ <link rel="canonical" href="https://concorde.supersoniks.org/docs/getting-started/ai-agents">
12
+ <link rel="alternate" type="text/markdown" href="https://concorde.supersoniks.org/docs/getting-started/ai-agents.md">
12
13
  </head>
13
14
  <body>
14
15
  <header>
15
- <p><a href="../../index.html">Concorde documentation (crawl)</a> · <a href="https://concorde.supersoniks.org/#docs/_getting-started/ai-agents.md/ai-agents" rel="nofollow">interactive version</a></p>
16
+ <p><a href="/docs/index.html">Concorde documentation</a> · <a href="https://concorde.supersoniks.org/docs/getting-started/ai-agents">same URL (interactive)</a> · <a href="/llms.txt">llms.txt</a></p>
16
17
  </header>
17
18
  <main>
18
19
  <article>
19
- <p class="doc-lead" id="doc-summary"><strong>Concorde guide — AI agents (skills &amp; AGENTS.md)</strong>. Concorde ships skills, rules, and a root AGENTS.md so Cursor, JetBrains AI Assistant, and other coding agents follow framework patterns (DataProvider, decorators, short imports, scope, theme, migratio <span>Doc ID: <code>docs/_getting-started/ai-agents</code>. Keywords: Concorde, supersoniks, docs/_getting-started/ai-agents, ai-agents, AI agents (skills &amp; AGENTS.md), guide, AGENTS.md, yarn ai:sync, ai-init, yarn add @supersoniks/concorde, |
20
- | Concorde repo (contributors) | , --skip-agents, --merge-agents, --force-agents. URL: <a href="https://concorde.supersoniks.org/crawl/docs/_getting-started/ai-agents.html">https://concorde.supersoniks.org/crawl/docs/_getting-started/ai-agents.html</a>.</span></p>
20
+ <p class="doc-lead" id="doc-summary"><strong>Concorde guide — AI agents (skills &amp; AGENTS.md)</strong>. Concorde ships skills, rules, and a root AGENTS.md so Cursor, JetBrains AI Assistant, and other coding agents follow framework patterns (DataProvider, decorators, short imports, scope, theme, migratio <span>Doc ID: <code>docs/getting-started/ai-agents</code>. Keywords: Concorde, supersoniks, docs/getting-started/ai-agents, ai-agents, AI agents (skills &amp; AGENTS.md), guide, AGENTS.md, yarn ai:sync, ai-init, yarn add @supersoniks/concorde, |
21
+ | Concorde repo (contributors) | , --skip-agents, --merge-agents, --force-agents. URL: <a href="https://concorde.supersoniks.org/docs/getting-started/ai-agents">https://concorde.supersoniks.org/docs/getting-started/ai-agents</a>.</span></p>
21
22
  <h1 id="ai-agents-skills--agentsmd">AI agents (skills &amp; AGENTS.md)</h1>
22
23
  <p>Concorde ships <strong>skills</strong>, <strong>rules</strong>, and a root <strong><code>AGENTS.md</code></strong> so Cursor, JetBrains AI Assistant, and other coding agents follow framework patterns (DataProvider, decorators, short imports, scope, theme, migrations).</p>
23
- <p>On a <a href="./concorde-outside.html#concorde-outside">starter</a> project, run <code>yarn ai:sync</code> after install. On a <a href="./concorde-manual-install.html#concorde-manual-install">manual / brownfield</a> project, install Concorde first, then use <code>ai-init</code> below.</p>
24
+ <p>On a <a href="/docs/getting-started/installation">starter</a> project, run <code>yarn ai:sync</code> after install. On an existing project, install Concorde first, then use <code>ai-init</code> below.</p>
24
25
  <h2 id="dedicated-commands">Dedicated commands</h2>
25
26
  <table>
26
27
  <thead>
@@ -159,8 +160,8 @@ node node_modules/@supersoniks/concorde/scripts/ai-init.mjs
159
160
  </tbody></table>
160
161
  <h2 id="workflow">Workflow</h2>
161
162
  <ol>
162
- <li><strong>Starter project:</strong> <a href="./concorde-outside.html#concorde-outside">Installation</a> — <code>yarn ai:sync</code> is wired in the kit.</li>
163
- <li><strong>Existing / manual Vite project:</strong> <a href="./concorde-manual-install.html#concorde-manual-install">Manual installation</a>, then <strong><code>ai-init</code></strong> after <code>yarn add @supersoniks/concorde</code>.</li>
163
+ <li><strong>Starter project:</strong> <a href="/docs/getting-started/installation">Installation</a> — <code>yarn ai:sync</code> is wired in the kit.</li>
164
+ <li><strong>Existing project:</strong> run <strong><code>ai-init</code></strong> after <code>yarn add @supersoniks/concorde</code>.</li>
164
165
  <li>Commit <code>.cursor/</code> and <code>.aiassistant/</code> (and <code>AGENTS.md</code> only if you opted in / it was created) if your team shares agent settings.</li>
165
166
  <li>Re-run the same command when you bump <code>@supersoniks/concorde</code> to refresh skills from <code>node_modules/@supersoniks/concorde/ai/</code>.</li>
166
167
  <li>In Cursor, skills under <code>.cursor/skills/</code> are picked up automatically; mention a skill in chat for focused tasks (e.g. migration → <code>concorde-get-set-dp</code>).</li>
@@ -2,7 +2,7 @@
2
2
 
3
3
  Concorde ships **skills**, **rules**, and a root **`AGENTS.md`** so Cursor, JetBrains AI Assistant, and other coding agents follow framework patterns (DataProvider, decorators, short imports, scope, theme, migrations).
4
4
 
5
- On a [starter](#docs/_getting-started/concorde-outside.md/concorde-outside) project, run `yarn ai:sync` after install. On a [manual / brownfield](#docs/_getting-started/concorde-manual-install.md/concorde-manual-install) project, install Concorde first, then use `ai-init` below.
5
+ On a [starter](/docs/getting-started/installation) project, run `yarn ai:sync` after install. On an existing project, install Concorde first, then use `ai-init` below.
6
6
 
7
7
  ## Dedicated commands
8
8
 
@@ -67,8 +67,8 @@ Everything **after** `<!-- concorde-ai -->` is replaced on each `ai-init` run (i
67
67
 
68
68
  ## Workflow
69
69
 
70
- 1. **Starter project:** [Installation](#docs/_getting-started/concorde-outside.md/concorde-outside) — `yarn ai:sync` is wired in the kit.
71
- 2. **Existing / manual Vite project:** [Manual installation](#docs/_getting-started/concorde-manual-install.md/concorde-manual-install), then **`ai-init`** after `yarn add @supersoniks/concorde`.
70
+ 1. **Starter project:** [Installation](/docs/getting-started/installation) — `yarn ai:sync` is wired in the kit.
71
+ 2. **Existing project:** run **`ai-init`** after `yarn add @supersoniks/concorde`.
72
72
  3. Commit `.cursor/` and `.aiassistant/` (and `AGENTS.md` only if you opted in / it was created) if your team shares agent settings.
73
73
  4. Re-run the same command when you bump `@supersoniks/concorde` to refresh skills from `node_modules/@supersoniks/concorde/ai/`.
74
74
  5. In Cursor, skills under `.cursor/skills/` are picked up automatically; mention a skill in chat for focused tasks (e.g. migration → `concorde-get-set-dp`).
@@ -0,0 +1,27 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en" data-doc-url="https://concorde.supersoniks.org/docs/getting-started/components" data-doc-id="docs/getting-started/components">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Components — Concorde by Supersoniks</title>
7
+ <meta name="description" content="Every Concorde web component, grouped like the sidebar. Pick one to see its live demos, attributes and import path.">
8
+ <meta name="keywords" content="Concorde, supersoniks, docs/getting-started/components, components, Components, guide">
9
+ <meta name="concorde-doc-id" content="docs/getting-started/components">
10
+ <link rel="canonical" href="https://concorde.supersoniks.org/docs/getting-started/components">
11
+ <link rel="alternate" type="text/markdown" href="https://concorde.supersoniks.org/docs/getting-started/components.md">
12
+ </head>
13
+ <body>
14
+ <header>
15
+ <p><a href="/docs/index.html">Concorde documentation</a> · <a href="https://concorde.supersoniks.org/docs/getting-started/components">same URL (interactive)</a> · <a href="/llms.txt">llms.txt</a></p>
16
+ </header>
17
+ <main>
18
+ <article>
19
+ <p class="doc-lead" id="doc-summary"><strong>Concorde guide — Components</strong>. Every Concorde web component, grouped like the sidebar. Pick one to see its live demos, attributes and import path. <span>Doc ID: <code>docs/getting-started/components</code>. Keywords: Concorde, supersoniks, docs/getting-started/components, components, Components, guide. URL: <a href="https://concorde.supersoniks.org/docs/getting-started/components">https://concorde.supersoniks.org/docs/getting-started/components</a>.</span></p>
20
+ <h1 id="components">Components</h1>
21
+ <p>Every Concorde web component, grouped like the sidebar. Pick one to see its live demos, attributes and import path.</p>
22
+ <p><docs-components-index></docs-components-index></p>
23
+
24
+ </article>
25
+ </main>
26
+ </body>
27
+ </html>
@@ -0,0 +1,5 @@
1
+ # Components
2
+
3
+ Every Concorde web component, grouped like the sidebar. Pick one to see its live demos, attributes and import path.
4
+
5
+ <docs-components-index></docs-components-index>
@@ -1,24 +1,25 @@
1
1
  <!DOCTYPE html>
2
- <html lang="fr" data-crawl-url="https://concorde.supersoniks.org/crawl/docs/_getting-started/create-a-component.html" data-doc-id="docs/_getting-started/create-a-component">
2
+ <html lang="en" data-doc-url="https://concorde.supersoniks.org/docs/getting-started/create-a-component" data-doc-id="docs/getting-started/create-a-component">
3
3
  <head>
4
4
  <meta charset="UTF-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Creating components — Concorde</title>
6
+ <title>Creating components — Concorde by Supersoniks</title>
7
7
  <meta name="description" content="&gt; New app components: start with My first component and Data flow. The Subscriber mixin below is legacy.">
8
- <meta name="keywords" content="Concorde, supersoniks, docs/_getting-started/create-a-component, create-a-component, Creating components, guide, Subscriber, core, /components/destination/, /components/atoms, example.ts, ${this.text}">
9
- <meta name="concorde-doc-id" content="docs/_getting-started/create-a-component">
10
- <link rel="canonical" href="https://concorde.supersoniks.org/crawl/docs/_getting-started/create-a-component.html">
8
+ <meta name="keywords" content="Concorde, supersoniks, docs/getting-started/create-a-component, create-a-component, Creating components, guide, Subscriber, core, /components/destination/, /components/atoms, example.ts, ${this.text}">
9
+ <meta name="concorde-doc-id" content="docs/getting-started/create-a-component">
10
+ <link rel="canonical" href="https://concorde.supersoniks.org/docs/getting-started/create-a-component">
11
+ <link rel="alternate" type="text/markdown" href="https://concorde.supersoniks.org/docs/getting-started/create-a-component.md">
11
12
  </head>
12
13
  <body>
13
14
  <header>
14
- <p><a href="../../index.html">Concorde documentation (crawl)</a> · <a href="https://concorde.supersoniks.org/#docs/_getting-started/create-a-component.md/create-a-component" rel="nofollow">interactive version</a></p>
15
+ <p><a href="/docs/index.html">Concorde documentation</a> · <a href="https://concorde.supersoniks.org/docs/getting-started/create-a-component">same URL (interactive)</a> · <a href="/llms.txt">llms.txt</a></p>
15
16
  </header>
16
17
  <main>
17
18
  <article>
18
- <p class="doc-lead" id="doc-summary"><strong>Concorde guide — Creating components</strong>. &gt; New app components: start with My first component and Data flow. The Subscriber mixin below is legacy. <span>Doc ID: <code>docs/_getting-started/create-a-component</code>. Keywords: Concorde, supersoniks, docs/_getting-started/create-a-component, create-a-component, Creating components, guide, Subscriber, core, /components/destination/, /components/atoms, example.ts, ${this.text}. URL: <a href="https://concorde.supersoniks.org/crawl/docs/_getting-started/create-a-component.html">https://concorde.supersoniks.org/crawl/docs/_getting-started/create-a-component.html</a>.</span></p>
19
+ <p class="doc-lead" id="doc-summary"><strong>Concorde guide — Creating components</strong>. &gt; New app components: start with My first component and Data flow. The Subscriber mixin below is legacy. <span>Doc ID: <code>docs/getting-started/create-a-component</code>. Keywords: Concorde, supersoniks, docs/getting-started/create-a-component, create-a-component, Creating components, guide, Subscriber, core, /components/destination/, /components/atoms, example.ts, ${this.text}. URL: <a href="https://concorde.supersoniks.org/docs/getting-started/create-a-component">https://concorde.supersoniks.org/docs/getting-started/create-a-component</a>.</span></p>
19
20
  <h1 id="creating-components">Creating components</h1>
20
21
  <blockquote>
21
- <p><strong>New app components:</strong> start with <a href="./my-first-component.html#my-first-component">My first component</a> and <a href="../_core-concept/dataFlow.html#dataFlow">Data flow</a>. The <code>Subscriber</code> mixin below is <a href="../_core-concept/subscriber.html#subscriber">legacy</a>.</p>
22
+ <p><strong>New app components:</strong> start with <a href="/docs/getting-started/my-first-component">My first component</a> and <a href="/docs/getting-started/dataFlow">Data flow</a>. The <code>Subscriber</code> mixin below is legacy.</p>
22
23
  </blockquote>
23
24
  <h2 id="where-to-put-it">Where to put it?</h2>
24
25
  <p>In this document, we consider the src directory of the project as the root.<br>
@@ -63,11 +64,7 @@ export class SonicComponent extends LitElement {
63
64
  }
64
65
  }
65
66
  </code></pre>
66
- <p>Regarding <code>Subscriber</code>, see:</p>
67
- <ul>
68
- <li><a href="../_core-concept/subscriber.html#subscriber">🔔 Subscriber</a></li>
69
- <li><a href="./pubsub.html#pubsub">🥨 Sharing Data</a></li>
70
- </ul>
67
+ <p>Regarding data sharing, see <a href="/docs/getting-started/dataFlow">Data flow</a>.</p>
71
68
  <h3 id="naming-the-component">Naming the Component</h3>
72
69
  <p>The class name is not necessarily important. However, it is important to <strong>give it a component name prefixed with &quot;sonic&quot;</strong> (or a prefix of your own) using the dedicated metadata already present in the copied document. For example, a button component would be named as follows:</p>
73
70
  <pre><code class="language-typescript">@customElement(&quot;sonic-button&quot;)
@@ -78,7 +75,7 @@ For example, for a &quot;title&quot; component in the &quot;event&quot; destinat
78
75
  </code></pre>
79
76
  <h2 id="modifying-it">Modifying It</h2>
80
77
  <h4 id="creating-reactive-properties-and-modifying-the-render-function">Creating Reactive Properties and Modifying the Render Function</h4>
81
- <p>To do this, study the functioning of <a href="https://lit.dev">https://lit.dev</a> and also refer to <a href="../_core-concept/subscriber.html#subscriber">Subscriber</a>.</p>
78
+ <p>To do this, study the functioning of <a href="https://lit.dev">https://lit.dev</a> and also refer to <a href="/docs/getting-started/dataFlow">Data flow</a>.</p>
82
79
  <h4 id="html-structure-of-a-component">HTML Structure of a Component</h4>
83
80
  <p>The HTML structure of a component should remain as simple as possible.</p>
84
81
  <p>Ideally, there should be only one additional level of elements in addition to slots.</p>
@@ -1,6 +1,6 @@
1
1
  # Creating components
2
2
 
3
- > **New app components:** start with [My first component](#docs/_getting-started/my-first-component.md/my-first-component) and [Data flow](#docs/_core-concept/dataFlow.md/dataFlow). The `Subscriber` mixin below is [legacy](#docs/_core-concept/subscriber.md/subscriber).
3
+ > **New app components:** start with [My first component](/docs/getting-started/my-first-component) and [Data flow](/docs/getting-started/dataFlow). The `Subscriber` mixin below is legacy.
4
4
 
5
5
  ## Where to put it?
6
6
 
@@ -63,10 +63,7 @@ export class SonicComponent extends LitElement {
63
63
  </template>
64
64
  </sonic-code>
65
65
 
66
- Regarding `Subscriber`, see:
67
-
68
- - [🔔 Subscriber](#docs/_core-concept/subscriber.md/subscriber)
69
- - [🥨 Sharing Data](#docs/_getting-started/pubsub.md/pubsub)
66
+ Regarding data sharing, see [Data flow](/docs/getting-started/dataFlow).
70
67
 
71
68
  ### Naming the Component
72
69
 
@@ -94,7 +91,7 @@ For example, for a "title" component in the "event" destination, the name would
94
91
 
95
92
  #### Creating Reactive Properties and Modifying the Render Function
96
93
 
97
- To do this, study the functioning of https://lit.dev and also refer to [Subscriber](#docs/_core-concept/subscriber.md/subscriber).
94
+ To do this, study the functioning of https://lit.dev and also refer to [Data flow](/docs/getting-started/dataFlow).
98
95
 
99
96
  #### HTML Structure of a Component
100
97
 
@@ -1,23 +1,24 @@
1
1
  <!DOCTYPE html>
2
- <html lang="fr" data-crawl-url="https://concorde.supersoniks.org/crawl/docs/_core-concept/dataFlow.html" data-doc-id="docs/_core-concept/dataFlow">
2
+ <html lang="en" data-doc-url="https://concorde.supersoniks.org/docs/getting-started/dataFlow" data-doc-id="docs/getting-started/dataFlow">
3
3
  <head>
4
4
  <meta charset="UTF-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Data flow — Concorde</title>
7
- <meta name="description" content="Recommended patterns for new Concorde apps (Lit + TypeScript). Under the hood, data lives in a DataProvider store (legacy Publisher API: Legacy: Sharing data).">
8
- <meta name="keywords" content="Concorde, supersoniks, docs/_core-concept/dataFlow, dataFlow, Data flow, concept, DataProvider, get, set, dp, DataProviderKey, sub(key), @subscribe, @state, @ancestorAttribute">
9
- <meta name="concorde-doc-id" content="docs/_core-concept/dataFlow">
10
- <link rel="canonical" href="https://concorde.supersoniks.org/crawl/docs/_core-concept/dataFlow.html">
6
+ <title>Data flow — Concorde by Supersoniks</title>
7
+ <meta name="description" content="Recommended patterns for new Concorde apps (Lit + TypeScript). Under the hood, data lives in a DataProvider store.">
8
+ <meta name="keywords" content="Concorde, supersoniks, docs/getting-started/dataFlow, dataFlow, Data flow, guide, DataProvider, get, set, dp, DataProviderKey, sub(key), @subscribe, @state, @ancestorAttribute">
9
+ <meta name="concorde-doc-id" content="docs/getting-started/dataFlow">
10
+ <link rel="canonical" href="https://concorde.supersoniks.org/docs/getting-started/dataFlow">
11
+ <link rel="alternate" type="text/markdown" href="https://concorde.supersoniks.org/docs/getting-started/dataFlow.md">
11
12
  </head>
12
13
  <body>
13
14
  <header>
14
- <p><a href="../../index.html">Concorde documentation (crawl)</a> · <a href="https://concorde.supersoniks.org/#docs/_core-concept/dataFlow.md/dataFlow" rel="nofollow">interactive version</a></p>
15
+ <p><a href="/docs/index.html">Concorde documentation</a> · <a href="https://concorde.supersoniks.org/docs/getting-started/dataFlow">same URL (interactive)</a> · <a href="/llms.txt">llms.txt</a></p>
15
16
  </header>
16
17
  <main>
17
18
  <article>
18
- <p class="doc-lead" id="doc-summary"><strong>Concorde concept — Data flow</strong>. Recommended patterns for new Concorde apps (Lit + TypeScript). Under the hood, data lives in a DataProvider store (legacy Publisher API: Legacy: Sharing data). <span>Doc ID: <code>docs/_core-concept/dataFlow</code>. Keywords: Concorde, supersoniks, docs/_core-concept/dataFlow, dataFlow, Data flow, concept, DataProvider, get, set, dp, DataProviderKey, sub(key), @subscribe, @state, @ancestorAttribute. URL: <a href="https://concorde.supersoniks.org/crawl/docs/_core-concept/dataFlow.html">https://concorde.supersoniks.org/crawl/docs/_core-concept/dataFlow.html</a>.</span></p>
19
+ <p class="doc-lead" id="doc-summary"><strong>Concorde guide — Data flow</strong>. Recommended patterns for new Concorde apps (Lit + TypeScript). Under the hood, data lives in a DataProvider store. <span>Doc ID: <code>docs/getting-started/dataFlow</code>. Keywords: Concorde, supersoniks, docs/getting-started/dataFlow, dataFlow, Data flow, guide, DataProvider, get, set, dp, DataProviderKey, sub(key), @subscribe, @state, @ancestorAttribute. URL: <a href="https://concorde.supersoniks.org/docs/getting-started/dataFlow">https://concorde.supersoniks.org/docs/getting-started/dataFlow</a>.</span></p>
19
20
  <h1 id="data-flow">Data flow</h1>
20
- <p>Recommended patterns for new Concorde apps (Lit + TypeScript). Under the hood, data lives in a <strong>DataProvider</strong> store (legacy <strong>Publisher</strong> API: <a href="../_getting-started/pubsub.html#pubsub">Legacy: Sharing data</a>).</p>
21
+ <p>Recommended patterns for new Concorde apps (Lit + TypeScript). Under the hood, data lives in a <strong>DataProvider</strong> store.</p>
21
22
  <h2 id="quick-map">Quick map</h2>
22
23
  <table>
23
24
  <thead>
@@ -68,11 +69,11 @@
68
69
  </tr>
69
70
  <tr>
70
71
  <td>Derived / aggregate (JSONata)</td>
71
- <td><code>derive()</code> or <code>sonic-jsonata</code> — <a href="../../core/components/functional/jsonata/jsonata.html#jsonata">Jsonata</a></td>
72
+ <td><code>derive()</code> or <code>sonic-jsonata</code> — <a href="/core/components/functional/jsonata">Jsonata</a></td>
72
73
  </tr>
73
74
  <tr>
74
75
  <td>Offline doc demos</td>
75
- <td><code>serviceURL=&quot;/docs-mock-api&quot;</code> — <a href="../_misc/docs-mock-api.html#docs-mock-api">Local API demos</a></td>
76
+ <td><code>serviceURL=&quot;/docs-mock-api&quot;</code> — <a href="/docs/misc/docs-mock-api">Local API demos</a></td>
76
77
  </tr>
77
78
  </tbody></table>
78
79
  <p>Skill: <code>concorde-get-set-dp</code> in the package <code>ai/</code> folder.</p>
@@ -86,8 +87,8 @@ set(cartKey, { items: [] });
86
87
  dp(cartKey.items).set([&quot;a&quot;, &quot;b&quot;]);
87
88
  get(cartKey);
88
89
  </code></pre>
89
- <p>Dynamic paths (<code>users.${userId}</code>) → decorators or <code>sub()</code> — not <code>get(&quot;users.${id}&quot;)</code> in imperative code. Resolution rules: <a href="../_misc/dynamic-path.html#dynamic-path">Dynamic path placeholders</a>.</p>
90
- <p><a href="../_misc/dataProviderKey.html#dataProviderKey">DataProviderKey</a></p>
90
+ <p>Dynamic paths (<code>users.${userId}</code>) → decorators or <code>sub()</code> — not <code>get(&quot;users.${id}&quot;)</code> in imperative code. Resolution rules: <a href="/docs/misc/dynamic-path">Dynamic path placeholders</a>.</p>
91
+ <p><a href="/docs/misc/dataProviderKey">DataProviderKey</a></p>
91
92
  <h2 id="decorators">Decorators</h2>
92
93
  <table>
93
94
  <thead>
@@ -98,7 +99,7 @@ get(cartKey);
98
99
  </thead>
99
100
  <tbody><tr>
100
101
  <td><code>@subscribe</code></td>
101
- <td>Read-only property from store — <a href="../_getting-started/my-first-component.html#my-first-component">data configuration</a> (type + key + scope)</td>
102
+ <td>Read-only property from store — <a href="/docs/getting-started/my-first-component">data configuration</a> (type + key + scope)</td>
102
103
  </tr>
103
104
  <tr>
104
105
  <td><code>@publish</code></td>
@@ -125,14 +126,14 @@ get(cartKey);
125
126
  <td>HTTP PUT / PATCH into <code>ApiResult&amp;lt;T&amp;gt;</code></td>
126
127
  </tr>
127
128
  </tbody></table>
128
- <p>Walkthrough: <a href="../_getting-started/my-first-component.html#my-first-component">My first component</a></p>
129
+ <p>Walkthrough: <a href="/docs/getting-started/my-first-component">My first component</a></p>
129
130
  <h2 id="http-and-lists">HTTP and lists</h2>
130
131
  <ul>
131
- <li><a href="../_decorators/get.html#get">@get</a> — single GET on a component</li>
132
- <li><a href="../_decorators/post.html#post">@post</a> — POST with body read from a <code>DataProviderKey</code></li>
133
- <li><a href="../_decorators/put.html#put">@put</a> · <a href="../_decorators/patch.html#patch">@patch</a> — PUT / PATCH (same options as <code>@post</code>)</li>
134
- <li><a href="../../core/components/functional/list/list.html#list">List</a> — <code>fetch</code> + <code>key=&quot;data&quot;</code> + <code>/docs-mock-api/api/users</code></li>
135
- <li><a href="../../core/components/functional/queue/queue.html#queue">Queue</a> — lazy <code>offset=$offset&amp;per_page=$limit</code> + optional <code>dataFilterProvider</code> (form → query)</li>
132
+ <li><a href="/docs/decorators/get">@get</a> — single GET on a component</li>
133
+ <li><a href="/docs/decorators/post">@post</a> — POST with body read from a <code>DataProviderKey</code></li>
134
+ <li><a href="/docs/decorators/put">@put</a> · <a href="/docs/decorators/patch">@patch</a> — PUT / PATCH (same options as <code>@post</code>)</li>
135
+ <li><a href="/core/components/functional/list">List</a> — <code>fetch</code> + <code>key=&quot;data&quot;</code> + <code>/docs-mock-api/api/users</code></li>
136
+ <li><a href="/core/components/functional/queue">Queue</a> — lazy <code>offset=$offset&amp;per_page=$limit</code> + optional <code>dataFilterProvider</code> (form → query)</li>
136
137
  </ul>
137
138
  <h2 id="starter-kit">Starter kit</h2>
138
139
  <pre><code class="language-bash">npx @supersoniks/create-concorde-ts-starter my-app
@@ -142,8 +143,8 @@ get(cartKey);
142
143
  <p>Use when you need <strong>client-side aggregations</strong> (groupby, top N, chart shapes) from existing DataProviders — without inline app JS in SDUI.</p>
143
144
  <ul>
144
145
  <li>Primitive: <code>derive({ inputs, compute, output, variables? })</code> from <code>@supersoniks/concorde/utils</code> (read-only output, debounce, generation, cycle detection, <code>{output}/_state_</code>).</li>
145
- <li>SDUI adapter: <a href="../../core/components/functional/jsonata/jsonata.html#jsonata"><code>sonic-jsonata</code></a> (<code>inputProvider</code> → <code>expression</code> → <code>outputProvider</code>, optional <code>formDataProvider</code>).</li>
146
- <li>vs <a href="../../core/components/functional/mix/mix.html#mix"><code>sonic-mix</code></a>: mix composes bidirectionally; jsonata <strong>computes</strong> unidirectionally.</li>
146
+ <li>SDUI adapter: <a href="/core/components/functional/jsonata"><code>sonic-jsonata</code></a> (<code>inputProvider</code> → <code>expression</code> → <code>outputProvider</code>, optional <code>formDataProvider</code>).</li>
147
+ <li>vs <a href="/core/components/functional/mix"><code>sonic-mix</code></a>: mix composes bidirectionally; jsonata <strong>computes</strong> unidirectionally.</li>
147
148
  </ul>
148
149
  <h2 id="legacy-integration">Legacy integration</h2>
149
150
  <table>
@@ -154,20 +155,16 @@ get(cartKey);
154
155
  </tr>
155
156
  </thead>
156
157
  <tbody><tr>
157
- <td><code>Subscriber</code> / <code>Fetcher</code> mixins on app code</td>
158
- <td><a href="./subscriber.html#subscriber">Legacy: Subscriber mixin</a>, <a href="../_getting-started/my-first-subscriber.html#my-first-subscriber">Legacy: My first subscriber</a></td>
159
- </tr>
160
- <tr>
161
158
  <td><code>data-bind</code> HTML (plain HTML hosts)</td>
162
- <td><a href="../_misc/html-integration.html#html-integration">HTML integration</a> — doc demos use Lit in <code>src/docs/example/</code></td>
159
+ <td><a href="/docs/misc/html-integration">HTML integration</a> — doc demos use Lit in <code>src/docs/example/</code></td>
163
160
  </tr>
164
161
  <tr>
165
162
  <td><code>@onAssign</code></td>
166
- <td><a href="../_decorators/on-assign.html#on-assign">@onAssign</a> (prefer <code>@handle</code>)</td>
163
+ <td><a href="/docs/decorators/on-assign">@onAssign</a> (prefer <code>@handle</code>)</td>
167
164
  </tr>
168
165
  <tr>
169
166
  <td><code>sonic-fetch</code> alone</td>
170
- <td><a href="../../core/components/functional/fetch/fetch.html#fetch">Fetch</a></td>
167
+ <td><a href="/core/components/functional/fetch">Fetch</a></td>
171
168
  </tr>
172
169
  </tbody></table>
173
170
 
@@ -1,6 +1,6 @@
1
1
  # Data flow
2
2
 
3
- Recommended patterns for new Concorde apps (Lit + TypeScript). Under the hood, data lives in a **DataProvider** store (legacy **Publisher** API: [Legacy: Sharing data](#docs/_getting-started/pubsub.md/pubsub)).
3
+ Recommended patterns for new Concorde apps (Lit + TypeScript). Under the hood, data lives in a **DataProvider** store.
4
4
 
5
5
  ## Quick map
6
6
 
@@ -16,8 +16,8 @@ Recommended patterns for new Concorde apps (Lit + TypeScript). Under the hood, d
16
16
  | HTTP POST (body from store) | `@post` + `Endpoint` + body `DataProviderKey` |
17
17
  | HTTP PUT / PATCH (body from store) | `@put` / `@patch` — same model as `@post` |
18
18
  | Forms | `formDataProvider` + `name` on fields (no Subscriber on form elements) |
19
- | Derived / aggregate (JSONata) | `derive()` or `sonic-jsonata` — [Jsonata](#core/components/functional/jsonata/jsonata.md/jsonata) |
20
- | Offline doc demos | `serviceURL="/docs-mock-api"` — [Local API demos](#docs/_misc/docs-mock-api.md/docs-mock-api) |
19
+ | Derived / aggregate (JSONata) | `derive()` or `sonic-jsonata` — [Jsonata](/core/components/functional/jsonata) |
20
+ | Offline doc demos | `serviceURL="/docs-mock-api"` — [Local API demos](/docs/misc/docs-mock-api) |
21
21
 
22
22
  Skill: `concorde-get-set-dp` in the package `ai/` folder.
23
23
 
@@ -36,15 +36,15 @@ get(cartKey);
36
36
  </template>
37
37
  </sonic-code>
38
38
 
39
- Dynamic paths (`users.${userId}`) → decorators or `sub()` — not `get("users.${id}")` in imperative code. Resolution rules: [Dynamic path placeholders](#docs/_misc/dynamic-path.md/dynamic-path).
39
+ Dynamic paths (`users.${userId}`) → decorators or `sub()` — not `get("users.${id}")` in imperative code. Resolution rules: [Dynamic path placeholders](/docs/misc/dynamic-path).
40
40
 
41
- [DataProviderKey](#docs/_misc/dataProviderKey.md/dataProviderKey)
41
+ [DataProviderKey](/docs/misc/dataProviderKey)
42
42
 
43
43
  ## Decorators
44
44
 
45
45
  | Decorator | Role |
46
46
  |-----------|------|
47
- | `@subscribe` | Read-only property from store — [data configuration](#docs/_getting-started/my-first-component.md/my-first-component) (type + key + scope) |
47
+ | `@subscribe` | Read-only property from store — [data configuration](/docs/getting-started/my-first-component) (type + key + scope) |
48
48
  | `@publish` | Push property writes to store |
49
49
  | `@handle` | Method called on assignment |
50
50
  | `@ancestorAttribute` | Copy ancestor HTML attribute onto property |
@@ -52,15 +52,15 @@ Dynamic paths (`users.${userId}`) → decorators or `sub()` — not `get("users.
52
52
  | `@post` | HTTP POST into `ApiResult&lt;T&gt;` (body from a publisher) |
53
53
  | `@put` / `@patch` | HTTP PUT / PATCH into `ApiResult&lt;T&gt;` |
54
54
 
55
- Walkthrough: [My first component](#docs/_getting-started/my-first-component.md/my-first-component)
55
+ Walkthrough: [My first component](/docs/getting-started/my-first-component)
56
56
 
57
57
  ## HTTP and lists
58
58
 
59
- - [@get](#docs/_decorators/get.md/get) — single GET on a component
60
- - [@post](#docs/_decorators/post.md/post) — POST with body read from a `DataProviderKey`
61
- - [@put](#docs/_decorators/put.md/put) · [@patch](#docs/_decorators/patch.md/patch) — PUT / PATCH (same options as `@post`)
62
- - [List](#core/components/functional/list/list.md/list) — `fetch` + `key="data"` + `/docs-mock-api/api/users`
63
- - [Queue](#core/components/functional/queue/queue.md/queue) — lazy `offset=$offset&per_page=$limit` + optional `dataFilterProvider` (form → query)
59
+ - [@get](/docs/decorators/get) — single GET on a component
60
+ - [@post](/docs/decorators/post) — POST with body read from a `DataProviderKey`
61
+ - [@put](/docs/decorators/put) · [@patch](/docs/decorators/patch) — PUT / PATCH (same options as `@post`)
62
+ - [List](/core/components/functional/list) — `fetch` + `key="data"` + `/docs-mock-api/api/users`
63
+ - [Queue](/core/components/functional/queue) — lazy `offset=$offset&per_page=$limit` + optional `dataFilterProvider` (form → query)
64
64
 
65
65
  ## Starter kit
66
66
 
@@ -75,14 +75,13 @@ Interactive routes mirror these patterns (`/concepts/*`, `/demo/*`).
75
75
  Use when you need **client-side aggregations** (groupby, top N, chart shapes) from existing DataProviders — without inline app JS in SDUI.
76
76
 
77
77
  - Primitive: `derive({ inputs, compute, output, variables? })` from `@supersoniks/concorde/utils` (read-only output, debounce, generation, cycle detection, `{output}/_state_`).
78
- - SDUI adapter: [`sonic-jsonata`](#core/components/functional/jsonata/jsonata.md/jsonata) (`inputProvider` → `expression` → `outputProvider`, optional `formDataProvider`).
79
- - vs [`sonic-mix`](#core/components/functional/mix/mix.md/mix): mix composes bidirectionally; jsonata **computes** unidirectionally.
78
+ - SDUI adapter: [`sonic-jsonata`](/core/components/functional/jsonata) (`inputProvider` → `expression` → `outputProvider`, optional `formDataProvider`).
79
+ - vs [`sonic-mix`](/core/components/functional/mix): mix composes bidirectionally; jsonata **computes** unidirectionally.
80
80
 
81
81
  ## Legacy integration
82
82
 
83
83
  | Topic | Page |
84
84
  |-------|------|
85
- | `Subscriber` / `Fetcher` mixins on app code | [Legacy: Subscriber mixin](#docs/_core-concept/subscriber.md/subscriber), [Legacy: My first subscriber](#docs/_getting-started/my-first-subscriber.md/my-first-subscriber) |
86
- | `data-bind` HTML (plain HTML hosts) | [HTML integration](#docs/_misc/html-integration.md/html-integration) — doc demos use Lit in `src/docs/example/` |
87
- | `@onAssign` | [@onAssign](#docs/_decorators/on-assign.md/on-assign) (prefer `@handle`) |
88
- | `sonic-fetch` alone | [Fetch](#core/components/functional/fetch/fetch.md/fetch) |
85
+ | `data-bind` HTML (plain HTML hosts) | [HTML integration](/docs/misc/html-integration) — doc demos use Lit in `src/docs/example/` |
86
+ | `@onAssign` | [@onAssign](/docs/decorators/on-assign) (prefer `@handle`) |
87
+ | `sonic-fetch` alone | [Fetch](/core/components/functional/fetch) |
@@ -0,0 +1,69 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en" data-doc-url="https://concorde.supersoniks.org/docs/getting-started/installation" data-doc-id="docs/getting-started/installation">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Installation — Concorde by Supersoniks</title>
7
+ <meta name="description" content="Start a new project from the official starter. It sets up Vite, TypeScript, Lit, Tailwind and Concorde in one command.">
8
+ <meta name="keywords" content="Concorde, supersoniks, docs/getting-started/installation, installation, Installation, guide, npx concorde enable-short-paths, yarn ai:sync, yarn dev, tsc --noEmit, document.querySelector, renderRoot">
9
+ <meta name="concorde-doc-id" content="docs/getting-started/installation">
10
+ <link rel="canonical" href="https://concorde.supersoniks.org/docs/getting-started/installation">
11
+ <link rel="alternate" type="text/markdown" href="https://concorde.supersoniks.org/docs/getting-started/installation.md">
12
+ </head>
13
+ <body>
14
+ <header>
15
+ <p><a href="/docs/index.html">Concorde documentation</a> · <a href="https://concorde.supersoniks.org/docs/getting-started/installation">same URL (interactive)</a> · <a href="/llms.txt">llms.txt</a></p>
16
+ </header>
17
+ <main>
18
+ <article>
19
+ <p class="doc-lead" id="doc-summary"><strong>Concorde guide — Installation</strong>. Start a new project from the official starter. It sets up Vite, TypeScript, Lit, Tailwind and Concorde in one command. <span>Doc ID: <code>docs/getting-started/installation</code>. Keywords: Concorde, supersoniks, docs/getting-started/installation, installation, Installation, guide, npx concorde enable-short-paths, yarn ai:sync, yarn dev, tsc --noEmit, document.querySelector, renderRoot. URL: <a href="https://concorde.supersoniks.org/docs/getting-started/installation">https://concorde.supersoniks.org/docs/getting-started/installation</a>.</span></p>
20
+ <h1 id="installation">Installation</h1>
21
+ <p>Start a new project from the official starter. It sets up Vite, TypeScript, Lit, Tailwind and Concorde in one command.</p>
22
+ <h2 id="use-the-starter">Use the starter</h2>
23
+ <pre><code class="language-shell">npx @supersoniks/create-concorde-ts-starter my-app
24
+ cd my-app
25
+ yarn install
26
+ yarn dev --host
27
+ </code></pre>
28
+ <p>The project includes:</p>
29
+ <ul>
30
+ <li>an example component to copy from</li>
31
+ <li><code>npx concorde enable-short-paths</code> for short import paths</li>
32
+ <li><code>yarn ai:sync</code> for <a href="/docs/getting-started/ai-agents">AI agent skills</a></li>
33
+ </ul>
34
+ <p>Package: <a href="https://www.npmjs.com/package/@supersoniks/create-concorde-ts-starter">create-concorde-ts-starter</a>.</p>
35
+ <h2 id="stack">Stack</h2>
36
+ <table>
37
+ <thead>
38
+ <tr>
39
+ <th>Tool</th>
40
+ <th>Role</th>
41
+ </tr>
42
+ </thead>
43
+ <tbody><tr>
44
+ <td><a href="https://lit.dev">Lit</a></td>
45
+ <td>Base class, templates and reactive properties for web components</td>
46
+ </tr>
47
+ <tr>
48
+ <td><a href="https://www.typescriptlang.org">TypeScript</a></td>
49
+ <td>Decorators and typed store paths</td>
50
+ </tr>
51
+ <tr>
52
+ <td><a href="https://vite.dev">Vite</a></td>
53
+ <td>Dev server and build</td>
54
+ </tr>
55
+ <tr>
56
+ <td><a href="https://tailwindcss.com">Tailwind</a></td>
57
+ <td>Optional, layout in your components. Concorde components ship their own styles, driven by <a href="/docs/getting-started/theming">theme</a> variables</td>
58
+ </tr>
59
+ </tbody></table>
60
+ <h2 id="gotchas">Gotchas</h2>
61
+ <ul>
62
+ <li><code>yarn dev</code> does not type-check. Run <code>tsc --noEmit</code> or a production build to catch type errors.</li>
63
+ <li>Scripts that query the global document (<code>document.querySelector</code>, jQuery plugins, icon replacers) cannot see inside a shadow root. Query from the component&#39;s <code>renderRoot</code>, or pass the element as slotted content.</li>
64
+ </ul>
65
+
66
+ </article>
67
+ </main>
68
+ </body>
69
+ </html>
@@ -0,0 +1,36 @@
1
+ # Installation
2
+
3
+ Start a new project from the official starter. It sets up Vite, TypeScript, Lit, Tailwind and Concorde in one command.
4
+
5
+ ## Use the starter
6
+
7
+ <sonic-code language="shell">
8
+ <template>
9
+ npx @supersoniks/create-concorde-ts-starter my-app
10
+ cd my-app
11
+ yarn install
12
+ yarn dev --host
13
+ </template>
14
+ </sonic-code>
15
+
16
+ The project includes:
17
+
18
+ - an example component to copy from
19
+ - `npx concorde enable-short-paths` for short import paths
20
+ - `yarn ai:sync` for [AI agent skills](/docs/getting-started/ai-agents)
21
+
22
+ Package: [create-concorde-ts-starter](https://www.npmjs.com/package/@supersoniks/create-concorde-ts-starter).
23
+
24
+ ## Stack
25
+
26
+ | Tool | Role |
27
+ |------|------|
28
+ | [Lit](https://lit.dev) | Base class, templates and reactive properties for web components |
29
+ | [TypeScript](https://www.typescriptlang.org) | Decorators and typed store paths |
30
+ | [Vite](https://vite.dev) | Dev server and build |
31
+ | [Tailwind](https://tailwindcss.com) | Optional, layout in your components. Concorde components ship their own styles, driven by [theme](/docs/getting-started/theming) variables |
32
+
33
+ ## Gotchas
34
+
35
+ - `yarn dev` does not type-check. Run `tsc --noEmit` or a production build to catch type errors.
36
+ - Scripts that query the global document (`document.querySelector`, jQuery plugins, icon replacers) cannot see inside a shadow root. Query from the component's `renderRoot`, or pass the element as slotted content.