@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,91 @@
1
+ import { type CanonicalModel, type Entity, type Locale } from "@concordance-wiki/core";
2
+ import { type Catalogue, type MessageArguments } from "@concordance-wiki/i18n";
3
+ import type { WrittenDocument } from "../build/assemble.js";
4
+ import type { SiteNames } from "../build/context.js";
5
+ import type { EntityFragment } from "../build/fragments.js";
6
+ import { type PluralForms, type SearchLabels, type SearchMeta, type ShardData } from "./shared.js";
7
+ /** What a query word prefixing a token of the field adds to the score of the entity. */
8
+ export declare const FIELD_WEIGHTS: {
9
+ readonly title: 5;
10
+ readonly aliases: 4;
11
+ readonly summary: 2;
12
+ readonly body: 1;
13
+ readonly type: 1;
14
+ readonly application: 1;
15
+ readonly domain: 1;
16
+ readonly status: 1;
17
+ readonly source: 1;
18
+ };
19
+ export type SearchFieldName = keyof typeof FIELD_WEIGHTS;
20
+ /** `build.extracted_text_max_chars` when the configuration does not set it. */
21
+ export declare const DEFAULT_BODY_MAX_CHARS = 20000;
22
+ /** Characters of the summary a row of the results shows; a first paragraph standing in for a summary is cut there, at a word. */
23
+ export declare const SUMMARY_MAX_CHARS = 200;
24
+ /** A text cut at the last word boundary before the limit, an ellipsis marking the cut; whole when it fits. */
25
+ export declare function excerptOf(text: string, maxChars: number): string;
26
+ /**
27
+ * The tokens of a text in a locale, as the index stores them: the pipeline gives the tokeniser
28
+ * of the language packs, which adds the comparison form of every word to its written form. A
29
+ * query word matches a token by prefix after the normalisation of `normalizeQuery`, so a
30
+ * tokeniser folds case and accents the same way.
31
+ */
32
+ export type SearchTokenizer = (text: string, locale: string) => Iterable<string>;
33
+ export interface SearchIndexInput {
34
+ model: CanonicalModel;
35
+ /** The fragments of the entities, whose `text` is the body indexed. */
36
+ fragments: ReadonlyMap<string, EntityFragment>;
37
+ tokenize: SearchTokenizer;
38
+ /** The label of a type in the site language, `keyword` included. */
39
+ typeLabel: (type: string) => string;
40
+ /** The strings of the results page, from `searchLabels`. */
41
+ labels: SearchLabels;
42
+ /** The locale the counts are pluralised in. */
43
+ locale: Locale;
44
+ names?: SiteNames;
45
+ /** The names of the glossary sources, whose notes the live results present as glossary terms. */
46
+ glossarySources?: readonly string[];
47
+ /** Characters of the body text indexed per entity, the rest being cut. */
48
+ bodyMaxChars?: number;
49
+ }
50
+ export interface SearchIndex {
51
+ meta: SearchMeta;
52
+ /** By shard name, sorted; every token of a shard sorted, its pairs in entity order. */
53
+ shards: Map<string, ShardData>;
54
+ }
55
+ export interface SearchIndexFiles {
56
+ /** The entity table then the shards, in path order. */
57
+ documents: WrittenDocument[];
58
+ /** Bytes of every file together. */
59
+ bytes: number;
60
+ shards: number;
61
+ }
62
+ /** The type stored for an entity: `keyword` for a keyword page, which has no type of its own. */
63
+ export declare function searchType(entity: Entity): string;
64
+ /** The text of every indexed field of an entity; the body cut at `bodyMaxChars` characters. */
65
+ export declare function searchFields(entity: Entity, fragment: EntityFragment | undefined, bodyMaxChars: number): Record<SearchFieldName, string>;
66
+ /** A message taking a `count`, whose plural forms the table freezes. */
67
+ type CountMessage = {
68
+ [Id in keyof MessageArguments]: MessageArguments[Id] extends {
69
+ count: number;
70
+ } ? Id : never;
71
+ }[keyof MessageArguments];
72
+ /**
73
+ * The plural forms of a message: one text per category of the locale, formatted with a count of
74
+ * that category, the count then replaced by `#` for the browser to fill in with its own.
75
+ */
76
+ export declare function pluralForms(catalogue: Catalogue, id: CountMessage): PluralForms;
77
+ /** The strings of the results page in the language of the catalogue, as the table freezes them. */
78
+ export declare function searchLabels(catalogue: Catalogue): SearchLabels;
79
+ /** The compact JSON of an object, keys in code-unit order, so that two builds write the same bytes. */
80
+ export declare function compactJson(value: Record<string, unknown>): string;
81
+ /**
82
+ * The inverted index of a model: for every entity, the tokens of every indexed field with the
83
+ * sum of the weights of the fields carrying them, grouped into shards by their first characters.
84
+ */
85
+ export declare function buildSearchIndex(input: SearchIndexInput): SearchIndex;
86
+ /** The path of an index file under the output folder. */
87
+ export declare function searchFilePath(name: string): string;
88
+ /** The index as files: `search/meta.js` and one `search/<shard>.js` per shard, each a classic script. */
89
+ export declare function searchIndexFiles(index: SearchIndex): SearchIndexFiles;
90
+ export {};
91
+ //# sourceMappingURL=build.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/search/build.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,256 @@
1
+ import { pagePath } from "@concordance-wiki/core";
2
+ import { formatMessage, formatNumber, } from "@concordance-wiki/i18n";
3
+ import { byCodeUnit } from "../order.js";
4
+ import { countFacets } from "./facets.js";
5
+ import { KEYWORD_TYPE, SEARCH_DIRECTORY, SEARCH_META, shardFile, shardOf, shardScript, } from "./shared.js";
6
+ import { emptyState } from "./state.js";
7
+ /** What a query word prefixing a token of the field adds to the score of the entity. */
8
+ export const FIELD_WEIGHTS = {
9
+ title: 5,
10
+ aliases: 4,
11
+ summary: 2,
12
+ body: 1,
13
+ type: 1,
14
+ application: 1,
15
+ domain: 1,
16
+ status: 1,
17
+ source: 1,
18
+ };
19
+ /** `build.extracted_text_max_chars` when the configuration does not set it. */
20
+ export const DEFAULT_BODY_MAX_CHARS = 20_000;
21
+ /** Characters of the summary a row of the results shows; a first paragraph standing in for a summary is cut there, at a word. */
22
+ export const SUMMARY_MAX_CHARS = 200;
23
+ /** A text cut at the last word boundary before the limit, an ellipsis marking the cut; whole when it fits. */
24
+ export function excerptOf(text, maxChars) {
25
+ const characters = Array.from(text);
26
+ if (characters.length <= maxChars)
27
+ return text;
28
+ const head = characters.slice(0, maxChars).join("");
29
+ const boundary = head.search(/\s+\S*$/);
30
+ return `${(boundary > 0 ? head.slice(0, boundary) : head).trimEnd()}…`;
31
+ }
32
+ /** The type stored for an entity: `keyword` for a keyword page, which has no type of its own. */
33
+ export function searchType(entity) {
34
+ return entity.keyword === true ? KEYWORD_TYPE : entity.type;
35
+ }
36
+ /** The text of every indexed field of an entity; the body cut at `bodyMaxChars` characters. */
37
+ export function searchFields(entity, fragment, bodyMaxChars) {
38
+ return {
39
+ title: entity.title,
40
+ aliases: entity.aliases.join("\n"),
41
+ summary: entity.summary ?? "",
42
+ body: Array.from(fragment?.text ?? "")
43
+ .slice(0, bodyMaxChars)
44
+ .join(""),
45
+ type: searchType(entity),
46
+ application: entity.application ?? "",
47
+ domain: entity.domain ?? "",
48
+ status: entity.status,
49
+ source: entity.source.name,
50
+ };
51
+ }
52
+ function countOf(value) {
53
+ return typeof value === "number" ? value : 0;
54
+ }
55
+ function entryContextOf(model) {
56
+ const titles = new Map(model.entities.map((entity) => [entity.id, entity.title]));
57
+ // A keyword page is located on the file of its first mention, which is not its own.
58
+ const titlesByFile = new Map(model.entities
59
+ .filter((entity) => entity.keyword !== true)
60
+ .map((entity) => [`${entity.source.name}/${entity.source.path}`, entity.title]));
61
+ const citing = new Map();
62
+ for (const link of model.links) {
63
+ const pages = citing.get(link.to) ?? new Set();
64
+ pages.add(link.from);
65
+ citing.set(link.to, pages);
66
+ }
67
+ return {
68
+ titles,
69
+ titlesByFile,
70
+ cited: new Map([...citing].map(([id, pages]) => [id, pages.size])),
71
+ };
72
+ }
73
+ /** The broader term a note declares, by the title of its page when the value is its identifier or its path in the same source, as written otherwise. */
74
+ function broaderOf(entity, context) {
75
+ const value = entity.attributes["broader"];
76
+ if (typeof value !== "string")
77
+ return undefined;
78
+ return (context.titles.get(value) ?? context.titlesByFile.get(`${entity.source.name}/${value}`) ?? value);
79
+ }
80
+ function entryOf(entity, context) {
81
+ const broader = broaderOf(entity, context);
82
+ return {
83
+ id: entity.id,
84
+ title: entity.title,
85
+ type: searchType(entity),
86
+ url: pagePath(entity.id),
87
+ ...(entity.application === undefined ? {} : { application: entity.application }),
88
+ ...(entity.domain === undefined ? {} : { domain: entity.domain }),
89
+ status: entity.status,
90
+ source: entity.source.name,
91
+ ...(entity.summary === undefined
92
+ ? {}
93
+ : { summary: excerptOf(entity.summary, SUMMARY_MAX_CHARS) }),
94
+ ...(entity.aliases.length === 0 ? {} : { aliases: entity.aliases }),
95
+ ...(broader === undefined ? {} : { broader }),
96
+ ...(entity.keyword === true
97
+ ? {
98
+ keyword: true,
99
+ occurrences: countOf(entity.attributes["occurrences"]),
100
+ documents: countOf(entity.attributes["documents"]),
101
+ }
102
+ : { cited: context.cited.get(entity.id) ?? 0 }),
103
+ };
104
+ }
105
+ function labelled(values, label) {
106
+ const table = {};
107
+ for (const value of [...new Set(values)].filter((v) => v !== undefined).sort(byCodeUnit)) {
108
+ table[value] = label(value);
109
+ }
110
+ return table;
111
+ }
112
+ /**
113
+ * Counts whose plural categories, together, reach every category a language declares: the
114
+ * first of them in a category is formatted, the second is what the browser sees as `#`.
115
+ */
116
+ const PLURAL_SAMPLES = [1, 2, 0, 3, 5, 11, 100, 1_000_000];
117
+ /**
118
+ * The plural forms of a message: one text per category of the locale, formatted with a count of
119
+ * that category, the count then replaced by `#` for the browser to fill in with its own.
120
+ */
121
+ export function pluralForms(catalogue, id) {
122
+ const rules = new Intl.PluralRules(catalogue.locale);
123
+ const forms = {};
124
+ for (const category of [...rules.resolvedOptions().pluralCategories].sort(byCodeUnit)) {
125
+ const sample = PLURAL_SAMPLES.find((count) => rules.select(count) === category);
126
+ if (sample === undefined)
127
+ continue;
128
+ forms[category] = formatMessage(catalogue, id, { count: sample }).replaceAll(formatNumber(catalogue.locale, sample), "#");
129
+ }
130
+ return forms;
131
+ }
132
+ function plain(catalogue, id) {
133
+ return formatMessage(catalogue, id);
134
+ }
135
+ /** The strings of the results page in the language of the catalogue, as the table freezes them. */
136
+ export function searchLabels(catalogue) {
137
+ return {
138
+ facets: plain(catalogue, "search.facets"),
139
+ facet: {
140
+ type: plain(catalogue, "search.facet.type"),
141
+ source: plain(catalogue, "search.facet.source"),
142
+ domain: plain(catalogue, "search.facet.domain"),
143
+ application: plain(catalogue, "search.facet.application"),
144
+ },
145
+ activeFilters: plain(catalogue, "search.activeFilters"),
146
+ removeFilter: plain(catalogue, "search.removeFilter"),
147
+ clear: plain(catalogue, "search.clear"),
148
+ noResult: plain(catalogue, "search.noResult"),
149
+ noResultFor: plain(catalogue, "results.noResultFor"),
150
+ results: pluralForms(catalogue, "search.results"),
151
+ countersNote: plain(catalogue, "results.countersNote"),
152
+ noteless: {
153
+ label: plain(catalogue, "search.facet.noNote"),
154
+ any: plain(catalogue, "search.noNote.any"),
155
+ only: plain(catalogue, "search.noNote.only"),
156
+ exclude: plain(catalogue, "search.noNote.exclude"),
157
+ },
158
+ cited: pluralForms(catalogue, "results.cited"),
159
+ alsoCalled: plain(catalogue, "results.alsoCalled"),
160
+ broader: plain(catalogue, "results.broader"),
161
+ usedIn: pluralForms(catalogue, "results.usedIn"),
162
+ notelessNote: plain(catalogue, "results.notelessNote"),
163
+ closestForm: plain(catalogue, "results.closestForm"),
164
+ occurrences: pluralForms(catalogue, "keyword.occurrences"),
165
+ showNext: pluralForms(catalogue, "results.showNext"),
166
+ noResultFiltered: pluralForms(catalogue, "results.noResultFiltered"),
167
+ existsElsewhere: plain(catalogue, "results.existsElsewhere"),
168
+ liftFilter: plain(catalogue, "results.liftFilter"),
169
+ noFileUses: plain(catalogue, "results.noFileUses"),
170
+ seeWordPage: plain(catalogue, "results.seeWordPage"),
171
+ prefixNote: plain(catalogue, "results.prefixNote"),
172
+ };
173
+ }
174
+ /** The compact JSON of an object, keys in code-unit order, so that two builds write the same bytes. */
175
+ export function compactJson(value) {
176
+ const sorted = {};
177
+ for (const key of Object.keys(value).sort(byCodeUnit)) {
178
+ sorted[key] = value[key];
179
+ }
180
+ return JSON.stringify(sorted);
181
+ }
182
+ /**
183
+ * The inverted index of a model: for every entity, the tokens of every indexed field with the
184
+ * sum of the weights of the fields carrying them, grouped into shards by their first characters.
185
+ */
186
+ export function buildSearchIndex(input) {
187
+ const bodyMaxChars = input.bodyMaxChars ?? DEFAULT_BODY_MAX_CHARS;
188
+ const weights = new Map();
189
+ const entities = input.model.entities;
190
+ entities.forEach((entity, index) => {
191
+ const fields = searchFields(entity, input.fragments.get(entity.id), bodyMaxChars);
192
+ for (const [field, weight] of Object.entries(FIELD_WEIGHTS)) {
193
+ // The keys of FIELD_WEIGHTS are the fields, by construction.
194
+ for (const token of new Set(input.tokenize(fields[field], entity.locale))) {
195
+ const byEntity = weights.get(token) ?? new Map();
196
+ byEntity.set(index, (byEntity.get(index) ?? 0) + weight);
197
+ weights.set(token, byEntity);
198
+ }
199
+ }
200
+ });
201
+ // Tokens in code-unit order visit the shard names in the same order: the map is sorted as built.
202
+ const shards = new Map();
203
+ for (const [token, byEntity] of [...weights].sort(([a], [b]) => byCodeUnit(a, b))) {
204
+ const name = shardOf(token);
205
+ const shard = shards.get(name) ?? {};
206
+ // Entities were visited in table order, so the pairs are already ascending.
207
+ shard[token] = [...byEntity];
208
+ shards.set(name, shard);
209
+ }
210
+ const context = entryContextOf(input.model);
211
+ const entries = entities.map((entity) => entryOf(entity, context));
212
+ const names = input.names ?? {};
213
+ let bytes = 0;
214
+ for (const [name, shard] of shards) {
215
+ bytes += Buffer.byteLength(shardScript(name, compactJson(shard)));
216
+ }
217
+ return {
218
+ meta: {
219
+ entities: entries,
220
+ shards: [...shards.keys()],
221
+ types: labelled(entries.map((entry) => entry.type), (type) => input.typeLabel(type)),
222
+ applications: labelled(entries.map((entry) => entry.application), (id) => names.applications?.[id] ?? id),
223
+ domains: labelled(entries.map((entry) => entry.domain), (id) => names.domains?.[id] ?? id),
224
+ sources: labelled(entries.map((entry) => entry.source), (name) => names.sources?.[name] ?? name),
225
+ glossary: [...new Set(input.glossarySources ?? [])].sort(byCodeUnit),
226
+ counts: countFacets(entries, emptyState()),
227
+ labels: input.labels,
228
+ locale: input.locale,
229
+ bytes,
230
+ },
231
+ shards,
232
+ };
233
+ }
234
+ /** The path of an index file under the output folder. */
235
+ export function searchFilePath(name) {
236
+ return `${SEARCH_DIRECTORY}/${shardFile(name)}.js`;
237
+ }
238
+ /** The index as files: `search/meta.js` and one `search/<shard>.js` per shard, each a classic script. */
239
+ export function searchIndexFiles(index) {
240
+ const documents = [
241
+ {
242
+ path: searchFilePath(SEARCH_META),
243
+ content: shardScript(SEARCH_META, compactJson({ ...index.meta })),
244
+ },
245
+ ...[...index.shards].map(([name, shard]) => ({
246
+ path: searchFilePath(name),
247
+ content: shardScript(name, compactJson(shard)),
248
+ })),
249
+ ];
250
+ return {
251
+ documents,
252
+ bytes: documents.reduce((total, document) => total + Buffer.byteLength(document.content), 0),
253
+ shards: index.shards.size,
254
+ };
255
+ }
256
+ //# sourceMappingURL=build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/search/build.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * The facets of the results page: which entries the selected values keep, how many entries carry
3
+ * every value, and the view model the results component draws. Pure, so that the build computes
4
+ * the counts of the whole table with the same code the island runs over the results of a query.
5
+ */
6
+ import type { ActiveFilter, Facet } from "../slots.js";
7
+ import { NOTELESS_FACET, type FacetCounts, type FacetName, type NotelessFilter, type SearchEntry, type SearchMeta } from "./shared.js";
8
+ import { type SearchState } from "./state.js";
9
+ /** The value of an entry for a facet; none for an entity filed under no application or domain. */
10
+ export declare function facetValue(entry: SearchEntry, name: FacetName): string | undefined;
11
+ /**
12
+ * Whether an entry passes every facet but the one named, the facets combining by intersection.
13
+ * Leaving one out is what gives its values a count worth showing: what selecting each of them
14
+ * would keep, so that a second value of the same facet stays selectable.
15
+ */
16
+ export declare function matchesOthers(entry: SearchEntry, state: SearchState, except?: FacetName | typeof NOTELESS_FACET): boolean;
17
+ /** The entries every selected value keeps, in the order given. */
18
+ export declare function filterEntries<T>(items: readonly T[], entryOf: (item: T) => SearchEntry, state: SearchState): T[];
19
+ /** The number of entries carrying every value of every facet, each facet counted under the filters of the others; values in code-unit order. */
20
+ export declare function countFacets(entries: readonly SearchEntry[], state: SearchState): FacetCounts;
21
+ /** The label table of a facet in the entity table: what every value is called. */
22
+ export declare function facetLabels(meta: SearchMeta, name: FacetName): Record<string, string>;
23
+ /** The facets the page opens: the type and the space; the others stand folded under them. */
24
+ export declare const PRIMARY_FACETS: readonly FacetName[];
25
+ /**
26
+ * The facets as the results page draws them: every value the site knows, in the order of the
27
+ * table, the keyword type last among the types, with its count under the current filters,
28
+ * selected or not, and disabled when nothing would come of selecting it; `hrefOf` gives the
29
+ * address of the state a click leads to. The type and the space are open, the domain, the
30
+ * application and the no-note facet folded; the keyword type is flagged so that the page draws
31
+ * it dotted like the rows of the words without a note.
32
+ */
33
+ export declare function facetsOf(meta: SearchMeta, state: SearchState, counts: FacetCounts, hrefOf: (state: SearchState) => string): Facet[];
34
+ /** The count of a no-note value: the keyword pages under `only`, the others under `exclude`, both under `any`. */
35
+ export declare function notelessCount(counts: FacetCounts, value: NotelessFilter): number;
36
+ /** The no-note facet: one value is always active, `any` by default, and the others show what they would keep. */
37
+ export declare function notelessFacetOf(meta: SearchMeta, state: SearchState, counts: FacetCounts, hrefOf: (state: SearchState) => string): Facet;
38
+ /** The selected values recalled above the results, in facet then value order, each with the address that lifts it. */
39
+ export declare function activeFiltersOf(meta: SearchMeta, state: SearchState, hrefOf: (state: SearchState) => string): ActiveFilter[];
40
+ //# sourceMappingURL=facets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"facets.d.ts","sourceRoot":"","sources":["../../src/search/facets.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAGL,cAAc,EAEd,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,UAAU,EAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EAA2C,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAEvF,kGAAkG;AAClG,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAElF;AAeD;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,WAAW,EAClB,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,cAAc,GACzC,OAAO,CAKT;AAED,kEAAkE;AAClE,wBAAgB,aAAa,CAAC,CAAC,EAC7B,KAAK,EAAE,SAAS,CAAC,EAAE,EACnB,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,WAAW,EACjC,KAAK,EAAE,WAAW,GACjB,CAAC,EAAE,CAEL;AAED,gJAAgJ;AAChJ,wBAAgB,WAAW,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,EAAE,KAAK,EAAE,WAAW,GAAG,WAAW,CAsB5F;AAED,kFAAkF;AAClF,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQrF;AAED,6FAA6F;AAC7F,eAAO,MAAM,cAAc,EAAE,SAAS,SAAS,EAAuB,CAAC;AAOvE;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CACtB,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,MAAM,GACrC,KAAK,EAAE,CA0BT;AAED,kHAAkH;AAClH,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,GAAG,MAAM,CAEhF;AAED,iHAAiH;AACjH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,MAAM,GACrC,KAAK,CAkBP;AAED,sHAAsH;AACtH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,MAAM,GACrC,YAAY,EAAE,CAqBhB"}
@@ -0,0 +1,159 @@
1
+ /**
2
+ * The facets of the results page: which entries the selected values keep, how many entries carry
3
+ * every value, and the view model the results component draws. Pure, so that the build computes
4
+ * the counts of the whole table with the same code the island runs over the results of a query.
5
+ */
6
+ import { byCodeUnit } from "../order.js";
7
+ import { FACET_NAMES, KEYWORD_TYPE, NOTELESS_FACET, NOTELESS_FILTERS, } from "./shared.js";
8
+ import { isSelected, toggleNoteless, toggleValue } from "./state.js";
9
+ /** The value of an entry for a facet; none for an entity filed under no application or domain. */
10
+ export function facetValue(entry, name) {
11
+ return entry[name];
12
+ }
13
+ /** Whether an entry passes the selected values of one facet: any of them, or all of them when none is selected. */
14
+ function passes(entry, state, name) {
15
+ const values = state.filters[name];
16
+ if (values.length === 0)
17
+ return true;
18
+ const value = facetValue(entry, name);
19
+ return value !== undefined && values.includes(value);
20
+ }
21
+ /** Whether an entry passes the no-note facet: every entry under `any`, the keyword pages alone under `only`, the others under `exclude`. */
22
+ function passesNoteless(entry, noteless) {
23
+ return noteless === "any" || (noteless === "only") === (entry.keyword === true);
24
+ }
25
+ /**
26
+ * Whether an entry passes every facet but the one named, the facets combining by intersection.
27
+ * Leaving one out is what gives its values a count worth showing: what selecting each of them
28
+ * would keep, so that a second value of the same facet stays selectable.
29
+ */
30
+ export function matchesOthers(entry, state, except) {
31
+ return ((except === NOTELESS_FACET || passesNoteless(entry, state.noteless)) &&
32
+ FACET_NAMES.every((name) => name === except || passes(entry, state, name)));
33
+ }
34
+ /** The entries every selected value keeps, in the order given. */
35
+ export function filterEntries(items, entryOf, state) {
36
+ return items.filter((item) => matchesOthers(entryOf(item), state));
37
+ }
38
+ /** The number of entries carrying every value of every facet, each facet counted under the filters of the others; values in code-unit order. */
39
+ export function countFacets(entries, state) {
40
+ const counts = {
41
+ type: {},
42
+ source: {},
43
+ domain: {},
44
+ application: {},
45
+ nonote: { only: 0, exclude: 0 },
46
+ };
47
+ for (const entry of entries) {
48
+ if (!matchesOthers(entry, state, NOTELESS_FACET))
49
+ continue;
50
+ counts.nonote[entry.keyword === true ? "only" : "exclude"] += 1;
51
+ }
52
+ for (const name of FACET_NAMES) {
53
+ const table = counts[name];
54
+ for (const entry of entries) {
55
+ const value = facetValue(entry, name);
56
+ if (value === undefined || !matchesOthers(entry, state, name))
57
+ continue;
58
+ table[value] = (table[value] ?? 0) + 1;
59
+ }
60
+ counts[name] = Object.fromEntries(Object.entries(table).sort(([a], [b]) => byCodeUnit(a, b)));
61
+ }
62
+ return counts;
63
+ }
64
+ /** The label table of a facet in the entity table: what every value is called. */
65
+ export function facetLabels(meta, name) {
66
+ const tables = {
67
+ type: meta.types,
68
+ source: meta.sources,
69
+ domain: meta.domains,
70
+ application: meta.applications,
71
+ };
72
+ return tables[name];
73
+ }
74
+ /** The facets the page opens: the type and the space; the others stand folded under them. */
75
+ export const PRIMARY_FACETS = ["type", "source"];
76
+ /** Whether a value of a facet stands for the words without a note: the keyword type of the type facet. */
77
+ function isKeywordValue(name, value) {
78
+ return name === "type" && value === KEYWORD_TYPE;
79
+ }
80
+ /**
81
+ * The facets as the results page draws them: every value the site knows, in the order of the
82
+ * table, the keyword type last among the types, with its count under the current filters,
83
+ * selected or not, and disabled when nothing would come of selecting it; `hrefOf` gives the
84
+ * address of the state a click leads to. The type and the space are open, the domain, the
85
+ * application and the no-note facet folded; the keyword type is flagged so that the page draws
86
+ * it dotted like the rows of the words without a note.
87
+ */
88
+ export function facetsOf(meta, state, counts, hrefOf) {
89
+ const fields = FACET_NAMES.map((name) => {
90
+ const labels = facetLabels(meta, name);
91
+ const values = Object.entries(labels).sort(([a], [b]) => Number(isKeywordValue(name, a)) - Number(isKeywordValue(name, b)));
92
+ return {
93
+ name,
94
+ label: meta.labels.facet[name],
95
+ ...(PRIMARY_FACETS.includes(name) ? {} : { folded: true }),
96
+ values: values.map(([value, label]) => {
97
+ const count = counts[name][value] ?? 0;
98
+ const active = isSelected(state, name, value);
99
+ return {
100
+ value,
101
+ label,
102
+ count,
103
+ href: hrefOf(toggleValue(state, name, value)),
104
+ active,
105
+ disabled: count === 0 && !active,
106
+ ...(isKeywordValue(name, value) ? { keyword: true } : {}),
107
+ };
108
+ }),
109
+ };
110
+ });
111
+ return [...fields, notelessFacetOf(meta, state, counts, hrefOf)];
112
+ }
113
+ /** The count of a no-note value: the keyword pages under `only`, the others under `exclude`, both under `any`. */
114
+ export function notelessCount(counts, value) {
115
+ return value === "any" ? counts.nonote.only + counts.nonote.exclude : counts.nonote[value];
116
+ }
117
+ /** The no-note facet: one value is always active, `any` by default, and the others show what they would keep. */
118
+ export function notelessFacetOf(meta, state, counts, hrefOf) {
119
+ return {
120
+ name: NOTELESS_FACET,
121
+ label: meta.labels.noteless.label,
122
+ folded: true,
123
+ values: NOTELESS_FILTERS.map((value) => {
124
+ const count = notelessCount(counts, value);
125
+ const active = state.noteless === value;
126
+ return {
127
+ value,
128
+ label: meta.labels.noteless[value],
129
+ count,
130
+ href: hrefOf(toggleNoteless(state, value)),
131
+ active,
132
+ disabled: count === 0 && !active,
133
+ };
134
+ }),
135
+ };
136
+ }
137
+ /** The selected values recalled above the results, in facet then value order, each with the address that lifts it. */
138
+ export function activeFiltersOf(meta, state, hrefOf) {
139
+ const fields = FACET_NAMES.flatMap((name) => state.filters[name].map((value) => ({
140
+ name,
141
+ value,
142
+ facetLabel: meta.labels.facet[name],
143
+ label: facetLabels(meta, name)[value] ?? value,
144
+ href: hrefOf(toggleValue(state, name, value)),
145
+ })));
146
+ if (state.noteless === "any")
147
+ return fields;
148
+ return [
149
+ ...fields,
150
+ {
151
+ name: NOTELESS_FACET,
152
+ value: state.noteless,
153
+ facetLabel: meta.labels.noteless.label,
154
+ label: meta.labels.noteless[state.noteless],
155
+ href: hrefOf(toggleNoteless(state, state.noteless)),
156
+ },
157
+ ];
158
+ }
159
+ //# sourceMappingURL=facets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"facets.js","sourceRoot":"","sources":["../../src/search/facets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * How a title marks the words of a query: the start of every token a word prefixes, compared
3
+ * on the same folded form as the index. Nothing here reaches Node either: the island marks
4
+ * the titles of the live results.
5
+ */
6
+ /** A piece of a title: plain text, or the start of a token a word of the query matched. */
7
+ export interface TitlePiece {
8
+ text: string;
9
+ marked: boolean;
10
+ }
11
+ /** The title cut into pieces, the start of every token a word of the query prefixes marked; one plain piece when nothing matches. */
12
+ export declare function markTitle(title: string, words: readonly string[]): TitlePiece[];
13
+ //# sourceMappingURL=highlight.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"highlight.d.ts","sourceRoot":"","sources":["../../src/search/highlight.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,2FAA2F;AAC3F,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;CACjB;AAsDD,qIAAqI;AACrI,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,EAAE,CAuB/E"}