@supersoniks/concorde 5.1.0 → 5.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (628) hide show
  1. package/.agents/skills/concorde-docs/SKILL.md +153 -0
  2. package/.agents/skills/{concorde-component-docs/template.md → concorde-docs/templates/component.md} +6 -2
  3. package/.agents/skills/concorde-docs/templates/decorator.md +43 -0
  4. package/.agents/skills/concorde-docs/templates/guide.md +25 -0
  5. package/.claude/launch.json +15 -0
  6. package/.claude/vite.http.config.mjs +7 -0
  7. package/.taste-skill/after/desktop-fold.jpg +0 -0
  8. package/.taste-skill/after/desktop-page-01.jpg +0 -0
  9. package/.taste-skill/after/desktop-page-02.jpg +0 -0
  10. package/.taste-skill/after/desktop-page-03.jpg +0 -0
  11. package/.taste-skill/after/mobile-fold.jpg +0 -0
  12. package/.taste-skill/after/mobile-page-01.jpg +0 -0
  13. package/.taste-skill/after/report.json +4103 -0
  14. package/.taste-skill/after/tablet-fold.jpg +0 -0
  15. package/.taste-skill/after/tablet-page-01.jpg +0 -0
  16. package/.taste-skill/after/tablet-page-02.jpg +0 -0
  17. package/.taste-skill/before/desktop-fold.jpg +0 -0
  18. package/.taste-skill/before/desktop-page-01.jpg +0 -0
  19. package/.taste-skill/before/desktop-page-02.jpg +0 -0
  20. package/.taste-skill/before/mobile-fold.jpg +0 -0
  21. package/.taste-skill/before/mobile-page-01.jpg +0 -0
  22. package/.taste-skill/before/report.json +2556 -0
  23. package/.taste-skill/before/tablet-fold.jpg +0 -0
  24. package/.taste-skill/before/tablet-page-01.jpg +0 -0
  25. package/.taste-skill/direction.json +510 -0
  26. package/.taste-skill/notes.md +84 -0
  27. package/.taste-skill/prod/desktop-fold.jpg +0 -0
  28. package/.taste-skill/prod/desktop-page-01.jpg +0 -0
  29. package/.taste-skill/prod/desktop-page-02.jpg +0 -0
  30. package/.taste-skill/prod/desktop-page-03.jpg +0 -0
  31. package/.taste-skill/prod/mobile-fold.jpg +0 -0
  32. package/.taste-skill/prod/mobile-page-01.jpg +0 -0
  33. package/.taste-skill/prod/mobile-page-02.jpg +0 -0
  34. package/.taste-skill/prod/report.json +1973 -0
  35. package/.taste-skill/prod/tablet-fold.jpg +0 -0
  36. package/.taste-skill/prod/tablet-page-01.jpg +0 -0
  37. package/.taste-skill/prod/tablet-page-02.jpg +0 -0
  38. package/.tmp-cem/custom-elements.json +2013 -2013
  39. package/AUDIT.md +228 -0
  40. package/PLAN-AMELIORATION.md +220 -0
  41. package/PLAN-DOCS-AGENTS.md +80 -0
  42. package/README.md +3 -3
  43. package/ai/skills/concorde/SKILL.md +1 -1
  44. package/ai/skills/concorde-get-set-dp/SKILL.md +3 -3
  45. package/ai/skills/concorde-theme/SKILL.md +1 -1
  46. package/build-infos.json +1 -1
  47. package/concorde-core.bundle.js +16 -16
  48. package/concorde-core.es.js +235 -233
  49. package/dist/concorde-core.bundle.js +16 -16
  50. package/dist/concorde-core.es.js +235 -233
  51. package/dist/img/archive/concorde-001-2cv.webp +0 -0
  52. package/dist/img/archive/concorde-red-arrows-2002-poster.jpg +0 -0
  53. package/dist/img/archive/concorde-red-arrows-2002.webm +0 -0
  54. package/dist/img/archive/credits.json +28 -0
  55. package/docs/.htaccess +75 -0
  56. package/docs/404.html +15 -0
  57. package/docs/404.md +5 -0
  58. package/docs/assets/index-BgG6FFPt.js +11765 -0
  59. package/docs/assets/index-x89XINSG.css +1 -0
  60. package/docs/core/components/functional/date/date.html +211 -0
  61. package/docs/core/components/functional/date/date.md +150 -0
  62. package/docs/core/components/functional/fetch/fetch.html +180 -0
  63. package/docs/core/components/functional/fetch/fetch.md +108 -0
  64. package/docs/core/components/functional/if/if.html +65 -0
  65. package/docs/core/components/functional/if/if.md +34 -0
  66. package/docs/core/components/functional/jsonata/jsonata.html +110 -0
  67. package/docs/core/components/functional/jsonata/jsonata.md +61 -0
  68. package/docs/core/components/functional/list/list.html +198 -0
  69. package/docs/core/components/functional/list/list.md +121 -0
  70. package/docs/core/components/functional/mix/mix.html +78 -0
  71. package/docs/core/components/functional/mix/mix.md +46 -0
  72. package/docs/core/components/functional/queue/queue.html +155 -0
  73. package/docs/core/components/functional/queue/queue.md +51 -0
  74. package/docs/core/components/functional/router/router.html +154 -0
  75. package/docs/core/components/functional/router/router.md +93 -0
  76. package/docs/core/components/functional/sdui/sdui-extension-points.html +127 -0
  77. package/docs/core/components/functional/sdui/sdui-extension-points.md +94 -0
  78. package/docs/core/components/functional/sdui/sdui.html +397 -0
  79. package/docs/core/components/functional/sdui/sdui.md +307 -0
  80. package/docs/core/components/functional/states/states.html +141 -0
  81. package/docs/core/components/functional/states/states.md +112 -0
  82. package/docs/core/components/functional/submit/submit.html +178 -0
  83. package/docs/core/components/functional/submit/submit.md +106 -0
  84. package/docs/{crawl/core → core}/components/functional/subscriber/subscriber.html +6 -5
  85. package/docs/core/components/functional/subscriber/subscriber.md +91 -0
  86. package/docs/core/components/functional/translation/translation.html +60 -0
  87. package/docs/core/components/functional/translation/translation.md +38 -0
  88. package/docs/core/components/functional/value/value.html +81 -0
  89. package/docs/core/components/functional/value/value.md +47 -0
  90. package/docs/core/components/ui/alert/alert.html +201 -0
  91. package/docs/core/components/ui/alert/alert.md +186 -0
  92. package/docs/core/components/ui/alert-messages/alert-messages.html +132 -0
  93. package/docs/core/components/ui/alert-messages/alert-messages.md +85 -0
  94. package/docs/core/components/ui/badge/badge.html +197 -0
  95. package/docs/core/components/ui/badge/badge.md +181 -0
  96. package/docs/core/components/ui/button/button.html +309 -0
  97. package/docs/core/components/ui/button/button.md +216 -0
  98. package/docs/core/components/ui/captcha/captcha.html +80 -0
  99. package/docs/core/components/ui/captcha/captcha.md +56 -0
  100. package/docs/core/components/ui/card/card.html +254 -0
  101. package/docs/core/components/ui/card/card.md +215 -0
  102. package/docs/core/components/ui/divider/divider.html +144 -0
  103. package/docs/core/components/ui/divider/divider.md +126 -0
  104. package/docs/core/components/ui/form/checkbox/checkbox.html +200 -0
  105. package/docs/core/components/ui/form/checkbox/checkbox.md +125 -0
  106. package/docs/core/components/ui/form/fieldset/fieldset.html +238 -0
  107. package/docs/core/components/ui/form/fieldset/fieldset.md +161 -0
  108. package/docs/core/components/ui/form/form-actions/form-actions.html +122 -0
  109. package/docs/core/components/ui/form/form-actions/form-actions.md +98 -0
  110. package/docs/core/components/ui/form/form-layout/form-layout.html +115 -0
  111. package/docs/core/components/ui/form/form-layout/form-layout.md +109 -0
  112. package/docs/core/components/ui/form/input/input.html +235 -0
  113. package/docs/core/components/ui/form/input/input.md +142 -0
  114. package/docs/core/components/ui/form/radio/radio.html +144 -0
  115. package/docs/core/components/ui/form/radio/radio.md +78 -0
  116. package/docs/core/components/ui/form/select/select.html +178 -0
  117. package/docs/core/components/ui/form/select/select.md +86 -0
  118. package/docs/core/components/ui/form/switch/switch.html +146 -0
  119. package/docs/core/components/ui/form/switch/switch.md +80 -0
  120. package/docs/core/components/ui/form/textarea/textarea.html +162 -0
  121. package/docs/core/components/ui/form/textarea/textarea.md +82 -0
  122. package/docs/core/components/ui/group/group.html +113 -0
  123. package/docs/core/components/ui/group/group.md +77 -0
  124. package/docs/core/components/ui/icon/icon.html +223 -0
  125. package/docs/core/components/ui/icon/icon.md +214 -0
  126. package/docs/core/components/ui/image/image.html +194 -0
  127. package/docs/core/components/ui/image/image.md +167 -0
  128. package/docs/core/components/ui/link/link.html +101 -0
  129. package/docs/core/components/ui/link/link.md +81 -0
  130. package/docs/core/components/ui/loader/loader.html +114 -0
  131. package/docs/core/components/ui/loader/loader.md +87 -0
  132. package/docs/{crawl/core → core}/components/ui/menu/menu.html +189 -116
  133. package/docs/core/components/ui/menu/menu.md +370 -0
  134. package/docs/core/components/ui/modal/modal.html +324 -0
  135. package/docs/core/components/ui/modal/modal.md +211 -0
  136. package/docs/core/components/ui/pop/pop.html +250 -0
  137. package/docs/core/components/ui/pop/pop.md +216 -0
  138. package/docs/core/components/ui/progress/progress.html +132 -0
  139. package/docs/core/components/ui/progress/progress.md +109 -0
  140. package/docs/core/components/ui/table/table.html +333 -0
  141. package/docs/core/components/ui/table/table.md +267 -0
  142. package/docs/core/components/ui/theme/theme.html +116 -0
  143. package/docs/core/components/ui/theme/theme.md +97 -0
  144. package/docs/core/components/ui/toast/toast.html +185 -0
  145. package/docs/core/components/ui/toast/toast.md +147 -0
  146. package/docs/core/components/ui/tooltip/tooltip.html +112 -0
  147. package/docs/core/components/ui/tooltip/tooltip.md +89 -0
  148. package/docs/docs/decorators/ancestor-attribute.html +71 -0
  149. package/docs/docs/decorators/ancestor-attribute.md +59 -0
  150. package/docs/docs/decorators/auto-subscribe.html +61 -0
  151. package/docs/docs/decorators/auto-subscribe.md +40 -0
  152. package/docs/docs/decorators/bind.html +86 -0
  153. package/docs/docs/decorators/bind.md +77 -0
  154. package/docs/docs/decorators/get.html +166 -0
  155. package/docs/docs/decorators/get.md +160 -0
  156. package/docs/docs/decorators/handle.html +139 -0
  157. package/docs/docs/decorators/handle.md +119 -0
  158. package/docs/docs/decorators/on-assign.html +72 -0
  159. package/docs/docs/decorators/on-assign.md +63 -0
  160. package/docs/docs/decorators/patch.html +76 -0
  161. package/docs/docs/decorators/patch.md +44 -0
  162. package/docs/docs/decorators/post.html +150 -0
  163. package/docs/docs/decorators/post.md +134 -0
  164. package/docs/docs/decorators/publish.html +74 -0
  165. package/docs/docs/decorators/publish.md +56 -0
  166. package/docs/docs/decorators/put.html +83 -0
  167. package/docs/docs/decorators/put.md +51 -0
  168. package/docs/docs/decorators/subscribe.html +91 -0
  169. package/docs/docs/decorators/subscribe.md +87 -0
  170. package/docs/docs/decorators/wait-for-ancestors.html +82 -0
  171. package/docs/docs/decorators/wait-for-ancestors.md +76 -0
  172. package/docs/docs/directives/sub.html +79 -0
  173. package/docs/docs/directives/sub.md +75 -0
  174. package/docs/docs/directives/t.html +91 -0
  175. package/docs/docs/directives/t.md +73 -0
  176. package/docs/{crawl/docs/_getting-started → docs/getting-started}/ai-agents.html +12 -11
  177. package/{src/docs/_getting-started → docs/docs/getting-started}/ai-agents.md +3 -3
  178. package/docs/docs/getting-started/components.html +27 -0
  179. package/docs/docs/getting-started/components.md +5 -0
  180. package/docs/{crawl/docs/_getting-started → docs/getting-started}/create-a-component.html +11 -14
  181. package/docs/{src/docs/_getting-started → docs/getting-started}/create-a-component.md +3 -6
  182. package/docs/{crawl/docs/_core-concept → docs/getting-started}/dataFlow.html +26 -29
  183. package/docs/{src/docs/_core-concept → docs/getting-started}/dataFlow.md +17 -18
  184. package/docs/docs/getting-started/installation.html +69 -0
  185. package/docs/docs/getting-started/installation.md +36 -0
  186. package/docs/{crawl/docs/_getting-started → docs/getting-started}/my-first-component.html +13 -22
  187. package/docs/{src/docs/_getting-started → docs/getting-started}/my-first-component.md +5 -14
  188. package/docs/docs/getting-started/start.html +47 -0
  189. package/{src/docs/_getting-started → docs/docs/getting-started}/start.md +1 -13
  190. package/docs/docs/getting-started/theming.html +334 -0
  191. package/{src/docs/_getting-started → docs/docs/getting-started}/theming.md +2 -2
  192. package/docs/docs/index.html +99 -0
  193. package/docs/{crawl/docs/_misc → docs/misc}/api-configuration.html +18 -18
  194. package/docs/{src/docs/_misc → docs/misc}/api-configuration.md +10 -12
  195. package/docs/{crawl/docs/_misc → docs/misc}/dataProviderKey.html +12 -11
  196. package/{src/docs/_misc → docs/docs/misc}/dataProviderKey.md +4 -4
  197. package/docs/{crawl/docs/_misc → docs/misc}/docs-mock-api.html +25 -28
  198. package/docs/{src/docs/_misc → docs/misc}/docs-mock-api.md +12 -13
  199. package/docs/{crawl/docs/_misc → docs/misc}/dynamic-path.html +16 -15
  200. package/{src/docs/_misc → docs/docs/misc}/dynamic-path.md +8 -8
  201. package/docs/{crawl/docs/_misc → docs/misc}/endpoint.html +16 -15
  202. package/{src/docs/_misc → docs/docs/misc}/endpoint.md +8 -8
  203. package/docs/{crawl/docs/_misc → docs/misc}/html-integration.html +12 -15
  204. package/docs/{src/docs/_misc → docs/misc}/html-integration.md +4 -5
  205. package/docs/docs-mock-api-sw.js +60 -223
  206. package/docs/docs-mock-api-sw.js.map +4 -4
  207. package/docs/hubs/decorators.html +443 -0
  208. package/docs/hubs/form-components.html +404 -0
  209. package/docs/hubs/remote-data.html +371 -0
  210. package/docs/img/archive/concorde-001-2cv.webp +0 -0
  211. package/docs/img/archive/concorde-red-arrows-2002-poster.jpg +0 -0
  212. package/docs/img/archive/concorde-red-arrows-2002.webm +0 -0
  213. package/docs/img/archive/credits.json +28 -0
  214. package/docs/img/concorde/plane_01.jpg +0 -0
  215. package/docs/img/concorde/plane_02.jpg +0 -0
  216. package/docs/img/concorde/plane_03.jpg +0 -0
  217. package/docs/img/concorde/plane_04.jpg +0 -0
  218. package/docs/img/concorde/plane_05.jpg +0 -0
  219. package/docs/img/concorde/plane_06.jpg +0 -0
  220. package/docs/img/concorde/plane_07.jpg +0 -0
  221. package/docs/img/concorde/plane_08.jpg +0 -0
  222. package/docs/img/concorde/plane_09.jpg +0 -0
  223. package/docs/img/concorde/plane_10.jpg +0 -0
  224. package/docs/img/concorde/plane_11.jpg +0 -0
  225. package/docs/img/concorde/plane_12.jpg +0 -0
  226. package/docs/img/concorde/plane_13.jpg +0 -0
  227. package/docs/index.html +96 -67
  228. package/docs/index.md +22 -0
  229. package/docs/llms-full.txt +3329 -3295
  230. package/docs/llms.txt +94 -92
  231. package/docs/robots.txt +11 -10
  232. package/docs/sitemap.xml +78 -78
  233. package/docs/src/core/components/functional/date/date.md +91 -231
  234. package/docs/src/core/components/functional/fetch/fetch.md +66 -83
  235. package/docs/src/core/components/functional/if/if.md +28 -3
  236. package/docs/src/core/components/functional/jsonata/jsonata.md +42 -37
  237. package/docs/src/core/components/functional/list/list.md +99 -43
  238. package/docs/src/core/components/functional/mix/mix.md +31 -26
  239. package/docs/src/core/components/functional/queue/queue.md +40 -61
  240. package/docs/src/core/components/functional/router/router.md +64 -65
  241. package/docs/src/core/components/functional/sdui/component-catalog.gaps.json +511 -0
  242. package/docs/src/core/components/functional/sdui/component-catalog.json +3103 -0
  243. package/docs/src/core/components/functional/sdui/example.json +19 -86
  244. package/docs/src/core/components/functional/sdui/sdui-extension-points.md +94 -0
  245. package/docs/src/core/components/functional/sdui/sdui.md +196 -245
  246. package/docs/src/core/components/functional/states/states.md +86 -61
  247. package/docs/src/core/components/functional/submit/submit.md +64 -72
  248. package/docs/src/core/components/functional/translation/translation.md +38 -0
  249. package/docs/src/core/components/functional/value/value.md +34 -22
  250. package/docs/src/core/components/ui/alert/alert.md +139 -74
  251. package/docs/src/core/components/ui/alert-messages/alert-messages.md +85 -0
  252. package/docs/src/core/components/ui/badge/badge.md +137 -83
  253. package/docs/src/core/components/ui/button/button.md +139 -105
  254. package/docs/src/core/components/ui/captcha/captcha.md +50 -6
  255. package/docs/src/core/components/ui/card/card.md +183 -65
  256. package/docs/src/core/components/ui/divider/divider.md +104 -13
  257. package/docs/src/core/components/ui/form/checkbox/checkbox.md +90 -42
  258. package/docs/src/core/components/ui/form/fieldset/fieldset.md +135 -103
  259. package/docs/src/core/components/ui/form/form-actions/form-actions.md +71 -50
  260. package/docs/src/core/components/ui/form/form-layout/form-layout.md +99 -34
  261. package/docs/src/core/components/ui/form/input/input.md +95 -95
  262. package/docs/src/core/components/ui/form/radio/radio.md +55 -34
  263. package/docs/src/core/components/ui/form/select/select.md +60 -45
  264. package/docs/src/core/components/ui/form/switch/switch.md +57 -34
  265. package/docs/src/core/components/ui/form/textarea/textarea.md +55 -38
  266. package/docs/src/core/components/ui/group/group.md +49 -47
  267. package/docs/src/core/components/ui/icon/icon.md +132 -43
  268. package/docs/src/core/components/ui/image/image.md +132 -72
  269. package/docs/src/core/components/ui/link/link.md +46 -8
  270. package/docs/src/core/components/ui/loader/loader.md +55 -23
  271. package/docs/src/core/components/ui/menu/menu.md +155 -114
  272. package/docs/src/core/components/ui/modal/modal.md +154 -62
  273. package/docs/src/core/components/ui/pop/pop.md +185 -65
  274. package/docs/src/core/components/ui/progress/progress.md +76 -30
  275. package/docs/src/core/components/ui/table/table.md +146 -334
  276. package/docs/src/core/components/ui/theme/theme.md +97 -0
  277. package/docs/src/core/components/ui/toast/toast.md +80 -99
  278. package/docs/src/core/components/ui/tooltip/tooltip.md +52 -45
  279. package/docs/src/docs/decorators/ancestor-attribute.md +59 -0
  280. package/docs/src/docs/decorators/auto-subscribe.md +40 -0
  281. package/docs/src/docs/decorators/bind.md +77 -0
  282. package/docs/src/docs/decorators/get.md +160 -0
  283. package/docs/src/docs/decorators/handle.md +119 -0
  284. package/docs/src/docs/decorators/on-assign.md +63 -0
  285. package/docs/src/docs/decorators/patch.md +44 -0
  286. package/docs/src/docs/decorators/post.md +134 -0
  287. package/docs/src/docs/decorators/publish.md +56 -0
  288. package/docs/src/docs/decorators/put.md +51 -0
  289. package/docs/src/docs/decorators/subscribe.md +87 -0
  290. package/docs/src/docs/decorators/wait-for-ancestors.md +76 -0
  291. package/docs/src/docs/directives/sub.md +75 -0
  292. package/docs/src/docs/directives/t.md +73 -0
  293. package/docs/src/docs/{_getting-started → getting-started}/ai-agents.md +3 -3
  294. package/docs/src/docs/getting-started/components.md +5 -0
  295. package/{src/docs/_getting-started → docs/src/docs/getting-started}/create-a-component.md +3 -6
  296. package/{src/docs/_core-concept → docs/src/docs/getting-started}/dataFlow.md +17 -18
  297. package/docs/src/docs/getting-started/installation.md +36 -0
  298. package/{src/docs/_getting-started → docs/src/docs/getting-started}/my-first-component.md +5 -14
  299. package/docs/src/docs/getting-started/start.md +35 -0
  300. package/docs/src/docs/getting-started/theming.md +253 -0
  301. package/{src/docs/_misc → docs/src/docs/misc}/api-configuration.md +10 -12
  302. package/docs/src/docs/{_misc → misc}/dataProviderKey.md +4 -4
  303. package/{src/docs/_misc → docs/src/docs/misc}/docs-mock-api.md +12 -13
  304. package/docs/src/docs/{_misc → misc}/dynamic-path.md +8 -8
  305. package/docs/src/docs/{_misc → misc}/endpoint.md +8 -8
  306. package/{src/docs/_misc → docs/src/docs/misc}/html-integration.md +4 -5
  307. package/docs/src/docs/search/docs-search.json +3729 -2949
  308. package/docs/src/tsconfig.json +176 -5
  309. package/index.html +94 -67
  310. package/package.json +11 -4
  311. package/public/docs-mock-api-sw.js +58 -223
  312. package/public/docs-mock-api-sw.js.map +4 -4
  313. package/public/img/archive/concorde-001-2cv.webp +0 -0
  314. package/public/img/archive/concorde-red-arrows-2002-poster.jpg +0 -0
  315. package/public/img/archive/concorde-red-arrows-2002.webm +0 -0
  316. package/public/img/archive/credits.json +28 -0
  317. package/public/img/concorde/plane_01.jpg +0 -0
  318. package/public/img/concorde/plane_02.jpg +0 -0
  319. package/public/img/concorde/plane_03.jpg +0 -0
  320. package/public/img/concorde/plane_04.jpg +0 -0
  321. package/public/img/concorde/plane_05.jpg +0 -0
  322. package/public/img/concorde/plane_06.jpg +0 -0
  323. package/public/img/concorde/plane_07.jpg +0 -0
  324. package/public/img/concorde/plane_08.jpg +0 -0
  325. package/public/img/concorde/plane_09.jpg +0 -0
  326. package/public/img/concorde/plane_10.jpg +0 -0
  327. package/public/img/concorde/plane_11.jpg +0 -0
  328. package/public/img/concorde/plane_12.jpg +0 -0
  329. package/public/img/concorde/plane_13.jpg +0 -0
  330. package/public/robots.txt +11 -10
  331. package/scripts/docs-markdown-vite-plugin.ts +37 -0
  332. package/scripts/docs-public-url.mjs +50 -0
  333. package/scripts/docs.htaccess +75 -0
  334. package/scripts/generate-crawl-docs.mjs +207 -116
  335. package/scripts/generate-crawl-docs.test.mjs +124 -0
  336. package/scripts/post-build-docs.js +34 -50
  337. package/scripts/post-build.mjs +0 -0
  338. package/src/core/components/functional/date/date.md +91 -231
  339. package/src/core/components/functional/fetch/fetch.md +66 -83
  340. package/src/core/components/functional/if/if.md +28 -3
  341. package/src/core/components/functional/if/if.ts +0 -0
  342. package/src/core/components/functional/jsonata/jsonata.md +42 -37
  343. package/src/core/components/functional/list/list.demo.ts +0 -0
  344. package/src/core/components/functional/list/list.md +99 -43
  345. package/src/core/components/functional/mix/mix.md +31 -26
  346. package/src/core/components/functional/queue/queue.demo.ts +10 -7
  347. package/src/core/components/functional/queue/queue.md +40 -61
  348. package/src/core/components/functional/router/router.demo.ts +16 -16
  349. package/src/core/components/functional/router/router.md +64 -65
  350. package/src/core/components/functional/router/router.ts +0 -0
  351. package/src/core/components/functional/sdui/SDUIDescriptorTransformer.ts +0 -0
  352. package/src/core/components/functional/sdui/component-catalog.gaps.json +1 -1
  353. package/src/core/components/functional/sdui/component-catalog.json +1 -1
  354. package/src/core/components/functional/sdui/example.json +19 -86
  355. package/src/core/components/functional/sdui/sdui-extension-points.md +1 -1
  356. package/src/core/components/functional/sdui/sdui.md +187 -358
  357. package/src/core/components/functional/sdui/types.ts +0 -0
  358. package/src/core/components/functional/states/states.demo.ts +21 -22
  359. package/src/core/components/functional/states/states.md +86 -61
  360. package/src/core/components/functional/states/states.ts +1 -1
  361. package/src/core/components/functional/submit/submit.md +64 -72
  362. package/src/core/components/functional/subscriber/subscriber.ts +0 -0
  363. package/src/core/components/functional/translation/translation.md +38 -0
  364. package/src/core/components/functional/value/value.md +34 -22
  365. package/src/core/components/functional/value/value.ts +0 -0
  366. package/src/core/components/ui/_css/size.ts +0 -0
  367. package/src/core/components/ui/alert/alert.md +48 -58
  368. package/src/core/components/ui/badge/badge.md +27 -34
  369. package/src/core/components/ui/button/button.md +139 -106
  370. package/src/core/components/ui/captcha/altchaStyles.ts +0 -0
  371. package/src/core/components/ui/captcha/captcha.md +17 -32
  372. package/src/core/components/ui/card/card.md +6 -6
  373. package/src/core/components/ui/divider/divider.md +8 -11
  374. package/src/core/components/ui/form/checkbox/checkbox.md +90 -42
  375. package/src/core/components/ui/form/fieldset/fieldset.md +31 -75
  376. package/src/core/components/ui/form/form-actions/form-actions.md +14 -16
  377. package/src/core/components/ui/form/form-layout/form-layout.md +19 -29
  378. package/src/core/components/ui/form/input/input.md +95 -95
  379. package/src/core/components/ui/form/radio/radio.md +55 -34
  380. package/src/core/components/ui/form/select/select.md +60 -45
  381. package/src/core/components/ui/form/switch/switch.md +57 -34
  382. package/src/core/components/ui/form/textarea/textarea.md +55 -38
  383. package/src/core/components/ui/group/group.md +35 -33
  384. package/src/core/components/ui/icon/icon.md +4 -4
  385. package/src/core/components/ui/image/image.md +41 -107
  386. package/src/core/components/ui/link/link.md +6 -6
  387. package/src/core/components/ui/loader/loader.md +30 -55
  388. package/src/core/components/ui/menu/menu.md +27 -27
  389. package/src/core/components/ui/modal/modal.md +72 -96
  390. package/src/core/components/ui/modal/modal.ts +14 -11
  391. package/src/core/components/ui/pop/pop.md +80 -158
  392. package/src/core/components/ui/progress/progress.md +2 -2
  393. package/src/core/components/ui/table/table.md +91 -255
  394. package/src/core/components/ui/theme/theme.md +11 -36
  395. package/src/core/components/ui/toast/toast.md +48 -117
  396. package/src/core/components/ui/tooltip/tooltip.md +27 -62
  397. package/src/core/mixins/Subscriber.ts +0 -0
  398. package/src/core/utils/DataBindObserver.ts +0 -0
  399. package/src/core/utils/LocationHandler.spec.ts +80 -0
  400. package/src/core/utils/LocationHandler.ts +5 -9
  401. package/src/core/utils/Objects.ts +0 -0
  402. package/src/core/utils/route.ts +0 -0
  403. package/src/docs/code.ts +88 -75
  404. package/src/docs/components/docs-demo-sources.ts +70 -147
  405. package/src/docs/components/docs-lit-demo.ts +20 -40
  406. package/src/docs/components/docs-source-link.ts +0 -82
  407. package/src/docs/decorators/ancestor-attribute.md +59 -0
  408. package/src/docs/decorators/auto-subscribe.md +40 -0
  409. package/src/docs/decorators/bind.md +77 -0
  410. package/src/docs/decorators/get.md +160 -0
  411. package/src/docs/decorators/handle.md +119 -0
  412. package/src/docs/decorators/on-assign.md +63 -0
  413. package/src/docs/decorators/patch.md +44 -0
  414. package/src/docs/decorators/post.md +134 -0
  415. package/src/docs/decorators/publish.md +56 -0
  416. package/src/docs/decorators/put.md +51 -0
  417. package/src/docs/decorators/subscribe.md +87 -0
  418. package/src/docs/decorators/wait-for-ancestors.md +76 -0
  419. package/src/docs/directives/sub.md +75 -0
  420. package/src/docs/directives/t.md +73 -0
  421. package/src/docs/docs-location.spec.ts +46 -0
  422. package/src/docs/docs-location.ts +123 -32
  423. package/src/docs/docs.ts +6 -2
  424. package/src/docs/example/decorators-demo-bind-demos.ts +81 -116
  425. package/src/docs/example/decorators-demo-geo.ts +30 -19
  426. package/src/docs/example/decorators-demo-post.ts +88 -186
  427. package/src/docs/example/decorators-demo-subscribe-publish-get-demos.ts +165 -268
  428. package/src/docs/example/decorators-demo.ts +85 -98
  429. package/src/docs/example/docs-api-config-demos.ts +19 -20
  430. package/src/docs/example/docs-boarding-pass-demo.ts +134 -0
  431. package/src/docs/example/docs-flight-demos.ts +147 -0
  432. package/src/docs/example/docs-jsonata-demos.ts +52 -52
  433. package/src/docs/example/docs-list-demos.ts +43 -123
  434. package/src/docs/example/docs-provider-keys.ts +33 -28
  435. package/src/docs/example/docs-queue-demos.ts +37 -77
  436. package/src/docs/example/docs-router-demos.ts +20 -25
  437. package/src/docs/example/docs-submit-demos.ts +48 -48
  438. package/src/docs/example/docs-toggle-demos.ts +4 -3
  439. package/src/docs/example/users.ts +0 -0
  440. package/src/docs/getting-started/ai-agents.md +76 -0
  441. package/src/docs/getting-started/components.md +5 -0
  442. package/src/docs/getting-started/create-a-component.md +136 -0
  443. package/src/docs/getting-started/dataFlow.md +87 -0
  444. package/src/docs/getting-started/installation.md +36 -0
  445. package/src/docs/getting-started/my-first-component.md +227 -0
  446. package/src/docs/getting-started/start.md +35 -0
  447. package/src/docs/getting-started/theming.md +253 -0
  448. package/src/docs/header/header.ts +240 -71
  449. package/src/docs/home/catalog.ts +44 -0
  450. package/src/docs/home/home.ts +520 -0
  451. package/src/docs/home/mach-stage.ts +389 -0
  452. package/src/docs/layout.ts +12 -11
  453. package/src/docs/misc/api-configuration.md +79 -0
  454. package/src/docs/misc/dataProviderKey.md +168 -0
  455. package/src/docs/misc/docs-mock-api.md +62 -0
  456. package/src/docs/misc/dynamic-path.md +71 -0
  457. package/src/docs/misc/endpoint.md +45 -0
  458. package/src/docs/misc/html-integration.md +14 -0
  459. package/src/docs/mock-api/api-config-mock.ts +5 -0
  460. package/src/docs/mock-api/fixtures.ts +0 -278
  461. package/src/docs/mock-api/flights.ts +89 -0
  462. package/src/docs/mock-api/router.ts +3 -4
  463. package/src/docs/mock-api/urls.ts +1 -2
  464. package/src/docs/navigation/components-index.ts +56 -0
  465. package/src/docs/navigation/navigation.ts +219 -232
  466. package/src/docs/navigation/pager.ts +67 -0
  467. package/src/docs/navigation/toc.ts +101 -0
  468. package/src/docs/search/docs-search.json +2419 -4374
  469. package/src/docs/search/markdown-renderer.ts +33 -7
  470. package/src/docs/search/page.ts +9 -6
  471. package/src/docs/search/search.ts +154 -122
  472. package/src/docs/shiki/index.ts +109 -0
  473. package/src/docs/tailwind/css/base/scrollbar.css +22 -0
  474. package/src/docs/tailwind/css/base/theme.css +96 -0
  475. package/src/docs/tailwind/css/base/typography.css +4 -0
  476. package/src/docs/tailwind/css/docs/boarding-pass.css +65 -0
  477. package/src/docs/tailwind/css/docs/content.css +32 -0
  478. package/src/docs/tailwind/css/docs/page.css +10 -0
  479. package/src/docs/tailwind/css/docs.css +9 -0
  480. package/src/docs/tailwind/css/home/hero.css +210 -0
  481. package/src/docs/tailwind/css/home/motion.css +84 -0
  482. package/src/docs/tailwind/css/home/sections.css +416 -0
  483. package/src/docs/tailwind/css/tailwind.css +7 -185
  484. package/src/tsconfig.json +23 -2
  485. package/src/tsconfig.tsbuildinfo +1 -1
  486. package/tailwind.config.js +8 -4
  487. package/vite.config.mts +11 -2
  488. package/.agents/skills/concorde-component-docs/SKILL.md +0 -194
  489. package/.github/workflows/ci.yml +0 -21
  490. package/.github-export-ignore +0 -30
  491. package/CONTRIBUTING.md +0 -59
  492. package/DEV.md +0 -54
  493. package/LICENSE +0 -21
  494. package/OPEN_SOURCE_CHECKPOINT.md +0 -133
  495. package/concorde-3d.bundle.js +0 -3960
  496. package/concorde-3d.es.js +0 -33433
  497. package/concorde-hugging-face-infer.bundle.js +0 -32
  498. package/concorde-hugging-face-infer.es.js +0 -2952
  499. package/concorde-interactive.bundle.js +0 -1157
  500. package/concorde-interactive.es.js +0 -10734
  501. package/concorde-shader.bundle.js +0 -116
  502. package/concorde-shader.es.js +0 -8353
  503. package/concorde-webgpu.bundle.js +0 -307
  504. package/concorde-webgpu.es.js +0 -8627
  505. package/docs/assets/index-D8MVWqY6.js +0 -12251
  506. package/docs/assets/index-DiD0qYvE.css +0 -1
  507. package/docs/crawl/core/components/functional/date/date.html +0 -190
  508. package/docs/crawl/core/components/functional/fetch/fetch.html +0 -109
  509. package/docs/crawl/core/components/functional/if/if.html +0 -27
  510. package/docs/crawl/core/components/functional/jsonata/jsonata.html +0 -79
  511. package/docs/crawl/core/components/functional/list/list.html +0 -70
  512. package/docs/crawl/core/components/functional/mix/mix.html +0 -45
  513. package/docs/crawl/core/components/functional/queue/queue.html +0 -96
  514. package/docs/crawl/core/components/functional/router/router.html +0 -106
  515. package/docs/crawl/core/components/functional/sdui/sdui.html +0 -269
  516. package/docs/crawl/core/components/functional/states/states.html +0 -66
  517. package/docs/crawl/core/components/functional/submit/submit.html +0 -160
  518. package/docs/crawl/core/components/functional/value/value.html +0 -51
  519. package/docs/crawl/core/components/ui/alert/alert.html +0 -110
  520. package/docs/crawl/core/components/ui/alert-messages/alert-messages.html +0 -23
  521. package/docs/crawl/core/components/ui/badge/badge.html +0 -119
  522. package/docs/crawl/core/components/ui/button/button.html +0 -149
  523. package/docs/crawl/core/components/ui/captcha/captcha.html +0 -30
  524. package/docs/crawl/core/components/ui/card/card.html +0 -99
  525. package/docs/crawl/core/components/ui/divider/divider.html +0 -58
  526. package/docs/crawl/core/components/ui/form/checkbox/checkbox.html +0 -73
  527. package/docs/crawl/core/components/ui/form/fieldset/fieldset.html +0 -135
  528. package/docs/crawl/core/components/ui/form/form-actions/form-actions.html +0 -79
  529. package/docs/crawl/core/components/ui/form/form-layout/form-layout.html +0 -62
  530. package/docs/crawl/core/components/ui/form/input/input.html +0 -109
  531. package/docs/crawl/core/components/ui/form/input-autocomplete/input-autocomplete.html +0 -38
  532. package/docs/crawl/core/components/ui/form/radio/radio.html +0 -56
  533. package/docs/crawl/core/components/ui/form/select/select.html +0 -73
  534. package/docs/crawl/core/components/ui/form/switch/switch.html +0 -56
  535. package/docs/crawl/core/components/ui/form/textarea/textarea.html +0 -59
  536. package/docs/crawl/core/components/ui/group/group.html +0 -82
  537. package/docs/crawl/core/components/ui/icon/icon.html +0 -133
  538. package/docs/crawl/core/components/ui/image/image.html +0 -110
  539. package/docs/crawl/core/components/ui/link/link.html +0 -42
  540. package/docs/crawl/core/components/ui/loader/loader.html +0 -50
  541. package/docs/crawl/core/components/ui/modal/modal.html +0 -117
  542. package/docs/crawl/core/components/ui/pop/pop.html +0 -102
  543. package/docs/crawl/core/components/ui/progress/progress.html +0 -58
  544. package/docs/crawl/core/components/ui/table/table.html +0 -413
  545. package/docs/crawl/core/components/ui/toast/toast.html +0 -122
  546. package/docs/crawl/core/components/ui/tooltip/tooltip.html +0 -79
  547. package/docs/crawl/docs/_core-concept/overview.html +0 -66
  548. package/docs/crawl/docs/_core-concept/subscriber.html +0 -75
  549. package/docs/crawl/docs/_decorators/ancestor-attribute.html +0 -116
  550. package/docs/crawl/docs/_decorators/auto-subscribe.html +0 -202
  551. package/docs/crawl/docs/_decorators/bind.html +0 -141
  552. package/docs/crawl/docs/_decorators/get.html +0 -149
  553. package/docs/crawl/docs/_decorators/handle.html +0 -165
  554. package/docs/crawl/docs/_decorators/on-assign.html +0 -355
  555. package/docs/crawl/docs/_decorators/patch.html +0 -78
  556. package/docs/crawl/docs/_decorators/post.html +0 -139
  557. package/docs/crawl/docs/_decorators/publish.html +0 -61
  558. package/docs/crawl/docs/_decorators/put.html +0 -78
  559. package/docs/crawl/docs/_decorators/subscribe.html +0 -109
  560. package/docs/crawl/docs/_decorators/wait-for-ancestors.html +0 -137
  561. package/docs/crawl/docs/_directives/sub.html +0 -93
  562. package/docs/crawl/docs/_getting-started/concorde-manual-install.html +0 -100
  563. package/docs/crawl/docs/_getting-started/concorde-outside.html +0 -58
  564. package/docs/crawl/docs/_getting-started/my-first-subscriber.html +0 -110
  565. package/docs/crawl/docs/_getting-started/pubsub.html +0 -62
  566. package/docs/crawl/docs/_getting-started/start.html +0 -76
  567. package/docs/crawl/docs/_getting-started/theming.html +0 -85
  568. package/docs/crawl/docs/_misc/formelement-subscriber-removal.html +0 -138
  569. package/docs/crawl/hubs/decorators.html +0 -547
  570. package/docs/crawl/hubs/form-components.html +0 -359
  571. package/docs/crawl/hubs/remote-data.html +0 -452
  572. package/docs/crawl/index.html +0 -101
  573. package/docs/src/core/components/ui/form/input-autocomplete/input-autocomplete.md +0 -29
  574. package/docs/src/docs/_core-concept/overview.md +0 -57
  575. package/docs/src/docs/_core-concept/subscriber.md +0 -75
  576. package/docs/src/docs/_decorators/ancestor-attribute.md +0 -127
  577. package/docs/src/docs/_decorators/auto-subscribe.md +0 -202
  578. package/docs/src/docs/_decorators/bind.md +0 -167
  579. package/docs/src/docs/_decorators/get.md +0 -162
  580. package/docs/src/docs/_decorators/handle.md +0 -175
  581. package/docs/src/docs/_decorators/on-assign.md +0 -390
  582. package/docs/src/docs/_decorators/patch.md +0 -70
  583. package/docs/src/docs/_decorators/post.md +0 -146
  584. package/docs/src/docs/_decorators/publish.md +0 -55
  585. package/docs/src/docs/_decorators/put.md +0 -70
  586. package/docs/src/docs/_decorators/subscribe.md +0 -100
  587. package/docs/src/docs/_decorators/wait-for-ancestors.md +0 -163
  588. package/docs/src/docs/_directives/sub.md +0 -91
  589. package/docs/src/docs/_getting-started/concorde-manual-install.md +0 -133
  590. package/docs/src/docs/_getting-started/concorde-outside.md +0 -33
  591. package/docs/src/docs/_getting-started/my-first-subscriber.md +0 -120
  592. package/docs/src/docs/_getting-started/pubsub.md +0 -37
  593. package/docs/src/docs/_getting-started/start.md +0 -47
  594. package/docs/src/docs/_getting-started/theming.md +0 -91
  595. package/docs/src/docs/_misc/formelement-subscriber-removal.md +0 -115
  596. package/docs/src/tsconfig.declarations.json +0 -22
  597. package/docs/src/tsconfig.emit.json +0 -23
  598. package/gitlab/job_github_mirror.sh +0 -39
  599. package/scripts/github-export.mjs +0 -150
  600. package/src/core/components/ui/form/input-autocomplete/input-autocomplete.md +0 -29
  601. package/src/css.d.ts +0 -19
  602. package/src/docs/_core-concept/overview.md +0 -57
  603. package/src/docs/_core-concept/subscriber.md +0 -75
  604. package/src/docs/_decorators/ancestor-attribute.md +0 -128
  605. package/src/docs/_decorators/auto-subscribe.md +0 -202
  606. package/src/docs/_decorators/bind.md +0 -167
  607. package/src/docs/_decorators/get.md +0 -162
  608. package/src/docs/_decorators/handle.md +0 -175
  609. package/src/docs/_decorators/on-assign.md +0 -390
  610. package/src/docs/_decorators/patch.md +0 -70
  611. package/src/docs/_decorators/post.md +0 -146
  612. package/src/docs/_decorators/publish.md +0 -55
  613. package/src/docs/_decorators/put.md +0 -70
  614. package/src/docs/_decorators/subscribe.md +0 -100
  615. package/src/docs/_decorators/wait-for-ancestors.md +0 -163
  616. package/src/docs/_directives/sub.md +0 -91
  617. package/src/docs/_getting-started/concorde-manual-install.md +0 -133
  618. package/src/docs/_getting-started/concorde-outside.md +0 -33
  619. package/src/docs/_getting-started/my-first-subscriber.md +0 -120
  620. package/src/docs/_getting-started/pubsub.md +0 -37
  621. package/src/docs/_misc/formelement-subscriber-removal.md +0 -115
  622. package/src/docs/example/docs-input-autocomplete-demos.ts +0 -110
  623. package/src/docs/example/docs-joke-demos.ts +0 -297
  624. package/src/docs/prism/index.ts +0 -6
  625. package/src/docs/prism/prism.css +0 -158
  626. package/src/docs/prism/prism.js +0 -1022
  627. package/src/tsconfig.declarations.json +0 -22
  628. package/src/tsconfig.emit.json +0 -23
