@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
@@ -1,113 +1,73 @@
1
1
  import { html, LitElement } from "lit";
2
2
  import { customElement } from "lit/decorators.js";
3
- import {
4
- DOCS_MOCK_GEO_SERVICE,
5
- DOCS_MOCK_REQRES_SERVICE,
6
- } from "../mock-api/urls";
7
- import { docsQueueUsersFilterKey } from "./docs-provider-keys";
3
+ import { DataProviderKey } from "@supersoniks/concorde/dataProviderKey";
4
+ import { DOCS_MOCK_API_BASE } from "../mock-api/urls";
5
+ import type { DocsFlight } from "../mock-api/flights";
8
6
  import { tailwind } from "../tailwind";
9
7
 
10
8
  import "../../core/components/functional/queue/queue";
11
- import "../../core/components/ui/image/image";
9
+ import "../../core/components/ui/badge/badge";
12
10
  import "../../core/components/ui/form/input/input";
13
11
 
14
- type CommuneRow = { nom: string; code?: string };
12
+ const flightFilter = new DataProviderKey<{ q?: string }>("queueFlightFilter");
15
13
 
16
- type UserRow = {
17
- first_name: string;
18
- last_name: string;
19
- email: string;
20
- avatar: string;
21
- };
22
-
23
- const userRow = ({ first_name, last_name, email, avatar }: UserRow) =>
24
- html`<div class="flex items-center gap-3 rounded-md p-2 hover:bg-neutral-50">
25
- <sonic-image
26
- src=${avatar}
27
- rounded="md"
28
- ratio="1/1"
29
- class="w-12 block"
30
- ></sonic-image>
31
- <div>
32
- <div>${first_name} <span class="font-bold">${last_name}</span></div>
33
- <div class="text-sm text-neutral-500">${email}</div>
34
- </div>
14
+ const flightRow = ({ time, code, city, airport, gate, status }: DocsFlight) =>
15
+ html`<div
16
+ class="grid grid-cols-[3.5rem_4.5rem_1fr_3rem_auto] items-center gap-3 border-0 border-b border-dotted border-neutral-300 py-2 text-sm"
17
+ >
18
+ <span class="font-mono">${time}</span>
19
+ <span class="font-mono">${code}</span>
20
+ <span>${city} <span class="text-neutral-500">(${airport})</span></span>
21
+ <span class="font-mono text-neutral-500">${gate}</span>
22
+ <sonic-badge size="xs">${status}</sonic-badge>
35
23
  </div>`;
36
24
 
37
- /** Communes — one batch (`limit` only, no `$offset` in the expression). */
25
+ /** Lazy load: batches of 4 departures, the next one loads on scroll. */
38
26
  @customElement("docs-queue-geo-demo")
39
27
  export class DocsQueueGeoDemo extends LitElement {
40
- private items = (item: CommuneRow) =>
41
- html`<div class="rounded bg-neutral-100 p-2 text-sm">
42
- <div class="font-medium">${item.nom}</div>
43
- ${item.code
44
- ? html`<div class="text-neutral-500">${item.code}</div>`
45
- : null}
46
- </div>`;
28
+ static styles = [tailwind];
47
29
 
48
30
  render() {
49
31
  return html`
50
32
  <sonic-queue
51
- class="grid grid-cols-3 gap-3"
52
- dataProviderExpression="communes?limit=$limit"
53
- limit="6"
54
- serviceURL=${DOCS_MOCK_GEO_SERVICE}
55
- .items=${this.items}
56
- debug
33
+ serviceURL=${DOCS_MOCK_API_BASE}
34
+ dataProviderExpression="flights?offset=$offset&limit=$limit&direction=departures"
35
+ key="flights"
36
+ limit="4"
37
+ class="block max-h-48 overflow-y-auto"
38
+ .items=${flightRow}
57
39
  ></sonic-queue>
