@concordance-wiki/site 0.1.0

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 (996) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +130 -0
  3. package/assets/css/accessibility.css +57 -0
  4. package/assets/css/chrome/bar.css +37 -0
  5. package/assets/css/chrome/breadcrumb.css +34 -0
  6. package/assets/css/chrome/breakpoints.css +291 -0
  7. package/assets/css/chrome/contract-viewer.css +84 -0
  8. package/assets/css/chrome/document.css +125 -0
  9. package/assets/css/chrome/drawer.css +210 -0
  10. package/assets/css/chrome/footer.css +102 -0
  11. package/assets/css/chrome/grouped-files.css +58 -0
  12. package/assets/css/chrome/labels.css +54 -0
  13. package/assets/css/chrome/links.css +23 -0
  14. package/assets/css/chrome/measure.css +13 -0
  15. package/assets/css/chrome/mode-switch.css +26 -0
  16. package/assets/css/chrome/panel-handle.css +232 -0
  17. package/assets/css/chrome/panel.css +92 -0
  18. package/assets/css/chrome/pins.css +321 -0
  19. package/assets/css/chrome/search-clear.css +28 -0
  20. package/assets/css/chrome/search-field.css +67 -0
  21. package/assets/css/chrome/space-tree.css +106 -0
  22. package/assets/css/chrome/suggestions.css +100 -0
  23. package/assets/css/chrome/tabs.css +85 -0
  24. package/assets/css/controls.css +30 -0
  25. package/assets/css/pages/about.css +219 -0
  26. package/assets/css/pages/api-page.css +200 -0
  27. package/assets/css/pages/category-list.css +349 -0
  28. package/assets/css/pages/decision-page.css +43 -0
  29. package/assets/css/pages/document-page.css +212 -0
  30. package/assets/css/pages/edge-cases.css +450 -0
  31. package/assets/css/pages/entity-article.css +140 -0
  32. package/assets/css/pages/entity-page.css +109 -0
  33. package/assets/css/pages/gallery.css +74 -0
  34. package/assets/css/pages/home-columns.css +148 -0
  35. package/assets/css/pages/home-shortcuts.css +40 -0
  36. package/assets/css/pages/home.css +81 -0
  37. package/assets/css/pages/index.css +302 -0
  38. package/assets/css/pages/keyword-page.css +262 -0
  39. package/assets/css/pages/meeting-page.css +109 -0
  40. package/assets/css/pages/mentions.css +267 -0
  41. package/assets/css/pages/neighbourhood-map.css +100 -0
  42. package/assets/css/pages/neighbourhood-open.css +262 -0
  43. package/assets/css/pages/neighbourhood.css +60 -0
  44. package/assets/css/pages/screen-page.css +108 -0
  45. package/assets/css/pages/search-results.css +405 -0
  46. package/assets/css/pages/space.css +251 -0
  47. package/assets/css/pages/spaces.css +176 -0
  48. package/assets/css/pages/todo.css +44 -0
  49. package/assets/css/reset.css +21 -0
  50. package/assets/css/typography.css +104 -0
  51. package/assets/fonts/OFL.txt +95 -0
  52. package/assets/fonts/ibm-plex-mono-normal-400-latin-ext.woff2 +0 -0
  53. package/assets/fonts/ibm-plex-mono-normal-400-latin.woff2 +0 -0
  54. package/assets/fonts/ibm-plex-mono-normal-500-latin-ext.woff2 +0 -0
  55. package/assets/fonts/ibm-plex-mono-normal-500-latin.woff2 +0 -0
  56. package/assets/fonts/instrument-sans-italic-400-700-latin-ext.woff2 +0 -0
  57. package/assets/fonts/instrument-sans-italic-400-700-latin.woff2 +0 -0
  58. package/assets/fonts/instrument-sans-normal-400-700-latin-ext.woff2 +0 -0
  59. package/assets/fonts/instrument-sans-normal-400-700-latin.woff2 +0 -0
  60. package/dist/a11y/check.d.ts +14 -0
  61. package/dist/a11y/check.d.ts.map +1 -0
  62. package/dist/a11y/check.js +442 -0
  63. package/dist/a11y/check.js.map +1 -0
  64. package/dist/a11y/contrast.d.ts +32 -0
  65. package/dist/a11y/contrast.d.ts.map +1 -0
  66. package/dist/a11y/contrast.js +82 -0
  67. package/dist/a11y/contrast.js.map +1 -0
  68. package/dist/budget.d.ts +25 -0
  69. package/dist/budget.d.ts.map +1 -0
  70. package/dist/budget.js +26 -0
  71. package/dist/budget.js.map +1 -0
  72. package/dist/build/about.d.ts +21 -0
  73. package/dist/build/about.d.ts.map +1 -0
  74. package/dist/build/about.js +125 -0
  75. package/dist/build/about.js.map +1 -0
  76. package/dist/build/assemble.d.ts +54 -0
  77. package/dist/build/assemble.d.ts.map +1 -0
  78. package/dist/build/assemble.js +67 -0
  79. package/dist/build/assemble.js.map +1 -0
  80. package/dist/build/category.d.ts +118 -0
  81. package/dist/build/category.d.ts.map +1 -0
  82. package/dist/build/category.js +400 -0
  83. package/dist/build/category.js.map +1 -0
  84. package/dist/build/context.d.ts +111 -0
  85. package/dist/build/context.d.ts.map +1 -0
  86. package/dist/build/context.js +181 -0
  87. package/dist/build/context.js.map +1 -0
  88. package/dist/build/decision.d.ts +30 -0
  89. package/dist/build/decision.d.ts.map +1 -0
  90. package/dist/build/decision.js +187 -0
  91. package/dist/build/decision.js.map +1 -0
  92. package/dist/build/default-theme.d.ts +10 -0
  93. package/dist/build/default-theme.d.ts.map +1 -0
  94. package/dist/build/default-theme.js +36 -0
  95. package/dist/build/default-theme.js.map +1 -0
  96. package/dist/build/entity-page.d.ts +140 -0
  97. package/dist/build/entity-page.d.ts.map +1 -0
  98. package/dist/build/entity-page.js +782 -0
  99. package/dist/build/entity-page.js.map +1 -0
  100. package/dist/build/footer.d.ts +39 -0
  101. package/dist/build/footer.d.ts.map +1 -0
  102. package/dist/build/footer.js +123 -0
  103. package/dist/build/footer.js.map +1 -0
  104. package/dist/build/fragments.d.ts +92 -0
  105. package/dist/build/fragments.d.ts.map +1 -0
  106. package/dist/build/fragments.js +115 -0
  107. package/dist/build/fragments.js.map +1 -0
  108. package/dist/build/grouping.d.ts +21 -0
  109. package/dist/build/grouping.d.ts.map +1 -0
  110. package/dist/build/grouping.js +71 -0
  111. package/dist/build/grouping.js.map +1 -0
  112. package/dist/build/home.d.ts +56 -0
  113. package/dist/build/home.d.ts.map +1 -0
  114. package/dist/build/home.js +214 -0
  115. package/dist/build/home.js.map +1 -0
  116. package/dist/build/index-page.d.ts +71 -0
  117. package/dist/build/index-page.d.ts.map +1 -0
  118. package/dist/build/index-page.js +267 -0
  119. package/dist/build/index-page.js.map +1 -0
  120. package/dist/build/keyword-page.d.ts +80 -0
  121. package/dist/build/keyword-page.d.ts.map +1 -0
  122. package/dist/build/keyword-page.js +297 -0
  123. package/dist/build/keyword-page.js.map +1 -0
  124. package/dist/build/kinds.d.ts +4 -0
  125. package/dist/build/kinds.d.ts.map +1 -0
  126. package/dist/build/kinds.js +22 -0
  127. package/dist/build/kinds.js.map +1 -0
  128. package/dist/build/meeting.d.ts +56 -0
  129. package/dist/build/meeting.d.ts.map +1 -0
  130. package/dist/build/meeting.js +285 -0
  131. package/dist/build/meeting.js.map +1 -0
  132. package/dist/build/mentions.d.ts +68 -0
  133. package/dist/build/mentions.d.ts.map +1 -0
  134. package/dist/build/mentions.js +412 -0
  135. package/dist/build/mentions.js.map +1 -0
  136. package/dist/build/not-found.d.ts +23 -0
  137. package/dist/build/not-found.d.ts.map +1 -0
  138. package/dist/build/not-found.js +70 -0
  139. package/dist/build/not-found.js.map +1 -0
  140. package/dist/build/operations.d.ts +27 -0
  141. package/dist/build/operations.d.ts.map +1 -0
  142. package/dist/build/operations.js +99 -0
  143. package/dist/build/operations.js.map +1 -0
  144. package/dist/build/paths.d.ts +45 -0
  145. package/dist/build/paths.d.ts.map +1 -0
  146. package/dist/build/paths.js +74 -0
  147. package/dist/build/paths.js.map +1 -0
  148. package/dist/build/redirect.d.ts +20 -0
  149. package/dist/build/redirect.d.ts.map +1 -0
  150. package/dist/build/redirect.js +31 -0
  151. package/dist/build/redirect.js.map +1 -0
  152. package/dist/build/site.d.ts +99 -0
  153. package/dist/build/site.d.ts.map +1 -0
  154. package/dist/build/site.js +338 -0
  155. package/dist/build/site.js.map +1 -0
  156. package/dist/build/space.d.ts +82 -0
  157. package/dist/build/space.d.ts.map +1 -0
  158. package/dist/build/space.js +248 -0
  159. package/dist/build/space.js.map +1 -0
  160. package/dist/build/spaces.d.ts +48 -0
  161. package/dist/build/spaces.d.ts.map +1 -0
  162. package/dist/build/spaces.js +210 -0
  163. package/dist/build/spaces.js.map +1 -0
  164. package/dist/build/todo.d.ts +24 -0
  165. package/dist/build/todo.d.ts.map +1 -0
  166. package/dist/build/todo.js +107 -0
  167. package/dist/build/todo.js.map +1 -0
  168. package/dist/css/fonts.d.ts +30 -0
  169. package/dist/css/fonts.d.ts.map +1 -0
  170. package/dist/css/fonts.js +51 -0
  171. package/dist/css/fonts.js.map +1 -0
  172. package/dist/css/stylesheet.d.ts +28 -0
  173. package/dist/css/stylesheet.d.ts.map +1 -0
  174. package/dist/css/stylesheet.js +94 -0
  175. package/dist/css/stylesheet.js.map +1 -0
  176. package/dist/css/theme-config.d.ts +2 -0
  177. package/dist/css/theme-config.d.ts.map +1 -0
  178. package/dist/css/theme-config.js +2 -0
  179. package/dist/css/theme-config.js.map +1 -0
  180. package/dist/css/tokens.d.ts +17 -0
  181. package/dist/css/tokens.d.ts.map +1 -0
  182. package/dist/css/tokens.js +90 -0
  183. package/dist/css/tokens.js.map +1 -0
  184. package/dist/gallery/boards.d.ts +146 -0
  185. package/dist/gallery/boards.d.ts.map +1 -0
  186. package/dist/gallery/boards.js +158 -0
  187. package/dist/gallery/boards.js.map +1 -0
  188. package/dist/gallery/build.d.ts +43 -0
  189. package/dist/gallery/build.d.ts.map +1 -0
  190. package/dist/gallery/build.js +129 -0
  191. package/dist/gallery/build.js.map +1 -0
  192. package/dist/gallery/fixtures/about.d.ts +10 -0
  193. package/dist/gallery/fixtures/about.d.ts.map +1 -0
  194. package/dist/gallery/fixtures/about.js +57 -0
  195. package/dist/gallery/fixtures/about.js.map +1 -0
  196. package/dist/gallery/fixtures/api-page.d.ts +8 -0
  197. package/dist/gallery/fixtures/api-page.d.ts.map +1 -0
  198. package/dist/gallery/fixtures/api-page.js +423 -0
  199. package/dist/gallery/fixtures/api-page.js.map +1 -0
  200. package/dist/gallery/fixtures/category-list.d.ts +10 -0
  201. package/dist/gallery/fixtures/category-list.d.ts.map +1 -0
  202. package/dist/gallery/fixtures/category-list.js +106 -0
  203. package/dist/gallery/fixtures/category-list.js.map +1 -0
  204. package/dist/gallery/fixtures/chrome.d.ts +22 -0
  205. package/dist/gallery/fixtures/chrome.d.ts.map +1 -0
  206. package/dist/gallery/fixtures/chrome.js +100 -0
  207. package/dist/gallery/fixtures/chrome.js.map +1 -0
  208. package/dist/gallery/fixtures/corpus.d.ts +62 -0
  209. package/dist/gallery/fixtures/corpus.d.ts.map +1 -0
  210. package/dist/gallery/fixtures/corpus.js +90 -0
  211. package/dist/gallery/fixtures/corpus.js.map +1 -0
  212. package/dist/gallery/fixtures/decision-page.d.ts +12 -0
  213. package/dist/gallery/fixtures/decision-page.d.ts.map +1 -0
  214. package/dist/gallery/fixtures/decision-page.js +287 -0
  215. package/dist/gallery/fixtures/decision-page.js.map +1 -0
  216. package/dist/gallery/fixtures/degraded.d.ts +18 -0
  217. package/dist/gallery/fixtures/degraded.d.ts.map +1 -0
  218. package/dist/gallery/fixtures/degraded.js +95 -0
  219. package/dist/gallery/fixtures/degraded.js.map +1 -0
  220. package/dist/gallery/fixtures/document-blocks.d.ts +4 -0
  221. package/dist/gallery/fixtures/document-blocks.d.ts.map +1 -0
  222. package/dist/gallery/fixtures/document-blocks.js +68 -0
  223. package/dist/gallery/fixtures/document-blocks.js.map +1 -0
  224. package/dist/gallery/fixtures/document-page.d.ts +6 -0
  225. package/dist/gallery/fixtures/document-page.d.ts.map +1 -0
  226. package/dist/gallery/fixtures/document-page.js +314 -0
  227. package/dist/gallery/fixtures/document-page.js.map +1 -0
  228. package/dist/gallery/fixtures/edge-cases.d.ts +25 -0
  229. package/dist/gallery/fixtures/edge-cases.d.ts.map +1 -0
  230. package/dist/gallery/fixtures/edge-cases.js +165 -0
  231. package/dist/gallery/fixtures/edge-cases.js.map +1 -0
  232. package/dist/gallery/fixtures/entity-page-twin.d.ts +8 -0
  233. package/dist/gallery/fixtures/entity-page-twin.d.ts.map +1 -0
  234. package/dist/gallery/fixtures/entity-page-twin.js +68 -0
  235. package/dist/gallery/fixtures/entity-page-twin.js.map +1 -0
  236. package/dist/gallery/fixtures/entity-page.d.ts +12 -0
  237. package/dist/gallery/fixtures/entity-page.d.ts.map +1 -0
  238. package/dist/gallery/fixtures/entity-page.js +244 -0
  239. package/dist/gallery/fixtures/entity-page.js.map +1 -0
  240. package/dist/gallery/fixtures/home.d.ts +9 -0
  241. package/dist/gallery/fixtures/home.d.ts.map +1 -0
  242. package/dist/gallery/fixtures/home.js +145 -0
  243. package/dist/gallery/fixtures/home.js.map +1 -0
  244. package/dist/gallery/fixtures/index-page.d.ts +4 -0
  245. package/dist/gallery/fixtures/index-page.d.ts.map +1 -0
  246. package/dist/gallery/fixtures/index-page.js +145 -0
  247. package/dist/gallery/fixtures/index-page.js.map +1 -0
  248. package/dist/gallery/fixtures/keyword-page.d.ts +7 -0
  249. package/dist/gallery/fixtures/keyword-page.d.ts.map +1 -0
  250. package/dist/gallery/fixtures/keyword-page.js +344 -0
  251. package/dist/gallery/fixtures/keyword-page.js.map +1 -0
  252. package/dist/gallery/fixtures/meeting-page.d.ts +11 -0
  253. package/dist/gallery/fixtures/meeting-page.d.ts.map +1 -0
  254. package/dist/gallery/fixtures/meeting-page.js +303 -0
  255. package/dist/gallery/fixtures/meeting-page.js.map +1 -0
  256. package/dist/gallery/fixtures/mentions.d.ts +6 -0
  257. package/dist/gallery/fixtures/mentions.d.ts.map +1 -0
  258. package/dist/gallery/fixtures/mentions.js +28 -0
  259. package/dist/gallery/fixtures/mentions.js.map +1 -0
  260. package/dist/gallery/fixtures/neighbourhood.d.ts +7 -0
  261. package/dist/gallery/fixtures/neighbourhood.d.ts.map +1 -0
  262. package/dist/gallery/fixtures/neighbourhood.js +96 -0
  263. package/dist/gallery/fixtures/neighbourhood.js.map +1 -0
  264. package/dist/gallery/fixtures/pins.d.ts +6 -0
  265. package/dist/gallery/fixtures/pins.d.ts.map +1 -0
  266. package/dist/gallery/fixtures/pins.js +24 -0
  267. package/dist/gallery/fixtures/pins.js.map +1 -0
  268. package/dist/gallery/fixtures/screen-page.d.ts +4 -0
  269. package/dist/gallery/fixtures/screen-page.d.ts.map +1 -0
  270. package/dist/gallery/fixtures/screen-page.js +266 -0
  271. package/dist/gallery/fixtures/screen-page.js.map +1 -0
  272. package/dist/gallery/fixtures/search-results.d.ts +12 -0
  273. package/dist/gallery/fixtures/search-results.d.ts.map +1 -0
  274. package/dist/gallery/fixtures/search-results.js +242 -0
  275. package/dist/gallery/fixtures/search-results.js.map +1 -0
  276. package/dist/gallery/fixtures/spaces.d.ts +15 -0
  277. package/dist/gallery/fixtures/spaces.d.ts.map +1 -0
  278. package/dist/gallery/fixtures/spaces.js +125 -0
  279. package/dist/gallery/fixtures/spaces.js.map +1 -0
  280. package/dist/gallery/fixtures/theme.d.ts +4 -0
  281. package/dist/gallery/fixtures/theme.d.ts.map +1 -0
  282. package/dist/gallery/fixtures/theme.js +4 -0
  283. package/dist/gallery/fixtures/theme.js.map +1 -0
  284. package/dist/gallery/fixtures/todo.d.ts +3 -0
  285. package/dist/gallery/fixtures/todo.d.ts.map +1 -0
  286. package/dist/gallery/fixtures/todo.js +13 -0
  287. package/dist/gallery/fixtures/todo.js.map +1 -0
  288. package/dist/gallery/fixtures.d.ts +24 -0
  289. package/dist/gallery/fixtures.d.ts.map +1 -0
  290. package/dist/gallery/fixtures.js +28 -0
  291. package/dist/gallery/fixtures.js.map +1 -0
  292. package/dist/gallery/index-page.d.ts +17 -0
  293. package/dist/gallery/index-page.d.ts.map +1 -0
  294. package/dist/gallery/index-page.js +41 -0
  295. package/dist/gallery/index-page.js.map +1 -0
  296. package/dist/gallery/no-script.d.ts +3 -0
  297. package/dist/gallery/no-script.d.ts.map +1 -0
  298. package/dist/gallery/no-script.js +11 -0
  299. package/dist/gallery/no-script.js.map +1 -0
  300. package/dist/gallery/page.d.ts +43 -0
  301. package/dist/gallery/page.d.ts.map +1 -0
  302. package/dist/gallery/page.js +8 -0
  303. package/dist/gallery/page.js.map +1 -0
  304. package/dist/gallery/pages.d.ts +6 -0
  305. package/dist/gallery/pages.d.ts.map +1 -0
  306. package/dist/gallery/pages.js +135 -0
  307. package/dist/gallery/pages.js.map +1 -0
  308. package/dist/gallery/skeleton.d.ts +6 -0
  309. package/dist/gallery/skeleton.d.ts.map +1 -0
  310. package/dist/gallery/skeleton.js +81 -0
  311. package/dist/gallery/skeleton.js.map +1 -0
  312. package/dist/gallery/spaces.d.ts +15 -0
  313. package/dist/gallery/spaces.d.ts.map +1 -0
  314. package/dist/gallery/spaces.js +125 -0
  315. package/dist/gallery/spaces.js.map +1 -0
  316. package/dist/gallery/states/about-corporate.d.ts +3 -0
  317. package/dist/gallery/states/about-corporate.d.ts.map +1 -0
  318. package/dist/gallery/states/about-corporate.js +16 -0
  319. package/dist/gallery/states/about-corporate.js.map +1 -0
  320. package/dist/gallery/states/about-sections.d.ts +3 -0
  321. package/dist/gallery/states/about-sections.d.ts.map +1 -0
  322. package/dist/gallery/states/about-sections.js +16 -0
  323. package/dist/gallery/states/about-sections.js.map +1 -0
  324. package/dist/gallery/states/age-notice.d.ts +3 -0
  325. package/dist/gallery/states/age-notice.d.ts.map +1 -0
  326. package/dist/gallery/states/age-notice.js +18 -0
  327. package/dist/gallery/states/age-notice.js.map +1 -0
  328. package/dist/gallery/states/api-page-corporate.d.ts +3 -0
  329. package/dist/gallery/states/api-page-corporate.d.ts.map +1 -0
  330. package/dist/gallery/states/api-page-corporate.js +16 -0
  331. package/dist/gallery/states/api-page-corporate.js.map +1 -0
  332. package/dist/gallery/states/api-page-no-contract.d.ts +3 -0
  333. package/dist/gallery/states/api-page-no-contract.d.ts.map +1 -0
  334. package/dist/gallery/states/api-page-no-contract.js +16 -0
  335. package/dist/gallery/states/api-page-no-contract.js.map +1 -0
  336. package/dist/gallery/states/api-page-no-script.d.ts +3 -0
  337. package/dist/gallery/states/api-page-no-script.d.ts.map +1 -0
  338. package/dist/gallery/states/api-page-no-script.js +10 -0
  339. package/dist/gallery/states/api-page-no-script.js.map +1 -0
  340. package/dist/gallery/states/category-corporate.d.ts +3 -0
  341. package/dist/gallery/states/category-corporate.d.ts.map +1 -0
  342. package/dist/gallery/states/category-corporate.js +16 -0
  343. package/dist/gallery/states/category-corporate.js.map +1 -0
  344. package/dist/gallery/states/decision-page-corporate.d.ts +3 -0
  345. package/dist/gallery/states/decision-page-corporate.d.ts.map +1 -0
  346. package/dist/gallery/states/decision-page-corporate.js +16 -0
  347. package/dist/gallery/states/decision-page-corporate.js.map +1 -0
  348. package/dist/gallery/states/document-page-corporate.d.ts +3 -0
  349. package/dist/gallery/states/document-page-corporate.d.ts.map +1 -0
  350. package/dist/gallery/states/document-page-corporate.js +16 -0
  351. package/dist/gallery/states/document-page-corporate.js.map +1 -0
  352. package/dist/gallery/states/document-page-no-preview.d.ts +3 -0
  353. package/dist/gallery/states/document-page-no-preview.d.ts.map +1 -0
  354. package/dist/gallery/states/document-page-no-preview.js +17 -0
  355. package/dist/gallery/states/document-page-no-preview.js.map +1 -0
  356. package/dist/gallery/states/document-page-no-script.d.ts +3 -0
  357. package/dist/gallery/states/document-page-no-script.d.ts.map +1 -0
  358. package/dist/gallery/states/document-page-no-script.js +10 -0
  359. package/dist/gallery/states/document-page-no-script.js.map +1 -0
  360. package/dist/gallery/states/entity-page-contract.d.ts +3 -0
  361. package/dist/gallery/states/entity-page-contract.d.ts.map +1 -0
  362. package/dist/gallery/states/entity-page-contract.js +13 -0
  363. package/dist/gallery/states/entity-page-contract.js.map +1 -0
  364. package/dist/gallery/states/entity-page-corporate.d.ts +3 -0
  365. package/dist/gallery/states/entity-page-corporate.d.ts.map +1 -0
  366. package/dist/gallery/states/entity-page-corporate.js +16 -0
  367. package/dist/gallery/states/entity-page-corporate.js.map +1 -0
  368. package/dist/gallery/states/entity-page-dark.d.ts +3 -0
  369. package/dist/gallery/states/entity-page-dark.d.ts.map +1 -0
  370. package/dist/gallery/states/entity-page-dark.js +17 -0
  371. package/dist/gallery/states/entity-page-dark.js.map +1 -0
  372. package/dist/gallery/states/entity-page-document.d.ts +3 -0
  373. package/dist/gallery/states/entity-page-document.d.ts.map +1 -0
  374. package/dist/gallery/states/entity-page-document.js +13 -0
  375. package/dist/gallery/states/entity-page-document.js.map +1 -0
  376. package/dist/gallery/states/entity-page-drawer.d.ts +3 -0
  377. package/dist/gallery/states/entity-page-drawer.d.ts.map +1 -0
  378. package/dist/gallery/states/entity-page-drawer.js +17 -0
  379. package/dist/gallery/states/entity-page-drawer.js.map +1 -0
  380. package/dist/gallery/states/entity-page-empty.d.ts +3 -0
  381. package/dist/gallery/states/entity-page-empty.d.ts.map +1 -0
  382. package/dist/gallery/states/entity-page-empty.js +19 -0
  383. package/dist/gallery/states/entity-page-empty.js.map +1 -0
  384. package/dist/gallery/states/entity-page-map.d.ts +3 -0
  385. package/dist/gallery/states/entity-page-map.d.ts.map +1 -0
  386. package/dist/gallery/states/entity-page-map.js +16 -0
  387. package/dist/gallery/states/entity-page-map.js.map +1 -0
  388. package/dist/gallery/states/entity-page-no-property.d.ts +3 -0
  389. package/dist/gallery/states/entity-page-no-property.d.ts.map +1 -0
  390. package/dist/gallery/states/entity-page-no-property.js +16 -0
  391. package/dist/gallery/states/entity-page-no-property.js.map +1 -0
  392. package/dist/gallery/states/entity-page-no-script.d.ts +3 -0
  393. package/dist/gallery/states/entity-page-no-script.d.ts.map +1 -0
  394. package/dist/gallery/states/entity-page-no-script.js +10 -0
  395. package/dist/gallery/states/entity-page-no-script.js.map +1 -0
  396. package/dist/gallery/states/entity-page-panel-folded.d.ts +3 -0
  397. package/dist/gallery/states/entity-page-panel-folded.d.ts.map +1 -0
  398. package/dist/gallery/states/entity-page-panel-folded.js +17 -0
  399. package/dist/gallery/states/entity-page-panel-folded.js.map +1 -0
  400. package/dist/gallery/states/entity-page-phone.d.ts +3 -0
  401. package/dist/gallery/states/entity-page-phone.d.ts.map +1 -0
  402. package/dist/gallery/states/entity-page-phone.js +17 -0
  403. package/dist/gallery/states/entity-page-phone.js.map +1 -0
  404. package/dist/gallery/states/entity-page-pins.d.ts +3 -0
  405. package/dist/gallery/states/entity-page-pins.d.ts.map +1 -0
  406. package/dist/gallery/states/entity-page-pins.js +17 -0
  407. package/dist/gallery/states/entity-page-pins.js.map +1 -0
  408. package/dist/gallery/states/entity-page-tablet.d.ts +3 -0
  409. package/dist/gallery/states/entity-page-tablet.d.ts.map +1 -0
  410. package/dist/gallery/states/entity-page-tablet.js +17 -0
  411. package/dist/gallery/states/entity-page-tablet.js.map +1 -0
  412. package/dist/gallery/states/entity-page-with-twin.d.ts +3 -0
  413. package/dist/gallery/states/entity-page-with-twin.d.ts.map +1 -0
  414. package/dist/gallery/states/entity-page-with-twin.js +16 -0
  415. package/dist/gallery/states/entity-page-with-twin.js.map +1 -0
  416. package/dist/gallery/states/entity-page.d.ts +3 -0
  417. package/dist/gallery/states/entity-page.d.ts.map +1 -0
  418. package/dist/gallery/states/entity-page.js +13 -0
  419. package/dist/gallery/states/entity-page.js.map +1 -0
  420. package/dist/gallery/states/footer-alone.d.ts +3 -0
  421. package/dist/gallery/states/footer-alone.d.ts.map +1 -0
  422. package/dist/gallery/states/footer-alone.js +16 -0
  423. package/dist/gallery/states/footer-alone.js.map +1 -0
  424. package/dist/gallery/states/footer-corporate.d.ts +3 -0
  425. package/dist/gallery/states/footer-corporate.d.ts.map +1 -0
  426. package/dist/gallery/states/footer-corporate.js +16 -0
  427. package/dist/gallery/states/footer-corporate.js.map +1 -0
  428. package/dist/gallery/states/footer-text.d.ts +3 -0
  429. package/dist/gallery/states/footer-text.d.ts.map +1 -0
  430. package/dist/gallery/states/footer-text.js +15 -0
  431. package/dist/gallery/states/footer-text.js.map +1 -0
  432. package/dist/gallery/states/header-logo.d.ts +3 -0
  433. package/dist/gallery/states/header-logo.d.ts.map +1 -0
  434. package/dist/gallery/states/header-logo.js +15 -0
  435. package/dist/gallery/states/header-logo.js.map +1 -0
  436. package/dist/gallery/states/home-corporate.d.ts +3 -0
  437. package/dist/gallery/states/home-corporate.d.ts.map +1 -0
  438. package/dist/gallery/states/home-corporate.js +16 -0
  439. package/dist/gallery/states/home-corporate.js.map +1 -0
  440. package/dist/gallery/states/home-dark.d.ts +3 -0
  441. package/dist/gallery/states/home-dark.d.ts.map +1 -0
  442. package/dist/gallery/states/home-dark.js +17 -0
  443. package/dist/gallery/states/home-dark.js.map +1 -0
  444. package/dist/gallery/states/home-no-script.d.ts +3 -0
  445. package/dist/gallery/states/home-no-script.d.ts.map +1 -0
  446. package/dist/gallery/states/home-no-script.js +10 -0
  447. package/dist/gallery/states/home-no-script.js.map +1 -0
  448. package/dist/gallery/states/home-single-source.d.ts +3 -0
  449. package/dist/gallery/states/home-single-source.d.ts.map +1 -0
  450. package/dist/gallery/states/home-single-source.js +16 -0
  451. package/dist/gallery/states/home-single-source.js.map +1 -0
  452. package/dist/gallery/states/home.d.ts +3 -0
  453. package/dist/gallery/states/home.d.ts.map +1 -0
  454. package/dist/gallery/states/home.js +13 -0
  455. package/dist/gallery/states/home.js.map +1 -0
  456. package/dist/gallery/states/index-corporate.d.ts +3 -0
  457. package/dist/gallery/states/index-corporate.d.ts.map +1 -0
  458. package/dist/gallery/states/index-corporate.js +16 -0
  459. package/dist/gallery/states/index-corporate.js.map +1 -0
  460. package/dist/gallery/states/index-page.d.ts +3 -0
  461. package/dist/gallery/states/index-page.d.ts.map +1 -0
  462. package/dist/gallery/states/index-page.js +13 -0
  463. package/dist/gallery/states/index-page.js.map +1 -0
  464. package/dist/gallery/states/keyword-page-corporate.d.ts +3 -0
  465. package/dist/gallery/states/keyword-page-corporate.d.ts.map +1 -0
  466. package/dist/gallery/states/keyword-page-corporate.js +16 -0
  467. package/dist/gallery/states/keyword-page-corporate.js.map +1 -0
  468. package/dist/gallery/states/keyword-page-empty.d.ts +3 -0
  469. package/dist/gallery/states/keyword-page-empty.d.ts.map +1 -0
  470. package/dist/gallery/states/keyword-page-empty.js +21 -0
  471. package/dist/gallery/states/keyword-page-empty.js.map +1 -0
  472. package/dist/gallery/states/keyword-page-no-script.d.ts +3 -0
  473. package/dist/gallery/states/keyword-page-no-script.d.ts.map +1 -0
  474. package/dist/gallery/states/keyword-page-no-script.js +10 -0
  475. package/dist/gallery/states/keyword-page-no-script.js.map +1 -0
  476. package/dist/gallery/states/keyword-page-no-timecode.d.ts +3 -0
  477. package/dist/gallery/states/keyword-page-no-timecode.d.ts.map +1 -0
  478. package/dist/gallery/states/keyword-page-no-timecode.js +16 -0
  479. package/dist/gallery/states/keyword-page-no-timecode.js.map +1 -0
  480. package/dist/gallery/states/keyword-page.d.ts +3 -0
  481. package/dist/gallery/states/keyword-page.d.ts.map +1 -0
  482. package/dist/gallery/states/keyword-page.js +13 -0
  483. package/dist/gallery/states/keyword-page.js.map +1 -0
  484. package/dist/gallery/states/meeting-page-corporate.d.ts +3 -0
  485. package/dist/gallery/states/meeting-page-corporate.d.ts.map +1 -0
  486. package/dist/gallery/states/meeting-page-corporate.js +16 -0
  487. package/dist/gallery/states/meeting-page-corporate.js.map +1 -0
  488. package/dist/gallery/states/meeting-page-no-script.d.ts +3 -0
  489. package/dist/gallery/states/meeting-page-no-script.d.ts.map +1 -0
  490. package/dist/gallery/states/meeting-page-no-script.js +10 -0
  491. package/dist/gallery/states/meeting-page-no-script.js.map +1 -0
  492. package/dist/gallery/states/mentions-panel-empty.d.ts +3 -0
  493. package/dist/gallery/states/mentions-panel-empty.d.ts.map +1 -0
  494. package/dist/gallery/states/mentions-panel-empty.js +15 -0
  495. package/dist/gallery/states/mentions-panel-empty.js.map +1 -0
  496. package/dist/gallery/states/mentions-panel-island.d.ts +3 -0
  497. package/dist/gallery/states/mentions-panel-island.d.ts.map +1 -0
  498. package/dist/gallery/states/mentions-panel-island.js +20 -0
  499. package/dist/gallery/states/mentions-panel-island.js.map +1 -0
  500. package/dist/gallery/states/mentions-panel.d.ts +3 -0
  501. package/dist/gallery/states/mentions-panel.d.ts.map +1 -0
  502. package/dist/gallery/states/mentions-panel.js +16 -0
  503. package/dist/gallery/states/mentions-panel.js.map +1 -0
  504. package/dist/gallery/states/neighbourhood-empty.d.ts +3 -0
  505. package/dist/gallery/states/neighbourhood-empty.d.ts.map +1 -0
  506. package/dist/gallery/states/neighbourhood-empty.js +16 -0
  507. package/dist/gallery/states/neighbourhood-empty.js.map +1 -0
  508. package/dist/gallery/states/neighbourhood-full.d.ts +3 -0
  509. package/dist/gallery/states/neighbourhood-full.d.ts.map +1 -0
  510. package/dist/gallery/states/neighbourhood-full.js +16 -0
  511. package/dist/gallery/states/neighbourhood-full.js.map +1 -0
  512. package/dist/gallery/states/neighbourhood-overflow.d.ts +3 -0
  513. package/dist/gallery/states/neighbourhood-overflow.d.ts.map +1 -0
  514. package/dist/gallery/states/neighbourhood-overflow.js +16 -0
  515. package/dist/gallery/states/neighbourhood-overflow.js.map +1 -0
  516. package/dist/gallery/states/neighbourhood.d.ts +3 -0
  517. package/dist/gallery/states/neighbourhood.d.ts.map +1 -0
  518. package/dist/gallery/states/neighbourhood.js +16 -0
  519. package/dist/gallery/states/neighbourhood.js.map +1 -0
  520. package/dist/gallery/states/not-found-corporate.d.ts +3 -0
  521. package/dist/gallery/states/not-found-corporate.d.ts.map +1 -0
  522. package/dist/gallery/states/not-found-corporate.js +16 -0
  523. package/dist/gallery/states/not-found-corporate.js.map +1 -0
  524. package/dist/gallery/states/not-found-nearby.d.ts +3 -0
  525. package/dist/gallery/states/not-found-nearby.d.ts.map +1 -0
  526. package/dist/gallery/states/not-found-nearby.js +16 -0
  527. package/dist/gallery/states/not-found-nearby.js.map +1 -0
  528. package/dist/gallery/states/screen-page-corporate.d.ts +3 -0
  529. package/dist/gallery/states/screen-page-corporate.d.ts.map +1 -0
  530. package/dist/gallery/states/screen-page-corporate.js +16 -0
  531. package/dist/gallery/states/screen-page-corporate.js.map +1 -0
  532. package/dist/gallery/states/search-results-corporate.d.ts +3 -0
  533. package/dist/gallery/states/search-results-corporate.d.ts.map +1 -0
  534. package/dist/gallery/states/search-results-corporate.js +16 -0
  535. package/dist/gallery/states/search-results-corporate.js.map +1 -0
  536. package/dist/gallery/states/search-results-empty.d.ts +3 -0
  537. package/dist/gallery/states/search-results-empty.d.ts.map +1 -0
  538. package/dist/gallery/states/search-results-empty.js +13 -0
  539. package/dist/gallery/states/search-results-empty.js.map +1 -0
  540. package/dist/gallery/states/search-results-filtered.d.ts +3 -0
  541. package/dist/gallery/states/search-results-filtered.d.ts.map +1 -0
  542. package/dist/gallery/states/search-results-filtered.js +16 -0
  543. package/dist/gallery/states/search-results-filtered.js.map +1 -0
  544. package/dist/gallery/states/search-results-no-script.d.ts +3 -0
  545. package/dist/gallery/states/search-results-no-script.d.ts.map +1 -0
  546. package/dist/gallery/states/search-results-no-script.js +10 -0
  547. package/dist/gallery/states/search-results-no-script.js.map +1 -0
  548. package/dist/gallery/states/search-results.d.ts +3 -0
  549. package/dist/gallery/states/search-results.d.ts.map +1 -0
  550. package/dist/gallery/states/search-results.js +13 -0
  551. package/dist/gallery/states/search-results.js.map +1 -0
  552. package/dist/gallery/states/shell-rtl.d.ts +3 -0
  553. package/dist/gallery/states/shell-rtl.d.ts.map +1 -0
  554. package/dist/gallery/states/shell-rtl.js +14 -0
  555. package/dist/gallery/states/shell-rtl.js.map +1 -0
  556. package/dist/gallery/states/space-corporate.d.ts +3 -0
  557. package/dist/gallery/states/space-corporate.d.ts.map +1 -0
  558. package/dist/gallery/states/space-corporate.js +16 -0
  559. package/dist/gallery/states/space-corporate.js.map +1 -0
  560. package/dist/gallery/states/spaces-corporate.d.ts +3 -0
  561. package/dist/gallery/states/spaces-corporate.d.ts.map +1 -0
  562. package/dist/gallery/states/spaces-corporate.js +16 -0
  563. package/dist/gallery/states/spaces-corporate.js.map +1 -0
  564. package/dist/gallery/states/todo-corporate.d.ts +3 -0
  565. package/dist/gallery/states/todo-corporate.d.ts.map +1 -0
  566. package/dist/gallery/states/todo-corporate.js +16 -0
  567. package/dist/gallery/states/todo-corporate.js.map +1 -0
  568. package/dist/gallery/states/todo-empty.d.ts +3 -0
  569. package/dist/gallery/states/todo-empty.d.ts.map +1 -0
  570. package/dist/gallery/states/todo-empty.js +12 -0
  571. package/dist/gallery/states/todo-empty.js.map +1 -0
  572. package/dist/gallery/states/todo.d.ts +3 -0
  573. package/dist/gallery/states/todo.d.ts.map +1 -0
  574. package/dist/gallery/states/todo.js +13 -0
  575. package/dist/gallery/states/todo.js.map +1 -0
  576. package/dist/gallery/types.d.ts +27 -0
  577. package/dist/gallery/types.d.ts.map +1 -0
  578. package/dist/gallery/types.js +107 -0
  579. package/dist/gallery/types.js.map +1 -0
  580. package/dist/gallery/width-switch.d.ts +11 -0
  581. package/dist/gallery/width-switch.d.ts.map +1 -0
  582. package/dist/gallery/width-switch.js +18 -0
  583. package/dist/gallery/width-switch.js.map +1 -0
  584. package/dist/gallery/width.client.d.ts +2 -0
  585. package/dist/gallery/width.client.d.ts.map +1 -0
  586. package/dist/gallery/width.client.js +6 -0
  587. package/dist/gallery/width.client.js.map +1 -0
  588. package/dist/gallery/width.d.ts +35 -0
  589. package/dist/gallery/width.d.ts.map +1 -0
  590. package/dist/gallery/width.js +40 -0
  591. package/dist/gallery/width.js.map +1 -0
  592. package/dist/index.d.ts +95 -0
  593. package/dist/index.d.ts.map +1 -0
  594. package/dist/index.js +82 -0
  595. package/dist/index.js.map +1 -0
  596. package/dist/islands/age.client.d.ts +2 -0
  597. package/dist/islands/age.client.d.ts.map +1 -0
  598. package/dist/islands/age.client.js +6 -0
  599. package/dist/islands/age.client.js.map +1 -0
  600. package/dist/islands/age.d.ts +43 -0
  601. package/dist/islands/age.d.ts.map +1 -0
  602. package/dist/islands/age.js +67 -0
  603. package/dist/islands/age.js.map +1 -0
  604. package/dist/islands/bundle.d.ts +50 -0
  605. package/dist/islands/bundle.d.ts.map +1 -0
  606. package/dist/islands/bundle.js +152 -0
  607. package/dist/islands/bundle.js.map +1 -0
  608. package/dist/islands/category-list.client.d.ts +2 -0
  609. package/dist/islands/category-list.client.d.ts.map +1 -0
  610. package/dist/islands/category-list.client.js +5 -0
  611. package/dist/islands/category-list.client.js.map +1 -0
  612. package/dist/islands/contract-viewer.client.d.ts +2 -0
  613. package/dist/islands/contract-viewer.client.d.ts.map +1 -0
  614. package/dist/islands/contract-viewer.client.js +5 -0
  615. package/dist/islands/contract-viewer.client.js.map +1 -0
  616. package/dist/islands/document-viewer.client.d.ts +2 -0
  617. package/dist/islands/document-viewer.client.d.ts.map +1 -0
  618. package/dist/islands/document-viewer.client.js +10 -0
  619. package/dist/islands/document-viewer.client.js.map +1 -0
  620. package/dist/islands/document-viewer.d.ts +41 -0
  621. package/dist/islands/document-viewer.d.ts.map +1 -0
  622. package/dist/islands/document-viewer.js +130 -0
  623. package/dist/islands/document-viewer.js.map +1 -0
  624. package/dist/islands/editable.d.ts +12 -0
  625. package/dist/islands/editable.d.ts.map +1 -0
  626. package/dist/islands/editable.js +12 -0
  627. package/dist/islands/editable.js.map +1 -0
  628. package/dist/islands/element.d.ts +3 -0
  629. package/dist/islands/element.d.ts.map +1 -0
  630. package/dist/islands/element.js +3 -0
  631. package/dist/islands/element.js.map +1 -0
  632. package/dist/islands/island.d.ts +10 -0
  633. package/dist/islands/island.d.ts.map +1 -0
  634. package/dist/islands/island.js +24 -0
  635. package/dist/islands/island.js.map +1 -0
  636. package/dist/islands/mentions-panel.client.d.ts +2 -0
  637. package/dist/islands/mentions-panel.client.d.ts.map +1 -0
  638. package/dist/islands/mentions-panel.client.js +10 -0
  639. package/dist/islands/mentions-panel.client.js.map +1 -0
  640. package/dist/islands/mentions-rest.d.ts +22 -0
  641. package/dist/islands/mentions-rest.d.ts.map +1 -0
  642. package/dist/islands/mentions-rest.js +44 -0
  643. package/dist/islands/mentions-rest.js.map +1 -0
  644. package/dist/islands/mode-switch.client.d.ts +2 -0
  645. package/dist/islands/mode-switch.client.d.ts.map +1 -0
  646. package/dist/islands/mode-switch.client.js +14 -0
  647. package/dist/islands/mode-switch.client.js.map +1 -0
  648. package/dist/islands/mode-switch.d.ts +54 -0
  649. package/dist/islands/mode-switch.d.ts.map +1 -0
  650. package/dist/islands/mode-switch.js +64 -0
  651. package/dist/islands/mode-switch.js.map +1 -0
  652. package/dist/islands/mount.d.ts +11 -0
  653. package/dist/islands/mount.d.ts.map +1 -0
  654. package/dist/islands/mount.js +14 -0
  655. package/dist/islands/mount.js.map +1 -0
  656. package/dist/islands/not-found.client.d.ts +2 -0
  657. package/dist/islands/not-found.client.d.ts.map +1 -0
  658. package/dist/islands/not-found.client.js +18 -0
  659. package/dist/islands/not-found.client.js.map +1 -0
  660. package/dist/islands/not-found.d.ts +56 -0
  661. package/dist/islands/not-found.d.ts.map +1 -0
  662. package/dist/islands/not-found.js +138 -0
  663. package/dist/islands/not-found.js.map +1 -0
  664. package/dist/islands/panels.client.d.ts +2 -0
  665. package/dist/islands/panels.client.d.ts.map +1 -0
  666. package/dist/islands/panels.client.js +6 -0
  667. package/dist/islands/panels.client.js.map +1 -0
  668. package/dist/islands/panels.d.ts +48 -0
  669. package/dist/islands/panels.d.ts.map +1 -0
  670. package/dist/islands/panels.js +95 -0
  671. package/dist/islands/panels.js.map +1 -0
  672. package/dist/islands/pins.client.d.ts +2 -0
  673. package/dist/islands/pins.client.d.ts.map +1 -0
  674. package/dist/islands/pins.client.js +6 -0
  675. package/dist/islands/pins.client.js.map +1 -0
  676. package/dist/islands/pins.d.ts +30 -0
  677. package/dist/islands/pins.d.ts.map +1 -0
  678. package/dist/islands/pins.js +134 -0
  679. package/dist/islands/pins.js.map +1 -0
  680. package/dist/islands/search.client.d.ts +2 -0
  681. package/dist/islands/search.client.d.ts.map +1 -0
  682. package/dist/islands/search.client.js +58 -0
  683. package/dist/islands/search.client.js.map +1 -0
  684. package/dist/islands/search.d.ts +221 -0
  685. package/dist/islands/search.d.ts.map +1 -0
  686. package/dist/islands/search.js +606 -0
  687. package/dist/islands/search.js.map +1 -0
  688. package/dist/islands/shards.d.ts +27 -0
  689. package/dist/islands/shards.d.ts.map +1 -0
  690. package/dist/islands/shards.js +39 -0
  691. package/dist/islands/shards.js.map +1 -0
  692. package/dist/islands/tabs.client.d.ts +2 -0
  693. package/dist/islands/tabs.client.d.ts.map +1 -0
  694. package/dist/islands/tabs.client.js +6 -0
  695. package/dist/islands/tabs.client.js.map +1 -0
  696. package/dist/islands/tabs.d.ts +24 -0
  697. package/dist/islands/tabs.d.ts.map +1 -0
  698. package/dist/islands/tabs.js +79 -0
  699. package/dist/islands/tabs.js.map +1 -0
  700. package/dist/islands/toc.client.d.ts +2 -0
  701. package/dist/islands/toc.client.d.ts.map +1 -0
  702. package/dist/islands/toc.client.js +11 -0
  703. package/dist/islands/toc.client.js.map +1 -0
  704. package/dist/islands/toc.d.ts +37 -0
  705. package/dist/islands/toc.d.ts.map +1 -0
  706. package/dist/islands/toc.js +50 -0
  707. package/dist/islands/toc.js.map +1 -0
  708. package/dist/islands/trail.client.d.ts +2 -0
  709. package/dist/islands/trail.client.d.ts.map +1 -0
  710. package/dist/islands/trail.client.js +12 -0
  711. package/dist/islands/trail.client.js.map +1 -0
  712. package/dist/islands/trail.d.ts +95 -0
  713. package/dist/islands/trail.d.ts.map +1 -0
  714. package/dist/islands/trail.js +223 -0
  715. package/dist/islands/trail.js.map +1 -0
  716. package/dist/islands/viewer-pdf.client.d.ts +7 -0
  717. package/dist/islands/viewer-pdf.client.d.ts.map +1 -0
  718. package/dist/islands/viewer-pdf.client.js +13 -0
  719. package/dist/islands/viewer-pdf.client.js.map +1 -0
  720. package/dist/islands/viewer-pdf.d.ts +50 -0
  721. package/dist/islands/viewer-pdf.d.ts.map +1 -0
  722. package/dist/islands/viewer-pdf.js +157 -0
  723. package/dist/islands/viewer-pdf.js.map +1 -0
  724. package/dist/markdown/figures.d.ts +16 -0
  725. package/dist/markdown/figures.d.ts.map +1 -0
  726. package/dist/markdown/figures.js +26 -0
  727. package/dist/markdown/figures.js.map +1 -0
  728. package/dist/markdown/marks.d.ts +14 -0
  729. package/dist/markdown/marks.d.ts.map +1 -0
  730. package/dist/markdown/marks.js +10 -0
  731. package/dist/markdown/marks.js.map +1 -0
  732. package/dist/markdown/render.d.ts +67 -0
  733. package/dist/markdown/render.d.ts.map +1 -0
  734. package/dist/markdown/render.js +402 -0
  735. package/dist/markdown/render.js.map +1 -0
  736. package/dist/mode.d.ts +21 -0
  737. package/dist/mode.d.ts.map +1 -0
  738. package/dist/mode.js +25 -0
  739. package/dist/mode.js.map +1 -0
  740. package/dist/neighbourhood/layout.d.ts +58 -0
  741. package/dist/neighbourhood/layout.d.ts.map +1 -0
  742. package/dist/neighbourhood/layout.js +171 -0
  743. package/dist/neighbourhood/layout.js.map +1 -0
  744. package/dist/order.d.ts +2 -0
  745. package/dist/order.d.ts.map +1 -0
  746. package/dist/order.js +5 -0
  747. package/dist/order.js.map +1 -0
  748. package/dist/panels.d.ts +21 -0
  749. package/dist/panels.d.ts.map +1 -0
  750. package/dist/panels.js +31 -0
  751. package/dist/panels.js.map +1 -0
  752. package/dist/pins.d.ts +46 -0
  753. package/dist/pins.d.ts.map +1 -0
  754. package/dist/pins.js +132 -0
  755. package/dist/pins.js.map +1 -0
  756. package/dist/render.d.ts +38 -0
  757. package/dist/render.d.ts.map +1 -0
  758. package/dist/render.js +64 -0
  759. package/dist/render.js.map +1 -0
  760. package/dist/search/build.d.ts +91 -0
  761. package/dist/search/build.d.ts.map +1 -0
  762. package/dist/search/build.js +256 -0
  763. package/dist/search/build.js.map +1 -0
  764. package/dist/search/facets.d.ts +40 -0
  765. package/dist/search/facets.d.ts.map +1 -0
  766. package/dist/search/facets.js +159 -0
  767. package/dist/search/facets.js.map +1 -0
  768. package/dist/search/highlight.d.ts +13 -0
  769. package/dist/search/highlight.d.ts.map +1 -0
  770. package/dist/search/highlight.js +72 -0
  771. package/dist/search/highlight.js.map +1 -0
  772. package/dist/search/shared.d.ts +194 -0
  773. package/dist/search/shared.d.ts.map +1 -0
  774. package/dist/search/shared.js +166 -0
  775. package/dist/search/shared.js.map +1 -0
  776. package/dist/search/state.d.ts +30 -0
  777. package/dist/search/state.d.ts.map +1 -0
  778. package/dist/search/state.js +82 -0
  779. package/dist/search/state.js.map +1 -0
  780. package/dist/slots.d.ts +1768 -0
  781. package/dist/slots.d.ts.map +1 -0
  782. package/dist/slots.js +57 -0
  783. package/dist/slots.js.map +1 -0
  784. package/dist/theme/chrome.d.ts +30 -0
  785. package/dist/theme/chrome.d.ts.map +1 -0
  786. package/dist/theme/chrome.js +59 -0
  787. package/dist/theme/chrome.js.map +1 -0
  788. package/dist/theme/context.d.ts +18 -0
  789. package/dist/theme/context.d.ts.map +1 -0
  790. package/dist/theme/context.js +38 -0
  791. package/dist/theme/context.js.map +1 -0
  792. package/dist/theme/default/about.d.ts +12 -0
  793. package/dist/theme/default/about.d.ts.map +1 -0
  794. package/dist/theme/default/about.js +88 -0
  795. package/dist/theme/default/about.js.map +1 -0
  796. package/dist/theme/default/age-notice.d.ts +36 -0
  797. package/dist/theme/default/age-notice.d.ts.map +1 -0
  798. package/dist/theme/default/age-notice.js +18 -0
  799. package/dist/theme/default/age-notice.js.map +1 -0
  800. package/dist/theme/default/api-page.d.ts +28 -0
  801. package/dist/theme/default/api-page.d.ts.map +1 -0
  802. package/dist/theme/default/api-page.js +47 -0
  803. package/dist/theme/default/api-page.js.map +1 -0
  804. package/dist/theme/default/attributes.d.ts +20 -0
  805. package/dist/theme/default/attributes.d.ts.map +1 -0
  806. package/dist/theme/default/attributes.js +20 -0
  807. package/dist/theme/default/attributes.js.map +1 -0
  808. package/dist/theme/default/category-island.d.ts +80 -0
  809. package/dist/theme/default/category-island.d.ts.map +1 -0
  810. package/dist/theme/default/category-island.js +161 -0
  811. package/dist/theme/default/category-island.js.map +1 -0
  812. package/dist/theme/default/category-list.d.ts +14 -0
  813. package/dist/theme/default/category-list.d.ts.map +1 -0
  814. package/dist/theme/default/category-list.js +47 -0
  815. package/dist/theme/default/category-list.js.map +1 -0
  816. package/dist/theme/default/contract-section.d.ts +13 -0
  817. package/dist/theme/default/contract-section.d.ts.map +1 -0
  818. package/dist/theme/default/contract-section.js +66 -0
  819. package/dist/theme/default/contract-section.js.map +1 -0
  820. package/dist/theme/default/contract-viewer.d.ts +46 -0
  821. package/dist/theme/default/contract-viewer.d.ts.map +1 -0
  822. package/dist/theme/default/contract-viewer.js +105 -0
  823. package/dist/theme/default/contract-viewer.js.map +1 -0
  824. package/dist/theme/default/decision-page.d.ts +24 -0
  825. package/dist/theme/default/decision-page.d.ts.map +1 -0
  826. package/dist/theme/default/decision-page.js +91 -0
  827. package/dist/theme/default/decision-page.js.map +1 -0
  828. package/dist/theme/default/document-page.d.ts +23 -0
  829. package/dist/theme/default/document-page.d.ts.map +1 -0
  830. package/dist/theme/default/document-page.js +143 -0
  831. package/dist/theme/default/document-page.js.map +1 -0
  832. package/dist/theme/default/document-viewer.d.ts +70 -0
  833. package/dist/theme/default/document-viewer.d.ts.map +1 -0
  834. package/dist/theme/default/document-viewer.js +93 -0
  835. package/dist/theme/default/document-viewer.js.map +1 -0
  836. package/dist/theme/default/drawer.d.ts +20 -0
  837. package/dist/theme/default/drawer.d.ts.map +1 -0
  838. package/dist/theme/default/drawer.js +25 -0
  839. package/dist/theme/default/drawer.js.map +1 -0
  840. package/dist/theme/default/entity-page.d.ts +75 -0
  841. package/dist/theme/default/entity-page.d.ts.map +1 -0
  842. package/dist/theme/default/entity-page.js +140 -0
  843. package/dist/theme/default/entity-page.js.map +1 -0
  844. package/dist/theme/default/footer.d.ts +15 -0
  845. package/dist/theme/default/footer.d.ts.map +1 -0
  846. package/dist/theme/default/footer.js +57 -0
  847. package/dist/theme/default/footer.js.map +1 -0
  848. package/dist/theme/default/glyphs.d.ts +19 -0
  849. package/dist/theme/default/glyphs.d.ts.map +1 -0
  850. package/dist/theme/default/glyphs.js +56 -0
  851. package/dist/theme/default/glyphs.js.map +1 -0
  852. package/dist/theme/default/grouped-files.d.ts +12 -0
  853. package/dist/theme/default/grouped-files.d.ts.map +1 -0
  854. package/dist/theme/default/grouped-files.js +11 -0
  855. package/dist/theme/default/grouped-files.js.map +1 -0
  856. package/dist/theme/default/header.d.ts +11 -0
  857. package/dist/theme/default/header.d.ts.map +1 -0
  858. package/dist/theme/default/header.js +23 -0
  859. package/dist/theme/default/header.js.map +1 -0
  860. package/dist/theme/default/home.d.ts +13 -0
  861. package/dist/theme/default/home.d.ts.map +1 -0
  862. package/dist/theme/default/home.js +45 -0
  863. package/dist/theme/default/home.js.map +1 -0
  864. package/dist/theme/default/index-page.d.ts +29 -0
  865. package/dist/theme/default/index-page.d.ts.map +1 -0
  866. package/dist/theme/default/index-page.js +97 -0
  867. package/dist/theme/default/index-page.js.map +1 -0
  868. package/dist/theme/default/index.d.ts +13 -0
  869. package/dist/theme/default/index.d.ts.map +1 -0
  870. package/dist/theme/default/index.js +55 -0
  871. package/dist/theme/default/index.js.map +1 -0
  872. package/dist/theme/default/keyword-page.d.ts +20 -0
  873. package/dist/theme/default/keyword-page.d.ts.map +1 -0
  874. package/dist/theme/default/keyword-page.js +68 -0
  875. package/dist/theme/default/keyword-page.js.map +1 -0
  876. package/dist/theme/default/labels.d.ts +223 -0
  877. package/dist/theme/default/labels.d.ts.map +1 -0
  878. package/dist/theme/default/labels.js +223 -0
  879. package/dist/theme/default/labels.js.map +1 -0
  880. package/dist/theme/default/meeting-page.d.ts +20 -0
  881. package/dist/theme/default/meeting-page.d.ts.map +1 -0
  882. package/dist/theme/default/meeting-page.js +122 -0
  883. package/dist/theme/default/meeting-page.js.map +1 -0
  884. package/dist/theme/default/mention-list.d.ts +70 -0
  885. package/dist/theme/default/mention-list.d.ts.map +1 -0
  886. package/dist/theme/default/mention-list.js +99 -0
  887. package/dist/theme/default/mention-list.js.map +1 -0
  888. package/dist/theme/default/mentions-island.d.ts +100 -0
  889. package/dist/theme/default/mentions-island.d.ts.map +1 -0
  890. package/dist/theme/default/mentions-island.js +169 -0
  891. package/dist/theme/default/mentions-island.js.map +1 -0
  892. package/dist/theme/default/mentions-more.d.ts +22 -0
  893. package/dist/theme/default/mentions-more.d.ts.map +1 -0
  894. package/dist/theme/default/mentions-more.js +25 -0
  895. package/dist/theme/default/mentions-more.js.map +1 -0
  896. package/dist/theme/default/mentions-panel.d.ts +16 -0
  897. package/dist/theme/default/mentions-panel.d.ts.map +1 -0
  898. package/dist/theme/default/mentions-panel.js +50 -0
  899. package/dist/theme/default/mentions-panel.js.map +1 -0
  900. package/dist/theme/default/mode-switch.d.ts +9 -0
  901. package/dist/theme/default/mode-switch.d.ts.map +1 -0
  902. package/dist/theme/default/mode-switch.js +19 -0
  903. package/dist/theme/default/mode-switch.js.map +1 -0
  904. package/dist/theme/default/neighbourhood.d.ts +29 -0
  905. package/dist/theme/default/neighbourhood.d.ts.map +1 -0
  906. package/dist/theme/default/neighbourhood.js +146 -0
  907. package/dist/theme/default/neighbourhood.js.map +1 -0
  908. package/dist/theme/default/not-found.d.ts +14 -0
  909. package/dist/theme/default/not-found.d.ts.map +1 -0
  910. package/dist/theme/default/not-found.js +27 -0
  911. package/dist/theme/default/not-found.js.map +1 -0
  912. package/dist/theme/default/page-notice.d.ts +10 -0
  913. package/dist/theme/default/page-notice.d.ts.map +1 -0
  914. package/dist/theme/default/page-notice.js +11 -0
  915. package/dist/theme/default/page-notice.js.map +1 -0
  916. package/dist/theme/default/panel-block.d.ts +14 -0
  917. package/dist/theme/default/panel-block.d.ts.map +1 -0
  918. package/dist/theme/default/panel-block.js +9 -0
  919. package/dist/theme/default/panel-block.js.map +1 -0
  920. package/dist/theme/default/panel-handle.d.ts +29 -0
  921. package/dist/theme/default/panel-handle.d.ts.map +1 -0
  922. package/dist/theme/default/panel-handle.js +35 -0
  923. package/dist/theme/default/panel-handle.js.map +1 -0
  924. package/dist/theme/default/pins.d.ts +22 -0
  925. package/dist/theme/default/pins.d.ts.map +1 -0
  926. package/dist/theme/default/pins.js +53 -0
  927. package/dist/theme/default/pins.js.map +1 -0
  928. package/dist/theme/default/plugin.d.ts +11 -0
  929. package/dist/theme/default/plugin.d.ts.map +1 -0
  930. package/dist/theme/default/plugin.js +28 -0
  931. package/dist/theme/default/plugin.js.map +1 -0
  932. package/dist/theme/default/result-list.d.ts +13 -0
  933. package/dist/theme/default/result-list.d.ts.map +1 -0
  934. package/dist/theme/default/result-list.js +27 -0
  935. package/dist/theme/default/result-list.js.map +1 -0
  936. package/dist/theme/default/search-island.d.ts +29 -0
  937. package/dist/theme/default/search-island.d.ts.map +1 -0
  938. package/dist/theme/default/search-island.js +45 -0
  939. package/dist/theme/default/search-island.js.map +1 -0
  940. package/dist/theme/default/search-results.d.ts +12 -0
  941. package/dist/theme/default/search-results.d.ts.map +1 -0
  942. package/dist/theme/default/search-results.js +85 -0
  943. package/dist/theme/default/search-results.js.map +1 -0
  944. package/dist/theme/default/search-suggestions.d.ts +51 -0
  945. package/dist/theme/default/search-suggestions.d.ts.map +1 -0
  946. package/dist/theme/default/search-suggestions.js +55 -0
  947. package/dist/theme/default/search-suggestions.js.map +1 -0
  948. package/dist/theme/default/shell.d.ts +4 -0
  949. package/dist/theme/default/shell.d.ts.map +1 -0
  950. package/dist/theme/default/shell.js +16 -0
  951. package/dist/theme/default/shell.js.map +1 -0
  952. package/dist/theme/default/space-tree.d.ts +24 -0
  953. package/dist/theme/default/space-tree.d.ts.map +1 -0
  954. package/dist/theme/default/space-tree.js +50 -0
  955. package/dist/theme/default/space-tree.js.map +1 -0
  956. package/dist/theme/default/space.d.ts +14 -0
  957. package/dist/theme/default/space.d.ts.map +1 -0
  958. package/dist/theme/default/space.js +47 -0
  959. package/dist/theme/default/space.js.map +1 -0
  960. package/dist/theme/default/spaces.d.ts +12 -0
  961. package/dist/theme/default/spaces.d.ts.map +1 -0
  962. package/dist/theme/default/spaces.js +35 -0
  963. package/dist/theme/default/spaces.js.map +1 -0
  964. package/dist/theme/default/tabs.d.ts +38 -0
  965. package/dist/theme/default/tabs.d.ts.map +1 -0
  966. package/dist/theme/default/tabs.js +29 -0
  967. package/dist/theme/default/tabs.js.map +1 -0
  968. package/dist/theme/default/toc.d.ts +19 -0
  969. package/dist/theme/default/toc.d.ts.map +1 -0
  970. package/dist/theme/default/toc.js +26 -0
  971. package/dist/theme/default/toc.js.map +1 -0
  972. package/dist/theme/default/todo.d.ts +8 -0
  973. package/dist/theme/default/todo.d.ts.map +1 -0
  974. package/dist/theme/default/todo.js +33 -0
  975. package/dist/theme/default/todo.js.map +1 -0
  976. package/dist/theme/default/trail.d.ts +9 -0
  977. package/dist/theme/default/trail.d.ts.map +1 -0
  978. package/dist/theme/default/trail.js +24 -0
  979. package/dist/theme/default/trail.js.map +1 -0
  980. package/dist/theme/load.d.ts +45 -0
  981. package/dist/theme/load.d.ts.map +1 -0
  982. package/dist/theme/load.js +123 -0
  983. package/dist/theme/load.js.map +1 -0
  984. package/dist/theme/node-loader.d.ts +10 -0
  985. package/dist/theme/node-loader.d.ts.map +1 -0
  986. package/dist/theme/node-loader.js +36 -0
  987. package/dist/theme/node-loader.js.map +1 -0
  988. package/dist/theme/resolve.d.ts +27 -0
  989. package/dist/theme/resolve.d.ts.map +1 -0
  990. package/dist/theme/resolve.js +184 -0
  991. package/dist/theme/resolve.js.map +1 -0
  992. package/dist/theme/types.d.ts +44 -0
  993. package/dist/theme/types.d.ts.map +1 -0
  994. package/dist/theme/types.js +2 -0
  995. package/dist/theme/types.js.map +1 -0
  996. package/package.json +60 -0
