@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,416 @@
1
+ /* Home sections below the hero, each with its own composition */
2
+
3
+ /* MANIFESTO — one long statement, run wide across the page */
4
+ /* a dark band glued under the hero: the orange half meets it edge to edge */
5
+ .manifesto {
6
+ margin-inline: calc(-1 * var(--page-margin));
7
+ padding: clamp(3rem, 1.5rem + 4vw, 6rem) var(--page-margin);
8
+ background: var(--docs-night);
9
+ color: var(--docs-night-ink);
10
+ }
11
+ .manifesto-text {
12
+ max-width: 64rem;
13
+ margin: 0;
14
+ font-family: var(--sc-headings-font-family);
15
+ font-size: clamp(1.2rem, 0.85rem + 1.75vw, 2.25rem);
16
+ font-weight: 600;
17
+ line-height: 1.12;
18
+ letter-spacing: -0.02em;
19
+ text-wrap: balance;
20
+ }
21
+
22
+ /* INDEX — the components as a wall of names; filters set like [x] checkboxes */
23
+ .index {
24
+ padding-top: var(--section-gap);
25
+ }
26
+ .index-head {
27
+ display: flex;
28
+ flex-wrap: wrap;
29
+ align-items: end;
30
+ justify-content: space-between;
31
+ gap: 1.5rem 2rem;
32
+ }
33
+ .index-filters {
34
+ display: flex;
35
+ flex-wrap: wrap;
36
+ gap: 0.25rem 1.5rem;
37
+ }
38
+ .index-filter {
39
+ font-weight: 600;
40
+ }
41
+ .index-filter[aria-pressed="false"] {
42
+ opacity: 0.55;
43
+ }
44
+ /* the cross is always set, only hidden, so toggling never shifts the label */
45
+ .index-filter[aria-pressed="false"] .index-filter-mark {
46
+ opacity: 0;
47
+ }
48
+ .index-wall {
49
+ margin: 3rem 0 0;
50
+ font-family: var(--sc-headings-font-family);
51
+ font-size: clamp(1.5rem, 0.8rem + 2.4vw, 3rem);
52
+ font-weight: 800;
53
+ line-height: 1.08;
54
+ letter-spacing: -0.03em;
55
+ }
56
+ /* no separators: each name is followed by a wide blank */
57
+ .wall-item {
58
+ display: inline-block;
59
+ margin-right: 0.85em;
60
+ white-space: nowrap;
61
+ }
62
+ .wall-name {
63
+ transition: color 0.2s ease;
64
+ }
65
+ .wall-name:hover,
66
+ .wall-name.is-focus {
67
+ color: var(--docs-red);
68
+ }
69
+ /* stays in view while the eye runs along the wall */
70
+ .index-caption {
71
+ position: sticky;
72
+ bottom: 0;
73
+ display: flex;
74
+ flex-wrap: wrap;
75
+ align-items: baseline;
76
+ gap: 0.5rem 1.25rem;
77
+ margin-top: 2.5rem;
78
+ padding: 1rem 0;
79
+ background: var(--sc-base);
80
+ }
81
+ .index-caption-tag {
82
+ color: var(--docs-green-ink);
83
+ font-weight: 600;
84
+ }
85
+ .index-caption-all {
86
+ margin-left: auto;
87
+ }
88
+
89
+ /* INSTRUMENTS — a fixed output on a black field, operated by the controls beside it */
90
+ .instruments {
91
+ display: grid;
92
+ grid-template-columns: minmax(0, 1fr);
93
+ margin: var(--section-gap) calc(-1 * var(--page-margin)) 0;
94
+ }
95
+ .instr-title {
96
+ padding: 0 var(--page-margin) 2rem;
97
+ }
98
+ .instr-field {
99
+ display: grid;
100
+ place-items: center;
101
+ padding: 2rem var(--page-margin);
102
+ background: var(--docs-green-deep);
103
+ }
104
+ /* graph paper on the green field, like the orange one: fine cells, every fourth line heavier */
105
+ .instr-field {
106
+ isolation: isolate;
107
+ }
108
+ .instr-field::before {
109
+ content: "";
110
+ position: absolute;
111
+ inset: 0;
112
+ z-index: -1;
113
+ background: var(--docs-night-ink);
114
+ opacity: 0.16;
115
+ -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;
116
+ 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;
117
+ pointer-events: none;
118
+ }
119
+ @media (max-width: 1023px) {
120
+ .instr-field {
121
+ position: relative;
122
+ }
123
+ }
124
+ /* the output: a retro departures board built from sonic-table, badges and a button */
125
+ .instr-output {
126
+ display: grid;
127
+ gap: 1.25rem;
128
+ width: min(34rem, 100%);
129
+ padding: 1.75rem;
130
+ background: var(--sc-base);
131
+ color: var(--sc-base-content);
132
+ font-family: var(--sc-font-family-base);
133
+ transition:
134
+ background-color 0.35s ease,
135
+ color 0.35s ease;
136
+ }
137
+ .board-head {
138
+ display: flex;
139
+ justify-content: space-between;
140
+ align-items: baseline;
141
+ gap: 1rem;
142
+ }
143
+ .board-title {
144
+ font-family: var(--sc-headings-font-family);
145
+ font-size: var(--step-lead);
146
+ font-weight: 800;
147
+ letter-spacing: -0.02em;
148
+ }
149
+ .board-airport,
150
+ .board-label,
151
+ .board-note {
152
+ font-size: var(--step-small);
153
+ }
154
+ .board-passenger {
155
+ display: grid;
156
+ gap: 0.15rem;
157
+ padding: 1rem 1.25rem;
158
+ background: var(--sc-base-100);
159
+ }
160
+ .board-name {
161
+ font-family: var(--sc-headings-font-family);
162
+ font-size: var(--step-head);
163
+ font-weight: 800;
164
+ line-height: 1;
165
+ letter-spacing: -0.04em;
166
+ overflow-wrap: anywhere;
167
+ }
168
+ .board-table {
169
+ font-variant-numeric: tabular-nums;
170
+ }
171
+ .board-mine {
172
+ background: var(--sc-base-50);
173
+ font-weight: 600;
174
+ }
175
+ @media (max-width: 639px) {
176
+ .instr-output {
177
+ padding: 1.25rem;
178
+ }
179
+ .board-name {
180
+ font-size: var(--step-lead);
181
+ }
182
+ .board-table {
183
+ font-size: var(--step-small);
184
+ }
185
+ /* time column dropped on phones: flight, destination, gate and status still fit */
186
+ .board-table sonic-tr > :first-child {
187
+ display: none;
188
+ }
189
+ }
190
+ .board-table sonic-td,
191
+ .board-table sonic-th {
192
+ white-space: nowrap;
193
+ }
194
+ .board-foot {
195
+ display: flex;
196
+ flex-wrap: wrap;
197
+ align-items: center;
198
+ justify-content: space-between;
199
+ gap: 0.75rem 1rem;
200
+ }
201
+ .instr-blocks {
202
+ padding: 1rem var(--page-margin) 0;
203
+ }
204
+ .instr-block {
205
+ display: grid;
206
+ grid-template-columns: minmax(0, 1fr);
207
+ gap: 1rem;
208
+ max-width: 34rem;
209
+ padding-block: 2rem;
210
+ }
211
+ /* segmented controls scroll sideways rather than run past the margin on phones */
212
+ .instr-block sonic-group {
213
+ display: block;
214
+ max-width: 100%;
215
+ overflow-x: auto;
216
+ }
217
+ .instr-claim {
218
+ margin: 0;
219
+ font-size: var(--step-lead);
220
+ font-weight: 800;
221
+ letter-spacing: -0.02em;
222
+ line-height: 1.1;
223
+ }
224
+ .instr-text {
225
+ margin: 0;
226
+ }
227
+ .instr-code {
228
+ margin: 0 !important;
229
+ }
230
+ .host-snippets {
231
+ display: grid;
232
+ grid-template-columns: minmax(0, 1fr);
233
+ }
234
+ .host-snippet {
235
+ grid-area: 1 / 1;
236
+ min-width: 0;
237
+ opacity: 0;
238
+ visibility: hidden;
239
+ transition:
240
+ opacity 0.3s ease,
241
+ visibility 0s 0.3s;
242
+ }
243
+ .host-snippet.is-active {
244
+ opacity: 1;
245
+ visibility: visible;
246
+ transition: opacity 0.3s ease;
247
+ }
248
+ @media (min-width: 1024px) {
249
+ .instruments {
250
+ grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
251
+ }
252
+ /* glued under the header's black bar while the controls scroll beside it */
253
+ .instr-field {
254
+ position: sticky;
255
+ top: var(--docs-header-h, 4.4rem);
256
+ grid-column: 1;
257
+ grid-row: 1 / span 2;
258
+ height: calc(100svh - var(--docs-header-h, 4.4rem));
259
+ align-self: start;
260
+ }
261
+ .instr-title {
262
+ grid-column: 2;
263
+ grid-row: 1;
264
+ padding: 4.5rem var(--page-margin) 0 clamp(2rem, 5vw, 5rem);
265
+ }
266
+ .instr-blocks {
267
+ grid-column: 2;
268
+ grid-row: 2;
269
+ padding: 0 var(--page-margin) 4.5rem clamp(2rem, 5vw, 5rem);
270
+ }
271
+ .instr-block {
272
+ padding-block: 14vh;
273
+ }
274
+ }
275
+
276
+ /* STORY — the 1969 archive photograph, then the letter */
277
+ .story {
278
+ display: grid;
279
+ gap: clamp(3rem, 6vw, 6rem);
280
+ padding-top: var(--section-gap);
281
+ }
282
+ .story-figure {
283
+ margin: 0;
284
+ }
285
+ .story-figure {
286
+ margin-inline: calc(-1 * var(--page-margin));
287
+ }
288
+ /* kept in colour: the slide's yellow 2CV and red cheatline are the point */
289
+ .story img {
290
+ display: block;
291
+ width: 100%;
292
+ object-fit: cover;
293
+ object-position: 50% 62%;
294
+ }
295
+ .story-figure img {
296
+ height: clamp(20rem, 48vw, 46rem);
297
+ }
298
+ .letter {
299
+ display: grid;
300
+ gap: 2rem;
301
+ }
302
+ .letter-body p {
303
+ max-width: 38rem;
304
+ margin: 0 0 1.1em;
305
+ line-height: 1.55;
306
+ }
307
+ .letter-body .letter-sign {
308
+ margin-top: 1.75rem;
309
+ font-size: var(--step-lead);
310
+ font-weight: 600;
311
+ }
312
+ @media (min-width: 1024px) {
313
+ .letter {
314
+ grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
315
+ gap: 4rem;
316
+ }
317
+ }
318
+
319
+ /* TAKEOFF — a plain two-column close: words and command left, the flypast right,
320
+ touching the photograph above and running off the right edge */
321
+ .takeoff {
322
+ display: grid;
323
+ grid-template-columns: minmax(0, 1fr);
324
+ }
325
+ .takeoff-copy {
326
+ padding-top: var(--section-gap);
327
+ }
328
+ .takeoff-title {
329
+ margin: 0;
330
+ font-family: var(--sc-headings-font-family);
331
+ /* sized to keep "Take your project" on one line in its 7/12 column */
332
+ font-size: clamp(2.5rem, 0.5rem + 4.3vw, 5.25rem);
333
+ font-weight: 800;
334
+ line-height: 0.88;
335
+ letter-spacing: -0.05em;
336
+ }
337
+ .takeoff-lead {
338
+ max-width: 34rem;
339
+ margin: 1.75rem 0 0;
340
+ }
341
+ .takeoff-code {
342
+ max-width: 34rem;
343
+ margin-top: 1.25rem;
344
+ }
345
+ .takeoff-command {
346
+ margin: 0 !important;
347
+ }
348
+ /* portrait footage pillarboxed in 16:9: a centred 3:4 crop, zoomed past the frame edges,
349
+ darkened into the page so the white sky becomes paper and only the aircraft remain */
350
+ .takeoff-figure {
351
+ margin: 3rem calc(-1 * var(--page-margin)) 0;
352
+ overflow: hidden;
353
+ /* blend against the page's own paper, not against a transparent ancestor */
354
+ isolation: isolate;
355
+ background: var(--sc-base);
356
+ }
357
+ .takeoff-figure video {
358
+ display: block;
359
+ width: 100%;
360
+ aspect-ratio: 3 / 4;
361
+ object-fit: cover;
362
+ transform: scale(1.18);
363
+ filter: grayscale(1) brightness(1.45) contrast(1.5);
364
+ mix-blend-mode: darken;
365
+ }
366
+ /* dark theme: the footage as it is, no filter and no blend */
367
+ [data-concorde-theme="dark"] .takeoff-figure video {
368
+ filter: none;
369
+ mix-blend-mode: normal;
370
+ }
371
+ @media (min-width: 1024px) {
372
+ .takeoff {
373
+ grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
374
+ gap: clamp(2rem, 5vw, 5rem);
375
+ align-items: start;
376
+ }
377
+ .takeoff-figure {
378
+ position: sticky;
379
+ top: var(--docs-header-h, 4.4rem);
380
+ margin: 0 calc(-1 * var(--page-margin)) 0 0;
381
+ }
382
+ }
383
+
384
+ /* FOOTER — one quiet line, then the picture credits */
385
+ .home-footer {
386
+ padding: var(--section-gap) 0 2rem;
387
+ font-size: var(--step-small);
388
+ }
389
+ .footer-line {
390
+ display: grid;
391
+ gap: 0.5rem;
392
+ }
393
+ .footer-links {
394
+ display: flex;
395
+ flex-wrap: wrap;
396
+ gap: 1.5rem;
397
+ font-weight: 600;
398
+ }
399
+ .credits {
400
+ max-width: 72rem;
401
+ margin: 2rem 0 0;
402
+ }
403
+ .credits a {
404
+ text-decoration: underline;
405
+ text-underline-offset: 0.2em;
406
+ }
407
+ @media (min-width: 768px) {
408
+ .footer-line {
409
+ grid-template-columns: 1fr auto 1fr;
410
+ align-items: baseline;
411
+ gap: 1.5rem;
412
+ }
413
+ .footer-end {
414
+ justify-self: end;
415
+ }
416
+ }
@@ -1,188 +1,10 @@
1
+ /*
2
+ * Shared sheet: the page imports it (via docs.css) and every docs component
3
+ * injects it in its own scope (`tailwind/index.ts`). Keep it to Tailwind and
4
+ * rules that make sense inside a component.
5
+ */
1
6
  @import "tailwindcss/base";
