@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,171 @@
1
+ /** Font size the map is laid out for, written on the `<svg>` so that the estimate and the rendering agree. */
2
+ export const FONT_SIZE = 12;
3
+ /** Average advance of the interface font as a fraction of the font size; wide enough for Latin text. */
4
+ const CHAR_WIDTH = 0.55;
5
+ /** A title longer than this is cut with an ellipsis; the full title travels in a `<title>` and in the list. */
6
+ export const LABEL_MAX = 28;
7
+ export const NODE_RADIUS = 6;
8
+ export const CENTRE_RADIUS = 10;
9
+ const LINE_HEIGHT = 14;
10
+ const MARGIN = 8;
11
+ /** Distance from a node centre to the start of its label. */
12
+ const LABEL_GAP = NODE_RADIUS + 5;
13
+ /** Room above and below the ring for a label at a pole. */
14
+ const PAD = LABEL_GAP + LINE_HEIGHT + MARGIN;
15
+ const MIN_WIDTH = 320;
16
+ /** A node whose angle has a cosine under this sits at a pole: its label goes above or below it. */
17
+ const POLE = 0.25;
18
+ /** Vertical distance kept between two label boxes the collision pass separates. */
19
+ const SEPARATION = 2;
20
+ export function intersects(a, b) {
21
+ return a.left < b.right && b.left < a.right && a.top < b.bottom && b.top < a.bottom;
22
+ }
23
+ /** Whether `inner` lies entirely within `outer`. */
24
+ export function contains(outer, inner) {
25
+ return (inner.left >= outer.left &&
26
+ inner.top >= outer.top &&
27
+ inner.right <= outer.right &&
28
+ inner.bottom <= outer.bottom);
29
+ }
30
+ export function truncate(title) {
31
+ const characters = Array.from(title);
32
+ if (characters.length <= LABEL_MAX)
33
+ return { text: title };
34
+ return { text: `${characters.slice(0, LABEL_MAX - 1).join("")}…`, full: title };
35
+ }
36
+ /** Estimated advance of a label; an ellipsis counts for two characters, being wider than the average. */
37
+ function widthOf(cut) {
38
+ const characters = Array.from(cut.text).length + (cut.full === undefined ? 0 : 1);
39
+ return Math.ceil(characters * CHAR_WIDTH * FONT_SIZE);
40
+ }
41
+ function ringRadius(count) {
42
+ return Math.min(120, Math.max(64, 32 + 12 * count));
43
+ }
44
+ function sideOf(cosine, sine) {
45
+ if (cosine > POLE)
46
+ return "right";
47
+ if (cosine < -POLE)
48
+ return "left";
49
+ return sine < 0 ? "above" : "below";
50
+ }
51
+ function centred(x, y, width) {
52
+ const left = x - Math.ceil(width / 2);
53
+ return { left, top: y - LINE_HEIGHT / 2, right: left + width, bottom: y + LINE_HEIGHT / 2 };
54
+ }
55
+ /** The label of a node, its box on the outer side of the node. */
56
+ function labelOf(node, side, cut) {
57
+ const width = widthOf(cut);
58
+ const half = LINE_HEIGHT / 2;
59
+ switch (side) {
60
+ case "right": {
61
+ const x = node.x + LABEL_GAP;
62
+ const box = { left: x, top: node.y - half, right: x + width, bottom: node.y + half };
63
+ return { ...cut, x, y: node.y, anchor: "start", side, box };
64
+ }
65
+ case "left": {
66
+ const x = node.x - LABEL_GAP;
67
+ const box = { left: x - width, top: node.y - half, right: x, bottom: node.y + half };
68
+ return { ...cut, x, y: node.y, anchor: "end", side, box };
69
+ }
70
+ case "above": {
71
+ const y = node.y - LABEL_GAP - half;
72
+ return { ...cut, x: node.x, y, anchor: "middle", side, box: centred(node.x, y, width) };
73
+ }
74
+ case "below": {
75
+ const y = node.y + LABEL_GAP + half;
76
+ return { ...cut, x: node.x, y, anchor: "middle", side, box: centred(node.x, y, width) };
77
+ }
78
+ }
79
+ }
80
+ function shift(label, dy) {
81
+ label.y += dy;
82
+ label.box = { ...label.box, top: label.box.top + dy, bottom: label.box.bottom + dy };
83
+ }
84
+ /**
85
+ * Pushes every label below the ones it overlaps, in top-to-bottom order: a label only ever
86
+ * moves down, and each move takes it past one more of the labels placed before it, so the pass
87
+ * ends with no two boxes intersecting.
88
+ */
89
+ function separate(labels) {
90
+ const ordered = [...labels].sort((a, b) => a.box.top - b.box.top);
91
+ const placed = [];
92
+ for (const label of ordered) {
93
+ let moved = true;
94
+ while (moved) {
95
+ moved = false;
96
+ for (const other of placed) {
97
+ if (intersects(label.box, other)) {
98
+ shift(label, other.bottom + SEPARATION - label.box.top);
99
+ moved = true;
100
+ }
101
+ }
102
+ }
103
+ placed.push(label.box);
104
+ }
105
+ }
106
+ function translate(node, dx, dy) {
107
+ const { label } = node;
108
+ const { box } = label;
109
+ return {
110
+ ...node,
111
+ x: node.x + dx,
112
+ y: node.y + dy,
113
+ label: {
114
+ ...label,
115
+ x: label.x + dx,
116
+ y: label.y + dy,
117
+ box: {
118
+ left: box.left + dx,
119
+ top: box.top + dy,
120
+ right: box.right + dx,
121
+ bottom: box.bottom + dy,
122
+ },
123
+ },
124
+ };
125
+ }
126
+ /**
127
+ * Places the centre in the middle and the neighbours on a ring in the order received, clockwise
128
+ * from the top; a label sits on the outer side of its node, right of it on the right half, left
129
+ * of it on the left half, above or below it near the poles, and the centre's title under the
130
+ * centre. Every coordinate is an integer, so that two builds give the same bytes; text widths
131
+ * are estimated at `CHAR_WIDTH` em per character, and on that estimate no two label boxes
132
+ * intersect and every box lies inside the viewBox.
133
+ */
134
+ export function layoutNeighbourhood(centre, items, titleOf) {
135
+ const radius = ringRadius(items.length);
136
+ const nodes = items.map((item, index) => {
137
+ const angle = -Math.PI / 2 + (2 * Math.PI * index) / items.length;
138
+ const cosine = Math.cos(angle);
139
+ const sine = Math.sin(angle);
140
+ const position = { x: Math.round(radius * cosine), y: Math.round(radius * sine) };
141
+ const label = labelOf(position, sideOf(cosine, sine), truncate(titleOf(item)));
142
+ return { item, ...position, label };
143
+ });
144
+ const centreCut = truncate(centre);
145
+ const centreY = CENTRE_RADIUS + 4 + LINE_HEIGHT / 2;
146
+ const centreNode = {
147
+ x: 0,
148
+ y: 0,
149
+ label: {
150
+ ...centreCut,
151
+ x: 0,
152
+ y: centreY,
153
+ anchor: "middle",
154
+ side: "below",
155
+ box: centred(0, centreY, widthOf(centreCut)),
156
+ },
157
+ };
158
+ const all = [centreNode, ...nodes];
159
+ separate(all.map((node) => node.label));
160
+ const reach = Math.max(MIN_WIDTH / 2 - MARGIN, ...all.map((node) => Math.max(-node.label.box.left, node.label.box.right)));
161
+ const halfWidth = reach + MARGIN;
162
+ const above = radius + PAD;
163
+ const below = Math.max(above, ...all.map((node) => node.label.box.bottom + MARGIN));
164
+ return {
165
+ width: 2 * halfWidth,
166
+ height: above + below,
167
+ centre: translate(centreNode, halfWidth, above),
168
+ nodes: nodes.map((node) => translate(node, halfWidth, above)),
169
+ };
170
+ }
171
+ //# sourceMappingURL=layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../src/neighbourhood/layout.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function byCodeUnit(a: string, b: string): number;
2
+ //# sourceMappingURL=order.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order.d.ts","sourceRoot":"","sources":["../src/order.ts"],"names":[],"mappings":"AACA,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAEvD"}
package/dist/order.js ADDED
@@ -0,0 +1,5 @@
1
+ // Code-unit order, not locale order: the output must not depend on the collation data of the runtime.
2
+ export function byCodeUnit(a, b) {
3
+ return Number(a > b) - Number(a < b);
4
+ }
5
+ //# sourceMappingURL=order.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order.js","sourceRoot":"","sources":["../src/order.ts"],"names":[],"mappings":"AAAA,sGAAsG;AACtG,MAAM,UAAU,UAAU,CAAC,CAAS,EAAE,CAAS;IAC7C,OAAO,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACvC,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { FoldablePanel } from "./slots.js";
2
+ /** The `localStorage` key holding the side panels a reader folded; absent while every panel stands open. */
3
+ export declare const PANELS_STORAGE_KEY = "concordance-panels";
4
+ /** The two side panels of a page, as the stored value and the `data-panels` attribute of the root name them: the tree of the space, the right panel. */
5
+ export declare const PANELS: readonly FoldablePanel[];
6
+ /** The key a reader presses to fold or unfold each panel, without any modifier, outside a field. */
7
+ export declare const PANEL_KEYS: Readonly<Record<FoldablePanel, string>>;
8
+ /** Whether a value names a panel; a type guard, so that the names read from a value or an attribute type as panels. */
9
+ export declare function isPanel(value: string | null): value is FoldablePanel;
10
+ /** The panels a stored value names, in the order of `PANELS`, each once; anything unknown left out. */
11
+ export declare function parseFolded(value: string | null): FoldablePanel[];
12
+ /** The stored value naming the folded panels, `tree panel` for both; absent when none is folded. */
13
+ export declare function foldedValue(folded: readonly FoldablePanel[]): string | undefined;
14
+ /**
15
+ * The second inline script of a page, next to the one of the colour scheme: it copies the
16
+ * stored folded panels to `data-panels` on the root before the first paint, so that a reader
17
+ * who folded a panel never sees it open and fold. It is a constant, so a content security
18
+ * policy can allow it by hash; without it, and without JavaScript, every panel stands open.
19
+ */
20
+ export declare const PANELS_SCRIPT: string;
21
+ //# sourceMappingURL=panels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"panels.d.ts","sourceRoot":"","sources":["../src/panels.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,4GAA4G;AAC5G,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AAEvD,wJAAwJ;AACxJ,eAAO,MAAM,MAAM,EAAE,SAAS,aAAa,EAAsB,CAAC;AAElE,oGAAoG;AACpG,eAAO,MAAM,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAG9D,CAAC;AAEF,uHAAuH;AACvH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK,IAAI,aAAa,CAEpE;AAED,uGAAuG;AACvG,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,aAAa,EAAE,CAGjE;AAED,oGAAoG;AACpG,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,aAAa,EAAE,GAAG,MAAM,GAAG,SAAS,CAGhF;AAED;;;;;GAKG;AACH,eAAO,MAAM,aAAa,QAAoJ,CAAC"}
package/dist/panels.js ADDED
@@ -0,0 +1,31 @@
1
+ /** The `localStorage` key holding the side panels a reader folded; absent while every panel stands open. */
2
+ export const PANELS_STORAGE_KEY = "concordance-panels";
3
+ /** The two side panels of a page, as the stored value and the `data-panels` attribute of the root name them: the tree of the space, the right panel. */
4
+ export const PANELS = ["tree", "panel"];
5
+ /** The key a reader presses to fold or unfold each panel, without any modifier, outside a field. */
6
+ export const PANEL_KEYS = {
7
+ tree: "[",
8
+ panel: "]",
9
+ };
10
+ /** Whether a value names a panel; a type guard, so that the names read from a value or an attribute type as panels. */
11
+ export function isPanel(value) {
12
+ return PANELS.some((panel) => panel === value);
13
+ }
14
+ /** The panels a stored value names, in the order of `PANELS`, each once; anything unknown left out. */
15
+ export function parseFolded(value) {
16
+ const names = new Set((value ?? "").split(" ").filter(isPanel));
17
+ return PANELS.filter((panel) => names.has(panel));
18
+ }
19
+ /** The stored value naming the folded panels, `tree panel` for both; absent when none is folded. */
20
+ export function foldedValue(folded) {
21
+ const value = PANELS.filter((panel) => folded.includes(panel)).join(" ");
22
+ return value === "" ? undefined : value;
23
+ }
24
+ /**
25
+ * The second inline script of a page, next to the one of the colour scheme: it copies the
26
+ * stored folded panels to `data-panels` on the root before the first paint, so that a reader
27
+ * who folded a panel never sees it open and fold. It is a constant, so a content security
28
+ * policy can allow it by hash; without it, and without JavaScript, every panel stands open.
29
+ */
30
+ export const PANELS_SCRIPT = `(function(){try{var p=localStorage.getItem(${JSON.stringify(PANELS_STORAGE_KEY)});if(p)document.documentElement.dataset.panels=p}catch(e){}})()`;
31
+ //# sourceMappingURL=panels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"panels.js","sourceRoot":"","sources":["../src/panels.ts"],"names":[],"mappings":"AAEA,4GAA4G;AAC5G,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AAEvD,wJAAwJ;AACxJ,MAAM,CAAC,MAAM,MAAM,GAA6B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAElE,oGAAoG;AACpG,MAAM,CAAC,MAAM,UAAU,GAA4C;IACjE,IAAI,EAAE,GAAG;IACT,KAAK,EAAE,GAAG;CACX,CAAC;AAEF,uHAAuH;AACvH,MAAM,UAAU,OAAO,CAAC,KAAoB;IAC1C,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;AACjD,CAAC;AAED,uGAAuG;AACvG,MAAM,UAAU,WAAW,CAAC,KAAoB;IAC9C,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAChE,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,WAAW,CAAC,MAAgC;IAC1D,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzE,OAAO,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;AAC1C,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,8CAA8C,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,iEAAiE,CAAC"}
package/dist/pins.d.ts ADDED
@@ -0,0 +1,46 @@
1
+ import type { PinnedPage, PinsLabels } from "./slots.js";
2
+ /** The `localStorage` key holding the pages a reader pinned; absent while none is pinned. */
3
+ export declare const PINS_STORAGE_KEY = "concordance-pins";
4
+ /** The pinned pages a stored value holds, in their order; none when the value is missing or holds anything else. */
5
+ export declare function parsePins(raw: string | null): PinnedPage[];
6
+ /** The stored value for the pinned pages; none when nothing is pinned, so that the key goes. */
7
+ export declare function pinsValue(entries: readonly PinnedPage[]): string | undefined;
8
+ /** Whether a page is among the pinned ones. */
9
+ export declare function isPinned(entries: readonly PinnedPage[], id: string): boolean;
10
+ /** The pinned pages with one more at the end, in the order of pinning; a page already pinned is not pinned twice. */
11
+ export declare function pinPage(entries: readonly PinnedPage[], page: PinnedPage): PinnedPage[];
12
+ /** The pinned pages without one of them, the order of the others kept; nothing goes for an identifier that names none. */
13
+ export declare function unpinPage(entries: readonly PinnedPage[], id: string | null): PinnedPage[];
14
+ /** The space of a pinned page: the source its identifier starts with. */
15
+ export declare function spaceOf(id: string): string;
16
+ /**
17
+ * How many pins the bar shows, `available` being the room left to the chips beside the summary
18
+ * of the others: every one when they all fit once the summary goes, else as many as fit before
19
+ * it, so that the bar never wraps and nothing is lost.
20
+ */
21
+ export declare function fitCount(widths: readonly number[], available: number, moreWidth: number, gap: number): number;
22
+ /** The pinned pages whose title or space holds every word of a filter, as typed, without case. */
23
+ export declare function filterPins(entries: readonly PinnedPage[], filter: string): PinnedPage[];
24
+ /** Text safe inside an element or a double-quoted attribute. */
25
+ export declare function escape(text: string): string;
26
+ /** The placeholder of a label, `{count}` for instance, replaced by its value; the catalogue quotes it so that the build leaves it to the browser. */
27
+ export declare function fill(label: string, name: string, value: string): string;
28
+ export interface PinsView {
29
+ /** The prefix of the hrefs from the page to the site root. */
30
+ base: string;
31
+ /** The page being read, marked among the pins. */
32
+ current?: string | undefined;
33
+ entries: readonly PinnedPage[];
34
+ labels: PinsLabels;
35
+ }
36
+ /** The count at the end of the bar, "3 pinned", in the singular for one. */
37
+ export declare function countLabel(labels: PinsLabels, count: number): string;
38
+ /**
39
+ * The row of pins under the bar as one HTML string: the label, the pins as chips, the summary
40
+ * of the ones beyond the bar folding the menu that lists them all with a filter and the
41
+ * removal of all, then the count. Empty when nothing is pinned: the row does not exist. The
42
+ * script of the island and the preview of the gallery write the same markup; the script then
43
+ * measures which chips fit and hides the others behind the summary.
44
+ */
45
+ export declare function pinsMarkup(view: PinsView): string;
46
+ //# sourceMappingURL=pins.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pins.d.ts","sourceRoot":"","sources":["../src/pins.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEzD,6FAA6F;AAC7F,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AAgBnD,oHAAoH;AACpH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,UAAU,EAAE,CAS1D;AAED,gGAAgG;AAChG,wBAAgB,SAAS,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,GAAG,MAAM,GAAG,SAAS,CAE5E;AAED,+CAA+C;AAC/C,wBAAgB,QAAQ,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAE5E;AAED,qHAAqH;AACrH,wBAAgB,OAAO,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU,EAAE,CAEtF;AAED,0HAA0H;AAC1H,wBAAgB,SAAS,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,UAAU,EAAE,CAEzF;AAED,yEAAyE;AACzE,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAE1C;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CACtB,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,GACV,MAAM,CAYR;AAED,kGAAkG;AAClG,wBAAgB,UAAU,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,EAAE,CAMvF;AAED,gEAAgE;AAChE,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM3C;AAED,qJAAqJ;AACrJ,wBAAgB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED,MAAM,WAAW,QAAQ;IACvB,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,OAAO,EAAE,SAAS,UAAU,EAAE,CAAC;IAC/B,MAAM,EAAE,UAAU,CAAC;CACpB;AAsBD,4EAA4E;AAC5E,wBAAgB,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAoBjD"}
package/dist/pins.js ADDED
@@ -0,0 +1,132 @@
1
+ /** The `localStorage` key holding the pages a reader pinned; absent while none is pinned. */
2
+ export const PINS_STORAGE_KEY = "concordance-pins";
3
+ /** The fields of a parsed JSON value, all unknown; none for anything but an object. */
4
+ function fields(value) {
5
+ if (typeof value !== "object" || value === null) {
6
+ return null;
7
+ }
8
+ const record = { ...value };
9
+ return record;
10
+ }
11
+ function isPage(value) {
12
+ const record = fields(value);
13
+ return record !== null && typeof record.id === "string" && typeof record.title === "string";
14
+ }
15
+ /** The pinned pages a stored value holds, in their order; none when the value is missing or holds anything else. */
16
+ export function parsePins(raw) {
17
+ try {
18
+ const entries = raw === null ? undefined : fields(JSON.parse(raw))?.entries;
19
+ return Array.isArray(entries) && entries.every(isPage)
20
+ ? entries.map(({ id, title }) => ({ id, title }))
21
+ : [];
22
+ }
23
+ catch {
24
+ return [];
25
+ }
26
+ }
27
+ /** The stored value for the pinned pages; none when nothing is pinned, so that the key goes. */
28
+ export function pinsValue(entries) {
29
+ return entries.length === 0 ? undefined : JSON.stringify({ entries });
30
+ }
31
+ /** Whether a page is among the pinned ones. */
32
+ export function isPinned(entries, id) {
33
+ return entries.some((entry) => entry.id === id);
34
+ }
35
+ /** The pinned pages with one more at the end, in the order of pinning; a page already pinned is not pinned twice. */
36
+ export function pinPage(entries, page) {
37
+ return isPinned(entries, page.id) ? [...entries] : [...entries, page];
38
+ }
39
+ /** The pinned pages without one of them, the order of the others kept; nothing goes for an identifier that names none. */
40
+ export function unpinPage(entries, id) {
41
+ return entries.filter((entry) => entry.id !== id);
42
+ }
43
+ /** The space of a pinned page: the source its identifier starts with. */
44
+ export function spaceOf(id) {
45
+ return id.slice(0, Math.max(0, id.indexOf("/")));
46
+ }
47
+ /**
48
+ * How many pins the bar shows, `available` being the room left to the chips beside the summary
49
+ * of the others: every one when they all fit once the summary goes, else as many as fit before
50
+ * it, so that the bar never wraps and nothing is lost.
51
+ */
52
+ export function fitCount(widths, available, moreWidth, gap) {
53
+ const taken = (count) => widths.slice(0, count).reduce((total, width) => total + width, 0) +
54
+ Math.max(0, count - 1) * gap;
55
+ if (taken(widths.length) <= available + moreWidth + gap) {
56
+ return widths.length;
57
+ }
58
+ let count = 0;
59
+ while (count < widths.length && taken(count + 1) <= available) {
60
+ count += 1;
61
+ }
62
+ return count;
63
+ }
64
+ /** The pinned pages whose title or space holds every word of a filter, as typed, without case. */
65
+ export function filterPins(entries, filter) {
66
+ const words = filter.toLowerCase().split(/\s+/).filter(Boolean);
67
+ return entries.filter((entry) => {
68
+ const text = `${entry.title} ${spaceOf(entry.id)}`.toLowerCase();
69
+ return words.every((word) => text.includes(word));
70
+ });
71
+ }
72
+ /** Text safe inside an element or a double-quoted attribute. */
73
+ export function escape(text) {
74
+ return text
75
+ .replaceAll("&", "&amp;")
76
+ .replaceAll("<", "&lt;")
77
+ .replaceAll(">", "&gt;")
78
+ .replaceAll('"', "&quot;");
79
+ }
80
+ /** The placeholder of a label, `{count}` for instance, replaced by its value; the catalogue quotes it so that the build leaves it to the browser. */
81
+ export function fill(label, name, value) {
82
+ return label.replaceAll(`{${name}}`, value);
83
+ }
84
+ function hrefOf(base, id) {
85
+ return `${base}${id}/index.html`;
86
+ }
87
+ function removeButton(labels, entry) {
88
+ return `<button type="button" class="pin-remove" data-id="${escape(entry.id)}" aria-label="${escape(fill(labels.unpin, "title", entry.title))}">✕</button>`;
89
+ }
90
+ /** One pin of the bar: the title as a link, the current page marked, the cross that removes it. */
91
+ function chip({ base, current, labels }, entry) {
92
+ const isCurrent = entry.id === current;
93
+ return `<li class="${isCurrent ? "pin pin-current" : "pin"}"><a href="${escape(hrefOf(base, entry.id))}"${isCurrent ? ' aria-current="page"' : ""}>${escape(entry.title)}</a>${removeButton(labels, entry)}</li>`;
94
+ }
95
+ /** One row of the menu: the title, the space of the page, the cross. */
96
+ function row({ base, current, labels }, entry) {
97
+ const isCurrent = entry.id === current;
98
+ return `<li class="${isCurrent ? "pins-row pins-row-current" : "pins-row"}" data-id="${escape(entry.id)}"><a href="${escape(hrefOf(base, entry.id))}"${isCurrent ? ' aria-current="page"' : ""}>${escape(entry.title)}</a><span class="pin-space">${escape(spaceOf(entry.id))}</span>${removeButton(labels, entry)}</li>`;
99
+ }
100
+ /** The count at the end of the bar, "3 pinned", in the singular for one. */
101
+ export function countLabel(labels, count) {
102
+ return fill(count === 1 ? labels.countOne : labels.countMany, "count", String(count));
103
+ }
104
+ /**
105
+ * The row of pins under the bar as one HTML string: the label, the pins as chips, the summary
106
+ * of the ones beyond the bar folding the menu that lists them all with a filter and the
107
+ * removal of all, then the count. Empty when nothing is pinned: the row does not exist. The
108
+ * script of the island and the preview of the gallery write the same markup; the script then
109
+ * measures which chips fit and hides the others behind the summary.
110
+ */
111
+ export function pinsMarkup(view) {
112
+ const { entries, labels } = view;
113
+ if (entries.length === 0) {
114
+ return "";
115
+ }
116
+ const total = String(entries.length);
117
+ return [
118
+ `<nav class="pins" aria-label="${escape(labels.pages)}">`,
119
+ `<span class="pins-label">${escape(labels.label)}</span>`,
120
+ `<ul class="pins-list">${entries.map((entry) => chip(view, entry)).join("")}</ul>`,
121
+ `<details class="pins-more" hidden><summary class="pins-more-button"><span class="pins-more-count">+${total}</span><span class="pins-more-mark" aria-hidden="true">▾</span><span class="visually-hidden">${escape(labels.all)}</span></summary>`,
122
+ `<div class="pins-menu">`,
123
+ `<p class="pins-menu-head"><span class="pins-menu-title">${escape(labels.all)}</span><span class="pins-menu-count">${total}</span></p>`,
124
+ `<p class="pins-menu-filter"><span class="pins-menu-glyph" aria-hidden="true">⌕</span><input type="search" class="pins-filter" placeholder="${escape(labels.filter)}" aria-label="${escape(labels.filter)}" autocomplete="off"></p>`,
125
+ `<ul class="pins-menu-list">${entries.map((entry) => row(view, entry)).join("")}</ul>`,
126
+ `<p class="pins-menu-foot"><button type="button" class="pins-remove-all">${escape(labels.removeAll)}</button></p>`,
127
+ `</div></details>`,
128
+ `<span class="pins-count">${escape(countLabel(labels, entries.length))}</span>`,
129
+ `</nav>`,
130
+ ].join("");
131
+ }
132
+ //# sourceMappingURL=pins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pins.js","sourceRoot":"","sources":["../src/pins.ts"],"names":[],"mappings":"AAEA,6FAA6F;AAC7F,MAAM,CAAC,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAEnD,uFAAuF;AACvF,SAAS,MAAM,CAAC,KAAc;IAC5B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAyD,EAAE,GAAG,KAAK,EAAE,CAAC;IAClF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,MAAM,CAAC,KAAc;IAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,OAAO,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC;AAC9F,CAAC;AAED,oHAAoH;AACpH,MAAM,UAAU,SAAS,CAAC,GAAkB;IAC1C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC;QAC5E,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;YACpD,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACjD,CAAC,CAAC,EAAE,CAAC;IACT,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,SAAS,CAAC,OAA8B;IACtD,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;AACxE,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,QAAQ,CAAC,OAA8B,EAAE,EAAU;IACjE,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,qHAAqH;AACrH,MAAM,UAAU,OAAO,CAAC,OAA8B,EAAE,IAAgB;IACtE,OAAO,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,CAAC,CAAC;AACxE,CAAC;AAED,0HAA0H;AAC1H,MAAM,UAAU,SAAS,CAAC,OAA8B,EAAE,EAAiB;IACzE,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AACpD,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,OAAO,CAAC,EAAU;IAChC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CACtB,MAAyB,EACzB,SAAiB,EACjB,SAAiB,EACjB,GAAW;IAEX,MAAM,KAAK,GAAG,CAAC,KAAa,EAAU,EAAE,CACtC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IAC/B,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,SAAS,GAAG,SAAS,GAAG,GAAG,EAAE,CAAC;QACxD,OAAO,MAAM,CAAC,MAAM,CAAC;IACvB,CAAC;IACD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO,KAAK,GAAG,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC;QAC9D,KAAK,IAAI,CAAC,CAAC;IACb,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,UAAU,CAAC,OAA8B,EAAE,MAAc;IACvE,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChE,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QAC9B,MAAM,IAAI,GAAG,GAAG,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;QACjE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,MAAM,CAAC,IAAY;IACjC,OAAO,IAAI;SACR,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC;SACxB,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC;SACvB,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC;SACvB,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AAC/B,CAAC;AAED,qJAAqJ;AACrJ,MAAM,UAAU,IAAI,CAAC,KAAa,EAAE,IAAY,EAAE,KAAa;IAC7D,OAAO,KAAK,CAAC,UAAU,CAAC,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC;AAC9C,CAAC;AAWD,SAAS,MAAM,CAAC,IAAY,EAAE,EAAU;IACtC,OAAO,GAAG,IAAI,GAAG,EAAE,aAAa,CAAC;AACnC,CAAC;AAED,SAAS,YAAY,CAAC,MAAkB,EAAE,KAAiB;IACzD,OAAO,qDAAqD,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,iBAAiB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC;AAC9J,CAAC;AAED,mGAAmG;AACnG,SAAS,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAY,EAAE,KAAiB;IAClE,MAAM,SAAS,GAAG,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC;IACvC,OAAO,cAAc,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,cAAc,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;AACpN,CAAC;AAED,wEAAwE;AACxE,SAAS,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAY,EAAE,KAAiB;IACjE,MAAM,SAAS,GAAG,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC;IACvC,OAAO,cAAc,SAAS,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,UAAU,cAAc,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,cAAc,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,+BAA+B,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,UAAU,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;AAC5T,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,UAAU,CAAC,MAAkB,EAAE,KAAa;IAC1D,OAAO,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACxF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,IAAc;IACvC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACjC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACrC,OAAO;QACL,iCAAiC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI;QACzD,4BAA4B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS;QACzD,yBAAyB,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO;QAClF,sGAAsG,KAAK,gGAAgG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB;QAChP,yBAAyB;QACzB,2DAA2D,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,wCAAwC,KAAK,aAAa;QACvI,8IAA8I,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAiB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,2BAA2B;QACpO,8BAA8B,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO;QACtF,2EAA2E,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe;QAClH,kBAAkB;QAClB,4BAA4B,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS;QAC/E,QAAQ;KACT,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACb,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { type JSX } from "preact";
2
+ import type { ColourScheme } from "./css/tokens.js";
3
+ import type { IslandBundle } from "./islands/bundle.js";
4
+ import type { SlotName, SlotProps, TextDirection } from "./slots.js";
5
+ import type { ResolvedTheme } from "./theme/types.js";
6
+ export type PageSlot = Exclude<SlotName, "Shell">;
7
+ export interface RenderOptions {
8
+ theme: ResolvedTheme;
9
+ /** BCP 47 tag of the page. */
10
+ locale: string;
11
+ title: string;
12
+ /** Stylesheet hrefs relative to the page, in loading order. */
13
+ stylesheets: string[];
14
+ /** Href of the favicon relative to the page. */
15
+ favicon?: string;
16
+ /** Every bundle the build produced; only those the page uses are loaded. */
17
+ islands: IslandBundle[];
18
+ /** Prefix of the bundle hrefs relative to the page, `../assets/` for instance. */
19
+ assetsBase?: string;
20
+ header: SlotProps["Header"];
21
+ footer: SlotProps["Footer"];
22
+ /** Href the page forwards to at once; the head carries it as a refresh. */
23
+ redirect?: string;
24
+ /** A scheme forced on the root, to preview a palette: the page then carries no script applying a remembered choice. */
25
+ scheme?: ColourScheme;
26
+ /** The address of the page itself, for a page the host serves at other addresses than its own; the head carries it as a base. */
27
+ base?: string;
28
+ /** What stands between the header and the main landmark on every page: the notice on the age of the site, when the site counts its days. */
29
+ notice?: JSX.Element;
30
+ }
31
+ export declare function directionOf(locale: string): TextDirection;
32
+ /** A slot alone, inside the theme, for tests and galleries. */
33
+ export declare function renderSlot<S extends SlotName>(slot: S, props: SlotProps[S], theme: ResolvedTheme): string;
34
+ /** A complete HTML document around any body: the shell, the header, the main landmark holding the body, the footer. */
35
+ export declare function renderDocument(body: JSX.Element, options: RenderOptions): string;
36
+ /** The complete HTML document of a page; a page without an island carries no script. */
37
+ export declare function renderPage<S extends PageSlot>(slot: S, props: SlotProps[S], options: RenderOptions): string;
38
+ //# sourceMappingURL=render.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAK,KAAK,GAAG,EAAE,MAAM,QAAQ,CAAC;AAGrC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAIxD,OAAO,KAAK,EAAc,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,MAAM,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAElD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,aAAa,CAAC;IACrB,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4EAA4E;IAC5E,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,kFAAkF;IAClF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC5B,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC5B,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uHAAuH;IACvH,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,iIAAiI;IACjI,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4IAA4I;IAC5I,MAAM,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;CACtB;AAID,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAEzD;AAED,+DAA+D;AAC/D,wBAAgB,UAAU,CAAC,CAAC,SAAS,QAAQ,EAC3C,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EACnB,KAAK,EAAE,aAAa,GACnB,MAAM,CAIR;AAsCD,uHAAuH;AACvH,wBAAgB,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM,CA+BhF;AAED,wFAAwF;AACxF,wBAAgB,UAAU,CAAC,CAAC,SAAS,QAAQ,EAC3C,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EACnB,OAAO,EAAE,aAAa,GACrB,MAAM,CAER"}
package/dist/render.js ADDED
@@ -0,0 +1,64 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "preact/jsx-runtime";
2
+ import { h } from "preact";
3
+ import { renderToString } from "preact-render-to-string";
4
+ import { islandsUsed } from "./islands/island.js";
5
+ import { MODE_SCRIPT } from "./mode.js";
6
+ import { PANELS_SCRIPT } from "./panels.js";
7
+ import { ThemeContext } from "./theme/context.js";
8
+ const RTL_LANGUAGES = new Set(["ar", "fa", "he", "ur"]);
9
+ export function directionOf(locale) {
10
+ return RTL_LANGUAGES.has(locale.toLowerCase().replace(/-[^]*/, "")) ? "rtl" : "ltr";
11
+ }
12
+ /** A slot alone, inside the theme, for tests and galleries. */
13
+ export function renderSlot(slot, props, theme) {
14
+ return renderToString(_jsx(ThemeContext.Provider, { value: theme, children: h(theme.components[slot], props) }));
15
+ }
16
+ function document(body, options, head) {
17
+ const { Shell, Header, Footer } = options.theme.components;
18
+ const page = (_jsxs(Shell, { locale: options.locale, direction: directionOf(options.locale), title: options.title, head: head, ...(options.scheme === undefined ? {} : { scheme: options.scheme }), children: [_jsx(Header, { ...options.header }), options.notice, _jsx("main", { id: "main", children: body }), _jsx(Footer, { ...options.footer })] }));
19
+ return renderToString(_jsx(ThemeContext.Provider, { value: options.theme, children: page }));
20
+ }
21
+ function bundlesFor(names, options) {
22
+ return names.map((name) => {
23
+ const bundle = options.islands.find((candidate) => candidate.name === name);
24
+ if (bundle === undefined) {
25
+ throw new Error(`renderPage: island ${name} has no bundle`);
26
+ }
27
+ return bundle;
28
+ });
29
+ }
30
+ function hrefsOf(bundles, options) {
31
+ const base = options.assetsBase ?? "";
32
+ return bundles.map((bundle) => `${base}${bundle.file}`);
33
+ }
34
+ /** A complete HTML document around any body: the shell, the header, the main landmark holding the body, the footer. */
35
+ export function renderDocument(body, options) {
36
+ const head = {
37
+ inlineScripts: [...(options.scheme === undefined ? [MODE_SCRIPT] : []), PANELS_SCRIPT],
38
+ stylesheets: options.stylesheets,
39
+ modulePreloads: [],
40
+ scripts: [],
41
+ ...(options.favicon === undefined ? {} : { favicon: options.favicon }),
42
+ ...(options.redirect === undefined ? {} : { redirect: options.redirect }),
43
+ ...(options.base === undefined ? {} : { base: options.base }),
44
+ };
45
+ const first = document(body, options, head);
46
+ const islands = islandsUsed(first);
47
+ const bundles = bundlesFor(islands, options);
48
+ const modules = hrefsOf(bundles.filter((bundle) => bundle.module === true), options);
49
+ // Components are pure: rendering again with the scripts known gives the same body.
50
+ const html = islands.length === 0
51
+ ? first
52
+ : document(body, options, {
53
+ ...head,
54
+ modulePreloads: modules,
55
+ scripts: modules,
56
+ classicScripts: hrefsOf(bundles.filter((bundle) => bundle.module !== true), options),
57
+ });
58
+ return `<!doctype html>\n${html}\n`;
59
+ }
60
+ /** The complete HTML document of a page; a page without an island carries no script. */
61
+ export function renderPage(slot, props, options) {
62
+ return renderDocument(h(options.theme.components[slot], props), options);
63
+ }
64
+ //# sourceMappingURL=render.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.tsx"],"names":[],"mappings":"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"}