@@ -0,0 +1,14 @@
1
+ /**
2
+ * A static accessibility checker for the generated pages: the structural rules a page can break
3
+ * at build time, with no browser and no dependency. Contrast is checked on the palette by
4
+ * `checkContrast`, and the axe-core audit of the site tests covers what needs a DOM.
5
+ */
6
+ export declare const A11Y_RULES: readonly ["html-lang", "single-h1", "heading-order", "img-alt", "control-label", "landmarks", "link-text", "unique-id", "skip-link", "aria-expanded-on-toggles", "details-summary", "tab-roles", "focusable-has-visible-name"];
7
+ export type A11yRule = (typeof A11Y_RULES)[number];
8
+ export interface A11yFinding {
9
+ rule: A11yRule;
10
+ message: string;
11
+ }
12
+ /** Every finding of every rule, in rule order then document order; an empty list means the page passes. */
13
+ export declare function checkAccessibility(html: string): A11yFinding[];
14
+ //# sourceMappingURL=check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/a11y/check.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,UAAU,gOAcb,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAybD,2GAA2G;AAC3G,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CAgB9D"}
@@ -0,0 +1,442 @@
1
+ /**
2
+ * A static accessibility checker for the generated pages: the structural rules a page can break
3
+ * at build time, with no browser and no dependency. Contrast is checked on the palette by
4
+ * `checkContrast`, and the axe-core audit of the site tests covers what needs a DOM.
5
+ */
6
+ export const A11Y_RULES = [
7
+ "html-lang",
8
+ "single-h1",
9
+ "heading-order",
10
+ "img-alt",
11
+ "control-label",
12
+ "landmarks",
13
+ "link-text",
14
+ "unique-id",
15
+ "skip-link",
16
+ "aria-expanded-on-toggles",
17
+ "details-summary",
18
+ "tab-roles",
19
+ "focusable-has-visible-name",
20
+ ];
21
+ const VOID_ELEMENTS = new Set([
22
+ "area",
23
+ "base",
24
+ "br",
25
+ "col",
26
+ "embed",
27
+ "hr",
28
+ "img",
29
+ "input",
30
+ "link",
31
+ "meta",
32
+ "source",
33
+ "track",
34
+ "wbr",
35
+ ]);
36
+ // A tag runs to the first `>` outside double quotes, the only quotes the renderer writes; the lookahead
37
+ // after the name keeps the engine from shifting name characters into the attributes on a malformed tag.
38
+ const TAG = /<(\/?)([a-zA-Z][\w-]*)(?![\w-])((?:"[^"]*"|[^"<>])*?)(\/?)>/g;
39
+ // A quoted value ends at the quote that opened it; the `s` flag lets it span lines.
40
+ const ATTRIBUTE = /([^\s=>/]+)(?:\s*=\s*(?:(["'])(.*?)\2|([^\s>]+)))?/gs;
41
+ function parseAttributes(source) {
42
+ const attributes = {};
43
+ for (const match of source.matchAll(ATTRIBUTE)) {
44
+ const [, name, , quoted, bare] = match;
45
+ // The name group is unconditional in the pattern: a match always carries it.
46
+ attributes[name.toLowerCase()] = quoted ?? bare ?? "";
47
+ }
48
+ return attributes;
49
+ }
50
+ /** A lenient tree of the document: void elements close themselves, a stray closing tag is ignored. */
51
+ function parse(html) {
52
+ const root = { tag: "#root", attributes: {}, children: [] };
53
+ const open = [];
54
+ const current = () => open.at(-1) ?? root;
55
+ let last = 0;
56
+ for (const match of html.matchAll(TAG)) {
57
+ const [whole, closing, name, attributes, selfClosing] = match;
58
+ // The tag group is unconditional and the attributes group matches the empty string: neither is undefined.
59
+ const tag = name.toLowerCase();
60
+ const text = html.slice(last, match.index);
61
+ if (text !== "")
62
+ current().children.push(text);
63
+ last = match.index + whole.length;
64
+ if (closing === "/") {
65
+ const depth = open.map((element) => element.tag).lastIndexOf(tag);
66
+ if (depth >= 0)
67
+ open.length = depth;
68
+ continue;
69
+ }
70
+ const element = {
71
+ tag,
72
+ attributes: parseAttributes(attributes),
73
+ children: [],
74
+ };
75
+ current().children.push(element);
76
+ if (!VOID_ELEMENTS.has(tag) && selfClosing !== "/")
77
+ open.push(element);
78
+ }
79
+ const tail = html.slice(last);
80
+ if (tail !== "")
81
+ current().children.push(tail);
82
+ return root;
83
+ }
84
+ function* walk(element) {
85
+ for (const child of element.children) {
86
+ if (typeof child === "string")
87
+ continue;
88
+ yield child;
89
+ yield* walk(child);
90
+ }
91
+ }
92
+ function elements(root, tag) {
93
+ return [...walk(root)].filter((element) => element.tag === tag);
94
+ }
95
+ function textOf(element) {
96
+ return element.children
97
+ .map((child) => (typeof child === "string" ? child : textOf(child)))
98
+ .join("")
99
+ .replaceAll("&nbsp;", " ")
100
+ .trim();
101
+ }
102
+ /** What a screen reader announces for an element: its text, its label, or the alternative of an image inside. */
103
+ function accessibleName(element) {
104
+ const label = element.attributes["aria-label"] ?? element.attributes["aria-labelledby"] ?? "";
105
+ if (label.trim() !== "")
106
+ return label;
107
+ const images = elements(element, "img").map((image) => image.attributes["alt"] ?? "");
108
+ return [textOf(element), ...images].join("").trim();
109
+ }
110
+ function label(element) {
111
+ const id = element.attributes["id"];
112
+ return id === undefined ? `<${element.tag}>` : `<${element.tag} id="${id}">`;
113
+ }
114
+ function checkLang(root) {
115
+ const html = elements(root, "html")[0];
116
+ if (html === undefined || (html.attributes["lang"] ?? "").trim() === "") {
117
+ return [{ rule: "html-lang", message: "the html element carries no lang attribute" }];
118
+ }
119
+ return [];
120
+ }
121
+ function checkHeadings(root) {
122
+ const findings = [];
123
+ const headings = [...walk(root)].filter((element) => /^h[1-6]$/.test(element.tag));
124
+ const count = headings.filter((heading) => heading.tag === "h1").length;
125
+ if (count !== 1) {
126
+ findings.push({ rule: "single-h1", message: `${String(count)} h1 elements, expected one` });
127
+ }
128
+ let previous = 0;
129
+ for (const heading of headings) {
130
+ const level = Number(heading.tag.slice(1));
131
+ if (level > previous + 1) {
132
+ const before = previous === 0 ? "no heading" : `h${String(previous)}`;
133
+ findings.push({
134
+ rule: "heading-order",
135
+ message: `${heading.tag} "${textOf(heading)}" follows ${before}`,
136
+ });
137
+ }
138
+ previous = level;
139
+ }
140
+ return findings;
141
+ }
142
+ function checkImages(root) {
143
+ return elements(root, "img")
144
+ .filter((image) => image.attributes["alt"] === undefined)
145
+ .map((image) => ({
146
+ rule: "img-alt",
147
+ message: `<img src="${image.attributes["src"] ?? ""}"> has no alt attribute`,
148
+ }));
149
+ }
150
+ const UNLABELLED_INPUT_TYPES = new Set(["hidden", "submit", "reset", "button", "image"]);
151
+ /** The ids a `<label for>` points at. */
152
+ function labelledIds(root) {
153
+ return new Set(elements(root, "label")
154
+ .map((label) => label.attributes["for"])
155
+ .filter((target) => target !== undefined));
156
+ }
157
+ function checkControls(root) {
158
+ const labelled = labelledIds(root);
159
+ const findings = [];
160
+ for (const element of walk(root)) {
161
+ const type = (element.attributes["type"] ?? "text").toLowerCase();
162
+ const control = element.tag === "select" ||
163
+ element.tag === "textarea" ||
164
+ (element.tag === "input" && !UNLABELLED_INPUT_TYPES.has(type)) ||
165
+ element.tag === "button";
166
+ if (!control)
167
+ continue;
168
+ const id = element.attributes["id"];
169
+ const named = accessibleName(element) !== "" || (id !== undefined && labelled.has(id));
170
+ if (!named) {
171
+ findings.push({ rule: "control-label", message: `${label(element)} has no label` });
172
+ }
173
+ }
174
+ return findings;
175
+ }
176
+ function checkLandmarks(root) {
177
+ const findings = [];
178
+ for (const landmark of ["main", "nav", "header", "footer"]) {
179
+ if (elements(root, landmark).length === 0) {
180
+ findings.push({ rule: "landmarks", message: `no ${landmark} landmark` });
181
+ }
182
+ }
183
+ const mains = elements(root, "main").length;
184
+ if (mains > 1) {
185
+ findings.push({ rule: "landmarks", message: `${String(mains)} main landmarks, expected one` });
186
+ }
187
+ return findings;
188
+ }
189
+ /** An anchor without href is a target, not a link: only links need a name. */
190
+ function checkLinks(root) {
191
+ const findings = [];
192
+ for (const link of elements(root, "a")) {
193
+ const href = link.attributes["href"];
194
+ if (href !== undefined && accessibleName(link) === "") {
195
+ findings.push({ rule: "link-text", message: `<a href="${href}"> has no text` });
196
+ }
197
+ }
198
+ return findings;
199
+ }
200
+ function checkIds(root) {
201
+ const seen = new Set();
202
+ const findings = [];
203
+ for (const element of walk(root)) {
204
+ const id = element.attributes["id"];
205
+ if (id === undefined)
206
+ continue;
207
+ if (seen.has(id)) {
208
+ findings.push({ rule: "unique-id", message: `id "${id}" is used more than once` });
209
+ }
210
+ seen.add(id);
211
+ }
212
+ return findings;
213
+ }
214
+ function focusable(element) {
215
+ if (element.attributes["tabindex"] !== undefined)
216
+ return true;
217
+ if (element.tag === "a")
218
+ return element.attributes["href"] !== undefined;
219
+ if (element.tag === "input")
220
+ return element.attributes["type"] !== "hidden";
221
+ return (element.tag === "button" ||
222
+ element.tag === "select" ||
223
+ element.tag === "textarea" ||
224
+ element.tag === "summary");
225
+ }
226
+ function checkSkipLink(root) {
227
+ const first = [...walk(root)].find(focusable);
228
+ if (first === undefined)
229
+ return [];
230
+ const href = first.attributes["href"] ?? "";
231
+ if (first.tag !== "a" || !href.startsWith("#")) {
232
+ return [{ rule: "skip-link", message: `the first focusable element is ${label(first)}` }];
233
+ }
234
+ const target = href.slice(1);
235
+ const found = [...walk(root)].some((element) => element.attributes["id"] === target);
236
+ return found
237
+ ? []
238
+ : [{ rule: "skip-link", message: `the skip link points at #${target}, which does not exist` }];
239
+ }
240
+ const BOOLEAN_STATE = new Set(["true", "false"]);
241
+ function ids(root) {
242
+ const found = new Set();
243
+ for (const element of walk(root)) {
244
+ const id = element.attributes["id"];
245
+ if (id !== undefined)
246
+ found.add(id);
247
+ }
248
+ return found;
249
+ }
250
+ function role(element) {
251
+ return element.attributes["role"];
252
+ }
253
+ /** A toggle is a button or summary that controls another element; a tab follows its own pattern. */
254
+ function checkToggles(root) {
255
+ const findings = [];
256
+ const known = ids(root);
257
+ for (const element of walk(root)) {
258
+ const expanded = element.attributes["aria-expanded"];
259
+ const controls = element.attributes["aria-controls"];
260
+ const toggle = (element.tag === "button" || element.tag === "summary") && role(element) !== "tab";
261
+ if (toggle && controls !== undefined) {
262
+ if (expanded === undefined) {
263
+ findings.push({
264
+ rule: "aria-expanded-on-toggles",
265
+ message: `${label(element)} controls #${controls} without an aria-expanded state`,
266
+ });
267
+ }
268
+ if (!controls.split(/\s+/).every((target) => known.has(target))) {
269
+ findings.push({
270
+ rule: "aria-expanded-on-toggles",
271
+ message: `${label(element)} controls #${controls}, which does not exist`,
272
+ });
273
+ }
274
+ }
275
+ if (expanded !== undefined && !BOOLEAN_STATE.has(expanded)) {
276
+ findings.push({
277
+ rule: "aria-expanded-on-toggles",
278
+ message: `${label(element)} carries aria-expanded="${expanded}", expected true or false`,
279
+ });
280
+ }
281
+ }
282
+ return findings;
283
+ }
284
+ function checkDetails(root) {
285
+ const findings = [];
286
+ for (const details of elements(root, "details")) {
287
+ const first = details.children.find((child) => typeof child !== "string" || child.trim() !== "");
288
+ if (first === undefined || typeof first === "string" || first.tag !== "summary") {
289
+ findings.push({
290
+ rule: "details-summary",
291
+ message: `${label(details)} does not start with a summary element`,
292
+ });
293
+ }
294
+ else if (accessibleName(first) === "") {
295
+ findings.push({ rule: "details-summary", message: `${label(details)} has an empty summary` });
296
+ }
297
+ }
298
+ return findings;
299
+ }
300
+ /** The tab panels by id. */
301
+ function tabPanels(all) {
302
+ const panels = new Map();
303
+ for (const panel of all) {
304
+ const id = panel.attributes["id"];
305
+ if (role(panel) === "tabpanel" && id !== undefined)
306
+ panels.set(id, panel);
307
+ }
308
+ return panels;
309
+ }
310
+ /** The tabs of every tablist, a list without any being reported. */
311
+ function tabsInLists(all, findings) {
312
+ const inLists = new Set();
313
+ for (const list of all.filter((element) => role(element) === "tablist")) {
314
+ const tabs = [...walk(list)].filter((element) => role(element) === "tab");
315
+ if (tabs.length === 0) {
316
+ findings.push({ rule: "tab-roles", message: `${label(list)} is a tablist without any tab` });
317
+ }
318
+ for (const tab of tabs)
319
+ inLists.add(tab);
320
+ }
321
+ return inLists;
322
+ }
323
+ /** One tab: in a tablist, with a selected state, controlling a panel that the tab labels; the panel it controls. */
324
+ function checkTab(tab, inLists, panels, findings) {
325
+ if (!inLists.has(tab)) {
326
+ findings.push({ rule: "tab-roles", message: `${label(tab)} is a tab outside any tablist` });
327
+ }
328
+ if (!BOOLEAN_STATE.has(tab.attributes["aria-selected"] ?? "")) {
329
+ findings.push({ rule: "tab-roles", message: `${label(tab)} has no aria-selected state` });
330
+ }
331
+ const controls = tab.attributes["aria-controls"];
332
+ const panel = controls === undefined ? undefined : panels.get(controls);
333
+ if (panel === undefined) {
334
+ findings.push({ rule: "tab-roles", message: `${label(tab)} controls no tabpanel` });
335
+ return undefined;
336
+ }
337
+ const id = tab.attributes["id"];
338
+ if (id === undefined || panel.attributes["aria-labelledby"] !== id) {
339
+ findings.push({
340
+ rule: "tab-roles",
341
+ message: `${label(panel)} is not labelled by the tab that controls it`,
342
+ });
343
+ }
344
+ return panel;
345
+ }
346
+ /** Tabs follow the tablist pattern: tabs inside a tablist, each selected or not and controlling a labelled panel. */
347
+ function checkTabs(root) {
348
+ const findings = [];
349
+ const all = [...walk(root)];
350
+ const panels = tabPanels(all);
351
+ const inLists = tabsInLists(all, findings);
352
+ const controlled = new Set();
353
+ for (const tab of all.filter((element) => role(element) === "tab")) {
354
+ const panel = checkTab(tab, inLists, panels, findings);
355
+ if (panel !== undefined)
356
+ controlled.add(panel);
357
+ }
358
+ for (const panel of panels.values()) {
359
+ if (!controlled.has(panel)) {
360
+ findings.push({ rule: "tab-roles", message: `${label(panel)} is controlled by no tab` });
361
+ }
362
+ }
363
+ return findings;
364
+ }
365
+ /** A submit or reset input has a default name in every browser; a button input needs its value, an image input its alt. */
366
+ const NAMED_BY_DEFAULT = new Set(["submit", "reset"]);
367
+ /** Text and alternatives an assistive technology exposes: hidden subtrees do not count, an SVG title does. */
368
+ function exposedText(element) {
369
+ if (element.attributes["aria-hidden"] === "true")
370
+ return "";
371
+ if (element.tag === "img")
372
+ return element.attributes["alt"] ?? "";
373
+ if (element.tag === "svg") {
374
+ return elements(element, "title")
375
+ .map((title) => textOf(title))
376
+ .join(" ");
377
+ }
378
+ return element.children
379
+ .map((child) => (typeof child === "string" ? child : exposedText(child)))
380
+ .join("")
381
+ .replaceAll("&nbsp;", " ");
382
+ }
383
+ function exposedName(element, labelled) {
384
+ const attribute = element.attributes["aria-label"] ??
385
+ element.attributes["aria-labelledby"] ??
386
+ element.attributes["title"] ??
387
+ "";
388
+ if (attribute.trim() !== "")
389
+ return attribute;
390
+ const id = element.attributes["id"];
391
+ if (id !== undefined && labelled.has(id))
392
+ return id;
393
+ if (element.tag === "input") {
394
+ return element.attributes["type"] === "image"
395
+ ? (element.attributes["alt"] ?? "")
396
+ : (element.attributes["value"] ?? "");
397
+ }
398
+ return exposedText(element).trim();
399
+ }
400
+ /** A link or button with nothing at all is already reported by link-text or control-label: this rule keeps the icon-only cases. */
401
+ function reportedElsewhere(element) {
402
+ return (element.tag === "a" || element.tag === "button") && accessibleName(element) === "";
403
+ }
404
+ function checkFocusableNames(root) {
405
+ const labelled = labelledIds(root);
406
+ const findings = [];
407
+ for (const element of walk(root)) {
408
+ if (!focusable(element) || element.tag === "select" || element.tag === "textarea")
409
+ continue;
410
+ const type = (element.attributes["type"] ?? "text").toLowerCase();
411
+ if (element.tag === "input" &&
412
+ (NAMED_BY_DEFAULT.has(type) || !UNLABELLED_INPUT_TYPES.has(type))) {
413
+ continue;
414
+ }
415
+ if (exposedName(element, labelled) === "" && !reportedElsewhere(element)) {
416
+ findings.push({
417
+ rule: "focusable-has-visible-name",
418
+ message: `${label(element)} exposes no accessible name`,
419
+ });
420
+ }
421
+ }
422
+ return findings;
423
+ }
424
+ /** Every finding of every rule, in rule order then document order; an empty list means the page passes. */
425
+ export function checkAccessibility(html) {
426
+ const root = parse(html);
427
+ return [
428
+ ...checkLang(root),
429
+ ...checkHeadings(root),
430
+ ...checkImages(root),
431
+ ...checkControls(root),
432
+ ...checkLandmarks(root),
433
+ ...checkLinks(root),
434
+ ...checkIds(root),
435
+ ...checkSkipLink(root),
436
+ ...checkToggles(root),
437
+ ...checkDetails(root),
438
+ ...checkTabs(root),
439
+ ...checkFocusableNames(root),
440
+ ];
441
+ }
442
+ //# sourceMappingURL=check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/a11y/check.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { ThemeConfig } from "../css/theme-config.js";
2
+ import { type ColourScheme, type PaletteColour } from "../css/tokens.js";
3
+ export type { ColourScheme, PaletteColour } from "../css/tokens.js";
4
+ /** What a pair of tokens is used for; each use has its own minimum ratio. */
5
+ export type ContrastUse = "body" | "muted" | "label" | "link" | "mark" | "heading" | "focus";
6
+ export interface ContrastPair {
7
+ scheme: ColourScheme;
8
+ use: ContrastUse;
9
+ foreground: PaletteColour;
10
+ background: PaletteColour;
11
+ /** Rounded to two decimals. */
12
+ ratio: number;
13
+ minimum: number;
14
+ }
15
+ export interface ContrastFinding {
16
+ pair: ContrastPair;
17
+ message: string;
18
+ }
19
+ /**
20
+ * The minimum of each use: body, muted, label and link text and a marked passage are read at
21
+ * body size; headings and the focus ring are large or non-text.
22
+ */
23
+ export declare const CONTRAST_MINIMUMS: Readonly<Record<ContrastUse, number>>;
24
+ /** The relative luminance of an sRGB colour written `#RRGGBB`, from 0 for black to 1 for white. */
25
+ export declare function relativeLuminance(colour: string): number;
26
+ /** The contrast ratio of two colours, from 1 to 21, whatever their order. */
27
+ export declare function contrastRatio(first: string, second: string): number;
28
+ /** Every text and background pair the default theme draws from a palette, in both schemes, with its ratio. */
29
+ export declare function contrastPairs(theme: ThemeConfig): ContrastPair[];
30
+ /** The pairs of a palette below their minimum; an empty list means every text of the theme is readable. */
31
+ export declare function checkContrast(theme: ThemeConfig): ContrastFinding[];
32
+ //# sourceMappingURL=contrast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contrast.d.ts","sourceRoot":"","sources":["../../src/a11y/contrast.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAkB,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEzF,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEpE,6EAA6E;AAC7E,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAE7F,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,GAAG,EAAE,WAAW,CAAC;IACjB,UAAU,EAAE,aAAa,CAAC;IAC1B,UAAU,EAAE,aAAa,CAAC;IAC1B,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAKD;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAQnE,CAAC;AAuBF,mGAAmG;AACnG,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAYxD;AAED,6EAA6E;AAC7E,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAInE;AAED,8GAA8G;AAC9G,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,YAAY,EAAE,CAoBhE;AAED,2GAA2G;AAC3G,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,eAAe,EAAE,CAOnE"}
@@ -0,0 +1,82 @@
1
+ import { paletteColours } from "../css/tokens.js";
2
+ const BODY_MINIMUM = 4.5;
3
+ const LARGE_MINIMUM = 3;
4
+ /**
5
+ * The minimum of each use: body, muted, label and link text and a marked passage are read at
6
+ * body size; headings and the focus ring are large or non-text.
7
+ */
8
+ export const CONTRAST_MINIMUMS = {
9
+ body: BODY_MINIMUM,
10
+ muted: BODY_MINIMUM,
11
+ label: BODY_MINIMUM,
12
+ link: BODY_MINIMUM,
13
+ mark: BODY_MINIMUM,
14
+ heading: LARGE_MINIMUM,
15
+ focus: LARGE_MINIMUM,
16
+ };
17
+ /** The text colour of each use and the backgrounds it is read over: the page, a surface and a soft surface, or the highlight of a mark. */
18
+ const READ_OVER = {
19
+ body: { foreground: "ink", backgrounds: ["bg", "surface", "soft"] },
20
+ muted: { foreground: "muted", backgrounds: ["bg", "surface", "soft"] },
21
+ label: { foreground: "label", backgrounds: ["bg", "surface", "soft"] },
22
+ link: { foreground: "accent", backgrounds: ["bg", "surface", "soft"] },
23
+ mark: { foreground: "ink", backgrounds: ["highlight"] },
24
+ heading: { foreground: "ink", backgrounds: ["bg", "surface", "soft"] },
25
+ focus: { foreground: "accent", backgrounds: ["bg", "surface", "soft"] },
26
+ };
27
+ const USES = Object.keys(CONTRAST_MINIMUMS);
28
+ const HEX = /^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i;
29
+ function channel(hex) {
30
+ const value = Number.parseInt(hex, 16) / 255;
31
+ return value <= 0.04045 ? value / 12.92 : ((value + 0.055) / 1.055) ** 2.4;
32
+ }
33
+ /** The relative luminance of an sRGB colour written `#RRGGBB`, from 0 for black to 1 for white. */
34
+ export function relativeLuminance(colour) {
35
+ const match = HEX.exec(colour);
36
+ if (match === null) {
37
+ throw new Error(`relativeLuminance: ${colour} is not a #RRGGBB colour`);
38
+ }
39
+ const [, red, green, blue] = match;
40
+ // The three groups are unconditional in the pattern: a match always carries them.
41
+ return (0.2126 * channel(red) +
42
+ 0.7152 * channel(green) +
43
+ 0.0722 * channel(blue));
44
+ }
45
+ /** The contrast ratio of two colours, from 1 to 21, whatever their order. */
46
+ export function contrastRatio(first, second) {
47
+ const a = relativeLuminance(first);
48
+ const b = relativeLuminance(second);
49
+ return (Math.max(a, b) + 0.05) / (Math.min(a, b) + 0.05);
50
+ }
51
+ /** Every text and background pair the default theme draws from a palette, in both schemes, with its ratio. */
52
+ export function contrastPairs(theme) {
53
+ const pairs = [];
54
+ for (const scheme of ["light", "dark"]) {
55
+ const palette = paletteColours(theme[scheme]);
56
+ for (const use of USES) {
57
+ const { foreground, backgrounds } = READ_OVER[use];
58
+ for (const background of backgrounds) {
59
+ const ratio = contrastRatio(palette[foreground], palette[background]);
60
+ pairs.push({
61
+ scheme,
62
+ use,
63
+ foreground,
64
+ background,
65
+ ratio: Math.round(ratio * 100) / 100,
66
+ minimum: CONTRAST_MINIMUMS[use],
67
+ });
68
+ }
69
+ }
70
+ }
71
+ return pairs;
72
+ }
73
+ /** The pairs of a palette below their minimum; an empty list means every text of the theme is readable. */
74
+ export function checkContrast(theme) {
75
+ return contrastPairs(theme)
76
+ .filter((pair) => pair.ratio < pair.minimum)
77
+ .map((pair) => ({
78
+ pair,
79
+ message: `${pair.scheme} ${pair.use} text: ${pair.foreground} on ${pair.background} is ${pair.ratio.toFixed(2)}:1, below ${String(pair.minimum)}:1`,
80
+ }));
81
+ }
82
+ //# sourceMappingURL=contrast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contrast.js","sourceRoot":"","sources":["../../src/a11y/contrast.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { IslandBundle } from "./islands/bundle.js";
2
+ export interface PageSize {
3
+ /** Path of the page under the output folder. */
4
+ path: string;
5
+ bytes: number;
6
+ }
7
+ export interface BudgetOptions {
8
+ /** Excluding previews, per page. */
9
+ maxPageBytes: number;
10
+ }
11
+ export interface BudgetReport {
12
+ maxPageBytes: number;
13
+ /** Every page, sorted by path. */
14
+ pages: PageSize[];
15
+ /** Pages above the budget, sorted by path. */
16
+ overBudget: PageSize[];
17
+ /** Every island bundle, sorted by name. */
18
+ islands: IslandBundle[];
19
+ /** Lines of the build summary. */
20
+ summary: string[];
21
+ }
22
+ export declare function formatKilobytes(bytes: number): string;
23
+ /** Measures pages against the budget and describes the islands, for the build summary and CI. */
24
+ export declare function measureBudget(pages: PageSize[], islands: IslandBundle[], options: BudgetOptions): BudgetReport;
25
+ //# sourceMappingURL=budget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"budget.d.ts","sourceRoot":"","sources":["../src/budget.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGxD,MAAM,WAAW,QAAQ;IACvB,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,oCAAoC;IACpC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,kCAAkC;IAClC,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,8CAA8C;IAC9C,UAAU,EAAE,QAAQ,EAAE,CAAC;IACvB,2CAA2C;IAC3C,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,kCAAkC;IAClC,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAErD;AAKD,iGAAiG;AACjG,wBAAgB,aAAa,CAC3B,KAAK,EAAE,QAAQ,EAAE,EACjB,OAAO,EAAE,YAAY,EAAE,EACvB,OAAO,EAAE,aAAa,GACrB,YAAY,CAiBd"}