@supersoniks/concorde 5.1.1 → 5.1.3-immutable.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (459) hide show
  1. package/.agents/skills/concorde-docs/SKILL.md +153 -0
  2. package/.agents/skills/{concorde-component-docs/template.md → concorde-docs/templates/component.md} +6 -2
  3. package/.agents/skills/concorde-docs/templates/decorator.md +43 -0
  4. package/.agents/skills/concorde-docs/templates/guide.md +25 -0
  5. package/.claude/skills +1 -0
  6. package/.github/workflows/ci.yml +21 -0
  7. package/.github-export-ignore +30 -0
  8. package/CONTRIBUTING.md +59 -0
  9. package/DEV.md +54 -0
  10. package/LICENSE +21 -0
  11. package/OPEN_SOURCE_CHECKPOINT.md +133 -0
  12. package/README.md +4 -4
  13. package/ai/README.md +29 -41
  14. package/ai/skills/concorde/SKILL.md +54 -324
  15. package/ai/skills/concorde/rules/composition.md +32 -0
  16. package/ai/skills/concorde/rules/data.md +47 -0
  17. package/ai/skills/concorde/rules/http.md +25 -0
  18. package/ai/skills/concorde/rules/lists-forms.md +35 -0
  19. package/ai/skills/concorde/rules/styling.md +46 -0
  20. package/ai/skills/concorde/rules/troubleshooting.md +45 -0
  21. package/build-infos.json +1 -1
  22. package/concorde-core.bundle.js +177 -177
  23. package/concorde-core.es.js +4993 -4833
  24. package/custom-elements-manifest.public.config.mjs +8 -0
  25. package/{.tmp-cem/custom-elements.json → custom-elements.json} +11758 -8904
  26. package/dist/concorde-core.bundle.js +177 -177
  27. package/dist/concorde-core.es.js +4993 -4833
  28. package/dist/docs-mock-api-sw.js +58 -223
  29. package/dist/docs-mock-api-sw.js.map +4 -4
  30. package/dist/img/concorde/plane_01.jpg +0 -0
  31. package/dist/img/concorde/plane_02.jpg +0 -0
  32. package/dist/img/concorde/plane_03.jpg +0 -0
  33. package/dist/img/concorde/plane_04.jpg +0 -0
  34. package/dist/img/concorde/plane_05.jpg +0 -0
  35. package/dist/img/concorde/plane_06.jpg +0 -0
  36. package/dist/img/concorde/plane_07.jpg +0 -0
  37. package/dist/img/concorde/plane_08.jpg +0 -0
  38. package/dist/img/concorde/plane_09.jpg +0 -0
  39. package/dist/img/concorde/plane_10.jpg +0 -0
  40. package/dist/img/concorde/plane_11.jpg +0 -0
  41. package/dist/img/concorde/plane_12.jpg +0 -0
  42. package/dist/img/concorde/plane_13.jpg +0 -0
  43. package/dist/img/og-concorde.jpg +0 -0
  44. package/dist/robots.txt +11 -10
  45. package/docs/assets/index-D_alEsng.js +12122 -0
  46. package/docs/crawl/core/components/functional/date/date.html +190 -0
  47. package/docs/crawl/core/components/functional/fetch/fetch.html +109 -0
  48. package/docs/crawl/core/components/functional/if/if.html +27 -0
  49. package/docs/crawl/core/components/functional/jsonata/jsonata.html +79 -0
  50. package/docs/crawl/core/components/functional/list/list.html +70 -0
  51. package/docs/crawl/core/components/functional/mix/mix.html +45 -0
  52. package/docs/crawl/core/components/functional/queue/queue.html +96 -0
  53. package/docs/crawl/core/components/functional/router/router.html +106 -0
  54. package/docs/crawl/core/components/functional/sdui/sdui-extension-points.html +126 -0
  55. package/docs/crawl/core/components/functional/sdui/sdui.html +368 -0
  56. package/docs/crawl/core/components/functional/states/states.html +66 -0
  57. package/docs/crawl/core/components/functional/submit/submit.html +160 -0
  58. package/docs/crawl/core/components/functional/subscriber/subscriber.html +67 -0
  59. package/docs/crawl/core/components/functional/value/value.html +51 -0
  60. package/docs/crawl/core/components/ui/alert/alert.html +211 -0
  61. package/docs/crawl/core/components/ui/alert-messages/alert-messages.html +131 -0
  62. package/docs/crawl/core/components/ui/badge/badge.html +197 -0
  63. package/docs/crawl/core/components/ui/button/button.html +150 -0
  64. package/docs/crawl/core/components/ui/captcha/captcha.html +112 -0
  65. package/docs/crawl/core/components/ui/card/card.html +253 -0
  66. package/docs/crawl/core/components/ui/divider/divider.html +144 -0
  67. package/docs/crawl/core/components/ui/form/checkbox/checkbox.html +73 -0
  68. package/docs/crawl/core/components/ui/form/fieldset/fieldset.html +266 -0
  69. package/docs/crawl/core/components/ui/form/form-actions/form-actions.html +122 -0
  70. package/docs/crawl/core/components/ui/form/form-layout/form-layout.html +121 -0
  71. package/docs/crawl/core/components/ui/form/input/input.html +109 -0
  72. package/docs/crawl/core/components/ui/form/input-autocomplete/input-autocomplete.html +38 -0
  73. package/docs/crawl/core/components/ui/form/radio/radio.html +56 -0
  74. package/docs/crawl/core/components/ui/form/select/select.html +73 -0
  75. package/docs/crawl/core/components/ui/form/switch/switch.html +56 -0
  76. package/docs/crawl/core/components/ui/form/textarea/textarea.html +59 -0
  77. package/docs/crawl/core/components/ui/group/group.html +104 -0
  78. package/docs/crawl/core/components/ui/icon/icon.html +222 -0
  79. package/docs/crawl/core/components/ui/image/image.html +298 -0
  80. package/docs/crawl/core/components/ui/link/link.html +100 -0
  81. package/docs/crawl/core/components/ui/loader/loader.html +124 -0
  82. package/docs/crawl/core/components/ui/menu/menu.html +394 -0
  83. package/docs/crawl/core/components/ui/modal/modal.html +342 -0
  84. package/docs/crawl/core/components/ui/pop/pop.html +296 -0
  85. package/docs/crawl/core/components/ui/progress/progress.html +131 -0
  86. package/docs/crawl/core/components/ui/table/table.html +545 -0
  87. package/docs/crawl/core/components/ui/theme/theme.html +131 -0
  88. package/docs/crawl/core/components/ui/toast/toast.html +233 -0
  89. package/docs/crawl/core/components/ui/tooltip/tooltip.html +140 -0
  90. package/docs/crawl/docs/_core-concept/dataFlow.html +177 -0
  91. package/docs/crawl/docs/_core-concept/overview.html +66 -0
  92. package/docs/crawl/docs/_core-concept/subscriber.html +75 -0
  93. package/docs/crawl/docs/_decorators/ancestor-attribute.html +117 -0
  94. package/docs/crawl/docs/_decorators/auto-subscribe.html +202 -0
  95. package/docs/crawl/docs/_decorators/bind.html +141 -0
  96. package/docs/crawl/docs/_decorators/get.html +149 -0
  97. package/docs/crawl/docs/_decorators/handle.html +165 -0
  98. package/docs/crawl/docs/_decorators/on-assign.html +355 -0
  99. package/docs/crawl/docs/_decorators/patch.html +78 -0
  100. package/docs/crawl/docs/_decorators/post.html +139 -0
  101. package/docs/crawl/docs/_decorators/publish.html +61 -0
  102. package/docs/crawl/docs/_decorators/put.html +78 -0
  103. package/docs/crawl/docs/_decorators/subscribe.html +109 -0
  104. package/docs/crawl/docs/_decorators/wait-for-ancestors.html +137 -0
  105. package/docs/crawl/docs/_directives/sub.html +93 -0
  106. package/docs/crawl/docs/_getting-started/ai-agents.html +173 -0
  107. package/docs/crawl/docs/_getting-started/concorde-manual-install.html +100 -0
  108. package/docs/crawl/docs/_getting-started/concorde-outside.html +58 -0
  109. package/docs/crawl/docs/_getting-started/create-a-component.html +111 -0
  110. package/docs/crawl/docs/_getting-started/my-first-component.html +189 -0
  111. package/docs/crawl/docs/_getting-started/my-first-subscriber.html +110 -0
  112. package/docs/crawl/docs/_getting-started/pubsub.html +62 -0
  113. package/docs/crawl/docs/_getting-started/start.html +76 -0
  114. package/docs/crawl/docs/_getting-started/theming.html +333 -0
  115. package/docs/crawl/docs/_misc/api-configuration.html +149 -0
  116. package/docs/crawl/docs/_misc/dataProviderKey.html +135 -0
  117. package/docs/crawl/docs/_misc/docs-mock-api.html +158 -0
  118. package/docs/crawl/docs/_misc/dynamic-path.html +180 -0
  119. package/docs/crawl/docs/_misc/endpoint.html +50 -0
  120. package/docs/crawl/docs/_misc/formelement-subscriber-removal.html +138 -0
  121. package/docs/crawl/docs/_misc/html-integration.html +48 -0
  122. package/docs/crawl/hubs/decorators.html +547 -0
  123. package/docs/crawl/hubs/form-components.html +381 -0
  124. package/docs/crawl/hubs/remote-data.html +452 -0
  125. package/docs/crawl/index.html +103 -0
  126. package/docs/index.html +1 -1
  127. package/docs/llms-full.txt +7174 -0
  128. package/docs/llms.txt +98 -0
  129. package/docs/sitemap.xml +243 -0
  130. package/docs/src/core/components/functional/date/date.md +290 -0
  131. package/docs/src/core/components/functional/fetch/fetch.md +125 -0
  132. package/docs/src/core/components/functional/if/if.md +9 -0
  133. package/docs/src/core/components/functional/jsonata/jsonata.md +56 -0
  134. package/docs/src/core/components/functional/list/list.md +65 -0
  135. package/docs/src/core/components/functional/mix/mix.md +41 -0
  136. package/docs/src/core/components/functional/queue/queue.md +72 -0
  137. package/docs/src/core/components/functional/router/router.md +94 -0
  138. package/docs/src/core/components/functional/sdui/component-catalog.gaps.json +511 -0
  139. package/docs/src/core/components/functional/sdui/component-catalog.json +3103 -0
  140. package/docs/src/core/components/functional/sdui/default-library.json +108 -0
  141. package/docs/src/core/components/functional/sdui/example.json +99 -0
  142. package/docs/src/core/components/functional/sdui/sdui-extension-points.md +94 -0
  143. package/docs/src/core/components/functional/sdui/sdui.md +478 -0
  144. package/docs/src/core/components/functional/states/states.md +87 -0
  145. package/docs/src/core/components/functional/submit/submit.md +114 -0
  146. package/docs/src/core/components/functional/subscriber/subscriber.md +91 -0
  147. package/docs/src/core/components/functional/value/value.md +35 -0
  148. package/docs/src/core/components/ui/alert/alert.md +196 -0
  149. package/docs/src/core/components/ui/alert-messages/alert-messages.md +85 -0
  150. package/docs/src/core/components/ui/badge/badge.md +188 -0
  151. package/docs/src/core/components/ui/button/button.md +183 -0
  152. package/docs/src/core/components/ui/captcha/captcha.md +71 -0
  153. package/docs/src/core/components/ui/card/card.md +215 -0
  154. package/docs/src/core/components/ui/divider/divider.md +129 -0
  155. package/docs/src/core/components/ui/form/checkbox/checkbox.md +77 -0
  156. package/docs/src/core/components/ui/form/fieldset/fieldset.md +205 -0
  157. package/docs/src/core/components/ui/form/form-actions/form-actions.md +100 -0
  158. package/docs/src/core/components/ui/form/form-layout/form-layout.md +119 -0
  159. package/docs/src/core/components/ui/form/input/input.md +142 -0
  160. package/docs/src/core/components/ui/form/radio/radio.md +57 -0
  161. package/docs/src/core/components/ui/form/select/select.md +71 -0
  162. package/docs/src/core/components/ui/form/switch/switch.md +57 -0
  163. package/docs/src/core/components/ui/form/textarea/textarea.md +65 -0
  164. package/docs/src/core/components/ui/group/group.md +75 -0
  165. package/docs/src/core/components/ui/icon/icon.md +214 -0
  166. package/docs/src/core/components/ui/icon/icons.json +1 -0
  167. package/docs/src/core/components/ui/image/image.md +233 -0
  168. package/docs/src/core/components/ui/link/link.md +81 -0
  169. package/docs/src/core/components/ui/loader/loader.md +112 -0
  170. package/docs/src/core/components/ui/menu/menu.md +370 -0
  171. package/docs/src/core/components/ui/modal/modal.md +235 -0
  172. package/docs/src/core/components/ui/pop/pop.md +294 -0
  173. package/docs/src/core/components/ui/progress/progress.md +109 -0
  174. package/docs/src/core/components/ui/table/table.md +431 -0
  175. package/docs/src/core/components/ui/theme/theme.md +122 -0
  176. package/docs/src/core/components/ui/toast/toast.md +216 -0
  177. package/docs/src/core/components/ui/tooltip/tooltip.md +124 -0
  178. package/{src → docs/src}/docs/_core-concept/subscriber.md +0 -0
  179. package/{src → docs/src}/docs/_getting-started/my-first-subscriber.md +0 -0
  180. package/{src → docs/src}/docs/_getting-started/pubsub.md +0 -0
  181. package/docs/src/docs/_getting-started/theming.md +253 -0
  182. package/docs/src/docs/search/docs-search.json +12242 -0
  183. package/docs/src/tag-list.json +1 -0
  184. package/docs/src/tsconfig-model.json +23 -0
  185. package/docs/src/tsconfig.declarations.json +22 -0
  186. package/docs/src/tsconfig.emit.json +23 -0
  187. package/docs/src/tsconfig.json +1332 -0
  188. package/gitlab/job_github_mirror.sh +39 -0
  189. package/index.html +157 -5
  190. package/package.json +22 -4
  191. package/public/docs-mock-api-sw.js +58 -223
  192. package/public/docs-mock-api-sw.js.map +4 -4
  193. package/public/img/concorde/plane_01.jpg +0 -0
  194. package/public/img/concorde/plane_02.jpg +0 -0
  195. package/public/img/concorde/plane_03.jpg +0 -0
  196. package/public/img/concorde/plane_04.jpg +0 -0
  197. package/public/img/concorde/plane_05.jpg +0 -0
  198. package/public/img/concorde/plane_06.jpg +0 -0
  199. package/public/img/concorde/plane_07.jpg +0 -0
  200. package/public/img/concorde/plane_08.jpg +0 -0
  201. package/public/img/concorde/plane_09.jpg +0 -0
  202. package/public/img/concorde/plane_10.jpg +0 -0
  203. package/public/img/concorde/plane_11.jpg +0 -0
  204. package/public/img/concorde/plane_12.jpg +0 -0
  205. package/public/img/concorde/plane_13.jpg +0 -0
  206. package/public/img/og-concorde.jpg +0 -0
  207. package/public/robots.txt +11 -10
  208. package/scripts/ai-init.mjs +104 -379
  209. package/scripts/ai-init.test.mjs +81 -239
  210. package/scripts/docs-markdown-vite-plugin.ts +43 -0
  211. package/scripts/docs-public-url.mjs +56 -0
  212. package/scripts/docs.htaccess +82 -0
  213. package/scripts/generate-cem.mjs +244 -0
  214. package/scripts/generate-cem.test.mjs +122 -0
  215. package/scripts/generate-crawl-docs.mjs +233 -118
  216. package/scripts/generate-crawl-docs.test.mjs +124 -0
  217. package/scripts/generate-sdui-catalog.mjs +11 -10
  218. package/scripts/github-export.mjs +150 -0
  219. package/scripts/post-build-docs.js +37 -50
  220. package/scripts/post-build.mjs +0 -0
  221. package/scripts/pre-publish.mjs +2 -1
  222. package/scripts/site-pages.mjs +212 -0
  223. package/scripts/site-pages.test.mjs +116 -0
  224. package/site-pages/about.md +22 -0
  225. package/site-pages/privacy.md +32 -0
  226. package/src/core/components/functional/date/date.md +91 -231
  227. package/src/core/components/functional/example/example.ts +3 -1
  228. package/src/core/components/functional/fetch/fetch.md +66 -83
  229. package/src/core/components/functional/if/if.md +28 -3
  230. package/src/core/components/functional/if/if.ts +0 -0
  231. package/src/core/components/functional/jsonata/jsonata.md +42 -37
  232. package/src/core/components/functional/list/list.demo.ts +0 -0
  233. package/src/core/components/functional/list/list.md +103 -43
  234. package/src/core/components/functional/list/list.ts +17 -4
  235. package/src/core/components/functional/mix/mix.md +31 -26
  236. package/src/core/components/functional/queue/queue.demo.ts +10 -7
  237. package/src/core/components/functional/queue/queue.md +40 -61
  238. package/src/core/components/functional/router/router.demo.ts +16 -16
  239. package/src/core/components/functional/router/router.md +64 -65
  240. package/src/core/components/functional/router/router.ts +0 -0
  241. package/src/core/components/functional/sdui/SDUIDescriptorTransformer.ts +0 -0
  242. package/src/core/components/functional/sdui/component-catalog.gaps.json +1 -1
  243. package/src/core/components/functional/sdui/component-catalog.json +2 -2
  244. package/src/core/components/functional/sdui/example.json +19 -86
  245. package/src/core/components/functional/sdui/sdui-extension-points.md +1 -1
  246. package/src/core/components/functional/sdui/sdui-immutable.spec.ts +74 -0
  247. package/src/core/components/functional/sdui/sdui.md +187 -358
  248. package/src/core/components/functional/sdui/sdui.ts +33 -8
  249. package/src/core/components/functional/sdui/types.ts +0 -0
  250. package/src/core/components/functional/states/states.demo.ts +21 -22
  251. package/src/core/components/functional/states/states.md +86 -61
  252. package/src/core/components/functional/states/states.ts +1 -1
  253. package/src/core/components/functional/submit/submit.md +64 -72
  254. package/src/core/components/functional/submit/submit.spec.ts +60 -0
  255. package/src/core/components/functional/submit/submit.ts +6 -3
  256. package/src/core/components/functional/subscriber/subscriber.ts +0 -0
  257. package/src/core/components/functional/translation/translation.md +38 -0
  258. package/src/core/components/functional/value/value.md +34 -22
  259. package/src/core/components/functional/value/value.ts +0 -0
  260. package/src/core/components/ui/_css/size.ts +0 -0
  261. package/src/core/components/ui/alert/alert.md +48 -58
  262. package/src/core/components/ui/badge/badge.md +27 -34
  263. package/src/core/components/ui/button/button.md +139 -106
  264. package/src/core/components/ui/captcha/altchaStyles.ts +0 -0
  265. package/src/core/components/ui/captcha/captcha.md +17 -32
  266. package/src/core/components/ui/card/card.md +6 -6
  267. package/src/core/components/ui/divider/divider.md +8 -11
  268. package/src/core/components/ui/form/checkbox/checkbox.md +90 -42
  269. package/src/core/components/ui/form/fieldset/fieldset.md +31 -75
  270. package/src/core/components/ui/form/form-actions/form-actions.md +14 -16
  271. package/src/core/components/ui/form/form-layout/form-layout.md +19 -29
  272. package/src/core/components/ui/form/input/input.md +108 -90
  273. package/src/core/components/ui/form/input/input.ts +8 -2
  274. package/src/core/components/ui/form/radio/radio.md +65 -30
  275. package/src/core/components/ui/form/select/select.md +60 -45
  276. package/src/core/components/ui/form/switch/switch.md +57 -34
  277. package/src/core/components/ui/form/textarea/textarea.md +55 -38
  278. package/src/core/components/ui/group/group.md +35 -33
  279. package/src/core/components/ui/icon/icon.md +4 -4
  280. package/src/core/components/ui/image/image.md +41 -107
  281. package/src/core/components/ui/link/link.md +6 -6
  282. package/src/core/components/ui/loader/loader.md +30 -55
  283. package/src/core/components/ui/menu/menu.md +27 -27
  284. package/src/core/components/ui/modal/modal.md +72 -96
  285. package/src/core/components/ui/pop/pop.md +80 -158
  286. package/src/core/components/ui/progress/progress.md +2 -2
  287. package/src/core/components/ui/table/table.md +91 -255
  288. package/src/core/components/ui/theme/theme.md +11 -36
  289. package/src/core/components/ui/toast/toast.md +48 -117
  290. package/src/core/components/ui/tooltip/tooltip.md +27 -62
  291. package/src/core/decorators/subscriber/bind.ts +9 -14
  292. package/src/core/decorators/subscriber/subscribe.ts +15 -9
  293. package/src/core/decorators/subscriber/subscribe.type-test.ts +14 -5
  294. package/src/core/mixins/Subscriber.ts +0 -0
  295. package/src/core/utils/DataBindObserver.ts +0 -0
  296. package/src/core/utils/LocationHandler.spec.ts +80 -0
  297. package/src/core/utils/LocationHandler.ts +5 -9
  298. package/src/core/utils/Objects.ts +0 -0
  299. package/src/core/utils/PublisherProxy.ts +166 -125
  300. package/src/core/utils/deepReadonly.spec.ts +66 -0
  301. package/src/core/utils/deepReadonly.ts +71 -0
  302. package/src/core/utils/immutableValue.spec.ts +54 -0
  303. package/src/core/utils/immutableValue.ts +102 -0
  304. package/src/core/utils/nestedDotForm.spec.ts +88 -0
  305. package/src/core/utils/publisherImmutable.spec.ts +76 -0
  306. package/src/core/utils/route.ts +0 -0
  307. package/src/core/utils/strictGet.spec.ts +61 -0
  308. package/src/core/utils/strictGet.ts +102 -0
  309. package/src/css.d.ts +19 -0
  310. package/src/docs/components/docs-demo-sources.ts +55 -140
  311. package/src/docs/components/docs-lit-demo.ts +1 -3
  312. package/src/docs/components/docs-source-link.ts +0 -82
  313. package/src/docs/decorators/ancestor-attribute.md +59 -0
  314. package/src/docs/decorators/auto-subscribe.md +40 -0
  315. package/src/docs/decorators/bind.md +76 -0
  316. package/src/docs/decorators/get.md +160 -0
  317. package/src/docs/decorators/handle.md +119 -0
  318. package/src/docs/decorators/on-assign.md +63 -0
  319. package/src/docs/decorators/patch.md +44 -0
  320. package/src/docs/decorators/post.md +134 -0
  321. package/src/docs/decorators/publish.md +56 -0
  322. package/src/docs/decorators/put.md +51 -0
  323. package/src/docs/decorators/subscribe.md +87 -0
  324. package/src/docs/decorators/wait-for-ancestors.md +76 -0
  325. package/src/docs/directives/sub.md +75 -0
  326. package/src/docs/directives/t.md +73 -0
  327. package/src/docs/docs-location.spec.ts +56 -0
  328. package/src/docs/docs-location.ts +133 -32
  329. package/src/docs/docs.ts +1 -2
  330. package/src/docs/example/decorators-demo-bind-demos.ts +83 -135
  331. package/src/docs/example/decorators-demo-geo.ts +30 -19
  332. package/src/docs/example/decorators-demo-post.ts +88 -186
  333. package/src/docs/example/decorators-demo-subscribe-publish-get-demos.ts +165 -268
  334. package/src/docs/example/decorators-demo.ts +85 -98
  335. package/src/docs/example/docs-api-config-demos.ts +19 -20
  336. package/src/docs/example/docs-flight-demos.ts +147 -0
  337. package/src/docs/example/docs-jsonata-demos.ts +52 -52
  338. package/src/docs/example/docs-list-demos.ts +43 -123
  339. package/src/docs/example/docs-provider-keys.ts +21 -28
  340. package/src/docs/example/docs-queue-demos.ts +37 -77
  341. package/src/docs/example/docs-router-demos.ts +20 -25
  342. package/src/docs/example/docs-submit-demos.ts +48 -48
  343. package/src/docs/example/docs-toggle-demos.ts +4 -3
  344. package/src/docs/example/users.ts +0 -0
  345. package/src/docs/getting-started/ai-agents.md +50 -0
  346. package/src/docs/getting-started/create-a-component.md +136 -0
  347. package/src/docs/getting-started/dataFlow.md +87 -0
  348. package/src/docs/getting-started/installation.md +36 -0
  349. package/src/docs/getting-started/my-first-component.md +227 -0
  350. package/src/docs/getting-started/start.md +35 -0
  351. package/src/docs/header/header.ts +11 -6
  352. package/src/docs/home/catalog.ts +1 -1
  353. package/src/docs/home/home.ts +20 -11
  354. package/src/docs/layout.ts +12 -13
  355. package/src/docs/misc/api-configuration.md +79 -0
  356. package/src/docs/misc/dataProviderKey.md +168 -0
  357. package/src/docs/misc/docs-mock-api.md +62 -0
  358. package/src/docs/misc/dynamic-path.md +71 -0
  359. package/src/docs/misc/endpoint.md +45 -0
  360. package/src/docs/misc/html-integration.md +14 -0
  361. package/src/docs/misc/publisher-get-immutability-docs-crawl.json +902 -0
  362. package/src/docs/misc/publisher-get-immutability-docs-recheck.json +13 -0
  363. package/src/docs/misc/publisher-get-immutability-study.md +229 -0
  364. package/src/docs/mock-api/api-config-mock.ts +5 -0
  365. package/src/docs/mock-api/fixtures.ts +0 -278
  366. package/src/docs/mock-api/flights.ts +89 -0
  367. package/src/docs/mock-api/router.ts +3 -4
  368. package/src/docs/mock-api/urls.ts +1 -2
  369. package/src/docs/navigation/navigation.ts +84 -101
  370. package/src/docs/navigation/toc.ts +7 -4
  371. package/src/docs/search/docs-search.json +3188 -5153
  372. package/src/docs/search/markdown-renderer.ts +31 -8
  373. package/src/docs/search/page.ts +9 -6
  374. package/src/docs/search/search.ts +154 -122
  375. package/src/docs/tailwind/css/docs/content.css +4 -5
  376. package/src/tsconfig.declarations.json +22 -0
  377. package/src/tsconfig.emit.json +23 -0
  378. package/src/tsconfig.json +53 -5
  379. package/src/tsconfig.tsbuildinfo +1 -1
  380. package/vite.config.mts +11 -2
  381. package/.agents/skills/concorde-component-docs/SKILL.md +0 -194
  382. package/.taste-skill/after/desktop-fold.jpg +0 -0
  383. package/.taste-skill/after/desktop-page-01.jpg +0 -0
  384. package/.taste-skill/after/desktop-page-02.jpg +0 -0
  385. package/.taste-skill/after/desktop-page-03.jpg +0 -0
  386. package/.taste-skill/after/mobile-fold.jpg +0 -0
  387. package/.taste-skill/after/mobile-page-01.jpg +0 -0
  388. package/.taste-skill/after/report.json +0 -4103
  389. package/.taste-skill/after/tablet-fold.jpg +0 -0
  390. package/.taste-skill/after/tablet-page-01.jpg +0 -0
  391. package/.taste-skill/after/tablet-page-02.jpg +0 -0
  392. package/.taste-skill/before/desktop-fold.jpg +0 -0
  393. package/.taste-skill/before/desktop-page-01.jpg +0 -0
  394. package/.taste-skill/before/desktop-page-02.jpg +0 -0
  395. package/.taste-skill/before/mobile-fold.jpg +0 -0
  396. package/.taste-skill/before/mobile-page-01.jpg +0 -0
  397. package/.taste-skill/before/report.json +0 -2556
  398. package/.taste-skill/before/tablet-fold.jpg +0 -0
  399. package/.taste-skill/before/tablet-page-01.jpg +0 -0
  400. package/.taste-skill/direction.json +0 -510
  401. package/.taste-skill/notes.md +0 -84
  402. package/.taste-skill/prod/desktop-fold.jpg +0 -0
  403. package/.taste-skill/prod/desktop-page-01.jpg +0 -0
  404. package/.taste-skill/prod/desktop-page-02.jpg +0 -0
  405. package/.taste-skill/prod/desktop-page-03.jpg +0 -0
  406. package/.taste-skill/prod/mobile-fold.jpg +0 -0
  407. package/.taste-skill/prod/mobile-page-01.jpg +0 -0
  408. package/.taste-skill/prod/mobile-page-02.jpg +0 -0
  409. package/.taste-skill/prod/report.json +0 -1973
  410. package/.taste-skill/prod/tablet-fold.jpg +0 -0
  411. package/.taste-skill/prod/tablet-page-01.jpg +0 -0
  412. package/.taste-skill/prod/tablet-page-02.jpg +0 -0
  413. package/AUDIT.md +0 -228
  414. package/PLAN-AMELIORATION.md +0 -220
  415. package/ai/AGENTS.md +0 -56
  416. package/ai/cursor/rules/concorde-menu.mdc +0 -15
  417. package/ai/cursor/rules/concorde-scope.mdc +0 -14
  418. package/ai/cursor/rules/concorde-theme.mdc +0 -13
  419. package/ai/cursor/rules/concorde.mdc +0 -66
  420. package/ai/jetbrains/rules/concorde.md +0 -53
  421. package/ai/skills/concorde-get-set-dp/SKILL.md +0 -194
  422. package/ai/skills/concorde-imports/SKILL.md +0 -78
  423. package/ai/skills/concorde-menu/SKILL.md +0 -74
  424. package/ai/skills/concorde-scope/SKILL.md +0 -70
  425. package/ai/skills/concorde-theme/SKILL.md +0 -57
  426. package/docs/assets/index-Bb-_LRyY.js +0 -12280
  427. package/src/docs/example/docs-input-autocomplete-demos.ts +0 -110
  428. package/src/docs/example/docs-joke-demos.ts +0 -297
  429. /package/{src → docs/src}/core/components/ui/form/input-autocomplete/input-autocomplete.md +0 -0
  430. /package/{src → docs/src}/docs/_core-concept/dataFlow.md +0 -0
  431. /package/{src → docs/src}/docs/_core-concept/overview.md +0 -0
  432. /package/{src → docs/src}/docs/_decorators/ancestor-attribute.md +0 -0
  433. /package/{src → docs/src}/docs/_decorators/auto-subscribe.md +0 -0
  434. /package/{src → docs/src}/docs/_decorators/bind.md +0 -0
  435. /package/{src → docs/src}/docs/_decorators/get.md +0 -0
  436. /package/{src → docs/src}/docs/_decorators/handle.md +0 -0
  437. /package/{src → docs/src}/docs/_decorators/on-assign.md +0 -0
  438. /package/{src → docs/src}/docs/_decorators/patch.md +0 -0
  439. /package/{src → docs/src}/docs/_decorators/post.md +0 -0
  440. /package/{src → docs/src}/docs/_decorators/publish.md +0 -0
  441. /package/{src → docs/src}/docs/_decorators/put.md +0 -0
  442. /package/{src → docs/src}/docs/_decorators/subscribe.md +0 -0
  443. /package/{src → docs/src}/docs/_decorators/wait-for-ancestors.md +0 -0
  444. /package/{src → docs/src}/docs/_directives/sub.md +0 -0
  445. /package/{src → docs/src}/docs/_getting-started/ai-agents.md +0 -0
  446. /package/{src → docs/src}/docs/_getting-started/concorde-manual-install.md +0 -0
  447. /package/{src → docs/src}/docs/_getting-started/concorde-outside.md +0 -0
  448. /package/{src → docs/src}/docs/_getting-started/create-a-component.md +0 -0
  449. /package/{src → docs/src}/docs/_getting-started/my-first-component.md +0 -0
  450. /package/{src → docs/src}/docs/_getting-started/start.md +0 -0
  451. /package/{src → docs/src}/docs/_misc/api-configuration.md +0 -0
  452. /package/{src → docs/src}/docs/_misc/dataProviderKey.md +0 -0
  453. /package/{src → docs/src}/docs/_misc/docs-mock-api.md +0 -0
  454. /package/{src → docs/src}/docs/_misc/dynamic-path.md +0 -0
  455. /package/{src → docs/src}/docs/_misc/endpoint.md +0 -0
  456. /package/{src → docs/src}/docs/_misc/formelement-subscriber-removal.md +0 -0
  457. /package/{src → docs/src}/docs/_misc/html-integration.md +0 -0
  458. /package/src/docs/{_getting-started → getting-started}/components.md +0 -0
  459. /package/src/docs/{_getting-started → getting-started}/theming.md +0 -0