2
7
  @import "tailwindcss/components";
3
8
  @import "tailwindcss/utilities";
4
-
5
- @font-face {
6
- font-family: "ClashGrotesk-Variable";
7
- src:
8
- url("/fonts/ClashGrotesk-Variable.woff2") format("woff2"),
9
- url("/fonts/ClashGrotesk-Variable.woff") format("woff"),
10
- url("/fonts/ClashGrotesk-Variable.ttf") format("truetype");
11
- font-weight: 200 700;
12
- font-display: swap;
13
- font-style: normal;
14
- }
15
-
16
- :root {
17
- --sc-headings-font-family: "ClashGrotesk-Variable", sans-serif;
18
- --sc-font-family-base: "ClashGrotesk-Variable", sans-serif;
19
- --sc-headings-font-weight: 400;
20
- --sc-rounded: 0.5rem;
21
- --sc-border-width: max(2px, 0.18rem);
22
- }
23
-
24
- /*duotone*/
25
- /* :root{
26
- --sc-base: yellow;
27
- --sc-base-content: red;
28
- --sc-primary: blue;
29
- --sc-primary-content: white;
30
- } */
31
-
32
- [data-concorde-theme="light"] {
33
- --sc-base: #fffcf0;
34
- --sc-base-content: #111111;
35
- --sc-primary: #111111;
36
- --sc-primary-content: #fffcf0;
37
- --sc-base-50: #f4f1e6;
38
- --sc-base-100: #e9e6dc;
39
- --sc-base-200: #ceccc3;
40
- --sc-base-300: #bcbab1;
41
- --sc-base-400: #96948e;
42
- --sc-base-500: #7d7c77;
43
- --sc-base-600: #5a5956;
44
- --sc-base-700: #393937;
45
- --sc-base-800: #252524;
46
- --sc-base-900: #111111;
47
- --sc-info: #3b82f6;
48
- --sc-info-content: #ffffff;
49
- --sc-success: #10b981;
50
- --sc-success-content: #ffffff;
51
- --sc-warning: #fb923c;
52
- --sc-warning-content: #111827;
53
- --sc-danger: #dc2626;
54
- --sc-danger-content: #ffffff;
55
- }
56
-
57
- [data-concorde-theme="dark"] {
58
- --sc-base: #0a0a0a;
59
- --sc-base-content: #dadad9;
60
- --sc-primary: #ffef8a;
61
- --sc-primary-content: #111827;
62
- --sc-base-50: #141414;
63
- --sc-base-100: #1c1c1c;
64
- --sc-base-200: #2f2f2f;
65
- --sc-base-300: #3e3e3e;
66
- --sc-base-400: #5f5f5f;
67
- --sc-base-500: #767676;
68
- --sc-base-600: #9a9a9a;
69
- --sc-base-700: #c0c0bf;
70
- --sc-base-800: #dadad9;
71
- --sc-base-900: #f5f5f4;
72
- --sc-info: #3a85f7;
73
- --sc-info-content: #ffffff;
74
- --sc-success: #0fba7f;
75
- --sc-success-content: #ffffff;
76
- --sc-warning: #fc8f3b;
77
- --sc-warning-content: #111827;
78
- --sc-danger: #dd2528;
79
- --sc-danger-content: #ffffff;
80
- }
81
- [data-concorde-theme="light"],
82
- [data-concorde-theme="dark"] {
83
- --sc-input-bg: var(--sc-base-100);
84
- --sc-input-border-color: var(--sc-base-100);
85
- }
86
-
87
- html {
88
- font-family: var(--sc-font-family-base, sans-serif);
89
- }
90
-
91
- p,
92
- ul,
93
- ol {
94
- font-family: Arial, Helvetica, sans-serif;
95
- }
96
-
97
- body {
98
- background: var(--sc-base);
99
- color: var(--sc-base-content);
100
- }
101
-
102
- html {
103
- scroll-behavior: smooth;
104
- }
105
-
106
- /* HOME PAGE */
107
-
108
- .animated-text {
109
- display: block;
110
- position: relative;
111
- overflow: hidden;
112
- }
113
-
114
- .animated-text span {
115
- display: block;
116
- position: absolute;
117
- width: 100%;
118
- height: 100%;
119
- top: 0;
120
- left: 0;
121
- transform: translateY(108%);
122
- animation: slideUp 4.5s cubic-bezier(0.17, 0.67, 0.61, 1.13) infinite;
123
- }
124
-
125
- .animated-text span:nth-child(2) {
126
- animation-delay: 1.5s;
127
- }
128
-
129
- .animated-text span:nth-child(3) {
130
- animation-delay: 3s;
131
- }
132
-
133
- @keyframes slideUp {
134
- 0% {
135
- transform: translateY(108%);
136
- }
137
- 7% {
138
- transform: translateY(0);
139
- }
140
- 33% {
141
- transform: translateY(0);
142
- }
143
- 40% {
144
- transform: translateY(-108%);
145
- }
146
- 100% {
147
- transform: translateY(-108%);
148
- }
149
- }
150
-
151
- /* CUSTOM SCROLL */
152
- .custom-scroll {
153
- overflow: auto !important;
154
- }
155
-
156
- .custom-scroll:hover::-webkit-scrollbar-thumb {
157
- box-shadow: inset 0 0 2rem 2rem var(--sc-base-900);
158
- }
159
-
160
- .custom-scroll::-webkit-scrollbar {
161
- width: 0.5rem;
162
- height: 0.5rem;
163
- border: solid 0.15rem transparent;
164
- border-radius: var(--sc-rounded);
165
- background: transparent;
166
- }
167
-
168
- .custom-scroll::-webkit-scrollbar-thumb {
169
- opacity: 0;
170
- transition: box-shadow 0.2s;
171
- border: solid 0.15rem transparent;
172
- }
173
-
174
- p {
175
- text-wrap: pretty;
176
- }
177
-
178
- /* Markdown inline code in docs (shadcn-style pills; theme tokens follow light/dark) */
179
- .prose :where(code):not(:where(pre *)) {
180
- box-decoration-break: clone;
181
- white-space: nowrap;
182
- display: inline-block;
183
- padding: 0 0.25rem;
184
- font-size: 0.75em;
185
- margin-inline: 2px;
186
- font-weight: normal !important;
187
- -webkit-box-decoration-break: clone;
188
- }
9
+ @import "./base/typography.css";
10
+ @import "./base/scrollbar.css";
package/src/tsconfig.json CHANGED
@@ -1212,6 +1212,9 @@
1212
1212
  "./example/docs-api-config-demos": [
1213
1213
  "/sites/concorde/src/docs/example/docs-api-config-demos.ts"
1214
1214
  ],
