@supersoniks/concorde 5.1.1 → 5.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (494) hide show
  1. package/.agents/skills/concorde-docs/SKILL.md +153 -0
  2. package/.agents/skills/{concorde-component-docs/template.md → concorde-docs/templates/component.md} +6 -2
  3. package/.agents/skills/concorde-docs/templates/decorator.md +43 -0
  4. package/.agents/skills/concorde-docs/templates/guide.md +25 -0
  5. package/PLAN-DOCS-AGENTS.md +80 -0
  6. package/README.md +4 -4
  7. package/ai/README.md +29 -41
  8. package/ai/skills/concorde/SKILL.md +54 -324
  9. package/ai/skills/concorde/rules/composition.md +32 -0
  10. package/ai/skills/concorde/rules/data.md +47 -0
  11. package/ai/skills/concorde/rules/http.md +25 -0
  12. package/ai/skills/concorde/rules/lists-forms.md +35 -0
  13. package/ai/skills/concorde/rules/styling.md +46 -0
  14. package/ai/skills/concorde/rules/troubleshooting.md +45 -0
  15. package/build-infos.json +1 -1
  16. package/concorde-core.bundle.js +21 -21
  17. package/concorde-core.es.js +977 -980
  18. package/custom-elements-manifest.public.config.mjs +8 -0
  19. package/{.tmp-cem/custom-elements.json → custom-elements.json} +11758 -8904
  20. package/dist/concorde-core.bundle.js +21 -21
  21. package/dist/concorde-core.es.js +977 -980
  22. package/dist/docs-mock-api-sw.js +58 -223
  23. package/dist/docs-mock-api-sw.js.map +4 -4
  24. package/dist/img/concorde/plane_01.jpg +0 -0
  25. package/dist/img/concorde/plane_02.jpg +0 -0
  26. package/dist/img/concorde/plane_03.jpg +0 -0
  27. package/dist/img/concorde/plane_04.jpg +0 -0
  28. package/dist/img/concorde/plane_05.jpg +0 -0
  29. package/dist/img/concorde/plane_06.jpg +0 -0
  30. package/dist/img/concorde/plane_07.jpg +0 -0
  31. package/dist/img/concorde/plane_08.jpg +0 -0
  32. package/dist/img/concorde/plane_09.jpg +0 -0
  33. package/dist/img/concorde/plane_10.jpg +0 -0
  34. package/dist/img/concorde/plane_11.jpg +0 -0
  35. package/dist/img/concorde/plane_12.jpg +0 -0
  36. package/dist/img/concorde/plane_13.jpg +0 -0
  37. package/dist/img/og-concorde.jpg +0 -0
  38. package/dist/robots.txt +11 -10
  39. package/docs/.htaccess +82 -0
  40. package/docs/404.html +15 -0
  41. package/docs/404.md +5 -0
  42. package/docs/about.html +111 -0
  43. package/docs/about.md +22 -0
  44. package/docs/assets/{index-Bb-_LRyY.js → index-6sS76xWj.js} +2625 -3158
  45. package/docs/assets/index-DkdPbH0F.css +1 -0
  46. package/docs/core/components/functional/date/date.html +211 -0
  47. package/docs/core/components/functional/date/date.md +150 -0
  48. package/docs/core/components/functional/fetch/fetch.html +180 -0
  49. package/docs/core/components/functional/fetch/fetch.md +108 -0
  50. package/docs/core/components/functional/if/if.html +65 -0
  51. package/docs/core/components/functional/if/if.md +34 -0
  52. package/docs/core/components/functional/jsonata/jsonata.html +110 -0
  53. package/docs/core/components/functional/jsonata/jsonata.md +61 -0
  54. package/docs/core/components/functional/list/list.html +200 -0
  55. package/docs/core/components/functional/list/list.md +125 -0
  56. package/docs/core/components/functional/mix/mix.html +78 -0
  57. package/docs/core/components/functional/mix/mix.md +46 -0
  58. package/docs/core/components/functional/queue/queue.html +155 -0
  59. package/docs/core/components/functional/queue/queue.md +51 -0
  60. package/docs/core/components/functional/router/router.html +154 -0
  61. package/docs/core/components/functional/router/router.md +93 -0
  62. package/docs/core/components/functional/sdui/sdui-extension-points.html +127 -0
  63. package/docs/core/components/functional/sdui/sdui-extension-points.md +94 -0
  64. package/docs/core/components/functional/sdui/sdui.html +397 -0
  65. package/docs/core/components/functional/sdui/sdui.md +307 -0
  66. package/docs/core/components/functional/states/states.html +141 -0
  67. package/docs/core/components/functional/states/states.md +112 -0
  68. package/docs/core/components/functional/submit/submit.html +178 -0
  69. package/docs/core/components/functional/submit/submit.md +106 -0
  70. package/docs/core/components/functional/subscriber/subscriber.html +68 -0
  71. package/docs/core/components/functional/subscriber/subscriber.md +91 -0
  72. package/docs/core/components/functional/translation/translation.html +60 -0
  73. package/docs/core/components/functional/translation/translation.md +38 -0
  74. package/docs/core/components/functional/value/value.html +81 -0
  75. package/docs/core/components/functional/value/value.md +47 -0
  76. package/docs/core/components/ui/alert/alert.html +201 -0
  77. package/docs/core/components/ui/alert/alert.md +186 -0
  78. package/docs/core/components/ui/alert-messages/alert-messages.html +132 -0
  79. package/docs/core/components/ui/alert-messages/alert-messages.md +85 -0
  80. package/docs/core/components/ui/badge/badge.html +197 -0
  81. package/docs/core/components/ui/badge/badge.md +181 -0
  82. package/docs/core/components/ui/button/button.html +309 -0
  83. package/docs/core/components/ui/button/button.md +216 -0
  84. package/docs/core/components/ui/captcha/captcha.html +80 -0
  85. package/docs/core/components/ui/captcha/captcha.md +56 -0
  86. package/docs/core/components/ui/card/card.html +254 -0
  87. package/docs/core/components/ui/card/card.md +215 -0
  88. package/docs/core/components/ui/divider/divider.html +144 -0
  89. package/docs/core/components/ui/divider/divider.md +126 -0
  90. package/docs/core/components/ui/form/checkbox/checkbox.html +200 -0
  91. package/docs/core/components/ui/form/checkbox/checkbox.md +125 -0
  92. package/docs/core/components/ui/form/fieldset/fieldset.html +238 -0
  93. package/docs/core/components/ui/form/fieldset/fieldset.md +161 -0
  94. package/docs/core/components/ui/form/form-actions/form-actions.html +122 -0
  95. package/docs/core/components/ui/form/form-actions/form-actions.md +98 -0
  96. package/docs/core/components/ui/form/form-layout/form-layout.html +115 -0
  97. package/docs/core/components/ui/form/form-layout/form-layout.md +109 -0
  98. package/docs/core/components/ui/form/input/input.html +235 -0
  99. package/docs/core/components/ui/form/input/input.md +142 -0
  100. package/docs/core/components/ui/form/radio/radio.html +144 -0
  101. package/docs/core/components/ui/form/radio/radio.md +78 -0
  102. package/docs/core/components/ui/form/select/select.html +178 -0
  103. package/docs/core/components/ui/form/select/select.md +86 -0
  104. package/docs/core/components/ui/form/switch/switch.html +146 -0
  105. package/docs/core/components/ui/form/switch/switch.md +80 -0
  106. package/docs/core/components/ui/form/textarea/textarea.html +162 -0
  107. package/docs/core/components/ui/form/textarea/textarea.md +82 -0
  108. package/docs/core/components/ui/group/group.html +113 -0
  109. package/docs/core/components/ui/group/group.md +77 -0
  110. package/docs/core/components/ui/icon/icon.html +223 -0
  111. package/docs/core/components/ui/icon/icon.md +214 -0
  112. package/docs/core/components/ui/image/image.html +194 -0
  113. package/docs/core/components/ui/image/image.md +167 -0
  114. package/docs/core/components/ui/link/link.html +101 -0
  115. package/docs/core/components/ui/link/link.md +81 -0
  116. package/docs/core/components/ui/loader/loader.html +114 -0
  117. package/docs/core/components/ui/loader/loader.md +87 -0
  118. package/docs/core/components/ui/menu/menu.html +395 -0
  119. package/docs/core/components/ui/menu/menu.md +370 -0
  120. package/docs/core/components/ui/modal/modal.html +324 -0
  121. package/docs/core/components/ui/modal/modal.md +211 -0
  122. package/docs/core/components/ui/pop/pop.html +250 -0
  123. package/docs/core/components/ui/pop/pop.md +216 -0
  124. package/docs/core/components/ui/progress/progress.html +132 -0
  125. package/docs/core/components/ui/progress/progress.md +109 -0
  126. package/docs/core/components/ui/table/table.html +333 -0
  127. package/docs/core/components/ui/table/table.md +267 -0
  128. package/docs/core/components/ui/theme/theme.html +116 -0
  129. package/docs/core/components/ui/theme/theme.md +97 -0
  130. package/docs/core/components/ui/toast/toast.html +185 -0
  131. package/docs/core/components/ui/toast/toast.md +147 -0
  132. package/docs/core/components/ui/tooltip/tooltip.html +112 -0
  133. package/docs/core/components/ui/tooltip/tooltip.md +89 -0
  134. package/docs/custom-elements.json +16559 -0
  135. package/docs/docs/decorators/ancestor-attribute.html +71 -0
  136. package/docs/docs/decorators/ancestor-attribute.md +59 -0
  137. package/docs/docs/decorators/auto-subscribe.html +61 -0
  138. package/docs/docs/decorators/auto-subscribe.md +40 -0
  139. package/docs/docs/decorators/bind.html +87 -0
  140. package/docs/docs/decorators/bind.md +76 -0
  141. package/docs/docs/decorators/get.html +166 -0
  142. package/docs/docs/decorators/get.md +160 -0
  143. package/docs/docs/decorators/handle.html +139 -0
  144. package/docs/docs/decorators/handle.md +119 -0
  145. package/docs/docs/decorators/on-assign.html +72 -0
  146. package/docs/docs/decorators/on-assign.md +63 -0
  147. package/docs/docs/decorators/patch.html +76 -0
  148. package/docs/docs/decorators/patch.md +44 -0
  149. package/docs/docs/decorators/post.html +150 -0
  150. package/docs/docs/decorators/post.md +134 -0
  151. package/docs/docs/decorators/publish.html +74 -0
  152. package/docs/docs/decorators/publish.md +56 -0
  153. package/docs/docs/decorators/put.html +83 -0
  154. package/docs/docs/decorators/put.md +51 -0
  155. package/docs/docs/decorators/subscribe.html +91 -0
  156. package/docs/docs/decorators/subscribe.md +87 -0
  157. package/docs/docs/decorators/wait-for-ancestors.html +82 -0
  158. package/docs/docs/decorators/wait-for-ancestors.md +76 -0
  159. package/docs/docs/directives/sub.html +79 -0
  160. package/docs/docs/directives/sub.md +75 -0
  161. package/docs/docs/directives/t.html +91 -0
  162. package/docs/docs/directives/t.md +73 -0
  163. package/docs/docs/getting-started/ai-agents.html +130 -0
  164. package/docs/docs/getting-started/ai-agents.md +50 -0
  165. package/docs/docs/getting-started/components.html +27 -0
  166. package/docs/docs/getting-started/create-a-component.html +108 -0
  167. package/{src/docs/_getting-started → docs/docs/getting-started}/create-a-component.md +3 -6
  168. package/docs/docs/getting-started/dataFlow.html +174 -0
  169. package/{src/docs/_core-concept → docs/docs/getting-started}/dataFlow.md +18 -19
  170. package/docs/docs/getting-started/installation.html +69 -0
  171. package/docs/docs/getting-started/installation.md +36 -0
  172. package/docs/docs/getting-started/my-first-component.html +180 -0
  173. package/{src/docs/_getting-started → docs/docs/getting-started}/my-first-component.md +5 -14
  174. package/docs/docs/getting-started/start.html +47 -0
  175. package/{src/docs/_getting-started → docs/docs/getting-started}/start.md +1 -13
  176. package/docs/docs/getting-started/theming.html +334 -0
  177. package/docs/docs/index.html +99 -0
  178. package/docs/docs/misc/api-configuration.html +149 -0
  179. package/{src/docs/_misc → docs/docs/misc}/api-configuration.md +10 -12
  180. package/docs/docs/misc/dataProviderKey.html +136 -0
  181. package/{src/docs/_misc → docs/docs/misc}/dataProviderKey.md +4 -4
  182. package/docs/docs/misc/docs-mock-api.html +155 -0
  183. package/{src/docs/_misc → docs/docs/misc}/docs-mock-api.md +12 -13
  184. package/docs/docs/misc/dynamic-path.html +181 -0
  185. package/{src/docs/_misc → docs/docs/misc}/dynamic-path.md +8 -8
  186. package/docs/docs/misc/endpoint.html +51 -0
  187. package/{src/docs/_misc → docs/docs/misc}/endpoint.md +8 -8
  188. package/docs/docs/misc/html-integration.html +45 -0
  189. package/{src/docs/_misc → docs/docs/misc}/html-integration.md +4 -5
  190. package/docs/docs-mock-api-sw.js +58 -223
  191. package/docs/docs-mock-api-sw.js.map +4 -4
  192. package/docs/hubs/decorators.html +438 -0
  193. package/docs/hubs/form-components.html +404 -0
  194. package/docs/hubs/remote-data.html +367 -0
  195. package/docs/img/archive/concorde-001-2cv.webp +0 -0
  196. package/docs/img/archive/concorde-red-arrows-2002-poster.jpg +0 -0
  197. package/docs/img/archive/concorde-red-arrows-2002.webm +0 -0
  198. package/docs/img/archive/credits.json +28 -0
  199. package/docs/img/concorde/plane_01.jpg +0 -0
  200. package/docs/img/concorde/plane_02.jpg +0 -0
  201. package/docs/img/concorde/plane_03.jpg +0 -0
  202. package/docs/img/concorde/plane_04.jpg +0 -0
  203. package/docs/img/concorde/plane_05.jpg +0 -0
  204. package/docs/img/concorde/plane_06.jpg +0 -0
  205. package/docs/img/concorde/plane_07.jpg +0 -0
  206. package/docs/img/concorde/plane_08.jpg +0 -0
  207. package/docs/img/concorde/plane_09.jpg +0 -0
  208. package/docs/img/concorde/plane_10.jpg +0 -0
  209. package/docs/img/concorde/plane_11.jpg +0 -0
  210. package/docs/img/concorde/plane_12.jpg +0 -0
  211. package/docs/img/concorde/plane_13.jpg +0 -0
  212. package/docs/img/og-concorde.jpg +0 -0
  213. package/docs/index.html +184 -68
  214. package/docs/index.md +22 -0
  215. package/docs/llms-full.txt +5779 -0
  216. package/docs/llms.txt +108 -0
  217. package/docs/privacy.html +122 -0
  218. package/docs/privacy.md +32 -0
  219. package/docs/robots.txt +11 -10
  220. package/docs/sitemap.xml +243 -0
  221. package/docs/src/core/components/functional/date/date.md +150 -0
  222. package/docs/src/core/components/functional/fetch/fetch.md +108 -0
  223. package/docs/src/core/components/functional/if/if.md +34 -0
  224. package/docs/src/core/components/functional/jsonata/jsonata.md +61 -0
  225. package/docs/src/core/components/functional/list/list.md +125 -0
  226. package/docs/src/core/components/functional/mix/mix.md +46 -0
  227. package/docs/src/core/components/functional/queue/queue.md +51 -0
  228. package/docs/src/core/components/functional/router/router.md +93 -0
  229. package/docs/src/core/components/functional/sdui/component-catalog.gaps.json +511 -0
  230. package/docs/src/core/components/functional/sdui/component-catalog.json +3103 -0
  231. package/docs/src/core/components/functional/sdui/default-library.json +108 -0
  232. package/docs/src/core/components/functional/sdui/example.json +32 -0
  233. package/docs/src/core/components/functional/sdui/sdui-extension-points.md +94 -0
  234. package/docs/src/core/components/functional/sdui/sdui.md +307 -0
  235. package/docs/src/core/components/functional/states/states.md +112 -0
  236. package/docs/src/core/components/functional/submit/submit.md +106 -0
  237. package/docs/src/core/components/functional/subscriber/subscriber.md +91 -0
  238. package/docs/src/core/components/functional/translation/translation.md +38 -0
  239. package/docs/src/core/components/functional/value/value.md +47 -0
  240. package/docs/src/core/components/ui/alert/alert.md +186 -0
  241. package/docs/src/core/components/ui/alert-messages/alert-messages.md +85 -0
  242. package/docs/src/core/components/ui/badge/badge.md +181 -0
  243. package/docs/src/core/components/ui/button/button.md +216 -0
  244. package/docs/src/core/components/ui/captcha/captcha.md +56 -0
  245. package/docs/src/core/components/ui/card/card.md +215 -0
  246. package/docs/src/core/components/ui/divider/divider.md +126 -0
  247. package/docs/src/core/components/ui/form/checkbox/checkbox.md +125 -0
  248. package/docs/src/core/components/ui/form/fieldset/fieldset.md +161 -0
  249. package/docs/src/core/components/ui/form/form-actions/form-actions.md +98 -0
  250. package/docs/src/core/components/ui/form/form-layout/form-layout.md +109 -0
  251. package/docs/src/core/components/ui/form/input/input.md +142 -0
  252. package/docs/src/core/components/ui/form/radio/radio.md +78 -0
  253. package/docs/src/core/components/ui/form/select/select.md +86 -0
  254. package/docs/src/core/components/ui/form/switch/switch.md +80 -0
  255. package/docs/src/core/components/ui/form/textarea/textarea.md +82 -0
  256. package/docs/src/core/components/ui/group/group.md +77 -0
  257. package/docs/src/core/components/ui/icon/icon.md +214 -0
  258. package/docs/src/core/components/ui/icon/icons.json +1 -0
  259. package/docs/src/core/components/ui/image/image.md +167 -0
  260. package/docs/src/core/components/ui/link/link.md +81 -0
  261. package/docs/src/core/components/ui/loader/loader.md +87 -0
  262. package/docs/src/core/components/ui/menu/menu.md +370 -0
  263. package/docs/src/core/components/ui/modal/modal.md +211 -0
  264. package/docs/src/core/components/ui/pop/pop.md +216 -0
  265. package/docs/src/core/components/ui/progress/progress.md +109 -0
  266. package/docs/src/core/components/ui/table/table.md +267 -0
  267. package/docs/src/core/components/ui/theme/theme.md +97 -0
  268. package/docs/src/core/components/ui/toast/toast.md +147 -0
  269. package/docs/src/core/components/ui/tooltip/tooltip.md +89 -0
  270. package/docs/src/docs/decorators/ancestor-attribute.md +59 -0
  271. package/docs/src/docs/decorators/auto-subscribe.md +40 -0
  272. package/docs/src/docs/decorators/bind.md +76 -0
  273. package/docs/src/docs/decorators/get.md +160 -0
  274. package/docs/src/docs/decorators/handle.md +119 -0
  275. package/docs/src/docs/decorators/on-assign.md +63 -0
  276. package/docs/src/docs/decorators/patch.md +44 -0
  277. package/docs/src/docs/decorators/post.md +134 -0
  278. package/docs/src/docs/decorators/publish.md +56 -0
  279. package/docs/src/docs/decorators/put.md +51 -0
  280. package/docs/src/docs/decorators/subscribe.md +87 -0
  281. package/docs/src/docs/decorators/wait-for-ancestors.md +76 -0
  282. package/docs/src/docs/directives/sub.md +75 -0
  283. package/docs/src/docs/directives/t.md +73 -0
  284. package/docs/src/docs/getting-started/ai-agents.md +50 -0
  285. package/docs/src/docs/getting-started/components.md +5 -0
  286. package/docs/src/docs/getting-started/create-a-component.md +136 -0
  287. package/docs/src/docs/getting-started/dataFlow.md +87 -0
  288. package/docs/src/docs/getting-started/installation.md +36 -0
  289. package/docs/src/docs/getting-started/my-first-component.md +227 -0
  290. package/docs/src/docs/getting-started/start.md +35 -0
  291. package/docs/src/docs/getting-started/theming.md +253 -0
  292. package/docs/src/docs/misc/api-configuration.md +79 -0
  293. package/docs/src/docs/misc/dataProviderKey.md +168 -0
  294. package/docs/src/docs/misc/docs-mock-api.md +62 -0
  295. package/docs/src/docs/misc/dynamic-path.md +71 -0
  296. package/docs/src/docs/misc/endpoint.md +45 -0
  297. package/docs/src/docs/misc/html-integration.md +14 -0
  298. package/docs/src/docs/search/docs-search.json +10332 -0
  299. package/docs/src/tag-list.json +1 -0
  300. package/docs/src/tsconfig-model.json +23 -0
  301. package/docs/src/tsconfig.json +1359 -0
  302. package/index.html +157 -5
  303. package/package.json +8 -4
  304. package/public/docs-mock-api-sw.js +58 -223
  305. package/public/docs-mock-api-sw.js.map +4 -4
  306. package/public/img/concorde/plane_01.jpg +0 -0
  307. package/public/img/concorde/plane_02.jpg +0 -0
  308. package/public/img/concorde/plane_03.jpg +0 -0
  309. package/public/img/concorde/plane_04.jpg +0 -0
  310. package/public/img/concorde/plane_05.jpg +0 -0
  311. package/public/img/concorde/plane_06.jpg +0 -0
  312. package/public/img/concorde/plane_07.jpg +0 -0
  313. package/public/img/concorde/plane_08.jpg +0 -0
  314. package/public/img/concorde/plane_09.jpg +0 -0
  315. package/public/img/concorde/plane_10.jpg +0 -0
  316. package/public/img/concorde/plane_11.jpg +0 -0
  317. package/public/img/concorde/plane_12.jpg +0 -0
  318. package/public/img/concorde/plane_13.jpg +0 -0
  319. package/public/img/og-concorde.jpg +0 -0
  320. package/public/robots.txt +11 -10
  321. package/scripts/ai-init.mjs +104 -379
  322. package/scripts/ai-init.test.mjs +81 -239
  323. package/scripts/docs-markdown-vite-plugin.ts +43 -0
  324. package/scripts/docs-public-url.mjs +56 -0
  325. package/scripts/docs.htaccess +82 -0
  326. package/scripts/generate-cem.mjs +244 -0
  327. package/scripts/generate-cem.test.mjs +122 -0
  328. package/scripts/generate-crawl-docs.mjs +233 -118
  329. package/scripts/generate-crawl-docs.test.mjs +124 -0
  330. package/scripts/generate-sdui-catalog.mjs +11 -10
  331. package/scripts/post-build-docs.js +37 -50
  332. package/scripts/pre-publish.mjs +2 -1
  333. package/scripts/site-pages.mjs +212 -0
  334. package/scripts/site-pages.test.mjs +116 -0
  335. package/site-pages/about.md +22 -0
  336. package/site-pages/privacy.md +32 -0
  337. package/src/core/components/functional/date/date.md +91 -231
  338. package/src/core/components/functional/fetch/fetch.md +66 -83
  339. package/src/core/components/functional/if/if.md +28 -3
  340. package/src/core/components/functional/jsonata/jsonata.md +42 -37
  341. package/src/core/components/functional/list/list.md +103 -43
  342. package/src/core/components/functional/mix/mix.md +31 -26
  343. package/src/core/components/functional/queue/queue.demo.ts +10 -7
  344. package/src/core/components/functional/queue/queue.md +40 -61
  345. package/src/core/components/functional/router/router.demo.ts +16 -16
  346. package/src/core/components/functional/router/router.md +64 -65
  347. package/src/core/components/functional/sdui/component-catalog.gaps.json +1 -1
  348. package/src/core/components/functional/sdui/component-catalog.json +1 -1
  349. package/src/core/components/functional/sdui/example.json +19 -86
  350. package/src/core/components/functional/sdui/sdui-extension-points.md +1 -1
  351. package/src/core/components/functional/sdui/sdui.md +187 -358
  352. package/src/core/components/functional/states/states.demo.ts +21 -22
  353. package/src/core/components/functional/states/states.md +86 -61
  354. package/src/core/components/functional/states/states.ts +1 -1
  355. package/src/core/components/functional/submit/submit.md +64 -72
  356. package/src/core/components/functional/translation/translation.md +38 -0
  357. package/src/core/components/functional/value/value.md +34 -22
  358. package/src/core/components/ui/alert/alert.md +48 -58
  359. package/src/core/components/ui/badge/badge.md +27 -34
  360. package/src/core/components/ui/button/button.md +139 -106
  361. package/src/core/components/ui/captcha/captcha.md +17 -32
  362. package/src/core/components/ui/card/card.md +6 -6
  363. package/src/core/components/ui/divider/divider.md +8 -11
  364. package/src/core/components/ui/form/checkbox/checkbox.md +90 -42
  365. package/src/core/components/ui/form/fieldset/fieldset.md +31 -75
  366. package/src/core/components/ui/form/form-actions/form-actions.md +14 -16
  367. package/src/core/components/ui/form/form-layout/form-layout.md +19 -29
  368. package/src/core/components/ui/form/input/input.md +95 -95
  369. package/src/core/components/ui/form/radio/radio.md +55 -34
  370. package/src/core/components/ui/form/select/select.md +60 -45
  371. package/src/core/components/ui/form/switch/switch.md +57 -34
  372. package/src/core/components/ui/form/textarea/textarea.md +55 -38
  373. package/src/core/components/ui/group/group.md +35 -33
  374. package/src/core/components/ui/icon/icon.md +4 -4
  375. package/src/core/components/ui/image/image.md +41 -107
  376. package/src/core/components/ui/link/link.md +6 -6
  377. package/src/core/components/ui/loader/loader.md +30 -55
  378. package/src/core/components/ui/menu/menu.md +27 -27
  379. package/src/core/components/ui/modal/modal.md +72 -96
  380. package/src/core/components/ui/pop/pop.md +80 -158
  381. package/src/core/components/ui/progress/progress.md +2 -2
  382. package/src/core/components/ui/table/table.md +91 -255
  383. package/src/core/components/ui/theme/theme.md +11 -36
  384. package/src/core/components/ui/toast/toast.md +48 -117
  385. package/src/core/components/ui/tooltip/tooltip.md +27 -62
  386. package/src/core/decorators/subscriber/bind.ts +9 -14
  387. package/src/core/utils/LocationHandler.spec.ts +80 -0
  388. package/src/core/utils/LocationHandler.ts +5 -9
  389. package/src/docs/components/docs-demo-sources.ts +55 -140
  390. package/src/docs/components/docs-lit-demo.ts +1 -3
  391. package/src/docs/components/docs-source-link.ts +0 -82
  392. package/src/docs/decorators/ancestor-attribute.md +59 -0
  393. package/src/docs/decorators/auto-subscribe.md +40 -0
  394. package/src/docs/decorators/bind.md +76 -0
  395. package/src/docs/decorators/get.md +160 -0
  396. package/src/docs/decorators/handle.md +119 -0
  397. package/src/docs/decorators/on-assign.md +63 -0
  398. package/src/docs/decorators/patch.md +44 -0
  399. package/src/docs/decorators/post.md +134 -0
  400. package/src/docs/decorators/publish.md +56 -0
  401. package/src/docs/decorators/put.md +51 -0
  402. package/src/docs/decorators/subscribe.md +87 -0
  403. package/src/docs/decorators/wait-for-ancestors.md +76 -0
  404. package/src/docs/directives/sub.md +75 -0
  405. package/src/docs/directives/t.md +73 -0
  406. package/src/docs/docs-location.spec.ts +56 -0
  407. package/src/docs/docs-location.ts +133 -32
  408. package/src/docs/docs.ts +1 -2
  409. package/src/docs/example/decorators-demo-bind-demos.ts +83 -135
  410. package/src/docs/example/decorators-demo-geo.ts +30 -19
  411. package/src/docs/example/decorators-demo-post.ts +88 -186
  412. package/src/docs/example/decorators-demo-subscribe-publish-get-demos.ts +165 -268
  413. package/src/docs/example/decorators-demo.ts +85 -98
  414. package/src/docs/example/docs-api-config-demos.ts +19 -20
  415. package/src/docs/example/docs-flight-demos.ts +147 -0
  416. package/src/docs/example/docs-jsonata-demos.ts +52 -52
  417. package/src/docs/example/docs-list-demos.ts +43 -123
  418. package/src/docs/example/docs-provider-keys.ts +21 -28
  419. package/src/docs/example/docs-queue-demos.ts +37 -77
  420. package/src/docs/example/docs-router-demos.ts +20 -25
  421. package/src/docs/example/docs-submit-demos.ts +48 -48
  422. package/src/docs/example/docs-toggle-demos.ts +4 -3
  423. package/src/docs/getting-started/ai-agents.md +50 -0
  424. package/src/docs/getting-started/components.md +5 -0
  425. package/src/docs/getting-started/create-a-component.md +136 -0
  426. package/src/docs/getting-started/dataFlow.md +87 -0
  427. package/src/docs/getting-started/installation.md +36 -0
  428. package/src/docs/getting-started/my-first-component.md +227 -0
  429. package/src/docs/getting-started/start.md +35 -0
  430. package/src/docs/getting-started/theming.md +253 -0
  431. package/src/docs/header/header.ts +11 -6
  432. package/src/docs/home/catalog.ts +1 -1
  433. package/src/docs/home/home.ts +20 -11
  434. package/src/docs/layout.ts +12 -13
  435. package/src/docs/misc/api-configuration.md +79 -0
  436. package/src/docs/misc/dataProviderKey.md +168 -0
  437. package/src/docs/misc/docs-mock-api.md +62 -0
  438. package/src/docs/misc/dynamic-path.md +71 -0
  439. package/src/docs/misc/endpoint.md +45 -0
  440. package/src/docs/misc/html-integration.md +14 -0
  441. package/src/docs/mock-api/api-config-mock.ts +5 -0
  442. package/src/docs/mock-api/fixtures.ts +0 -278
  443. package/src/docs/mock-api/flights.ts +89 -0
  444. package/src/docs/mock-api/router.ts +3 -4
  445. package/src/docs/mock-api/urls.ts +1 -2
  446. package/src/docs/navigation/navigation.ts +82 -103
  447. package/src/docs/navigation/toc.ts +7 -4
  448. package/src/docs/search/docs-search.json +2804 -5024
  449. package/src/docs/search/markdown-renderer.ts +31 -8
  450. package/src/docs/search/page.ts +9 -6
  451. package/src/docs/search/search.ts +154 -122
  452. package/src/docs/tailwind/css/docs/content.css +4 -5
  453. package/src/tsconfig.json +11 -5
  454. package/src/tsconfig.tsbuildinfo +1 -1
  455. package/vite.config.mts +11 -2
  456. package/.agents/skills/concorde-component-docs/SKILL.md +0 -194
  457. package/ai/AGENTS.md +0 -56
  458. package/ai/cursor/rules/concorde-menu.mdc +0 -15
  459. package/ai/cursor/rules/concorde-scope.mdc +0 -14
  460. package/ai/cursor/rules/concorde-theme.mdc +0 -13
  461. package/ai/cursor/rules/concorde.mdc +0 -66
  462. package/ai/jetbrains/rules/concorde.md +0 -53
  463. package/ai/skills/concorde-get-set-dp/SKILL.md +0 -194
  464. package/ai/skills/concorde-imports/SKILL.md +0 -78
  465. package/ai/skills/concorde-menu/SKILL.md +0 -74
  466. package/ai/skills/concorde-scope/SKILL.md +0 -70
  467. package/ai/skills/concorde-theme/SKILL.md +0 -57
  468. package/docs/assets/index-CD4WyL6o.css +0 -1
  469. package/src/core/components/ui/form/input-autocomplete/input-autocomplete.md +0 -29
  470. package/src/docs/_core-concept/overview.md +0 -57
  471. package/src/docs/_core-concept/subscriber.md +0 -75
  472. package/src/docs/_decorators/ancestor-attribute.md +0 -128
  473. package/src/docs/_decorators/auto-subscribe.md +0 -202
  474. package/src/docs/_decorators/bind.md +0 -167
  475. package/src/docs/_decorators/get.md +0 -162
  476. package/src/docs/_decorators/handle.md +0 -175
  477. package/src/docs/_decorators/on-assign.md +0 -390
  478. package/src/docs/_decorators/patch.md +0 -70
  479. package/src/docs/_decorators/post.md +0 -146
  480. package/src/docs/_decorators/publish.md +0 -55
  481. package/src/docs/_decorators/put.md +0 -70
  482. package/src/docs/_decorators/subscribe.md +0 -100
  483. package/src/docs/_decorators/wait-for-ancestors.md +0 -163
  484. package/src/docs/_directives/sub.md +0 -91
  485. package/src/docs/_getting-started/ai-agents.md +0 -76
  486. package/src/docs/_getting-started/concorde-manual-install.md +0 -133
  487. package/src/docs/_getting-started/concorde-outside.md +0 -33
  488. package/src/docs/_getting-started/my-first-subscriber.md +0 -120
  489. package/src/docs/_getting-started/pubsub.md +0 -37
  490. package/src/docs/_misc/formelement-subscriber-removal.md +0 -115
  491. package/src/docs/example/docs-input-autocomplete-demos.ts +0 -110
  492. package/src/docs/example/docs-joke-demos.ts +0 -297
  493. /package/{src/docs/_getting-started → docs/docs/getting-started}/components.md +0 -0
  494. /package/{src/docs/_getting-started → docs/docs/getting-started}/theming.md +0 -0
