@supersoniks/concorde 5.1.1 → 5.1.3-immutable.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (459) hide show
  1. package/.agents/skills/concorde-docs/SKILL.md +153 -0
  2. package/.agents/skills/{concorde-component-docs/template.md → concorde-docs/templates/component.md} +6 -2
  3. package/.agents/skills/concorde-docs/templates/decorator.md +43 -0
  4. package/.agents/skills/concorde-docs/templates/guide.md +25 -0
  5. package/.claude/skills +1 -0
  6. package/.github/workflows/ci.yml +21 -0
  7. package/.github-export-ignore +30 -0
  8. package/CONTRIBUTING.md +59 -0
  9. package/DEV.md +54 -0
  10. package/LICENSE +21 -0
  11. package/OPEN_SOURCE_CHECKPOINT.md +133 -0
  12. package/README.md +4 -4
  13. package/ai/README.md +29 -41
  14. package/ai/skills/concorde/SKILL.md +54 -324
  15. package/ai/skills/concorde/rules/composition.md +32 -0
  16. package/ai/skills/concorde/rules/data.md +47 -0
  17. package/ai/skills/concorde/rules/http.md +25 -0
  18. package/ai/skills/concorde/rules/lists-forms.md +35 -0
  19. package/ai/skills/concorde/rules/styling.md +46 -0
  20. package/ai/skills/concorde/rules/troubleshooting.md +45 -0
  21. package/build-infos.json +1 -1
  22. package/concorde-core.bundle.js +177 -177
  23. package/concorde-core.es.js +4993 -4833
  24. package/custom-elements-manifest.public.config.mjs +8 -0
  25. package/{.tmp-cem/custom-elements.json → custom-elements.json} +11758 -8904
  26. package/dist/concorde-core.bundle.js +177 -177
  27. package/dist/concorde-core.es.js +4993 -4833
  28. package/dist/docs-mock-api-sw.js +58 -223
  29. package/dist/docs-mock-api-sw.js.map +4 -4
  30. package/dist/img/concorde/plane_01.jpg +0 -0
  31. package/dist/img/concorde/plane_02.jpg +0 -0
  32. package/dist/img/concorde/plane_03.jpg +0 -0
  33. package/dist/img/concorde/plane_04.jpg +0 -0
  34. package/dist/img/concorde/plane_05.jpg +0 -0
  35. package/dist/img/concorde/plane_06.jpg +0 -0
  36. package/dist/img/concorde/plane_07.jpg +0 -0
  37. package/dist/img/concorde/plane_08.jpg +0 -0
  38. package/dist/img/concorde/plane_09.jpg +0 -0
  39. package/dist/img/concorde/plane_10.jpg +0 -0
  40. package/dist/img/concorde/plane_11.jpg +0 -0
  41. package/dist/img/concorde/plane_12.jpg +0 -0
  42. package/dist/img/concorde/plane_13.jpg +0 -0
  43. package/dist/img/og-concorde.jpg +0 -0
  44. package/dist/robots.txt +11 -10
  45. package/docs/assets/index-D_alEsng.js +12122 -0
  46. package/docs/crawl/core/components/functional/date/date.html +190 -0
  47. package/docs/crawl/core/components/functional/fetch/fetch.html +109 -0
  48. package/docs/crawl/core/components/functional/if/if.html +27 -0
  49. package/docs/crawl/core/components/functional/jsonata/jsonata.html +79 -0
  50. package/docs/crawl/core/components/functional/list/list.html +70 -0
  51. package/docs/crawl/core/components/functional/mix/mix.html +45 -0
  52. package/docs/crawl/core/components/functional/queue/queue.html +96 -0
  53. package/docs/crawl/core/components/functional/router/router.html +106 -0
  54. package/docs/crawl/core/components/functional/sdui/sdui-extension-points.html +126 -0
  55. package/docs/crawl/core/components/functional/sdui/sdui.html +368 -0
  56. package/docs/crawl/core/components/functional/states/states.html +66 -0
  57. package/docs/crawl/core/components/functional/submit/submit.html +160 -0
  58. package/docs/crawl/core/components/functional/subscriber/subscriber.html +67 -0
  59. package/docs/crawl/core/components/functional/value/value.html +51 -0
  60. package/docs/crawl/core/components/ui/alert/alert.html +211 -0
  61. package/docs/crawl/core/components/ui/alert-messages/alert-messages.html +131 -0
  62. package/docs/crawl/core/components/ui/badge/badge.html +197 -0
  63. package/docs/crawl/core/components/ui/button/button.html +150 -0
  64. package/docs/crawl/core/components/ui/captcha/captcha.html +112 -0
  65. package/docs/crawl/core/components/ui/card/card.html +253 -0
  66. package/docs/crawl/core/components/ui/divider/divider.html +144 -0
  67. package/docs/crawl/core/components/ui/form/checkbox/checkbox.html +73 -0
  68. package/docs/crawl/core/components/ui/form/fieldset/fieldset.html +266 -0
  69. package/docs/crawl/core/components/ui/form/form-actions/form-actions.html +122 -0
  70. package/docs/crawl/core/components/ui/form/form-layout/form-layout.html +121 -0
  71. package/docs/crawl/core/components/ui/form/input/input.html +109 -0
  72. package/docs/crawl/core/components/ui/form/input-autocomplete/input-autocomplete.html +38 -0
  73. package/docs/crawl/core/components/ui/form/radio/radio.html +56 -0
  74. package/docs/crawl/core/components/ui/form/select/select.html +73 -0
  75. package/docs/crawl/core/components/ui/form/switch/switch.html +56 -0
  76. package/docs/crawl/core/components/ui/form/textarea/textarea.html +59 -0
  77. package/docs/crawl/core/components/ui/group/group.html +104 -0
  78. package/docs/crawl/core/components/ui/icon/icon.html +222 -0
  79. package/docs/crawl/core/components/ui/image/image.html +298 -0
  80. package/docs/crawl/core/components/ui/link/link.html +100 -0
  81. package/docs/crawl/core/components/ui/loader/loader.html +124 -0
  82. package/docs/crawl/core/components/ui/menu/menu.html +394 -0
  83. package/docs/crawl/core/components/ui/modal/modal.html +342 -0
  84. package/docs/crawl/core/components/ui/pop/pop.html +296 -0
  85. package/docs/crawl/core/components/ui/progress/progress.html +131 -0
  86. package/docs/crawl/core/components/ui/table/table.html +545 -0
  87. package/docs/crawl/core/components/ui/theme/theme.html +131 -0
  88. package/docs/crawl/core/components/ui/toast/toast.html +233 -0
  89. package/docs/crawl/core/components/ui/tooltip/tooltip.html +140 -0
  90. package/docs/crawl/docs/_core-concept/dataFlow.html +177 -0
  91. package/docs/crawl/docs/_core-concept/overview.html +66 -0
  92. package/docs/crawl/docs/_core-concept/subscriber.html +75 -0
  93. package/docs/crawl/docs/_decorators/ancestor-attribute.html +117 -0
  94. package/docs/crawl/docs/_decorators/auto-subscribe.html +202 -0
  95. package/docs/crawl/docs/_decorators/bind.html +141 -0
  96. package/docs/crawl/docs/_decorators/get.html +149 -0
  97. package/docs/crawl/docs/_decorators/handle.html +165 -0
  98. package/docs/crawl/docs/_decorators/on-assign.html +355 -0
  99. package/docs/crawl/docs/_decorators/patch.html +78 -0
  100. package/docs/crawl/docs/_decorators/post.html +139 -0
  101. package/docs/crawl/docs/_decorators/publish.html +61 -0
  102. package/docs/crawl/docs/_decorators/put.html +78 -0
  103. package/docs/crawl/docs/_decorators/subscribe.html +109 -0
  104. package/docs/crawl/docs/_decorators/wait-for-ancestors.html +137 -0
  105. package/docs/crawl/docs/_directives/sub.html +93 -0
  106. package/docs/crawl/docs/_getting-started/ai-agents.html +173 -0
  107. package/docs/crawl/docs/_getting-started/concorde-manual-install.html +100 -0
  108. package/docs/crawl/docs/_getting-started/concorde-outside.html +58 -0
  109. package/docs/crawl/docs/_getting-started/create-a-component.html +111 -0
  110. package/docs/crawl/docs/_getting-started/my-first-component.html +189 -0
  111. package/docs/crawl/docs/_getting-started/my-first-subscriber.html +110 -0
  112. package/docs/crawl/docs/_getting-started/pubsub.html +62 -0
  113. package/docs/crawl/docs/_getting-started/start.html +76 -0
  114. package/docs/crawl/docs/_getting-started/theming.html +333 -0
  115. package/docs/crawl/docs/_misc/api-configuration.html +149 -0
  116. package/docs/crawl/docs/_misc/dataProviderKey.html +135 -0
  117. package/docs/crawl/docs/_misc/docs-mock-api.html +158 -0
  118. package/docs/crawl/docs/_misc/dynamic-path.html +180 -0
  119. package/docs/crawl/docs/_misc/endpoint.html +50 -0
  120. package/docs/crawl/docs/_misc/formelement-subscriber-removal.html +138 -0
  121. package/docs/crawl/docs/_misc/html-integration.html +48 -0
  122. package/docs/crawl/hubs/decorators.html +547 -0
  123. package/docs/crawl/hubs/form-components.html +381 -0
  124. package/docs/crawl/hubs/remote-data.html +452 -0
  125. package/docs/crawl/index.html +103 -0
  126. package/docs/index.html +1 -1
  127. package/docs/llms-full.txt +7174 -0
  128. package/docs/llms.txt +98 -0
  129. package/docs/sitemap.xml +243 -0
  130. package/docs/src/core/components/functional/date/date.md +290 -0
  131. package/docs/src/core/components/functional/fetch/fetch.md +125 -0
  132. package/docs/src/core/components/functional/if/if.md +9 -0
  133. package/docs/src/core/components/functional/jsonata/jsonata.md +56 -0
  134. package/docs/src/core/components/functional/list/list.md +65 -0
  135. package/docs/src/core/components/functional/mix/mix.md +41 -0
  136. package/docs/src/core/components/functional/queue/queue.md +72 -0
  137. package/docs/src/core/components/functional/router/router.md +94 -0
  138. package/docs/src/core/components/functional/sdui/component-catalog.gaps.json +511 -0
  139. package/docs/src/core/components/functional/sdui/component-catalog.json +3103 -0
  140. package/docs/src/core/components/functional/sdui/default-library.json +108 -0
  141. package/docs/src/core/components/functional/sdui/example.json +99 -0
  142. package/docs/src/core/components/functional/sdui/sdui-extension-points.md +94 -0
  143. package/docs/src/core/components/functional/sdui/sdui.md +478 -0
  144. package/docs/src/core/components/functional/states/states.md +87 -0
  145. package/docs/src/core/components/functional/submit/submit.md +114 -0
  146. package/docs/src/core/components/functional/subscriber/subscriber.md +91 -0
  147. package/docs/src/core/components/functional/value/value.md +35 -0
  148. package/docs/src/core/components/ui/alert/alert.md +196 -0
  149. package/docs/src/core/components/ui/alert-messages/alert-messages.md +85 -0
  150. package/docs/src/core/components/ui/badge/badge.md +188 -0
  151. package/docs/src/core/components/ui/button/button.md +183 -0
  152. package/docs/src/core/components/ui/captcha/captcha.md +71 -0
  153. package/docs/src/core/components/ui/card/card.md +215 -0
  154. package/docs/src/core/components/ui/divider/divider.md +129 -0
  155. package/docs/src/core/components/ui/form/checkbox/checkbox.md +77 -0
  156. package/docs/src/core/components/ui/form/fieldset/fieldset.md +205 -0
  157. package/docs/src/core/components/ui/form/form-actions/form-actions.md +100 -0
  158. package/docs/src/core/components/ui/form/form-layout/form-layout.md +119 -0
  159. package/docs/src/core/components/ui/form/input/input.md +142 -0
  160. package/docs/src/core/components/ui/form/radio/radio.md +57 -0
  161. package/docs/src/core/components/ui/form/select/select.md +71 -0
  162. package/docs/src/core/components/ui/form/switch/switch.md +57 -0
  163. package/docs/src/core/components/ui/form/textarea/textarea.md +65 -0
  164. package/docs/src/core/components/ui/group/group.md +75 -0
  165. package/docs/src/core/components/ui/icon/icon.md +214 -0
  166. package/docs/src/core/components/ui/icon/icons.json +1 -0
  167. package/docs/src/core/components/ui/image/image.md +233 -0
  168. package/docs/src/core/components/ui/link/link.md +81 -0
  169. package/docs/src/core/components/ui/loader/loader.md +112 -0
  170. package/docs/src/core/components/ui/menu/menu.md +370 -0
  171. package/docs/src/core/components/ui/modal/modal.md +235 -0
  172. package/docs/src/core/components/ui/pop/pop.md +294 -0
  173. package/docs/src/core/components/ui/progress/progress.md +109 -0
  174. package/docs/src/core/components/ui/table/table.md +431 -0
  175. package/docs/src/core/components/ui/theme/theme.md +122 -0
  176. package/docs/src/core/components/ui/toast/toast.md +216 -0
  177. package/docs/src/core/components/ui/tooltip/tooltip.md +124 -0
  178. package/{src → docs/src}/docs/_core-concept/subscriber.md +0 -0
  179. package/{src → docs/src}/docs/_getting-started/my-first-subscriber.md +0 -0
  180. package/{src → docs/src}/docs/_getting-started/pubsub.md +0 -0
  181. package/docs/src/docs/_getting-started/theming.md +253 -0
  182. package/docs/src/docs/search/docs-search.json +12242 -0
  183. package/docs/src/tag-list.json +1 -0
  184. package/docs/src/tsconfig-model.json +23 -0
  185. package/docs/src/tsconfig.declarations.json +22 -0
  186. package/docs/src/tsconfig.emit.json +23 -0
  187. package/docs/src/tsconfig.json +1332 -0
  188. package/gitlab/job_github_mirror.sh +39 -0
  189. package/index.html +157 -5
  190. package/package.json +22 -4
  191. package/public/docs-mock-api-sw.js +58 -223
  192. package/public/docs-mock-api-sw.js.map +4 -4
  193. package/public/img/concorde/plane_01.jpg +0 -0
  194. package/public/img/concorde/plane_02.jpg +0 -0
  195. package/public/img/concorde/plane_03.jpg +0 -0
  196. package/public/img/concorde/plane_04.jpg +0 -0
  197. package/public/img/concorde/plane_05.jpg +0 -0
  198. package/public/img/concorde/plane_06.jpg +0 -0
  199. package/public/img/concorde/plane_07.jpg +0 -0
  200. package/public/img/concorde/plane_08.jpg +0 -0
  201. package/public/img/concorde/plane_09.jpg +0 -0
  202. package/public/img/concorde/plane_10.jpg +0 -0
  203. package/public/img/concorde/plane_11.jpg +0 -0
  204. package/public/img/concorde/plane_12.jpg +0 -0
  205. package/public/img/concorde/plane_13.jpg +0 -0
  206. package/public/img/og-concorde.jpg +0 -0
  207. package/public/robots.txt +11 -10
  208. package/scripts/ai-init.mjs +104 -379
  209. package/scripts/ai-init.test.mjs +81 -239
  210. package/scripts/docs-markdown-vite-plugin.ts +43 -0
  211. package/scripts/docs-public-url.mjs +56 -0
  212. package/scripts/docs.htaccess +82 -0
  213. package/scripts/generate-cem.mjs +244 -0
  214. package/scripts/generate-cem.test.mjs +122 -0
  215. package/scripts/generate-crawl-docs.mjs +233 -118
  216. package/scripts/generate-crawl-docs.test.mjs +124 -0
  217. package/scripts/generate-sdui-catalog.mjs +11 -10
  218. package/scripts/github-export.mjs +150 -0
  219. package/scripts/post-build-docs.js +37 -50
  220. package/scripts/post-build.mjs +0 -0
  221. package/scripts/pre-publish.mjs +2 -1
  222. package/scripts/site-pages.mjs +212 -0
  223. package/scripts/site-pages.test.mjs +116 -0
  224. package/site-pages/about.md +22 -0
  225. package/site-pages/privacy.md +32 -0
  226. package/src/core/components/functional/date/date.md +91 -231
  227. package/src/core/components/functional/example/example.ts +3 -1
  228. package/src/core/components/functional/fetch/fetch.md +66 -83
  229. package/src/core/components/functional/if/if.md +28 -3
  230. package/src/core/components/functional/if/if.ts +0 -0
  231. package/src/core/components/functional/jsonata/jsonata.md +42 -37
  232. package/src/core/components/functional/list/list.demo.ts +0 -0
  233. package/src/core/components/functional/list/list.md +103 -43
  234. package/src/core/components/functional/list/list.ts +17 -4
  235. package/src/core/components/functional/mix/mix.md +31 -26
  236. package/src/core/components/functional/queue/queue.demo.ts +10 -7
  237. package/src/core/components/functional/queue/queue.md +40 -61
  238. package/src/core/components/functional/router/router.demo.ts +16 -16
  239. package/src/core/components/functional/router/router.md +64 -65
  240. package/src/core/components/functional/router/router.ts +0 -0
  241. package/src/core/components/functional/sdui/SDUIDescriptorTransformer.ts +0 -0
  242. package/src/core/components/functional/sdui/component-catalog.gaps.json +1 -1
  243. package/src/core/components/functional/sdui/component-catalog.json +2 -2
  244. package/src/core/components/functional/sdui/example.json +19 -86
  245. package/src/core/components/functional/sdui/sdui-extension-points.md +1 -1
  246. package/src/core/components/functional/sdui/sdui-immutable.spec.ts +74 -0
  247. package/src/core/components/functional/sdui/sdui.md +187 -358
  248. package/src/core/components/functional/sdui/sdui.ts +33 -8
  249. package/src/core/components/functional/sdui/types.ts +0 -0
  250. package/src/core/components/functional/states/states.demo.ts +21 -22
  251. package/src/core/components/functional/states/states.md +86 -61
  252. package/src/core/components/functional/states/states.ts +1 -1
  253. package/src/core/components/functional/submit/submit.md +64 -72
  254. package/src/core/components/functional/submit/submit.spec.ts +60 -0
  255. package/src/core/components/functional/submit/submit.ts +6 -3
  256. package/src/core/components/functional/subscriber/subscriber.ts +0 -0
  257. package/src/core/components/functional/translation/translation.md +38 -0
  258. package/src/core/components/functional/value/value.md +34 -22
  259. package/src/core/components/functional/value/value.ts +0 -0
  260. package/src/core/components/ui/_css/size.ts +0 -0
  261. package/src/core/components/ui/alert/alert.md +48 -58
  262. package/src/core/components/ui/badge/badge.md +27 -34
  263. package/src/core/components/ui/button/button.md +139 -106
  264. package/src/core/components/ui/captcha/altchaStyles.ts +0 -0
  265. package/src/core/components/ui/captcha/captcha.md +17 -32
  266. package/src/core/components/ui/card/card.md +6 -6
  267. package/src/core/components/ui/divider/divider.md +8 -11
  268. package/src/core/components/ui/form/checkbox/checkbox.md +90 -42
  269. package/src/core/components/ui/form/fieldset/fieldset.md +31 -75
  270. package/src/core/components/ui/form/form-actions/form-actions.md +14 -16
  271. package/src/core/components/ui/form/form-layout/form-layout.md +19 -29
  272. package/src/core/components/ui/form/input/input.md +108 -90
  273. package/src/core/components/ui/form/input/input.ts +8 -2
  274. package/src/core/components/ui/form/radio/radio.md +65 -30
  275. package/src/core/components/ui/form/select/select.md +60 -45
  276. package/src/core/components/ui/form/switch/switch.md +57 -34
  277. package/src/core/components/ui/form/textarea/textarea.md +55 -38
  278. package/src/core/components/ui/group/group.md +35 -33
  279. package/src/core/components/ui/icon/icon.md +4 -4
  280. package/src/core/components/ui/image/image.md +41 -107
  281. package/src/core/components/ui/link/link.md +6 -6
  282. package/src/core/components/ui/loader/loader.md +30 -55
  283. package/src/core/components/ui/menu/menu.md +27 -27
  284. package/src/core/components/ui/modal/modal.md +72 -96
  285. package/src/core/components/ui/pop/pop.md +80 -158
  286. package/src/core/components/ui/progress/progress.md +2 -2
  287. package/src/core/components/ui/table/table.md +91 -255
  288. package/src/core/components/ui/theme/theme.md +11 -36
  289. package/src/core/components/ui/toast/toast.md +48 -117
  290. package/src/core/components/ui/tooltip/tooltip.md +27 -62
  291. package/src/core/decorators/subscriber/bind.ts +9 -14
  292. package/src/core/decorators/subscriber/subscribe.ts +15 -9
  293. package/src/core/decorators/subscriber/subscribe.type-test.ts +14 -5
  294. package/src/core/mixins/Subscriber.ts +0 -0
  295. package/src/core/utils/DataBindObserver.ts +0 -0
  296. package/src/core/utils/LocationHandler.spec.ts +80 -0
  297. package/src/core/utils/LocationHandler.ts +5 -9
  298. package/src/core/utils/Objects.ts +0 -0
  299. package/src/core/utils/PublisherProxy.ts +166 -125
  300. package/src/core/utils/deepReadonly.spec.ts +66 -0
  301. package/src/core/utils/deepReadonly.ts +71 -0
  302. package/src/core/utils/immutableValue.spec.ts +54 -0
  303. package/src/core/utils/immutableValue.ts +102 -0
  304. package/src/core/utils/nestedDotForm.spec.ts +88 -0
  305. package/src/core/utils/publisherImmutable.spec.ts +76 -0
  306. package/src/core/utils/route.ts +0 -0
  307. package/src/core/utils/strictGet.spec.ts +61 -0
  308. package/src/core/utils/strictGet.ts +102 -0
  309. package/src/css.d.ts +19 -0
  310. package/src/docs/components/docs-demo-sources.ts +55 -140
  311. package/src/docs/components/docs-lit-demo.ts +1 -3
  312. package/src/docs/components/docs-source-link.ts +0 -82
  313. package/src/docs/decorators/ancestor-attribute.md +59 -0
  314. package/src/docs/decorators/auto-subscribe.md +40 -0
  315. package/src/docs/decorators/bind.md +76 -0
  316. package/src/docs/decorators/get.md +160 -0
  317. package/src/docs/decorators/handle.md +119 -0
  318. package/src/docs/decorators/on-assign.md +63 -0
  319. package/src/docs/decorators/patch.md +44 -0
  320. package/src/docs/decorators/post.md +134 -0
  321. package/src/docs/decorators/publish.md +56 -0
  322. package/src/docs/decorators/put.md +51 -0
  323. package/src/docs/decorators/subscribe.md +87 -0
  324. package/src/docs/decorators/wait-for-ancestors.md +76 -0
  325. package/src/docs/directives/sub.md +75 -0
  326. package/src/docs/directives/t.md +73 -0
  327. package/src/docs/docs-location.spec.ts +56 -0
  328. package/src/docs/docs-location.ts +133 -32
  329. package/src/docs/docs.ts +1 -2
  330. package/src/docs/example/decorators-demo-bind-demos.ts +83 -135
  331. package/src/docs/example/decorators-demo-geo.ts +30 -19
  332. package/src/docs/example/decorators-demo-post.ts +88 -186
  333. package/src/docs/example/decorators-demo-subscribe-publish-get-demos.ts +165 -268
  334. package/src/docs/example/decorators-demo.ts +85 -98
  335. package/src/docs/example/docs-api-config-demos.ts +19 -20
  336. package/src/docs/example/docs-flight-demos.ts +147 -0
  337. package/src/docs/example/docs-jsonata-demos.ts +52 -52
  338. package/src/docs/example/docs-list-demos.ts +43 -123
  339. package/src/docs/example/docs-provider-keys.ts +21 -28
  340. package/src/docs/example/docs-queue-demos.ts +37 -77
  341. package/src/docs/example/docs-router-demos.ts +20 -25
  342. package/src/docs/example/docs-submit-demos.ts +48 -48
  343. package/src/docs/example/docs-toggle-demos.ts +4 -3
  344. package/src/docs/example/users.ts +0 -0
  345. package/src/docs/getting-started/ai-agents.md +50 -0
  346. package/src/docs/getting-started/create-a-component.md +136 -0
  347. package/src/docs/getting-started/dataFlow.md +87 -0
  348. package/src/docs/getting-started/installation.md +36 -0
  349. package/src/docs/getting-started/my-first-component.md +227 -0
  350. package/src/docs/getting-started/start.md +35 -0
  351. package/src/docs/header/header.ts +11 -6
  352. package/src/docs/home/catalog.ts +1 -1
  353. package/src/docs/home/home.ts +20 -11
  354. package/src/docs/layout.ts +12 -13
  355. package/src/docs/misc/api-configuration.md +79 -0
  356. package/src/docs/misc/dataProviderKey.md +168 -0
  357. package/src/docs/misc/docs-mock-api.md +62 -0
  358. package/src/docs/misc/dynamic-path.md +71 -0
  359. package/src/docs/misc/endpoint.md +45 -0
  360. package/src/docs/misc/html-integration.md +14 -0
  361. package/src/docs/misc/publisher-get-immutability-docs-crawl.json +902 -0
  362. package/src/docs/misc/publisher-get-immutability-docs-recheck.json +13 -0
  363. package/src/docs/misc/publisher-get-immutability-study.md +229 -0
  364. package/src/docs/mock-api/api-config-mock.ts +5 -0
  365. package/src/docs/mock-api/fixtures.ts +0 -278
  366. package/src/docs/mock-api/flights.ts +89 -0
  367. package/src/docs/mock-api/router.ts +3 -4
  368. package/src/docs/mock-api/urls.ts +1 -2
  369. package/src/docs/navigation/navigation.ts +84 -101
  370. package/src/docs/navigation/toc.ts +7 -4
  371. package/src/docs/search/docs-search.json +3188 -5153
  372. package/src/docs/search/markdown-renderer.ts +31 -8
  373. package/src/docs/search/page.ts +9 -6
  374. package/src/docs/search/search.ts +154 -122
  375. package/src/docs/tailwind/css/docs/content.css +4 -5
  376. package/src/tsconfig.declarations.json +22 -0
  377. package/src/tsconfig.emit.json +23 -0
  378. package/src/tsconfig.json +53 -5
  379. package/src/tsconfig.tsbuildinfo +1 -1
  380. package/vite.config.mts +11 -2
  381. package/.agents/skills/concorde-component-docs/SKILL.md +0 -194
  382. package/.taste-skill/after/desktop-fold.jpg +0 -0
  383. package/.taste-skill/after/desktop-page-01.jpg +0 -0
  384. package/.taste-skill/after/desktop-page-02.jpg +0 -0
  385. package/.taste-skill/after/desktop-page-03.jpg +0 -0
  386. package/.taste-skill/after/mobile-fold.jpg +0 -0
  387. package/.taste-skill/after/mobile-page-01.jpg +0 -0
  388. package/.taste-skill/after/report.json +0 -4103
  389. package/.taste-skill/after/tablet-fold.jpg +0 -0
  390. package/.taste-skill/after/tablet-page-01.jpg +0 -0
  391. package/.taste-skill/after/tablet-page-02.jpg +0 -0
  392. package/.taste-skill/before/desktop-fold.jpg +0 -0
  393. package/.taste-skill/before/desktop-page-01.jpg +0 -0
  394. package/.taste-skill/before/desktop-page-02.jpg +0 -0
  395. package/.taste-skill/before/mobile-fold.jpg +0 -0
  396. package/.taste-skill/before/mobile-page-01.jpg +0 -0
  397. package/.taste-skill/before/report.json +0 -2556
  398. package/.taste-skill/before/tablet-fold.jpg +0 -0
  399. package/.taste-skill/before/tablet-page-01.jpg +0 -0
  400. package/.taste-skill/direction.json +0 -510
  401. package/.taste-skill/notes.md +0 -84
  402. package/.taste-skill/prod/desktop-fold.jpg +0 -0
  403. package/.taste-skill/prod/desktop-page-01.jpg +0 -0
  404. package/.taste-skill/prod/desktop-page-02.jpg +0 -0
  405. package/.taste-skill/prod/desktop-page-03.jpg +0 -0
  406. package/.taste-skill/prod/mobile-fold.jpg +0 -0
  407. package/.taste-skill/prod/mobile-page-01.jpg +0 -0
  408. package/.taste-skill/prod/mobile-page-02.jpg +0 -0
  409. package/.taste-skill/prod/report.json +0 -1973
  410. package/.taste-skill/prod/tablet-fold.jpg +0 -0
  411. package/.taste-skill/prod/tablet-page-01.jpg +0 -0
  412. package/.taste-skill/prod/tablet-page-02.jpg +0 -0
  413. package/AUDIT.md +0 -228
  414. package/PLAN-AMELIORATION.md +0 -220
  415. package/ai/AGENTS.md +0 -56
  416. package/ai/cursor/rules/concorde-menu.mdc +0 -15
  417. package/ai/cursor/rules/concorde-scope.mdc +0 -14
  418. package/ai/cursor/rules/concorde-theme.mdc +0 -13
  419. package/ai/cursor/rules/concorde.mdc +0 -66
  420. package/ai/jetbrains/rules/concorde.md +0 -53
  421. package/ai/skills/concorde-get-set-dp/SKILL.md +0 -194
  422. package/ai/skills/concorde-imports/SKILL.md +0 -78
  423. package/ai/skills/concorde-menu/SKILL.md +0 -74
  424. package/ai/skills/concorde-scope/SKILL.md +0 -70
  425. package/ai/skills/concorde-theme/SKILL.md +0 -57
  426. package/docs/assets/index-Bb-_LRyY.js +0 -12280
  427. package/src/docs/example/docs-input-autocomplete-demos.ts +0 -110
  428. package/src/docs/example/docs-joke-demos.ts +0 -297
  429. /package/{src → docs/src}/core/components/ui/form/input-autocomplete/input-autocomplete.md +0 -0
  430. /package/{src → docs/src}/docs/_core-concept/dataFlow.md +0 -0
  431. /package/{src → docs/src}/docs/_core-concept/overview.md +0 -0
  432. /package/{src → docs/src}/docs/_decorators/ancestor-attribute.md +0 -0
  433. /package/{src → docs/src}/docs/_decorators/auto-subscribe.md +0 -0
  434. /package/{src → docs/src}/docs/_decorators/bind.md +0 -0
  435. /package/{src → docs/src}/docs/_decorators/get.md +0 -0
  436. /package/{src → docs/src}/docs/_decorators/handle.md +0 -0
  437. /package/{src → docs/src}/docs/_decorators/on-assign.md +0 -0
  438. /package/{src → docs/src}/docs/_decorators/patch.md +0 -0
  439. /package/{src → docs/src}/docs/_decorators/post.md +0 -0
  440. /package/{src → docs/src}/docs/_decorators/publish.md +0 -0
  441. /package/{src → docs/src}/docs/_decorators/put.md +0 -0
  442. /package/{src → docs/src}/docs/_decorators/subscribe.md +0 -0
  443. /package/{src → docs/src}/docs/_decorators/wait-for-ancestors.md +0 -0
  444. /package/{src → docs/src}/docs/_directives/sub.md +0 -0
  445. /package/{src → docs/src}/docs/_getting-started/ai-agents.md +0 -0
  446. /package/{src → docs/src}/docs/_getting-started/concorde-manual-install.md +0 -0
  447. /package/{src → docs/src}/docs/_getting-started/concorde-outside.md +0 -0
  448. /package/{src → docs/src}/docs/_getting-started/create-a-component.md +0 -0
  449. /package/{src → docs/src}/docs/_getting-started/my-first-component.md +0 -0
  450. /package/{src → docs/src}/docs/_getting-started/start.md +0 -0
  451. /package/{src → docs/src}/docs/_misc/api-configuration.md +0 -0
  452. /package/{src → docs/src}/docs/_misc/dataProviderKey.md +0 -0
  453. /package/{src → docs/src}/docs/_misc/docs-mock-api.md +0 -0
  454. /package/{src → docs/src}/docs/_misc/dynamic-path.md +0 -0
  455. /package/{src → docs/src}/docs/_misc/endpoint.md +0 -0
  456. /package/{src → docs/src}/docs/_misc/formelement-subscriber-removal.md +0 -0
  457. /package/{src → docs/src}/docs/_misc/html-integration.md +0 -0
  458. /package/src/docs/{_getting-started → getting-started}/components.md +0 -0
  459. /package/src/docs/{_getting-started → getting-started}/theming.md +0 -0