1215
+ "./example/docs-boarding-pass-demo": [
1216
+ "/sites/concorde/src/docs/example/docs-boarding-pass-demo.ts"
1217
+ ],
1215
1218
  "./example/docs-input-autocomplete-demos": [
1216
1219
  "/sites/concorde/src/docs/example/docs-input-autocomplete-demos.ts"
1217
1220
  ],
@@ -1251,6 +1254,15 @@
1251
1254
  "./header/header": [
1252
1255
  "/sites/concorde/src/docs/header/header.ts"
1253
1256
  ],
1257
+ "./home/catalog": [
1258
+ "/sites/concorde/src/docs/home/catalog.ts"
1259
+ ],
1260
+ "./home/home": [
1261
+ "/sites/concorde/src/docs/home/home.ts"
1262
+ ],
1263
+ "./home/mach-stage": [
1264
+ "/sites/concorde/src/docs/home/mach-stage.ts"
1265
+ ],
1254
1266
  "./layout": [
1255
1267
  "/sites/concorde/src/docs/layout.ts"
1256
1268
  ],
@@ -1275,11 +1287,17 @@
1275
1287
  "./mock-api/urls": [
1276
1288
  "/sites/concorde/src/docs/mock-api/urls.ts"
1277
1289
  ],
1290
+ "./navigation/components-index": [
1291
+ "/sites/concorde/src/docs/navigation/components-index.ts"
1292
+ ],
1278
1293
  "./navigation/navigation": [
1279
1294
  "/sites/concorde/src/docs/navigation/navigation.ts"
1280
1295
  ],
1281
- "./prism/index": [
1282
- "/sites/concorde/src/docs/prism/index.ts"
1296
+ "./navigation/pager": [
1297
+ "/sites/concorde/src/docs/navigation/pager.ts"
1298
+ ],
1299
+ "./navigation/toc": [
1300
+ "/sites/concorde/src/docs/navigation/toc.ts"
1283
1301
  ],
1284
1302
  "./search/markdown-renderer": [
1285
1303
  "/sites/concorde/src/docs/search/markdown-renderer.ts"
@@ -1296,6 +1314,9 @@
1296
1314
  "./search/sonic-code-markdown": [
1297
1315
  "/sites/concorde/src/docs/search/sonic-code-markdown.ts"
1298
1316
  ],
1317
+ "./shiki/index": [
1318
+ "/sites/concorde/src/docs/shiki/index.ts"
1319
+ ],
1299
1320
  "./tailwind/css/tailwind.d": [
1300
1321
  "/sites/concorde/src/docs/tailwind/css/tailwind.d.ts"
1301
1322
  ],