@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 +0,0 @@
1
- *,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!container{width:100%!important}.container{width:100%}@media (min-width: 640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width: 768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width: 1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width: 1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width: 1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1em;margin-bottom:1em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;padding-inline-start:1.625em;margin-top:1em;margin-bottom:1em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;padding-inline-start:1.625em;margin-top:1em;margin-bottom:1em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:1rem;line-height:.95;letter-spacing:-.045em}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333;letter-spacing:-.03em;border-bottom:var(--sc-border-width) solid;padding-bottom:.15em}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:500;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px rgb(var(--tw-prose-kbd-shadows) / 10%),0 3px rgb(var(--tw-prose-kbd-shadows) / 10%);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--sc-base-content);font-weight:600;font-size:.875em;background-color:var(--sc-base-100);border-radius:calc(var(--sc-rounded) * .75);border-width:1px;border-color:var(--sc-base-200);padding:.15em .4em;font-family:var(--sc-font-family-monospace, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace)}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--sc-base-content);background-color:var(--sc-base-100);overflow-x:auto;font-weight:400;font-size:.8125rem;line-height:1.6;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:var(--sc-rounded);padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em;border-width:1px;border-style:solid;border-color:var(--sc-base-200);padding:1rem 1.25rem;font-family:var(--sc-font-family-monospace, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace)}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:400;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body: var(--sc-base-content);--tw-prose-headings: var(--sc-base-900);--tw-prose-lead: var(--sc-base-content);--tw-prose-links: var(--sc-base-900);--tw-prose-bold: var(--sc-base-content);--tw-prose-counters: var(--sc-base-500);--tw-prose-bullets: var(--sc-base-300);--tw-prose-hr: var(--sc-base-200);--tw-prose-quotes: var(--sc-base-content);--tw-prose-quote-borders: var(--sc-base-200);--tw-prose-captions: var(--sc-base-500);--tw-prose-kbd: #111827;--tw-prose-kbd-shadows: 17 24 39;--tw-prose-code: var(--sc-base-content);--tw-prose-pre-code: var(--sc-base-content);--tw-prose-pre-bg: var(--sc-base-100);--tw-prose-th-borders: var(--sc-base-300);--tw-prose-td-borders: var(--sc-base-200);--tw-prose-invert-body: var(--sc-base-300);--tw-prose-invert-headings: var(--sc-base);--tw-prose-invert-lead: var(--sc-base-400);--tw-prose-invert-links: var(--sc-base);--tw-prose-invert-bold: var(--sc-base);--tw-prose-invert-counters: var(--sc-base-400);--tw-prose-invert-bullets: var(--sc-base-600);--tw-prose-invert-hr: var(--sc-base-700);--tw-prose-invert-quotes: var(--sc-base-100);--tw-prose-invert-quote-borders: var(--sc-base-700);--tw-prose-invert-captions: var(--sc-base-400);--tw-prose-invert-kbd: #fff;--tw-prose-invert-kbd-shadows: 255 255 255;--tw-prose-invert-code: var(--sc-base);--tw-prose-invert-pre-code: var(--sc-base-300);--tw-prose-invert-pre-bg: var(--sc-base-900);--tw-prose-invert-th-borders: var(--sc-base-600);--tw-prose-invert-td-borders: var(--sc-base-700);font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em;list-style-type:disc}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose{line-height:1.5}.prose :where(strong a):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:bolder}.prose :where(iframe[src*=youtu]):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:var(--sc-rounded-md)}.prose :where(h5):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.-top-1{top:-.25rem}.bottom-1{bottom:.25rem}.bottom-2{bottom:.5rem}.left-0{left:0}.right-1{right:.25rem}.right-2{right:.5rem}.top-0{top:0}.top-16{top:4rem}.top-\[4\.2rem\]{top:4.2rem}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-\[3000\]{z-index:3000}.col-span-2{grid-column:span 2 / span 2}.col-span-3{grid-column:span 3 / span 3}.m-0{margin:0}.-mx-2{margin-left:-.5rem;margin-right:-.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-4{margin-top:1rem;margin-bottom:1rem}.mb-0{margin-bottom:0}.mb-12{margin-bottom:3rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-5{margin-left:1.25rem}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mt-0{margin-top:0}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.size-8{width:2rem;height:2rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-24{height:6rem}.h-3{height:.75rem}.h-4{height:1rem}.h-96{height:24rem}.h-full{height:100%}.max-h-40{max-height:10rem}.max-h-48{max-height:12rem}.max-h-80{max-height:20rem}.max-h-\[60svh\]{max-height:60svh}.max-h-\[calc\(100svh_-_4\.2rem\)\]{max-height:calc(100svh - 4.2rem)}.min-h-\[100svh\]{min-height:100svh}.min-h-\[5rem\]{min-height:5rem}.w-1\/2{width:50%}.w-1\/3{width:33.333333%}.w-12{width:3rem}.w-16{width:4rem}.w-24{width:6rem}.w-\[30rem\]{width:30rem}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[8rem\]{min-width:8rem}.max-w-2xl{max-width:42rem}.max-w-\[30rem\]{max-width:30rem}.max-w-\[34rem\]{max-width:34rem}.max-w-\[calc\(100vw-2rem\)\]{max-width:calc(100vw - 2rem)}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-prose{max-width:70ch}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink,.shrink{flex-shrink:1}.flex-grow,.grow{flex-grow:1}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-1\/2{--tw-translate-x: 50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-1\/2{--tw-translate-y: 50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-\[55deg\]{--tw-rotate: 55deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-\[3\.5rem_4\.5rem_1fr_3rem\]{grid-template-columns:3.5rem 4.5rem 1fr 3rem}.grid-cols-\[3\.5rem_4\.5rem_1fr_3rem_auto\]{grid-template-columns:3.5rem 4.5rem 1fr 3rem auto}.grid-cols-\[3\.5rem_4\.5rem_1fr_auto\]{grid-template-columns:3.5rem 4.5rem 1fr auto}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.grid-cols-\[auto_1fr_auto\]{grid-template-columns:auto 1fr auto}.grid-cols-\[minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1fr)}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-end{align-items:flex-end}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-1{-moz-column-gap:.25rem;column-gap:.25rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.gap-y-1{row-gap:.25rem}.gap-y-3{row-gap:.75rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.self-center{align-self:center}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.break-all{word-break:break-all}.rounded{border-radius:var(--sc-rounded)}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--sc-rounded-lg)}.rounded-md{border-radius:var(--sc-rounded-md)}.border{border-width:var(--sc-border-width)}.border-0{border-width:0px}.border-b{border-bottom-width:var(--sc-border-width)}.border-b-\[\.18rem\]{border-bottom-width:.18rem}.border-dashed{border-style:dashed}.border-dotted{border-style:dotted}.border-current{border-color:currentColor}.border-neutral-200{border-color:var(--sc-base-200)}.border-neutral-300{border-color:var(--sc-base-300)}.bg-base{background-color:var(--sc-base)}.bg-info{background-color:var(--sc-info)}.bg-neutral-0{background-color:var(--sc-base)}.bg-neutral-100{background-color:var(--sc-base-100)}.bg-neutral-50{background-color:var(--sc-base-50)}.bg-success{background-color:var(--sc-success)}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-16{padding-bottom:4rem}.pl-3{padding-left:.75rem}.pl-5{padding-left:1.25rem}.pt-3{padding-top:.75rem}.pt-\[20vh\]{padding-top:20vh}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-headings{font-family:var(--sc-headings-font-family, var(--sc-font-family-base, sans-serif))}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem}.text-3xl{font-size:1.875rem}.text-4xl{font-size:2.25rem}.text-base{font-size:1rem}.text-lg{font-size:1.125rem}.text-sm{font-size:.875rem}.text-xl{font-size:1.25rem}.text-xs{font-size:.75rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-\[1\.5\]{line-height:1.5}.leading-none{line-height:1}.leading-tight{line-height:1.25}.text-base{color:var(--sc-base)}.text-content{color:var(--sc-base-content)}.text-danger{color:var(--sc-danger)}.text-neutral-0{color:var(--sc-base)}.text-neutral-400{color:var(--sc-base-400)}.text-neutral-500{color:var(--sc-base-500)}.text-neutral-600{color:var(--sc-base-600)}.text-neutral-700{color:var(--sc-base-700)}.text-warning{color:var(--sc-warning)}.underline{text-decoration-line:underline}.line-through{text-decoration-line:line-through}.underline-offset-4{text-underline-offset:4px}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow{--tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / .1)) drop-shadow(0 1px 1px rgb(0 0 0 / .06));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow-lg{--tw-drop-shadow: drop-shadow(0 10px 8px rgb(0 0 0 / .04)) drop-shadow(0 4px 3px rgb(0 0 0 / .1));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.invert{--tw-invert: invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}p{text-wrap:pretty}.custom-scroll{overflow:auto!important}.custom-scroll:hover::-webkit-scrollbar-thumb{box-shadow:inset 0 0 2rem 2rem var(--sc-base-900)}.custom-scroll::-webkit-scrollbar{width:.5rem;height:.5rem;border:solid .15rem transparent;border-radius:var(--sc-rounded);background:transparent}.custom-scroll::-webkit-scrollbar-thumb{opacity:0;-webkit-transition:box-shadow .2s;transition:box-shadow .2s;border:solid .15rem transparent}:root{--sc-headings-font-family: "Schibsted Grotesk", system-ui, sans-serif;--sc-font-family-base: "Schibsted Grotesk", system-ui, sans-serif;--sc-headings-font-weight: 800;--sc-rounded: 0;--sc-border-width: 2px;--docs-signal: #ff6b1f;--docs-signal-ink: #1b1a17;--docs-green: #2f6b4f;--docs-green-deep: #24503c;--docs-green-ink: #1f4a36;--docs-red: #d42a2f;--docs-night: #1b1a17;--docs-night-ink: #ece6da}sonic-theme{--sc-rounded: 0;--sc-btn-rounded: 0;--sc-input-rounded: 0}[data-concorde-theme=light]{--sc-base: #e6e0d4;--sc-base-content: #1b1a17;--sc-primary: #1b1a17;--sc-primary-content: #e6e0d4;--sc-base-50: #ddd6c8;--sc-base-100: #d3cbbb;--sc-base-200: #bdb4a2;--sc-base-300: #a59c8a;--sc-base-400: #877f6f;--sc-base-500: #6c6558;--sc-base-600: #524c42;--sc-base-700: #39352e;--sc-base-800: #26231f;--sc-base-900: #1b1a17;--sc-info: #1f5fd1;--sc-info-content: #ffffff;--sc-success: #2f6b4f;--sc-success-content: #ffffff;--sc-warning: #ff6b1f;--sc-warning-content: #1b1a17;--sc-danger: #d42a2f;--sc-danger-content: #ffffff}[data-concorde-theme=dark]{--sc-base: #161513;--sc-base-content: #ece6da;--sc-primary: #ece6da;--sc-primary-content: #161513;--sc-base-50: #1e1d1a;--sc-base-100: #272522;--sc-base-200: #38352f;--sc-base-300: #4b4740;--sc-base-400: #69645a;--sc-base-500: #857f74;--sc-base-600: #a8a196;--sc-base-700: #c7c0b4;--sc-base-800: #ddd6ca;--sc-base-900: #ece6da;--sc-info: #5b8ff0;--sc-info-content: #161513;--sc-success: #4f9b74;--sc-success-content: #161513;--sc-warning: #ff7a33;--sc-warning-content: #161513;--sc-danger: #ef4a4f;--sc-danger-content: #161513;--docs-signal: #ff7a33;--docs-green: #4f9b74;--docs-green-deep: #1f3f31;--docs-green-ink: #79c39b;--docs-red: #ef4a4f;--docs-night: #0b0a09}[data-concorde-theme=light],[data-concorde-theme=dark]{--sc-input-bg: var(--sc-base-100);--sc-input-border-color: var(--sc-base-100)}html{font-family:var(--sc-font-family-base, sans-serif);scroll-behavior:smooth}body{background:var(--sc-base);color:var(--sc-base-content)}.prose :where(code):not(:where(pre *)){box-decoration-break:clone;white-space:nowrap;display:inline-block;padding:0 .25rem;font-size:.75em;border:none;margin-inline:2px;font-weight:400!important;background-color:var(--sc-base-50);-webkit-box-decoration-break:clone}docs-markdown-renderer :is(h1,h2,h3,h4)[id]{scroll-margin-top:5.5rem}docs-page.prose :where(img){max-width:100%}@media (max-width: 639px){docs-page sonic-code>div{overflow-x:auto}docs-page.prose :where(table){display:block;overflow-x:auto}}.bp-route{position:relative;height:2rem;border-bottom:2px dashed currentColor;opacity:.8}.bp-fly{position:absolute;top:calc(100% + 1px);transform:translateY(-50%);left:0;animation:bp-fly 3.2s cubic-bezier(.45,0,.25,1) infinite}@keyframes bp-fly{0%{left:0;translate:0 0;opacity:0}10%{opacity:1}30%{translate:0 -1rem}70%{translate:0 -1rem}90%{opacity:1;translate:0 0}to{left:calc(100% - 1.5rem);translate:0 0;opacity:0}}.bp-pop{animation:bp-pop .45s cubic-bezier(.3,1.6,.5,1)}@keyframes bp-pop{0%{transform:scale(.85);opacity:0}}.bp-barcode{background-color:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='1'%3E%3Crect width='2' height='1'/%3E%3Crect x='4' width='1' height='1'/%3E%3C/svg%3E") repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='1'%3E%3Crect width='2' height='1'/%3E%3Crect x='4' width='1' height='1'/%3E%3C/svg%3E") repeat;-webkit-mask-size:8px 100%;mask-size:8px 100%}docs-boarding-pass-demo sonic-card{background:var(--sc-_bg)}.docs-home{--page-margin: 1rem;--step-small: .875rem;--step-body: clamp(1.0625rem, 1rem + .25vw, 1.1875rem);--step-lead: clamp(1.25rem, 1.1rem + .7vw, 1.625rem);--step-head: clamp(2.25rem, 1.4rem + 3.2vw, 4.25rem);--step-display: clamp(2.5rem, 1.2rem + 5.4vw, 6.25rem);--section-gap: clamp(6rem, 3rem + 9vw, 13rem);--sc-rounded-lg: 0;margin-inline:calc(-1 * var(--page-margin));padding-inline:var(--page-margin);overflow-x:clip;font-family:var(--sc-font-family-base);font-size:var(--step-body);line-height:1.45;color:var(--sc-base-content)}@media (min-width: 640px){.docs-home{--page-margin: 1.5rem}}@media (min-width: 1024px){.docs-home{--page-margin: 2.5rem}}@media (min-width: 1536px){.docs-home{--page-margin: 5rem}}.section-title{margin:0;font-family:var(--sc-headings-font-family);font-size:var(--step-head);font-weight:800;line-height:.95;letter-spacing:-.045em}.text-link{font-weight:600;text-decoration:underline;text-underline-offset:.25em;text-decoration-thickness:2px}.signal-button{--sc-primary: var(--docs-signal);--sc-primary-content: var(--docs-signal-ink)}.hero{position:relative;padding-top:clamp(3rem,8vh,6.5rem)}.hero-title{margin:0;font-family:var(--sc-headings-font-family);font-size:var(--step-display);font-weight:800;line-height:.88;letter-spacing:-.05em}.hero-lead{max-width:40ch;margin:2.25rem 0 0;font-size:var(--step-body)}.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.75rem;margin-top:2.25rem}.hero-install{max-width:34rem;margin-top:2rem}.hero-install-code{margin:0!important}.hero-stage{position:relative;height:clamp(24rem,110vw,34rem);margin:3.5rem calc(-1 * var(--page-margin)) 0;background:var(--docs-signal);--bevel-x: calc(var(--mach-cell, 1rem) * 8);--bevel-y: calc(var(--mach-cell, 1rem) * 4);clip-path:polygon(var(--bevel-x) 0,100% 0,100% 100%,0 100%,0 var(--bevel-y))}.hero-mach{position:absolute;inset:0;display:block;overflow:hidden;background:var(--docs-signal);color:var(--docs-signal-ink);touch-action:pan-y;cursor:crosshair}.mach-canvas{position:absolute;inset:0;width:100%;height:100%}.mach-readout{position:absolute;left:var(--page-margin);bottom:2.75rem;display:flex;align-items:baseline;gap:.75rem;margin:0;font-family:var(--sc-headings-font-family);font-weight:800;line-height:.8;letter-spacing:-.05em;font-variant-numeric:tabular-nums;pointer-events:none}.mach-label{font-size:var(--step-lead);letter-spacing:-.02em}.mach-value{position:relative;display:inline-grid;font-size:clamp(4.5rem,2rem + 12vw,11rem)}.mach-layer{grid-area:1 / 1}.mach-layer:first-child{position:relative;z-index:1}.mach-ghost-a,.mach-ghost-b{opacity:0}.mach-ghost-a{color:var(--docs-red)}.mach-ghost-b{color:var(--docs-signal-ink)}.mach-dot{margin-inline:-.12em}.mach-note{position:absolute;left:var(--page-margin);bottom:1rem;margin:0;font-size:var(--step-small);font-weight:600;pointer-events:none}@media (min-width: 1024px){.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:max(40rem,calc(100svh - var(--docs-header-h, 4.4rem)));padding-top:0}.hero-copy{align-self:center;padding:3rem 2.5rem 3rem 0}.hero-title{font-size:clamp(2.75rem,.4rem + 4.3vw,5.5rem)}.hero-install{max-width:30rem}.hero-stage{height:auto;margin:0 calc(-1 * var(--page-margin)) 0 0}.mach-readout,.mach-note{left:3rem}.mach-readout{bottom:3.75rem}.mach-note{bottom:2rem}.mach-value{font-size:clamp(6rem,1rem + 9vw,13rem)}}.manifesto{margin-inline:calc(-1 * var(--page-margin));padding:clamp(3rem,1.5rem + 4vw,6rem) var(--page-margin);background:var(--docs-night);color:var(--docs-night-ink)}.manifesto-text{max-width:64rem;margin:0;font-family:var(--sc-headings-font-family);font-size:clamp(1.2rem,.85rem + 1.75vw,2.25rem);font-weight:600;line-height:1.12;letter-spacing:-.02em;text-wrap:balance}.index{padding-top:var(--section-gap)}.index-head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:1.5rem 2rem}.index-filters{display:flex;flex-wrap:wrap;gap:.25rem 1.5rem}.index-filter{font-weight:600}.index-filter[aria-pressed=false]{opacity:.55}.index-filter[aria-pressed=false] .index-filter-mark{opacity:0}.index-wall{margin:3rem 0 0;font-family:var(--sc-headings-font-family);font-size:clamp(1.5rem,.8rem + 2.4vw,3rem);font-weight:800;line-height:1.08;letter-spacing:-.03em}.wall-item{display:inline-block;margin-right:.85em;white-space:nowrap}.wall-name{transition:color .2s ease}.wall-name:hover,.wall-name.is-focus{color:var(--docs-red)}.index-caption{position:sticky;bottom:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem 1.25rem;margin-top:2.5rem;padding:1rem 0;background:var(--sc-base)}.index-caption-tag{color:var(--docs-green-ink);font-weight:600}.index-caption-all{margin-left:auto}.instruments{display:grid;grid-template-columns:minmax(0,1fr);margin:var(--section-gap) calc(-1 * var(--page-margin)) 0}.instr-title{padding:0 var(--page-margin) 2rem}.instr-field{display:grid;place-items:center;padding:2rem var(--page-margin);background:var(--docs-green-deep)}.instr-field{isolation:isolate}.instr-field:before{content:"";position:absolute;inset:0;z-index:-1;background:var(--docs-night-ink);opacity:.16;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='128'%3E%3Cg fill='%23000'%3E%3Crect width='128' height='2'/%3E%3Crect width='2' height='128'/%3E%3Cg opacity='.45'%3E%3Crect y='32' width='128' height='1'/%3E%3Crect y='64' width='128' height='1'/%3E%3Crect y='96' width='128' height='1'/%3E%3Crect x='32' width='1' height='128'/%3E%3Crect x='64' width='1' height='128'/%3E%3Crect x='96' width='1' height='128'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E") 0 0 / 7.5rem 7.5rem repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='128'%3E%3Cg fill='%23000'%3E%3Crect width='128' height='2'/%3E%3Crect width='2' height='128'/%3E%3Cg opacity='.45'%3E%3Crect y='32' width='128' height='1'/%3E%3Crect y='64' width='128' height='1'/%3E%3Crect y='96' width='128' height='1'/%3E%3Crect x='32' width='1' height='128'/%3E%3Crect x='64' width='1' height='128'/%3E%3Crect x='96' width='1' height='128'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E") 0 0 / 7.5rem 7.5rem repeat;pointer-events:none}@media (max-width: 1023px){.instr-field{position:relative}}.instr-output{display:grid;gap:1.25rem;width:min(34rem,100%);padding:1.75rem;background:var(--sc-base);color:var(--sc-base-content);font-family:var(--sc-font-family-base);transition:background-color .35s ease,color .35s ease}.board-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}.board-title{font-family:var(--sc-headings-font-family);font-size:var(--step-lead);font-weight:800;letter-spacing:-.02em}.board-airport,.board-label,.board-note{font-size:var(--step-small)}.board-passenger{display:grid;gap:.15rem;padding:1rem 1.25rem;background:var(--sc-base-100)}.board-name{font-family:var(--sc-headings-font-family);font-size:var(--step-head);font-weight:800;line-height:1;letter-spacing:-.04em;overflow-wrap:anywhere}.board-table{font-variant-numeric:tabular-nums}.board-mine{background:var(--sc-base-50);font-weight:600}@media (max-width: 639px){.instr-output{padding:1.25rem}.board-name{font-size:var(--step-lead)}.board-table{font-size:var(--step-small)}.board-table sonic-tr>:first-child{display:none}}.board-table sonic-td,.board-table sonic-th{white-space:nowrap}.board-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 1rem}.instr-blocks{padding:1rem var(--page-margin) 0}.instr-block{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;max-width:34rem;padding-block:2rem}.instr-block sonic-group{display:block;max-width:100%;overflow-x:auto}.instr-claim{margin:0;font-size:var(--step-lead);font-weight:800;letter-spacing:-.02em;line-height:1.1}.instr-text{margin:0}.instr-code{margin:0!important}.host-snippets{display:grid;grid-template-columns:minmax(0,1fr)}.host-snippet{grid-area:1 / 1;min-width:0;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility 0s .3s}.host-snippet.is-active{opacity:1;visibility:visible;transition:opacity .3s ease}@media (min-width: 1024px){.instruments{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.instr-field{position:sticky;top:var(--docs-header-h, 4.4rem);grid-column:1;grid-row:1 / span 2;height:calc(100svh - var(--docs-header-h, 4.4rem));align-self:start}.instr-title{grid-column:2;grid-row:1;padding:4.5rem var(--page-margin) 0 clamp(2rem,5vw,5rem)}.instr-blocks{grid-column:2;grid-row:2;padding:0 var(--page-margin) 4.5rem clamp(2rem,5vw,5rem)}.instr-block{padding-block:14vh}}.story{display:grid;gap:clamp(3rem,6vw,6rem);padding-top:var(--section-gap)}.story-figure{margin:0;margin-inline:calc(-1 * var(--page-margin))}.story img{display:block;width:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:50% 62%;object-position:50% 62%}.story-figure img{height:clamp(20rem,48vw,46rem)}.letter{display:grid;gap:2rem}.letter-body p{max-width:38rem;margin:0 0 1.1em;line-height:1.55}.letter-body .letter-sign{margin-top:1.75rem;font-size:var(--step-lead);font-weight:600}@media (min-width: 1024px){.letter{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:4rem}}.takeoff{display:grid;grid-template-columns:minmax(0,1fr)}.takeoff-copy{padding-top:var(--section-gap)}.takeoff-title{margin:0;font-family:var(--sc-headings-font-family);font-size:clamp(2.5rem,.5rem + 4.3vw,5.25rem);font-weight:800;line-height:.88;letter-spacing:-.05em}.takeoff-lead{max-width:34rem;margin:1.75rem 0 0}.takeoff-code{max-width:34rem;margin-top:1.25rem}.takeoff-command{margin:0!important}.takeoff-figure{margin:3rem calc(-1 * var(--page-margin)) 0;overflow:hidden;isolation:isolate;background:var(--sc-base)}.takeoff-figure video{display:block;width:100%;aspect-ratio:3 / 4;-o-object-fit:cover;object-fit:cover;transform:scale(1.18);filter:grayscale(1) brightness(1.45) contrast(1.5);mix-blend-mode:darken}[data-concorde-theme=dark] .takeoff-figure video{filter:none;mix-blend-mode:normal}@media (min-width: 1024px){.takeoff{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(2rem,5vw,5rem);align-items:start}.takeoff-figure{position:sticky;top:var(--docs-header-h, 4.4rem);margin:0 calc(-1 * var(--page-margin)) 0 0}}.home-footer{padding:var(--section-gap) 0 2rem;font-size:var(--step-small)}.footer-line{display:grid;gap:.5rem}.footer-links{display:flex;flex-wrap:wrap;gap:1.5rem;font-weight:600}.credits{max-width:72rem;margin:2rem 0 0}.credits a{text-decoration:underline;text-underline-offset:.2em}@media (min-width: 768px){.footer-line{grid-template-columns:1fr auto 1fr;align-items:baseline;gap:1.5rem}.footer-end{justify-self:end}}.hero-in{animation:hero-in .9s cubic-bezier(.2,.7,.2,1) both;animation-delay:var(--d, 0ms)}@keyframes hero-in{0%{opacity:0;transform:translateY(1.5rem)}}.hero-stage{animation:stage-in 1.1s cubic-bezier(.7,0,.2,1) .25s both}@keyframes stage-in{0%{transform:translate(12%);opacity:0}}[data-reveal]{opacity:0;transform:translateY(1.5rem);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d, 0ms)}[data-reveal].is-visible{opacity:1;transform:none}docs-mach-stage[data-boom] .mach-ghost-a{animation:mach-split-a .9s ease-out both}docs-mach-stage[data-boom] .mach-ghost-b{animation:mach-split-b .9s ease-out both}@keyframes mach-split-a{0%{opacity:1;transform:translate(-.1em)}25%{opacity:1;transform:translate(.07em)}50%{opacity:.9;transform:translate(-.05em)}75%{opacity:.6;transform:translate(.02em)}to{opacity:0;transform:none}}@keyframes mach-split-b{0%{opacity:.4;transform:translate(.09em)}25%{opacity:.4;transform:translate(-.06em)}50%{opacity:.3;transform:translate(.04em)}75%{opacity:.15;transform:translate(-.02em)}to{opacity:0;transform:none}}.settle{overflow:hidden}.settle img{transform:scale(1.08);transition:transform 1.8s cubic-bezier(.2,.7,.2,1)}.settle.is-visible img{transform:none}@media (prefers-reduced-motion: reduce){.hero-in,.hero-stage{animation:none!important}.host-snippet{transition:none}[data-reveal],.settle img{opacity:1;transform:none;transition:none}}.hover\:bg-neutral-50:hover{background-color:var(--sc-base-50)}.hover\:underline:hover{text-decoration-line:underline}.prose-h1\:text-\[2\.4em\] :is(:where(h1):not(:where([class~=not-prose],[class~=not-prose] *))){font-size:2.4em}.prose-code\:before\:content-none :is(:where(code):not(:where([class~=not-prose],[class~=not-prose] *))):before{--tw-content: none;content:var(--tw-content)}.prose-code\:after\:content-none :is(:where(code):not(:where([class~=not-prose],[class~=not-prose] *))):after{--tw-content: none;content:var(--tw-content)}.prose-pre\:font-mono :is(:where(pre):not(:where([class~=not-prose],[class~=not-prose] *))){font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.prose-li\:my-\[\.2em\] :is(:where(li):not(:where([class~=not-prose],[class~=not-prose] *))){margin-top:.2em;margin-bottom:.2em}@media (min-width: 640px){.sm\:col-span-1{grid-column:span 1 / span 1}.sm\:block{display:block}.sm\:size-\[2\.4rem\]{width:2.4rem;height:2.4rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:gap-4{gap:1rem}.sm\:gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:text-4xl{font-size:2.25rem}.sm\:text-5xl{font-size:3rem}.sm\:prose-h1\:text-\[3\.25em\] :is(:where(h1):not(:where([class~=not-prose],[class~=not-prose] *))){font-size:3.25em}}@media (min-width: 768px){.md\:block{display:block}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 1024px){.lg\:block{display:block}.lg\:hidden{display:none}.lg\:w-\[19rem\]{width:19rem}.lg\:w-\[35rem\]{width:35rem}.lg\:max-w-\[35rem\]{max-width:35rem}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-\[14rem_minmax\(0\,1fr\)\]{grid-template-columns:14rem minmax(0,1fr)}.lg\:px-10{padding-left:2.5rem;padding-right:2.5rem}.lg\:leading-\[1\.5\]{line-height:1.5}}@media (min-width: 1280px){.xl\:mx-0{margin-left:0;margin-right:0}.xl\:block{display:block}.xl\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.xl\:grid-cols-\[15rem_minmax\(0\,1fr\)_13rem\]{grid-template-columns:15rem minmax(0,1fr) 13rem}.xl\:gap-12{gap:3rem}}@media (min-width: 1536px){.\32xl\:px-20{padding-left:5rem;padding-right:5rem}}.dark\:border-neutral-600:where(.dark,.dark *){border-color:var(--sc-base-600)}.dark\:border-neutral-700:where(.dark,.dark *){border-color:var(--sc-base-700)}.dark\:bg-neutral-300:where(.dark,.dark *){background-color:var(--sc-base-300)}.\[\&\[active\]\]\:text-success[active]{color:var(--sc-success)}[data-home] .\[\[data-home\]_\&\]\:hidden{display:none}
@@ -1,211 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en" data-doc-url="https://concorde.supersoniks.org/core/components/functional/date" data-doc-id="core/components/functional/date/date">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Date — Concorde by Supersoniks</title>
7
- <meta name="description" content="sonic-date formats a date or a date range with Intl.DateTimeFormat. Pass a Unix timestamp in seconds (date) or a parsable string (date_string), add end_date for a range, and tune each part (weekday · ">
8
- <meta name="keywords" content="Concorde, supersoniks, core/components/functional/date/date, date, Date, functional component, sonic-date, web component, Intl.DateTimeFormat, date_string, end_date, weekday, month, hour, now">
9
- <meta name="concorde-doc-id" content="core/components/functional/date/date">
10
- <link rel="canonical" href="https://concorde.supersoniks.org/core/components/functional/date">
11
- <link rel="alternate" type="text/markdown" href="https://concorde.supersoniks.org/core/components/functional/date.md">
12
- </head>
13
- <body>
14
- <header>
15
- <p><a href="/docs/index.html">Concorde documentation</a> · <a href="https://concorde.supersoniks.org/core/components/functional/date">same URL (interactive)</a> · <a href="/llms.txt">llms.txt</a></p>
16
- </header>
17
- <main>
18
- <article>
19
- <p class="doc-lead" id="doc-summary"><strong>Concorde functional component — Date</strong>. sonic-date formats a date or a date range with Intl.DateTimeFormat. Pass a Unix timestamp in seconds (date) or a parsable string (date_string), add end_date for a range, and tune each part (weekday · <span>Doc ID: <code>core/components/functional/date/date</code>. Keywords: Concorde, supersoniks, core/components/functional/date/date, date, Date, functional component, sonic-date, web component, Intl.DateTimeFormat, date_string, end_date, weekday, month, hour, now. URL: <a href="https://concorde.supersoniks.org/core/components/functional/date">https://concorde.supersoniks.org/core/components/functional/date</a>.</span></p>
20
- <h1 id="date">Date</h1>
21
- <p><strong><code>sonic-date</code></strong> formats a date or a date range with <code>Intl.DateTimeFormat</code>. Pass a Unix timestamp in seconds (<code>date</code>) or a parsable string (<code>date_string</code>), add <code>end_date</code> for a range, and tune each part (<code>weekday</code> · <code>month</code> · <code>hour</code> …) with attributes. With no date and no <code>now</code>, it renders nothing.</p>
22
- <h2 id="basic-example">Basic example</h2>
23
- <p><code>date</code> is in <strong>seconds</strong>, not milliseconds. <code>date_string</code> accepts anything <code>new Date()</code> parses: prefer ISO 8601 with an explicit offset. <code>now</code> shows the current date.</p>
24
- <pre><code class="language-en">&lt;div class=&quot;grid gap-2&quot;&gt;
25
- &lt;div&gt;Departure: &lt;sonic-date date=&quot;1781514000&quot; language=&quot;en&quot;&gt;&lt;/sonic-date&gt;&lt;/div&gt;
26
- &lt;div&gt;Arrival: &lt;sonic-date date_string=&quot;2026-06-15T12:45:00Z&quot; language=&quot;en&quot;&gt;&lt;/sonic-date&gt;&lt;/div&gt;
27
- &lt;div&gt;Now: &lt;sonic-date now language=&quot;en&quot;&gt;&lt;/sonic-date&gt;&lt;/div&gt;
28
- &lt;/div&gt;
29
- </code></pre>
30
- <h2 id="date-range">Date range</h2>
31
- <p>Set <code>start_date</code> and <code>end_date</code> (or their <code>_string</code> variants). On two different days, only the dates are shown, with the &quot;from … to …&quot; wording. On the same day, the hours are kept. <code>hide_hours</code> drops them anyway.</p>
32
- <p>Without a start, the range starts now. If the end is before the start, the two are swapped.</p>
33
- <pre><code class="language-en">&lt;div class=&quot;grid gap-2&quot;&gt;
34
- &lt;sonic-date start_date_string=&quot;2026-06-15T09:00:00Z&quot; end_date_string=&quot;2026-06-22T18:00:00Z&quot; language=&quot;en&quot; wording_billet_periode_validite=&quot;From %s to %s&quot;&gt;&lt;/sonic-date&gt;
35
- &lt;sonic-date start_date_string=&quot;2026-06-15T09:00:00Z&quot; end_date_string=&quot;2026-06-15T12:45:00Z&quot; language=&quot;en&quot;&gt;&lt;/sonic-date&gt;
36
- &lt;sonic-date start_date_string=&quot;2026-06-15T09:00:00Z&quot; end_date_string=&quot;2026-06-15T12:45:00Z&quot; language=&quot;en&quot; hide_hours&gt;&lt;/sonic-date&gt;
37
- &lt;/div&gt;
38
- </code></pre>
39
- <h2 id="range-wording">Range wording</h2>
40
- <p><code>wording_billet_periode_validite</code> holds the range wording, with one <code>%s</code> per date. It defaults to the French <code>Du %s au %s</code>, whatever the language: <strong>set it for every non-French page</strong>.</p>
41
- <pre><code class="language-en">&lt;sonic-date start_date_string=&quot;2026-06-15&quot; end_date_string=&quot;2026-06-22&quot; language=&quot;en&quot; wording_billet_periode_validite=&quot;Valid from %s until %s&quot;&gt;&lt;/sonic-date&gt;
42
- </code></pre>
43
- <h2 id="format-options">Format options</h2>
44
- <p>Defaults: <code>weekday=&quot;short&quot;</code> · <code>day=&quot;2-digit&quot;</code> · <code>month=&quot;short&quot;</code> · <code>year=&quot;numeric&quot;</code> · <code>hour=&quot;2-digit&quot;</code> · <code>minute=&quot;2-digit&quot;</code>, 24-hour clock, no era. <code>hidden</code> removes a part.</p>
45
- <pre><code class="language-en">&lt;div class=&quot;grid grid-cols-[auto_1fr] gap-x-4 gap-y-1 text-sm&quot;&gt;
46
- &lt;code&gt;default&lt;/code&gt;&lt;sonic-date date_string=&quot;2026-06-15T09:00:00Z&quot; time_zone=&quot;Europe/Paris&quot; language=&quot;en&quot;&gt;&lt;/sonic-date&gt;
47
- &lt;code&gt;weekday=&quot;long&quot;&lt;/code&gt;&lt;sonic-date weekday=&quot;long&quot; date_string=&quot;2026-06-15T09:00:00Z&quot; time_zone=&quot;Europe/Paris&quot; language=&quot;en&quot;&gt;&lt;/sonic-date&gt;
48
- &lt;code&gt;weekday=&quot;narrow&quot;&lt;/code&gt;&lt;sonic-date weekday=&quot;narrow&quot; date_string=&quot;2026-06-15T09:00:00Z&quot; time_zone=&quot;Europe/Paris&quot; language=&quot;en&quot;&gt;&lt;/sonic-date&gt;
49
- &lt;code&gt;weekday=&quot;hidden&quot;&lt;/code&gt;&lt;sonic-date weekday=&quot;hidden&quot; date_string=&quot;2026-06-15T09:00:00Z&quot; time_zone=&quot;Europe/Paris&quot; language=&quot;en&quot;&gt;&lt;/sonic-date&gt;
50
- &lt;code&gt;day=&quot;numeric&quot;&lt;/code&gt;&lt;sonic-date day=&quot;numeric&quot; date_string=&quot;2026-06-05T09:00:00Z&quot; time_zone=&quot;Europe/Paris&quot; language=&quot;en&quot;&gt;&lt;/sonic-date&gt;
51
- &lt;code&gt;month=&quot;long&quot;&lt;/code&gt;&lt;sonic-date month=&quot;long&quot; date_string=&quot;2026-06-15T09:00:00Z&quot; time_zone=&quot;Europe/Paris&quot; language=&quot;en&quot;&gt;&lt;/sonic-date&gt;
52
- &lt;code&gt;month=&quot;narrow&quot;&lt;/code&gt;&lt;sonic-date month=&quot;narrow&quot; date_string=&quot;2026-06-15T09:00:00Z&quot; time_zone=&quot;Europe/Paris&quot; language=&quot;en&quot;&gt;&lt;/sonic-date&gt;
53
- &lt;code&gt;month=&quot;numeric&quot;&lt;/code&gt;&lt;sonic-date month=&quot;numeric&quot; date_string=&quot;2026-06-15T09:00:00Z&quot; time_zone=&quot;Europe/Paris&quot; language=&quot;en&quot;&gt;&lt;/sonic-date&gt;
54
- &lt;code&gt;month=&quot;2-digit&quot;&lt;/code&gt;&lt;sonic-date month=&quot;2-digit&quot; date_string=&quot;2026-06-15T09:00:00Z&quot; time_zone=&quot;Europe/Paris&quot; language=&quot;en&quot;&gt;&lt;/sonic-date&gt;
55
- &lt;code&gt;year=&quot;2-digit&quot;&lt;/code&gt;&lt;sonic-date year=&quot;2-digit&quot; date_string=&quot;2026-06-15T09:00:00Z&quot; time_zone=&quot;Europe/Paris&quot; language=&quot;en&quot;&gt;&lt;/sonic-date&gt;
56
- &lt;code&gt;hour=&quot;numeric&quot;&lt;/code&gt;&lt;sonic-date hour=&quot;numeric&quot; date_string=&quot;2026-06-15T07:05:00Z&quot; time_zone=&quot;Europe/Paris&quot; language=&quot;en&quot;&gt;&lt;/sonic-date&gt;
57
- &lt;code&gt;hour12&lt;/code&gt;&lt;sonic-date hour12 date_string=&quot;2026-06-15T09:00:00Z&quot; time_zone=&quot;Europe/Paris&quot; language=&quot;en&quot;&gt;&lt;/sonic-date&gt;
58
- &lt;code&gt;hour=&quot;hidden&quot; minute=&quot;hidden&quot;&lt;/code&gt;&lt;sonic-date hour=&quot;hidden&quot; minute=&quot;hidden&quot; date_string=&quot;2026-06-15T09:00:00Z&quot; time_zone=&quot;Europe/Paris&quot; language=&quot;en&quot;&gt;&lt;/sonic-date&gt;
59
- &lt;code&gt;era=&quot;short&quot;&lt;/code&gt;&lt;sonic-date era=&quot;short&quot; date_string=&quot;2026-06-15T09:00:00Z&quot; time_zone=&quot;Europe/Paris&quot; language=&quot;en&quot;&gt;&lt;/sonic-date&gt;
60
- &lt;/div&gt;
61
- </code></pre>
62
- <h2 id="language">Language</h2>
63
- <p>With no <code>language</code>, the component follows <code>&lt;html lang&gt;</code> and updates when it changes. Pass a BCP 47 tag to force one.</p>
64
- <pre><code class="language-en">&lt;div class=&quot;grid grid-cols-[auto_1fr] gap-x-4 gap-y-1 text-sm&quot;&gt;
65
- &lt;code&gt;en&lt;/code&gt;&lt;sonic-date language=&quot;en&quot; date_string=&quot;2026-06-15T09:00:00Z&quot;&gt;&lt;/sonic-date&gt;
66
- &lt;code&gt;fr&lt;/code&gt;&lt;sonic-date language=&quot;fr&quot; date_string=&quot;2026-06-15T09:00:00Z&quot;&gt;&lt;/sonic-date&gt;
67
- &lt;code&gt;ja&lt;/code&gt;&lt;sonic-date language=&quot;ja&quot; date_string=&quot;2026-06-15T09:00:00Z&quot;&gt;&lt;/sonic-date&gt;
68
- &lt;/div&gt;
69
- </code></pre>
70
- <h2 id="time-zone">Time zone</h2>
71
- <p>With no <code>time_zone</code>, dates use the browser time zone. Pass an IANA name (<code>Intl.supportedValuesOf(&quot;timeZone&quot;)</code> lists them) to show local airport time.</p>
72
- <pre><code class="language-en">&lt;div class=&quot;grid gap-2&quot;&gt;
73
- &lt;div&gt;CN 001 departs CDG at &lt;sonic-date date_string=&quot;2026-06-15T09:00:00Z&quot; time_zone=&quot;Europe/Paris&quot; weekday=&quot;hidden&quot; language=&quot;en&quot;&gt;&lt;/sonic-date&gt; (Paris)&lt;/div&gt;
74
- &lt;div&gt;and lands at JFK at &lt;sonic-date date_string=&quot;2026-06-15T12:45:00Z&quot; time_zone=&quot;America/New_York&quot; weekday=&quot;hidden&quot; language=&quot;en&quot;&gt;&lt;/sonic-date&gt; (New York)&lt;/div&gt;
75
- &lt;/div&gt;
76
- </code></pre>
77
- <h2 id="custom-parts">Custom parts</h2>
78
- <p>A child <code>&lt;template data-value=&quot;&lt;part&gt;&quot;&gt;</code> wraps a part in your own markup: <code>weekday</code> · <code>day</code> · <code>month</code> · <code>year</code> · <code>hour</code> · <code>minute</code> · <code>literal</code>, plus <code>from</code> and <code>to</code> in ranges. An empty element receives the part value; a non-empty one replaces it. <code>designMode</code> drops the leading &quot;from&quot; word and the commas, for stacked layouts. Add <code>noShadowDom</code> so page styles reach the parts.</p>
79
- <pre><code class="language-en">&lt;div class=&quot;relative max-w-sm rounded-lg overflow-hidden&quot;&gt;
80
- &lt;sonic-date
81
- designMode
82
- noShadowDom
83
- start_date_string=&quot;2026-06-15&quot;
84
- end_date_string=&quot;2026-06-22&quot;
85
- language=&quot;en&quot;
86
- wording_billet_periode_validite=&quot;From %s to %s&quot;
87
- class=&quot;absolute top-0 left-0 z-10 p-4 text-center text-sm text-white drop-shadow-lg&quot;
88
- &gt;
89
- &lt;template data-value=&quot;weekday&quot;&gt;&lt;span class=&quot;hidden&quot;&gt;&lt;/span&gt;
90
- </code></pre>
91
- <h2 id="api-reference">API reference</h2>
92
- <table>
93
- <thead>
94
- <tr>
95
- <th>Attribute</th>
96
- <th>Values</th>
97
- <th>Description</th>
98
- </tr>
99
- </thead>
100
- <tbody><tr>
101
- <td><code>date</code></td>
102
- <td>number</td>
103
- <td>Unix timestamp in seconds</td>
104
- </tr>
105
- <tr>
106
- <td><code>date_string</code></td>
107
- <td>string</td>
108
- <td>Date parsed with <code>new Date()</code>. Overrides <code>date</code></td>
109
- </tr>
110
- <tr>
111
- <td><code>start_date</code> / <code>start_date_string</code></td>
112
- <td>number / string</td>
113
- <td>Range start. Overrides <code>date</code></td>
114
- </tr>
115
- <tr>
116
- <td><code>end_date</code> / <code>end_date_string</code></td>
117
- <td>number / string</td>
118
- <td>Range end. Swapped with the start when earlier</td>
119
- </tr>
120
- <tr>
121
- <td><code>now</code></td>
122
- <td>boolean</td>
123
- <td>Uses the current date when no start is set</td>
124
- </tr>
125
- <tr>
126
- <td><code>hide_hours</code></td>
127
- <td>boolean</td>
128
- <td>Hides hours and minutes in a same-day range</td>
129
- </tr>
130
- <tr>
131
- <td><code>weekday</code></td>
132
- <td><code>narrow</code> · <code>short</code> · <code>long</code> · <code>hidden</code> (default <code>short</code>)</td>
133
- <td>Weekday format</td>
134
- </tr>
135
- <tr>
136
- <td><code>day</code></td>
137
- <td><code>numeric</code> · <code>2-digit</code> (default <code>2-digit</code>)</td>
138
- <td>Day format</td>
139
- </tr>
140
- <tr>
141
- <td><code>month</code></td>
142
- <td><code>numeric</code> · <code>2-digit</code> · <code>narrow</code> · <code>short</code> · <code>long</code> (default <code>short</code>)</td>
143
- <td>Month format</td>
144
- </tr>
145
- <tr>
146
- <td><code>year</code></td>
147
- <td><code>numeric</code> · <code>2-digit</code> (default <code>numeric</code>)</td>
148
- <td>Year format</td>
149
- </tr>
150
- <tr>
151
- <td><code>hour</code></td>
152
- <td><code>numeric</code> · <code>2-digit</code> · <code>hidden</code> (default <code>2-digit</code>)</td>
153
- <td>Hour format</td>
154
- </tr>
155
- <tr>
156
- <td><code>minute</code></td>
157
- <td><code>numeric</code> · <code>2-digit</code> · <code>hidden</code> (default <code>2-digit</code>)</td>
158
- <td>Minute format</td>
159
- </tr>
160
- <tr>
161
- <td><code>hour12</code></td>
162
- <td>boolean</td>
163
- <td>12-hour clock. Default is 24-hour</td>
164
- </tr>
165
- <tr>
166
- <td><code>era</code></td>
167
- <td><code>narrow</code> · <code>short</code> · <code>long</code></td>
168
- <td>Shows the era. Hidden by default</td>
169
- </tr>
170
- <tr>
171
- <td><code>language</code></td>
172
- <td>BCP 47 tag</td>
173
- <td>Locale. Defaults to <code>&lt;html lang&gt;</code></td>
174
- </tr>
175
- <tr>
176
- <td><code>time_zone</code></td>
177
- <td>IANA name</td>
178
- <td>Time zone. Defaults to the browser one</td>
179
- </tr>
180
- <tr>
181
- <td><code>wording_billet_periode_validite</code></td>
182
- <td>string with two <code>%s</code> (default <code>Du %s au %s</code>)</td>
183
- <td>Wording of a multi-day range</td>
184
- </tr>
185
- <tr>
186
- <td><code>designMode</code></td>
187
- <td>boolean</td>
188
- <td>Removes the &quot;from&quot; word and commas</td>
189
- </tr>
190
- <tr>
191
- <td><code>noShadowDom</code></td>
192
- <td>boolean</td>
193
- <td>Renders in light DOM so page styles apply to the parts</td>
194
- </tr>
195
- <tr>
196
- <td><code>templates</code></td>
197
- <td><code>HTMLTemplateElement[]</code> (property)</td>
198
- <td>Part templates, instead of child <code>&lt;template&gt;</code> elements</td>
199
- </tr>
200
- <tr>
201
- <td><code>renderIf</code></td>
202
- <td>boolean</td>
203
- <td>Deprecated: wrap the date in <a href="/core/components/functional/if">sonic-if</a> instead</td>
204
- </tr>
205
- </tbody></table>
206
- <p>No slots. Child <code>&lt;template data-value&gt;</code> elements customise the parts.</p>
207
-
208
- </article>
209
- </main>
210
- </body>
211
- </html>
@@ -1,150 +0,0 @@
1
- # Date
2
-
3
- **`sonic-date`** formats a date or a date range with `Intl.DateTimeFormat`. Pass a Unix timestamp in seconds (`date`) or a parsable string (`date_string`), add `end_date` for a range, and tune each part (`weekday` · `month` · `hour` …) with attributes. With no date and no `now`, it renders nothing.
4
-
5
- ## Basic example
6
-
7
- `date` is in **seconds**, not milliseconds. `date_string` accepts anything `new Date()` parses: prefer ISO 8601 with an explicit offset. `now` shows the current date.
8
-
9
- <sonic-code>
10
- <template>
11
- <div class="grid gap-2">
12
- <div>Departure: <sonic-date date="1781514000" language="en"></sonic-date></div>
13
- <div>Arrival: <sonic-date date_string="2026-06-15T12:45:00Z" language="en"></sonic-date></div>
14
- <div>Now: <sonic-date now language="en"></sonic-date></div>
15
- </div>
16
- </template>
17
- </sonic-code>
18
-
19
- ## Date range
20
-
21
- Set `start_date` and `end_date` (or their `_string` variants). On two different days, only the dates are shown, with the "from … to …" wording. On the same day, the hours are kept. `hide_hours` drops them anyway.
22
-
23
- Without a start, the range starts now. If the end is before the start, the two are swapped.
24
-
25
- <sonic-code>
26
- <template>
27
- <div class="grid gap-2">
28
- <sonic-date start_date_string="2026-06-15T09:00:00Z" end_date_string="2026-06-22T18:00:00Z" language="en" wording_billet_periode_validite="From %s to %s"></sonic-date>
29
- <sonic-date start_date_string="2026-06-15T09:00:00Z" end_date_string="2026-06-15T12:45:00Z" language="en"></sonic-date>
30
- <sonic-date start_date_string="2026-06-15T09:00:00Z" end_date_string="2026-06-15T12:45:00Z" language="en" hide_hours></sonic-date>
31
- </div>
32
- </template>
33
- </sonic-code>
34
-
35
- ## Range wording
36
-
37
- `wording_billet_periode_validite` holds the range wording, with one `%s` per date. It defaults to the French `Du %s au %s`, whatever the language: **set it for every non-French page**.
38
-
39
- <sonic-code>
40
- <template>
41
- <sonic-date start_date_string="2026-06-15" end_date_string="2026-06-22" language="en" wording_billet_periode_validite="Valid from %s until %s"></sonic-date>
42
- </template>
43
- </sonic-code>
44
-
45
- ## Format options
46
-
47
- Defaults: `weekday="short"` · `day="2-digit"` · `month="short"` · `year="numeric"` · `hour="2-digit"` · `minute="2-digit"`, 24-hour clock, no era. `hidden` removes a part.
48
-
49
- <sonic-code>
50
- <template>
51
- <div class="grid grid-cols-[auto_1fr] gap-x-4 gap-y-1 text-sm">
52
- <code>default</code><sonic-date date_string="2026-06-15T09:00:00Z" time_zone="Europe/Paris" language="en"></sonic-date>
53
- <code>weekday="long"</code><sonic-date weekday="long" date_string="2026-06-15T09:00:00Z" time_zone="Europe/Paris" language="en"></sonic-date>
54
- <code>weekday="narrow"</code><sonic-date weekday="narrow" date_string="2026-06-15T09:00:00Z" time_zone="Europe/Paris" language="en"></sonic-date>
55
- <code>weekday="hidden"</code><sonic-date weekday="hidden" date_string="2026-06-15T09:00:00Z" time_zone="Europe/Paris" language="en"></sonic-date>
56
- <code>day="numeric"</code><sonic-date day="numeric" date_string="2026-06-05T09:00:00Z" time_zone="Europe/Paris" language="en"></sonic-date>
57
- <code>month="long"</code><sonic-date month="long" date_string="2026-06-15T09:00:00Z" time_zone="Europe/Paris" language="en"></sonic-date>
58
- <code>month="narrow"</code><sonic-date month="narrow" date_string="2026-06-15T09:00:00Z" time_zone="Europe/Paris" language="en"></sonic-date>
59
- <code>month="numeric"</code><sonic-date month="numeric" date_string="2026-06-15T09:00:00Z" time_zone="Europe/Paris" language="en"></sonic-date>
60
- <code>month="2-digit"</code><sonic-date month="2-digit" date_string="2026-06-15T09:00:00Z" time_zone="Europe/Paris" language="en"></sonic-date>
61
- <code>year="2-digit"</code><sonic-date year="2-digit" date_string="2026-06-15T09:00:00Z" time_zone="Europe/Paris" language="en"></sonic-date>
62
- <code>hour="numeric"</code><sonic-date hour="numeric" date_string="2026-06-15T07:05:00Z" time_zone="Europe/Paris" language="en"></sonic-date>
63
- <code>hour12</code><sonic-date hour12 date_string="2026-06-15T09:00:00Z" time_zone="Europe/Paris" language="en"></sonic-date>
64
- <code>hour="hidden" minute="hidden"</code><sonic-date hour="hidden" minute="hidden" date_string="2026-06-15T09:00:00Z" time_zone="Europe/Paris" language="en"></sonic-date>
65
- <code>era="short"</code><sonic-date era="short" date_string="2026-06-15T09:00:00Z" time_zone="Europe/Paris" language="en"></sonic-date>
66
- </div>
67
- </template>
68
- </sonic-code>
69
-
70
- ## Language
71
-
72
- With no `language`, the component follows `<html lang>` and updates when it changes. Pass a BCP 47 tag to force one.
73
-
74
- <sonic-code>
75
- <template>
76
- <div class="grid grid-cols-[auto_1fr] gap-x-4 gap-y-1 text-sm">
77
- <code>en</code><sonic-date language="en" date_string="2026-06-15T09:00:00Z"></sonic-date>
78
- <code>fr</code><sonic-date language="fr" date_string="2026-06-15T09:00:00Z"></sonic-date>
79
- <code>ja</code><sonic-date language="ja" date_string="2026-06-15T09:00:00Z"></sonic-date>
80
- </div>
81
- </template>
82
- </sonic-code>
83
-
84
- ## Time zone
85
-
86
- With no `time_zone`, dates use the browser time zone. Pass an IANA name (`Intl.supportedValuesOf("timeZone")` lists them) to show local airport time.
87
-
88
- <sonic-code>
89
- <template>
90
- <div class="grid gap-2">
91
- <div>CN 001 departs CDG at <sonic-date date_string="2026-06-15T09:00:00Z" time_zone="Europe/Paris" weekday="hidden" language="en"></sonic-date> (Paris)</div>
92
- <div>and lands at JFK at <sonic-date date_string="2026-06-15T12:45:00Z" time_zone="America/New_York" weekday="hidden" language="en"></sonic-date> (New York)</div>
93
- </div>
94
- </template>
95
- </sonic-code>
96
-
97
- ## Custom parts
98
-
99
- A child `<template data-value="<part>">` wraps a part in your own markup: `weekday` · `day` · `month` · `year` · `hour` · `minute` · `literal`, plus `from` and `to` in ranges. An empty element receives the part value; a non-empty one replaces it. `designMode` drops the leading "from" word and the commas, for stacked layouts. Add `noShadowDom` so page styles reach the parts.
100
-
101
- <sonic-code>
102
- <template>
103
- <div class="relative max-w-sm rounded-lg overflow-hidden">
104
- <sonic-date
105
- designMode
106
- noShadowDom
107
- start_date_string="2026-06-15"
108
- end_date_string="2026-06-22"
109
- language="en"
110
- wording_billet_periode_validite="From %s to %s"
111
- class="absolute top-0 left-0 z-10 p-4 text-center text-sm text-white drop-shadow-lg"
112
- >
113
- <template data-value="weekday"><span class="hidden"></span></template>
114
- <template data-value="day"><span class="block text-4xl font-bold leading-none"></span></template>
115
- <template data-value="month"><span class="block text-xl font-bold uppercase leading-tight"></span></template>
116
- <template data-value="year"><span class="block text-lg font-bold leading-tight"></span></template>
117
- <template data-value="to"><span class="block my-1 text-3xl leading-none">↓</span></template>
118
- </sonic-date>
119
- <sonic-image src="img/concorde/plane_03.jpg" alt="Concorde specifications board" ratio="1/1" cover></sonic-image>
120
- </div>
121
- </template>
122
- </sonic-code>
123
-
124
- ## API reference
125
-
126
- | Attribute | Values | Description |
127
- |-----------|--------|-------------|
128
- | `date` | number | Unix timestamp in seconds |
129
- | `date_string` | string | Date parsed with `new Date()`. Overrides `date` |
130
- | `start_date` / `start_date_string` | number / string | Range start. Overrides `date` |
131
- | `end_date` / `end_date_string` | number / string | Range end. Swapped with the start when earlier |
132
- | `now` | boolean | Uses the current date when no start is set |
133
- | `hide_hours` | boolean | Hides hours and minutes in a same-day range |
134
- | `weekday` | `narrow` · `short` · `long` · `hidden` (default `short`) | Weekday format |
135
- | `day` | `numeric` · `2-digit` (default `2-digit`) | Day format |
136
- | `month` | `numeric` · `2-digit` · `narrow` · `short` · `long` (default `short`) | Month format |
137
- | `year` | `numeric` · `2-digit` (default `numeric`) | Year format |
138
- | `hour` | `numeric` · `2-digit` · `hidden` (default `2-digit`) | Hour format |
139
- | `minute` | `numeric` · `2-digit` · `hidden` (default `2-digit`) | Minute format |
140
- | `hour12` | boolean | 12-hour clock. Default is 24-hour |
141
- | `era` | `narrow` · `short` · `long` | Shows the era. Hidden by default |
142
- | `language` | BCP 47 tag | Locale. Defaults to `<html lang>` |
143
- | `time_zone` | IANA name | Time zone. Defaults to the browser one |
144
- | `wording_billet_periode_validite` | string with two `%s` (default `Du %s au %s`) | Wording of a multi-day range |
145
- | `designMode` | boolean | Removes the "from" word and commas |
146
- | `noShadowDom` | boolean | Renders in light DOM so page styles apply to the parts |
147
- | `templates` | `HTMLTemplateElement[]` (property) | Part templates, instead of child `<template>` elements |
148
- | `renderIf` | boolean | Deprecated: wrap the date in [sonic-if](/core/components/functional/if) instead |
149
-
150
- No slots. Child `<template data-value>` elements customise the parts.