@supersoniks/concorde 5.1.0 → 5.1.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 (312) hide show
  1. package/.claude/launch.json +15 -0
  2. package/.claude/vite.http.config.mjs +7 -0
  3. package/.taste-skill/after/desktop-fold.jpg +0 -0
  4. package/.taste-skill/after/desktop-page-01.jpg +0 -0
  5. package/.taste-skill/after/desktop-page-02.jpg +0 -0
  6. package/.taste-skill/after/desktop-page-03.jpg +0 -0
  7. package/.taste-skill/after/mobile-fold.jpg +0 -0
  8. package/.taste-skill/after/mobile-page-01.jpg +0 -0
  9. package/.taste-skill/after/report.json +4103 -0
  10. package/.taste-skill/after/tablet-fold.jpg +0 -0
  11. package/.taste-skill/after/tablet-page-01.jpg +0 -0
  12. package/.taste-skill/after/tablet-page-02.jpg +0 -0
  13. package/.taste-skill/before/desktop-fold.jpg +0 -0
  14. package/.taste-skill/before/desktop-page-01.jpg +0 -0
  15. package/.taste-skill/before/desktop-page-02.jpg +0 -0
  16. package/.taste-skill/before/mobile-fold.jpg +0 -0
  17. package/.taste-skill/before/mobile-page-01.jpg +0 -0
  18. package/.taste-skill/before/report.json +2556 -0
  19. package/.taste-skill/before/tablet-fold.jpg +0 -0
  20. package/.taste-skill/before/tablet-page-01.jpg +0 -0
  21. package/.taste-skill/direction.json +510 -0
  22. package/.taste-skill/notes.md +84 -0
  23. package/.taste-skill/prod/desktop-fold.jpg +0 -0
  24. package/.taste-skill/prod/desktop-page-01.jpg +0 -0
  25. package/.taste-skill/prod/desktop-page-02.jpg +0 -0
  26. package/.taste-skill/prod/desktop-page-03.jpg +0 -0
  27. package/.taste-skill/prod/mobile-fold.jpg +0 -0
  28. package/.taste-skill/prod/mobile-page-01.jpg +0 -0
  29. package/.taste-skill/prod/mobile-page-02.jpg +0 -0
  30. package/.taste-skill/prod/report.json +1973 -0
  31. package/.taste-skill/prod/tablet-fold.jpg +0 -0
  32. package/.taste-skill/prod/tablet-page-01.jpg +0 -0
  33. package/.taste-skill/prod/tablet-page-02.jpg +0 -0
  34. package/.tmp-cem/custom-elements.json +1939 -1939
  35. package/AUDIT.md +228 -0
  36. package/PLAN-AMELIORATION.md +220 -0
  37. package/build-infos.json +1 -1
  38. package/concorde-core.bundle.js +16 -16
  39. package/concorde-core.es.js +235 -233
  40. package/dist/concorde-core.bundle.js +16 -16
  41. package/dist/concorde-core.es.js +235 -233
  42. package/dist/img/archive/concorde-001-2cv.webp +0 -0
  43. package/dist/img/archive/concorde-red-arrows-2002-poster.jpg +0 -0
  44. package/dist/img/archive/concorde-red-arrows-2002.webm +0 -0
  45. package/dist/img/archive/credits.json +28 -0
  46. package/docs/assets/index-Bb-_LRyY.js +12280 -0
  47. package/docs/assets/index-CD4WyL6o.css +1 -0
  48. package/docs/docs-mock-api-sw.js +2 -0
  49. package/docs/docs-mock-api-sw.js.map +2 -2
  50. package/docs/index.html +9 -7
  51. package/index.html +27 -63
  52. package/package.json +11 -4
  53. package/public/img/archive/concorde-001-2cv.webp +0 -0
  54. package/public/img/archive/concorde-red-arrows-2002-poster.jpg +0 -0
  55. package/public/img/archive/concorde-red-arrows-2002.webm +0 -0
  56. package/public/img/archive/credits.json +28 -0
  57. package/scripts/post-build-docs.js +0 -0
  58. package/scripts/post-build.mjs +0 -0
  59. package/src/core/components/functional/fetch/fetch.md +2 -2
  60. package/src/core/components/functional/if/if.md +0 -0
  61. package/src/core/components/functional/if/if.ts +0 -0
  62. package/src/core/components/functional/list/list.demo.ts +0 -0
  63. package/src/core/components/functional/list/list.md +0 -0
  64. package/src/core/components/functional/router/router.md +0 -0
  65. package/src/core/components/functional/router/router.ts +0 -0
  66. package/src/core/components/functional/sdui/SDUIDescriptorTransformer.ts +0 -0
  67. package/src/core/components/functional/sdui/component-catalog.gaps.json +1 -1
  68. package/src/core/components/functional/sdui/component-catalog.json +1 -1
  69. package/src/core/components/functional/sdui/types.ts +0 -0
  70. package/src/core/components/functional/states/states.md +0 -0
  71. package/src/core/components/functional/submit/submit.md +0 -0
  72. package/src/core/components/functional/subscriber/subscriber.ts +0 -0
  73. package/src/core/components/functional/value/value.ts +0 -0
  74. package/src/core/components/ui/_css/size.ts +0 -0
  75. package/src/core/components/ui/captcha/altchaStyles.ts +0 -0
  76. package/src/core/components/ui/form/radio/radio.md +0 -0
  77. package/src/core/components/ui/form/select/select.md +0 -0
  78. package/src/core/components/ui/form/switch/switch.md +0 -0
  79. package/src/core/components/ui/modal/modal.ts +14 -11
  80. package/src/core/mixins/Subscriber.ts +0 -0
  81. package/src/core/utils/DataBindObserver.ts +0 -0
  82. package/src/core/utils/Objects.ts +0 -0
  83. package/src/core/utils/route.ts +0 -0
  84. package/src/docs/_core-concept/subscriber.md +0 -0
  85. package/src/docs/_getting-started/components.md +5 -0
  86. package/src/docs/_getting-started/my-first-subscriber.md +0 -0
  87. package/src/docs/_getting-started/pubsub.md +0 -0
  88. package/src/docs/_getting-started/theming.md +2 -2
  89. package/src/docs/code.ts +88 -75
  90. package/src/docs/components/docs-demo-sources.ts +16 -8
  91. package/src/docs/components/docs-lit-demo.ts +19 -37
  92. package/src/docs/docs.ts +5 -0
  93. package/src/docs/example/docs-boarding-pass-demo.ts +134 -0
  94. package/src/docs/example/docs-provider-keys.ts +12 -0
  95. package/src/docs/example/users.ts +0 -0
  96. package/src/docs/header/header.ts +233 -69
  97. package/src/docs/home/catalog.ts +44 -0
  98. package/src/docs/home/home.ts +513 -0
  99. package/src/docs/home/mach-stage.ts +389 -0
  100. package/src/docs/layout.ts +3 -1
  101. package/src/docs/navigation/components-index.ts +56 -0
  102. package/src/docs/navigation/navigation.ts +240 -232
  103. package/src/docs/navigation/pager.ts +67 -0
  104. package/src/docs/navigation/toc.ts +98 -0
  105. package/src/docs/search/docs-search.json +330 -20
  106. package/src/docs/search/markdown-renderer.ts +11 -3
  107. package/src/docs/search/page.ts +0 -0
  108. package/src/docs/shiki/index.ts +109 -0
  109. package/src/docs/tailwind/css/base/scrollbar.css +22 -0
  110. package/src/docs/tailwind/css/base/theme.css +96 -0
  111. package/src/docs/tailwind/css/base/typography.css +4 -0
  112. package/src/docs/tailwind/css/docs/boarding-pass.css +65 -0
  113. package/src/docs/tailwind/css/docs/content.css +32 -0
  114. package/src/docs/tailwind/css/docs/page.css +10 -0
  115. package/src/docs/tailwind/css/docs.css +9 -0
  116. package/src/docs/tailwind/css/home/hero.css +210 -0
  117. package/src/docs/tailwind/css/home/motion.css +84 -0
  118. package/src/docs/tailwind/css/home/sections.css +416 -0
  119. package/src/docs/tailwind/css/tailwind.css +7 -185
  120. package/src/tsconfig.json +23 -2
  121. package/src/tsconfig.tsbuildinfo +1 -1
  122. package/tailwind.config.js +8 -4
  123. package/.github/workflows/ci.yml +0 -21
  124. package/.github-export-ignore +0 -30
  125. package/CONTRIBUTING.md +0 -59
  126. package/DEV.md +0 -54
  127. package/LICENSE +0 -21
  128. package/OPEN_SOURCE_CHECKPOINT.md +0 -133
  129. package/concorde-3d.bundle.js +0 -3960
  130. package/concorde-3d.es.js +0 -33433
  131. package/concorde-hugging-face-infer.bundle.js +0 -32
  132. package/concorde-hugging-face-infer.es.js +0 -2952
  133. package/concorde-interactive.bundle.js +0 -1157
  134. package/concorde-interactive.es.js +0 -10734
  135. package/concorde-shader.bundle.js +0 -116
  136. package/concorde-shader.es.js +0 -8353
  137. package/concorde-webgpu.bundle.js +0 -307
  138. package/concorde-webgpu.es.js +0 -8627
  139. package/docs/assets/index-D8MVWqY6.js +0 -12251
  140. package/docs/assets/index-DiD0qYvE.css +0 -1
  141. package/docs/crawl/core/components/functional/date/date.html +0 -190
  142. package/docs/crawl/core/components/functional/fetch/fetch.html +0 -109
  143. package/docs/crawl/core/components/functional/if/if.html +0 -27
  144. package/docs/crawl/core/components/functional/jsonata/jsonata.html +0 -79
  145. package/docs/crawl/core/components/functional/list/list.html +0 -70
  146. package/docs/crawl/core/components/functional/mix/mix.html +0 -45
  147. package/docs/crawl/core/components/functional/queue/queue.html +0 -96
  148. package/docs/crawl/core/components/functional/router/router.html +0 -106
  149. package/docs/crawl/core/components/functional/sdui/sdui.html +0 -269
  150. package/docs/crawl/core/components/functional/states/states.html +0 -66
  151. package/docs/crawl/core/components/functional/submit/submit.html +0 -160
  152. package/docs/crawl/core/components/functional/subscriber/subscriber.html +0 -67
  153. package/docs/crawl/core/components/functional/value/value.html +0 -51
  154. package/docs/crawl/core/components/ui/alert/alert.html +0 -110
  155. package/docs/crawl/core/components/ui/alert-messages/alert-messages.html +0 -23
  156. package/docs/crawl/core/components/ui/badge/badge.html +0 -119
  157. package/docs/crawl/core/components/ui/button/button.html +0 -149
  158. package/docs/crawl/core/components/ui/captcha/captcha.html +0 -30
  159. package/docs/crawl/core/components/ui/card/card.html +0 -99
  160. package/docs/crawl/core/components/ui/divider/divider.html +0 -58
  161. package/docs/crawl/core/components/ui/form/checkbox/checkbox.html +0 -73
  162. package/docs/crawl/core/components/ui/form/fieldset/fieldset.html +0 -135
  163. package/docs/crawl/core/components/ui/form/form-actions/form-actions.html +0 -79
  164. package/docs/crawl/core/components/ui/form/form-layout/form-layout.html +0 -62
  165. package/docs/crawl/core/components/ui/form/input/input.html +0 -109
  166. package/docs/crawl/core/components/ui/form/input-autocomplete/input-autocomplete.html +0 -38
  167. package/docs/crawl/core/components/ui/form/radio/radio.html +0 -56
  168. package/docs/crawl/core/components/ui/form/select/select.html +0 -73
  169. package/docs/crawl/core/components/ui/form/switch/switch.html +0 -56
  170. package/docs/crawl/core/components/ui/form/textarea/textarea.html +0 -59
  171. package/docs/crawl/core/components/ui/group/group.html +0 -82
  172. package/docs/crawl/core/components/ui/icon/icon.html +0 -133
  173. package/docs/crawl/core/components/ui/image/image.html +0 -110
  174. package/docs/crawl/core/components/ui/link/link.html +0 -42
  175. package/docs/crawl/core/components/ui/loader/loader.html +0 -50
  176. package/docs/crawl/core/components/ui/menu/menu.html +0 -322
  177. package/docs/crawl/core/components/ui/modal/modal.html +0 -117
  178. package/docs/crawl/core/components/ui/pop/pop.html +0 -102
  179. package/docs/crawl/core/components/ui/progress/progress.html +0 -58
  180. package/docs/crawl/core/components/ui/table/table.html +0 -413
  181. package/docs/crawl/core/components/ui/toast/toast.html +0 -122
  182. package/docs/crawl/core/components/ui/tooltip/tooltip.html +0 -79
  183. package/docs/crawl/docs/_core-concept/dataFlow.html +0 -177
  184. package/docs/crawl/docs/_core-concept/overview.html +0 -66
  185. package/docs/crawl/docs/_core-concept/subscriber.html +0 -75
  186. package/docs/crawl/docs/_decorators/ancestor-attribute.html +0 -116
  187. package/docs/crawl/docs/_decorators/auto-subscribe.html +0 -202
  188. package/docs/crawl/docs/_decorators/bind.html +0 -141
  189. package/docs/crawl/docs/_decorators/get.html +0 -149
  190. package/docs/crawl/docs/_decorators/handle.html +0 -165
  191. package/docs/crawl/docs/_decorators/on-assign.html +0 -355
  192. package/docs/crawl/docs/_decorators/patch.html +0 -78
  193. package/docs/crawl/docs/_decorators/post.html +0 -139
  194. package/docs/crawl/docs/_decorators/publish.html +0 -61
  195. package/docs/crawl/docs/_decorators/put.html +0 -78
  196. package/docs/crawl/docs/_decorators/subscribe.html +0 -109
  197. package/docs/crawl/docs/_decorators/wait-for-ancestors.html +0 -137
  198. package/docs/crawl/docs/_directives/sub.html +0 -93
  199. package/docs/crawl/docs/_getting-started/ai-agents.html +0 -173
  200. package/docs/crawl/docs/_getting-started/concorde-manual-install.html +0 -100
  201. package/docs/crawl/docs/_getting-started/concorde-outside.html +0 -58
  202. package/docs/crawl/docs/_getting-started/create-a-component.html +0 -111
  203. package/docs/crawl/docs/_getting-started/my-first-component.html +0 -189
  204. package/docs/crawl/docs/_getting-started/my-first-subscriber.html +0 -110
  205. package/docs/crawl/docs/_getting-started/pubsub.html +0 -62
  206. package/docs/crawl/docs/_getting-started/start.html +0 -76
  207. package/docs/crawl/docs/_getting-started/theming.html +0 -85
  208. package/docs/crawl/docs/_misc/api-configuration.html +0 -149
  209. package/docs/crawl/docs/_misc/dataProviderKey.html +0 -135
  210. package/docs/crawl/docs/_misc/docs-mock-api.html +0 -158
  211. package/docs/crawl/docs/_misc/dynamic-path.html +0 -180
  212. package/docs/crawl/docs/_misc/endpoint.html +0 -50
  213. package/docs/crawl/docs/_misc/formelement-subscriber-removal.html +0 -138
  214. package/docs/crawl/docs/_misc/html-integration.html +0 -48
  215. package/docs/crawl/hubs/decorators.html +0 -547
  216. package/docs/crawl/hubs/form-components.html +0 -359
  217. package/docs/crawl/hubs/remote-data.html +0 -452
  218. package/docs/crawl/index.html +0 -101
  219. package/docs/llms-full.txt +0 -5761
  220. package/docs/llms.txt +0 -104
  221. package/docs/sitemap.xml +0 -237
  222. package/docs/src/core/components/functional/date/date.md +0 -290
  223. package/docs/src/core/components/functional/fetch/fetch.md +0 -125
  224. package/docs/src/core/components/functional/if/if.md +0 -9
  225. package/docs/src/core/components/functional/jsonata/jsonata.md +0 -56
  226. package/docs/src/core/components/functional/list/list.md +0 -65
  227. package/docs/src/core/components/functional/mix/mix.md +0 -41
  228. package/docs/src/core/components/functional/queue/queue.md +0 -72
  229. package/docs/src/core/components/functional/router/router.md +0 -94
  230. package/docs/src/core/components/functional/sdui/default-library.json +0 -108
  231. package/docs/src/core/components/functional/sdui/example.json +0 -99
  232. package/docs/src/core/components/functional/sdui/sdui.md +0 -356
  233. package/docs/src/core/components/functional/states/states.md +0 -87
  234. package/docs/src/core/components/functional/submit/submit.md +0 -114
  235. package/docs/src/core/components/functional/subscriber/subscriber.md +0 -91
  236. package/docs/src/core/components/functional/value/value.md +0 -35
  237. package/docs/src/core/components/ui/alert/alert.md +0 -121
  238. package/docs/src/core/components/ui/alert-messages/alert-messages.md +0 -0
  239. package/docs/src/core/components/ui/badge/badge.md +0 -127
  240. package/docs/src/core/components/ui/button/button.md +0 -182
  241. package/docs/src/core/components/ui/captcha/captcha.md +0 -12
  242. package/docs/src/core/components/ui/card/card.md +0 -97
  243. package/docs/src/core/components/ui/divider/divider.md +0 -35
  244. package/docs/src/core/components/ui/form/checkbox/checkbox.md +0 -77
  245. package/docs/src/core/components/ui/form/fieldset/fieldset.md +0 -129
  246. package/docs/src/core/components/ui/form/form-actions/form-actions.md +0 -77
  247. package/docs/src/core/components/ui/form/form-layout/form-layout.md +0 -44
  248. package/docs/src/core/components/ui/form/input/input.md +0 -142
  249. package/docs/src/core/components/ui/form/input-autocomplete/input-autocomplete.md +0 -29
  250. package/docs/src/core/components/ui/form/radio/radio.md +0 -57
  251. package/docs/src/core/components/ui/form/select/select.md +0 -71
  252. package/docs/src/core/components/ui/form/switch/switch.md +0 -57
  253. package/docs/src/core/components/ui/form/textarea/textarea.md +0 -65
  254. package/docs/src/core/components/ui/group/group.md +0 -75
  255. package/docs/src/core/components/ui/icon/icon.md +0 -125
  256. package/docs/src/core/components/ui/icon/icons.json +0 -1
  257. package/docs/src/core/components/ui/image/image.md +0 -107
  258. package/docs/src/core/components/ui/link/link.md +0 -43
  259. package/docs/src/core/components/ui/loader/loader.md +0 -55
  260. package/docs/src/core/components/ui/menu/menu.md +0 -329
  261. package/docs/src/core/components/ui/modal/modal.md +0 -119
  262. package/docs/src/core/components/ui/pop/pop.md +0 -96
  263. package/docs/src/core/components/ui/progress/progress.md +0 -63
  264. package/docs/src/core/components/ui/table/table.md +0 -455
  265. package/docs/src/core/components/ui/toast/toast.md +0 -166
  266. package/docs/src/core/components/ui/tooltip/tooltip.md +0 -82
  267. package/docs/src/docs/_core-concept/dataFlow.md +0 -88
  268. package/docs/src/docs/_core-concept/overview.md +0 -57
  269. package/docs/src/docs/_core-concept/subscriber.md +0 -75
  270. package/docs/src/docs/_decorators/ancestor-attribute.md +0 -127
  271. package/docs/src/docs/_decorators/auto-subscribe.md +0 -202
  272. package/docs/src/docs/_decorators/bind.md +0 -167
  273. package/docs/src/docs/_decorators/get.md +0 -162
  274. package/docs/src/docs/_decorators/handle.md +0 -175
  275. package/docs/src/docs/_decorators/on-assign.md +0 -390
  276. package/docs/src/docs/_decorators/patch.md +0 -70
  277. package/docs/src/docs/_decorators/post.md +0 -146
  278. package/docs/src/docs/_decorators/publish.md +0 -55
  279. package/docs/src/docs/_decorators/put.md +0 -70
  280. package/docs/src/docs/_decorators/subscribe.md +0 -100
  281. package/docs/src/docs/_decorators/wait-for-ancestors.md +0 -163
  282. package/docs/src/docs/_directives/sub.md +0 -91
  283. package/docs/src/docs/_getting-started/ai-agents.md +0 -76
  284. package/docs/src/docs/_getting-started/concorde-manual-install.md +0 -133
  285. package/docs/src/docs/_getting-started/concorde-outside.md +0 -33
  286. package/docs/src/docs/_getting-started/create-a-component.md +0 -139
  287. package/docs/src/docs/_getting-started/my-first-component.md +0 -236
  288. package/docs/src/docs/_getting-started/my-first-subscriber.md +0 -120
  289. package/docs/src/docs/_getting-started/pubsub.md +0 -37
  290. package/docs/src/docs/_getting-started/start.md +0 -47
  291. package/docs/src/docs/_getting-started/theming.md +0 -91
  292. package/docs/src/docs/_misc/api-configuration.md +0 -81
  293. package/docs/src/docs/_misc/dataProviderKey.md +0 -168
  294. package/docs/src/docs/_misc/docs-mock-api.md +0 -63
  295. package/docs/src/docs/_misc/dynamic-path.md +0 -71
  296. package/docs/src/docs/_misc/endpoint.md +0 -45
  297. package/docs/src/docs/_misc/formelement-subscriber-removal.md +0 -115
  298. package/docs/src/docs/_misc/html-integration.md +0 -15
  299. package/docs/src/docs/search/docs-search.json +0 -9507
  300. package/docs/src/tag-list.json +0 -1
  301. package/docs/src/tsconfig-model.json +0 -23
  302. package/docs/src/tsconfig.declarations.json +0 -22
  303. package/docs/src/tsconfig.emit.json +0 -23
  304. package/docs/src/tsconfig.json +0 -1182
  305. package/gitlab/job_github_mirror.sh +0 -39
  306. package/scripts/github-export.mjs +0 -150
  307. package/src/css.d.ts +0 -19
  308. package/src/docs/prism/index.ts +0 -6
  309. package/src/docs/prism/prism.css +0 -158
  310. package/src/docs/prism/prism.js +0 -1022
  311. package/src/tsconfig.declarations.json +0 -22
  312. package/src/tsconfig.emit.json +0 -23