package/docs/llms.txt ADDED
@@ -0,0 +1,98 @@
1
+ # Concorde
2
+
3
+ > Web components framework (Lit, DataProvider, decorators).
4
+
5
+ Documentation for AI indexers lives under `/crawl/` as **HTML** (`.html`), not Markdown.
6
+ Example: https://concorde.supersoniks.org/crawl/docs/_decorators/post.html
7
+ Do not fetch `/crawl/**/*.md` (does not exist) nor `/src/docs/**/*.md` (SPA source only).
8
+
9
+ Full text: https://concorde.supersoniks.org/llms-full.txt
10
+
11
+ ## Topic hubs (start here for RAG)
12
+
13
+ - [Concorde decorators reference](https://concorde.supersoniks.org/crawl/hubs/decorators.html) (hubs/decorators, 12 pages)
14
+ - [Fetching remote data in Concorde](https://concorde.supersoniks.org/crawl/hubs/remote-data.html) (hubs/remote-data, 11 pages)
15
+ - [Concorde form components](https://concorde.supersoniks.org/crawl/hubs/form-components.html) (hubs/form-components, 10 pages)
16
+
17
+ ## Docs
18
+
19
+ - [Date](https://concorde.supersoniks.org/crawl/core/components/functional/date/date.html) (core/components/functional/date/date): Nothing is displayed.
20
+ - [Fetch](https://concorde.supersoniks.org/crawl/core/components/functional/fetch/fetch.html) (core/components/functional/fetch/fetch): > New apps: prefer @get for a typed GET on a component, or List / Queue with fetch for collections. Use Local API demos (serviceURL="/docs-mock-api") to try examples offline.
21
+ - [if](https://concorde.supersoniks.org/crawl/core/components/functional/if/if.html) (core/components/functional/if/if): The sonic-if component shows its slot when .condition is true. In Lit, bind .condition from store-driven state (@subscribe on a formDataProvider field) — live preview and TypeScript source are the sam
22
+ - [Jsonata](https://concorde.supersoniks.org/crawl/core/components/functional/jsonata/jsonata.html) (core/components/functional/jsonata/jsonata): sonic-jsonata : 1 input → expression → 1 output (readonly).
23
+ - [List](https://concorde.supersoniks.org/crawl/core/components/functional/list/list.html) (core/components/functional/list/list): > Try offline: serviceURL="/docs-mock-api" and dataProvider="api/users" with key="data" — see Local API demos. Recommended patterns: Data flow.
24
+ - [Mix](https://concorde.supersoniks.org/crawl/core/components/functional/mix/mix.html) (core/components/functional/mix/mix): Mix allows you to mix several subsets of dataProvider in a new key/value structure which is itself associated with a new dataProvider. The data update is then bidirectional.
25
+ - [Queue](https://concorde.supersoniks.org/crawl/core/components/functional/queue/queue.html) (core/components/functional/queue/queue): > Try offline: serviceURL="/docs-mock-api" — see Local API demos. Row rendering: Data flow (.items property binding).
26
+ - [Router](https://concorde.supersoniks.org/crawl/core/components/functional/router/router.html) (core/components/functional/router/router): sonic-router watches document.location (pathname + hash) and renders the matching view.
27
+ - [SDUI — points d’extension publics](https://concorde.supersoniks.org/crawl/core/components/functional/sdui/sdui-extension-points.html) (core/components/functional/sdui/sdui-extension-points): Aide-mémoire pour les dépôts externes (adaptateurs, shells).
28
+ - [SDUI](https://concorde.supersoniks.org/crawl/core/components/functional/sdui/sdui.html) (core/components/functional/sdui/sdui): SDUI stands for Server Driven User Interfaces.
29
+ - [States](https://concorde.supersoniks.org/crawl/core/components/functional/states/states.html) (core/components/functional/states/states): * It loops over its child templates and tests if the regexp contained in the *data-value* attribute matches the value of the property
30
+ - [Submit](https://concorde.supersoniks.org/crawl/core/components/functional/submit/submit.html) (core/components/functional/submit/submit): > Live demos: <docs-lit-demo> + src/docs/example/docs-submit-demos.ts. Use Local API demos (serviceURL="/docs-mock-api").
31
+ - [Subscriber](https://concorde.supersoniks.org/crawl/core/components/functional/subscriber/subscriber.html) (core/components/functional/subscriber/subscriber): La mixin Subscriber permet lier un composant à un publisher.
32
+ - [Value](https://concorde.supersoniks.org/crawl/core/components/functional/value/value.html) (core/components/functional/value/value): Simply shows a value from a data provider.
33
+ - [Alert messages](https://concorde.supersoniks.org/crawl/core/components/ui/alert-messages/alert-messages.html) (core/components/ui/alert-messages/alert-messages): sonic-alert-messages renders a vertical stack of sonic-alert items from a messages array on a linked data provider (typical pattern: submitResultDataProvider after a form submit). Only entries with ty
34
+ - [Alert](https://concorde.supersoniks.org/crawl/core/components/ui/alert/alert.html) (core/components/ui/alert/alert): Alerts surface important feedback inline—errors, confirmations, or contextual help. Use label / text for simple copy, or the default slot for rich content (links, buttons). Set announce when the messa
35
+ - [Badge](https://concorde.supersoniks.org/crawl/core/components/ui/badge/badge.html) (core/components/ui/badge/badge): Badges are compact, non-interactive labels for status, counts, or categories. They mirror sonic-button styling (type, variant, size) without focus rings or click handling—use a button when the control
36
+ - [Button](https://concorde.supersoniks.org/crawl/core/components/ui/button/button.html) (core/components/ui/button/button): The length of the button depends on the size of its content
37
+ - [Captcha](https://concorde.supersoniks.org/crawl/core/components/ui/captcha/captcha.html) (core/components/ui/captcha/captcha): sonic-captcha embeds an ALTCHA widget and wires captchaToken / needsCaptchaValidation on the ancestor formDataProvider (or headersDataProvider). sonic-submit waits for a token before sending when vali
38
+ - [Card](https://concorde.supersoniks.org/crawl/core/components/ui/card/card.html) (core/components/ui/card/card): Cards group related content on a padded surface with radius, theme type colors, and elevation. Default shadow is lg. Compose sonic-card-header / sonic-card-main / sonic-card-footer, or place any marku
39
+ - [Divider](https://concorde.supersoniks.org/crawl/core/components/ui/divider/divider.html) (core/components/ui/divider/divider): sonic-divider draws a horizontal or vertical rule with optional centered label copy. Use it to separate sections in forms, cards, and sonic-menu. Set label for simple HTML captions or use the default
40
+ - [Checkbox](https://concorde.supersoniks.org/crawl/core/components/ui/form/checkbox/checkbox.html) (core/components/ui/form/checkbox/checkbox): >Already checked checkbox
41
+ - [Fieldset](https://concorde.supersoniks.org/crawl/core/components/ui/form/fieldset/fieldset.html) (core/components/ui/form/fieldset/fieldset): sonic-fieldset groups related form controls with a bordered container and an accessible <fieldset> semantics layer. Put fields in the default slot; add a title with sonic-legend or the shorthand label
42
+ - [Form actions](https://concorde.supersoniks.org/crawl/core/components/ui/form/form-actions/form-actions.html) (core/components/ui/form/form-actions/form-actions): sonic-form-actions lays out submit / cancel and other form footer controls in a wrapping flex row with a small fixed gap. Place it inside sonic-form-layout (full-width row) or any block that should en
43
+ - [Form layout](https://concorde.supersoniks.org/crawl/core/components/ui/form/form-layout/form-layout.html) (core/components/ui/form/form-layout/form-layout): sonic-form-layout arranges slotted form controls in a responsive CSS grid with consistent vertical spacing. Pair sonic-input · sonic-select and sonic-input-autocomplete fields side by side when the ho
44
+ - [Input-autocomplete](https://concorde.supersoniks.org/crawl/core/components/ui/form/input-autocomplete/input-autocomplete.html) (core/components/ui/form/input-autocomplete/input-autocomplete): Champ formulaire + suggestions via queue. Valeur via formDataProvider + name ; la recherche filtre la queue (store interne).
45
+ - [Input](https://concorde.supersoniks.org/crawl/core/components/ui/form/input/input.html) (core/components/ui/form/input/input): Native attributes list
46
+ - [Radio](https://concorde.supersoniks.org/crawl/core/components/ui/form/radio/radio.html) (core/components/ui/form/radio/radio): >Already checked radio
47
+ - [Select](https://concorde.supersoniks.org/crawl/core/components/ui/form/select/select.html) (core/components/ui/form/select/select): {"value":"dark", "wording":"dark (set by \"attribute\")", "selected" : "true"}, {"value":"auto", "wording":"auto"}
48
+ - [Switch](https://concorde.supersoniks.org/crawl/core/components/ui/form/switch/switch.html) (core/components/ui/form/switch/switch): >Already checked switch
49
+ - [Textarea](https://concorde.supersoniks.org/crawl/core/components/ui/form/textarea/textarea.html) (core/components/ui/form/textarea/textarea): Native attributes list
50
+ - [Group](https://concorde.supersoniks.org/crawl/core/components/ui/group/group.html) (core/components/ui/group/group): sonic-group lays out slotted sonic-button · sonic-input and sonic-select controls in a single horizontal row with shared corner radius (first / middle / last items). Optional label and description fol
51
+ - [Icon](https://concorde.supersoniks.org/crawl/core/components/ui/icon/icon.html) (core/components/ui/icon/icon): sonic-icon renders inline SVG icons from the bundled core set or from CDN libraries. Set name (and library / prefix when needed); scale with size. Icons inherit currentColor and are aria-hidden by def
52
+ - [Image](https://concorde.supersoniks.org/crawl/core/components/ui/image/image.html) (core/components/ui/image/image): sonic-image wraps a responsive <img> with aspect ratio, object-fit: cover, optional rounded corners, and load transitions. The host shows a placeholder background (--sc-placeholder-bg) until the asset
53
+ - [Link](https://concorde.supersoniks.org/crawl/core/components/ui/link/link.html) (core/components/ui/link/link): Links navigate with inherited typography: internal routes, anchors, or external URLs. The default slot is the anchor label. For in-app routing, pair href with pushstate; use autoActive to reflect the
54
+ - [Loader](https://concorde.supersoniks.org/crawl/core/components/ui/loader/loader.html) (core/components/ui/loader/loader): sonic-loader shows a loading animation in the page or as a viewport overlay. Default mode is fixed (centered overlay). Use inline inside lists and fetch placeholders. Pair noDelay when the spinner sho
55
+ - [Menu](https://concorde.supersoniks.org/crawl/core/components/ui/menu/menu.html) (core/components/ui/menu/menu): sonic-menu lays out navigation or actions as a direction row or column of sonic-menu-item entries (ghost variant and block shape by default), optional sonic-divider separators, and overflow content in
56
+ - [Modal](https://concorde.supersoniks.org/crawl/core/components/ui/modal/modal.html) (core/components/ui/modal/modal): sonic-modal presents focused content in a <dialog> overlay with backdrop, enter/exit animation, and a built-in close control. Compose sonic-modal-title / sonic-modal-subtitle / sonic-modal-content / s
57
+ - [Pop](https://concorde.supersoniks.org/crawl/core/components/ui/pop/pop.html) (core/components/ui/pop/pop): sonic-pop anchors floating panels to a trigger: put the control in the default slot and the panel in slot="content" (menus, forms, custom markup). Click toggles open/closed unless manual is set; defau
58
+ - [Progress](https://concorde.supersoniks.org/crawl/core/components/ui/progress/progress.html) (core/components/ui/progress/progress): Shows task completion on a value / max scale via a native <progress> bar. Omit value for an indeterminate loading animation. Put primary copy in the default slot and optional secondary text in remaini
59
+ - [Table](https://concorde.supersoniks.org/crawl/core/components/ui/table/table.html) (core/components/ui/table/table): sonic-table lays out tabular data with composable sonic-tr / sonic-th / sonic-td children. The root applies shared typography via size, scrolls horizontally when content overflows, and optionally caps
60
+ - [Theme](https://concorde.supersoniks.org/crawl/core/components/ui/theme/theme.html) (core/components/ui/theme/theme): sonic-theme wraps a Concorde UI: it registers --sc-* design tokens and provides the default slot for your app. With no theme attribute (or theme="custom"), only shared primitives and your overrides ap
61
+ - [Toast](https://concorde.supersoniks.org/crawl/core/components/ui/toast/toast.html) (core/components/ui/toast/toast): Toasts surface short-lived feedback in a fixed stack (bottom-right in the main window). Queue messages with SonicToast.add() on the global SonicToast class—the host sonic-toast is created automaticall
62
+ - [Tooltip](https://concorde.supersoniks.org/crawl/core/components/ui/tooltip/tooltip.html) (core/components/ui/tooltip/tooltip): Tooltip shows a short label on hover (and on focus when the trigger can receive focus). Wrap the trigger in the default slot—buttons, icons, or plain text. Default placement is top (center-aligned). A
63
+ - [Data flow](https://concorde.supersoniks.org/crawl/docs/_core-concept/dataFlow.html) (docs/_core-concept/dataFlow): Recommended patterns for new Concorde apps (Lit + TypeScript). Under the hood, data lives in a DataProvider store (legacy Publisher API: Legacy: Sharing data).
64
+ - [lit + tailwind + vite](https://concorde.supersoniks.org/crawl/docs/_core-concept/overview.html) (docs/_core-concept/overview): Some notes for an overview of Concorde's functioning
65
+ - [Legacy: Subscriber mixin](https://concorde.supersoniks.org/crawl/docs/_core-concept/subscriber.html) (docs/_core-concept/subscriber): > New app components: My first component and Data flow — extend LitElement with decorators (@subscribe, @ancestorAttribute, …). This mixin remains in core components (sonic-list, sonic-fetch, …) and l
66
+ - [@ancestorAttribute](https://concorde.supersoniks.org/crawl/docs/_decorators/ancestor-attribute.html) (docs/_decorators/ancestor-attribute): The @ancestorAttribute decorator automatically injects the value of an ancestor's attribute into a class property at the time of connectedCallback.
67
+ - [@autoSubscribe](https://concorde.supersoniks.org/crawl/docs/_decorators/auto-subscribe.html) (docs/_decorators/auto-subscribe): > Legacy: prefer @subscribe + DataProviderKey. Examples below may still show PublisherManager for existing codebases.
68
+ - [@bind](https://concorde.supersoniks.org/crawl/docs/_decorators/bind.html) (docs/_decorators/bind): Binds a class property to a path in a publisher. The property updates when publisher data changes.
69
+ - [@get](https://concorde.supersoniks.org/crawl/docs/_decorators/get.html) (docs/_decorators/get): @get loads data and stores the result in an optional ApiResult<T> property.
70
+ - [@handle](https://concorde.supersoniks.org/crawl/docs/_decorators/handle.html) (docs/_decorators/handle): Typed callback on one or more DataProviderKey<T> paths: invokes the decorated method when a publisher assigns a value (calculations, side effects, updating other @state properties, etc.).
71
+ - [@onAssign](https://concorde.supersoniks.org/crawl/docs/_decorators/on-assign.html) (docs/_decorators/on-assign): > New apps: use @handle with DataProviderKey (Data flow). @onAssign uses untyped string paths; it remains documented for existing codebases — see Migrating to @handle below.
72
+ - [@patch](https://concorde.supersoniks.org/crawl/docs/_decorators/patch.html) (docs/_decorators/patch): @patch applies a partial update with the body from a publisher. It uses the
73
+ - [@post](https://concorde.supersoniks.org/crawl/docs/_decorators/post.html) (docs/_decorators/post): @post sends the contents of a publisher and stores the response in an
74
+ - [@publish](https://concorde.supersoniks.org/crawl/docs/_decorators/publish.html) (docs/_decorators/publish): Write-only binding: assigning to the property publishes to the DataProviderKey path. No read subscription (inverse of @subscribe).
75
+ - [@put](https://concorde.supersoniks.org/crawl/docs/_decorators/put.html) (docs/_decorators/put): @put replaces a resource with the body from a publisher. It uses exactly the
76
+ - [@subscribe](https://concorde.supersoniks.org/crawl/docs/_decorators/subscribe.html) (docs/_decorators/subscribe): Keeps a Lit property in sync with a read-only slice of the DataProvider store. You pass a DataProviderKey; when that path changes, the property updates and the component re-renders.
77
+ - [@awaitConnectedAncestors and @dispatchConnectedEvent](https://concorde.supersoniks.org/crawl/docs/_decorators/wait-for-ancestors.html) (docs/_decorators/wait-for-ancestors): The @awaitConnectedAncestors and @dispatchConnectedEvent decorators delay a web component's initialization until its matching ancestors have executed their connectedCallback. This is when contextual e
78
+ - [sub()](https://concorde.supersoniks.org/crawl/docs/_directives/sub.html) (docs/_directives/sub): Read-only Lit directive: displays the current DataProvider value and updates whenever it is assigned.
79
+ - [AI agents (skills & AGENTS.md)](https://concorde.supersoniks.org/crawl/docs/_getting-started/ai-agents.html) (docs/_getting-started/ai-agents): Concorde ships skills, rules, and a root AGENTS.md so Cursor, JetBrains AI Assistant, and other coding agents follow framework patterns (DataProvider, decorators, short imports, scope, theme, migratio
80
+ - [Manual installation (Vite)](https://concorde.supersoniks.org/crawl/docs/_getting-started/concorde-manual-install.html) (docs/_getting-started/concorde-manual-install): > Legacy — for brownfield apps or custom stacks. New projects should use the starter.
81
+ - [Installation](https://concorde.supersoniks.org/crawl/docs/_getting-started/concorde-outside.html) (docs/_getting-started/concorde-outside): The following command creates a new Vite project in TypeScript mode with Tailwind and an example component to get started.
82
+ - [Creating components](https://concorde.supersoniks.org/crawl/docs/_getting-started/create-a-component.html) (docs/_getting-started/create-a-component): > New app components: start with My first component and Data flow. The Subscriber mixin below is legacy.
83
+ - [My first component](https://concorde.supersoniks.org/crawl/docs/_getting-started/my-first-component.html) (docs/_getting-started/my-first-component): Build a Lit user card with Tailwind and Concorde UI, then connect it to the DataProvider store: declare the data configuration (type, key, scope), and let @subscribe keep the card in sync.
84
+ - [Legacy: My first subscriber component](https://concorde.supersoniks.org/crawl/docs/_getting-started/my-first-subscriber.html) (docs/_getting-started/my-first-subscriber): > New projects: use My first component (@ancestorAttribute, @subscribe + DataProviderKey, .items on lists) and Data flow. This page documents the Subscriber mixin used by older apps and core component
85
+ - [Legacy: Sharing data](https://concorde.supersoniks.org/crawl/docs/_getting-started/pubsub.html) (docs/_getting-started/pubsub): > New apps: Data flow (get / set / DataProviderKey, decorators). This page documents the historical Publisher proxy API (PublisherManager, publisher.set, onAssign, …).
86
+ - [Introduction](https://concorde.supersoniks.org/crawl/docs/_getting-started/start.html) (docs/_getting-started/start): Based on lit.dev, Concorde is a collection of web components for shared apps and websites.
87
+ - [Customization](https://concorde.supersoniks.org/crawl/docs/_getting-started/theming.html) (docs/_getting-started/theming): Concorde components ship with default styles (fallback values in each component and in <sonic-theme>).
88
+ - [API configuration](https://concorde.supersoniks.org/crawl/docs/_misc/api-configuration.html) (docs/_misc/api-configuration): APIConfiguration is the object built by HTML.getApiConfiguration from ancestor attributes on the DOM (or from a typed publisher — see @get / @post configuration key). It is passed to API by fetchers,
89
+ - [DataProviderKey](https://concorde.supersoniks.org/crawl/docs/_misc/dataProviderKey.html) (docs/_misc/dataProviderKey): 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
90
+ - [Local API demos (offline)](https://concorde.supersoniks.org/crawl/docs/_misc/docs-mock-api.html) (docs/_misc/docs-mock-api): The Concorde doc site does not call fragile third-party APIs during yarn dev. A Service Worker and the Vite dev middleware serve /docs-mock-api/* on the same origin.
91
+ - [Dynamic path placeholders](https://concorde.supersoniks.org/crawl/docs/_misc/dynamic-path.html) (docs/_misc/dynamic-path): Decorators and DataProviderKey paths can include placeholders resolved on the host component at runtime:
92
+ - [Endpoint](https://concorde.supersoniks.org/crawl/docs/_misc/endpoint.html) (docs/_misc/endpoint): Endpoint<T, U> describes a single HTTP path (or a path accepted by API.get) and carries the expected response type T. Unlike DataProviderKey, there is no dot-navigation: the path is one string.
93
+ - [FormElement without Subscriber (REDMINE-79569)](https://concorde.supersoniks.org/crawl/docs/_misc/formelement-subscriber-removal.html) (docs/_misc/formelement-subscriber-removal): Form fields (sonic-input, textarea, select, checkbox, radio, switch, button, input-autocomplete) no longer inherit the Subscriber mixin.
94
+ - [HTML integration (no Lit)](https://concorde.supersoniks.org/crawl/docs/_misc/html-integration.html) (docs/_misc/html-integration): Some hosts (legacy PHP pages, static HTML) embed Concorde components without a Lit build step. They can use HTML attributes such as data-bind, dataProvider, and formDataProvider on tags directly in th
95
+
96
+ ## Optional
97
+
98
+ - [Full index](https://concorde.supersoniks.org/crawl/index.html)
@@ -0,0 +1,243 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
3
+ <url>
4
+ <loc>https://concorde.supersoniks.org/crawl/index.html</loc>
5
+ </url>
6
+ <url>
7
+ <loc>https://concorde.supersoniks.org/crawl/hubs/decorators.html</loc>
8
+ </url>
9
+ <url>
10
+ <loc>https://concorde.supersoniks.org/crawl/hubs/remote-data.html</loc>
11
+ </url>
12
+ <url>
13
+ <loc>https://concorde.supersoniks.org/crawl/hubs/form-components.html</loc>
14
+ </url>
15
+ <url>
16
+ <loc>https://concorde.supersoniks.org/crawl/core/components/functional/date/date.html</loc>
17
+ </url>
18
+ <url>
19
+ <loc>https://concorde.supersoniks.org/crawl/core/components/functional/fetch/fetch.html</loc>
20
+ </url>
21
+ <url>
22
+ <loc>https://concorde.supersoniks.org/crawl/core/components/functional/if/if.html</loc>
23
+ </url>
24
+ <url>
25
+ <loc>https://concorde.supersoniks.org/crawl/core/components/functional/jsonata/jsonata.html</loc>
26
+ </url>
27
+ <url>
28
+ <loc>https://concorde.supersoniks.org/crawl/core/components/functional/list/list.html</loc>
29
+ </url>
30
+ <url>
31
+ <loc>https://concorde.supersoniks.org/crawl/core/components/functional/mix/mix.html</loc>
32
+ </url>
33
+ <url>
34
+ <loc>https://concorde.supersoniks.org/crawl/core/components/functional/queue/queue.html</loc>
35
+ </url>
36
+ <url>
37
+ <loc>https://concorde.supersoniks.org/crawl/core/components/functional/router/router.html</loc>
38
+ </url>
39
+ <url>
40
+ <loc>https://concorde.supersoniks.org/crawl/core/components/functional/sdui/sdui-extension-points.html</loc>
41
+ </url>
42
+ <url>
43
+ <loc>https://concorde.supersoniks.org/crawl/core/components/functional/sdui/sdui.html</loc>
44
+ </url>
45
+ <url>
46
+ <loc>https://concorde.supersoniks.org/crawl/core/components/functional/states/states.html</loc>
47
+ </url>
48
+ <url>
49
+ <loc>https://concorde.supersoniks.org/crawl/core/components/functional/submit/submit.html</loc>
50
+ </url>
51
+ <url>
52
+ <loc>https://concorde.supersoniks.org/crawl/core/components/functional/subscriber/subscriber.html</loc>
53
+ </url>
54
+ <url>
55
+ <loc>https://concorde.supersoniks.org/crawl/core/components/functional/value/value.html</loc>
56
+ </url>
57
+ <url>
58
+ <loc>https://concorde.supersoniks.org/crawl/core/components/ui/alert-messages/alert-messages.html</loc>
59
+ </url>
60
+ <url>
61
+ <loc>https://concorde.supersoniks.org/crawl/core/components/ui/alert/alert.html</loc>
62
+ </url>
63
+ <url>
64
+ <loc>https://concorde.supersoniks.org/crawl/core/components/ui/badge/badge.html</loc>
65
+ </url>
66
+ <url>
67
+ <loc>https://concorde.supersoniks.org/crawl/core/components/ui/button/button.html</loc>
68
+ </url>
69
+ <url>
70
+ <loc>https://concorde.supersoniks.org/crawl/core/components/ui/captcha/captcha.html</loc>
71
+ </url>
72
+ <url>
73
+ <loc>https://concorde.supersoniks.org/crawl/core/components/ui/card/card.html</loc>
74
+ </url>
75
+ <url>
76
+ <loc>https://concorde.supersoniks.org/crawl/core/components/ui/divider/divider.html</loc>
77
+ </url>
78
+ <url>
79
+ <loc>https://concorde.supersoniks.org/crawl/core/components/ui/form/checkbox/checkbox.html</loc>
80
+ </url>
81
+ <url>
82
+ <loc>https://concorde.supersoniks.org/crawl/core/components/ui/form/fieldset/fieldset.html</loc>
83
+ </url>
84
+ <url>
85
+ <loc>https://concorde.supersoniks.org/crawl/core/components/ui/form/form-actions/form-actions.html</loc>
86
+ </url>
87
+ <url>
88
+ <loc>https://concorde.supersoniks.org/crawl/core/components/ui/form/form-layout/form-layout.html</loc>
89
+ </url>
90
+ <url>
91
+ <loc>https://concorde.supersoniks.org/crawl/core/components/ui/form/input-autocomplete/input-autocomplete.html</loc>
92
+ </url>
93
+ <url>
94
+ <loc>https://concorde.supersoniks.org/crawl/core/components/ui/form/input/input.html</loc>
95
+ </url>
96
+ <url>
97
+ <loc>https://concorde.supersoniks.org/crawl/core/components/ui/form/radio/radio.html</loc>
98
+ </url>
99
+ <url>
100
+ <loc>https://concorde.supersoniks.org/crawl/core/components/ui/form/select/select.html</loc>
101
+ </url>
102
+ <url>
103
+ <loc>https://concorde.supersoniks.org/crawl/core/components/ui/form/switch/switch.html</loc>
104
+ </url>
105
+ <url>
106
+ <loc>https://concorde.supersoniks.org/crawl/core/components/ui/form/textarea/textarea.html</loc>
107
+ </url>
108
+ <url>
109
+ <loc>https://concorde.supersoniks.org/crawl/core/components/ui/group/group.html</loc>
110
+ </url>
111
+ <url>
112
+ <loc>https://concorde.supersoniks.org/crawl/core/components/ui/icon/icon.html</loc>
113
+ </url>
114
+ <url>
115
+ <loc>https://concorde.supersoniks.org/crawl/core/components/ui/image/image.html</loc>
116
+ </url>
117
+ <url>
118
+ <loc>https://concorde.supersoniks.org/crawl/core/components/ui/link/link.html</loc>
119
+ </url>
120
+ <url>
121
+ <loc>https://concorde.supersoniks.org/crawl/core/components/ui/loader/loader.html</loc>
122
+ </url>
123
+ <url>
124
+ <loc>https://concorde.supersoniks.org/crawl/core/components/ui/menu/menu.html</loc>
125
+ </url>
126
+ <url>
127
+ <loc>https://concorde.supersoniks.org/crawl/core/components/ui/modal/modal.html</loc>
128
+ </url>
129
+ <url>
130
+ <loc>https://concorde.supersoniks.org/crawl/core/components/ui/pop/pop.html</loc>
131
+ </url>
132
+ <url>
133
+ <loc>https://concorde.supersoniks.org/crawl/core/components/ui/progress/progress.html</loc>
134
+ </url>
135
+ <url>
136
+ <loc>https://concorde.supersoniks.org/crawl/core/components/ui/table/table.html</loc>
137
+ </url>
138
+ <url>
139
+ <loc>https://concorde.supersoniks.org/crawl/core/components/ui/theme/theme.html</loc>
140
+ </url>
141
+ <url>
142
+ <loc>https://concorde.supersoniks.org/crawl/core/components/ui/toast/toast.html</loc>
143
+ </url>
144
+ <url>
145
+ <loc>https://concorde.supersoniks.org/crawl/core/components/ui/tooltip/tooltip.html</loc>
146
+ </url>
147
+ <url>
148
+ <loc>https://concorde.supersoniks.org/crawl/docs/_core-concept/dataFlow.html</loc>
149
+ </url>
150
+ <url>
151
+ <loc>https://concorde.supersoniks.org/crawl/docs/_core-concept/overview.html</loc>
152
+ </url>
153
+ <url>
154
+ <loc>https://concorde.supersoniks.org/crawl/docs/_core-concept/subscriber.html</loc>
155
+ </url>
156
+ <url>
157
+ <loc>https://concorde.supersoniks.org/crawl/docs/_decorators/ancestor-attribute.html</loc>
158
+ </url>
159
+ <url>
160
+ <loc>https://concorde.supersoniks.org/crawl/docs/_decorators/auto-subscribe.html</loc>
161
+ </url>
162
+ <url>
163
+ <loc>https://concorde.supersoniks.org/crawl/docs/_decorators/bind.html</loc>
164
+ </url>
165
+ <url>
166
+ <loc>https://concorde.supersoniks.org/crawl/docs/_decorators/get.html</loc>
167
+ </url>
168
+ <url>
169
+ <loc>https://concorde.supersoniks.org/crawl/docs/_decorators/handle.html</loc>
170
+ </url>
171
+ <url>
172
+ <loc>https://concorde.supersoniks.org/crawl/docs/_decorators/on-assign.html</loc>
173
+ </url>
174
+ <url>
175
+ <loc>https://concorde.supersoniks.org/crawl/docs/_decorators/patch.html</loc>
176
+ </url>
177
+ <url>
178
+ <loc>https://concorde.supersoniks.org/crawl/docs/_decorators/post.html</loc>
179
+ </url>
180
+ <url>
181
+ <loc>https://concorde.supersoniks.org/crawl/docs/_decorators/publish.html</loc>
182
+ </url>
183
+ <url>
184
+ <loc>https://concorde.supersoniks.org/crawl/docs/_decorators/put.html</loc>
185
+ </url>
186
+ <url>
187
+ <loc>https://concorde.supersoniks.org/crawl/docs/_decorators/subscribe.html</loc>
188
+ </url>
189
+ <url>
190
+ <loc>https://concorde.supersoniks.org/crawl/docs/_decorators/wait-for-ancestors.html</loc>
191
+ </url>
192
+ <url>
193
+ <loc>https://concorde.supersoniks.org/crawl/docs/_directives/sub.html</loc>
194
+ </url>
195
+ <url>
196
+ <loc>https://concorde.supersoniks.org/crawl/docs/_getting-started/ai-agents.html</loc>
197
+ </url>
198
+ <url>
199
+ <loc>https://concorde.supersoniks.org/crawl/docs/_getting-started/concorde-manual-install.html</loc>
200
+ </url>
201
+ <url>
202
+ <loc>https://concorde.supersoniks.org/crawl/docs/_getting-started/concorde-outside.html</loc>
203
+ </url>
204
+ <url>
205
+ <loc>https://concorde.supersoniks.org/crawl/docs/_getting-started/create-a-component.html</loc>
206
+ </url>
207
+ <url>
208
+ <loc>https://concorde.supersoniks.org/crawl/docs/_getting-started/my-first-component.html</loc>
209
+ </url>
210
+ <url>
211
+ <loc>https://concorde.supersoniks.org/crawl/docs/_getting-started/my-first-subscriber.html</loc>
212
+ </url>
213
+ <url>
214
+ <loc>https://concorde.supersoniks.org/crawl/docs/_getting-started/pubsub.html</loc>
215
+ </url>
216
+ <url>
217
+ <loc>https://concorde.supersoniks.org/crawl/docs/_getting-started/start.html</loc>
218
+ </url>
219
+ <url>
220
+ <loc>https://concorde.supersoniks.org/crawl/docs/_getting-started/theming.html</loc>
221
+ </url>
222
+ <url>
223
+ <loc>https://concorde.supersoniks.org/crawl/docs/_misc/api-configuration.html</loc>
224
+ </url>
225
+ <url>
226
+ <loc>https://concorde.supersoniks.org/crawl/docs/_misc/dataProviderKey.html</loc>
227
+ </url>
228
+ <url>
229
+ <loc>https://concorde.supersoniks.org/crawl/docs/_misc/docs-mock-api.html</loc>
230
+ </url>
231
+ <url>
232
+ <loc>https://concorde.supersoniks.org/crawl/docs/_misc/dynamic-path.html</loc>
233
+ </url>
234
+ <url>
235
+ <loc>https://concorde.supersoniks.org/crawl/docs/_misc/endpoint.html</loc>
236
+ </url>
237
+ <url>
238
+ <loc>https://concorde.supersoniks.org/crawl/docs/_misc/formelement-subscriber-removal.html</loc>
239
+ </url>
240
+ <url>
241
+ <loc>https://concorde.supersoniks.org/crawl/docs/_misc/html-integration.html</loc>
242
+ </url>
243
+ </urlset>
@@ -0,0 +1,290 @@
1
+ # Date
2
+
3
+ ## No attribute
4
+
5
+ **Nothing** is displayed.
6
+
7
+ <sonic-code>
8
+ <template>
9
+ <sonic-date></sonic-date>
10
+ </template>
11
+ </sonic-code>
12
+
13
+ ## Now
14
+
15
+ Displays the **current date**.
16
+
17
+ <sonic-code>
18
+ <template>
19
+ <sonic-date now></sonic-date>
20
+ </template>
21
+ </sonic-code>
22
+
23
+
24
+ ## Date
25
+
26
+ Displays a date from a **timestamp**.
27
+
28
+ <sonic-code>
29
+ <template>
30
+ <sonic-date date= "1640265629"></sonic-date>
31
+ </template>
32
+ </sonic-code>
33
+
34
+ ## Date_string
35
+
36
+ Displays a date from a **string**.
37
+
38
+ <sonic-code>
39
+ <template>
40
+ <sonic-date date_string="July 20, 69 20:17:40 GMT+00:00"></sonic-date>
41
+ </template>
42
+ </sonic-code>
43
+
44
+ ## Start_date / end_date
45
+
46
+ Displays a period of time **from start_date to end_date**.
47
+ When by itself **start_date** will act as **date**
48
+ if a **start_date is not specified** it will be set by the **current date**.
49
+ if the **end_date is anterior** to start date date it will be **used as the start_date**.
50
+
51
+ <sonic-code>
52
+ <template>
53
+ <!-- from start_date to end_date -->
54
+ <sonic-date start_date="1640265629" end_date= "1640365629"></sonic-date>
55
+ <br>
56
+ <!-- start_date is not specified -->
57
+ <sonic-date end_date= "2640365629"></sonic-date>
58
+ <br>
59
+ <!-- end_date is anterior -->
60
+ <sonic-date end_date= "640365629"></sonic-date>
61
+ </template>
62
+ </sonic-code>
63
+
64
+
65
+ ## Start_date_string / end_date_string
66
+
67
+ <sonic-code>
68
+ <template>
69
+ <!-- from start_date to end_date -->
70
+ <sonic-date date_string="July 20, 90 20:17:40 GMT+00:00" end_date_string= "June 20, 94 20:17:40 GMT+00:00"></sonic-date>
71
+ <br>
72
+ <!-- start_date is not specified -->
73
+ <sonic-date end_date_string= "May 20, 34 20:17:40 GMT+00:00"></sonic-date>
74
+ <br>
75
+ <!-- end_date is anterior -->
76
+ <sonic-date end_date_string= "April 20, 06 20:17:40 GMT+00:00"></sonic-date>
77
+ </template>
78
+ </sonic-code>
79
+
80
+ ## Wording_billet_periode_validite
81
+
82
+ <sonic-code>
83
+ <template>
84
+ <sonic-date wording_billet_periode_validite= "À partir du %s jusqu'au %s" start_date="1640265629" end_date= "1640365629"></sonic-date>
85
+ </template>
86
+ </sonic-code>
87
+
88
+
89
+ ## Weekday
90
+
91
+ <sonic-code>
92
+ <template>
93
+ <b>narrow : </b>
94
+ <sonic-date weekday="narrow" now></sonic-date>
95
+ <br>
96
+ <b>short (default) : </b>
97
+ <sonic-date weekday="short" now></sonic-date>
98
+ <br>
99
+ <b>long : </b>
100
+ <sonic-date weekday="long" now></sonic-date>
101
+ <br>
102
+ <b>hidden : </b>
103
+ <sonic-date weekday="hidden" now></sonic-date>
104
+ </template>
105
+ </sonic-code>
106
+
107
+ ## Day
108
+
109
+ <sonic-code>
110
+ <template>
111
+ <b>numeric : </b>
112
+ <sonic-date day="numeric" date_string="July 01, 69"></sonic-date>
113
+ <br>
114
+ <b>2-digit (default) : </b>
115
+ <sonic-date day="2-digit" date_string="July 01, 69"></sonic-date>
116
+ </template>
117
+ </sonic-code>
118
+
119
+ ## Month
120
+
121
+ <sonic-code>
122
+ <template>
123
+ <b>numeric : </b>
124
+ <sonic-date month="numeric" now></sonic-date>
125
+ <br>
126
+ <b>2-digit : </b>
127
+ <sonic-date month="2-digit" now></sonic-date>
128
+ <br>
129
+ <b>narrow : </b>
130
+ <sonic-date month="narrow" now></sonic-date>
131
+ <br>
132
+ <b>short (default) : </b>
133
+ <sonic-date month="short" now></sonic-date>
134
+ <br>
135
+ <b>long : </b>
136
+ <sonic-date month="long" now></sonic-date>
137
+ </template>
138
+ </sonic-code>
139
+
140
+ ## Year
141
+
142
+ <sonic-code>
143
+ <template>
144
+ <b>numeric (default) : </b>
145
+ <sonic-date year="numeric" now></sonic-date>
146
+ <br>
147
+ <b>2-digit : </b>
148
+ <sonic-date year="2-digit" now></sonic-date>
149
+ </template>
150
+ </sonic-code>
151
+
152
+ ## Hour
153
+
154
+ <sonic-code>
155
+ <template>
156
+ <b>numeric : </b>
157
+ <sonic-date hour="numeric" date_string= "June 20, 04 02:06:02 GMT+00:00"></sonic-date>
158
+ <br>
159
+ <b>2-digit (default) : </b>
160
+ <sonic-date hour="2-digit" date_string= "June 20, 04 02:06:02 GMT+00:00"></sonic-date>
161
+ <br>
162
+ <b>hidden : </b>
163
+ <sonic-date hour="hidden" date_string= "June 20, 04 02:06:02 GMT+00:00"></sonic-date>
164
+ </template>
165
+ </sonic-code>
166
+
167
+ ## Minute
168
+
169
+ <sonic-code>
170
+ <template>
171
+ <b>numeric : </b>
172
+ <sonic-date minute="numeric" date_string= "June 20, 04 02:06:02 GMT+00:00"></sonic-date>
173
+ <br>
174
+ <b>2-digit (default) : </b>
175
+ <sonic-date minute="2-digit" date_string= "June 20, 04 02:06:02 GMT+00:00"></sonic-date>
176
+ <br>
177
+ <b>hidden : </b>
178
+ <sonic-date minute="hidden" date_string= "June 20, 04 02:06:02 GMT+00:00"></sonic-date>
179
+ </template>
180
+ </sonic-code>
181
+
182
+ ## Language
183
+
184
+ <sonic-button href="https://www.w3schools.com/tags/ref_language_codes.asp" target="_blank" type="info" size="sm">ISO 639-1 Language Codes</sonic-button>
185
+
186
+ <sonic-code>
187
+ <template>
188
+ <b>fr : </b>
189
+ <sonic-date language="fr" now></sonic-date>
190
+ <br>
191
+ <b>en : </b>
192
+ <sonic-date language="en" now></sonic-date>
193
+ <br>
194
+ <b>zh : </b>
195
+ <sonic-date language="zh" now></sonic-date>
196
+ <br>
197
+ <b>ja : </b>
198
+ <sonic-date language="ja" now></sonic-date>
199
+ </template>
200
+ </sonic-code>
201
+
202
+ ## Time_zone
203
+
204
+ For the list of supported timeZones, run <b class="text-info">Intl.supportedValuesOf('timeZone')</b> in the console
205
+
206
+ <sonic-code>
207
+ <template>
208
+ <b>Europe/London : </b>
209
+ <sonic-date time_zone="Europe/London" now></sonic-date>
210
+ <br>
211
+ <b>Europe/Paris : </b>
212
+ <sonic-date time_zone="Europe/Paris" now></sonic-date>
213
+ <br>
214
+ <b>America/Tijuana : </b>
215
+ <sonic-date time_zone="America/Tijuana" now></sonic-date>
216
+ </template>
217
+ </sonic-code>
218
+
219
+ ## Era
220
+
221
+ <sonic-code>
222
+ <template>
223
+ <b>narrow : </b>
224
+ <sonic-date era="narrow" now></sonic-date>
225
+ <br>
226
+ <b>short : </b>
227
+ <sonic-date era="short" now></sonic-date>
228
+ <br>
229
+ <b>long : </b>
230
+ <sonic-date era="long" now></sonic-date>
231
+ </template>
232
+ </sonic-code>
233
+
234
+ ## .renderIf
235
+
236
+ <sonic-alert status="error" background>Deprecated</sonic-alert>
237
+
238
+ <sonic-code>
239
+ <template>
240
+ <b>True statement : </b>
241
+ <sonic-date data-bind ::render-if="|10>2" now></sonic-date>
242
+ <br>
243
+ <b>False statement : </b>
244
+ <sonic-date data-bind ::render-if="|10<2" now></sonic-date>
245
+ </template>
246
+ </sonic-code>
247
+
248
+ ## DesignMode
249
+
250
+ <sonic-code>
251
+ <template>
252
+ <div class="relative max-w-lg rounded-lg overflow-hidden">
253
+ <div class="absolute top-0 h-1/2 w-full bg-gradient-to-b from-[rgba(0,0,10,.2)] z-10 "></div>
254
+ <sonic-date
255
+ designMode
256
+ noShadowDom
257
+ start_date= "1640265629"
258
+ end_date= "1640365629"
259
+ language= "fr"
260
+ wording_billet_periode_validite= "Du %s au %s"
261
+ year= "numeric"
262
+ month= "short"
263
+ weekday= "short"
264
+ hour= "2-digit"
265
+ minute= "2-digit"
266
+ class="py-4 drop-shadow-lg text-contrast-content p-4 inline-block text-center absolute left-0 z-20 text-sm"
267
+ >
268
+ <template data-value="weekday">
269
+ <span class="hidden"></span>
270
+ </template>
271
+ <template data-value="day">
272
+ <span class="text-4xl block uppercase leading-none font-bold"></span>
273
+ </template>
274
+ <template data-value="month">
275
+ <span class="text-xl block uppercase leading-tight font-bold"></span>
276
+ </template>
277
+ <template data-value="year">
278
+ <span class="text-lg mb-1 font-bold block uppercase leading-tight "></span>
279
+ </template>
280
+ <template data-value="to">
281
+ <span class="font-medium block my-1 text-3xl leading-none">↓</span>
282
+ </template>
283
+ </sonic-date>
284
+ <sonic-image
285
+ ratio="1/1" src="https://picsum.photos/id/237/700/700">
286
+ </sonic-image>
287
+ </div>
288
+ </template>
289
+ </sonic-code>
290
+