@supersoniks/concorde 5.1.1 → 5.1.3-immutable.1

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