@@ -2,7 +2,7 @@ import { css, html, LitElement, nothing } from "lit";
2
2
  import { customElement, property, state } from "lit/decorators.js";
3
3
  import { unsafeHTML } from "lit/directives/unsafe-html.js";
4
4
  import { tailwind } from "../tailwind";
5
- import { docsSourceLinks, type DocsSource } from "./docs-source-link";
5
+ import type { DocsSource } from "./docs-source-link";
6
6
  import { DOCS_SOURCE_RAW } from "./docs-source-raw";
7
7
  import { resolveSourceExcerpt } from "./docs-source-excerpt";
8
8
  import { docsCodeCSS, highlightDocsCode } from "../shiki";
@@ -24,7 +24,7 @@ export const DOCS_LIT_DEMO_REGISTRY: Record<string, DocsLitDemoConfig> = {
24
24
  sources: [
25
25
  {
26
26
  path: "src/docs/example/docs-boarding-pass-demo.ts",
27
- line: 19,
27
+ line: 18,
28
28
  label: "docs-boarding-pass-demo",
29
29
  },
30
30
  ],
@@ -42,80 +42,39 @@ export const DOCS_LIT_DEMO_REGISTRY: Record<string, DocsLitDemoConfig> = {
42
42
  sources: [
43
43
  {
44
44
  path: "src/docs/example/docs-toggle-demos.ts",
45
- line: 49,
45
+ line: 50,
46
46
  label: "docs-toggle-loader-demo",
47
47
  },
48
48
  ],
49
49
  },
50
- "docs-joke-search-demo": {
51
- sources: [
52
- { path: "src/docs/example/docs-joke-demos.ts", line: 111, label: "search" },
53
- ],
54
- },
55
- "docs-joke-lang-demo": {
50
+ "docs-flight-search-demo": {
56
51
  sources: [
57
- { path: "src/docs/example/docs-joke-demos.ts", line: 136, label: "lang" },
52
+ { path: "src/docs/example/docs-flight-demos.ts", line: 65, label: "search" },
58
53
  ],
59
54
  },
60
- "docs-joke-blacklist-demo": {
55
+ "docs-flight-direction-demo": {
61
56
  sources: [
62
- { path: "src/docs/example/docs-joke-demos.ts", line: 181, label: "blacklist" },
57
+ { path: "src/docs/example/docs-flight-demos.ts", line: 85, label: "direction" },
63
58
  ],
64
59
  },
65
- "docs-joke-blacklist-radio-demo": {
60
+ "docs-flight-status-radio-demo": {
66
61
  sources: [
67
- { path: "src/docs/example/docs-joke-demos.ts", line: 212, label: "radio" },
62
+ { path: "src/docs/example/docs-flight-demos.ts", line: 106, label: "radio" },
68
63
  ],
69
64
  },
70
- "docs-joke-blacklist-switch-demo": {
65
+ "docs-flight-delayed-switch-demo": {
71
66
  sources: [
72
- { path: "src/docs/example/docs-joke-demos.ts", line: 256, label: "switch" },
67
+ { path: "src/docs/example/docs-flight-demos.ts", line: 129, label: "switch" },
73
68
  ],
74
69
  },
75
70
  "docs-queue-users-demo": {
76
71
  sources: [
77
- { path: "src/docs/example/docs-queue-demos.ts", line: 66, label: "users" },
72
+ { path: "src/docs/example/docs-queue-demos.ts", line: 45, label: "filter" },
78
73
  ],
79
74
  },
80
75
  "docs-queue-geo-demo": {
81
76
  sources: [
82
- { path: "src/docs/example/docs-queue-demos.ts", line: 38, label: "geo" },
83
- ],
84
- },
85
- "docs-input-autocomplete-basic-demo": {
86
- sources: [
87
- {
88
- path: "src/docs/example/docs-input-autocomplete-demos.ts",
89
- line: 11,
90
- label: "basic",
91
- },
92
- ],
93
- },
94
- "docs-input-autocomplete-code-demo": {
95
- sources: [
96
- {
97
- path: "src/docs/example/docs-input-autocomplete-demos.ts",
98
- line: 36,
99
- label: "code",
100
- },
101
- ],
102
- },
103
- "docs-input-autocomplete-select-demo": {
104
- sources: [
105
- {
106
- path: "src/docs/example/docs-input-autocomplete-demos.ts",
107
- line: 63,
108
- label: "select",
109
- },
110
- ],
111
- },
112
- "docs-input-autocomplete-keyboard-demo": {
113
- sources: [
114
- {
115
- path: "src/docs/example/docs-input-autocomplete-demos.ts",
116
- line: 91,
117
- label: "keyboard",
118
- },
77
+ { path: "src/docs/example/docs-queue-demos.ts", line: 26, label: "lazy load" },
119
78
  ],
120
79
  },
121
80
  "docs-users-list": {
@@ -136,29 +95,24 @@ export const DOCS_LIT_DEMO_REGISTRY: Record<string, DocsLitDemoConfig> = {
136
95
  sources: [
137
96
  {
138
97
  path: "src/docs/example/docs-jsonata-demos.ts",
139
- line: 69,
98
+ line: 73,
140
99
  label: "totals",
141
100
  },
142
101
  ],
143
102
  },
144
103
  "docs-list-alternate-demo": {
145
104
  sources: [
146
- { path: "src/docs/example/docs-list-demos.ts", line: 51, label: "alternate" },
147
- ],
148
- },
149
- "docs-list-template-key-demo": {
150
- sources: [
151
- { path: "src/docs/example/docs-list-demos.ts", line: 79, label: "templateKey" },
105
+ { path: "src/docs/example/docs-list-demos.ts", line: 9, label: "alternate" },
152
106
  ],
153
107
  },
154
108
  "docs-list-separator-demo": {
155
109
  sources: [
156
- { path: "src/docs/example/docs-list-demos.ts", line: 118, label: "separator" },
110
+ { path: "src/docs/example/docs-list-demos.ts", line: 39, label: "separator" },
157
111
  ],
158
112
  },
159
113
  "docs-list-extract-values-demo": {
160
114
  sources: [
161
- { path: "src/docs/example/docs-list-demos.ts", line: 146, label: "extractValues" },
115
+ { path: "src/docs/example/docs-list-demos.ts", line: 75, label: "extractValues" },
162
116
  ],
163
117
  },
164
118
  "docs-router-basic-demo": {
@@ -237,14 +191,14 @@ export const DOCS_LIT_DEMO_REGISTRY: Record<string, DocsLitDemoConfig> = {
237
191
  },
238
192
  "docs-api-config-scoped-attrs-demo": {
239
193
  sources: [
240
- { path: "src/docs/example/docs-api-config-demos.ts", line: 162, label: "scope" },
194
+ { path: "src/docs/example/docs-api-config-demos.ts", line: 161, label: "scope" },
241
195
  ],
242
196
  },
243
197
  "docs-api-config-events-token-demo": {
244
198
  sources: [
245
199
  {
246
200
  path: "src/docs/example/docs-api-config-demos.ts",
247
- line: 191,
201
+ line: 190,
248
202
  label: "eventsApiToken",
249
203
  },
250
204
  ],
@@ -261,49 +215,27 @@ export const DOCS_DEMO_SOURCE_REGISTRY: Record<string, DocsSource[]> = {
261
215
  { path: "src/docs/example/users.ts", label: "docs-user" },
262
216
  { path: "src/docs/example/decorators-demo-init.ts", label: "demo data" },
263
217
  ],
264
- "docs-joke-search-demo": [
265
- { path: "src/docs/example/docs-joke-demos.ts", label: "joke demos" },
218
+ "docs-flight-search-demo": [
219
+ { path: "src/docs/example/docs-flight-demos.ts", label: "flight demos" },
220
+ { path: "src/docs/mock-api/flights.ts", label: "mock flights" },
266
221
  ],
267
222
  "docs-jsonata-space-cats-demo": [
268
223
  { path: "src/docs/example/docs-jsonata-demos.ts", label: "jsonata demos" },
269
- { path: "src/docs/mock-api/fixtures-jsonata.ts", label: "fixtures" },
270
224
  ],
271
225
  "docs-jsonata-table-totals-demo": [
272
226
  { path: "src/docs/example/docs-jsonata-demos.ts", label: "jsonata demos" },
273
- { path: "src/docs/mock-api/fixtures-jsonata.ts", label: "fixtures" },
274
227
  ],
275
- "docs-joke-lang-demo": [
276
- { path: "src/docs/example/docs-joke-demos.ts", label: "joke demos" },
228
+ "docs-flight-direction-demo": [
229
+ { path: "src/docs/example/docs-flight-demos.ts", label: "flight demos" },
230
+ { path: "src/docs/mock-api/flights.ts", label: "mock flights" },
277
231
  ],
278
232
  "docs-queue-geo-demo": [
279
233
  { path: "src/docs/example/docs-queue-demos.ts", label: "queue demos" },
280
- ],
281
- "docs-input-autocomplete-basic-demo": [
282
- {
283
- path: "src/docs/example/docs-input-autocomplete-demos.ts",
284
- label: "autocomplete demos",
285
- },
286
- ],
287
- "docs-input-autocomplete-code-demo": [
288
- {
289
- path: "src/docs/example/docs-input-autocomplete-demos.ts",
290
- label: "autocomplete demos",
291
- },
292
- ],
293
- "docs-input-autocomplete-select-demo": [
294
- {
295
- path: "src/docs/example/docs-input-autocomplete-demos.ts",
296
- label: "autocomplete demos",
297
- },
298
- ],
299
- "docs-input-autocomplete-keyboard-demo": [
300
- {
301
- path: "src/docs/example/docs-input-autocomplete-demos.ts",
302
- label: "autocomplete demos",
303
- },
234
+ { path: "src/docs/mock-api/flights.ts", label: "mock flights" },
304
235
  ],
305
236
  "docs-queue-users-demo": [
306
237
  { path: "src/docs/example/docs-queue-demos.ts", label: "queue demos" },
238
+ { path: "src/docs/mock-api/flights.ts", label: "mock flights" },
307
239
  ],
308
240
  "docs-toggle-if-demo": [
309
241
  { path: "src/docs/example/docs-toggle-demos.ts", label: "toggle demos" },
@@ -314,34 +246,31 @@ export const DOCS_DEMO_SOURCE_REGISTRY: Record<string, DocsSource[]> = {
314
246
  "demo-publish": [
315
247
  {
316
248
  path: "src/docs/example/decorators-demo-subscribe-publish-get-demos.ts",
317
- line: 32,
249
+ line: 81,
318
250
  label: "demo-publish",
319
251
  },
320
- { path: "src/docs/example/decorators-demo-init.ts", label: "demo data" },
321
252
  ],
322
253
  "demo-subscribe-dynamic": [
323
254
  {
324
255
  path: "src/docs/example/decorators-demo-subscribe-publish-get-demos.ts",
325
- line: 269,
256
+ line: 263,
326
257
  label: "demo-subscribe-dynamic",
327
258
  },
328
- { path: "src/docs/example/decorators-demo-init.ts", label: "demo data" },
329
259
  ],
330
260
  "demo-sub-template": [
331
261
  {
332
262
  path: "src/docs/example/decorators-demo-subscribe-publish-get-demos.ts",
333
- line: 238,
263
+ line: 244,
334
264
  label: "demo-sub-template",
335
265
  },
336
- { path: "src/docs/example/decorators-demo-init.ts", label: "demo data" },
337
266
  ],
338
267
  "demo-api-get": [
339
268
  {
340
269
  path: "src/docs/example/decorators-demo-subscribe-publish-get-demos.ts",
341
- line: 86,
270
+ line: 121,
342
271
  label: "demo-api-get",
343
272
  },
344
- { path: "src/docs/example/decorators-demo-geo.ts", label: "geo API" },
273
+ { path: "src/docs/example/decorators-demo-geo.ts", label: "flights API" },
345
274
  { path: "src/docs/mock-api/router.ts", label: "mock router" },
346
275
  ],
347
276
  "demo-api-get-method": [
@@ -349,28 +278,28 @@ export const DOCS_DEMO_SOURCE_REGISTRY: Record<string, DocsSource[]> = {
349
278
  path: "src/docs/example/decorators-demo-subscribe-publish-get-demos.ts",
350
279
  label: "demo-api-get-method",
351
280
  },
352
- { path: "src/docs/example/decorators-demo-geo.ts", label: "geo API" },
281
+ { path: "src/docs/example/decorators-demo-geo.ts", label: "flights API" },
353
282
  ],
354
283
  "demo-api-get-configuration-key": [
355
284
  {
356
285
  path: "src/docs/example/decorators-demo-subscribe-publish-get-demos.ts",
357
- line: 127,
286
+ line: 181,
358
287
  label: "demo-api-get-configuration-key",
359
288
  },
360
- { path: "src/docs/example/decorators-demo-geo.ts", label: "geo API" },
289
+ { path: "src/docs/example/decorators-demo-geo.ts", label: "flights API" },
361
290
  ],
362
291
  "demo-api-get-publish-subscribe": [
363
292
  {
364
293
  path: "src/docs/example/decorators-demo-subscribe-publish-get-demos.ts",
365
- line: 178,
294
+ line: 217,
366
295
  label: "demo-api-get-publish-subscribe",
367
296
  },
368
- { path: "src/docs/example/decorators-demo-geo.ts", label: "geo API" },
297
+ { path: "src/docs/example/decorators-demo-geo.ts", label: "flights API" },
369
298
  ],
370
299
  "demo-api-post": [
371
300
  {
372
301
  path: "src/docs/example/decorators-demo-post.ts",
373
- line: 53,
302
+ line: 69,
374
303
  label: "demo-api-post",
375
304
  },
376
305
  { path: "src/docs/mock-api/router.ts", label: "mock router" },
@@ -385,15 +314,15 @@ export const DOCS_DEMO_SOURCE_REGISTRY: Record<string, DocsSource[]> = {
385
314
  "demo-api-post-dynamic": [
386
315
  {
387
316
  path: "src/docs/example/decorators-demo-post.ts",
388
- line: 143,
317
+ line: 144,
389
318
  label: "demo-api-post-dynamic",
390
319
  },
391
- { path: "src/docs/mock-api/router.ts", label: "mock router (sessions sync)" },
320
+ { path: "src/docs/mock-api/router.ts", label: "mock router (check-in sync)" },
392
321
  ],
393
322
  "demo-api-post-publish": [
394
323
  {
395
324
  path: "src/docs/example/decorators-demo-post.ts",
396
- line: 209,
325
+ line: 191,
397
326
  label: "demo-api-post-publish",
398
327
  },
399
328
  { path: "src/docs/mock-api/router.ts", label: "mock router" },
@@ -401,27 +330,24 @@ export const DOCS_DEMO_SOURCE_REGISTRY: Record<string, DocsSource[]> = {
401
330
  "demo-handle": [
402
331
  {
403
332
  path: "src/docs/example/decorators-demo-subscribe-publish-get-demos.ts",
404
- line: 316,
333
+ line: 299,
405
334
  label: "demo-handle",
406
335
  },
407
- { path: "src/docs/example/decorators-demo-init.ts", label: "demo data" },
408
336
  ],
409
337
  "demo-handle-dynamic": [
410
338
  {
411
339
  path: "src/docs/example/decorators-demo-subscribe-publish-get-demos.ts",
412
- line: 351,
340
+ line: 330,
413
341
  label: "demo-handle-dynamic",
414
342
  },
415
- { path: "src/docs/example/decorators-demo-init.ts", label: "demo data" },
416
343
  ],
417
344
  "demo-bind": [
418
- { path: "src/docs/example/decorators-demo-bind-demos.ts", line: 14, label: "demo-bind" },
419
- { path: "src/docs/example/decorators-demo-init.ts", label: "demo data" },
345
+ { path: "src/docs/example/decorators-demo-bind-demos.ts", line: 36, label: "demo-bind" },
420
346
  ],
421
347
  "demo-bind-reflect": [
422
348
  {
423
349
  path: "src/docs/example/decorators-demo-bind-demos.ts",
424
- line: 56,
350
+ line: 74,
425
351
  label: "demo-bind-reflect",
426
352
  },
427
353
  { path: "src/docs/example/decorators-demo-init.ts", label: "demo data" },
@@ -429,18 +355,17 @@ export const DOCS_DEMO_SOURCE_REGISTRY: Record<string, DocsSource[]> = {
429
355
  "demo-bind-dynamic": [
430
356
  {
431
357
  path: "src/docs/example/decorators-demo-bind-demos.ts",
432
- line: 124,
358
+ line: 113,
433
359
  label: "demo-bind-dynamic",
434
360
  },
435
- { path: "src/docs/example/decorators-demo-init.ts", label: "demo data" },
436
361
  ],
437
362
  "demo-ancestor-attribute": [
438
- { path: "src/docs/example/decorators-demo.ts", line: 35, label: "demo-ancestor-attribute" },
363
+ { path: "src/docs/example/decorators-demo.ts", line: 31, label: "demo-ancestor-attribute" },
439
364
  ],
440
365
  "demo-ancestor-attribute-dynamic-section": [
441
366
  {
442
367
  path: "src/docs/example/decorators-demo.ts",
443
- line: 60,
368
+ line: 81,
444
369
  label: "demo-ancestor-attribute-dynamic",
445
370
  },
446
371
  {
@@ -450,25 +375,25 @@ export const DOCS_DEMO_SOURCE_REGISTRY: Record<string, DocsSource[]> = {
450
375
  },
451
376
  ],
452
377
  "demo-on-assign": [
453
- { path: "src/docs/example/decorators-demo.ts", line: 43, label: "demo-on-assign" },
378
+ { path: "src/docs/example/decorators-demo.ts", line: 205, label: "demo-on-assign" },
454
379
  { path: "src/docs/example/decorators-demo-init.ts", label: "demo data" },
455
380
  ],
456
381
  "demo-on-assign-dynamic": [
457
382
  {
458
383
  path: "src/docs/example/decorators-demo.ts",
459
- line: 94,
384
+ line: 253,
460
385
  label: "demo-on-assign-dynamic",
461
386
  },
462
387
  { path: "src/docs/example/decorators-demo-init.ts", label: "demo data" },
463
388
  ],
464
389
  "demo-auto-subscribe": [
465
- { path: "src/docs/example/decorators-demo.ts", line: 211, label: "demo-auto-subscribe" },
390
+ { path: "src/docs/example/decorators-demo.ts", line: 366, label: "demo-auto-subscribe" },
466
391
  { path: "src/docs/example/decorators-demo-init.ts", label: "demo data" },
467
392
  ],
468
393
  "demo-wait-ancestors-section": [
469
394
  {
470
395
  path: "src/docs/example/decorators-demo.ts",
471
- line: 278,
396
+ line: 430,
472
397
  label: "demo-wait-ancestors-section",
473
398
  },
474
399
  { path: "src/docs/example/decorators-demo-init.ts", label: "demo data" },
@@ -476,7 +401,7 @@ export const DOCS_DEMO_SOURCE_REGISTRY: Record<string, DocsSource[]> = {
476
401
  "demo-wait-ancestors-multi-section": [
477
402
  {
478
403
  path: "src/docs/example/decorators-demo.ts",
479
- line: 355,
404
+ line: 507,
480
405
  label: "demo-wait-ancestors-multi-section",
481
406
  },
482
407
  { path: "src/docs/example/decorators-demo-init.ts", label: "demo data" },
@@ -484,14 +409,14 @@ export const DOCS_DEMO_SOURCE_REGISTRY: Record<string, DocsSource[]> = {
484
409
  "demo-wait-ancestors-static-section": [
485
410
  {
486
411
  path: "src/docs/example/decorators-demo.ts",
487
- line: 462,
412
+ line: 610,
488
413
  label: "demo-wait-ancestors-static-section",
489
414
  },
490
415
  ],
491
416
  "demo-wait-ancestors-ready-section": [
492
417
  {
493
418
  path: "src/docs/example/decorators-demo.ts",
494
- line: 432,
419
+ line: 584,
495
420
  label: "demo-wait-ancestors-ready-section",
496
421
  },
497
422
  ],
@@ -503,15 +428,6 @@ export const DOCS_DEMO_SOURCE_REGISTRY: Record<string, DocsSource[]> = {
503
428
  { path: "src/core/components/functional/list/list.demo.ts", label: "sonic-list-demo" },
504
429
  { path: "src/docs/mock-api/router.ts", label: "mock router" },
505
430
  ],
506
- "queue-users-scroll": [
507
- { path: "src/docs/example/docs-queue-demos.ts", label: "docs-queue-users-demo" },
508
- { path: "src/docs/example/users.ts", label: "docs-user" },
509
- ],
510
- /** Inline list.md fetch demo — component + mock. */
511
- "list-users-fetch": [
512
- { path: "src/docs/example/docs-users-list.ts", label: "docs-users-list" },
513
- { path: "src/docs/mock-api/router.ts", label: "mock API" },
514
- ],
515
431
  "docs-submit-demo": [
516
432
  { path: "src/docs/example/docs-submit-demos.ts", label: "submit demo" },
517
433
  { path: "src/docs/mock-api/router.ts", label: "mock API (POST register)" },
@@ -603,7 +519,6 @@ export class DocsDemoSources extends LitElement {
603
519
  const sources = DOCS_DEMO_SOURCE_REGISTRY[this.forTag];
604
520
  if (!sources?.length) return nothing;
605
521
  return html`
606
- ${docsSourceLinks(sources)}
607
522
  ${this.showCode && this.highlighted
608
523
  ? html`
609
524
  <pre
@@ -2,7 +2,6 @@ import { css, html, LitElement, nothing, PropertyValues } from "lit";
2
2
  import { customElement, property } from "lit/decorators.js";
3
3
  import { unsafeHTML } from "lit/directives/unsafe-html.js";
4
4
  import { tailwind } from "../tailwind";
5
- import { docsSourceLinks } from "./docs-source-link";
6
5
  import {
7
6
  DOCS_LIT_DEMO_REGISTRY,
8
7
  type DocsLitDemoConfig,
@@ -40,7 +39,7 @@ export class DocsLitDemo extends LitElement {
40
39
  margin: 1.1rem 0;
41
40
  }
42
41
  .preview {
43
- border: 1px solid var(--sc-border, #e5e5e5);
42
+ border: 1px solid var(--sc-border-color, #e5e5e5);
44
43
  border-radius: 0.375rem;
45
44
  padding: 1rem;
46
45
  margin-bottom: 0.75rem;
@@ -81,7 +80,6 @@ export class DocsLitDemo extends LitElement {
81
80
  const excerpt = this.excerpt;
82
81
 
83
82
  return html`
84
- ${docsSourceLinks(cfg.sources)}
85
83
  <div class="preview" data-live-host></div>
86
84
  ${this.showCode && excerpt
87
85
  ? unsafeHTML(
@@ -1,88 +1,6 @@
1
- import { html, nothing } from "lit";
2
- import "../../core/components/ui/button/button";
3
- import "../../core/components/ui/icon/icon";
4
-
5
- declare const __DOCS_EDITOR_AVAILABLE__: boolean;
6
-
7
1
  export type DocsSource = {
8
2
  path: string;
9
3
  line?: number;
10
4
  column?: number;
11
5
  label?: string;
12
6
  };
13
-
14
- const editorAvailable =
15
- import.meta.env.DEV &&
16
- typeof __DOCS_EDITOR_AVAILABLE__ !== "undefined" &&
17
- __DOCS_EDITOR_AVAILABLE__;
18
-
19
- function openDocsSource(source: DocsSource, event: Event) {
20
- event.preventDefault();
21
- if (!editorAvailable) return;
22
-
23
- const params = new URLSearchParams({
24
- path: source.path,
25
- line: String(source.line ?? 1),
26
- column: String(source.column ?? 1),
27
- });
28
-
29
- void fetch(`/__docs/open?${params}`).catch(() => {
30
- console.warn("[docs] Could not open in editor:", source.path);
31
- });
32
- }
33
-
34
- export function docsSourceLink(source: DocsSource) {
35
- if (!editorAvailable) return nothing;
36
- const label = source.label ?? source.path.split("/").pop() ?? "source";
37
- return html`
38
- <sonic-button
39
- variant="link"
40
- size="2xs"
41
- type="neutral"
42
- title=${source.path}
43
- @click=${(e: Event) => openDocsSource(source, e)}
44
- >
45
- <sonic-icon
46
- library="heroicons"
47
- name="arrow-top-right-on-square"
48
- class="w-3 h-3 opacity-70"
49
- ></sonic-icon>
50
- ${label}
51
- </sonic-button>
52
- `;
53
- }
54
-
55
- export function docsSourceLinks(sources: DocsSource[]) {
56
- if (sources.length === 0) return nothing;
57
- return html`
58
- <div
59
- class="flex flex-wrap items-center gap-x-1 gap-y-1 mb-3 pb-3 border-b border-neutral-200/80 dark:border-neutral-700/80"
60
- >
61
- <span class="text-xs uppercase tracking-wide text-neutral-400 mr-1"
62
- >Source</span
63
- >
64
- ${editorAvailable
65
- ? sources.map((s, i) =>
66
- i === 0
67
- ? docsSourceLink(s)
68
- : html`<span class="text-neutral-300 dark:text-neutral-600"
69
- >·</span
70
- >${docsSourceLink(s)}`,
71
- )
72
- : sources.map(
73
- (s, i) => html`
74
- ${i > 0
75
- ? html`<span class="text-neutral-300 dark:text-neutral-600"
76
- >·</span
77
- >`
78
- : nothing}
79
- <span
80
- class="text-xs font-mono text-neutral-500 dark:text-neutral-400"
81
- title=${s.path}
82
- >${s.label ?? s.path.split("/").pop()}</span
83
- >
84
- `,
85
- )}
86
- </div>
87
- `;
88
- }
@@ -0,0 +1,59 @@
1
+ # @ancestorAttribute
2
+
3
+ Copies the value of an attribute from the nearest element that carries it (the host itself, then its ancestors, across shadow roots) into a class property. Use it to pick up a scope such as `dataProvider` without passing it down by hand, typically to feed a dynamic key of [@subscribe](/docs/decorators/subscribe).
4
+
5
+ ## Import
6
+
7
+ <sonic-code language="typescript">
8
+ <template>
9
+ import { ancestorAttribute } from "@supersoniks/concorde/decorators";
10
+
11
+ @ancestorAttribute("dataProvider")
12
+ dataProvider: string | null = null;
13
+ </template>
14
+ </sonic-code>
15
+
16
+ ## Read once at connect
17
+
18
+ By default the value is read once, just before the component's `connectedCallback`, and never updated. The closest element with the attribute wins. If no ancestor has it, the property keeps its initial value.
19
+
20
+ <sonic-code>
21
+ <template>
22
+ <div dataProvider="flights.CN001" gate="B12">
23
+ <docs-demo-sources for="demo-ancestor-attribute"></docs-demo-sources>
24
+ <demo-ancestor-attribute></demo-ancestor-attribute>
25
+ </div>
26
+ </template>
27
+ </sonic-code>
28
+
29
+ An attribute present without a value (`<div gate>`) resolves to `""`. A camelCase name also matches its lowercase form (`dataProvider` and `dataprovider`).
30
+
31
+ ## Follow DOM changes
32
+
33
+ With `{ dynamic: true }`, the property stays in sync while the component is connected: when an ancestor changes the attribute, when a closer ancestor gains or loses it, and when the component is moved. When no ancestor has the attribute, the property becomes `null`. Add `@state()` so Lit re-renders on each assignment.
34
+
35
+ <sonic-code language="typescript">
36
+ <template>
37
+ @ancestorAttribute("dataProvider", { dynamic: true })
38
+ @state()
39
+ dataProvider: string | null = null;
40
+ </template>
41
+ </sonic-code>
42
+
43
+ Change the parent or outer value, insert a closer wrapper, or remove an attribute: the child always shows the nearest one.
44
+
45
+ <sonic-code>
46
+ <template>
47
+ <docs-demo-sources for="demo-ancestor-attribute-dynamic-section"></docs-demo-sources>
48
+ <demo-ancestor-attribute-dynamic-section></demo-ancestor-attribute-dynamic-section>
49
+ </template>
50
+ </sonic-code>
51
+
52
+ Keys of [@subscribe](/docs/decorators/subscribe) and [@bind](/docs/decorators/bind) that use the property as a placeholder (`"${dataProvider}"`) are re-resolved on each change.
53
+
54
+ ## API reference
55
+
56
+ | Argument | Type | Description |
57
+ |----------|------|-------------|
58
+ | `attributeName` | `string` | Attribute to look up on the host, then on its ancestors |
59
+ | `options.dynamic` | `boolean` (default `false`) | Keep the property in sync with attribute changes and reparenting until disconnect; assigns `null` when no ancestor has the attribute |
@@ -0,0 +1,40 @@
1
+ # @autoSubscribe
2
+
3
+ Legacy decorator that re-runs a method whenever one of the store values it reads is assigned. For new code, prefer [@subscribe](/docs/decorators/subscribe) with a [`DataProviderKey`](/docs/misc/dataProviderKey): dependencies are explicit and typed.
4
+
5
+ ## Import
6
+
7
+ <sonic-code language="typescript">
8
+ <template>
9
+ import { autoSubscribe } from "@supersoniks/concorde/decorators";
10
+ import { get } from "@supersoniks/concorde/utils";
11
+
12
+ @autoSubscribe()
13
+ updateDisplay() {
14
+ this.total = get(passengersKey) + get(crewKey);
15
+ }
16
+ </template>
17
+ </sonic-code>
18
+
19
+ ## Tracked reads
20
+
21
+ The method runs once after `connectedCallback`. Every store value read during that run becomes a dependency; assigning any of them runs the method again. Write the result to a `@state()` property (or call `requestUpdate()`) so the component re-renders.
22
+
23
+ <sonic-code>
24
+ <template>
25
+ <docs-demo-sources for="demo-auto-subscribe"></docs-demo-sources>
26
+ <demo-auto-subscribe></demo-auto-subscribe>
27
+ </template>
28
+ </sonic-code>
29
+
30
+ ## Notes
31
+
32
+ - Several assignments in the same task trigger a single re-run (batched with `queueMicrotask`).
33
+ - Keep reads unconditional: a value read only behind a condition becomes a dependency the first time that branch runs.
34
+ - Subscriptions are removed in `disconnectedCallback`.
35
+
36
+ ## API reference
37
+
38
+ | Argument | Type | Description |
39
+ |----------|------|-------------|
40
+ | none | | `@autoSubscribe()` takes no argument; apply it to a method of a custom element |