@@ -1,202 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="fr" data-crawl-url="https://concorde.supersoniks.org/crawl/docs/_decorators/auto-subscribe.html" data-doc-id="docs/_decorators/auto-subscribe">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>@autoSubscribe — Concorde</title>
7
- <meta name="description" content="&gt; Legacy: prefer @subscribe + DataProviderKey. Examples below may still show PublisherManager for existing codebases.">
8
- <meta name="keywords" content="Concorde, supersoniks, docs/_decorators/auto-subscribe, auto-subscribe, @autoSubscribe, decorator, autoSubscribe, DataProviderKey, PublisherManager, ;
9
- }
10
-
11
- render() {
12
- return html">
13
- <meta name="concorde-doc-id" content="docs/_decorators/auto-subscribe">
14
- <link rel="canonical" href="https://concorde.supersoniks.org/crawl/docs/_decorators/auto-subscribe.html">
15
- </head>
16
- <body>
17
- <header>
18
- <p><a href="../../index.html">Concorde documentation (crawl)</a> · <a href="https://concorde.supersoniks.org/#docs/_decorators/auto-subscribe.md/auto-subscribe" rel="nofollow">interactive version</a></p>
19
- </header>
20
- <main>
21
- <article>
22
- <p class="doc-lead" id="doc-summary"><strong>Concorde decorator — @autoSubscribe</strong>. &gt; Legacy: prefer @subscribe + DataProviderKey. Examples below may still show PublisherManager for existing codebases. <span>Doc ID: <code>docs/_decorators/auto-subscribe</code>. Keywords: Concorde, supersoniks, docs/_decorators/auto-subscribe, auto-subscribe, @autoSubscribe, decorator, autoSubscribe, DataProviderKey, PublisherManager, ;
23
- }
24
-
25
- render() {
26
- return html. URL: <a href="https://concorde.supersoniks.org/crawl/docs/_decorators/auto-subscribe.html">https://concorde.supersoniks.org/crawl/docs/_decorators/auto-subscribe.html</a>.</span></p>
27
- <h1 id="autosubscribe">@autoSubscribe</h1>
28
- <blockquote>
29
- <p><strong>Legacy:</strong> prefer <a href="./subscribe.html#subscribe">@subscribe</a> + <code>DataProviderKey</code>. Examples below may still show <code>PublisherManager</code> for existing codebases.</p>
30
- </blockquote>
31
- <p>The <code>@autoSubscribe</code> decorator automatically detects which publishers are accessed within a method and subscribes to them. When any of these publishers change, the method is automatically re-executed.</p>
32
- <h2 id="principle">Principle</h2>
33
- <p>This decorator wraps a method to track which publishers are accessed during its execution. It then subscribes to all accessed publishers, and when any of them change, the method is re-executed. This provides automatic reactivity without manually managing subscriptions.</p>
34
- <h2 id="usage">Usage</h2>
35
- <h3 id="import">Import</h3>
36
- <pre><code class="language-typescript">import { autoSubscribe } from &quot;@supersoniks/concorde/decorators&quot;;
37
- </code></pre>
38
- <h3 id="basic-example">Basic example</h3>
39
- <pre><code class="language-typescript">@customElement(&quot;demo-auto-subscribe&quot;)
40
- export class DemoAutoSubscribe extends LitElement {
41
- static styles = [tailwind];
42
-
43
- @state() displayText: string = &quot;&quot;;
44
- @state() computedValue: number = 0;
45
-
46
- @autoSubscribe()
47
- updateDisplay() {
48
- const value1 = PublisherManager.get(&quot;autoValue1&quot;).get() || 0;
49
- const value2 = PublisherManager.get(&quot;autoValue2&quot;).get() || 0;
50
- this.computedValue = value1 + value2;
51
- this.displayText = `${value1} + ${value2} = ${this.computedValue}`;
52
- }
53
-
54
- render() {
55
- return html`
56
- &lt;p&gt;&lt;strong&gt;${this.displayText}&lt;/strong&gt;&lt;/p&gt;
57
- &lt;div&gt;
58
- &lt;sonic-button @click=${() =&gt; this.randomizeValue(&quot;autoValue1&quot;)}&gt;
59
- Randomize Value 1
60
- &lt;/sonic-button&gt;
61
- &lt;sonic-button @click=${() =&gt; this.randomizeValue(&quot;autoValue2&quot;)}&gt;
62
- Randomize Value 2
63
- &lt;/sonic-button&gt;
64
- &lt;/div&gt;
65
- `;
66
- }
67
-
68
- randomizeValue(publisherId: string) {
69
- const value = PublisherManager.get(publisherId);
70
- value.set(Math.floor(Math.random() * 100));
71
- }
72
- }
73
- </code></pre>
74
- <pre><code>&lt;docs-demo-sources for=&quot;demo-auto-subscribe&quot;&gt;&lt;/docs-demo-sources&gt;
75
- &lt;demo-auto-subscribe&gt;&lt;/demo-auto-subscribe&gt;
76
- </code></pre>
77
- <h3 id="example-with-render-method">Example with render method</h3>
78
- <pre><code class="language-typescript">@customElement(&quot;reactive-view&quot;)
79
- export class ReactiveView extends LitElement {
80
- @autoSubscribe()
81
- render() {
82
- const data = PublisherManager.get(&quot;myData&quot;);
83
- const config = PublisherManager.get(&quot;config&quot;);
84
-
85
- // This render method will be automatically re-executed
86
- // when myData or config change
87
- const value = data.get()?.value || 0;
88
- const multiplier = config.get()?.multiplier || 1;
89
-
90
- return html`
91
- &lt;div&gt;
92
- &lt;h1&gt;Result: ${value * multiplier}&lt;/h1&gt;
93
- &lt;p&gt;Value: ${value}&lt;/p&gt;
94
- &lt;p&gt;Multiplier: ${multiplier}&lt;/p&gt;
95
- &lt;/div&gt;
96
- `;
97
- }
98
- }
99
- </code></pre>
100
- <h2 id="how-it-works">How it works</h2>
101
- <ol>
102
- <li><strong>First execution</strong>: When the method is called, <code>PublisherManager.collectModifiedPublisher()</code> is used to track which publishers are accessed</li>
103
- <li><strong>Subscription</strong>: After execution, the decorator subscribes to all detected publishers</li>
104
- <li><strong>Re-execution</strong>: When any subscribed publisher changes, the method is automatically called again</li>
105
- <li><strong>Cleanup</strong>: On <code>disconnectedCallback</code>, all subscriptions are automatically removed</li>
106
- </ol>
107
- <h2 id="behavior">Behavior</h2>
108
- <ul>
109
- <li>The method is automatically called on <code>connectedCallback</code></li>
110
- <li>The method is re-executed whenever any accessed publisher changes</li>
111
- <li>Subscriptions are managed automatically (no manual cleanup needed)</li>
112
- <li>Only publishers accessed during method execution are subscribed to</li>
113
- <li>The decorator uses <code>queueMicrotask</code> to batch multiple updates and avoid unnecessary re-renders</li>
114
- </ul>
115
- <h2 id="use-cases">Use cases</h2>
116
- <p>This decorator is particularly useful for:</p>
117
- <ul>
118
- <li><strong>Reactive rendering</strong> where the render method depends on multiple publishers</li>
119
- <li><strong>Data transformation</strong> that needs to update when source data changes</li>
120
- <li><strong>Computed properties</strong> that depend on multiple data sources</li>
121
- <li><strong>Automatic synchronization</strong> between publishers and component state</li>
122
- </ul>
123
- <h2 id="complete-example">Complete example</h2>
124
- <pre><code class="language-typescript">import { html, LitElement } from &quot;lit&quot;;
125
- import { customElement } from &quot;lit/decorators.js&quot;;
126
- import { autoSubscribe } from &quot;@supersoniks/concorde/decorators&quot;;
127
- import { PublisherManager } from &quot;@supersoniks/concorde/core/utils/PublisherProxy&quot;;
128
-
129
- @customElement(&quot;shopping-cart&quot;)
130
- export class ShoppingCart extends LitElement {
131
- items: any[] = [];
132
- total: number = 0;
133
- discount: number = 0;
134
-
135
- @autoSubscribe()
136
- calculateTotal() {
137
- const cart = PublisherManager.get(&quot;cart&quot;);
138
- const promo = PublisherManager.get(&quot;promo&quot;);
139
-
140
- // Access cart items
141
- this.items = cart.items.get() || [];
142
-
143
- // Access promo code
144
- const promoCode = promo.code.get() || &quot;&quot;;
145
- const discountPercent = promoCode === &quot;SAVE10&quot; ? 0.1 : 0;
146
-
147
- // Calculate totals
148
- const subtotal = this.items.reduce((sum, item) =&gt;
149
- sum + (item.price * item.quantity), 0
150
- );
151
- this.discount = subtotal * discountPercent;
152
- this.total = subtotal - this.discount;
153
-
154
- this.requestUpdate();
155
- }
156
-
157
- connectedCallback() {
158
- super.connectedCallback();
159
- this.calculateTotal();
160
- }
161
-
162
- render() {
163
- return html`
164
- &lt;div class=&quot;cart&quot;&gt;
165
- &lt;h2&gt;Shopping Cart&lt;/h2&gt;
166
- ${this.items.map(item =&gt; html`
167
- &lt;div&gt;${item.name} x${item.quantity} - ${item.price}€&lt;/div&gt;
168
- `)}
169
- &lt;div class=&quot;total&quot;&gt;
170
- &lt;p&gt;Subtotal: ${this.total + this.discount}€&lt;/p&gt;
171
- &lt;p&gt;Discount: -${this.discount}€&lt;/p&gt;
172
- &lt;p&gt;&lt;strong&gt;Total: ${this.total}€&lt;/strong&gt;&lt;/p&gt;
173
- &lt;/div&gt;
174
- &lt;/div&gt;
175
- `;
176
- }
177
- }
178
-
179
- // When you update the publishers, calculateTotal is automatically called:
180
- const cart = PublisherManager.get(&quot;cart&quot;);
181
- cart.items.set([
182
- { name: &quot;Product 1&quot;, price: 10, quantity: 2 },
183
- { name: &quot;Product 2&quot;, price: 15, quantity: 1 }
184
- ]);
185
-
186
- const promo = PublisherManager.get(&quot;promo&quot;);
187
- promo.code.set(&quot;SAVE10&quot;);
188
- // calculateTotal will be automatically called and the UI will update
189
- </code></pre>
190
- <h2 id="notes">Notes</h2>
191
- <ul>
192
- <li>This decorator works with any component that has <code>connectedCallback</code> and <code>disconnectedCallback</code> methods (such as <code>LitElement</code> or components extending <code>Subscriber</code>)</li>
193
- <li>The method is called automatically on <code>connectedCallback</code></li>
194
- <li>Remember to call <code>this.requestUpdate()</code> if you&#39;re updating component properties</li>
195
- <li>The decorator uses debouncing via <code>queueMicrotask</code> to prevent excessive re-executions</li>
196
- <li>For more information about publishers, see the documentation on <a href="../_getting-started/pubsub.html#pubsub">Sharing data</a></li>
197
- </ul>
198
-
199
- </article>
200
- </main>
201
- </body>
202
- </html>
@@ -1,141 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="fr" data-crawl-url="https://concorde.supersoniks.org/crawl/docs/_decorators/bind.html" data-doc-id="docs/_decorators/bind">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>@bind — Concorde</title>
7
- <meta name="description" content="Binds a class property to a path in a publisher. The property updates when publisher data changes.">
8
- <meta name="keywords" content="Concorde, supersoniks, docs/_decorators/bind, bind, @bind, decorator, @state(), DataProviderKey, . Use , reflect: true, publisher.set(...)">
9
- <meta name="concorde-doc-id" content="docs/_decorators/bind">
10
- <link rel="canonical" href="https://concorde.supersoniks.org/crawl/docs/_decorators/bind.html">
11
- </head>
12
- <body>
13
- <header>
14
- <p><a href="../../index.html">Concorde documentation (crawl)</a> · <a href="https://concorde.supersoniks.org/#docs/_decorators/bind.md/bind" rel="nofollow">interactive version</a></p>
15
- </header>
16
- <main>
17
- <article>
18
- <p class="doc-lead" id="doc-summary"><strong>Concorde decorator — @bind</strong>. Binds a class property to a path in a publisher. The property updates when publisher data changes. <span>Doc ID: <code>docs/_decorators/bind</code>. Keywords: Concorde, supersoniks, docs/_decorators/bind, bind, @bind, decorator, @state(), DataProviderKey, . Use , reflect: true, publisher.set(...). URL: <a href="https://concorde.supersoniks.org/crawl/docs/_decorators/bind.html">https://concorde.supersoniks.org/crawl/docs/_decorators/bind.html</a>.</span></p>
19
- <h1 id="bind">@bind</h1>
20
- <p>Binds a class property to a path in a publisher. The property updates when publisher data changes.</p>
21
- <p>For Lit re-renders, also add <code>@state()</code> on the same property.</p>
22
- <p><strong>See also:</strong> <a href="./subscribe.html#subscribe">@subscribe</a>, <a href="./handle.html#handle">@handle</a>, <a href="./publish.html#publish">@publish</a>, <a href="./get.html#get">@get</a>, <a href="./post.html#post">@post</a>, <a href="./put.html#put">@put</a>, <a href="./patch.html#patch">@patch</a>.</p>
23
- <h2 id="principle">Principle</h2>
24
- <p>The decorator subscribes to the DataProvider store using dot notation or a <code>DataProviderKey</code>. Updates flow into the decorated property (<a href="../_core-concept/dataFlow.html#dataFlow">Data flow</a>).</p>
25
- <h2 id="import">Import</h2>
26
- <pre><code class="language-typescript">import { bind } from &quot;@supersoniks/concorde/decorators&quot;;
27
- </code></pre>
28
- <h2 id="example">Example</h2>
29
- <pre><code class="language-typescript">@customElement(&quot;demo-bind&quot;)
30
- export class DemoBind extends LitElement {
31
- static styles = [tailwind];
32
-
33
- @bind(&quot;demoData.firstName&quot;)
34
- @state()
35
- firstName = &quot;&quot;;
36
-
37
- @bind(&quot;demoData.lastName&quot;)
38
- @state()
39
- lastName: string = &quot;&quot;;
40
-
41
- @bind(&quot;demoData.count&quot;)
42
- @state()
43
- count: number = 0;
44
-
45
- render() {
46
- return //......
47
- }
48
-
49
- updateData() {
50
- set(demoDataKey, { ...get(demoDataKey), count: get(demoDataKey).count + 1 });
51
- // see demo-bind in src/docs/example/decorators-demo-bind-demos.ts
52
- const randomIndex = Math.floor(Math.random() * demoUsers.get().length);
53
- const randomUser = demoUsers.get()[randomIndex];
54
- demoData.set({
55
- firstName: randomUser.firstName,
56
- lastName: randomUser.lastName,
57
- count: (demoData.count.get() || 0) + 1,
58
- });
59
- }
60
- }
61
- </code></pre>
62
- <pre><code>&lt;docs-demo-sources for=&quot;demo-bind&quot;&gt;&lt;/docs-demo-sources&gt;
63
- &lt;demo-bind&gt;&lt;/demo-bind&gt;
64
- </code></pre>
65
- <h2 id="dataproviderkey-strict-typing"><code>DataProviderKey</code> (strict typing)</h2>
66
- <p><code>@bind</code> accepts either a string path (legacy) or a <code>DataProviderKey&lt;T&gt;</code>. The property type must match <code>T</code>. Use <code>reflect: true</code> to push local writes back to the publisher (see below). See <a href="../_misc/dataProviderKey.html#dataProviderKey">DataProviderKey</a>.</p>
67
- <pre><code class="language-typescript">import { bind } from &quot;@supersoniks/concorde/decorators&quot;;
68
- import { DataProviderKey } from &quot;@supersoniks/concorde/dataProviderKey&quot;;
69
-
70
- type Data = { count: number };
71
- const dataKey = new DataProviderKey&lt;Data&gt;(&quot;data&quot;);
72
-
73
- @bind(dataKey.count, { reflect: true })
74
- @state()
75
- count: number = 0;
76
- </code></pre>
77
- <h2 id="reflect-reflect-true">Reflect (<code>reflect: true</code>)</h2>
78
- <p>Two-way sync: reads from the publisher and local assignments call <code>publisher.set(...)</code>. An internal guard avoids infinite loops.</p>
79
- <pre><code class="language-typescript">@bind(&quot;userData.profile.avatarUrl&quot;, { reflect: true })
80
- @state()
81
- avatar: string;
82
- </code></pre>
83
- <pre><code class="language-typescript">@customElement(&quot;demo-bind-reflect&quot;)
84
- export class DemoBindReflect extends LitElement {
85
- static styles = [tailwind];
86
-
87
- @bind(&quot;bindReflectDemo.count&quot;, { reflect: true })
88
- @state()
89
- withReflect: number = 0;
90
-
91
- @bind(&quot;bindReflectDemo.count&quot;)
92
- @state()
93
- withoutReflect: number = 0;
94
-
95
- render() {
96
- return html`
97
- &lt;div class=&quot;mb-3&quot;&gt;
98
- from publisher : ${sub(&quot;bindReflectDemo.count&quot;) || 0} &lt;br /&gt;
99
- from component with reflect : ${this.withReflect || 0} &lt;br /&gt;
100
- from component without reflect : ${this.withoutReflect || 0}
101
- &lt;/div&gt;
102
- &lt;sonic-button @click=${() =&gt; this.withReflect++}
103
- &gt;Increment with reflect&lt;/sonic-button
104
- &gt;
105
- &lt;sonic-button @click=${() =&gt; this.withoutReflect++}
106
- &gt;Increment without reflect&lt;/sonic-button
107
- &gt;
108
- `;
109
- }
110
- }
111
- </code></pre>
112
- <pre><code>&lt;docs-demo-sources for=&quot;demo-bind-reflect&quot;&gt;&lt;/docs-demo-sources&gt;
113
- &lt;demo-bind-reflect&gt;&lt;/demo-bind-reflect&gt;
114
- </code></pre>
115
- <h2 id="path-syntax">Path syntax</h2>
116
- <ul>
117
- <li>First segment: data provider id.</li>
118
- <li>Nested properties: dot notation.</li>
119
- <li>Arrays: numeric index (<code>items.0</code>).</li>
120
- </ul>
121
- <h3 id="dynamic-paths">Dynamic paths</h3>
122
- <p>Use <code>${prop}</code> or <code>${this.prop}</code> inside a <strong>normal string literal</strong> (not a JS template literal with backticks). <code>@bind</code> re-subscribes when a reactive dependency changes. While a placeholder is <code>null</code>/<code>undefined</code>, the bind is inactive; optional <code>{ skipEmptyPlaceholder: true }</code> also waits on <code>&quot;&quot;</code>. See <a href="../_misc/dynamic-path.html#dynamic-path">Dynamic path placeholders</a>.</p>
123
- <blockquote>
124
- <p>Properties referenced in the pattern must be reactive (<code>@property</code>, etc.) or you must call <code>requestUpdate</code> manually.</p>
125
- </blockquote>
126
- <pre><code>&lt;docs-demo-sources for=&quot;demo-bind-dynamic&quot;&gt;&lt;/docs-demo-sources&gt;
127
- &lt;demo-bind-dynamic&gt;&lt;/demo-bind-dynamic&gt;
128
- </code></pre>
129
- <h2 id="behavior">Behavior</h2>
130
- <ul>
131
- <li>Subscribes at <code>connectedCallback</code>, unsubscribes at <code>disconnectedCallback</code>.</li>
132
- <li>If the path does not exist yet, a publisher may be created with <code>null</code>.</li>
133
- </ul>
134
- <h2 id="notes">Notes</h2>
135
- <p>Works with any component that has the usual DOM lifecycle (<code>LitElement</code>, <code>Subscriber</code> mixin, etc.).</p>
136
- <p>Shared data: <a href="../_getting-started/pubsub.html#pubsub">Sharing data</a>.</p>
137
-
138
- </article>
139
- </main>
140
- </body>
141
- </html>
@@ -1,149 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="fr" data-crawl-url="https://concorde.supersoniks.org/crawl/docs/_decorators/get.html" data-doc-id="docs/_decorators/get">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>@get — Concorde</title>
7
- <meta name="description" content="@get loads data and stores the result in an optional ApiResult&lt;T&gt; property.">
8
- <meta name="keywords" content="Concorde, supersoniks, docs/_decorators/get, get, @get, decorator, ApiResult, undefined, payload.result, payload.response, payload.request,
9
-
10
- The first argument is always an
11
- [, serviceURL, refetch(component)">
12
- <meta name="concorde-doc-id" content="docs/_decorators/get">
13
- <link rel="canonical" href="https://concorde.supersoniks.org/crawl/docs/_decorators/get.html">
14
- </head>
15
- <body>
16
- <header>
17
- <p><a href="../../index.html">Concorde documentation (crawl)</a> · <a href="https://concorde.supersoniks.org/#docs/_decorators/get.md/get" rel="nofollow">interactive version</a></p>
18
- </header>
19
- <main>
20
- <article>
21
- <p class="doc-lead" id="doc-summary"><strong>Concorde decorator — @get</strong>. @get loads data and stores the result in an optional ApiResult&lt;T&gt; property. <span>Doc ID: <code>docs/_decorators/get</code>. Keywords: Concorde, supersoniks, docs/_decorators/get, get, @get, decorator, ApiResult, undefined, payload.result, payload.response, payload.request,
22
-
23
- The first argument is always an
24
- [, serviceURL, refetch(component). URL: <a href="https://concorde.supersoniks.org/crawl/docs/_decorators/get.html">https://concorde.supersoniks.org/crawl/docs/_decorators/get.html</a>.</span></p>
25
- <h1 id="get">@get</h1>
26
- <p><code>@get</code> loads data and stores the result in an optional <code>ApiResult&lt;T&gt;</code> property.
27
- The property is <code>undefined</code> until a result is available.</p>
28
- <ul>
29
- <li><code>payload.result</code>: typed data;</li>
30
- <li><code>payload.response</code>: the HTTP response;</li>
31
- <li><code>payload.request</code>: the request that was sent.</li>
32
- </ul>
33
- <h2 id="minimal-usage">Minimal usage</h2>
34
- <pre><code class="language-typescript">const usersEndpoint = new Endpoint&lt;User[]&gt;(&quot;users&quot;);
35
-
36
- @get(usersEndpoint)
37
- @state()
38
- payload?: ApiResult&lt;User[]&gt;;
39
- </code></pre>
40
- <p>The same decorator adapts to a method. The method receives the complete
41
- <code>ApiResult&lt;T&gt;</code> payload after each GET:</p>
42
- <pre><code class="language-typescript">@get(usersEndpoint)
43
- handleUsers(payload?: ApiResult&lt;User[]&gt;) {
44
- if (!payload) return;
45
-
46
- console.log(payload.response?.status);
47
- console.log(payload.result);
48
- }
49
- </code></pre>
50
- <p>The first argument is always an
51
- <a href="../_misc/endpoint.html#endpoint"><code>Endpoint&lt;T&gt;</code></a>. API configuration is read
52
- from the HTML scope (<code>serviceURL</code>, token, etc.), so the component is usually
53
- placed below an element that provides this configuration.</p>
54
- <h2 id="refetching-a-get">Refetching a GET</h2>
55
- <h3 id="from-the-component">From the component</h3>
56
- <p>Keep the decorator in a constant to access <code>refetch(component)</code>. Refetch only
57
- targets the instance passed as the argument, even before it has received a
58
- result.</p>
59
- <pre><code class="language-typescript">const usersGet = get(new Endpoint&lt;User[]&gt;(&quot;users&quot;));
60
-
61
- @usersGet
62
- @state()
63
- payload?: ApiResult&lt;User[]&gt;;
64
-
65
- async refresh() {
66
- const payload = await usersGet.refetch(this);
67
- console.log(payload?.result);
68
- }
69
- </code></pre>
70
- <p><code>refetch(component)</code> returns a <code>Promise&lt;ApiResult&lt;T&gt; | undefined&gt;</code> that resolves
71
- after the GET has completed.</p>
72
- <p>The named handle can also decorate a method and be reused for refetching:</p>
73
- <pre><code class="language-typescript">const usersGet = get(new Endpoint&lt;User[]&gt;(&quot;users&quot;));
74
-
75
- @usersGet
76
- handleUsers(payload?: ApiResult&lt;User[]&gt;) {
77
- // ...
78
- }
79
-
80
- @refetch(usersGet)
81
- reloadUsers() {
82
- // The GET runs and handleUsers receives its payload.
83
- }
84
- </code></pre>
85
- <h3 id="from-a-method-decorator">From a method decorator</h3>
86
- <p>The refetch can decorate a local method. The default is <code>after</code>; if the
87
- method returns a Promise, the GET waits for its resolution. The decorated method
88
- call also waits for the refetch to complete.</p>
89
- <pre><code class="language-typescript">import { refetch } from &quot;@supersoniks/concorde/decorators&quot;;
90
-
91
- @refetch(usersGet)
92
- async reload() {
93
- this.userId = &quot;42&quot;;
94
- }
95
- </code></pre>
96
- <p>Use <code>{ when: &quot;before&quot; }</code> when the GET must complete before the method runs:</p>
97
- <pre><code class="language-typescript">@refetch(usersGet, { when: &quot;before&quot; })
98
- reloadBefore() {
99
- // The refetch has completed before this method runs.
100
- }
101
- </code></pre>
102
- <p>The method decorator adds an explicit trigger; changes to dynamic endpoint
103
- properties and configuration publishers keep their existing automatic behavior.</p>
104
- <h2 id="options-getoptions">Options (<code>GetOptions</code>)</h2>
105
- <p>Options are the second argument, or the third argument when an API
106
- configuration key is provided.</p>
107
- <ul>
108
- <li><code>skipEmptyPlaceholder</code>: blocks the GET when <code>${prop}</code> is <code>&quot;&quot;</code>.</li>
109
- <li><code>refetchEveryMs</code>: automatically runs the GET again after this interval
110
- (milliseconds). Omit the option, or use <code>0</code>, to disable polling.</li>
111
- <li><code>triggerKey</code>: a publisher whose <code>invalidate()</code> runs the GET again.</li>
112
- </ul>
113
- <p>With a configuration key, use:</p>
114
- <pre><code class="language-typescript">@get(usersEndpoint, apiConfigurationKey)
115
- </code></pre>
116
- <h2 id="when-the-get-runs-again">When the GET runs again</h2>
117
- <ul>
118
- <li>when the component connects and configuration is available;</li>
119
- <li>when a property used in <code>${...}</code> changes;</li>
120
- <li>when a configuration publisher changes;</li>
121
- <li>when the <code>triggerKey</code> publisher is invalidated;</li>
122
- <li>after each response when <code>refetchEveryMs</code> is set.</li>
123
- </ul>
124
- <p>See <a href="../_misc/dynamic-path.html#dynamic-path">Dynamic path placeholders</a> for
125
- dynamic path details.</p>
126
- <h2 id="import">Import</h2>
127
- <pre><code class="language-typescript">import { get, type ApiResult } from &quot;@supersoniks/concorde/decorators&quot;;
128
- import { DataProviderKey } from &quot;@supersoniks/concorde/dataProviderKey&quot;;
129
- import { Endpoint } from &quot;@supersoniks/concorde/utils/endpoint&quot;;
130
- </code></pre>
131
- <h2 id="demos">Demos</h2>
132
- <pre><code>&lt;docs-demo-sources for=&quot;demo-api-get&quot;&gt;&lt;/docs-demo-sources&gt;
133
- &lt;demo-api-get&gt;&lt;/demo-api-get&gt;
134
- &lt;docs-demo-sources for=&quot;demo-api-get-method&quot;&gt;&lt;/docs-demo-sources&gt;
135
- &lt;demo-api-get-method&gt;&lt;/demo-api-get-method&gt;
136
- &lt;docs-demo-sources for=&quot;demo-api-get-configuration-key&quot;&gt;&lt;/docs-demo-sources&gt;
137
- &lt;demo-api-get-configuration-key&gt;&lt;/demo-api-get-configuration-key&gt;
138
- </code></pre>
139
- <p>See <a href="./post.html#post">@post</a>,
140
- <a href="./put.html#put">@put</a>, and
141
- <a href="./patch.html#patch">@patch</a> for write operations.</p>
142
- <h2 id="advanced">Advanced</h2>
143
- <p>External invalidation is currently available through <code>triggerKey</code>; it is kept
144
- out of the main usage examples.</p>
145
-
146
- </article>
147
- </main>
148
- </body>
149
- </html>