@@ -1,1973 +0,0 @@
1
- {
2
- "url": "/tmp/claude-1000/-usr2-sites-concorde/96361c46-4223-49ad-ba53-79b94852041f/scratchpad/docs-prod/index.html",
3
- "at": "2026-10-25T16:31:06.974Z",
4
- "allow": [],
5
- "viewports": [
6
- {
7
- "width": 1440,
8
- "height": 900,
9
- "load": "load",
10
- "screens": 10,
11
- "filled": [
12
- 0.44,
13
- 0.49,
14
- 0.65,
15
- 0.39,
16
- 0.43,
17
- 0.33,
18
- 0.46,
19
- 0.56,
20
- 0.28,
21
- 0.23
22
- ],
23
- "motion": {
24
- "elements": 22,
25
- "css": 8,
26
- "transitions": 14,
27
- "scripted": 0,
28
- "videos": 1,
29
- "playingVideos": 1
30
- },
31
- "metrics": {
32
- "viewport": {
33
- "w": 1440,
34
- "h": 900
35
- },
36
- "page": {
37
- "height": 8116,
38
- "screens": 9,
39
- "words": 698,
40
- "img": 1,
41
- "video": 1,
42
- "canvas": 0,
43
- "svg": 0,
44
- "sections": 5,
45
- "horizontalOverflow": 0,
46
- "overflowCulprits": [],
47
- "uiFragments": 3,
48
- "uiAbuse": false,
49
- "realPictures": 2,
50
- "videoCount": 1,
51
- "uiPictures": 2,
52
- "pictureSamples": [
53
- "24-02-69-concorde-roule-1969.jpg"
54
- ],
55
- "blendText": 0,
56
- "sideScrollers": 0,
57
- "brokenImages": [],
58
- "emoji": [],
59
- "videosNoPoster": 0
60
- },
61
- "hero": {
62
- "text": "Web components for every stack.",
63
- "words": 5,
64
- "chars": 31,
65
- "lines": 2,
66
- "size": 97,
67
- "vw": 6.7,
68
- "font": "Schibsted Grotesk",
69
- "weight": 800,
70
- "tracking": -0.05,
71
- "leading": 0.88,
72
- "upper": false,
73
- "italic": false,
74
- "mono": false,
75
- "align": "left",
76
- "position": "left",
77
- "widthRatio": 0.62,
78
- "top": 138,
79
- "tag": "h1",
80
- "kind": "heading"
81
- },
82
- "h1": {
83
- "text": "Web components for every stack.",
84
- "words": 5,
85
- "lines": 2,
86
- "size": 97,
87
- "font": "Schibsted Grotesk"
88
- },
89
- "headings": [
90
- {
91
- "text": "Web components for every stack.",
92
- "words": 5,
93
- "chars": 31,
94
- "lines": 2,
95
- "size": 97,
96
- "vw": 6.7,
97
- "font": "Schibsted Grotesk",
98
- "weight": 800,
99
- "tracking": -0.05,
100
- "leading": 0.88,
101
- "upper": false,
102
- "italic": false,
103
- "mono": false,
104
- "align": "left",
105
- "position": "left",
106
- "widthRatio": 0.62,
107
- "top": 138,
108
- "tag": "h1",
109
- "kind": "heading"
110
- },
111
- {
112
- "text": "CDG",
113
- "words": 1,
114
- "chars": 3,
115
- "lines": 1,
116
- "size": 48,
117
- "vw": 3.3,
118
- "font": "Schibsted Grotesk",
119
- "weight": 400,
120
- "tracking": 0,
121
- "leading": 1,
122
- "upper": true,
123
- "italic": false,
124
- "mono": false,
125
- "align": "left",
126
- "position": "center",
127
- "widthRatio": 0.07,
128
- "top": 710,
129
- "tag": "div",
130
- "kind": "heading"
131
- },
132
- {
133
- "text": "JFK",
134
- "words": 1,
135
- "chars": 3,
136
- "lines": 1,
137
- "size": 48,
138
- "vw": 3.3,
139
- "font": "Schibsted Grotesk",
140
- "weight": 400,
141
- "tracking": 0,
142
- "leading": 1,
143
- "upper": true,
144
- "italic": false,
145
- "mono": false,
146
- "align": "right",
147
- "position": "right",
148
- "widthRatio": 0.06,
149
- "top": 710,
150
- "tag": "div",
151
- "kind": "heading"
152
- },
153
- {
154
- "text": "41 components, one tag each.",
155
- "words": 5,
156
- "chars": 28,
157
- "lines": 2,
158
- "size": 68,
159
- "vw": 4.7,
160
- "font": "Schibsted Grotesk",
161
- "weight": 800,
162
- "tracking": -0.045,
163
- "leading": 0.95,
164
- "upper": false,
165
- "italic": false,
166
- "mono": false,
167
- "align": "left",
168
- "position": "left",
169
- "widthRatio": 0.34,
170
- "top": 1073,
171
- "tag": "h2",
172
- "kind": "heading"
173
- },
174
- {
175
- "text": "Plumbing in attributes.",
176
- "words": 3,
177
- "chars": 23,
178
- "lines": 2,
179
- "size": 68,
180
- "vw": 4.7,
181
- "font": "Schibsted Grotesk",
182
- "weight": 800,
183
- "tracking": -0.045,
184
- "leading": 0.95,
185
- "upper": false,
186
- "italic": false,
187
- "mono": false,
188
- "align": "left",
189
- "position": "right",
190
- "widthRatio": 0.5,
191
- "top": 2793,
192
- "tag": "h2",
193
- "kind": "heading"
194
- },
195
- {
196
- "text": "Why we built it.",
197
- "words": 4,
198
- "chars": 16,
199
- "lines": 1,
200
- "size": 68,
201
- "vw": 4.7,
202
- "font": "Schibsted Grotesk",
203
- "weight": 800,
204
- "tracking": -0.045,
205
- "leading": 0.95,
206
- "upper": false,
207
- "italic": false,
208
- "mono": false,
209
- "align": "left",
210
- "position": "left",
211
- "widthRatio": 0.38,
212
- "top": 5435,
213
- "tag": "h2",
214
- "kind": "heading"
215
- },
216
- {
217
- "text": "Take your project supersonic.",
218
- "words": 4,
219
- "chars": 29,
220
- "lines": 1,
221
- "size": 68,
222
- "vw": 4.7,
223
- "font": "Schibsted Grotesk",
224
- "weight": 800,
225
- "tracking": -0.045,
226
- "leading": 0.95,
227
- "upper": false,
228
- "italic": false,
229
- "mono": false,
230
- "align": "left",
231
- "position": "center",
232
- "widthRatio": 0.94,
233
- "top": 6935,
234
- "tag": "h2",
235
- "kind": "heading"
236
- }
237
- ],
238
- "headingSummary": {
239
- "count": 7,
240
- "maxLines": 2,
241
- "over2Lines": 0,
242
- "statements": 0,
243
- "centered": 0,
244
- "medianWords": 4,
245
- "mixedFontHeadings": 0
246
- },
247
- "type": {
248
- "families": [
249
- {
250
- "family": "Schibsted Grotesk",
251
- "share": 0.9,
252
- "mono": false
253
- },
254
- {
255
- "family": "ui-monospace",
256
- "share": 0.1,
257
- "mono": false
258
- }
259
- ],
260
- "familyCount": 2,
261
- "sizes": [
262
- 14,
263
- 16,
264
- 18,
265
- 19,
266
- 26,
267
- 68,
268
- 97
269
- ],
270
- "sizeCount": 7,
271
- "notLoaded": [],
272
- "body": {
273
- "font": "Schibsted Grotesk",
274
- "size": 19,
275
- "leading": 1.45,
276
- "weight": 400,
277
- "tracking": 0,
278
- "contrast": 15.4
279
- },
280
- "measureChars": 64,
281
- "max": {
282
- "size": 97,
283
- "vw": 6.7,
284
- "font": "Schibsted Grotesk",
285
- "text": "Web componentsfor every stack."
286
- },
287
- "monoShare": 0.1,
288
- "monoProseShare": 0,
289
- "monoFamilies": [
290
- "ui-monospace"
291
- ],
292
- "monoSamples": [],
293
- "microLabels": 0,
294
- "microLabelShare": 0,
295
- "microSamples": [],
296
- "upperShare": 0.01,
297
- "centerShare": 0,
298
- "smallText": 0
299
- },
300
- "eyebrows": [],
301
- "numbered": [],
302
- "color": {
303
- "bodyBg": "#e9e8e4",
304
- "bodyBgHsl": {
305
- "h": 48,
306
- "s": 0.1,
307
- "l": 0.9
308
- },
309
- "dark": false,
310
- "sectionBgs": [
311
- {
312
- "color": "#ff4f00",
313
- "top": 381,
314
- "hsl": {
315
- "h": 19,
316
- "s": 1,
317
- "l": 0.5
318
- }
319
- },
320
- {
321
- "color": "#111111",
322
- "top": 2793,
323
- "hsl": {
324
- "h": 0,
325
- "s": 0,
326
- "l": 0.07
327
- }
328
- }
329
- ],
330
- "textColors": [
331
- {
332
- "color": "#111111",
333
- "share": 0.97
334
- },
335
- {
336
- "color": "#e9e8e4",
337
- "share": 0.02
338
- },
339
- {
340
- "color": "#ffffff",
341
- "share": 0
342
- },
343
- {
344
- "color": "#e8501c",
345
- "share": 0
346
- }
347
- ],
348
- "button": null,
349
- "lowContrast": []
350
- },
351
- "buttons": {
352
- "count": 0,
353
- "inHero": 0,
354
- "withShadow": 0,
355
- "withGradient": 0,
356
- "mono": 0,
357
- "upper": 0,
358
- "heroLabels": []
359
- },
360
- "surfaces": {
361
- "shadowStatic": 0,
362
- "shadowOverlay": 0,
363
- "shadowSamples": [],
364
- "gradients": 0,
365
- "scrims": 0,
366
- "gradientSamples": [],
367
- "gradientText": 0,
368
- "hairlines": 0,
369
- "hairlineSamples": [],
370
- "outlinedBoxes": 0,
371
- "dashed": 0,
372
- "blurred": 0,
373
- "roundedBoxes": 0,
374
- "boxRadius": 0,
375
- "squareMedia": 2,
376
- "roundedMedia": 0,
377
- "mediaRadius": 0,
378
- "textShadow": 0,
379
- "cardRows": [
380
- {
381
- "count": 20,
382
- "iconTopped": false,
383
- "rounded": false,
384
- "top": 1258
385
- }
386
- ]
387
- },
388
- "heroMedia": [],
389
- "nav": {
390
- "links": 0,
391
- "fixed": false,
392
- "height": 20,
393
- "floatingPill": false,
394
- "blur": false
395
- },
396
- "fontsLoaded": [
397
- "schibsted grotesk"
398
- ]
399
- },
400
- "layout": {
401
- "viewport": {
402
- "w": 1440,
403
- "h": 900
404
- },
405
- "pageH": 8116,
406
- "margins": {
407
- "left": 40,
408
- "right": 65
409
- },
410
- "sections": [
411
- {
412
- "sel": "section.hero",
413
- "tag": "section",
414
- "top": 66,
415
- "height": 830,
416
- "words": 56,
417
- "media": 0,
418
- "middle": 144,
419
- "heading": {
420
- "text": "Web components",
421
- "size": 97,
422
- "tag": "h1"
423
- },
424
- "left": 40,
425
- "right": 167,
426
- "textLeft": 40,
427
- "textRight": 167,
428
- "fullBleed": false,
429
- "footer": false,
430
- "hero": true,
431
- "continues": false,
432
- "pinned": false
433
- },
434
- {
435
- "sel": "div.index-head.is-visible",
436
- "tag": "div",
437
- "top": 1073,
438
- "height": 129,
439
- "words": 2,
440
- "media": 0,
441
- "middle": 0,
442
- "heading": null,
443
- "left": 1265,
444
- "right": 59,
445
- "textLeft": 1265,
446
- "textRight": 59,
447
- "fullBleed": false,
448
- "footer": false,
449
- "hero": false,
450
- "continues": true,
451
- "pinned": false
452
- },
453
- {
454
- "sel": "div.index-body",
455
- "tag": "div",
456
- "top": 1258,
457
- "height": 1357,
458
- "words": 304,
459
- "media": 0,
460
- "middle": 110,
461
- "heading": null,
462
- "left": 61,
463
- "right": 57,
464
- "textLeft": 61,
465
- "textRight": 57,
466
- "fullBleed": false,
467
- "footer": false,
468
- "hero": false,
469
- "continues": true,
470
- "pinned": false
471
- },
472
- {
473
- "sel": "section.instruments",
474
- "tag": "section",
475
- "top": 2793,
476
- "height": 2464,
477
- "words": 145,
478
- "media": 0,
479
- "middle": 188,
480
- "heading": {
481
- "text": "Plumbing in attributes.",
482
- "size": 68,
483
- "tag": "h2"
484
- },
485
- "left": 116,
486
- "right": 104,
487
- "textLeft": 116,
488
- "textRight": 104,
489
- "fullBleed": false,
490
- "footer": false,
491
- "hero": false,
492
- "continues": false,
493
- "pinned": true
494
- },
495
- {
496
- "sel": "div.letter",
497
- "tag": "div",
498
- "top": 5435,
499
- "height": 513,
500
- "words": 115,
501
- "media": 0,
502
- "middle": 0,
503
- "heading": {
504
- "text": "The Supersoniks team",
505
- "size": 26,
506
- "tag": "p"
507
- },
508
- "left": 644,
509
- "right": 190,
510
- "textLeft": 644,
511
- "textRight": 190,
512
- "fullBleed": false,
513
- "footer": false,
514
- "hero": false,
515
- "continues": true,
516
- "pinned": false
517
- },
518
- {
519
- "sel": "figure.story-figure.settle",
520
- "tag": "figure",
521
- "top": 6034,
522
- "height": 723,
523
- "words": 12,
524
- "media": 1,
525
- "middle": 0,
526
- "heading": null,
527
- "left": 40,
528
- "right": 951,
529
- "textLeft": 40,
530
- "textRight": 951,
531
- "fullBleed": true,
532
- "footer": false,
533
- "hero": false,
534
- "continues": true,
535
- "pinned": false
536
- },
537
- {
538
- "sel": "section.takeoff",
539
- "tag": "section",
540
- "top": 6758,
541
- "height": 1056,
542
- "words": 34,
543
- "media": 1,
544
- "middle": 0,
545
- "heading": {
546
- "text": "Take your project supersonic.",
547
- "size": 68,
548
- "tag": "h2"
549
- },
550
- "left": 40,
551
- "right": 257,
552
- "textLeft": 40,
553
- "textRight": 257,
554
- "fullBleed": false,
555
- "footer": false,
556
- "hero": false,
557
- "continues": false,
558
- "pinned": false
559
- },
560
- {
561
- "sel": "footer.home-footer",
562
- "tag": "footer",
563
- "top": 7813,
564
- "height": 302,
565
- "words": 47,
566
- "media": 0,
567
- "middle": 88,
568
- "heading": null,
569
- "left": 40,
570
- "right": 40,
571
- "textLeft": 40,
572
- "textRight": 40,
573
- "fullBleed": false,
574
- "footer": true,
575
- "hero": false,
576
- "continues": false,
577
- "pinned": false
578
- }
579
- ],
580
- "gaps": [],
581
- "h1s": [
582
- {
583
- "text": "Web components for every stack.",
584
- "size": 97,
585
- "top": 138,
586
- "firstScreen": true
587
- }
588
- ],
589
- "edgeText": [],
590
- "edges": [
591
- {
592
- "x": 40,
593
- "n": 7
594
- },
595
- {
596
- "x": 640,
597
- "n": 5
598
- },
599
- {
600
- "x": 792,
601
- "n": 5
602
- }
603
- ],
604
- "leftBlocks": 17,
605
- "bodySize": 14,
606
- "stage": false,
607
- "explains": true,
608
- "slivers": [],
609
- "voidShare": 0.23,
610
- "voidBox": {
611
- "x": 900,
612
- "y": 120,
613
- "w": 540,
614
- "h": 540
615
- }
616
- },
617
- "app": null,
618
- "consoleErrors": []
619
- },
620
- {
621
- "width": 768,
622
- "height": 1024,
623
- "load": "load",
624
- "screens": 9,
625
- "filled": [
626
- 0.47,
627
- 0.55,
628
- 0.61,
629
- 0.66,
630
- 0.48,
631
- 0.23,
632
- 0.48,
633
- 0.72,
634
- 0.46
635
- ],
636
- "motion": {
637
- "elements": 22,
638
- "css": 8,
639
- "transitions": 14,
640
- "scripted": 0,
641
- "videos": 1,
642
- "playingVideos": 1
643
- },
644
- "metrics": {
645
- "viewport": {
646
- "w": 768,
647
- "h": 1024
648
- },
649
- "page": {
650
- "height": 9067,
651
- "screens": 8.9,
652
- "words": 698,
653
- "img": 1,
654
- "video": 1,
655
- "canvas": 0,
656
- "svg": 0,
657
- "sections": 5,
658
- "horizontalOverflow": 0,
659
- "overflowCulprits": [],
660
- "uiFragments": 3,
661
- "uiAbuse": false,
662
- "realPictures": 2,
663
- "videoCount": 1,
664
- "uiPictures": 2,
665
- "pictureSamples": [
666
- "24-02-69-concorde-roule-1969.jpg"
667
- ],
668
- "blendText": 0,
669
- "sideScrollers": 0,
670
- "brokenImages": [],
671
- "emoji": [],
672
- "videosNoPoster": 0
673
- },
674
- "hero": {
675
- "text": "Web components for every stack.",
676
- "words": 5,
677
- "chars": 31,
678
- "lines": 2,
679
- "size": 60.7,
680
- "vw": 7.9,
681
- "font": "Schibsted Grotesk",
682
- "weight": 800,
683
- "tracking": -0.05,
684
- "leading": 0.88,
685
- "upper": false,
686
- "italic": false,
687
- "mono": false,
688
- "align": "left",
689
- "position": "center",
690
- "widthRatio": 0.94,
691
- "top": 148,
692
- "tag": "h1",
693
- "kind": "heading"
694
- },
695
- "h1": {
696
- "text": "Web components for every stack.",
697
- "words": 5,
698
- "lines": 2,
699
- "size": 60.7,
700
- "font": "Schibsted Grotesk"
701
- },
702
- "headings": [
703
- {
704
- "text": "Web components for every stack.",
705
- "words": 5,
706
- "chars": 31,
707
- "lines": 2,
708
- "size": 60.7,
709
- "vw": 7.9,
710
- "font": "Schibsted Grotesk",
711
- "weight": 800,
712
- "tracking": -0.05,
713
- "leading": 0.88,
714
- "upper": false,
715
- "italic": false,
716
- "mono": false,
717
- "align": "left",
718
- "position": "center",
719
- "widthRatio": 0.94,
720
- "top": 148,
721
- "tag": "h1",
722
- "kind": "heading"
723
- },
724
- {
725
- "text": "CDG",
726
- "words": 1,
727
- "chars": 3,
728
- "lines": 1,
729
- "size": 48,
730
- "vw": 6.3,
731
- "font": "Schibsted Grotesk",
732
- "weight": 400,
733
- "tracking": 0,
734
- "leading": 1,
735
- "upper": true,
736
- "italic": false,
737
- "mono": false,
738
- "align": "left",
739
- "position": "left",
740
- "widthRatio": 0.13,
741
- "top": 914,
742
- "tag": "div",
743
- "kind": "heading"
744
- },
745
- {
746
- "text": "JFK",
747
- "words": 1,
748
- "chars": 3,
749
- "lines": 1,
750
- "size": 48,
751
- "vw": 6.3,
752
- "font": "Schibsted Grotesk",
753
- "weight": 400,
754
- "tracking": 0,
755
- "leading": 1,
756
- "upper": true,
757
- "italic": false,
758
- "mono": false,
759
- "align": "right",
760
- "position": "right",
761
- "widthRatio": 0.11,
762
- "top": 914,
763
- "tag": "div",
764
- "kind": "heading"
765
- },
766
- {
767
- "text": "41 components, one tag each.",
768
- "words": 5,
769
- "chars": 28,
770
- "lines": 2,
771
- "size": 47,
772
- "vw": 6.1,
773
- "font": "Schibsted Grotesk",
774
- "weight": 800,
775
- "tracking": -0.045,
776
- "leading": 0.95,
777
- "upper": false,
778
- "italic": false,
779
- "mono": false,
780
- "align": "left",
781
- "position": "left",
782
- "widthRatio": 0.44,
783
- "top": 1247,
784
- "tag": "h2",
785
- "kind": "heading"
786
- },
787
- {
788
- "text": "Plumbing in attributes.",
789
- "words": 3,
790
- "chars": 23,
791
- "lines": 1,
792
- "size": 47,
793
- "vw": 6.1,
794
- "font": "Schibsted Grotesk",
795
- "weight": 800,
796
- "tracking": -0.045,
797
- "leading": 0.95,
798
- "upper": false,
799
- "italic": false,
800
- "mono": false,
801
- "align": "left",
802
- "position": "center",
803
- "widthRatio": 1,
804
- "top": 4219,
805
- "tag": "h2",
806
- "kind": "heading"
807
- },
808
- {
809
- "text": "Why we built it.",
810
- "words": 4,
811
- "chars": 16,
812
- "lines": 1,
813
- "size": 47,
814
- "vw": 6.1,
815
- "font": "Schibsted Grotesk",
816
- "weight": 800,
817
- "tracking": -0.045,
818
- "leading": 0.95,
819
- "upper": false,
820
- "italic": false,
821
- "mono": false,
822
- "align": "left",
823
- "position": "center",
824
- "widthRatio": 0.94,
825
- "top": 6365,
826
- "tag": "h2",
827
- "kind": "heading"
828
- },
829
- {
830
- "text": "Take your project supersonic.",
831
- "words": 4,
832
- "chars": 29,
833
- "lines": 1,
834
- "size": 47,
835
- "vw": 6.1,
836
- "font": "Schibsted Grotesk",
837
- "weight": 800,
838
- "tracking": -0.045,
839
- "leading": 0.95,
840
- "upper": false,
841
- "italic": false,
842
- "mono": false,
843
- "align": "left",
844
- "position": "center",
845
- "widthRatio": 0.94,
846
- "top": 7461,
847
- "tag": "h2",
848
- "kind": "heading"
849
- }
850
- ],
851
- "headingSummary": {
852
- "count": 7,
853
- "maxLines": 2,
854
- "over2Lines": 0,
855
- "statements": 0,
856
- "centered": 0,
857
- "medianWords": 4,
858
- "mixedFontHeadings": 0
859
- },
860
- "type": {
861
- "families": [
862
- {
863
- "family": "Schibsted Grotesk",
864
- "share": 0.9,
865
- "mono": false
866
- },
867
- {
868
- "family": "ui-monospace",
869
- "share": 0.1,
870
- "mono": false
871
- }
872
- ],
873
- "familyCount": 2,
874
- "sizes": [
875
- 14,
876
- 16,
877
- 18,
878
- 23,
879
- 47,
880
- 61
881
- ],
882
- "sizeCount": 6,
883
- "notLoaded": [],
884
- "body": {
885
- "font": "Schibsted Grotesk",
886
- "size": 17.9,
887
- "leading": 1.45,
888
- "weight": 400,
889
- "tracking": 0,
890
- "contrast": 15.4
891
- },
892
- "measureChars": 68,
893
- "max": {
894
- "size": 60.7,
895
- "vw": 7.9,
896
- "font": "Schibsted Grotesk",
897
- "text": "Web componentsfor every stack."
898
- },
899
- "monoShare": 0.1,
900
- "monoProseShare": 0,
901
- "monoFamilies": [
902
- "ui-monospace"
903
- ],
904
- "monoSamples": [],
905
- "microLabels": 0,
906
- "microLabelShare": 0,
907
- "microSamples": [],
908
- "upperShare": 0.01,
909
- "centerShare": 0,
910
- "smallText": 0
911
- },
912
- "eyebrows": [],
913
- "numbered": [],
914
- "color": {
915
- "bodyBg": "#e9e8e4",
916
- "bodyBgHsl": {
917
- "h": 48,
918
- "s": 0.1,
919
- "l": 0.9
920
- },
921
- "dark": false,
922
- "sectionBgs": [
923
- {
924
- "color": "#ff4f00",
925
- "top": 586,
926
- "hsl": {
927
- "h": 19,
928
- "s": 1,
929
- "l": 0.5
930
- }
931
- },
932
- {
933
- "color": "#111111",
934
- "top": 4296,
935
- "hsl": {
936
- "h": 0,
937
- "s": 0,
938
- "l": 0.07
939
- }
940
- },
941
- {
942
- "color": "#e9e8e4",
943
- "top": 4328,
944
- "hsl": {
945
- "h": 48,
946
- "s": 0.1,
947
- "l": 0.9
948
- }
949
- }
950
- ],
951
- "textColors": [
952
- {
953
- "color": "#111111",
954
- "share": 0.97
955
- },
956
- {
957
- "color": "#e9e8e4",
958
- "share": 0.02
959
- },
960
- {
961
- "color": "#ffffff",
962
- "share": 0
963
- },
964
- {
965
- "color": "#e8501c",
966
- "share": 0
967
- }
968
- ],
969
- "button": null,
970
- "lowContrast": []
971
- },
972
- "buttons": {
973
- "count": 0,
974
- "inHero": 0,
975
- "withShadow": 0,
976
- "withGradient": 0,
977
- "mono": 0,
978
- "upper": 0,
979
- "heroLabels": []
980
- },
981
- "surfaces": {
982
- "shadowStatic": 0,
983
- "shadowOverlay": 0,
984
- "shadowSamples": [],
985
- "gradients": 0,
986
- "scrims": 1,
987
- "gradientSamples": [],
988
- "gradientText": 0,
989
- "hairlines": 0,
990
- "hairlineSamples": [],
991
- "outlinedBoxes": 0,
992
- "dashed": 0,
993
- "blurred": 0,
994
- "roundedBoxes": 0,
995
- "boxRadius": 0,
996
- "squareMedia": 2,
997
- "roundedMedia": 0,
998
- "mediaRadius": 0,
999
- "textShadow": 0,
1000
- "cardRows": [
1001
- {
1002
- "count": 27,
1003
- "iconTopped": false,
1004
- "rounded": false,
1005
- "top": 1393
1006
- }
1007
- ]
1008
- },
1009
- "heroMedia": [],
1010
- "nav": {
1011
- "links": 0,
1012
- "fixed": false,
1013
- "height": 20,
1014
- "floatingPill": false,
1015
- "blur": false
1016
- },
1017
- "fontsLoaded": [
1018
- "schibsted grotesk"
1019
- ]
1020
- },
1021
- "layout": {
1022
- "viewport": {
1023
- "w": 768,
1024
- "h": 1024
1025
- },
1026
- "pageH": 9067,
1027
- "margins": {
1028
- "left": 24,
1029
- "right": 43
1030
- },
1031
- "sections": [
1032
- {
1033
- "sel": "section.hero",
1034
- "tag": "section",
1035
- "top": 66,
1036
- "height": 1064,
1037
- "words": 56,
1038
- "media": 0,
1039
- "middle": 20,
1040
- "heading": {
1041
- "text": "Web components",
1042
- "size": 61,
1043
- "tag": "h1"
1044
- },
1045
- "left": 24,
1046
- "right": 137,
1047
- "textLeft": 24,
1048
- "textRight": 137,
1049
- "fullBleed": false,
1050
- "footer": false,
1051
- "hero": true,
1052
- "continues": false,
1053
- "pinned": false
1054
- },
1055
- {
1056
- "sel": "section.index",
1057
- "tag": "section",
1058
- "top": 1130,
1059
- "height": 2972,
1060
- "words": 311,
1061
- "media": 0,
1062
- "middle": 50,
1063
- "heading": {
1064
- "text": "41 components,",
1065
- "size": 47,
1066
- "tag": "h2"
1067
- },
1068
- "left": 24,
1069
- "right": 41,
1070
- "textLeft": 24,
1071
- "textRight": 41,
1072
- "fullBleed": false,
1073
- "footer": false,
1074
- "hero": false,
1075
- "continues": false,
1076
- "pinned": false
1077
- },
1078
- {
1079
- "sel": "div.instr-field",
1080
- "tag": "div",
1081
- "top": 4296,
1082
- "height": 523,
1083
- "words": 35,
1084
- "media": 0,
1085
- "middle": 43,
1086
- "heading": {
1087
- "text": "Departures",
1088
- "size": 23,
1089
- "tag": "span"
1090
- },
1091
- "left": 140,
1092
- "right": 140,
1093
- "textLeft": 140,
1094
- "textRight": 140,
1095
- "fullBleed": false,
1096
- "footer": false,
1097
- "hero": false,
1098
- "continues": true,
1099
- "pinned": false
1100
- },
1101
- {
1102
- "sel": "div.instr-blocks",
1103
- "tag": "div",
1104
- "top": 4819,
1105
- "height": 1429,
1106
- "words": 107,
1107
- "media": 0,
1108
- "middle": 0,
1109
- "heading": {
1110
- "text": "Bind state without glue.",
1111
- "size": 23,
1112
- "tag": "p"
1113
- },
1114
- "left": 24,
1115
- "right": 223,
1116
- "textLeft": 24,
1117
- "textRight": 223,
1118
- "fullBleed": false,
1119
- "footer": false,
1120
- "hero": false,
1121
- "continues": true,
1122
- "pinned": false
1123
- },
1124
- {
1125
- "sel": "section.story",
1126
- "tag": "section",
1127
- "top": 6248,
1128
- "height": 1096,
1129
- "words": 131,
1130
- "media": 1,
1131
- "middle": 0,
1132
- "heading": {
1133
- "text": "Why we built it.",
1134
- "size": 47,
1135
- "tag": "h2"
1136
- },
1137
- "left": 24,
1138
- "right": 139,
1139
- "textLeft": 24,
1140
- "textRight": 139,
1141
- "fullBleed": true,
1142
- "footer": false,
1143
- "hero": false,
1144
- "continues": false,
1145
- "pinned": false
1146
- },
1147
- {
1148
- "sel": "section.takeoff",
1149
- "tag": "section",
1150
- "top": 7344,
1151
- "height": 1461,
1152
- "words": 34,
1153
- "media": 1,
1154
- "middle": 0,
1155
- "heading": {
1156
- "text": "Take your project supersonic.",
1157
- "size": 47,
1158
- "tag": "h2"
1159
- },
1160
- "left": 24,
1161
- "right": 24,
1162
- "textLeft": 24,
1163
- "textRight": 107,
1164
- "fullBleed": false,
1165
- "footer": false,
1166
- "hero": false,
1167
- "continues": false,
1168
- "pinned": false
1169
- },
1170
- {
1171
- "sel": "footer.home-footer",
1172
- "tag": "footer",
1173
- "top": 8804,
1174
- "height": 262,
1175
- "words": 47,
1176
- "media": 0,
1177
- "middle": 0,
1178
- "heading": null,
1179
- "left": 24,
1180
- "right": 24,
1181
- "textLeft": 24,
1182
- "textRight": 24,
1183
- "fullBleed": false,
1184
- "footer": true,
1185
- "hero": false,
1186
- "continues": false,
1187
- "pinned": false
1188
- }
1189
- ],
1190
- "gaps": [
1191
- {
1192
- "top": 440,
1193
- "height": 348
1194
- },
1195
- {
1196
- "top": 5572,
1197
- "height": 344
1198
- }
1199
- ],
1200
- "h1s": [
1201
- {
1202
- "text": "Web components for every stack.",
1203
- "size": 61,
1204
- "top": 148,
1205
- "firstScreen": true
1206
- }
1207
- ],
1208
- "edgeText": [],
1209
- "edges": [
1210
- {
1211
- "x": 24,
1212
- "n": 17
1213
- }
1214
- ],
1215
- "leftBlocks": 17,
1216
- "bodySize": 14,
1217
- "stage": false,
1218
- "explains": false,
1219
- "slivers": [],
1220
- "voidShare": 0,
1221
- "voidBox": null
1222
- },
1223
- "app": null,
1224
- "consoleErrors": []
1225
- },
1226
- {
1227
- "width": 390,
1228
- "height": 844,
1229
- "load": "load",
1230
- "screens": 9,
1231
- "filled": [
1232
- 0.37,
1233
- 0.59,
1234
- 0.82,
1235
- 0.55,
1236
- 0.38,
1237
- 0.19,
1238
- 0.71,
1239
- 0.73,
1240
- 0.34
1241
- ],
1242
- "motion": {
1243
- "elements": 22,
1244
- "css": 8,
1245
- "transitions": 14,
1246
- "scripted": 0,
1247
- "videos": 1,
1248
- "playingVideos": 1
1249
- },
1250
- "metrics": {
1251
- "viewport": {
1252
- "w": 390,
1253
- "h": 844
1254
- },
1255
- "page": {
1256
- "height": 7429,
1257
- "screens": 8.8,
1258
- "words": 469,
1259
- "img": 1,
1260
- "video": 1,
1261
- "canvas": 0,
1262
- "svg": 0,
1263
- "sections": 5,
1264
- "horizontalOverflow": 0,
1265
- "overflowCulprits": [],
1266
- "uiFragments": 3,
1267
- "uiAbuse": false,
1268
- "realPictures": 2,
1269
- "videoCount": 1,
1270
- "uiPictures": 2,
1271
- "pictureSamples": [
1272
- "24-02-69-concorde-roule-1969.jpg"
1273
- ],
1274
- "blendText": 0,
1275
- "sideScrollers": 0,
1276
- "brokenImages": [],
1277
- "emoji": [],
1278
- "videosNoPoster": 0
1279
- },
1280
- "hero": {
1281
- "text": "Web components for every stack.",
1282
- "words": 5,
1283
- "chars": 31,
1284
- "lines": 2,
1285
- "size": 40.3,
1286
- "vw": 10.3,
1287
- "font": "Schibsted Grotesk",
1288
- "weight": 800,
1289
- "tracking": -0.05,
1290
- "leading": 0.88,
1291
- "upper": false,
1292
- "italic": false,
1293
- "mono": false,
1294
- "align": "left",
1295
- "position": "center",
1296
- "widthRatio": 0.92,
1297
- "top": 134,
1298
- "tag": "h1",
1299
- "kind": "heading"
1300
- },
1301
- "h1": {
1302
- "text": "Web components for every stack.",
1303
- "words": 5,
1304
- "lines": 2,
1305
- "size": 40.3,
1306
- "font": "Schibsted Grotesk"
1307
- },
1308
- "headings": [
1309
- {
1310
- "text": "Web components for every stack.",
1311
- "words": 5,
1312
- "chars": 31,
1313
- "lines": 2,
1314
- "size": 40.3,
1315
- "vw": 10.3,
1316
- "font": "Schibsted Grotesk",
1317
- "weight": 800,
1318
- "tracking": -0.05,
1319
- "leading": 0.88,
1320
- "upper": false,
1321
- "italic": false,
1322
- "mono": false,
1323
- "align": "left",
1324
- "position": "center",
1325
- "widthRatio": 0.92,
1326
- "top": 134,
1327
- "tag": "h1",
1328
- "kind": "heading"
1329
- },
1330
- {
1331
- "text": "CDG",
1332
- "words": 1,
1333
- "chars": 3,
1334
- "lines": 1,
1335
- "size": 36,
1336
- "vw": 9.2,
1337
- "font": "Schibsted Grotesk",
1338
- "weight": 400,
1339
- "tracking": 0,
1340
- "leading": 1,
1341
- "upper": true,
1342
- "italic": false,
1343
- "mono": false,
1344
- "align": "left",
1345
- "position": "left",
1346
- "widthRatio": 0.2,
1347
- "top": 1000,
1348
- "tag": "div",
1349
- "kind": "heading"
1350
- },
1351
- {
1352
- "text": "JFK",
1353
- "words": 1,
1354
- "chars": 3,
1355
- "lines": 1,
1356
- "size": 36,
1357
- "vw": 9.2,
1358
- "font": "Schibsted Grotesk",
1359
- "weight": 400,
1360
- "tracking": 0,
1361
- "leading": 1,
1362
- "upper": true,
1363
- "italic": false,
1364
- "mono": false,
1365
- "align": "right",
1366
- "position": "right",
1367
- "widthRatio": 0.16,
1368
- "top": 1000,
1369
- "tag": "div",
1370
- "kind": "heading"
1371
- },
1372
- {
1373
- "text": "41 components, one tag each.",
1374
- "words": 5,
1375
- "chars": 28,
1376
- "lines": 2,
1377
- "size": 36,
1378
- "vw": 9.2,
1379
- "font": "Schibsted Grotesk",
1380
- "weight": 800,
1381
- "tracking": -0.045,
1382
- "leading": 0.95,
1383
- "upper": false,
1384
- "italic": false,
1385
- "mono": false,
1386
- "align": "left",
1387
- "position": "left",
1388
- "widthRatio": 0.66,
1389
- "top": 1350,
1390
- "tag": "h2",
1391
- "kind": "heading"
1392
- },
1393
- {
1394
- "text": "Plumbing in attributes.",
1395
- "words": 3,
1396
- "chars": 23,
1397
- "lines": 2,
1398
- "size": 36,
1399
- "vw": 9.2,
1400
- "font": "Schibsted Grotesk",
1401
- "weight": 800,
1402
- "tracking": -0.045,
1403
- "leading": 0.95,
1404
- "upper": false,
1405
- "italic": false,
1406
- "mono": false,
1407
- "align": "left",
1408
- "position": "center",
1409
- "widthRatio": 1,
1410
- "top": 2895,
1411
- "tag": "h2",
1412
- "kind": "heading"
1413
- },
1414
- {
1415
- "text": "Why we built it.",
1416
- "words": 4,
1417
- "chars": 16,
1418
- "lines": 1,
1419
- "size": 36,
1420
- "vw": 9.2,
1421
- "font": "Schibsted Grotesk",
1422
- "weight": 800,
1423
- "tracking": -0.045,
1424
- "leading": 0.95,
1425
- "upper": false,
1426
- "italic": false,
1427
- "mono": false,
1428
- "align": "left",
1429
- "position": "center",
1430
- "widthRatio": 0.92,
1431
- "top": 5062,
1432
- "tag": "h2",
1433
- "kind": "heading"
1434
- },
1435
- {
1436
- "text": "Take your project supersonic.",
1437
- "words": 4,
1438
- "chars": 29,
1439
- "lines": 2,
1440
- "size": 36,
1441
- "vw": 9.2,
1442
- "font": "Schibsted Grotesk",
1443
- "weight": 800,
1444
- "tracking": -0.045,
1445
- "leading": 0.95,
1446
- "upper": false,
1447
- "italic": false,
1448
- "mono": false,
1449
- "align": "left",
1450
- "position": "center",
1451
- "widthRatio": 0.92,
1452
- "top": 6204,
1453
- "tag": "h2",
1454
- "kind": "heading"
1455
- }
1456
- ],
1457
- "headingSummary": {
1458
- "count": 7,
1459
- "maxLines": 2,
1460
- "over2Lines": 0,
1461
- "statements": 0,
1462
- "centered": 0,
1463
- "medianWords": 4,
1464
- "mixedFontHeadings": 0
1465
- },
1466
- "type": {
1467
- "families": [
1468
- {
1469
- "family": "Schibsted Grotesk",
1470
- "share": 0.86,
1471
- "mono": false
1472
- },
1473
- {
1474
- "family": "ui-monospace",
1475
- "share": 0.14,
1476
- "mono": false
1477
- }
1478
- ],
1479
- "familyCount": 2,
1480
- "sizes": [
1481
- 14,
1482
- 16,
1483
- 17,
1484
- 18,
1485
- 20,
1486
- 36,
1487
- 40
1488
- ],
1489
- "sizeCount": 7,
1490
- "notLoaded": [],
1491
- "body": {
1492
- "font": "Schibsted Grotesk",
1493
- "size": 17,
1494
- "leading": 1.45,
1495
- "weight": 400,
1496
- "tracking": 0,
1497
- "contrast": 15.4
1498
- },
1499
- "measureChars": 42,
1500
- "max": {
1501
- "size": 40.3,
1502
- "vw": 10.3,
1503
- "font": "Schibsted Grotesk",
1504
- "text": "Web componentsfor every stack."
1505
- },
1506
- "monoShare": 0.14,
1507
- "monoProseShare": 0,
1508
- "monoFamilies": [
1509
- "ui-monospace"
1510
- ],
1511
- "monoSamples": [],
1512
- "microLabels": 0,
1513
- "microLabelShare": 0,
1514
- "microSamples": [],
1515
- "upperShare": 0.02,
1516
- "centerShare": 0,
1517
- "smallText": 0
1518
- },
1519
- "eyebrows": [],
1520
- "numbered": [],
1521
- "color": {
1522
- "bodyBg": "#e9e8e4",
1523
- "bodyBgHsl": {
1524
- "h": 48,
1525
- "s": 0.1,
1526
- "l": 0.9
1527
- },
1528
- "dark": false,
1529
- "sectionBgs": [
1530
- {
1531
- "color": "#ff4f00",
1532
- "top": 597,
1533
- "hsl": {
1534
- "h": 19,
1535
- "s": 1,
1536
- "l": 0.5
1537
- }
1538
- },
1539
- {
1540
- "color": "#111111",
1541
- "top": 923,
1542
- "hsl": {
1543
- "h": 0,
1544
- "s": 0,
1545
- "l": 0.07
1546
- }
1547
- },
1548
- {
1549
- "color": "#e9e8e4",
1550
- "top": 3028,
1551
- "hsl": {
1552
- "h": 48,
1553
- "s": 0.1,
1554
- "l": 0.9
1555
- }
1556
- }
1557
- ],
1558
- "textColors": [
1559
- {
1560
- "color": "#111111",
1561
- "share": 0.96
1562
- },
1563
- {
1564
- "color": "#e9e8e4",
1565
- "share": 0.03
1566
- },
1567
- {
1568
- "color": "#ffffff",
1569
- "share": 0.01
1570
- },
1571
- {
1572
- "color": "#e8501c",
1573
- "share": 0
1574
- }
1575
- ],
1576
- "button": null,
1577
- "lowContrast": []
1578
- },
1579
- "buttons": {
1580
- "count": 0,
1581
- "inHero": 0,
1582
- "withShadow": 0,
1583
- "withGradient": 0,
1584
- "mono": 0,
1585
- "upper": 0,
1586
- "heroLabels": []
1587
- },
1588
- "surfaces": {
1589
- "shadowStatic": 0,
1590
- "shadowOverlay": 0,
1591
- "shadowSamples": [],
1592
- "gradients": 0,
1593
- "scrims": 1,
1594
- "gradientSamples": [],
1595
- "gradientText": 0,
1596
- "hairlines": 0,
1597
- "hairlineSamples": [],
1598
- "outlinedBoxes": 0,
1599
- "dashed": 0,
1600
- "blurred": 0,
1601
- "roundedBoxes": 0,
1602
- "boxRadius": 0,
1603
- "squareMedia": 2,
1604
- "roundedMedia": 0,
1605
- "mediaRadius": 0,
1606
- "textShadow": 0,
1607
- "cardRows": [
1608
- {
1609
- "count": 4,
1610
- "iconTopped": false,
1611
- "rounded": false,
1612
- "top": 1909
1613
- }
1614
- ]
1615
- },
1616
- "heroMedia": [],
1617
- "nav": {
1618
- "links": 0,
1619
- "fixed": false,
1620
- "height": 20,
1621
- "floatingPill": false,
1622
- "blur": false
1623
- },
1624
- "fontsLoaded": [
1625
- "schibsted grotesk"
1626
- ]
1627
- },
1628
- "layout": {
1629
- "viewport": {
1630
- "w": 390,
1631
- "h": 844
1632
- },
1633
- "pageH": 7429,
1634
- "margins": {
1635
- "left": 16,
1636
- "right": 19
1637
- },
1638
- "sections": [
1639
- {
1640
- "sel": "section.hero",
1641
- "tag": "section",
1642
- "top": 66,
1643
- "height": 1188,
1644
- "words": 56,
1645
- "media": 0,
1646
- "middle": 0,
1647
- "heading": {
1648
- "text": "Web components",
1649
- "size": 40,
1650
- "tag": "h1"
1651
- },
1652
- "left": 16,
1653
- "right": 33,
1654
- "textLeft": 16,
1655
- "textRight": 33,
1656
- "fullBleed": false,
1657
- "footer": false,
1658
- "hero": true,
1659
- "continues": false,
1660
- "pinned": false
1661
- },
1662
- {
1663
- "sel": "div.index-head.is-visible",
1664
- "tag": "div",
1665
- "top": 1350,
1666
- "height": 132,
1667
- "words": 5,
1668
- "media": 0,
1669
- "middle": 0,
1670
- "heading": {
1671
- "text": "one tag each.",
1672
- "size": 36,
1673
- "tag": "h2"
1674
- },
1675
- "left": 16,
1676
- "right": 158,
1677
- "textLeft": 16,
1678
- "textRight": 158,
1679
- "fullBleed": false,
1680
- "footer": false,
1681
- "hero": false,
1682
- "continues": true,
1683
- "pinned": false
1684
- },
1685
- {
1686
- "sel": "div.index-body",
1687
- "tag": "div",
1688
- "top": 1538,
1689
- "height": 1261,
1690
- "words": 67,
1691
- "media": 0,
1692
- "middle": 55,
1693
- "heading": null,
1694
- "left": 32,
1695
- "right": 51,
1696
- "textLeft": 32,
1697
- "textRight": 51,
1698
- "fullBleed": false,
1699
- "footer": false,
1700
- "hero": false,
1701
- "continues": true,
1702
- "pinned": false
1703
- },
1704
- {
1705
- "sel": "div.instr-field",
1706
- "tag": "div",
1707
- "top": 2996,
1708
- "height": 465,
1709
- "words": 31,
1710
- "media": 0,
1711
- "middle": 20,
1712
- "heading": null,
1713
- "left": 36,
1714
- "right": 36,
1715
- "textLeft": 36,
1716
- "textRight": 36,
1717
- "fullBleed": false,
1718
- "footer": false,
1719
- "hero": false,
1720
- "continues": true,
1721
- "pinned": false
1722
- },
1723
- {
1724
- "sel": "div.instr-block.is-visible",
1725
- "tag": "div",
1726
- "top": 3477,
1727
- "height": 380,
1728
- "words": 22,
1729
- "media": 0,
1730
- "middle": 0,
1731
- "heading": null,
1732
- "left": 16,
1733
- "right": 23,
1734
- "textLeft": 16,
1735
- "textRight": 23,
1736
- "fullBleed": false,
1737
- "footer": false,
1738
- "hero": false,
1739
- "continues": true,
1740
- "pinned": false
1741
- },
1742
- {
1743
- "sel": "div.instr-block.is-visible",
1744
- "tag": "div",
1745
- "top": 3856,
1746
- "height": 232,
1747
- "words": 28,
1748
- "media": 0,
1749
- "middle": 0,
1750
- "heading": null,
1751
- "left": 16,
1752
- "right": 16,
1753
- "textLeft": 16,
1754
- "textRight": 16,
1755
- "fullBleed": false,
1756
- "footer": false,
1757
- "hero": false,
1758
- "continues": true,
1759
- "pinned": false
1760
- },
1761
- {
1762
- "sel": "div.instr-block.is-visible",
1763
- "tag": "div",
1764
- "top": 4089,
1765
- "height": 500,
1766
- "words": 32,
1767
- "media": 0,
1768
- "middle": 0,
1769
- "heading": null,
1770
- "left": 16,
1771
- "right": 20,
1772
- "textLeft": 16,
1773
- "textRight": 20,
1774
- "fullBleed": false,
1775
- "footer": false,
1776
- "hero": false,
1777
- "continues": true,
1778
- "pinned": false
1779
- },
1780
- {
1781
- "sel": "div.instr-block.is-visible",
1782
- "tag": "div",
1783
- "top": 4589,
1784
- "height": 377,
1785
- "words": 25,
1786
- "media": 0,
1787
- "middle": 0,
1788
- "heading": null,
1789
- "left": 16,
1790
- "right": 43,
1791
- "textLeft": 16,
1792
- "textRight": 43,
1793
- "fullBleed": false,
1794
- "footer": false,
1795
- "hero": false,
1796
- "continues": true,
1797
- "pinned": false
1798
- },
1799
- {
1800
- "sel": "section.story",
1801
- "tag": "section",
1802
- "top": 4966,
1803
- "height": 1142,
1804
- "words": 131,
1805
- "media": 1,
1806
- "middle": 0,
1807
- "heading": {
1808
- "text": "Why we built it.",
1809
- "size": 36,
1810
- "tag": "h2"
1811
- },
1812
- "left": 16,
1813
- "right": 18,
1814
- "textLeft": 16,
1815
- "textRight": 18,
1816
- "fullBleed": true,
1817
- "footer": false,
1818
- "hero": false,
1819
- "continues": false,
1820
- "pinned": false
1821
- },
1822
- {
1823
- "sel": "section.takeoff",
1824
- "tag": "section",
1825
- "top": 6108,
1826
- "height": 1003,
1827
- "words": 34,
1828
- "media": 1,
1829
- "middle": 0,
1830
- "heading": {
1831
- "text": "Take your project supersonic.",
1832
- "size": 36,
1833
- "tag": "h2"
1834
- },
1835
- "left": 16,
1836
- "right": 16,
1837
- "textLeft": 16,
1838
- "textRight": 21,
1839
- "fullBleed": false,
1840
- "footer": false,
1841
- "hero": false,
1842
- "continues": false,
1843
- "pinned": false
1844
- },
1845
- {
1846
- "sel": "footer.home-footer",
1847
- "tag": "footer",
1848
- "top": 7111,
1849
- "height": 318,
1850
- "words": 47,
1851
- "media": 0,
1852
- "middle": 0,
1853
- "heading": null,
1854
- "left": 16,
1855
- "right": 44,
1856
- "textLeft": 16,
1857
- "textRight": 44,
1858
- "fullBleed": false,
1859
- "footer": true,
1860
- "hero": false,
1861
- "continues": false,
1862
- "pinned": false
1863
- }
1864
- ],
1865
- "gaps": [
1866
- {
1867
- "top": 460,
1868
- "height": 412
1869
- },
1870
- {
1871
- "top": 3620,
1872
- "height": 264
1873
- },
1874
- {
1875
- "top": 4268,
1876
- "height": 348
1877
- },
1878
- {
1879
- "top": 4780,
1880
- "height": 276
1881
- }
1882
- ],
1883
- "h1s": [
1884
- {
1885
- "text": "Web components for every stack.",
1886
- "size": 40,
1887
- "top": 134,
1888
- "firstScreen": true
1889
- }
1890
- ],
1891
- "edgeText": [],
1892
- "edges": [
1893
- {
1894
- "x": 16,
1895
- "n": 17
1896
- }
1897
- ],
1898
- "leftBlocks": 17,
1899
- "bodySize": 17,
1900
- "stage": false,
1901
- "explains": false,
1902
- "slivers": [],
1903
- "voidShare": 0,
1904
- "voidBox": null
1905
- },
1906
- "app": null,
1907
- "consoleErrors": []
1908
- }
1909
- ],
1910
- "findings": [
1911
- {
1912
- "level": "WARN",
1913
- "id": "first-action",
1914
- "width": 1440,
1915
- "message": "No visible button in the first screen.",
1916
- "fix": "Give the one primary action a real button in the first screen (a filled or solid-bordered control, 44px or taller), not only a link in the navigation.",
1917
- "alsoAt": [
1918
- 768,
1919
- 390
1920
- ]
1921
- },
1922
- {
1923
- "level": "WARN",
1924
- "id": "off-centre",
1925
- "width": 1440,
1926
- "message": "The margins differ: 40px on the left, 65px on the right, at 1440px.",
1927
- "fix": "Put the navigation and the content on one pair of margins; check for padding on one side only, a scrollbar gutter, or a header on another inset than the page.",
1928
- "alsoAt": [
1929
- 768
1930
- ]
1931
- },
1932
- {
1933
- "level": "WARN",
1934
- "id": "blank-gap",
1935
- "width": 390,
1936
- "message": "A 412px stretch at 460px holds nothing.",
1937
- "fix": "Check that it is a deliberate rest (once per page at most); otherwise close it to the normal section gap."
1938
- }
1939
- ],
1940
- "images": [
1941
- {
1942
- "viewport": "desktop",
1943
- "width": 1440,
1944
- "fold": "/usr2/sites/concorde/.taste-skill/prod/desktop-fold.jpg",
1945
- "pages": [
1946
- "/usr2/sites/concorde/.taste-skill/prod/desktop-page-01.jpg",
1947
- "/usr2/sites/concorde/.taste-skill/prod/desktop-page-02.jpg",
1948
- "/usr2/sites/concorde/.taste-skill/prod/desktop-page-03.jpg"
1949
- ],
1950
- "film": []
1951
- },
1952
- {
1953
- "viewport": "tablet",
1954
- "width": 768,
1955
- "fold": "/usr2/sites/concorde/.taste-skill/prod/tablet-fold.jpg",
1956
- "pages": [
1957
- "/usr2/sites/concorde/.taste-skill/prod/tablet-page-01.jpg",
1958
- "/usr2/sites/concorde/.taste-skill/prod/tablet-page-02.jpg"
1959
- ],
1960
- "film": []
1961
- },
1962
- {
1963
- "viewport": "mobile",
1964
- "width": 390,
1965
- "fold": "/usr2/sites/concorde/.taste-skill/prod/mobile-fold.jpg",
1966
- "pages": [
1967
- "/usr2/sites/concorde/.taste-skill/prod/mobile-page-01.jpg",
1968
- "/usr2/sites/concorde/.taste-skill/prod/mobile-page-02.jpg"
1969
- ],
1970
- "film": []
1971
- }
1972
- ]
1973
- }