58
40
  `;
59
41
  }
60
42
  }
61
43
 
62
- /**
63
- * Users — lazy load + search (`q`), aligned with create-concorde-ts-starter demo-queue.
64
- * Mock: `filterDocsUsers` + `paginateUsers` in `src/docs/mock-api/`.
65
- */
44
+ /** Filter: the `q` field is added to every request; a change reloads from offset 0. */
66
45
  @customElement("docs-queue-users-demo")
67
46
  export class DocsQueueUsersDemo extends LitElement {
68
47
  static styles = [tailwind];
69
48
 
70
- private items = userRow;
71
-
72
- private separator = () => html`
73
- <div class="my-1 border-t border-dashed border-neutral-200"></div>
74
- `;
75
-
76
49
  private noItems = () => html`
77
- <p class="p-4 text-center text-sm italic text-neutral-500">
78
- No users — try another search (e.g. <code>zzz</code>)
79
- </p>
50
+ <p class="p-4 text-center text-sm text-neutral-500">No flight found.</p>
80
51
  `;
81
52
 
82
53
  render() {
83
54
  return html`
84
- <div formDataProvider=${docsQueueUsersFilterKey.path} class="mb-3 max-w-md">
85
- <sonic-input
86
- name="q"
87
- type="search"
88
- label="Search"
89
- placeholder="First name, last name, or email"
90
- size="sm"
91
- ></sonic-input>
92
- </div>
93
- <p class="mb-3 text-sm text-neutral-500">
94
- Typing updates <code>?q=…</code> on each request. Scroll inside the box
95
- to load the next batch (<code>offset</code> += <code>limit</code>).
96
- </p>
55
+ <sonic-input
56
+ formDataProvider=${flightFilter.path}
57
+ name="q"
58
+ type="search"
59
+ label="Search flights"
60
+ placeholder="City, airport or flight number"
61
+ ></sonic-input>
97
62
  <sonic-queue
98
- lazyload
99
- dataProviderExpression="api/users?offset=$offset&limit=$limit"
100
- dataFilterProvider="filter"
63
+ serviceURL=${DOCS_MOCK_API_BASE}
64
+ dataProviderExpression="flights?offset=$offset&limit=$limit"
65
+ dataFilterProvider=${flightFilter.path}
66
+ key="flights"
101
67
  limit="4"
102
- offset="0"
103
- idKey="id"
104
- serviceURL=${DOCS_MOCK_REQRES_SERVICE}
105
- key="data"
106
- class="grid max-h-96 max-w-md gap-2 overflow-y-auto"
107
- .items=${this.items}
108
- .separator=${this.separator}
68
+ class="mt-4 block max-h-48 overflow-y-auto"
69
+ .items=${flightRow}
109
70
  .noItems=${this.noItems}
110
- debug
111
71
  ></sonic-queue>
112
72
  `;
113
73
  }
@@ -1,7 +1,7 @@
1
1
  import { html, LitElement } from "lit";
2
2
  import { customElement, state } from "lit/decorators.js";
3
3
  import { tailwind } from "../tailwind";
4
- import { DOC_ROUTER_PAGE_HASH, setDocsDemoSubHash } from "../docs-location";
4
+ import { DOC_ROUTER_PAGE_PATH, setDocsDemoSubHash } from "../docs-location";
5
5
 
6
6
  import "../../core/components/functional/router/router";
7
7
  import "../../core/components/ui/button/button";
@@ -16,7 +16,7 @@ const panel = (title: string, body?: string) => html`
16
16
  `;
17
17
 
18
18
  function navButton(label: string, subRoute: string, variant?: string) {
19
- const href = `${DOC_ROUTER_PAGE_HASH}#${subRoute.replace(/^#/, "")}`;
19
+ const href = `${DOC_ROUTER_PAGE_PATH}#${subRoute.replace(/^#/, "")}`;
20
20
  return html`<sonic-button
21
21
  size="xs"
22
22
  variant=${variant ?? "default"}
@@ -24,7 +24,7 @@ function navButton(label: string, subRoute: string, variant?: string) {
24
24
  href=${href}
25
25
  @click=${(e: Event) => {
26
26
  e.preventDefault();
27
- setDocsDemoSubHash(subRoute, DOC_ROUTER_PAGE_HASH);
27
+ setDocsDemoSubHash(subRoute, DOC_ROUTER_PAGE_PATH);
28
28
  }}
29
29
  >${label}</sonic-button
30
30
  >`;