@@ -0,0 +1,96 @@
1
+ /* Concorde theme tokens for the docs (light / dark), switched by <sonic-docs-header> */
2
+ /*
3
+ * Retro technical-manual look (IBM / Braun): one grotesk, stone paper, black ink,
4
+ * Braun signal orange reserved for the one action and the hero stage.
5
+ */
6
+ :root {
7
+ --sc-headings-font-family: "Schibsted Grotesk", system-ui, sans-serif;
8
+ --sc-font-family-base: "Schibsted Grotesk", system-ui, sans-serif;
9
+ --sc-headings-font-weight: 800;
10
+ --sc-rounded: 0;
11
+ --sc-border-width: 2px;
12
+ /* 70s instrument palette: signal orange for the action, racing green and red for the rest */
13
+ --docs-signal: #ff6b1f;
14
+ --docs-signal-ink: #1b1a17;
15
+ --docs-green: #2f6b4f;
16
+ --docs-green-deep: #24503c;
17
+ --docs-green-ink: #1f4a36;
18
+ --docs-red: #d42a2f;
19
+ --docs-night: #1b1a17;
20
+ --docs-night-ink: #ece6da;
21
+ }
22
+ /* <sonic-theme> derives radii on its own host: square them there too */
23
+ sonic-theme {
24
+ --sc-rounded: 0;
25
+ --sc-btn-rounded: 0;
26
+ --sc-input-rounded: 0;
27
+ }
28
+
29
+ /*duotone*/
30
+ /* :root{
31
+ --sc-base: yellow;
32
+ --sc-base-content: red;
33
+ --sc-primary: blue;
34
+ --sc-primary-content: white;
35
+ } */
36
+
37
+ [data-concorde-theme="light"] {
38
+ --sc-base: #e6e0d4;
39
+ --sc-base-content: #1b1a17;
40
+ --sc-primary: #1b1a17;
41
+ --sc-primary-content: #e6e0d4;
42
+ --sc-base-50: #ddd6c8;
43
+ --sc-base-100: #d3cbbb;
44
+ --sc-base-200: #bdb4a2;
45
+ --sc-base-300: #a59c8a;
46
+ --sc-base-400: #877f6f;
47
+ --sc-base-500: #6c6558;
48
+ --sc-base-600: #524c42;
49
+ --sc-base-700: #39352e;
50
+ --sc-base-800: #26231f;
51
+ --sc-base-900: #1b1a17;
52
+ --sc-info: #1f5fd1;
53
+ --sc-info-content: #ffffff;
54
+ --sc-success: #2f6b4f;
55
+ --sc-success-content: #ffffff;
56
+ --sc-warning: #ff6b1f;
57
+ --sc-warning-content: #1b1a17;
58
+ --sc-danger: #d42a2f;
59
+ --sc-danger-content: #ffffff;
60
+ }
61
+
62
+ [data-concorde-theme="dark"] {
63
+ --sc-base: #161513;
64
+ --sc-base-content: #ece6da;
65
+ --sc-primary: #ece6da;
66
+ --sc-primary-content: #161513;
67
+ --sc-base-50: #1e1d1a;
68
+ --sc-base-100: #272522;
69
+ --sc-base-200: #38352f;
70
+ --sc-base-300: #4b4740;
71
+ --sc-base-400: #69645a;
72
+ --sc-base-500: #857f74;
73
+ --sc-base-600: #a8a196;
74
+ --sc-base-700: #c7c0b4;
75
+ --sc-base-800: #ddd6ca;
76
+ --sc-base-900: #ece6da;
77
+ --sc-info: #5b8ff0;
78
+ --sc-info-content: #161513;
79
+ --sc-success: #4f9b74;
80
+ --sc-success-content: #161513;
81
+ --sc-warning: #ff7a33;
82
+ --sc-warning-content: #161513;
83
+ --sc-danger: #ef4a4f;
84
+ --sc-danger-content: #161513;
85
+ --docs-signal: #ff7a33;
86
+ --docs-green: #4f9b74;
87
+ --docs-green-deep: #1f3f31;
88
+ --docs-green-ink: #79c39b;
89
+ --docs-red: #ef4a4f;
90
+ --docs-night: #0b0a09;
91
+ }
92
+ [data-concorde-theme="light"],
93
+ [data-concorde-theme="dark"] {
94
+ --sc-input-bg: var(--sc-base-100);
95
+ --sc-input-border-color: var(--sc-base-100);
96
+ }
@@ -0,0 +1,4 @@
1
+ /* Body copy: one grotesk everywhere (the page and every component that injects this sheet) */
2
+ p {
3
+ text-wrap: pretty;
4
+ }
@@ -0,0 +1,65 @@
1
+ /* <docs-boarding-pass-demo>, rendered in light DOM (home hero and docs demos) */
2
+ .bp-route {
3
+ position: relative;
4
+ height: 2rem;
5
+ border-bottom: 2px dashed currentColor;
6
+ opacity: 0.8;
7
+ }
8
+ .bp-fly {
9
+ position: absolute;
10
+ /* centred on the 2px dashed border, whatever the icon size */
11
+ top: calc(100% + 1px);
12
+ transform: translateY(-50%);
13
+ left: 0;
14
+ animation: bp-fly 3.2s cubic-bezier(0.45, 0, 0.25, 1) infinite;
15
+ }
16
+ /* taxi, climb, cruise, descend, land — then loop */
17
+ @keyframes bp-fly {
18
+ 0% {
19
+ left: 0;
20
+ translate: 0 0;
21
+ opacity: 0;
22
+ }
23
+ 10% {
24
+ opacity: 1;
25
+ }
26
+ 30% {
27
+ translate: 0 -1rem;
28
+ }
29
+ 70% {
30
+ translate: 0 -1rem;
31
+ }
32
+ 90% {
33
+ opacity: 1;
34
+ translate: 0 0;
35
+ }
36
+ 100% {
37
+ left: calc(100% - 1.5rem);
38
+ translate: 0 0;
39
+ opacity: 0;
40
+ }
41
+ }
42
+ .bp-pop {
43
+ animation: bp-pop 0.45s cubic-bezier(0.3, 1.6, 0.5, 1);
44
+ }
45
+ @keyframes bp-pop {
46
+ from {
47
+ transform: scale(0.85);
48
+ opacity: 0;
49
+ }
50
+ }
51
+ /* the ticket's printed barcode: stripes from an SVG mask, filled with the text colour */
52
+ .bp-barcode {
53
+ background-color: currentColor;
54
+ -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")
55
+ repeat;
56
+ 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")
57
+ repeat;
58
+ -webkit-mask-size: 8px 100%;
59
+ mask-size: 8px 100%;
60
+ }
61
+
62
+ /* paint the card host with its own surface (same box), so the pass reads as one solid object */
63
+ docs-boarding-pass-demo sonic-card {
64
+ background: var(--sc-_bg);
65
+ }
@@ -0,0 +1,32 @@
1
+ /* Markdown content: inline code pills, anchors under the sticky header, mobile overflow */
2
+ .prose :where(code):not(:where(pre *)) {
3
+ box-decoration-break: clone;
4
+ white-space: nowrap;
5
+ display: inline-block;
6
+ padding: 0 0.25rem;
7
+ font-size: 0.75em;
8
+ border: none;
9
+ margin-inline: 2px;
10
+ font-weight: normal !important;
11
+ background-color: var(--sc-base-50);
12
+ -webkit-box-decoration-break: clone;
13
+ }
14
+
15
+ /* DOCS LAYOUT */
16
+ docs-markdown-renderer :is(h1, h2, h3, h4)[id] {
17
+ scroll-margin-top: 5.5rem;
18
+ }
19
+ docs-page.prose :where(img) {
20
+ max-width: 100%;
21
+ }
22
+ /* Wide demos (fixed min-width groups…) scroll instead of widening the page on phones */
23
+ @media (max-width: 639px) {
24
+ docs-page sonic-code > div {
25
+ overflow-x: auto;
26
+ }
27
+ /* tables stay 100% wide on larger screens; on phones they scroll */
28
+ docs-page.prose :where(table) {
29
+ display: block;
30
+ overflow-x: auto;
31
+ }
32
+ }
@@ -0,0 +1,10 @@
1
+ /* Document-level defaults */
2
+ html {
3
+ font-family: var(--sc-font-family-base, sans-serif);
4
+ scroll-behavior: smooth;
5
+ }
6
+
7
+ body {
8
+ background: var(--sc-base);
9
+ color: var(--sc-base-content);
10
+ }
@@ -0,0 +1,9 @@
1
+ /* Page sheet of the docs site (linked from index.html) */
2
+ @import "./tailwind.css";
3
+ @import "./base/theme.css";
4
+ @import "./docs/page.css";
5
+ @import "./docs/content.css";
6
+ @import "./docs/boarding-pass.css";
7
+ @import "./home/hero.css";
8
+ @import "./home/sections.css";
9
+ @import "./home/motion.css";
@@ -0,0 +1,210 @@
1
+ /*
2
+ * Home, set like an old technical manual (IBM / Braun): one grotesk, five sizes,
3
+ * flat fields, square corners, no rules or shadows. Signal orange = the action and the stage.
4
+ */
5
+ .docs-home {
6
+ --page-margin: 1rem;
7
+ --step-small: 0.875rem;
8
+ --step-body: clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem);
9
+ --step-lead: clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem);
10
+ --step-head: clamp(2.25rem, 1.4rem + 3.2vw, 4.25rem);
11
+ --step-display: clamp(2.5rem, 1.2rem + 5.4vw, 6.25rem);
12
+ --section-gap: clamp(6rem, 3rem + 9vw, 13rem);
13
+ --sc-rounded-lg: 0;
14
+ /* runs edge to edge so bleeding fields stay inside it; never scrolls sideways */
15
+ margin-inline: calc(-1 * var(--page-margin));
16
+ padding-inline: var(--page-margin);
17
+ overflow-x: clip;
18
+ font-family: var(--sc-font-family-base);
19
+ font-size: var(--step-body);
20
+ line-height: 1.45;
21
+ color: var(--sc-base-content);
22
+ }
23
+ @media (min-width: 640px) {
24
+ .docs-home {
25
+ --page-margin: 1.5rem;
26
+ }
27
+ }
28
+ @media (min-width: 1024px) {
29
+ .docs-home {
30
+ --page-margin: 2.5rem;
31
+ }
32
+ }
33
+ @media (min-width: 1536px) {
34
+ .docs-home {
35
+ --page-margin: 5rem;
36
+ }
37
+ }
38
+
39
+ .section-title {
40
+ margin: 0;
41
+ font-family: var(--sc-headings-font-family);
42
+ font-size: var(--step-head);
43
+ font-weight: 800;
44
+ line-height: 0.95;
45
+ letter-spacing: -0.045em;
46
+ }
47
+
48
+ .text-link {
49
+ font-weight: 600;
50
+ text-decoration: underline;
51
+ text-underline-offset: 0.25em;
52
+ text-decoration-thickness: 2px;
53
+ }
54
+
55
+ /* the one accent: Braun signal orange on the primary action */
56
+ .signal-button {
57
+ --sc-primary: var(--docs-signal);
58
+ --sc-primary-content: var(--docs-signal-ink);
59
+ }
60
+
61
+ /* HERO — headline upper left, the live fragment on an orange stage cut like a delta wing */
62
+ .hero {
63
+ position: relative;
64
+ padding-top: clamp(3rem, 8vh, 6.5rem);
65
+ }
66
+ .hero-title {
67
+ margin: 0;
68
+ font-family: var(--sc-headings-font-family);
69
+ font-size: var(--step-display);
70
+ font-weight: 800;
71
+ line-height: 0.88;
72
+ letter-spacing: -0.05em;
73
+ }
74
+ .hero-lead {
75
+ max-width: 40ch;
76
+ margin: 2.25rem 0 0;
77
+ font-size: var(--step-body);
78
+ }
79
+ .hero-actions {
80
+ display: flex;
81
+ flex-wrap: wrap;
82
+ align-items: center;
83
+ gap: 1rem 1.75rem;
84
+ margin-top: 2.25rem;
85
+ }
86
+ .hero-install {
87
+ max-width: 34rem;
88
+ margin-top: 2rem;
89
+ }
90
+ .hero-install-code {
91
+ margin: 0 !important;
92
+ }
93
+ .hero-stage {
94
+ position: relative;
95
+ height: clamp(24rem, 110vw, 34rem);
96
+ margin: 3.5rem calc(-1 * var(--page-margin)) 0;
97
+ background: var(--docs-signal);
98
+ /* a low bevel cut along the grid: eight cells in, four cells down, corner to heavy line */
99
+ --bevel-x: calc(var(--mach-cell, 1rem) * 8);
100
+ --bevel-y: calc(var(--mach-cell, 1rem) * 4);
101
+ clip-path: polygon(var(--bevel-x) 0, 100% 0, 100% 100%, 0 100%, 0 var(--bevel-y));
102
+ }
103
+ /* the Mach diagram: waves, cone and aircraft on canvas, the speed set large over the field's foot */
104
+ .hero-mach {
105
+ position: absolute;
106
+ inset: 0;
107
+ display: block;
108
+ overflow: hidden;
109
+ background: var(--docs-signal);
110
+ color: var(--docs-signal-ink);
111
+ touch-action: pan-y;
112
+ cursor: crosshair;
113
+ }
114
+ .mach-canvas {
115
+ position: absolute;
116
+ inset: 0;
117
+ width: 100%;
118
+ height: 100%;
119
+ }
120
+ .mach-readout {
121
+ position: absolute;
122
+ left: var(--page-margin);
123
+ bottom: 2.75rem;
124
+ display: flex;
125
+ align-items: baseline;
126
+ gap: 0.75rem;
127
+ margin: 0;
128
+ font-family: var(--sc-headings-font-family);
129
+ font-weight: 800;
130
+ line-height: 0.8;
131
+ letter-spacing: -0.05em;
132
+ font-variant-numeric: tabular-nums;
133
+ pointer-events: none;
134
+ }
135
+ .mach-label {
136
+ font-size: var(--step-lead);
137
+ letter-spacing: -0.02em;
138
+ }
139
+ .mach-value {
140
+ position: relative;
141
+ display: inline-grid;
142
+ font-size: clamp(4.5rem, 2rem + 12vw, 11rem);
143
+ }
144
+ /* the figure and two echoes stacked; the echoes only show at the boom */
145
+ .mach-layer {
146
+ grid-area: 1 / 1;
147
+ }
148
+ .mach-layer:first-child {
149
+ position: relative;
150
+ z-index: 1;
151
+ }
152
+ .mach-ghost-a,
153
+ .mach-ghost-b {
154
+ opacity: 0;
155
+ }
156
+ .mach-ghost-a {
157
+ color: var(--docs-red);
158
+ }
159
+ .mach-ghost-b {
160
+ color: var(--docs-signal-ink);
161
+ }
162
+ /* the tabular point is as wide as a figure; pull it in */
163
+ .mach-dot {
164
+ margin-inline: -0.12em;
165
+ }
166
+ .mach-note {
167
+ position: absolute;
168
+ left: var(--page-margin);
169
+ bottom: 1rem;
170
+ margin: 0;
171
+ font-size: var(--step-small);
172
+ font-weight: 600;
173
+ pointer-events: none;
174
+ }
175
+ @media (min-width: 1024px) {
176
+ /* two halves of the first screen: the headline on paper, the live pass on a full-height orange field */
177
+ .hero {
178
+ display: grid;
179
+ grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
180
+ min-height: max(40rem, calc(100svh - var(--docs-header-h, 4.4rem)));
181
+ padding-top: 0;
182
+ }
183
+ .hero-copy {
184
+ align-self: center;
185
+ padding: 3rem 2.5rem 3rem 0;
186
+ }
187
+ .hero-title {
188
+ font-size: clamp(2.75rem, 0.4rem + 4.3vw, 5.5rem);
189
+ }
190
+ .hero-install {
191
+ max-width: 30rem;
192
+ }
193
+ .hero-stage {
194
+ height: auto;
195
+ margin: 0 calc(-1 * var(--page-margin)) 0 0;
196
+ }
197
+ .mach-readout,
198
+ .mach-note {
199
+ left: 3rem;
200
+ }
201
+ .mach-readout {
202
+ bottom: 3.75rem;
203
+ }
204
+ .mach-note {
205
+ bottom: 2rem;
206
+ }
207
+ .mach-value {
208
+ font-size: clamp(6rem, 1rem + 9vw, 13rem);
209
+ }
210
+ }
@@ -0,0 +1,84 @@
1
+ /* Home motion: hero entrance, staggered section reveals, the settling archive photograph */
2
+ .hero-in {
3
+ animation: hero-in 0.9s cubic-bezier(0.2, 0.7, 0.2, 1) both;
4
+ animation-delay: var(--d, 0ms);
5
+ }
6
+ @keyframes hero-in {
7
+ from {
8
+ opacity: 0;
9
+ transform: translateY(1.5rem);
10
+ }
11
+ }
12
+ .hero-stage {
13
+ animation: stage-in 1.1s cubic-bezier(0.7, 0, 0.2, 1) 0.25s both;
14
+ }
15
+ @keyframes stage-in {
16
+ from {
17
+ transform: translateX(12%);
18
+ opacity: 0;
19
+ }
20
+ }
21
+
22
+ [data-reveal] {
23
+ opacity: 0;
24
+ transform: translateY(1.5rem);
25
+ transition:
26
+ opacity 0.7s ease,
27
+ transform 0.7s cubic-bezier(0.2, 0.7, 0.2, 1);
28
+ transition-delay: var(--d, 0ms);
29
+ }
30
+ [data-reveal].is-visible {
31
+ opacity: 1;
32
+ transform: none;
33
+ }
34
+
35
+ /* the 1969 photograph settles from a slight zoom as it comes in; it is never hidden */
36
+ /* the sound barrier: the figure splits into a red and a faint ink echo that swing
37
+ either side of it a few times and settle back in, eased rather than cut */
38
+ docs-mach-stage[data-boom] .mach-ghost-a {
39
+ animation: mach-split-a 0.9s ease-out both;
40
+ }
41
+ docs-mach-stage[data-boom] .mach-ghost-b {
42
+ animation: mach-split-b 0.9s ease-out both;
43
+ }
44
+ @keyframes mach-split-a {
45
+ 0% { opacity: 1; transform: translateX(-0.1em); }
46
+ 25% { opacity: 1; transform: translateX(0.07em); }
47
+ 50% { opacity: 0.9; transform: translateX(-0.05em); }
48
+ 75% { opacity: 0.6; transform: translateX(0.02em); }
49
+ 100% { opacity: 0; transform: none; }
50
+ }
51
+ @keyframes mach-split-b {
52
+ 0% { opacity: 0.4; transform: translateX(0.09em); }
53
+ 25% { opacity: 0.4; transform: translateX(-0.06em); }
54
+ 50% { opacity: 0.3; transform: translateX(0.04em); }
55
+ 75% { opacity: 0.15; transform: translateX(-0.02em); }
56
+ 100% { opacity: 0; transform: none; }
57
+ }
58
+
59
+ .settle {
60
+ overflow: hidden;
61
+ }
62
+ .settle img {
63
+ transform: scale(1.08);
64
+ transition: transform 1.8s cubic-bezier(0.2, 0.7, 0.2, 1);
65
+ }
66
+ .settle.is-visible img {
67
+ transform: none;
68
+ }
69
+
70
+ @media (prefers-reduced-motion: reduce) {
71
+ .hero-in,
72
+ .hero-stage {
73
+ animation: none !important;
74
+ }
75
+ .host-snippet {
76
+ transition: none;
77
+ }
78
+ [data-reveal],
79
+ .settle img {
80
+ opacity: 1;
81
+ transform: none;
82
+ transition: none;
83
+ }
84
+ }