@supersoniks/concorde 5.1.2 → 5.1.3-immutable.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (497) hide show
  1. package/.agents/skills/concorde-docs/SKILL.md +1 -1
  2. package/.claude/skills +1 -0
  3. package/.github/workflows/ci.yml +21 -0
  4. package/.github-export-ignore +30 -0
  5. package/CONTRIBUTING.md +59 -0
  6. package/DEV.md +54 -0
  7. package/LICENSE +21 -0
  8. package/OPEN_SOURCE_CHECKPOINT.md +133 -0
  9. package/README.md +1 -1
  10. package/ai/README.md +29 -41
  11. package/ai/skills/concorde/SKILL.md +54 -324
  12. package/ai/skills/concorde/rules/composition.md +32 -0
  13. package/ai/skills/concorde/rules/data.md +47 -0
  14. package/ai/skills/concorde/rules/http.md +25 -0
  15. package/ai/skills/concorde/rules/lists-forms.md +35 -0
  16. package/ai/skills/concorde/rules/styling.md +46 -0
  17. package/ai/skills/concorde/rules/troubleshooting.md +45 -0
  18. package/build-infos.json +1 -1
  19. package/concorde-core.bundle.js +177 -177
  20. package/concorde-core.es.js +4993 -4833
  21. package/custom-elements-manifest.public.config.mjs +8 -0
  22. package/{.tmp-cem/custom-elements.json → custom-elements.json} +11722 -8868
  23. package/dist/concorde-core.bundle.js +177 -177
  24. package/dist/concorde-core.es.js +4993 -4833
  25. package/dist/docs-mock-api-sw.js +58 -223
  26. package/dist/docs-mock-api-sw.js.map +4 -4
  27. package/dist/img/og-concorde.jpg +0 -0
  28. package/dist/robots.txt +11 -10
  29. package/docs/assets/index-CD4WyL6o.css +1 -0
  30. package/docs/assets/index-D_alEsng.js +12122 -0
  31. package/docs/crawl/core/components/functional/date/date.html +190 -0
  32. package/docs/crawl/core/components/functional/fetch/fetch.html +109 -0
  33. package/docs/crawl/core/components/functional/if/if.html +27 -0
  34. package/docs/crawl/core/components/functional/jsonata/jsonata.html +79 -0
  35. package/docs/crawl/core/components/functional/list/list.html +70 -0
  36. package/docs/crawl/core/components/functional/mix/mix.html +45 -0
  37. package/docs/crawl/core/components/functional/queue/queue.html +96 -0
  38. package/docs/crawl/core/components/functional/router/router.html +106 -0
  39. package/docs/{core → crawl/core}/components/functional/sdui/sdui-extension-points.html +8 -9
  40. package/docs/crawl/core/components/functional/sdui/sdui.html +368 -0
  41. package/docs/crawl/core/components/functional/states/states.html +66 -0
  42. package/docs/crawl/core/components/functional/submit/submit.html +160 -0
  43. package/docs/{core → crawl/core}/components/functional/subscriber/subscriber.html +5 -6
  44. package/docs/crawl/core/components/functional/value/value.html +51 -0
  45. package/docs/{core → crawl/core}/components/ui/alert/alert.html +63 -53
  46. package/docs/{core → crawl/core}/components/ui/alert-messages/alert-messages.html +5 -6
  47. package/docs/{core → crawl/core}/components/ui/badge/badge.html +33 -33
  48. package/docs/crawl/core/components/ui/button/button.html +150 -0
  49. package/docs/crawl/core/components/ui/captcha/captcha.html +112 -0
  50. package/docs/{core → crawl/core}/components/ui/card/card.html +11 -12
  51. package/docs/{core → crawl/core}/components/ui/divider/divider.html +14 -14
  52. package/docs/crawl/core/components/ui/form/checkbox/checkbox.html +73 -0
  53. package/docs/crawl/core/components/ui/form/fieldset/fieldset.html +266 -0
  54. package/docs/{core → crawl/core}/components/ui/form/form-actions/form-actions.html +23 -23
  55. package/docs/crawl/core/components/ui/form/form-layout/form-layout.html +121 -0
  56. package/docs/crawl/core/components/ui/form/input/input.html +109 -0
  57. package/docs/crawl/core/components/ui/form/input-autocomplete/input-autocomplete.html +38 -0
  58. package/docs/crawl/core/components/ui/form/radio/radio.html +56 -0
  59. package/docs/crawl/core/components/ui/form/select/select.html +73 -0
  60. package/docs/crawl/core/components/ui/form/switch/switch.html +56 -0
  61. package/docs/crawl/core/components/ui/form/textarea/textarea.html +59 -0
  62. package/docs/crawl/core/components/ui/group/group.html +104 -0
  63. package/docs/{core → crawl/core}/components/ui/icon/icon.html +9 -10
  64. package/docs/crawl/core/components/ui/image/image.html +298 -0
  65. package/docs/{core → crawl/core}/components/ui/link/link.html +11 -12
  66. package/docs/crawl/core/components/ui/loader/loader.html +124 -0
  67. package/docs/{core → crawl/core}/components/ui/menu/menu.html +33 -34
  68. package/docs/crawl/core/components/ui/modal/modal.html +342 -0
  69. package/docs/crawl/core/components/ui/pop/pop.html +296 -0
  70. package/docs/{core → crawl/core}/components/ui/progress/progress.html +7 -8
  71. package/docs/crawl/core/components/ui/table/table.html +545 -0
  72. package/docs/crawl/core/components/ui/theme/theme.html +131 -0
  73. package/docs/crawl/core/components/ui/toast/toast.html +233 -0
  74. package/docs/crawl/core/components/ui/tooltip/tooltip.html +140 -0
  75. package/docs/{docs/getting-started → crawl/docs/_core-concept}/dataFlow.html +29 -26
  76. package/docs/crawl/docs/_core-concept/overview.html +66 -0
  77. package/docs/crawl/docs/_core-concept/subscriber.html +75 -0
  78. package/docs/crawl/docs/_decorators/ancestor-attribute.html +117 -0
  79. package/docs/crawl/docs/_decorators/auto-subscribe.html +202 -0
  80. package/docs/crawl/docs/_decorators/bind.html +141 -0
  81. package/docs/crawl/docs/_decorators/get.html +149 -0
  82. package/docs/crawl/docs/_decorators/handle.html +165 -0
  83. package/docs/crawl/docs/_decorators/on-assign.html +355 -0
  84. package/docs/crawl/docs/_decorators/patch.html +78 -0
  85. package/docs/crawl/docs/_decorators/post.html +139 -0
  86. package/docs/crawl/docs/_decorators/publish.html +61 -0
  87. package/docs/crawl/docs/_decorators/put.html +78 -0
  88. package/docs/crawl/docs/_decorators/subscribe.html +109 -0
  89. package/docs/crawl/docs/_decorators/wait-for-ancestors.html +137 -0
  90. package/docs/crawl/docs/_directives/sub.html +93 -0
  91. package/docs/{docs/getting-started → crawl/docs/_getting-started}/ai-agents.html +11 -12
  92. package/docs/crawl/docs/_getting-started/concorde-manual-install.html +100 -0
  93. package/docs/crawl/docs/_getting-started/concorde-outside.html +58 -0
  94. package/docs/{docs/getting-started → crawl/docs/_getting-started}/create-a-component.html +14 -11
  95. package/docs/{docs/getting-started → crawl/docs/_getting-started}/my-first-component.html +22 -13
  96. package/docs/crawl/docs/_getting-started/my-first-subscriber.html +110 -0
  97. package/docs/crawl/docs/_getting-started/pubsub.html +62 -0
  98. package/docs/crawl/docs/_getting-started/start.html +76 -0
  99. package/docs/{docs/getting-started → crawl/docs/_getting-started}/theming.html +9 -10
  100. package/docs/{docs/misc → crawl/docs/_misc}/api-configuration.html +18 -18
  101. package/docs/{docs/misc → crawl/docs/_misc}/dataProviderKey.html +11 -12
  102. package/docs/{docs/misc → crawl/docs/_misc}/docs-mock-api.html +28 -25
  103. package/docs/{docs/misc → crawl/docs/_misc}/dynamic-path.html +15 -16
  104. package/docs/{docs/misc → crawl/docs/_misc}/endpoint.html +15 -16
  105. package/docs/crawl/docs/_misc/formelement-subscriber-removal.html +138 -0
  106. package/docs/{docs/misc → crawl/docs/_misc}/html-integration.html +15 -12
  107. package/docs/crawl/hubs/decorators.html +547 -0
  108. package/docs/crawl/hubs/form-components.html +381 -0
  109. package/docs/crawl/hubs/remote-data.html +452 -0
  110. package/docs/crawl/index.html +103 -0
  111. package/docs/docs-mock-api-sw.js +223 -58
  112. package/docs/docs-mock-api-sw.js.map +4 -4
  113. package/docs/index.html +68 -95
  114. package/docs/llms-full.txt +3610 -2231
  115. package/docs/llms.txt +86 -94
  116. package/docs/robots.txt +10 -11
  117. package/docs/sitemap.xml +84 -78
  118. package/docs/src/core/components/functional/date/date.md +231 -91
  119. package/docs/src/core/components/functional/fetch/fetch.md +83 -66
  120. package/docs/src/core/components/functional/if/if.md +3 -28
  121. package/docs/src/core/components/functional/jsonata/jsonata.md +37 -42
  122. package/docs/src/core/components/functional/list/list.md +43 -99
  123. package/docs/src/core/components/functional/mix/mix.md +26 -31
  124. package/docs/src/core/components/functional/queue/queue.md +61 -40
  125. package/docs/src/core/components/functional/router/router.md +65 -64
  126. package/docs/src/core/components/functional/sdui/component-catalog.gaps.json +1 -1
  127. package/docs/src/core/components/functional/sdui/component-catalog.json +1 -1
  128. package/docs/src/core/components/functional/sdui/example.json +86 -19
  129. package/docs/src/core/components/functional/sdui/sdui-extension-points.md +1 -1
  130. package/docs/src/core/components/functional/sdui/sdui.md +358 -187
  131. package/docs/src/core/components/functional/states/states.md +61 -86
  132. package/docs/src/core/components/functional/submit/submit.md +72 -64
  133. package/docs/src/core/components/functional/value/value.md +22 -34
  134. package/docs/src/core/components/ui/alert/alert.md +58 -48
  135. package/docs/src/core/components/ui/badge/badge.md +34 -27
  136. package/docs/src/core/components/ui/button/button.md +106 -139
  137. package/docs/src/core/components/ui/captcha/captcha.md +32 -17
  138. package/docs/src/core/components/ui/card/card.md +6 -6
  139. package/docs/src/core/components/ui/divider/divider.md +11 -8
  140. package/docs/src/core/components/ui/form/checkbox/checkbox.md +42 -90
  141. package/docs/src/core/components/ui/form/fieldset/fieldset.md +75 -31
  142. package/docs/src/core/components/ui/form/form-actions/form-actions.md +16 -14
  143. package/docs/src/core/components/ui/form/form-layout/form-layout.md +29 -19
  144. package/docs/src/core/components/ui/form/input/input.md +95 -95
  145. package/docs/src/core/components/ui/form/input-autocomplete/input-autocomplete.md +29 -0
  146. package/docs/src/core/components/ui/form/radio/radio.md +34 -55
  147. package/docs/src/core/components/ui/form/select/select.md +45 -60
  148. package/docs/src/core/components/ui/form/switch/switch.md +34 -57
  149. package/docs/src/core/components/ui/form/textarea/textarea.md +38 -55
  150. package/docs/src/core/components/ui/group/group.md +33 -35
  151. package/docs/src/core/components/ui/icon/icon.md +4 -4
  152. package/docs/src/core/components/ui/image/image.md +107 -41
  153. package/docs/src/core/components/ui/link/link.md +6 -6
  154. package/docs/src/core/components/ui/loader/loader.md +55 -30
  155. package/docs/src/core/components/ui/menu/menu.md +27 -27
  156. package/docs/src/core/components/ui/modal/modal.md +96 -72
  157. package/docs/src/core/components/ui/pop/pop.md +158 -80
  158. package/docs/src/core/components/ui/progress/progress.md +2 -2
  159. package/docs/src/core/components/ui/table/table.md +255 -91
  160. package/docs/src/core/components/ui/theme/theme.md +36 -11
  161. package/docs/src/core/components/ui/toast/toast.md +117 -48
  162. package/docs/src/core/components/ui/tooltip/tooltip.md +62 -27
  163. package/docs/{docs/getting-started → src/docs/_core-concept}/dataFlow.md +18 -17
  164. package/docs/src/docs/_core-concept/overview.md +57 -0
  165. package/docs/src/docs/_core-concept/subscriber.md +75 -0
  166. package/docs/src/docs/_decorators/ancestor-attribute.md +128 -0
  167. package/docs/src/docs/_decorators/auto-subscribe.md +202 -0
  168. package/docs/src/docs/_decorators/bind.md +167 -0
  169. package/docs/src/docs/_decorators/get.md +162 -0
  170. package/docs/src/docs/_decorators/handle.md +175 -0
  171. package/docs/src/docs/_decorators/on-assign.md +390 -0
  172. package/docs/src/docs/_decorators/patch.md +70 -0
  173. package/docs/src/docs/_decorators/post.md +146 -0
  174. package/docs/src/docs/_decorators/publish.md +55 -0
  175. package/docs/src/docs/_decorators/put.md +70 -0
  176. package/docs/src/docs/_decorators/subscribe.md +100 -0
  177. package/docs/src/docs/_decorators/wait-for-ancestors.md +163 -0
  178. package/docs/src/docs/_directives/sub.md +91 -0
  179. package/docs/src/docs/{getting-started → _getting-started}/ai-agents.md +3 -3
  180. package/docs/src/docs/_getting-started/concorde-manual-install.md +133 -0
  181. package/docs/src/docs/_getting-started/concorde-outside.md +33 -0
  182. package/docs/{docs/getting-started → src/docs/_getting-started}/create-a-component.md +6 -3
  183. package/docs/src/docs/{getting-started → _getting-started}/my-first-component.md +14 -5
  184. package/docs/src/docs/_getting-started/my-first-subscriber.md +120 -0
  185. package/docs/src/docs/_getting-started/pubsub.md +37 -0
  186. package/docs/src/docs/{getting-started → _getting-started}/start.md +13 -1
  187. package/docs/src/docs/{getting-started → _getting-started}/theming.md +2 -2
  188. package/docs/src/docs/{misc → _misc}/api-configuration.md +12 -10
  189. package/docs/src/docs/{misc → _misc}/dataProviderKey.md +4 -4
  190. package/docs/{docs/misc → src/docs/_misc}/docs-mock-api.md +13 -12
  191. package/docs/{docs/misc → src/docs/_misc}/dynamic-path.md +8 -8
  192. package/docs/{docs/misc → src/docs/_misc}/endpoint.md +8 -8
  193. package/docs/src/docs/_misc/formelement-subscriber-removal.md +115 -0
  194. package/docs/{docs/misc → src/docs/_misc}/html-integration.md +5 -4
  195. package/docs/src/docs/search/docs-search.json +4375 -2420
  196. package/docs/src/tsconfig.declarations.json +22 -0
  197. package/docs/src/tsconfig.emit.json +23 -0
  198. package/docs/src/tsconfig.json +2 -23
  199. package/gitlab/job_github_mirror.sh +39 -0
  200. package/index.html +89 -0
  201. package/package.json +22 -4
  202. package/public/img/og-concorde.jpg +0 -0
  203. package/scripts/ai-init.mjs +104 -379
  204. package/scripts/ai-init.test.mjs +81 -239
  205. package/scripts/docs-markdown-vite-plugin.ts +11 -5
  206. package/scripts/docs-public-url.mjs +6 -0
  207. package/scripts/docs.htaccess +7 -0
  208. package/scripts/generate-cem.mjs +244 -0
  209. package/scripts/generate-cem.test.mjs +122 -0
  210. package/scripts/generate-crawl-docs.mjs +29 -5
  211. package/scripts/generate-sdui-catalog.mjs +11 -10
  212. package/scripts/github-export.mjs +150 -0
  213. package/scripts/post-build-docs.js +3 -0
  214. package/scripts/post-build.mjs +0 -0
  215. package/scripts/pre-publish.mjs +2 -1
  216. package/scripts/site-pages.mjs +212 -0
  217. package/scripts/site-pages.test.mjs +116 -0
  218. package/site-pages/about.md +22 -0
  219. package/site-pages/privacy.md +32 -0
  220. package/src/core/components/functional/date/date.md +1 -1
  221. package/src/core/components/functional/example/example.ts +3 -1
  222. package/src/core/components/functional/if/if.ts +0 -0
  223. package/src/core/components/functional/list/list.demo.ts +0 -0
  224. package/src/core/components/functional/list/list.md +6 -2
  225. package/src/core/components/functional/list/list.ts +17 -4
  226. package/src/core/components/functional/mix/mix.md +0 -0
  227. package/src/core/components/functional/router/router.demo.ts +0 -0
  228. package/src/core/components/functional/router/router.ts +0 -0
  229. package/src/core/components/functional/sdui/SDUIDescriptorTransformer.ts +0 -0
  230. package/src/core/components/functional/sdui/component-catalog.gaps.json +1 -1
  231. package/src/core/components/functional/sdui/component-catalog.json +2 -2
  232. package/src/core/components/functional/sdui/example.json +0 -0
  233. package/src/core/components/functional/sdui/sdui-immutable.spec.ts +74 -0
  234. package/src/core/components/functional/sdui/sdui.ts +33 -8
  235. package/src/core/components/functional/sdui/types.ts +0 -0
  236. package/src/core/components/functional/states/states.ts +0 -0
  237. package/src/core/components/functional/submit/submit.spec.ts +60 -0
  238. package/src/core/components/functional/submit/submit.ts +6 -3
  239. package/src/core/components/functional/subscriber/subscriber.ts +0 -0
  240. package/src/core/components/functional/value/value.md +0 -0
  241. package/src/core/components/functional/value/value.ts +0 -0
  242. package/src/core/components/ui/_css/size.ts +0 -0
  243. package/src/core/components/ui/captcha/altchaStyles.ts +0 -0
  244. package/src/core/components/ui/card/card.md +1 -1
  245. package/src/core/components/ui/form/input/input.md +19 -1
  246. package/src/core/components/ui/form/input/input.ts +8 -2
  247. package/src/core/components/ui/form/radio/radio.md +14 -0
  248. package/src/core/components/ui/image/image.md +17 -17
  249. package/src/core/components/ui/modal/modal.md +2 -2
  250. package/src/core/decorators/subscriber/bind.ts +9 -14
  251. package/src/core/decorators/subscriber/subscribe.ts +15 -9
  252. package/src/core/decorators/subscriber/subscribe.type-test.ts +14 -5
  253. package/src/core/mixins/Subscriber.ts +0 -0
  254. package/src/core/utils/DataBindObserver.ts +0 -0
  255. package/src/core/utils/Objects.ts +0 -0
  256. package/src/core/utils/PublisherProxy.ts +166 -125
  257. package/src/core/utils/deepReadonly.spec.ts +66 -0
  258. package/src/core/utils/deepReadonly.ts +71 -0
  259. package/src/core/utils/immutableValue.spec.ts +54 -0
  260. package/src/core/utils/immutableValue.ts +102 -0
  261. package/src/core/utils/nestedDotForm.spec.ts +88 -0
  262. package/src/core/utils/publisherImmutable.spec.ts +76 -0
  263. package/src/core/utils/route.ts +0 -0
  264. package/src/core/utils/strictGet.spec.ts +61 -0
  265. package/src/core/utils/strictGet.ts +102 -0
  266. package/src/css.d.ts +19 -0
  267. package/src/docs/components/docs-demo-sources.ts +3 -3
  268. package/src/docs/decorators/bind.md +23 -24
  269. package/src/docs/docs-location.spec.ts +10 -0
  270. package/src/docs/docs-location.ts +10 -0
  271. package/src/docs/example/decorators-demo-bind-demos.ts +11 -28
  272. package/src/docs/example/docs-toggle-demos.ts +1 -1
  273. package/src/docs/example/users.ts +0 -0
  274. package/src/docs/getting-started/ai-agents.md +29 -55
  275. package/src/docs/getting-started/dataFlow.md +2 -2
  276. package/src/docs/home/home.ts +3 -1
  277. package/src/docs/misc/publisher-get-immutability-docs-crawl.json +902 -0
  278. package/src/docs/misc/publisher-get-immutability-docs-recheck.json +13 -0
  279. package/src/docs/misc/publisher-get-immutability-study.md +229 -0
  280. package/src/docs/navigation/navigation.ts +5 -1
  281. package/src/docs/search/docs-search.json +358 -58
  282. package/src/docs/search/markdown-renderer.ts +6 -1
  283. package/src/docs/tailwind/css/docs/content.css +4 -5
  284. package/src/tsconfig.declarations.json +22 -0
  285. package/src/tsconfig.emit.json +23 -0
  286. package/src/tsconfig.json +53 -5
  287. package/src/tsconfig.tsbuildinfo +1 -1
  288. package/.taste-skill/after/desktop-fold.jpg +0 -0
  289. package/.taste-skill/after/desktop-page-01.jpg +0 -0
  290. package/.taste-skill/after/desktop-page-02.jpg +0 -0
  291. package/.taste-skill/after/desktop-page-03.jpg +0 -0
  292. package/.taste-skill/after/mobile-fold.jpg +0 -0
  293. package/.taste-skill/after/mobile-page-01.jpg +0 -0
  294. package/.taste-skill/after/report.json +0 -4103
  295. package/.taste-skill/after/tablet-fold.jpg +0 -0
  296. package/.taste-skill/after/tablet-page-01.jpg +0 -0
  297. package/.taste-skill/after/tablet-page-02.jpg +0 -0
  298. package/.taste-skill/before/desktop-fold.jpg +0 -0
  299. package/.taste-skill/before/desktop-page-01.jpg +0 -0
  300. package/.taste-skill/before/desktop-page-02.jpg +0 -0
  301. package/.taste-skill/before/mobile-fold.jpg +0 -0
  302. package/.taste-skill/before/mobile-page-01.jpg +0 -0
  303. package/.taste-skill/before/report.json +0 -2556
  304. package/.taste-skill/before/tablet-fold.jpg +0 -0
  305. package/.taste-skill/before/tablet-page-01.jpg +0 -0
  306. package/.taste-skill/direction.json +0 -510
  307. package/.taste-skill/notes.md +0 -84
  308. package/.taste-skill/prod/desktop-fold.jpg +0 -0
  309. package/.taste-skill/prod/desktop-page-01.jpg +0 -0
  310. package/.taste-skill/prod/desktop-page-02.jpg +0 -0
  311. package/.taste-skill/prod/desktop-page-03.jpg +0 -0
  312. package/.taste-skill/prod/mobile-fold.jpg +0 -0
  313. package/.taste-skill/prod/mobile-page-01.jpg +0 -0
  314. package/.taste-skill/prod/mobile-page-02.jpg +0 -0
  315. package/.taste-skill/prod/report.json +0 -1973
  316. package/.taste-skill/prod/tablet-fold.jpg +0 -0
  317. package/.taste-skill/prod/tablet-page-01.jpg +0 -0
  318. package/.taste-skill/prod/tablet-page-02.jpg +0 -0
  319. package/AUDIT.md +0 -228
  320. package/PLAN-AMELIORATION.md +0 -220
  321. package/PLAN-DOCS-AGENTS.md +0 -80
  322. package/ai/AGENTS.md +0 -56
  323. package/ai/cursor/rules/concorde-menu.mdc +0 -15
  324. package/ai/cursor/rules/concorde-scope.mdc +0 -14
  325. package/ai/cursor/rules/concorde-theme.mdc +0 -13
  326. package/ai/cursor/rules/concorde.mdc +0 -66
  327. package/ai/jetbrains/rules/concorde.md +0 -53
  328. package/ai/skills/concorde-get-set-dp/SKILL.md +0 -194
  329. package/ai/skills/concorde-imports/SKILL.md +0 -78
  330. package/ai/skills/concorde-menu/SKILL.md +0 -74
  331. package/ai/skills/concorde-scope/SKILL.md +0 -70
  332. package/ai/skills/concorde-theme/SKILL.md +0 -57
  333. package/docs/.htaccess +0 -75
  334. package/docs/404.html +0 -15
  335. package/docs/404.md +0 -5
  336. package/docs/assets/index-BgG6FFPt.js +0 -11765
  337. package/docs/assets/index-x89XINSG.css +0 -1
  338. package/docs/core/components/functional/date/date.html +0 -211
  339. package/docs/core/components/functional/date/date.md +0 -150
  340. package/docs/core/components/functional/fetch/fetch.html +0 -180
  341. package/docs/core/components/functional/fetch/fetch.md +0 -108
  342. package/docs/core/components/functional/if/if.html +0 -65
  343. package/docs/core/components/functional/if/if.md +0 -34
  344. package/docs/core/components/functional/jsonata/jsonata.html +0 -110
  345. package/docs/core/components/functional/jsonata/jsonata.md +0 -61
  346. package/docs/core/components/functional/list/list.html +0 -198
  347. package/docs/core/components/functional/list/list.md +0 -121
  348. package/docs/core/components/functional/mix/mix.html +0 -78
  349. package/docs/core/components/functional/mix/mix.md +0 -46
  350. package/docs/core/components/functional/queue/queue.html +0 -155
  351. package/docs/core/components/functional/queue/queue.md +0 -51
  352. package/docs/core/components/functional/router/router.html +0 -154
  353. package/docs/core/components/functional/router/router.md +0 -93
  354. package/docs/core/components/functional/sdui/sdui-extension-points.md +0 -94
  355. package/docs/core/components/functional/sdui/sdui.html +0 -397
  356. package/docs/core/components/functional/sdui/sdui.md +0 -307
  357. package/docs/core/components/functional/states/states.html +0 -141
  358. package/docs/core/components/functional/states/states.md +0 -112
  359. package/docs/core/components/functional/submit/submit.html +0 -178
  360. package/docs/core/components/functional/submit/submit.md +0 -106
  361. package/docs/core/components/functional/subscriber/subscriber.md +0 -91
  362. package/docs/core/components/functional/translation/translation.html +0 -60
  363. package/docs/core/components/functional/translation/translation.md +0 -38
  364. package/docs/core/components/functional/value/value.html +0 -81
  365. package/docs/core/components/functional/value/value.md +0 -47
  366. package/docs/core/components/ui/alert/alert.md +0 -186
  367. package/docs/core/components/ui/alert-messages/alert-messages.md +0 -85
  368. package/docs/core/components/ui/badge/badge.md +0 -181
  369. package/docs/core/components/ui/button/button.html +0 -309
  370. package/docs/core/components/ui/button/button.md +0 -216
  371. package/docs/core/components/ui/captcha/captcha.html +0 -80
  372. package/docs/core/components/ui/captcha/captcha.md +0 -56
  373. package/docs/core/components/ui/card/card.md +0 -215
  374. package/docs/core/components/ui/divider/divider.md +0 -126
  375. package/docs/core/components/ui/form/checkbox/checkbox.html +0 -200
  376. package/docs/core/components/ui/form/checkbox/checkbox.md +0 -125
  377. package/docs/core/components/ui/form/fieldset/fieldset.html +0 -238
  378. package/docs/core/components/ui/form/fieldset/fieldset.md +0 -161
  379. package/docs/core/components/ui/form/form-actions/form-actions.md +0 -98
  380. package/docs/core/components/ui/form/form-layout/form-layout.html +0 -115
  381. package/docs/core/components/ui/form/form-layout/form-layout.md +0 -109
  382. package/docs/core/components/ui/form/input/input.html +0 -235
  383. package/docs/core/components/ui/form/input/input.md +0 -142
  384. package/docs/core/components/ui/form/radio/radio.html +0 -144
  385. package/docs/core/components/ui/form/radio/radio.md +0 -78
  386. package/docs/core/components/ui/form/select/select.html +0 -178
  387. package/docs/core/components/ui/form/select/select.md +0 -86
  388. package/docs/core/components/ui/form/switch/switch.html +0 -146
  389. package/docs/core/components/ui/form/switch/switch.md +0 -80
  390. package/docs/core/components/ui/form/textarea/textarea.html +0 -162
  391. package/docs/core/components/ui/form/textarea/textarea.md +0 -82
  392. package/docs/core/components/ui/group/group.html +0 -113
  393. package/docs/core/components/ui/group/group.md +0 -77
  394. package/docs/core/components/ui/icon/icon.md +0 -214
  395. package/docs/core/components/ui/image/image.html +0 -194
  396. package/docs/core/components/ui/image/image.md +0 -167
  397. package/docs/core/components/ui/link/link.md +0 -81
  398. package/docs/core/components/ui/loader/loader.html +0 -114
  399. package/docs/core/components/ui/loader/loader.md +0 -87
  400. package/docs/core/components/ui/menu/menu.md +0 -370
  401. package/docs/core/components/ui/modal/modal.html +0 -324
  402. package/docs/core/components/ui/modal/modal.md +0 -211
  403. package/docs/core/components/ui/pop/pop.html +0 -250
  404. package/docs/core/components/ui/pop/pop.md +0 -216
  405. package/docs/core/components/ui/progress/progress.md +0 -109
  406. package/docs/core/components/ui/table/table.html +0 -333
  407. package/docs/core/components/ui/table/table.md +0 -267
  408. package/docs/core/components/ui/theme/theme.html +0 -116
  409. package/docs/core/components/ui/theme/theme.md +0 -97
  410. package/docs/core/components/ui/toast/toast.html +0 -185
  411. package/docs/core/components/ui/toast/toast.md +0 -147
  412. package/docs/core/components/ui/tooltip/tooltip.html +0 -112
  413. package/docs/core/components/ui/tooltip/tooltip.md +0 -89
  414. package/docs/docs/decorators/ancestor-attribute.html +0 -71
  415. package/docs/docs/decorators/ancestor-attribute.md +0 -59
  416. package/docs/docs/decorators/auto-subscribe.html +0 -61
  417. package/docs/docs/decorators/auto-subscribe.md +0 -40
  418. package/docs/docs/decorators/bind.html +0 -86
  419. package/docs/docs/decorators/bind.md +0 -77
  420. package/docs/docs/decorators/get.html +0 -166
  421. package/docs/docs/decorators/get.md +0 -160
  422. package/docs/docs/decorators/handle.html +0 -139
  423. package/docs/docs/decorators/handle.md +0 -119
  424. package/docs/docs/decorators/on-assign.html +0 -72
  425. package/docs/docs/decorators/on-assign.md +0 -63
  426. package/docs/docs/decorators/patch.html +0 -76
  427. package/docs/docs/decorators/patch.md +0 -44
  428. package/docs/docs/decorators/post.html +0 -150
  429. package/docs/docs/decorators/post.md +0 -134
  430. package/docs/docs/decorators/publish.html +0 -74
  431. package/docs/docs/decorators/publish.md +0 -56
  432. package/docs/docs/decorators/put.html +0 -83
  433. package/docs/docs/decorators/put.md +0 -51
  434. package/docs/docs/decorators/subscribe.html +0 -91
  435. package/docs/docs/decorators/subscribe.md +0 -87
  436. package/docs/docs/decorators/wait-for-ancestors.html +0 -82
  437. package/docs/docs/decorators/wait-for-ancestors.md +0 -76
  438. package/docs/docs/directives/sub.html +0 -79
  439. package/docs/docs/directives/sub.md +0 -75
  440. package/docs/docs/directives/t.html +0 -91
  441. package/docs/docs/directives/t.md +0 -73
  442. package/docs/docs/getting-started/ai-agents.md +0 -76
  443. package/docs/docs/getting-started/components.html +0 -27
  444. package/docs/docs/getting-started/components.md +0 -5
  445. package/docs/docs/getting-started/installation.html +0 -69
  446. package/docs/docs/getting-started/installation.md +0 -36
  447. package/docs/docs/getting-started/my-first-component.md +0 -227
  448. package/docs/docs/getting-started/start.html +0 -47
  449. package/docs/docs/getting-started/start.md +0 -35
  450. package/docs/docs/getting-started/theming.md +0 -253
  451. package/docs/docs/index.html +0 -99
  452. package/docs/docs/misc/api-configuration.md +0 -79
  453. package/docs/docs/misc/dataProviderKey.md +0 -168
  454. package/docs/hubs/decorators.html +0 -443
  455. package/docs/hubs/form-components.html +0 -404
  456. package/docs/hubs/remote-data.html +0 -371
  457. package/docs/img/archive/concorde-001-2cv.webp +0 -0
  458. package/docs/img/archive/concorde-red-arrows-2002-poster.jpg +0 -0
  459. package/docs/img/archive/concorde-red-arrows-2002.webm +0 -0
  460. package/docs/img/archive/credits.json +0 -28
  461. package/docs/index.md +0 -22
  462. package/docs/src/core/components/functional/translation/translation.md +0 -38
  463. package/docs/src/docs/decorators/ancestor-attribute.md +0 -59
  464. package/docs/src/docs/decorators/auto-subscribe.md +0 -40
  465. package/docs/src/docs/decorators/bind.md +0 -77
  466. package/docs/src/docs/decorators/get.md +0 -160
  467. package/docs/src/docs/decorators/handle.md +0 -119
  468. package/docs/src/docs/decorators/on-assign.md +0 -63
  469. package/docs/src/docs/decorators/patch.md +0 -44
  470. package/docs/src/docs/decorators/post.md +0 -134
  471. package/docs/src/docs/decorators/publish.md +0 -56
  472. package/docs/src/docs/decorators/put.md +0 -51
  473. package/docs/src/docs/decorators/subscribe.md +0 -87
  474. package/docs/src/docs/decorators/wait-for-ancestors.md +0 -76
  475. package/docs/src/docs/directives/sub.md +0 -75
  476. package/docs/src/docs/directives/t.md +0 -73
  477. package/docs/src/docs/getting-started/components.md +0 -5
  478. package/docs/src/docs/getting-started/create-a-component.md +0 -136
  479. package/docs/src/docs/getting-started/dataFlow.md +0 -87
  480. package/docs/src/docs/getting-started/installation.md +0 -36
  481. package/docs/src/docs/misc/docs-mock-api.md +0 -62
  482. package/docs/src/docs/misc/dynamic-path.md +0 -71
  483. package/docs/src/docs/misc/endpoint.md +0 -45
  484. package/docs/src/docs/misc/html-integration.md +0 -14
  485. /package/{docs → dist}/img/concorde/plane_01.jpg +0 -0
  486. /package/{docs → dist}/img/concorde/plane_02.jpg +0 -0
  487. /package/{docs → dist}/img/concorde/plane_03.jpg +0 -0
  488. /package/{docs → dist}/img/concorde/plane_04.jpg +0 -0
  489. /package/{docs → dist}/img/concorde/plane_05.jpg +0 -0
  490. /package/{docs → dist}/img/concorde/plane_06.jpg +0 -0
  491. /package/{docs → dist}/img/concorde/plane_07.jpg +0 -0
  492. /package/{docs → dist}/img/concorde/plane_08.jpg +0 -0
  493. /package/{docs → dist}/img/concorde/plane_09.jpg +0 -0
  494. /package/{docs → dist}/img/concorde/plane_10.jpg +0 -0
  495. /package/{docs → dist}/img/concorde/plane_11.jpg +0 -0
  496. /package/{docs → dist}/img/concorde/plane_12.jpg +0 -0
  497. /package/{docs → dist}/img/concorde/plane_13.jpg +0 -0