@@ -36,21 +36,21 @@ export class DocsRouterBasicDemo extends LitElement {
36
36
 
37
37
  @state()
38
38
  private routes = {
39
- "#home": () => panel("Home"),
40
- "#about": () => panel("About"),
41
- "#work": () => panel("Work"),
42
- "#contact": () => panel("Contact"),
39
+ "#departures": () => panel("Departures", "CN 001 to New York boards at B12."),
40
+ "#arrivals": () => panel("Arrivals", "CN 002 from New York has landed."),
41
+ "#fleet": () => panel("Fleet", "Seven aircraft, cruising at Mach 2.04."),
42
+ "#crew": () => panel("Crew", "Captain Leo Marchand is on duty."),
43
43
  fallback: () =>
44
- panel("404", "No route matched — `routes.fallback` is rendered."),
44
+ panel("404", "No route matched: routes.fallback is rendered."),
45
45
  };
46
46
 
47
47
  render() {
48
48
  return html`
49
49
  <div class="mb-4 flex flex-wrap gap-2">
50
- ${navButton("Home", "home")}
51
- ${navButton("About", "about")}
52
- ${navButton("Work", "work")}
53
- ${navButton("Contact", "contact")}
50
+ ${navButton("Departures", "departures")}
51
+ ${navButton("Arrivals", "arrivals")}
52
+ ${navButton("Fleet", "fleet")}
53
+ ${navButton("Crew", "crew")}
54
54
  ${navButton("Unknown", "unknown", "outline")}
55
55
  </div>
56
56
  <sonic-router .routes=${this.routes}></sonic-router>
@@ -64,24 +64,19 @@ export class DocsRouterParamsDemo extends LitElement {
64
64
 
65
65
  @state()
66
66
  private routes = {
67
- "#couleur/:id": ({ id }: { id: string }) =>
68
- panel("Url-pattern", `Param :id = ${id}`),
69
- "#products/(\\d+)/(\\w+)": ([productId, slug]: [string, string]) =>
70
- panel("RegExp", `productId = ${productId}, slug = ${slug}`),
71
- fallback: () => panel("No match", "Try a link below."),
67
+ "#flights/:code": ({ code }: { code: string }) =>
68
+ panel(`Flight ${code}`, "url-pattern: params is { code }"),
69
+ "#gates/([A-Z])(\\d+)": ([terminal, gate]: [string, string]) =>
70
+ panel(`Terminal ${terminal}, gate ${gate}`, "RegExp: params is [terminal, gate]"),
71
+ fallback: () => panel("No flight selected", "Pick a link above."),
72
72
  };
73
73
 
74
74
  render() {
75
75
  return html`
76
- <p class="mb-3 text-sm text-neutral-500">
77
- Dynamic segments are passed to the route function (object for
78
- <code>url-pattern</code>, array for capturing groups). Navigation uses
79
- <code>history.replaceState</code> with a second hash segment so the doc
80
- page does not reload.
81
- </p>
82
76
  <div class="mb-4 flex flex-wrap gap-2">
83
- ${navButton("#couleur/3", "couleur/3")}
84
- ${navButton("#products/42/widget", "products/42/widget")}
77
+ ${navButton("#flights/CN001", "flights/CN001")}
78
+ ${navButton("#flights/CN102", "flights/CN102")}
79
+ ${navButton("#gates/B12", "gates/B12")}
85
80
  </div>
86
81
  <sonic-router .routes=${this.routes}></sonic-router>
87
82
  `;
@@ -96,7 +96,7 @@ export class DocsSubmitDemo extends LitElement {
96
96
  if (!r || (!r.id && !r.token && !r.error && !r.messages?.length)) {
97
97
  return html`
98
98
  <p class="mt-4 text-sm text-neutral-500">
99
- Submit the form to see <code>id</code> and <code>token</code> here.
99
+ Sign up to see the crew <code>id</code> and <code>token</code> here.
100
100
  </p>
101
101
  `;
102
102
  }
@@ -120,19 +120,19 @@ export class DocsSubmitDemo extends LitElement {
120
120
  <sonic-input
121
121
  required
122
122
  name="email"
123
- type="email"
124
- value="eve.holt@reqres.in"
123
+ type="email" label="Email"
124
+ value="ada.lindqvist@example.com"
125
125
  ></sonic-input>
126
126
  <sonic-input
127
127
  required
128
- type="password"
128
+ type="password" label="Password"
129
129
  name="password"
130
- value="pistol"
130
+ value="concorde"
131
131
  ></sonic-input>
132
132
  </div>
133
133
  </sonic-submit>
134
134
  <sonic-submit onClick>
135
- <sonic-button type="success" class="w-full">Submit</sonic-button>
135
+ <sonic-button type="success" class="w-full">Join the crew</sonic-button>
136
136
  </sonic-submit>
137
137
  </sonic-scope>
138
138
  ${this.resultBlock()}
@@ -159,28 +159,28 @@ export class DocsSubmitClearDemo extends LitElement {
159
159
  <sonic-input
160
160
  required
161
161
  name="email"
162
- type="email"
163
- value="eve.holt@reqres.in"
162
+ type="email" label="Email"
163
+ value="ada.lindqvist@example.com"
164
164
  ></sonic-input>
165
165
  <sonic-input
166
166
  required
167
- type="password"
167
+ type="password" label="Password"
168
168
  name="password"
169
- value="pistol"
169
+ value="concorde"
170
170
  ></sonic-input>
171
171
  </div>
172
- <sonic-button type="success" class="w-full">Submit and clear form</sonic-button>
172
+ <sonic-button type="success" class="w-full">Check in and clear form</sonic-button>
173
173
  </sonic-submit>
174
174
  </sonic-scope>
175
175
  <p class="mt-3 text-sm text-neutral-500">
176
- After submit, <code>clearedDataOnSuccess="submit-clear-form"</code> resets
177
- the publisher (inputs should empty).
176
+ After check-in, <code>clearedDataOnSuccess="submit-clear-form"</code> resets
177
+ the publisher and empties the fields.
178
178
  </p>
179
179
  `;
180
180
  }
181
181
  }
182
182
 
183
- /** `submit-result-key` keeps only a nested part of the JSON before writing the result publisher. */
183
+ /** `submitResultKey` keeps only a nested part of the JSON before writing the result publisher. */
184
184
  @customElement("docs-submit-result-key-demo")
185
185
  export class DocsSubmitResultKeyDemo extends LitElement {
186
186
  static styles = [tailwind];
@@ -199,29 +199,29 @@ export class DocsSubmitResultKeyDemo extends LitElement {
199
199
  submitResultDataProvider=${submitNestedResultKey.path}
200
200
  class="max-w-lg block"
201
201
  >
202
- <sonic-submit onClick submit-result-key="data">
202
+ <sonic-submit onClick submitResultKey="data">
203
203
  <div class="mb-4 grid grid-cols-2 gap-4">
204
204
  <sonic-input
205
205
  required
206
206
  name="email"
207
- type="email"
208
- value="eve.holt@reqres.in"
207
+ type="email" label="Email"
208
+ value="ada.lindqvist@example.com"
209
209
  ></sonic-input>
210
210
  <sonic-input
211
211
  required
212
- type="password"
212
+ type="password" label="Password"
213
213
  name="password"
214
- value="pistol"
214
+ value="concorde"
215
215
  ></sonic-input>
216
216
  </div>
217
- <sonic-button type="primary" class="w-full">Submit (nested JSON)</sonic-button>
217
+ <sonic-button type="primary" class="w-full">Check in (nested JSON)</sonic-button>
218
218
  </sonic-submit>
219
219
  </sonic-scope>
220
220
  <sonic-divider align="left" class="mt-4">Stored in publisher</sonic-divider>
221
221
  <div class="mt-2 text-sm">
222
222
  ${r?.id != null
223
223
  ? html`<div>id from <code>data</code> : ${r.id}</div>`
224
- : html`<p class="text-neutral-500">Submit to extract <code>data.id</code> / <code>data.token</code>.</p>`}
224
+ : html`<p class="text-neutral-500">Check in to extract <code>data.id</code> and <code>data.token</code>.</p>`}
225
225
  </div>
226
226
  `;
227
227
  }
@@ -250,23 +250,23 @@ export class DocsSubmitFormDataDemo extends LitElement {
250
250
  <sonic-input
251
251
  required
252
252
  name="email"
253
- type="email"
254
- value="eve.holt@reqres.in"
253
+ type="email" label="Email"
254
+ value="ada.lindqvist@example.com"
255
255
  ></sonic-input>
256
256
  <sonic-input
257
257
  required
258
- type="password"
258
+ type="password" label="Password"
259
259
  name="password"
260
- value="pistol"
260
+ value="concorde"
261
261
  ></sonic-input>
262
262
  </div>
263
- <sonic-button type="primary" class="w-full">Submit as FormData</sonic-button>
263
+ <sonic-button type="primary" class="w-full">Send passenger details as FormData</sonic-button>
264
264
  </sonic-submit>
265
265
  </sonic-scope>
266
266
  <div class="mt-3 text-sm">
267
267
  ${this.result?.token
268
268
  ? html`Token received: <span class="font-mono">${this.result.token}</span>`
269
- : html`<p class="text-neutral-500">Mock accepts JSON and multipart for <code>/api/register</code>.</p>`}
269
+ : html`<p class="text-neutral-500">The mock accepts JSON and multipart on <code>/api/register</code>.</p>`}
270
270
  </div>
271
271
  `;
272
272
  }