@@ -1,99 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en" data-doc-id="docs-index">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Concorde documentation index — Supersoniks</title>
7
- <meta name="description" content="Documentation index for Concorde by Supersoniks. Same pathnames as the interactive docs; static HTML for crawlers, Markdown via Accept: text/markdown.">
8
- <meta name="keywords" content="Concorde, Supersoniks, documentation index, web components, Lit, DataProvider">
9
- <link rel="canonical" href="https://concorde.supersoniks.org/docs/index.html">
10
- </head>
11
- <body>
12
- <header>
13
- <h1>Concorde documentation</h1>
14
- <p>Canonical URLs match the interactive docs (<code>/docs/…</code>, <code>/core/…</code>). Crawlers receive static HTML; agents can request <code>Accept: text/markdown</code>.</p>
15
- <p>Interactive site: <a href="https://concorde.supersoniks.org/">https://concorde.supersoniks.org/</a> · Full text: <a href="https://concorde.supersoniks.org/llms-full.txt">llms-full.txt</a></p>
16
- <ul>
17
- <li><a href="/hubs/decorators.html">Decorators hub (@get, @post, …)</a></li>
18
- <li><a href="/hubs/remote-data.html">Remote data hub (@get, List, Queue)</a></li>
19
- <li><a href="/hubs/form-components.html">Form components hub</a></li>
20
- </ul>
21
- </header>
22
- <main>
23
- <ul>
24
- <li><a href="/core/components/functional/date">Date</a> <small>(core/components/functional/date/date)</small></li>
25
- <li><a href="/core/components/functional/fetch">Fetch</a> <small>(core/components/functional/fetch/fetch)</small></li>
26
- <li><a href="/core/components/functional/if">If</a> <small>(core/components/functional/if/if)</small></li>
27
- <li><a href="/core/components/functional/jsonata">Jsonata</a> <small>(core/components/functional/jsonata/jsonata)</small></li>
28
- <li><a href="/core/components/functional/list">List</a> <small>(core/components/functional/list/list)</small></li>
29
- <li><a href="/core/components/functional/mix">Mix</a> <small>(core/components/functional/mix/mix)</small></li>
30
- <li><a href="/core/components/functional/queue">Queue</a> <small>(core/components/functional/queue/queue)</small></li>
31
- <li><a href="/core/components/functional/router">Router</a> <small>(core/components/functional/router/router)</small></li>
32
- <li><a href="/core/components/functional/sdui/sdui-extension-points">SDUI — points d’extension publics</a> <small>(core/components/functional/sdui/sdui-extension-points)</small></li>
33
- <li><a href="/core/components/functional/sdui">SDUI</a> <small>(core/components/functional/sdui/sdui)</small></li>
34
- <li><a href="/core/components/functional/states">States</a> <small>(core/components/functional/states/states)</small></li>
35
- <li><a href="/core/components/functional/submit">Submit</a> <small>(core/components/functional/submit/submit)</small></li>
36
- <li><a href="/core/components/functional/subscriber">Subscriber</a> <small>(core/components/functional/subscriber/subscriber)</small></li>
37
- <li><a href="/core/components/functional/translation">Translation</a> <small>(core/components/functional/translation/translation)</small></li>
38
- <li><a href="/core/components/functional/value">Value</a> <small>(core/components/functional/value/value)</small></li>
39
- <li><a href="/core/components/ui/alert-messages">Alert messages</a> <small>(core/components/ui/alert-messages/alert-messages)</small></li>
40
- <li><a href="/core/components/ui/alert">Alert</a> <small>(core/components/ui/alert/alert)</small></li>
41
- <li><a href="/core/components/ui/badge">Badge</a> <small>(core/components/ui/badge/badge)</small></li>
42
- <li><a href="/core/components/ui/button">Button</a> <small>(core/components/ui/button/button)</small></li>
43
- <li><a href="/core/components/ui/captcha">Captcha</a> <small>(core/components/ui/captcha/captcha)</small></li>
44
- <li><a href="/core/components/ui/card">Card</a> <small>(core/components/ui/card/card)</small></li>
45
- <li><a href="/core/components/ui/divider">Divider</a> <small>(core/components/ui/divider/divider)</small></li>
46
- <li><a href="/core/components/ui/form/checkbox">Checkbox</a> <small>(core/components/ui/form/checkbox/checkbox)</small></li>
47
- <li><a href="/core/components/ui/form/fieldset">Fieldset</a> <small>(core/components/ui/form/fieldset/fieldset)</small></li>
48
- <li><a href="/core/components/ui/form/form-actions">Form actions</a> <small>(core/components/ui/form/form-actions/form-actions)</small></li>
49
- <li><a href="/core/components/ui/form/form-layout">Form layout</a> <small>(core/components/ui/form/form-layout/form-layout)</small></li>
50
- <li><a href="/core/components/ui/form/input">Input</a> <small>(core/components/ui/form/input/input)</small></li>
51
- <li><a href="/core/components/ui/form/radio">Radio</a> <small>(core/components/ui/form/radio/radio)</small></li>
52
- <li><a href="/core/components/ui/form/select">Select</a> <small>(core/components/ui/form/select/select)</small></li>
53
- <li><a href="/core/components/ui/form/switch">Switch</a> <small>(core/components/ui/form/switch/switch)</small></li>
54
- <li><a href="/core/components/ui/form/textarea">Textarea</a> <small>(core/components/ui/form/textarea/textarea)</small></li>
55
- <li><a href="/core/components/ui/group">Group</a> <small>(core/components/ui/group/group)</small></li>
56
- <li><a href="/core/components/ui/icon">Icon</a> <small>(core/components/ui/icon/icon)</small></li>
57
- <li><a href="/core/components/ui/image">Image</a> <small>(core/components/ui/image/image)</small></li>
58
- <li><a href="/core/components/ui/link">Link</a> <small>(core/components/ui/link/link)</small></li>
59
- <li><a href="/core/components/ui/loader">Loader</a> <small>(core/components/ui/loader/loader)</small></li>
60
- <li><a href="/core/components/ui/menu">Menu</a> <small>(core/components/ui/menu/menu)</small></li>
61
- <li><a href="/core/components/ui/modal">Modal</a> <small>(core/components/ui/modal/modal)</small></li>
62
- <li><a href="/core/components/ui/pop">Pop</a> <small>(core/components/ui/pop/pop)</small></li>
63
- <li><a href="/core/components/ui/progress">Progress</a> <small>(core/components/ui/progress/progress)</small></li>
64
- <li><a href="/core/components/ui/table">Table</a> <small>(core/components/ui/table/table)</small></li>
65
- <li><a href="/core/components/ui/theme">Theme</a> <small>(core/components/ui/theme/theme)</small></li>
66
- <li><a href="/core/components/ui/toast">Toast</a> <small>(core/components/ui/toast/toast)</small></li>
67
- <li><a href="/core/components/ui/tooltip">Tooltip</a> <small>(core/components/ui/tooltip/tooltip)</small></li>
68
- <li><a href="/docs/decorators/ancestor-attribute">@ancestorAttribute</a> <small>(docs/decorators/ancestor-attribute)</small></li>
69
- <li><a href="/docs/decorators/auto-subscribe">@autoSubscribe</a> <small>(docs/decorators/auto-subscribe)</small></li>
70
- <li><a href="/docs/decorators/bind">@bind</a> <small>(docs/decorators/bind)</small></li>
71
- <li><a href="/docs/decorators/get">@get</a> <small>(docs/decorators/get)</small></li>
72
- <li><a href="/docs/decorators/handle">@handle</a> <small>(docs/decorators/handle)</small></li>
73
- <li><a href="/docs/decorators/on-assign">@onAssign</a> <small>(docs/decorators/on-assign)</small></li>
74
- <li><a href="/docs/decorators/patch">@patch</a> <small>(docs/decorators/patch)</small></li>
75
- <li><a href="/docs/decorators/post">@post</a> <small>(docs/decorators/post)</small></li>
76
- <li><a href="/docs/decorators/publish">@publish</a> <small>(docs/decorators/publish)</small></li>
77
- <li><a href="/docs/decorators/put">@put</a> <small>(docs/decorators/put)</small></li>
78
- <li><a href="/docs/decorators/subscribe">@subscribe</a> <small>(docs/decorators/subscribe)</small></li>
79
- <li><a href="/docs/decorators/wait-for-ancestors">@awaitConnectedAncestors</a> <small>(docs/decorators/wait-for-ancestors)</small></li>
80
- <li><a href="/docs/directives/sub">sub()</a> <small>(docs/directives/sub)</small></li>
81
- <li><a href="/docs/directives/t">t()</a> <small>(docs/directives/t)</small></li>
82
- <li><a href="/docs/getting-started/ai-agents">AI agents (skills &amp; AGENTS.md)</a> <small>(docs/getting-started/ai-agents)</small></li>
83
- <li><a href="/docs/getting-started/components">Components</a> <small>(docs/getting-started/components)</small></li>
84
- <li><a href="/docs/getting-started/create-a-component">Creating components</a> <small>(docs/getting-started/create-a-component)</small></li>
85
- <li><a href="/docs/getting-started/dataFlow">Data flow</a> <small>(docs/getting-started/dataFlow)</small></li>
86
- <li><a href="/docs/getting-started/installation">Installation</a> <small>(docs/getting-started/installation)</small></li>
87
- <li><a href="/docs/getting-started/my-first-component">My first component</a> <small>(docs/getting-started/my-first-component)</small></li>
88
- <li><a href="/docs/getting-started/start">Introduction</a> <small>(docs/getting-started/start)</small></li>
89
- <li><a href="/docs/getting-started/theming">Theming</a> <small>(docs/getting-started/theming)</small></li>
90
- <li><a href="/docs/misc/api-configuration">API configuration</a> <small>(docs/misc/api-configuration)</small></li>
91
- <li><a href="/docs/misc/dataProviderKey">DataProviderKey</a> <small>(docs/misc/dataProviderKey)</small></li>
92
- <li><a href="/docs/misc/docs-mock-api">Local API demos (offline)</a> <small>(docs/misc/docs-mock-api)</small></li>
93
- <li><a href="/docs/misc/dynamic-path">Dynamic path placeholders</a> <small>(docs/misc/dynamic-path)</small></li>
94
- <li><a href="/docs/misc/endpoint">Endpoint</a> <small>(docs/misc/endpoint)</small></li>
95
- <li><a href="/docs/misc/html-integration">HTML integration (no Lit)</a> <small>(docs/misc/html-integration)</small></li>
96
- </ul>
97
- </main>
98
- </body>
99
- </html>
@@ -1,79 +0,0 @@
1
- # API configuration
2
-
3
- `APIConfiguration` is the object built by [`HTML.getApiConfiguration`](../../core/utils/HTML.ts) from **ancestor attributes** on the DOM (or from a typed publisher — see [@get](/docs/decorators/get) / [@post](/docs/decorators/post) configuration key). It is passed to [`API`](../../core/utils/api.ts) by fetchers, **sonic-submit**, the **`wording()`** directive, **`@get`**, **`@post`**, **`@put`**, and **`@patch`**.
4
-
5
- > **Mock service:** same [Local API demos](/docs/misc/docs-mock-api) Service Worker / Vite middleware. Routes used on this page are listed in the [API config routes](#api-config-routes) section below.
6
-
7
- ## Attribute map
8
-
9
- | Attribute (ancestor) | `APIConfiguration` field | Role |
10
- |---------------------|---------------------------|------|
11
- | `serviceURL` | `serviceURL` | Base URL (e.g. `/docs-mock-api`) |
12
- | `token` | `token` | Static Bearer sent on REST calls |
13
- | `userName` / `password` | `userName` / `password` | Basic auth for **tokenProvider** fetch only |
14
- | `eventsApiToken` | `authToken` | Bearer for **tokenProvider** when no Basic |
15
- | `tokenProvider` | `tokenProvider` | Path to GET a new token (`{ token }` JSON) |
16
- | `wordingProvider` | — (read by `wording()`) | Base path + query for label batch GET |
17
- | `wordingVersionProvider` | — | Publisher id; bump version → reload wordings |
18
- | `credentials` | `credentials` | `fetch` credentials mode |
19
- | `addHTTPResponse` | `addHTTPResponse` | Attach `_sonic_http_response_` on result |
20
- | `cache` | `cache` | `fetch` cache mode |
21
- | `blockUntilDone` | `blockUntilDone` | Serialize calls per `serviceURL` |
22
- | `keepAlive` | `keepAlive` | `fetch` keepalive |
23
-
24
- **Lit / TypeScript:** store the same shape in a publisher and pass `DataProviderKey<APIConfiguration>` as the second argument of `@get` (see [DataProviderKey](/docs/misc/dataProviderKey)).
25
-
26
- ## Bearer token (static)
27
-
28
- Publisher `docsApiConfBearerKey` (`set(docsApiConfBearerKey, { token: "docs-mock-valid-token", … })`) — mock returns the protected payload.
29
-
30
- <docs-lit-demo for="docs-api-config-bearer-demo"></docs-lit-demo>
31
-
32
- ## tokenProvider + Basic auth
33
-
34
- No static `token`: `API.auth()` calls `GET /docs-mock-api/auth/token` with Basic **demo** / **secret**, stores `token`, then calls the protected route.
35
-
36
- <docs-lit-demo for="docs-api-config-token-provider-demo"></docs-lit-demo>
37
-
38
- ## HTTP 498 — stale token refresh
39
-
40
- Initial `token="docs-mock-stale-token"` → mock responds **498** → Concorde invalidates the token, runs `auth()` again (same `tokenProvider` + Basic), retries with `docs-mock-fresh-token`.
41
-
42
- <docs-lit-demo for="docs-api-config-stale-token-demo"></docs-lit-demo>
43
-
44
- ## eventsApiToken
45
-
46
- Attribute **`eventsApiToken`** on an ancestor maps to **`authToken`** in config (used as Bearer when calling `tokenProvider`, instead of Basic).
47
-
48
- <docs-lit-demo for="docs-api-config-events-token-demo"></docs-lit-demo>
49
-
50
- ## Wording API
51
-
52
- `wordingProvider` and `wordingVersionProvider` are read by the translation directive: see [t()](/docs/directives/t).
53
-
54
- ## Scoped attributes (HTML / sonic-scope)
55
-
56
- Attributes on **`sonic-scope`** (or any ancestor) are visible to descendants via `getAncestorAttributeValue`.
57
-
58
- <docs-lit-demo for="docs-api-config-scoped-attrs-demo"></docs-lit-demo>
59
-
60
- ## API config routes
61
-
62
- | Route | Demo |
63
- |-------|------|
64
- | `GET /docs-mock-api/auth/token` | tokenProvider, eventsApiToken |
65
- | `GET /docs-mock-api/api/config/protected` | Bearer / Basic / 498 |
66
- | `GET /docs-mock-api/wording/labels?labels[]=…&lang=fr` | `wording()` |
67
-
68
- Mock tokens (doc only): `docs-mock-valid-token`, `docs-mock-stale-token` (498), `docs-mock-fresh-token` (after refresh). Basic: **demo** / **secret**. Events token: `docs-mock-events-token`.
69
-
70
- Implementation: `src/docs/mock-api/api-config-mock.ts` (bundled in the Service Worker with `router.ts`).
71
-
72
- ## See also
73
-
74
- - [@get](/docs/decorators/get) — `APIConfiguration` + `Endpoint`
75
- - [@post](/docs/decorators/post) — same configuration model for POST
76
- - [@put](/docs/decorators/put) · [@patch](/docs/decorators/patch) — PUT / PATCH
77
- - [Endpoint](/docs/misc/endpoint) — typed path
78
- - [Local API demos](/docs/misc/docs-mock-api) — offline `serviceURL`
79
- - [Fetch](/core/components/functional/fetch) — attribute table (legacy sonic-fetch)
@@ -1,168 +0,0 @@
1
- # DataProviderKey
2
-
3
- The `DataProviderKey<T>` utility provides type-safe navigation through composite data structures. Each property or index access extends the path, and the final key can be retrieved via `toString()` or the `path` property.
4
-
5
- For a **single HTTP path string** (no dot-syntax), see [Endpoint](/docs/misc/endpoint). For **`DataProviderKey<APIConfiguration>`**, see [API configuration](/docs/misc/api-configuration).
6
-
7
- ## Principle
8
-
9
- `DataProviderKey` uses a Proxy to intercept property access and build a cumulative path string. TypeScript infers the nested type at each level, so `myKey.items[0]` is correctly typed as `DataProviderKey<Item>` when `items` is `Item[]`.
10
-
11
- In Lit demos, bind HTML attributes from a key’s **`.path`** (single source of truth), and use **`get` / `set` / `dp`** instead of `PublisherManager.get("…")`:
12
-
13
- <sonic-code language="typescript">
14
- <template>
15
- import { DataProviderKey } from "@supersoniks/concorde/dataProviderKey";
16
- import { get, set } from "@supersoniks/concorde/utils";
17
-
18
- export const myFormKey = new DataProviderKey&lt;{ email: string }&gt;("myForm");
19
- set(myFormKey, { email: "a@b.c" });
20
-
21
- // template: formDataProvider=${myFormKey.path}
22
- </template>
23
- </sonic-code>
24
-
25
- ## Usage
26
-
27
- ### Import
28
-
29
- <sonic-code language="typescript">
30
- <template>
31
- import { DataProviderKey } from "@supersoniks/concorde/dataProviderKey";
32
- </template>
33
- </sonic-code>
34
-
35
- ### Basic example
36
-
37
- <sonic-code language="typescript">
38
- <template>
39
- type Item = { id: string; name: string };
40
- //
41
- type Data = {
42
- items: Item[];
43
- count: number;
44
- };
45
- //
46
- const myKey = new DataProviderKey&lt;Data&gt;("data").items[0];
47
- // Equivalent to: new DataProviderKey&lt;Item&gt;("data.items.0")
48
- myKey.toString(); // "data.items.0"
49
- myKey.path; // same value
50
- // myKey is typed as DataProviderKey&lt;Item&gt;
51
- </template>
52
- </sonic-code>
53
-
54
- ### Object property access
55
-
56
- <sonic-code language="typescript">
57
- <template>
58
- const key = new DataProviderKey&lt;Data&gt;("data");
59
- const countKey = key.count;
60
- countKey.path; // "data.count"
61
- countKey.toString(); // "data.count"
62
- </template>
63
- </sonic-code>
64
-
65
- ### Array index access
66
-
67
- <sonic-code language="typescript">
68
- <template>
69
- const itemsKey = new DataProviderKey&lt;Data&gt;("data").items;
70
- itemsKey.path; // "data.items"
71
- // itemsKey is DataProviderKey&lt;Item[]&gt;
72
- //
73
- const firstItem = itemsKey[0];
74
- firstItem.path; // "data.items.0"
75
- // firstItem is DataProviderKey&lt;Item&gt;
76
- </template>
77
- </sonic-code>
78
-
79
- ### Dynamic paths
80
-
81
- Use placeholders `${prop}` or `{$prop}` in the path string. The path is resolved at runtime from the component's properties. See [Dynamic path placeholders](/docs/misc/dynamic-path) for resolution rules and `skipEmptyPlaceholder`. The type remains declarative:
82
-
83
- <sonic-code language="typescript">
84
- <template>
85
- type User = { name: string; email: string };
86
- //
87
- // Path resolved from component.userIndex at runtime
88
- @subscribe(new DataProviderKey&lt;User&gt;("users.${userIndex}"))
89
- @state()
90
- user: User | null = null;
91
- </template>
92
- </sonic-code>
93
-
94
- Dynamic keys are **not** supported by `get`, `set`, or `dp` — those APIs take a snapshot at call time with no component context. For dynamic paths use decorators (`@subscribe`, `@publish`, `@handle`) or **`sub(key)`** in Lit templates (resolves `${…}` from the host component). See [sub()](/docs/directives/sub).
95
-
96
- ### get / set / dp with static keys
97
-
98
- For programmatic access, pass a `DataProviderKey` or a static path string. Dynamic placeholders are rejected:
99
-
100
- <sonic-code language="typescript">
101
- <template>
102
- import { dp, get, set } from "@supersoniks/concorde/utils";
103
- import { DataProviderKey } from "@supersoniks/concorde/dataProviderKey";
104
- //
105
- const counterKey = new DataProviderKey&lt;{ count: number }&gt;("myCounter");
106
- //
107
- set(counterKey, { count: 0 });
108
- dp(counterKey.count).set(1);
109
- get(counterKey); // snapshot: { count: 1 }
110
- </template>
111
- </sonic-code>
112
-
113
- ## Path retrieval
114
-
115
- The final path is built by concatenating each accessed property with a dot:
116
-
117
- - `new DataProviderKey<T>("base")` → `"base"`
118
- - `key.prop` → `"base.prop"`
119
- - `key.items[0]` → `"base.items.0"`
120
-
121
- Use `toString()` or `path` to get the full path string:
122
-
123
- <sonic-code language="typescript">
124
- <template>
125
- const key = new DataProviderKey&lt;Data&gt;("data").count;
126
- const pathString = key.toString(); // "data.count"
127
- const pathProp = key.path; // "data.count"
128
- </template>
129
- </sonic-code>
130
-
131
- ## Use cases
132
-
133
- - **Type-safe bindings**: paths for `@bind`, `@subscribe`, `@publish`, `@handle`
134
- - **Dynamic paths**: reusable keys with `${...}` placeholders
135
- - **Form fields**: form data paths with compile-time checking
136
-
137
- ## Integration with @subscribe, @publish and @handle
138
-
139
- Use `DataProviderKey` with `@subscribe` (read-only), `@publish` (write-only), or `@handle` (method callback on assign). With `@subscribe` / `@publish`, the decorated property **must** match the key’s value type. With `@handle`, the method receives `(value: T)`.
140
-
141
- <sonic-code language="typescript">
142
- <template>
143
- import { subscribe } from "@supersoniks/concorde/decorators";
144
- import { DataProviderKey } from "@supersoniks/concorde/dataProviderKey";
145
- //
146
- type FormData = { email: string };
147
- const formKey = new DataProviderKey&lt;FormData&gt;("formData");
148
- //
149
- @customElement("user-form")
150
- export class UserForm extends LitElement {
151
- @subscribe(formKey.email)
152
- @state()
153
- email = "";
154
- //
155
- render() {
156
- return html`&lt;input .value=${this.email} @input=${(e) => this.email = (e.target as HTMLInputElement).value}&gt;`;
157
- }
158
- }
159
- </template>
160
- </sonic-code>
161
-
162
- These decorators support dynamic paths: `"base.${prop}"` in the constructor. A wrong property type (e.g. `number` for `DataProviderKey<string>`) is a TypeScript error. Resolution rules: [Dynamic path placeholders](/docs/misc/dynamic-path). See [@handle](/docs/decorators/handle) for method callbacks.
163
-
164
- ## Notes
165
-
166
- - Function properties are excluded from navigation (no `key.method()` chaining)
167
- - Primitives have no navigable properties
168
- - The `path` property and `toString()` are equivalent for retrieving the key