@@ -292,10 +292,10 @@ export class DocsSubmitGetDemo extends LitElement {
292
292
  >
293
293
  <sonic-submit onClick method="get">
294
294
  <div class="mb-4 grid grid-cols-2 gap-4">
295
- <sonic-input name="email" type="email" value="demo@example.com"></sonic-input>
296
- <sonic-input name="password" type="password" value="secret"></sonic-input>
295
+ <sonic-input name="email" type="email" label="Crew email" value="leo.marchand@example.com"></sonic-input>
296
+ <sonic-input name="password" type="password" label="Crew code" value="mach2"></sonic-input>
297
297
  </div>
298
- <sonic-button type="neutral" class="w-full">GET with query string</sonic-button>
298
+ <sonic-button type="neutral" class="w-full">Look up crew member (GET)</sonic-button>
299
299
  </sonic-submit>
300
300
  </sonic-scope>
301
301
  <div class="mt-3 space-y-1 text-sm">${resultLines(this.result)}</div>
@@ -324,25 +324,25 @@ export class DocsSubmitNativeDemo extends LitElement {
324
324
  <sonic-input
325
325
  required
326
326
  name="email"
327
- type="email"
328
- value="eve.holt@reqres.in"
327
+ type="email" label="Email"
328
+ value="ada.lindqvist@example.com"
329
329
  ></sonic-input>
330
330
  <sonic-input
331
331
  required
332
- type="password"
332
+ type="password" label="Password"
333
333
  name="password"
334
- value="pistol"
334
+ value="concorde"
335
335
  ></sonic-input>
336
336
  </div>
337
337
  <sonic-button type="success" class="w-full"
338
- >Native form POST</sonic-button
338
+ >Check in (native form POST)</sonic-button
339
339
  >
340
340
  </sonic-submit>
341
341
  </sonic-scope>
342
342
  </form>
343
343
  <p class="mt-2 text-sm text-neutral-500">
344
- Response loads in the iframe below (full page navigation is avoided via
345
- <code>target</code>).
344
+ The response loads in the iframe below: <code>target</code> avoids a
345
+ full page navigation.
346
346
  </p>
347
347
  <iframe
348
348
  name="docs-submit-native-frame"
@@ -381,23 +381,23 @@ export class DocsSubmitEventDemo extends LitElement {
381
381
  <sonic-input
382
382
  required
383
383
  name="email"
384
- type="email"
385
- value="eve.holt@reqres.in"
384
+ type="email" label="Email"
385
+ value="ada.lindqvist@example.com"
386
386
  ></sonic-input>
387
387
  <sonic-input
388
388
  required
389
- type="password"
389
+ type="password" label="Password"
390
390
  name="password"
391
- value="pistol"
391
+ value="concorde"
392
392
  ></sonic-input>
393
393
  </div>
394
- <sonic-button type="primary" class="w-full">Submit (listen event)</sonic-button>
394
+ <sonic-button type="primary" class="w-full">Board (listen to event)</sonic-button>
395
395
  </sonic-submit>
396
396
  </sonic-scope>
397
397
  <p class="mt-3 text-sm">
398
398
  ${this.lastEvent
399
399
  ? html`Last <code>submit</code> event: <span class="font-mono">${this.lastEvent}</span>`
400
- : html`<span class="text-neutral-500">Click submit — handler reads <code>event.detail</code>.</span>`}
400
+ : html`<span class="text-neutral-500">Click Board: the handler reads <code>event.detail</code>.</span>`}
401
401
  </p>
402
402
  `;
403
403
  }
@@ -426,14 +426,14 @@ export class DocsSubmitEndpointDemo extends LitElement {
426
426
  <sonic-input
427
427
  required
428
428
  name="email"
429
- type="email"
430
- value="eve.holt@reqres.in"
429
+ type="email" label="Email"
430
+ value="ada.lindqvist@example.com"
431
431
  ></sonic-input>
432
432
  <sonic-input
433
433
  required
434
- type="password"
434
+ type="password" label="Password"
435
435
  name="password"
436
- value="pistol"
436
+ value="concorde"
437
437
  ></sonic-input>
438
438
  </div>
439
439
  <sonic-button type="primary" class="w-full"
@@ -443,7 +443,7 @@ export class DocsSubmitEndpointDemo extends LitElement {
443
443
  </sonic-scope>
444
444
  <div class="mt-3 text-sm">
445
445
  ${this.result?.token
446
- ? html`Registered (scope <code>dataProvider</code> is <code>api/users</code>, request went to <code>api/register</code>).`
446
+ ? html`Signed up: the scope <code>dataProvider</code> is <code>api/users</code> but the request went to <code>api/register</code>.`
447
447
  : html`<p class="text-neutral-500">
448
448
  <code>dataProvider=${usersListEndpoint.path}</code> but
449
449
  <code>endPoint=${registerEndpoint.path}</code> on
@@ -28,7 +28,7 @@ export class DocsToggleIfDemo extends LitElement {
28
28
  return html`
29
29
  <div formDataProvider=${docsToggleVisibilityKey.path}>
30
30
  <sonic-checkbox
31
- label="Show evacuation plan"
31
+ label="Show aircraft"
32
32
  name="togglePlan"
33
33
  unique
34
34
  checked
@@ -36,9 +36,10 @@ export class DocsToggleIfDemo extends LitElement {
36
36
  ></sonic-checkbox>
37
37
  <sonic-if .condition=${show} class="mt-4 block">
38
38
  <sonic-image
39
- src="https://www.thebaron.info/assets/mail/concorde-evacuation.jpg"
39
+ src="img/concorde/plane_07.jpg"
40
+ alt="Crowd gathered around Concorde at night"
40
41
  rounded="md"
41
- ratio="654/463"
42
+ ratio="3/2"
42
43
  ></sonic-image>
43
44
  </sonic-if>
44
45
  </div>
File without changes
@@ -0,0 +1,76 @@
1
+ # AI agents (skills & AGENTS.md)
2
+
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
+
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
+
7
+ ## Dedicated commands
8
+
9
+ | Context | Command |
10
+ |---------|---------|
11
+ | [create-concorde-ts-starter](https://www.npmjs.com/package/@supersoniks/create-concorde-ts-starter) project | `yarn ai:sync` |
12
+ | Any consumer app (after `yarn add @supersoniks/concorde`) | `node node_modules/@supersoniks/concorde/scripts/ai-init.mjs` |
13
+ | Concorde repo (contributors) | `yarn ai-init` |
14
+
15
+ <sonic-code language="shell">
16
+ <template>
17
+ # Starter (from project root)
18
+ yarn ai:sync
19
+
20
+ # Manual / existing project
21
+ node node_modules/@supersoniks/concorde/scripts/ai-init.mjs
22
+ </template>
23
+ </sonic-code>
24
+
25
+ ## Useful flags
26
+
27
+ | Flag | Effect |
28
+ |------|--------|
29
+ | `--skip-agents` | Never write `AGENTS.md` (skills / rules only) |
30
+ | `--merge-agents` | Opt-in: keep the project preamble and append / refresh the Concorde block |
31
+ | `--force-agents` | Opt-in: **replace** the whole `AGENTS.md` (destructive) |
32
+ | `--overlay <dir>` | Extra rules/skills + optional `AGENTS.concorde.md` for project-only Concorde agent notes |
33
+ | `--cursor-only` | Install only `.cursor/skills` and `.cursor/rules` |
34
+ | `--jetbrains-only` | Install only `.aiassistant/rules/` |
35
+
36
+ ## `AGENTS.md` policy (non-invasive)
37
+
38
+ | Situation | Default |
39
+ |-----------|---------|
40
+ | No `AGENTS.md` | Create the Concorde guide |
41
+ | File with `<!-- concorde-ai -->` | Refresh the managed zone only |
42
+ | File **without** marker (project notes) | **Left untouched** — skills / rules are enough |
43
+ | `--merge-agents` / `--force-agents` / `--skip-agents` | See flags above |
44
+
45
+ ```text
46
+ [optional project preamble — short, project-only]
47
+ <!-- concorde-ai -->
48
+ <package ai/AGENTS.md>
49
+ [--- + overlay AGENTS.concorde.md]
50
+ ```
51
+
52
+ Everything **after** `<!-- concorde-ai -->` is replaced on each `ai-init` run (idempotent). Do not paste a full copy of the Concorde guide above the marker — put project-specific notes in `AGENTS.concorde.md` (overlay). If the preamble duplicates package `AGENTS.md`, `ai-init` slims or drops it and prints a warning. Legacy filenames `AGENTS.overlay.md` / `AGENTS.starter.md` are still accepted with a deprecation warning.
53
+
54
+ ## What gets installed
55
+
56
+ | Path | Role |
57
+ |------|------|
58
+ | `AGENTS.md` | Created only if missing; existing project-owned files are left alone unless `--merge-agents` / `--force-agents` |
59
+ | `.cursor/skills/concorde/` | Core Lit + DataProvider patterns |
60
+ | `.cursor/skills/concorde-imports/` | Short `@supersoniks/concorde/…` import paths |
61
+ | `.cursor/skills/concorde-scope/` | `serviceURL`, `formDataProvider`, API configuration |
62
+ | `.cursor/skills/concorde-theme/` | `sonic-theme` and `--sc-*` tokens |
63
+ | `.cursor/skills/concorde-menu/` | `sonic-menu` navigation |
64
+ | `.cursor/skills/concorde-get-set-dp/` | `get` / `set` / `dp` and `DataProviderKey` migration |
65
+ | `.cursor/rules/concorde.mdc` | Cursor rules (always-on patterns) |
66
+ | `.aiassistant/rules/concorde.md` | JetBrains AI Assistant rules |
67
+
68
+ ## Workflow
69
+
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
+ 3. Commit `.cursor/` and `.aiassistant/` (and `AGENTS.md` only if you opted in / it was created) if your team shares agent settings.
73
+ 4. Re-run the same command when you bump `@supersoniks/concorde` to refresh skills from `node_modules/@supersoniks/concorde/ai/`.
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`).
75
+
76
+ Source files in the npm package: `node_modules/@supersoniks/concorde/ai/` (see also `ai/README.md` in the [Concorde repository](https://github.com/supersoniks/concorde)).
@@ -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>