react-cheminfo 0.2.0 → 0.4.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 (882) hide show
  1. package/README.md +139 -10
  2. package/lib/capsule/ui/CapsuleFilter.d.ts +61 -0
  3. package/lib/capsule/ui/CapsuleFilter.d.ts.map +1 -0
  4. package/lib/capsule/ui/CapsuleFilter.js +33 -0
  5. package/lib/capsule/ui/CapsuleFilter.js.map +1 -0
  6. package/lib/capsule/ui/index.d.ts +3 -0
  7. package/lib/capsule/ui/index.d.ts.map +1 -0
  8. package/lib/capsule/ui/index.js +2 -0
  9. package/lib/capsule/ui/index.js.map +1 -0
  10. package/lib/chrome/ui/NavLink.d.ts +27 -0
  11. package/lib/chrome/ui/NavLink.d.ts.map +1 -0
  12. package/lib/chrome/ui/NavLink.js +36 -0
  13. package/lib/chrome/ui/NavLink.js.map +1 -0
  14. package/lib/chrome/ui/NavMenuButton.d.ts +40 -0
  15. package/lib/chrome/ui/NavMenuButton.d.ts.map +1 -0
  16. package/lib/chrome/ui/NavMenuButton.js +26 -0
  17. package/lib/chrome/ui/NavMenuButton.js.map +1 -0
  18. package/lib/chrome/ui/SiteFooter.d.ts +39 -0
  19. package/lib/chrome/ui/SiteFooter.d.ts.map +1 -0
  20. package/lib/chrome/ui/SiteFooter.js +17 -0
  21. package/lib/chrome/ui/SiteFooter.js.map +1 -0
  22. package/lib/chrome/ui/SiteHeader.d.ts +59 -0
  23. package/lib/chrome/ui/SiteHeader.d.ts.map +1 -0
  24. package/lib/chrome/ui/SiteHeader.js +28 -0
  25. package/lib/chrome/ui/SiteHeader.js.map +1 -0
  26. package/lib/chrome/ui/index.d.ts +12 -0
  27. package/lib/chrome/ui/index.d.ts.map +1 -0
  28. package/lib/chrome/ui/index.js +6 -0
  29. package/lib/chrome/ui/index.js.map +1 -0
  30. package/lib/chrome/ui/navItem.d.ts +57 -0
  31. package/lib/chrome/ui/navItem.d.ts.map +1 -0
  32. package/lib/chrome/ui/navItem.js +10 -0
  33. package/lib/chrome/ui/navItem.js.map +1 -0
  34. package/lib/chrome/ui/useCompactHeader.d.ts +31 -0
  35. package/lib/chrome/ui/useCompactHeader.d.ts.map +1 -0
  36. package/lib/chrome/ui/useCompactHeader.js +50 -0
  37. package/lib/chrome/ui/useCompactHeader.js.map +1 -0
  38. package/lib/citation/core/clipboard.d.ts +12 -3
  39. package/lib/citation/core/clipboard.d.ts.map +1 -1
  40. package/lib/citation/core/clipboard.js +21 -10
  41. package/lib/citation/core/clipboard.js.map +1 -1
  42. package/lib/citation/core/download.d.ts +11 -3
  43. package/lib/citation/core/download.d.ts.map +1 -1
  44. package/lib/citation/core/download.js +17 -13
  45. package/lib/citation/core/download.js.map +1 -1
  46. package/lib/citation/core/index.d.ts +4 -3
  47. package/lib/citation/core/index.d.ts.map +1 -1
  48. package/lib/citation/core/index.js +3 -3
  49. package/lib/citation/core/index.js.map +1 -1
  50. package/lib/citation/core/works.d.ts +44 -0
  51. package/lib/citation/core/works.d.ts.map +1 -0
  52. package/lib/citation/core/works.js +51 -0
  53. package/lib/citation/core/works.js.map +1 -0
  54. package/lib/citation/ui/CitationMenu.d.ts +20 -3
  55. package/lib/citation/ui/CitationMenu.d.ts.map +1 -1
  56. package/lib/citation/ui/CitationMenu.js +60 -49
  57. package/lib/citation/ui/CitationMenu.js.map +1 -1
  58. package/lib/citation/ui/CitationPreview.d.ts +5 -2
  59. package/lib/citation/ui/CitationPreview.d.ts.map +1 -1
  60. package/lib/citation/ui/CitationPreview.js +9 -4
  61. package/lib/citation/ui/CitationPreview.js.map +1 -1
  62. package/lib/citation/ui/CiteButton.d.ts +13 -6
  63. package/lib/citation/ui/CiteButton.d.ts.map +1 -1
  64. package/lib/citation/ui/CiteButton.js +5 -4
  65. package/lib/citation/ui/CiteButton.js.map +1 -1
  66. package/lib/citation/ui/CopyFormatEntries.d.ts +31 -0
  67. package/lib/citation/ui/CopyFormatEntries.d.ts.map +1 -0
  68. package/lib/citation/ui/CopyFormatEntries.js +29 -0
  69. package/lib/citation/ui/CopyFormatEntries.js.map +1 -0
  70. package/lib/citation/ui/WorkEntry.d.ts +18 -0
  71. package/lib/citation/ui/WorkEntry.d.ts.map +1 -0
  72. package/lib/citation/ui/WorkEntry.js +32 -0
  73. package/lib/citation/ui/WorkEntry.js.map +1 -0
  74. package/lib/citation/ui/entries.d.ts +7 -7
  75. package/lib/citation/ui/entries.d.ts.map +1 -1
  76. package/lib/citation/ui/entries.js +11 -13
  77. package/lib/citation/ui/entries.js.map +1 -1
  78. package/lib/citation/ui/index.d.ts +2 -2
  79. package/lib/citation/ui/index.d.ts.map +1 -1
  80. package/lib/citation/ui/index.js.map +1 -1
  81. package/lib/citation/ui/useCopyFeedback.d.ts +20 -0
  82. package/lib/citation/ui/useCopyFeedback.d.ts.map +1 -0
  83. package/lib/citation/ui/useCopyFeedback.js +49 -0
  84. package/lib/citation/ui/useCopyFeedback.js.map +1 -0
  85. package/lib/clipboard/core/index.d.ts +2 -0
  86. package/lib/clipboard/core/index.d.ts.map +1 -0
  87. package/lib/clipboard/core/index.js +2 -0
  88. package/lib/clipboard/core/index.js.map +1 -0
  89. package/lib/clipboard/core/writeToClipboard.d.ts +12 -0
  90. package/lib/clipboard/core/writeToClipboard.d.ts.map +1 -0
  91. package/lib/clipboard/core/writeToClipboard.js +49 -0
  92. package/lib/clipboard/core/writeToClipboard.js.map +1 -0
  93. package/lib/clipboard/ui/CodeBlock.d.ts +43 -0
  94. package/lib/clipboard/ui/CodeBlock.d.ts.map +1 -0
  95. package/lib/clipboard/ui/CodeBlock.js +49 -0
  96. package/lib/clipboard/ui/CodeBlock.js.map +1 -0
  97. package/lib/clipboard/ui/CopyButton.d.ts +64 -0
  98. package/lib/clipboard/ui/CopyButton.d.ts.map +1 -0
  99. package/lib/clipboard/ui/CopyButton.js +21 -0
  100. package/lib/clipboard/ui/CopyButton.js.map +1 -0
  101. package/lib/clipboard/ui/index.d.ts +7 -0
  102. package/lib/clipboard/ui/index.d.ts.map +1 -0
  103. package/lib/clipboard/ui/index.js +4 -0
  104. package/lib/clipboard/ui/index.js.map +1 -0
  105. package/lib/clipboard/ui/useCopyToClipboard.d.ts +24 -0
  106. package/lib/clipboard/ui/useCopyToClipboard.d.ts.map +1 -0
  107. package/lib/clipboard/ui/useCopyToClipboard.js +36 -0
  108. package/lib/clipboard/ui/useCopyToClipboard.js.map +1 -0
  109. package/lib/color/core/contrast.d.ts +43 -0
  110. package/lib/color/core/contrast.d.ts.map +1 -0
  111. package/lib/color/core/contrast.js +61 -0
  112. package/lib/color/core/contrast.js.map +1 -0
  113. package/lib/color/core/hex.d.ts +26 -0
  114. package/lib/color/core/hex.d.ts.map +1 -0
  115. package/lib/color/core/hex.js +44 -0
  116. package/lib/color/core/hex.js.map +1 -0
  117. package/lib/color/core/index.d.ts +5 -0
  118. package/lib/color/core/index.d.ts.map +1 -0
  119. package/lib/color/core/index.js +3 -0
  120. package/lib/color/core/index.js.map +1 -0
  121. package/lib/color/core/scale.d.ts +52 -0
  122. package/lib/color/core/scale.d.ts.map +1 -0
  123. package/lib/color/core/scale.js +96 -0
  124. package/lib/color/core/scale.js.map +1 -0
  125. package/lib/color/ui/ColorScaleLegend.d.ts +38 -0
  126. package/lib/color/ui/ColorScaleLegend.d.ts.map +1 -0
  127. package/lib/color/ui/ColorScaleLegend.js +68 -0
  128. package/lib/color/ui/ColorScaleLegend.js.map +1 -0
  129. package/lib/color/ui/index.d.ts +3 -0
  130. package/lib/color/ui/index.d.ts.map +1 -0
  131. package/lib/color/ui/index.js +2 -0
  132. package/lib/color/ui/index.js.map +1 -0
  133. package/lib/core.d.ts +12 -0
  134. package/lib/core.d.ts.map +1 -1
  135. package/lib/core.js +12 -0
  136. package/lib/core.js.map +1 -1
  137. package/lib/credits/core/credits.d.ts +144 -0
  138. package/lib/credits/core/credits.d.ts.map +1 -0
  139. package/lib/credits/core/credits.js +156 -0
  140. package/lib/credits/core/credits.js.map +1 -0
  141. package/lib/credits/core/index.d.ts +3 -0
  142. package/lib/credits/core/index.d.ts.map +1 -0
  143. package/lib/credits/core/index.js +2 -0
  144. package/lib/credits/core/index.js.map +1 -0
  145. package/lib/credits/ui/CreditsList.d.ts +29 -0
  146. package/lib/credits/ui/CreditsList.d.ts.map +1 -0
  147. package/lib/credits/ui/CreditsList.js +33 -0
  148. package/lib/credits/ui/CreditsList.js.map +1 -0
  149. package/lib/credits/ui/index.d.ts +3 -0
  150. package/lib/credits/ui/index.d.ts.map +1 -0
  151. package/lib/credits/ui/index.js +2 -0
  152. package/lib/credits/ui/index.js.map +1 -0
  153. package/lib/delimited/core/delimiters.d.ts +31 -0
  154. package/lib/delimited/core/delimiters.d.ts.map +1 -0
  155. package/lib/delimited/core/delimiters.js +46 -0
  156. package/lib/delimited/core/delimiters.js.map +1 -0
  157. package/lib/delimited/core/index.d.ts +9 -0
  158. package/lib/delimited/core/index.d.ts.map +1 -0
  159. package/lib/delimited/core/index.js +5 -0
  160. package/lib/delimited/core/index.js.map +1 -0
  161. package/lib/delimited/core/readDelimited.d.ts +32 -0
  162. package/lib/delimited/core/readDelimited.d.ts.map +1 -0
  163. package/lib/delimited/core/readDelimited.js +122 -0
  164. package/lib/delimited/core/readDelimited.js.map +1 -0
  165. package/lib/delimited/core/rowsToDelimited.d.ts +59 -0
  166. package/lib/delimited/core/rowsToDelimited.d.ts.map +1 -0
  167. package/lib/delimited/core/rowsToDelimited.js +87 -0
  168. package/lib/delimited/core/rowsToDelimited.js.map +1 -0
  169. package/lib/delimited/core/toDelimited.d.ts +38 -0
  170. package/lib/delimited/core/toDelimited.d.ts.map +1 -0
  171. package/lib/delimited/core/toDelimited.js +45 -0
  172. package/lib/delimited/core/toDelimited.js.map +1 -0
  173. package/lib/delimited/ui/DelimitedTextDialog.d.ts +22 -0
  174. package/lib/delimited/ui/DelimitedTextDialog.d.ts.map +1 -0
  175. package/lib/delimited/ui/DelimitedTextDialog.js +17 -0
  176. package/lib/delimited/ui/DelimitedTextDialog.js.map +1 -0
  177. package/lib/delimited/ui/DelimitedTextPanel.d.ts +56 -0
  178. package/lib/delimited/ui/DelimitedTextPanel.d.ts.map +1 -0
  179. package/lib/delimited/ui/DelimitedTextPanel.js +55 -0
  180. package/lib/delimited/ui/DelimitedTextPanel.js.map +1 -0
  181. package/lib/delimited/ui/index.d.ts +5 -0
  182. package/lib/delimited/ui/index.d.ts.map +1 -0
  183. package/lib/delimited/ui/index.js +3 -0
  184. package/lib/delimited/ui/index.js.map +1 -0
  185. package/lib/disclosure/ui/CollapsibleSection.d.ts +57 -0
  186. package/lib/disclosure/ui/CollapsibleSection.d.ts.map +1 -0
  187. package/lib/disclosure/ui/CollapsibleSection.js +60 -0
  188. package/lib/disclosure/ui/CollapsibleSection.js.map +1 -0
  189. package/lib/disclosure/ui/index.d.ts +5 -0
  190. package/lib/disclosure/ui/index.d.ts.map +1 -0
  191. package/lib/disclosure/ui/index.js +3 -0
  192. package/lib/disclosure/ui/index.js.map +1 -0
  193. package/lib/disclosure/ui/useDisclosure.d.ts +22 -0
  194. package/lib/disclosure/ui/useDisclosure.d.ts.map +1 -0
  195. package/lib/disclosure/ui/useDisclosure.js +18 -0
  196. package/lib/disclosure/ui/useDisclosure.js.map +1 -0
  197. package/lib/download/core/downloadBlob.d.ts +10 -0
  198. package/lib/download/core/downloadBlob.d.ts.map +1 -0
  199. package/lib/download/core/downloadBlob.js +20 -0
  200. package/lib/download/core/downloadBlob.js.map +1 -0
  201. package/lib/download/core/downloadText.d.ts +9 -0
  202. package/lib/download/core/downloadText.d.ts.map +1 -0
  203. package/lib/download/core/downloadText.js +14 -0
  204. package/lib/download/core/downloadText.js.map +1 -0
  205. package/lib/download/core/index.d.ts +4 -0
  206. package/lib/download/core/index.d.ts.map +1 -0
  207. package/lib/download/core/index.js +4 -0
  208. package/lib/download/core/index.js.map +1 -0
  209. package/lib/download/core/sanitizeFileName.d.ts +15 -0
  210. package/lib/download/core/sanitizeFileName.d.ts.map +1 -0
  211. package/lib/download/core/sanitizeFileName.js +33 -0
  212. package/lib/download/core/sanitizeFileName.js.map +1 -0
  213. package/lib/ecosystem/core/index.d.ts +3 -0
  214. package/lib/ecosystem/core/index.d.ts.map +1 -1
  215. package/lib/ecosystem/core/index.js +3 -0
  216. package/lib/ecosystem/core/index.js.map +1 -1
  217. package/lib/ecosystem/core/links.d.ts +11 -0
  218. package/lib/ecosystem/core/links.d.ts.map +1 -0
  219. package/lib/ecosystem/core/links.js +28 -0
  220. package/lib/ecosystem/core/links.js.map +1 -0
  221. package/lib/ecosystem/core/lookup.d.ts +21 -0
  222. package/lib/ecosystem/core/lookup.d.ts.map +1 -0
  223. package/lib/ecosystem/core/lookup.js +40 -0
  224. package/lib/ecosystem/core/lookup.js.map +1 -0
  225. package/lib/ecosystem/core/sites.d.ts +3 -1
  226. package/lib/ecosystem/core/sites.d.ts.map +1 -1
  227. package/lib/ecosystem/core/sites.js +33 -0
  228. package/lib/ecosystem/core/sites.js.map +1 -1
  229. package/lib/ecosystem/core/tokens.d.ts +21 -0
  230. package/lib/ecosystem/core/tokens.d.ts.map +1 -0
  231. package/lib/ecosystem/core/tokens.js +42 -0
  232. package/lib/ecosystem/core/tokens.js.map +1 -0
  233. package/lib/ecosystem/ui/SiteTheme.d.ts +18 -0
  234. package/lib/ecosystem/ui/SiteTheme.d.ts.map +1 -0
  235. package/lib/ecosystem/ui/SiteTheme.js +16 -0
  236. package/lib/ecosystem/ui/SiteTheme.js.map +1 -0
  237. package/lib/ecosystem/ui/Wordmark.d.ts +30 -0
  238. package/lib/ecosystem/ui/Wordmark.d.ts.map +1 -0
  239. package/lib/ecosystem/ui/Wordmark.js +26 -0
  240. package/lib/ecosystem/ui/Wordmark.js.map +1 -0
  241. package/lib/ecosystem/ui/glyphs.d.ts +16 -0
  242. package/lib/ecosystem/ui/glyphs.d.ts.map +1 -0
  243. package/lib/ecosystem/ui/glyphs.js +41 -0
  244. package/lib/ecosystem/ui/glyphs.js.map +1 -0
  245. package/lib/ecosystem/ui/index.d.ts +4 -0
  246. package/lib/ecosystem/ui/index.d.ts.map +1 -1
  247. package/lib/ecosystem/ui/index.js +2 -0
  248. package/lib/ecosystem/ui/index.js.map +1 -1
  249. package/lib/ecosystem/ui/marks.d.ts +30 -4
  250. package/lib/ecosystem/ui/marks.d.ts.map +1 -1
  251. package/lib/ecosystem/ui/marks.js +15 -36
  252. package/lib/ecosystem/ui/marks.js.map +1 -1
  253. package/lib/error/ui/ErrorBoundary.d.ts +60 -0
  254. package/lib/error/ui/ErrorBoundary.d.ts.map +1 -0
  255. package/lib/error/ui/ErrorBoundary.js +59 -0
  256. package/lib/error/ui/ErrorBoundary.js.map +1 -0
  257. package/lib/error/ui/ErrorFallback.d.ts +38 -0
  258. package/lib/error/ui/ErrorFallback.d.ts.map +1 -0
  259. package/lib/error/ui/ErrorFallback.js +16 -0
  260. package/lib/error/ui/ErrorFallback.js.map +1 -0
  261. package/lib/error/ui/index.d.ts +5 -0
  262. package/lib/error/ui/index.d.ts.map +1 -0
  263. package/lib/error/ui/index.js +3 -0
  264. package/lib/error/ui/index.js.map +1 -0
  265. package/lib/error/ui/toError.d.ts +11 -0
  266. package/lib/error/ui/toError.d.ts.map +1 -0
  267. package/lib/error/ui/toError.js +35 -0
  268. package/lib/error/ui/toError.js.map +1 -0
  269. package/lib/format/core/index.d.ts +5 -0
  270. package/lib/format/core/index.d.ts.map +1 -0
  271. package/lib/format/core/index.js +5 -0
  272. package/lib/format/core/index.js.map +1 -0
  273. package/lib/format/core/missing.d.ts +7 -0
  274. package/lib/format/core/missing.d.ts.map +1 -0
  275. package/lib/format/core/missing.js +7 -0
  276. package/lib/format/core/missing.js.map +1 -0
  277. package/lib/format/core/numbers.d.ts +40 -0
  278. package/lib/format/core/numbers.d.ts.map +1 -0
  279. package/lib/format/core/numbers.js +81 -0
  280. package/lib/format/core/numbers.js.map +1 -0
  281. package/lib/format/core/units.d.ts +17 -0
  282. package/lib/format/core/units.d.ts.map +1 -0
  283. package/lib/format/core/units.js +54 -0
  284. package/lib/format/core/units.js.map +1 -0
  285. package/lib/format/core/words.d.ts +12 -0
  286. package/lib/format/core/words.d.ts.map +1 -0
  287. package/lib/format/core/words.js +14 -0
  288. package/lib/format/core/words.js.map +1 -0
  289. package/lib/help/ui/HelpBody.d.ts +57 -0
  290. package/lib/help/ui/HelpBody.d.ts.map +1 -0
  291. package/lib/help/ui/HelpBody.js +44 -0
  292. package/lib/help/ui/HelpBody.js.map +1 -0
  293. package/lib/help/ui/HelpIcon.d.ts +33 -0
  294. package/lib/help/ui/HelpIcon.d.ts.map +1 -0
  295. package/lib/help/ui/HelpIcon.js +16 -0
  296. package/lib/help/ui/HelpIcon.js.map +1 -0
  297. package/lib/help/ui/HelpToolbarButton.d.ts +45 -0
  298. package/lib/help/ui/HelpToolbarButton.d.ts.map +1 -0
  299. package/lib/help/ui/HelpToolbarButton.js +17 -0
  300. package/lib/help/ui/HelpToolbarButton.js.map +1 -0
  301. package/lib/help/ui/HelpTooltip.d.ts +36 -0
  302. package/lib/help/ui/HelpTooltip.d.ts.map +1 -0
  303. package/lib/help/ui/HelpTooltip.js +24 -0
  304. package/lib/help/ui/HelpTooltip.js.map +1 -0
  305. package/lib/help/ui/index.d.ts +9 -0
  306. package/lib/help/ui/index.d.ts.map +1 -0
  307. package/lib/help/ui/index.js +5 -0
  308. package/lib/help/ui/index.js.map +1 -0
  309. package/lib/hooks/ui/index.d.ts +7 -0
  310. package/lib/hooks/ui/index.d.ts.map +1 -0
  311. package/lib/hooks/ui/index.js +5 -0
  312. package/lib/hooks/ui/index.js.map +1 -0
  313. package/lib/hooks/ui/listNavigation.d.ts +54 -0
  314. package/lib/hooks/ui/listNavigation.d.ts.map +1 -0
  315. package/lib/hooks/ui/listNavigation.js +77 -0
  316. package/lib/hooks/ui/listNavigation.js.map +1 -0
  317. package/lib/hooks/ui/useContainerSize.d.ts +15 -0
  318. package/lib/hooks/ui/useContainerSize.d.ts.map +1 -0
  319. package/lib/hooks/ui/useContainerSize.js +24 -0
  320. package/lib/hooks/ui/useContainerSize.js.map +1 -0
  321. package/lib/hooks/ui/useDebouncedValue.d.ts +12 -0
  322. package/lib/hooks/ui/useDebouncedValue.d.ts.map +1 -0
  323. package/lib/hooks/ui/useDebouncedValue.js +24 -0
  324. package/lib/hooks/ui/useDebouncedValue.js.map +1 -0
  325. package/lib/hooks/ui/useListKeyboardNavigation.d.ts +17 -0
  326. package/lib/hooks/ui/useListKeyboardNavigation.d.ts.map +1 -0
  327. package/lib/hooks/ui/useListKeyboardNavigation.js +25 -0
  328. package/lib/hooks/ui/useListKeyboardNavigation.js.map +1 -0
  329. package/lib/hooks/ui/useResizeObserver.d.ts +20 -0
  330. package/lib/hooks/ui/useResizeObserver.d.ts.map +1 -0
  331. package/lib/hooks/ui/useResizeObserver.js +37 -0
  332. package/lib/hooks/ui/useResizeObserver.js.map +1 -0
  333. package/lib/orbital/core/atomicGrid.d.ts +85 -0
  334. package/lib/orbital/core/atomicGrid.d.ts.map +1 -0
  335. package/lib/orbital/core/atomicGrid.js +105 -0
  336. package/lib/orbital/core/atomicGrid.js.map +1 -0
  337. package/lib/orbital/core/atomicOrbitals.d.ts +97 -0
  338. package/lib/orbital/core/atomicOrbitals.d.ts.map +1 -0
  339. package/lib/orbital/core/atomicOrbitals.js +135 -0
  340. package/lib/orbital/core/atomicOrbitals.js.map +1 -0
  341. package/lib/orbital/core/constants.d.ts +33 -0
  342. package/lib/orbital/core/constants.d.ts.map +1 -0
  343. package/lib/orbital/core/constants.js +21 -0
  344. package/lib/orbital/core/constants.js.map +1 -0
  345. package/lib/orbital/core/electronConfiguration.d.ts +106 -0
  346. package/lib/orbital/core/electronConfiguration.d.ts.map +1 -0
  347. package/lib/orbital/core/electronConfiguration.js +207 -0
  348. package/lib/orbital/core/electronConfiguration.js.map +1 -0
  349. package/lib/orbital/core/grid.d.ts +60 -0
  350. package/lib/orbital/core/grid.d.ts.map +1 -0
  351. package/lib/orbital/core/grid.js +81 -0
  352. package/lib/orbital/core/grid.js.map +1 -0
  353. package/lib/orbital/core/hydrogenic.d.ts +99 -0
  354. package/lib/orbital/core/hydrogenic.d.ts.map +1 -0
  355. package/lib/orbital/core/hydrogenic.js +181 -0
  356. package/lib/orbital/core/hydrogenic.js.map +1 -0
  357. package/lib/orbital/core/index.d.ts +24 -0
  358. package/lib/orbital/core/index.d.ts.map +1 -0
  359. package/lib/orbital/core/index.js +13 -0
  360. package/lib/orbital/core/index.js.map +1 -0
  361. package/lib/orbital/core/isovalue.d.ts +60 -0
  362. package/lib/orbital/core/isovalue.d.ts.map +1 -0
  363. package/lib/orbital/core/isovalue.js +128 -0
  364. package/lib/orbital/core/isovalue.js.map +1 -0
  365. package/lib/orbital/core/numerics.d.ts +39 -0
  366. package/lib/orbital/core/numerics.d.ts.map +1 -0
  367. package/lib/orbital/core/numerics.js +75 -0
  368. package/lib/orbital/core/numerics.js.map +1 -0
  369. package/lib/orbital/core/occupancy.d.ts +44 -0
  370. package/lib/orbital/core/occupancy.d.ts.map +1 -0
  371. package/lib/orbital/core/occupancy.js +85 -0
  372. package/lib/orbital/core/occupancy.js.map +1 -0
  373. package/lib/orbital/core/palette.d.ts +36 -0
  374. package/lib/orbital/core/palette.d.ts.map +1 -0
  375. package/lib/orbital/core/palette.js +37 -0
  376. package/lib/orbital/core/palette.js.map +1 -0
  377. package/lib/orbital/core/realHarmonics.d.ts +57 -0
  378. package/lib/orbital/core/realHarmonics.d.ts.map +1 -0
  379. package/lib/orbital/core/realHarmonics.js +144 -0
  380. package/lib/orbital/core/realHarmonics.js.map +1 -0
  381. package/lib/orbital/core/sample.d.ts +66 -0
  382. package/lib/orbital/core/sample.d.ts.map +1 -0
  383. package/lib/orbital/core/sample.js +61 -0
  384. package/lib/orbital/core/sample.js.map +1 -0
  385. package/lib/orbital/core/screening.d.ts +46 -0
  386. package/lib/orbital/core/screening.d.ts.map +1 -0
  387. package/lib/orbital/core/screening.js +72 -0
  388. package/lib/orbital/core/screening.js.map +1 -0
  389. package/lib/orbital/ui/AtomicOrbitalCanvas.d.ts +62 -0
  390. package/lib/orbital/ui/AtomicOrbitalCanvas.d.ts.map +1 -0
  391. package/lib/orbital/ui/AtomicOrbitalCanvas.js +115 -0
  392. package/lib/orbital/ui/AtomicOrbitalCanvas.js.map +1 -0
  393. package/lib/orbital/ui/AtomicOrbitalViewer.d.ts +77 -0
  394. package/lib/orbital/ui/AtomicOrbitalViewer.d.ts.map +1 -0
  395. package/lib/orbital/ui/AtomicOrbitalViewer.js +49 -0
  396. package/lib/orbital/ui/AtomicOrbitalViewer.js.map +1 -0
  397. package/lib/orbital/ui/camera.d.ts +36 -0
  398. package/lib/orbital/ui/camera.d.ts.map +1 -0
  399. package/lib/orbital/ui/camera.js +98 -0
  400. package/lib/orbital/ui/camera.js.map +1 -0
  401. package/lib/orbital/ui/capability.d.ts +28 -0
  402. package/lib/orbital/ui/capability.d.ts.map +1 -0
  403. package/lib/orbital/ui/capability.js +77 -0
  404. package/lib/orbital/ui/capability.js.map +1 -0
  405. package/lib/orbital/ui/index.d.ts +17 -0
  406. package/lib/orbital/ui/index.d.ts.map +1 -0
  407. package/lib/orbital/ui/index.js +13 -0
  408. package/lib/orbital/ui/index.js.map +1 -0
  409. package/lib/orbital/ui/renderVolume.d.ts +60 -0
  410. package/lib/orbital/ui/renderVolume.d.ts.map +1 -0
  411. package/lib/orbital/ui/renderVolume.js +119 -0
  412. package/lib/orbital/ui/renderVolume.js.map +1 -0
  413. package/lib/orbital/ui/viewer.d.ts +88 -0
  414. package/lib/orbital/ui/viewer.d.ts.map +1 -0
  415. package/lib/orbital/ui/viewer.js +156 -0
  416. package/lib/orbital/ui/viewer.js.map +1 -0
  417. package/lib/orbital/ui/volumeField.d.ts +33 -0
  418. package/lib/orbital/ui/volumeField.d.ts.map +1 -0
  419. package/lib/orbital/ui/volumeField.js +68 -0
  420. package/lib/orbital/ui/volumeField.js.map +1 -0
  421. package/lib/orbital.d.ts +11 -0
  422. package/lib/orbital.d.ts.map +1 -0
  423. package/lib/orbital.js +11 -0
  424. package/lib/orbital.js.map +1 -0
  425. package/lib/pedagogy/core/glossary.d.ts +79 -0
  426. package/lib/pedagogy/core/glossary.d.ts.map +1 -0
  427. package/lib/pedagogy/core/glossary.js +71 -0
  428. package/lib/pedagogy/core/glossary.js.map +1 -0
  429. package/lib/pedagogy/core/index.d.ts +8 -0
  430. package/lib/pedagogy/core/index.d.ts.map +1 -0
  431. package/lib/pedagogy/core/index.js +4 -0
  432. package/lib/pedagogy/core/index.js.map +1 -0
  433. package/lib/pedagogy/core/jsonStorage.d.ts +21 -0
  434. package/lib/pedagogy/core/jsonStorage.d.ts.map +1 -0
  435. package/lib/pedagogy/core/jsonStorage.js +55 -0
  436. package/lib/pedagogy/core/jsonStorage.js.map +1 -0
  437. package/lib/pedagogy/core/progress.d.ts +116 -0
  438. package/lib/pedagogy/core/progress.d.ts.map +1 -0
  439. package/lib/pedagogy/core/progress.js +122 -0
  440. package/lib/pedagogy/core/progress.js.map +1 -0
  441. package/lib/pedagogy/core/types.d.ts +74 -0
  442. package/lib/pedagogy/core/types.d.ts.map +1 -0
  443. package/lib/pedagogy/core/types.js +8 -0
  444. package/lib/pedagogy/core/types.js.map +1 -0
  445. package/lib/pedagogy/core/validation.d.ts +79 -0
  446. package/lib/pedagogy/core/validation.d.ts.map +1 -0
  447. package/lib/pedagogy/core/validation.js +47 -0
  448. package/lib/pedagogy/core/validation.js.map +1 -0
  449. package/lib/pedagogy/ui/ExerciseActions.d.ts +74 -0
  450. package/lib/pedagogy/ui/ExerciseActions.d.ts.map +1 -0
  451. package/lib/pedagogy/ui/ExerciseActions.js +22 -0
  452. package/lib/pedagogy/ui/ExerciseActions.js.map +1 -0
  453. package/lib/pedagogy/ui/ExerciseProgressHeader.d.ts +43 -0
  454. package/lib/pedagogy/ui/ExerciseProgressHeader.d.ts.map +1 -0
  455. package/lib/pedagogy/ui/ExerciseProgressHeader.js +43 -0
  456. package/lib/pedagogy/ui/ExerciseProgressHeader.js.map +1 -0
  457. package/lib/pedagogy/ui/ExerciseTags.d.ts +49 -0
  458. package/lib/pedagogy/ui/ExerciseTags.d.ts.map +1 -0
  459. package/lib/pedagogy/ui/ExerciseTags.js +22 -0
  460. package/lib/pedagogy/ui/ExerciseTags.js.map +1 -0
  461. package/lib/pedagogy/ui/GlossaryProvider.d.ts +19 -0
  462. package/lib/pedagogy/ui/GlossaryProvider.d.ts.map +1 -0
  463. package/lib/pedagogy/ui/GlossaryProvider.js +16 -0
  464. package/lib/pedagogy/ui/GlossaryProvider.js.map +1 -0
  465. package/lib/pedagogy/ui/GlossaryText.d.ts +50 -0
  466. package/lib/pedagogy/ui/GlossaryText.d.ts.map +1 -0
  467. package/lib/pedagogy/ui/GlossaryText.js +79 -0
  468. package/lib/pedagogy/ui/GlossaryText.js.map +1 -0
  469. package/lib/pedagogy/ui/HintLadder.d.ts +38 -0
  470. package/lib/pedagogy/ui/HintLadder.d.ts.map +1 -0
  471. package/lib/pedagogy/ui/HintLadder.js +33 -0
  472. package/lib/pedagogy/ui/HintLadder.js.map +1 -0
  473. package/lib/pedagogy/ui/ReferenceGrid.d.ts +31 -0
  474. package/lib/pedagogy/ui/ReferenceGrid.d.ts.map +1 -0
  475. package/lib/pedagogy/ui/ReferenceGrid.js +25 -0
  476. package/lib/pedagogy/ui/ReferenceGrid.js.map +1 -0
  477. package/lib/pedagogy/ui/ReferenceSectionBlock.d.ts +64 -0
  478. package/lib/pedagogy/ui/ReferenceSectionBlock.d.ts.map +1 -0
  479. package/lib/pedagogy/ui/ReferenceSectionBlock.js +78 -0
  480. package/lib/pedagogy/ui/ReferenceSectionBlock.js.map +1 -0
  481. package/lib/pedagogy/ui/SyntaxTooltip.d.ts +94 -0
  482. package/lib/pedagogy/ui/SyntaxTooltip.d.ts.map +1 -0
  483. package/lib/pedagogy/ui/SyntaxTooltip.js +79 -0
  484. package/lib/pedagogy/ui/SyntaxTooltip.js.map +1 -0
  485. package/lib/pedagogy/ui/TestCaseList.d.ts +35 -0
  486. package/lib/pedagogy/ui/TestCaseList.d.ts.map +1 -0
  487. package/lib/pedagogy/ui/TestCaseList.js +63 -0
  488. package/lib/pedagogy/ui/TestCaseList.js.map +1 -0
  489. package/lib/pedagogy/ui/TutorialStepStrip.d.ts +42 -0
  490. package/lib/pedagogy/ui/TutorialStepStrip.d.ts.map +1 -0
  491. package/lib/pedagogy/ui/TutorialStepStrip.js +98 -0
  492. package/lib/pedagogy/ui/TutorialStepStrip.js.map +1 -0
  493. package/lib/pedagogy/ui/exerciseMeta.d.ts +24 -0
  494. package/lib/pedagogy/ui/exerciseMeta.d.ts.map +1 -0
  495. package/lib/pedagogy/ui/exerciseMeta.js +38 -0
  496. package/lib/pedagogy/ui/exerciseMeta.js.map +1 -0
  497. package/lib/pedagogy/ui/glossaryContext.d.ts +17 -0
  498. package/lib/pedagogy/ui/glossaryContext.d.ts.map +1 -0
  499. package/lib/pedagogy/ui/glossaryContext.js +19 -0
  500. package/lib/pedagogy/ui/glossaryContext.js.map +1 -0
  501. package/lib/pedagogy/ui/index.d.ts +27 -0
  502. package/lib/pedagogy/ui/index.d.ts.map +1 -0
  503. package/lib/pedagogy/ui/index.js +15 -0
  504. package/lib/pedagogy/ui/index.js.map +1 -0
  505. package/lib/pedagogy/ui/tutorialLevels.d.ts +18 -0
  506. package/lib/pedagogy/ui/tutorialLevels.d.ts.map +1 -0
  507. package/lib/pedagogy/ui/tutorialLevels.js +14 -0
  508. package/lib/pedagogy/ui/tutorialLevels.js.map +1 -0
  509. package/lib/router/core/address.d.ts +42 -0
  510. package/lib/router/core/address.d.ts.map +1 -0
  511. package/lib/router/core/address.js +64 -0
  512. package/lib/router/core/address.js.map +1 -0
  513. package/lib/router/core/basePath.d.ts +49 -0
  514. package/lib/router/core/basePath.d.ts.map +1 -0
  515. package/lib/router/core/basePath.js +78 -0
  516. package/lib/router/core/basePath.js.map +1 -0
  517. package/lib/router/core/index.d.ts +8 -0
  518. package/lib/router/core/index.d.ts.map +1 -0
  519. package/lib/router/core/index.js +5 -0
  520. package/lib/router/core/index.js.map +1 -0
  521. package/lib/router/core/legacyHash.d.ts +45 -0
  522. package/lib/router/core/legacyHash.d.ts.map +1 -0
  523. package/lib/router/core/legacyHash.js +50 -0
  524. package/lib/router/core/legacyHash.js.map +1 -0
  525. package/lib/router/core/pageAddresses.d.ts +50 -0
  526. package/lib/router/core/pageAddresses.d.ts.map +1 -0
  527. package/lib/router/core/pageAddresses.js +56 -0
  528. package/lib/router/core/pageAddresses.js.map +1 -0
  529. package/lib/router/core/query.d.ts +41 -0
  530. package/lib/router/core/query.d.ts.map +1 -0
  531. package/lib/router/core/query.js +64 -0
  532. package/lib/router/core/query.js.map +1 -0
  533. package/lib/router/core/tabRouter.d.ts +111 -0
  534. package/lib/router/core/tabRouter.d.ts.map +1 -0
  535. package/lib/router/core/tabRouter.js +87 -0
  536. package/lib/router/core/tabRouter.js.map +1 -0
  537. package/lib/seo/core/documentMeta.d.ts +45 -0
  538. package/lib/seo/core/documentMeta.d.ts.map +1 -0
  539. package/lib/seo/core/documentMeta.js +69 -0
  540. package/lib/seo/core/documentMeta.js.map +1 -0
  541. package/lib/seo/core/index.d.ts +3 -0
  542. package/lib/seo/core/index.d.ts.map +1 -0
  543. package/lib/seo/core/index.js +2 -0
  544. package/lib/seo/core/index.js.map +1 -0
  545. package/lib/share/core/config.d.ts +63 -0
  546. package/lib/share/core/config.d.ts.map +1 -0
  547. package/lib/share/core/config.js +125 -0
  548. package/lib/share/core/config.js.map +1 -0
  549. package/lib/share/core/escape.d.ts +15 -0
  550. package/lib/share/core/escape.d.ts.map +1 -0
  551. package/lib/share/core/escape.js +22 -0
  552. package/lib/share/core/escape.js.map +1 -0
  553. package/lib/share/core/index.d.ts +9 -0
  554. package/lib/share/core/index.d.ts.map +1 -0
  555. package/lib/share/core/index.js +5 -0
  556. package/lib/share/core/index.js.map +1 -0
  557. package/lib/share/core/params.d.ts +93 -0
  558. package/lib/share/core/params.d.ts.map +1 -0
  559. package/lib/share/core/params.js +111 -0
  560. package/lib/share/core/params.js.map +1 -0
  561. package/lib/share/core/query.d.ts +30 -0
  562. package/lib/share/core/query.d.ts.map +1 -0
  563. package/lib/share/core/query.js +68 -0
  564. package/lib/share/core/query.js.map +1 -0
  565. package/lib/share/core/url.d.ts +57 -0
  566. package/lib/share/core/url.d.ts.map +1 -0
  567. package/lib/share/core/url.js +49 -0
  568. package/lib/share/core/url.js.map +1 -0
  569. package/lib/share/core/vocabulary.d.ts +51 -0
  570. package/lib/share/core/vocabulary.d.ts.map +1 -0
  571. package/lib/share/core/vocabulary.js +2 -0
  572. package/lib/share/core/vocabulary.js.map +1 -0
  573. package/lib/share/ui/HiddenPartsProvider.d.ts +19 -0
  574. package/lib/share/ui/HiddenPartsProvider.d.ts.map +1 -0
  575. package/lib/share/ui/HiddenPartsProvider.js +15 -0
  576. package/lib/share/ui/HiddenPartsProvider.js.map +1 -0
  577. package/lib/share/ui/PagePart.d.ts +18 -0
  578. package/lib/share/ui/PagePart.d.ts.map +1 -0
  579. package/lib/share/ui/PagePart.js +16 -0
  580. package/lib/share/ui/PagePart.js.map +1 -0
  581. package/lib/share/ui/ShareButton.d.ts +42 -0
  582. package/lib/share/ui/ShareButton.d.ts.map +1 -0
  583. package/lib/share/ui/ShareButton.js +18 -0
  584. package/lib/share/ui/ShareButton.js.map +1 -0
  585. package/lib/share/ui/ShareDialog.d.ts +73 -0
  586. package/lib/share/ui/ShareDialog.d.ts.map +1 -0
  587. package/lib/share/ui/ShareDialog.js +19 -0
  588. package/lib/share/ui/ShareDialog.js.map +1 -0
  589. package/lib/share/ui/ShareDialogContent.d.ts +13 -0
  590. package/lib/share/ui/ShareDialogContent.d.ts.map +1 -0
  591. package/lib/share/ui/ShareDialogContent.js +71 -0
  592. package/lib/share/ui/ShareDialogContent.js.map +1 -0
  593. package/lib/share/ui/SharePartOptions.d.ts +18 -0
  594. package/lib/share/ui/SharePartOptions.d.ts.map +1 -0
  595. package/lib/share/ui/SharePartOptions.js +22 -0
  596. package/lib/share/ui/SharePartOptions.js.map +1 -0
  597. package/lib/share/ui/draft.d.ts +13 -0
  598. package/lib/share/ui/draft.d.ts.map +1 -0
  599. package/lib/share/ui/draft.js +16 -0
  600. package/lib/share/ui/draft.js.map +1 -0
  601. package/lib/share/ui/hiddenParts.d.ts +17 -0
  602. package/lib/share/ui/hiddenParts.d.ts.map +1 -0
  603. package/lib/share/ui/hiddenParts.js +21 -0
  604. package/lib/share/ui/hiddenParts.js.map +1 -0
  605. package/lib/share/ui/index.d.ts +10 -0
  606. package/lib/share/ui/index.d.ts.map +1 -0
  607. package/lib/share/ui/index.js +6 -0
  608. package/lib/share/ui/index.js.map +1 -0
  609. package/lib/shared/ui/index.d.ts +2 -1
  610. package/lib/shared/ui/index.d.ts.map +1 -1
  611. package/lib/shared/ui/index.js +1 -1
  612. package/lib/shared/ui/index.js.map +1 -1
  613. package/lib/state/ui/index.d.ts +3 -0
  614. package/lib/state/ui/index.d.ts.map +1 -0
  615. package/lib/state/ui/index.js +2 -0
  616. package/lib/state/ui/index.js.map +1 -0
  617. package/lib/state/ui/mergeStored.d.ts +27 -0
  618. package/lib/state/ui/mergeStored.d.ts.map +1 -0
  619. package/lib/state/ui/mergeStored.js +82 -0
  620. package/lib/state/ui/mergeStored.js.map +1 -0
  621. package/lib/state/ui/persistBucket.d.ts +65 -0
  622. package/lib/state/ui/persistBucket.d.ts.map +1 -0
  623. package/lib/state/ui/persistBucket.js +90 -0
  624. package/lib/state/ui/persistBucket.js.map +1 -0
  625. package/lib/structure/core/editorValue.d.ts +69 -0
  626. package/lib/structure/core/editorValue.d.ts.map +1 -0
  627. package/lib/structure/core/editorValue.js +72 -0
  628. package/lib/structure/core/editorValue.js.map +1 -0
  629. package/lib/structure/core/fragmentQuery.d.ts +33 -0
  630. package/lib/structure/core/fragmentQuery.d.ts.map +1 -0
  631. package/lib/structure/core/fragmentQuery.js +37 -0
  632. package/lib/structure/core/fragmentQuery.js.map +1 -0
  633. package/lib/structure/core/index.d.ts +11 -0
  634. package/lib/structure/core/index.d.ts.map +1 -0
  635. package/lib/structure/core/index.js +6 -0
  636. package/lib/structure/core/index.js.map +1 -0
  637. package/lib/structure/core/molfile.d.ts +42 -0
  638. package/lib/structure/core/molfile.d.ts.map +1 -0
  639. package/lib/structure/core/molfile.js +74 -0
  640. package/lib/structure/core/molfile.js.map +1 -0
  641. package/lib/structure/core/readStructure.d.ts +37 -0
  642. package/lib/structure/core/readStructure.d.ts.map +1 -0
  643. package/lib/structure/core/readStructure.js +59 -0
  644. package/lib/structure/core/readStructure.js.map +1 -0
  645. package/lib/structure/core/structureSource.d.ts +34 -0
  646. package/lib/structure/core/structureSource.d.ts.map +1 -0
  647. package/lib/structure/core/structureSource.js +32 -0
  648. package/lib/structure/core/structureSource.js.map +1 -0
  649. package/lib/structure/core/toolbarFloor.d.ts +16 -0
  650. package/lib/structure/core/toolbarFloor.d.ts.map +1 -0
  651. package/lib/structure/core/toolbarFloor.js +27 -0
  652. package/lib/structure/core/toolbarFloor.js.map +1 -0
  653. package/lib/structure/ui/EditorCanvas.d.ts +55 -0
  654. package/lib/structure/ui/EditorCanvas.d.ts.map +1 -0
  655. package/lib/structure/ui/EditorCanvas.js +41 -0
  656. package/lib/structure/ui/EditorCanvas.js.map +1 -0
  657. package/lib/structure/ui/Structure.d.ts +122 -0
  658. package/lib/structure/ui/Structure.d.ts.map +1 -0
  659. package/lib/structure/ui/Structure.js +28 -0
  660. package/lib/structure/ui/Structure.js.map +1 -0
  661. package/lib/structure/ui/StructureEditor.d.ts +75 -0
  662. package/lib/structure/ui/StructureEditor.d.ts.map +1 -0
  663. package/lib/structure/ui/StructureEditor.js +83 -0
  664. package/lib/structure/ui/StructureEditor.js.map +1 -0
  665. package/lib/structure/ui/StructurePlaceholder.d.ts +29 -0
  666. package/lib/structure/ui/StructurePlaceholder.d.ts.map +1 -0
  667. package/lib/structure/ui/StructurePlaceholder.js +19 -0
  668. package/lib/structure/ui/StructurePlaceholder.js.map +1 -0
  669. package/lib/structure/ui/StructureSvg.d.ts +58 -0
  670. package/lib/structure/ui/StructureSvg.d.ts.map +1 -0
  671. package/lib/structure/ui/StructureSvg.js +33 -0
  672. package/lib/structure/ui/StructureSvg.js.map +1 -0
  673. package/lib/structure/ui/index.d.ts +19 -0
  674. package/lib/structure/ui/index.d.ts.map +1 -0
  675. package/lib/structure/ui/index.js +15 -0
  676. package/lib/structure/ui/index.js.map +1 -0
  677. package/lib/structure/ui/useToolbarFloor.d.ts +26 -0
  678. package/lib/structure/ui/useToolbarFloor.d.ts.map +1 -0
  679. package/lib/structure/ui/useToolbarFloor.js +70 -0
  680. package/lib/structure/ui/useToolbarFloor.js.map +1 -0
  681. package/lib/structure.d.ts +3 -0
  682. package/lib/structure.d.ts.map +1 -0
  683. package/lib/structure.js +3 -0
  684. package/lib/structure.js.map +1 -0
  685. package/lib/ui.d.ts +13 -0
  686. package/lib/ui.d.ts.map +1 -1
  687. package/lib/ui.js +13 -0
  688. package/lib/ui.js.map +1 -1
  689. package/lib/worker/core/errors.d.ts +15 -0
  690. package/lib/worker/core/errors.d.ts.map +1 -0
  691. package/lib/worker/core/errors.js +15 -0
  692. package/lib/worker/core/errors.js.map +1 -0
  693. package/lib/worker/core/index.d.ts +5 -0
  694. package/lib/worker/core/index.d.ts.map +1 -0
  695. package/lib/worker/core/index.js +3 -0
  696. package/lib/worker/core/index.js.map +1 -0
  697. package/lib/worker/core/messages.d.ts +48 -0
  698. package/lib/worker/core/messages.d.ts.map +1 -0
  699. package/lib/worker/core/messages.js +2 -0
  700. package/lib/worker/core/messages.js.map +1 -0
  701. package/lib/worker/core/workerChannel.d.ts +69 -0
  702. package/lib/worker/core/workerChannel.d.ts.map +1 -0
  703. package/lib/worker/core/workerChannel.js +121 -0
  704. package/lib/worker/core/workerChannel.js.map +1 -0
  705. package/package.json +25 -4
  706. package/src/capsule/ui/CapsuleFilter.tsx +119 -0
  707. package/src/capsule/ui/index.ts +2 -0
  708. package/src/chrome/ui/NavLink.tsx +88 -0
  709. package/src/chrome/ui/NavMenuButton.tsx +95 -0
  710. package/src/chrome/ui/SiteFooter.tsx +65 -0
  711. package/src/chrome/ui/SiteHeader.tsx +119 -0
  712. package/src/chrome/ui/index.ts +11 -0
  713. package/src/chrome/ui/navItem.ts +60 -0
  714. package/src/chrome/ui/useCompactHeader.ts +81 -0
  715. package/src/citation/core/clipboard.ts +27 -11
  716. package/src/citation/core/download.ts +25 -15
  717. package/src/citation/core/index.ts +8 -3
  718. package/src/citation/core/works.ts +81 -0
  719. package/src/citation/ui/CitationMenu.tsx +104 -89
  720. package/src/citation/ui/CitationPreview.tsx +18 -8
  721. package/src/citation/ui/CiteButton.tsx +24 -9
  722. package/src/citation/ui/CopyFormatEntries.tsx +84 -0
  723. package/src/citation/ui/WorkEntry.tsx +80 -0
  724. package/src/citation/ui/entries.tsx +18 -20
  725. package/src/citation/ui/index.ts +10 -2
  726. package/src/citation/ui/useCopyFeedback.ts +76 -0
  727. package/src/clipboard/core/index.ts +1 -0
  728. package/src/clipboard/core/writeToClipboard.ts +47 -0
  729. package/src/clipboard/ui/CodeBlock.tsx +110 -0
  730. package/src/clipboard/ui/CopyButton.tsx +111 -0
  731. package/src/clipboard/ui/index.ts +9 -0
  732. package/src/clipboard/ui/useCopyToClipboard.ts +57 -0
  733. package/src/color/core/contrast.ts +85 -0
  734. package/src/color/core/hex.ts +57 -0
  735. package/src/color/core/index.ts +4 -0
  736. package/src/color/core/scale.ts +132 -0
  737. package/src/color/ui/ColorScaleLegend.tsx +144 -0
  738. package/src/color/ui/index.ts +2 -0
  739. package/src/core.ts +12 -0
  740. package/src/credits/core/credits.ts +183 -0
  741. package/src/credits/core/index.ts +2 -0
  742. package/src/credits/ui/CreditsList.tsx +82 -0
  743. package/src/credits/ui/index.ts +2 -0
  744. package/src/delimited/core/delimiters.ts +64 -0
  745. package/src/delimited/core/index.ts +11 -0
  746. package/src/delimited/core/readDelimited.ts +132 -0
  747. package/src/delimited/core/rowsToDelimited.ts +135 -0
  748. package/src/delimited/core/toDelimited.ts +69 -0
  749. package/src/delimited/ui/DelimitedTextDialog.tsx +49 -0
  750. package/src/delimited/ui/DelimitedTextPanel.tsx +161 -0
  751. package/src/delimited/ui/index.ts +4 -0
  752. package/src/disclosure/ui/CollapsibleSection.tsx +150 -0
  753. package/src/disclosure/ui/index.ts +4 -0
  754. package/src/disclosure/ui/useDisclosure.ts +35 -0
  755. package/src/download/core/downloadBlob.ts +19 -0
  756. package/src/download/core/downloadText.ts +19 -0
  757. package/src/download/core/index.ts +3 -0
  758. package/src/download/core/sanitizeFileName.ts +33 -0
  759. package/src/ecosystem/core/index.ts +3 -0
  760. package/src/ecosystem/core/links.ts +29 -0
  761. package/src/ecosystem/core/lookup.ts +41 -0
  762. package/src/ecosystem/core/sites.ts +38 -1
  763. package/src/ecosystem/core/tokens.ts +47 -0
  764. package/src/ecosystem/ui/SiteTheme.tsx +23 -0
  765. package/src/ecosystem/ui/Wordmark.tsx +65 -0
  766. package/src/ecosystem/ui/glyphs.tsx +246 -0
  767. package/src/ecosystem/ui/index.ts +4 -0
  768. package/src/ecosystem/ui/marks.tsx +56 -214
  769. package/src/error/ui/ErrorBoundary.tsx +94 -0
  770. package/src/error/ui/ErrorFallback.tsx +64 -0
  771. package/src/error/ui/index.ts +4 -0
  772. package/src/error/ui/toError.ts +33 -0
  773. package/src/format/core/index.ts +9 -0
  774. package/src/format/core/missing.ts +6 -0
  775. package/src/format/core/numbers.ts +84 -0
  776. package/src/format/core/units.ts +60 -0
  777. package/src/format/core/words.ts +17 -0
  778. package/src/help/ui/HelpBody.tsx +130 -0
  779. package/src/help/ui/HelpIcon.tsx +53 -0
  780. package/src/help/ui/HelpToolbarButton.tsx +72 -0
  781. package/src/help/ui/HelpTooltip.tsx +72 -0
  782. package/src/help/ui/index.ts +8 -0
  783. package/src/hooks/ui/index.ts +6 -0
  784. package/src/hooks/ui/listNavigation.ts +116 -0
  785. package/src/hooks/ui/useContainerSize.ts +32 -0
  786. package/src/hooks/ui/useDebouncedValue.ts +29 -0
  787. package/src/hooks/ui/useListKeyboardNavigation.ts +37 -0
  788. package/src/hooks/ui/useResizeObserver.ts +50 -0
  789. package/src/orbital/core/atomicGrid.ts +167 -0
  790. package/src/orbital/core/atomicOrbitals.ts +212 -0
  791. package/src/orbital/core/constants.ts +36 -0
  792. package/src/orbital/core/electronConfiguration.ts +242 -0
  793. package/src/orbital/core/grid.ts +126 -0
  794. package/src/orbital/core/hydrogenic.ts +222 -0
  795. package/src/orbital/core/index.ts +63 -0
  796. package/src/orbital/core/isovalue.ts +146 -0
  797. package/src/orbital/core/numerics.ts +79 -0
  798. package/src/orbital/core/occupancy.ts +100 -0
  799. package/src/orbital/core/palette.ts +56 -0
  800. package/src/orbital/core/realHarmonics.ts +172 -0
  801. package/src/orbital/core/sample.ts +111 -0
  802. package/src/orbital/core/screening.ts +90 -0
  803. package/src/orbital/ui/AtomicOrbitalCanvas.tsx +197 -0
  804. package/src/orbital/ui/AtomicOrbitalViewer.tsx +154 -0
  805. package/src/orbital/ui/camera.ts +125 -0
  806. package/src/orbital/ui/capability.ts +102 -0
  807. package/src/orbital/ui/index.ts +17 -0
  808. package/src/orbital/ui/renderVolume.ts +203 -0
  809. package/src/orbital/ui/viewer.ts +191 -0
  810. package/src/orbital/ui/volumeField.ts +84 -0
  811. package/src/orbital.ts +11 -0
  812. package/src/pedagogy/core/glossary.ts +122 -0
  813. package/src/pedagogy/core/index.ts +28 -0
  814. package/src/pedagogy/core/jsonStorage.ts +51 -0
  815. package/src/pedagogy/core/progress.ts +205 -0
  816. package/src/pedagogy/core/types.ts +78 -0
  817. package/src/pedagogy/core/validation.ts +109 -0
  818. package/src/pedagogy/ui/ExerciseActions.tsx +129 -0
  819. package/src/pedagogy/ui/ExerciseProgressHeader.tsx +135 -0
  820. package/src/pedagogy/ui/ExerciseTags.tsx +85 -0
  821. package/src/pedagogy/ui/GlossaryProvider.tsx +31 -0
  822. package/src/pedagogy/ui/GlossaryText.tsx +164 -0
  823. package/src/pedagogy/ui/HintLadder.tsx +95 -0
  824. package/src/pedagogy/ui/ReferenceGrid.tsx +69 -0
  825. package/src/pedagogy/ui/ReferenceSectionBlock.tsx +175 -0
  826. package/src/pedagogy/ui/SyntaxTooltip.tsx +222 -0
  827. package/src/pedagogy/ui/TestCaseList.tsx +122 -0
  828. package/src/pedagogy/ui/TutorialStepStrip.tsx +230 -0
  829. package/src/pedagogy/ui/exerciseMeta.ts +45 -0
  830. package/src/pedagogy/ui/glossaryContext.ts +23 -0
  831. package/src/pedagogy/ui/index.ts +37 -0
  832. package/src/pedagogy/ui/tutorialLevels.ts +27 -0
  833. package/src/router/core/address.ts +74 -0
  834. package/src/router/core/basePath.ts +76 -0
  835. package/src/router/core/index.ts +26 -0
  836. package/src/router/core/legacyHash.ts +77 -0
  837. package/src/router/core/pageAddresses.ts +106 -0
  838. package/src/router/core/query.ts +87 -0
  839. package/src/router/core/tabRouter.ts +214 -0
  840. package/src/seo/core/documentMeta.ts +92 -0
  841. package/src/seo/core/index.ts +6 -0
  842. package/src/share/core/config.ts +165 -0
  843. package/src/share/core/escape.ts +22 -0
  844. package/src/share/core/index.ts +31 -0
  845. package/src/share/core/params.ts +176 -0
  846. package/src/share/core/query.ts +72 -0
  847. package/src/share/core/url.ts +105 -0
  848. package/src/share/core/vocabulary.ts +60 -0
  849. package/src/share/ui/HiddenPartsProvider.tsx +34 -0
  850. package/src/share/ui/PagePart.tsx +26 -0
  851. package/src/share/ui/ShareButton.tsx +84 -0
  852. package/src/share/ui/ShareDialog.tsx +114 -0
  853. package/src/share/ui/ShareDialogContent.tsx +189 -0
  854. package/src/share/ui/SharePartOptions.tsx +51 -0
  855. package/src/share/ui/draft.ts +19 -0
  856. package/src/share/ui/hiddenParts.ts +22 -0
  857. package/src/share/ui/index.ts +9 -0
  858. package/src/shared/ui/index.ts +2 -1
  859. package/src/state/ui/index.ts +6 -0
  860. package/src/state/ui/mergeStored.ts +87 -0
  861. package/src/state/ui/persistBucket.ts +147 -0
  862. package/src/structure/core/editorValue.ts +116 -0
  863. package/src/structure/core/fragmentQuery.ts +50 -0
  864. package/src/structure/core/index.ts +13 -0
  865. package/src/structure/core/molfile.ts +90 -0
  866. package/src/structure/core/readStructure.ts +73 -0
  867. package/src/structure/core/structureSource.ts +57 -0
  868. package/src/structure/core/toolbarFloor.ts +31 -0
  869. package/src/structure/ui/EditorCanvas.tsx +130 -0
  870. package/src/structure/ui/Structure.tsx +183 -0
  871. package/src/structure/ui/StructureEditor.tsx +196 -0
  872. package/src/structure/ui/StructurePlaceholder.tsx +48 -0
  873. package/src/structure/ui/StructureSvg.tsx +110 -0
  874. package/src/structure/ui/index.ts +22 -0
  875. package/src/structure/ui/useToolbarFloor.ts +93 -0
  876. package/src/structure.ts +2 -0
  877. package/src/ui.ts +13 -0
  878. package/src/worker/core/errors.ts +15 -0
  879. package/src/worker/core/index.ts +8 -0
  880. package/src/worker/core/messages.ts +47 -0
  881. package/src/worker/core/workerChannel.ts +218 -0
  882. package/styles/chrome.css +223 -0
@@ -0,0 +1,79 @@
1
+ /**
2
+ * The verdict on an answer, in the shape every tool reports it.
3
+ *
4
+ * An exercise is marked by running the answer against test cases, never by
5
+ * comparing it to a string: two people write one molecule, one regex or one
6
+ * formula the same way far less often than they write it differently.
7
+ */
8
+ /** How one test case came out. */
9
+ export interface TestCaseResult {
10
+ passed: boolean;
11
+ /**
12
+ * What happened, written the way a tutor would say it — `match was "cat",
13
+ * expected "cats"`, `not matched, but this one should be found`. It is the
14
+ * sentence the student reads when a case fails, so it names the value and
15
+ * what was wanted; never `assertion failed`.
16
+ */
17
+ reason: string;
18
+ /** What the answer actually produced, or `null` when it produced nothing. */
19
+ actual: string | null;
20
+ }
21
+ /**
22
+ * The verdict on one answer: whether it is right, and everything the page needs
23
+ * to say why not.
24
+ *
25
+ * A tool that carries more per case — which test case it was, whether it was a
26
+ * match or a replacement — extends {@link TestCaseResult} and passes its own
27
+ * type through.
28
+ */
29
+ export interface ValidationResult<TCase extends TestCaseResult = TestCaseResult> {
30
+ passed: boolean;
31
+ /**
32
+ * The one thing that stopped the cases from running at all: an answer that
33
+ * does not compile, or an empty one. `null` when the answer ran, however
34
+ * badly it did.
35
+ */
36
+ error: string | null;
37
+ cases: TCase[];
38
+ /**
39
+ * The options the exercise requires and the answer does not carry — a regex
40
+ * flag, a stereo descriptor. Reported apart from the cases, because a student
41
+ * staring at half-passing tests has no way of guessing which one is missing.
42
+ */
43
+ missingOptions: string[];
44
+ }
45
+ /** What {@link finishValidation} needs beyond the cases themselves. */
46
+ export interface FinishValidationOptions {
47
+ /**
48
+ * A message that stopped the cases from being meaningful.
49
+ * @default null
50
+ */
51
+ error?: string | null;
52
+ /**
53
+ * Required options the answer does not carry.
54
+ * @default []
55
+ */
56
+ missingOptions?: string[];
57
+ }
58
+ /**
59
+ * Turn the cases a validator ran into the verdict on the answer.
60
+ *
61
+ * The answer is right only when nothing failed: no error, no missing option,
62
+ * and every case passed. A list with no cases in it has nothing failing in it
63
+ * and therefore passes — a validator that could not run its cases reports
64
+ * {@link failedValidation} instead of an empty list.
65
+ * @param cases - Every case that was run, in the order the page lists them.
66
+ * @param options - The error and the missing options, when there are any.
67
+ * @returns The verdict.
68
+ */
69
+ export declare function finishValidation<TCase extends TestCaseResult>(cases: TCase[], options?: FinishValidationOptions): ValidationResult<TCase>;
70
+ /**
71
+ * The verdict on an answer that never ran — it does not compile, or there is
72
+ * nothing to mark yet.
73
+ * @param error - What to tell the student, in their words rather than the
74
+ * engine's whenever the engine's can be improved on.
75
+ * @param cases - The cases, when the page still lists them as not evaluated.
76
+ * @returns The verdict.
77
+ */
78
+ export declare function failedValidation<TCase extends TestCaseResult>(error: string, cases?: TCase[]): ValidationResult<TCase>;
79
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/pedagogy/core/validation.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,kCAAkC;AAClC,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB;;;;;OAKG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,6EAA6E;IAC7E,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB,CAC/B,KAAK,SAAS,cAAc,GAAG,cAAc;IAE7C,MAAM,EAAE,OAAO,CAAC;IAChB;;;;OAIG;IACH,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,KAAK,EAAE,CAAC;IACf;;;;OAIG;IACH,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,uEAAuE;AACvE,MAAM,WAAW,uBAAuB;IACtC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,SAAS,cAAc,EAC3D,KAAK,EAAE,KAAK,EAAE,EACd,OAAO,GAAE,uBAA4B,GACpC,gBAAgB,CAAC,KAAK,CAAC,CASzB;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,SAAS,cAAc,EAC3D,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,KAAK,EAAO,GAClB,gBAAgB,CAAC,KAAK,CAAC,CAEzB"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * The verdict on an answer, in the shape every tool reports it.
3
+ *
4
+ * An exercise is marked by running the answer against test cases, never by
5
+ * comparing it to a string: two people write one molecule, one regex or one
6
+ * formula the same way far less often than they write it differently.
7
+ */
8
+ /**
9
+ * Turn the cases a validator ran into the verdict on the answer.
10
+ *
11
+ * The answer is right only when nothing failed: no error, no missing option,
12
+ * and every case passed. A list with no cases in it has nothing failing in it
13
+ * and therefore passes — a validator that could not run its cases reports
14
+ * {@link failedValidation} instead of an empty list.
15
+ * @param cases - Every case that was run, in the order the page lists them.
16
+ * @param options - The error and the missing options, when there are any.
17
+ * @returns The verdict.
18
+ */
19
+ export function finishValidation(cases, options = {}) {
20
+ const error = options.error ?? null;
21
+ const missingOptions = options.missingOptions ?? [];
22
+ return {
23
+ passed: error === null && missingOptions.length === 0 && allPassed(cases),
24
+ error,
25
+ cases,
26
+ missingOptions,
27
+ };
28
+ }
29
+ /**
30
+ * The verdict on an answer that never ran — it does not compile, or there is
31
+ * nothing to mark yet.
32
+ * @param error - What to tell the student, in their words rather than the
33
+ * engine's whenever the engine's can be improved on.
34
+ * @param cases - The cases, when the page still lists them as not evaluated.
35
+ * @returns The verdict.
36
+ */
37
+ export function failedValidation(error, cases = []) {
38
+ return { passed: false, error, cases, missingOptions: [] };
39
+ }
40
+ function allPassed(cases) {
41
+ for (const testCase of cases) {
42
+ if (!testCase.passed)
43
+ return false;
44
+ }
45
+ return true;
46
+ }
47
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/pedagogy/core/validation.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAyDH;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAc,EACd,UAAmC,EAAE;IAErC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC;IACpC,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC;IACpD,OAAO;QACL,MAAM,EAAE,KAAK,KAAK,IAAI,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC;QACzE,KAAK;QACL,KAAK;QACL,cAAc;KACf,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAa,EACb,QAAiB,EAAE;IAEnB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;AAC7D,CAAC;AAED,SAAS,SAAS,CAAC,KAAgC;IACjD,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,QAAQ,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;IACrC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,74 @@
1
+ import type { ReactElement, ReactNode } from 'react';
2
+ export interface ExerciseActionsProps {
3
+ /**
4
+ * Records the attempt. Grading itself runs on every keystroke, so this
5
+ * button commits the verdict rather than producing it.
6
+ * @default undefined — no Check button
7
+ */
8
+ onCheck?: () => void;
9
+ /**
10
+ * Text of the Check button.
11
+ * @default 'Check'
12
+ */
13
+ checkLabel?: string;
14
+ /**
15
+ * Whether checking is impossible yet — nothing typed, nothing drawn.
16
+ * @default false
17
+ */
18
+ checkDisabled?: boolean;
19
+ /**
20
+ * Opens the next hint.
21
+ * @default undefined — no hint button; the ladder may carry its own
22
+ */
23
+ onRevealHint?: () => void;
24
+ /**
25
+ * How many hints are already open, for the button's count.
26
+ * @default 0
27
+ */
28
+ hintsRevealed?: number;
29
+ /**
30
+ * How many hints the exercise has, for the button's count.
31
+ * @default 0
32
+ */
33
+ hintCount?: number;
34
+ /**
35
+ * Shows or hides the sample answer. Never gated behind anything: getting
36
+ * stuck and reading the answer is part of how the intuition is built.
37
+ * @default undefined — no solution button
38
+ */
39
+ onToggleSolution?: () => void;
40
+ /**
41
+ * Whether the sample answer is on screen, which is what the button offers to
42
+ * undo.
43
+ * @default false
44
+ */
45
+ showSolution?: boolean;
46
+ /**
47
+ * Puts the exercise back to a blank answer, no hints and no solution.
48
+ * @default undefined — no Reset button
49
+ */
50
+ onReset?: () => void;
51
+ /**
52
+ * The buttons this tool adds — show the diagram, show the 3D view — rendered
53
+ * after the four standard ones.
54
+ * @default undefined
55
+ */
56
+ children?: ReactNode;
57
+ /**
58
+ * Class the row carries, so a site can reach it from its stylesheet.
59
+ * @default undefined
60
+ */
61
+ className?: string;
62
+ }
63
+ /**
64
+ * The row of controls under an exercise: Check, Reveal hint, the solution, and
65
+ * Reset.
66
+ *
67
+ * Every one of them is optional, because a tool that grades live has no Check
68
+ * and a tool with a single-field answer has no Reset — what matters is that the
69
+ * ones a tool does offer read the same and sit in the same order everywhere.
70
+ * @param props - The actions the exercise offers.
71
+ * @returns The row.
72
+ */
73
+ export declare function ExerciseActions(props: ExerciseActionsProps): ReactElement;
74
+ //# sourceMappingURL=ExerciseActions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExerciseActions.d.ts","sourceRoot":"","sources":["../../../src/pedagogy/ui/ExerciseActions.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEpE,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,YAAY,CA+CzE"}
@@ -0,0 +1,22 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Button } from '@blueprintjs/core';
3
+ /**
4
+ * The row of controls under an exercise: Check, Reveal hint, the solution, and
5
+ * Reset.
6
+ *
7
+ * Every one of them is optional, because a tool that grades live has no Check
8
+ * and a tool with a single-field answer has no Reset — what matters is that the
9
+ * ones a tool does offer read the same and sit in the same order everywhere.
10
+ * @param props - The actions the exercise offers.
11
+ * @returns The row.
12
+ */
13
+ export function ExerciseActions(props) {
14
+ const { onCheck, checkLabel = 'Check', checkDisabled = false, onRevealHint, hintsRevealed = 0, hintCount = 0, onToggleSolution, showSolution = false, onReset, children, className, } = props;
15
+ return (_jsxs("div", { className: className, style: ROW_STYLE, children: [onCheck !== undefined && (_jsx(Button, { intent: "primary", icon: "tick", text: checkLabel, disabled: checkDisabled, onClick: onCheck })), onRevealHint !== undefined && (_jsx(Button, { icon: "lightbulb", text: `Reveal hint (${Math.min(hintsRevealed, hintCount)}/${hintCount})`, disabled: hintsRevealed >= hintCount, onClick: onRevealHint })), onToggleSolution !== undefined && (_jsx(Button, { icon: showSolution ? 'eye-off' : 'key', text: showSolution ? 'Hide solution' : 'Reveal solution', onClick: onToggleSolution })), onReset !== undefined && (_jsx(Button, { icon: "reset", text: "Reset", onClick: onReset })), children] }));
16
+ }
17
+ const ROW_STYLE = {
18
+ display: 'flex',
19
+ flexWrap: 'wrap',
20
+ gap: 6,
21
+ };
22
+ //# sourceMappingURL=ExerciseActions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExerciseActions.js","sourceRoot":"","sources":["../../../src/pedagogy/ui/ExerciseActions.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAiE3C;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAAC,KAA2B;IACzD,MAAM,EACJ,OAAO,EACP,UAAU,GAAG,OAAO,EACpB,aAAa,GAAG,KAAK,EACrB,YAAY,EACZ,aAAa,GAAG,CAAC,EACjB,SAAS,GAAG,CAAC,EACb,gBAAgB,EAChB,YAAY,GAAG,KAAK,EACpB,OAAO,EACP,QAAQ,EACR,SAAS,GACV,GAAG,KAAK,CAAC;IAEV,OAAO,CACL,eAAK,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,aACxC,OAAO,KAAK,SAAS,IAAI,CACxB,KAAC,MAAM,IACL,MAAM,EAAC,SAAS,EAChB,IAAI,EAAC,MAAM,EACX,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,OAAO,GAChB,CACH,EACA,YAAY,KAAK,SAAS,IAAI,CAC7B,KAAC,MAAM,IACL,IAAI,EAAC,WAAW,EAChB,IAAI,EAAE,gBAAgB,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,SAAS,CAAC,IAAI,SAAS,GAAG,EACxE,QAAQ,EAAE,aAAa,IAAI,SAAS,EACpC,OAAO,EAAE,YAAY,GACrB,CACH,EACA,gBAAgB,KAAK,SAAS,IAAI,CACjC,KAAC,MAAM,IACL,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EACtC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,iBAAiB,EACxD,OAAO,EAAE,gBAAgB,GACzB,CACH,EACA,OAAO,KAAK,SAAS,IAAI,CACxB,KAAC,MAAM,IAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAE,OAAO,GAAI,CACvD,EACA,QAAQ,IACL,CACP,CAAC;AACJ,CAAC;AAED,MAAM,SAAS,GAAkB;IAC/B,OAAO,EAAE,MAAM;IACf,QAAQ,EAAE,MAAM;IAChB,GAAG,EAAE,CAAC;CACP,CAAC"}
@@ -0,0 +1,43 @@
1
+ import type { ReactElement, ReactNode } from 'react';
2
+ import type { ProgressSummary } from '../core/progress.ts';
3
+ export interface ExerciseProgressHeaderProps {
4
+ /** Where the student stands, as `progressSummary` counted it. */
5
+ summary: ProgressSummary;
6
+ /**
7
+ * Throws away every answer, every revealed hint and every solved exercise.
8
+ * Guarded by a dialog the student has to confirm.
9
+ * @default undefined — the header only reports, and offers no way to wipe
10
+ */
11
+ onClearAll?: () => void;
12
+ /**
13
+ * Text of the button that wipes the work.
14
+ * @default 'Clear all answers'
15
+ */
16
+ clearLabel?: string;
17
+ /**
18
+ * What the confirmation dialog says before the work is thrown away.
19
+ * @default a sentence saying what is lost and that there is no undo
20
+ */
21
+ clearWarning?: ReactNode;
22
+ /**
23
+ * Whether the button is dead — there is nothing stored to wipe.
24
+ * @default false
25
+ */
26
+ clearDisabled?: boolean;
27
+ /**
28
+ * Class the header carries, so a site can reach it from its stylesheet.
29
+ * @default undefined
30
+ */
31
+ className?: string;
32
+ }
33
+ /**
34
+ * How much of a set is solved, its bar, and the one way to wipe it.
35
+ *
36
+ * Wiping goes through a real dialog rather than `confirm()`: the button throws
37
+ * away a week of somebody's work, and a native prompt is both unstyled and
38
+ * dismissed by reflex.
39
+ * @param props - The counts, and what clearing does.
40
+ * @returns The header.
41
+ */
42
+ export declare function ExerciseProgressHeader(props: ExerciseProgressHeaderProps): ReactElement;
43
+ //# sourceMappingURL=ExerciseProgressHeader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExerciseProgressHeader.d.ts","sourceRoot":"","sources":["../../../src/pedagogy/ui/ExerciseProgressHeader.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,MAAM,WAAW,2BAA2B;IAC1C,iEAAiE;IACjE,OAAO,EAAE,eAAe,CAAC;IACzB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,2BAA2B,GACjC,YAAY,CA+Dd"}
@@ -0,0 +1,43 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Alert, Button, ProgressBar } from '@blueprintjs/core';
3
+ import { useState } from 'react';
4
+ /**
5
+ * How much of a set is solved, its bar, and the one way to wipe it.
6
+ *
7
+ * Wiping goes through a real dialog rather than `confirm()`: the button throws
8
+ * away a week of somebody's work, and a native prompt is both unstyled and
9
+ * dismissed by reflex.
10
+ * @param props - The counts, and what clearing does.
11
+ * @returns The header.
12
+ */
13
+ export function ExerciseProgressHeader(props) {
14
+ const { summary, onClearAll, clearLabel = 'Clear all answers', clearWarning = DEFAULT_WARNING, clearDisabled = false, className, } = props;
15
+ const [confirming, setConfirming] = useState(false);
16
+ const complete = summary.total > 0 && summary.solved === summary.total;
17
+ return (_jsxs("div", { className: className, style: ROOT_STYLE, children: [_jsxs("div", { style: ROW_STYLE, children: [_jsx("span", { style: COUNT_STYLE, children: `${summary.solved} / ${summary.total} solved` }), _jsx("span", { style: PERCENT_STYLE, children: `${Math.round(summary.ratio * 100)}%` }), onClearAll !== undefined && (_jsx(Button, { size: "small", variant: "minimal", intent: "danger", icon: "trash", text: clearLabel, disabled: clearDisabled, onClick: () => {
18
+ setConfirming(true);
19
+ } }))] }), _jsx(ProgressBar, { animate: false, stripes: false, intent: complete ? 'success' : 'primary', value: summary.ratio }), onClearAll !== undefined && (_jsx(Alert, { isOpen: confirming, intent: "danger", icon: "trash", cancelButtonText: "Keep my answers", confirmButtonText: "Clear everything", onCancel: () => {
20
+ setConfirming(false);
21
+ }, onConfirm: () => {
22
+ onClearAll();
23
+ setConfirming(false);
24
+ }, children: clearWarning }))] }));
25
+ }
26
+ const DEFAULT_WARNING = 'This forgets every answer, every revealed hint and every solved exercise, on this browser. There is no undo.';
27
+ const ROOT_STYLE = {
28
+ display: 'flex',
29
+ flexDirection: 'column',
30
+ gap: 6,
31
+ };
32
+ const ROW_STYLE = {
33
+ display: 'flex',
34
+ alignItems: 'center',
35
+ gap: 8,
36
+ };
37
+ const COUNT_STYLE = { fontWeight: 600 };
38
+ const PERCENT_STYLE = {
39
+ color: '#5b6875',
40
+ flex: '1 1 auto',
41
+ fontSize: 12,
42
+ };
43
+ //# sourceMappingURL=ExerciseProgressHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExerciseProgressHeader.js","sourceRoot":"","sources":["../../../src/pedagogy/ui/ExerciseProgressHeader.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE/D,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAmCjC;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAkC;IAElC,MAAM,EACJ,OAAO,EACP,UAAU,EACV,UAAU,GAAG,mBAAmB,EAChC,YAAY,GAAG,eAAe,EAC9B,aAAa,GAAG,KAAK,EACrB,SAAS,GACV,GAAG,KAAK,CAAC;IACV,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC;IAEvE,OAAO,CACL,eAAK,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,aAC1C,eAAK,KAAK,EAAE,SAAS,aACnB,eAAM,KAAK,EAAE,WAAW,YACrB,GAAG,OAAO,CAAC,MAAM,MAAM,OAAO,CAAC,KAAK,SAAS,GACzC,EACP,eACE,KAAK,EAAE,aAAa,YACpB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAQ,EAC9C,UAAU,KAAK,SAAS,IAAI,CAC3B,KAAC,MAAM,IACL,IAAI,EAAC,OAAO,EACZ,OAAO,EAAC,SAAS,EACjB,MAAM,EAAC,QAAQ,EACf,IAAI,EAAC,OAAO,EACZ,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,GAAG,EAAE;4BACZ,aAAa,CAAC,IAAI,CAAC,CAAC;wBACtB,CAAC,GACD,CACH,IACG,EAEN,KAAC,WAAW,IACV,OAAO,EAAE,KAAK,EACd,OAAO,EAAE,KAAK,EACd,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EACxC,KAAK,EAAE,OAAO,CAAC,KAAK,GACpB,EAED,UAAU,KAAK,SAAS,IAAI,CAC3B,KAAC,KAAK,IACJ,MAAM,EAAE,UAAU,EAClB,MAAM,EAAC,QAAQ,EACf,IAAI,EAAC,OAAO,EACZ,gBAAgB,EAAC,iBAAiB,EAClC,iBAAiB,EAAC,kBAAkB,EACpC,QAAQ,EAAE,GAAG,EAAE;oBACb,aAAa,CAAC,KAAK,CAAC,CAAC;gBACvB,CAAC,EACD,SAAS,EAAE,GAAG,EAAE;oBACd,UAAU,EAAE,CAAC;oBACb,aAAa,CAAC,KAAK,CAAC,CAAC;gBACvB,CAAC,YAEA,YAAY,GACP,CACT,IACG,CACP,CAAC;AACJ,CAAC;AAED,MAAM,eAAe,GACnB,8GAA8G,CAAC;AAEjH,MAAM,UAAU,GAAkB;IAChC,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,QAAQ;IACvB,GAAG,EAAE,CAAC;CACP,CAAC;AAEF,MAAM,SAAS,GAAkB;IAC/B,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,QAAQ;IACpB,GAAG,EAAE,CAAC;CACP,CAAC;AAEF,MAAM,WAAW,GAAkB,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;AAEvD,MAAM,aAAa,GAAkB;IACnC,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE,EAAE;CACb,CAAC"}
@@ -0,0 +1,49 @@
1
+ import type { ReactElement } from 'react';
2
+ import type { ExerciseLevel, ExerciseStatus } from '../core/types.ts';
3
+ export interface ExerciseLevelTagProps {
4
+ level: ExerciseLevel;
5
+ /**
6
+ * What the tag reads.
7
+ * @default the level itself — `beginner`, `intermediate`, `advanced`
8
+ */
9
+ label?: string;
10
+ /**
11
+ * Whether the tag is the one currently selected, which fills it in rather
12
+ * than leaving it minimal. Its colour does not depend on this: a level that
13
+ * is filtered out is still that level, and a tag that dropped to `none` when
14
+ * switched off would say the difficulty had changed.
15
+ * @default false
16
+ */
17
+ active?: boolean;
18
+ /**
19
+ * Called when the tag is clicked, which also makes it interactive.
20
+ * @default undefined — the tag only reports the level
21
+ */
22
+ onClick?: () => void;
23
+ }
24
+ /**
25
+ * The difficulty of an exercise or a step, as a coloured tag.
26
+ * @param props - The level, and whether it is the selected one.
27
+ * @returns The tag.
28
+ */
29
+ export declare function ExerciseLevelTag(props: ExerciseLevelTagProps): ReactElement;
30
+ export interface ExerciseStatusIconProps {
31
+ status: ExerciseStatus;
32
+ /**
33
+ * What the pointer and a screen reader are told.
34
+ * @default the status itself — `idle`, `attempted`, `solved`
35
+ */
36
+ title?: string;
37
+ /**
38
+ * Size of the glyph, in pixels.
39
+ * @default undefined — Blueprint's standard 16
40
+ */
41
+ size?: number;
42
+ }
43
+ /**
44
+ * Where a student stands on one exercise, as the glyph in front of its title.
45
+ * @param props - The status, and how it is announced.
46
+ * @returns The icon.
47
+ */
48
+ export declare function ExerciseStatusIcon(props: ExerciseStatusIconProps): ReactElement;
49
+ //# sourceMappingURL=ExerciseTags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExerciseTags.d.ts","sourceRoot":"","sources":["../../../src/pedagogy/ui/ExerciseTags.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAItE,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,aAAa,CAAC;IACrB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,YAAY,CAe3E;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,cAAc,CAAC;IACvB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,uBAAuB,GAC7B,YAAY,CAYd"}
@@ -0,0 +1,22 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Icon, Tag } from '@blueprintjs/core';
3
+ import { LEVEL_INTENT, STATUS_ICON, STATUS_INTENT } from "./exerciseMeta.js";
4
+ /**
5
+ * The difficulty of an exercise or a step, as a coloured tag.
6
+ * @param props - The level, and whether it is the selected one.
7
+ * @returns The tag.
8
+ */
9
+ export function ExerciseLevelTag(props) {
10
+ const { level, label = level, active = false, onClick } = props;
11
+ return (_jsx(Tag, { round: true, minimal: !active, active: active, intent: LEVEL_INTENT[level], interactive: onClick !== undefined, onClick: onClick, children: label }));
12
+ }
13
+ /**
14
+ * Where a student stands on one exercise, as the glyph in front of its title.
15
+ * @param props - The status, and how it is announced.
16
+ * @returns The icon.
17
+ */
18
+ export function ExerciseStatusIcon(props) {
19
+ const { status, title = status, size } = props;
20
+ return (_jsx(Icon, { icon: STATUS_ICON[status], intent: STATUS_INTENT[status], size: size, title: title, "aria-label": title }));
21
+ }
22
+ //# sourceMappingURL=ExerciseTags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExerciseTags.js","sourceRoot":"","sources":["../../../src/pedagogy/ui/ExerciseTags.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAK9C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAwB7E;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAA4B;IAC3D,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,MAAM,GAAG,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAEhE,OAAO,CACL,KAAC,GAAG,IACF,KAAK,QACL,OAAO,EAAE,CAAC,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,EAC3B,WAAW,EAAE,OAAO,KAAK,SAAS,EAClC,OAAO,EAAE,OAAO,YAEf,KAAK,GACF,CACP,CAAC;AACJ,CAAC;AAgBD;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAA8B;IAE9B,MAAM,EAAE,MAAM,EAAE,KAAK,GAAG,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAE/C,OAAO,CACL,KAAC,IAAI,IACH,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,EACzB,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,EAC7B,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,gBACA,KAAK,GACjB,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { ReactElement, ReactNode } from 'react';
2
+ import type { Glossary } from '../core/glossary.ts';
3
+ export interface GlossaryProviderProps {
4
+ /** Every term the site defines, keyed by the lowercased text of a marker. */
5
+ glossary: Glossary;
6
+ /** The part of the page whose prose resolves its markers against it. */
7
+ children: ReactNode;
8
+ }
9
+ /**
10
+ * Hand a glossary to every piece of prose below it.
11
+ *
12
+ * Wrap the whole tool once, high enough that a tutorial step, an exercise
13
+ * description and a revealed hint all sit under it: they are the three places
14
+ * jargon is linked, and they must define a term the same way.
15
+ * @param props - The terms, and the tree that uses them.
16
+ * @returns The tree, with the glossary in reach.
17
+ */
18
+ export declare function GlossaryProvider(props: GlossaryProviderProps): ReactElement;
19
+ //# sourceMappingURL=GlossaryProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GlossaryProvider.d.ts","sourceRoot":"","sources":["../../../src/pedagogy/ui/GlossaryProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAErD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAIpD,MAAM,WAAW,qBAAqB;IACpC,6EAA6E;IAC7E,QAAQ,EAAE,QAAQ,CAAC;IACnB,wEAAwE;IACxE,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,YAAY,CAQ3E"}
@@ -0,0 +1,16 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { GlossaryContext } from "./glossaryContext.js";
3
+ /**
4
+ * Hand a glossary to every piece of prose below it.
5
+ *
6
+ * Wrap the whole tool once, high enough that a tutorial step, an exercise
7
+ * description and a revealed hint all sit under it: they are the three places
8
+ * jargon is linked, and they must define a term the same way.
9
+ * @param props - The terms, and the tree that uses them.
10
+ * @returns The tree, with the glossary in reach.
11
+ */
12
+ export function GlossaryProvider(props) {
13
+ const { glossary, children } = props;
14
+ return (_jsx(GlossaryContext.Provider, { value: glossary, children: children }));
15
+ }
16
+ //# sourceMappingURL=GlossaryProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GlossaryProvider.js","sourceRoot":"","sources":["../../../src/pedagogy/ui/GlossaryProvider.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AASvD;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAA4B;IAC3D,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAErC,OAAO,CACL,KAAC,eAAe,CAAC,QAAQ,IAAC,KAAK,EAAE,QAAQ,YACtC,QAAQ,GACgB,CAC5B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,50 @@
1
+ import type { Placement } from '@blueprintjs/core';
2
+ import type { ReactElement } from 'react';
3
+ import type { Glossary, GlossaryEntry } from '../core/glossary.ts';
4
+ export interface GlossaryTextProps {
5
+ /**
6
+ * Authored prose. Every `[[term]]` — or `[[term|displayed text]]` — the
7
+ * glossary knows becomes a hoverable chip.
8
+ */
9
+ text: string;
10
+ /**
11
+ * Terms to resolve against, instead of the ones the surrounding provider
12
+ * holds. A page showing two vocabularies side by side passes its own here.
13
+ * @default undefined — the glossary of the surrounding `GlossaryProvider`
14
+ */
15
+ glossary?: Glossary;
16
+ /**
17
+ * Side the definition opens on.
18
+ * @default 'bottom'
19
+ */
20
+ placement?: Placement;
21
+ /**
22
+ * Class every chip carries, so a site can reach them from its stylesheet.
23
+ * @default 'glossary-term'
24
+ */
25
+ className?: string;
26
+ }
27
+ /**
28
+ * Render authored prose, turning its markers into hoverable definitions.
29
+ *
30
+ * A term the glossary has no entry for renders as its plain text, never as the
31
+ * brackets: prose is allowed to link a word months before anybody writes its
32
+ * definition, and the page must keep reading in the meantime.
33
+ * @param props - The prose, and where its terms are defined.
34
+ * @returns The prose, with the known terms made hoverable.
35
+ */
36
+ export declare function GlossaryText(props: GlossaryTextProps): ReactElement;
37
+ export interface GlossaryTooltipBodyProps {
38
+ /** The term to explain, already resolved from a marker. */
39
+ entry: GlossaryEntry;
40
+ }
41
+ /**
42
+ * The definition itself: the term, one paragraph, then the worked examples.
43
+ *
44
+ * Exported on its own so a glossary page can list every term with the body it
45
+ * shows on hover, rather than describing the same entry twice.
46
+ * @param props - The entry to show.
47
+ * @returns The body of the tooltip.
48
+ */
49
+ export declare function GlossaryTooltipBody(props: GlossaryTooltipBodyProps): ReactElement;
50
+ //# sourceMappingURL=GlossaryText.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GlossaryText.d.ts","sourceRoot":"","sources":["../../../src/pedagogy/ui/GlossaryText.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,KAAK,EAAiB,YAAY,EAAa,MAAM,OAAO,CAAC;AAGpE,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAKnE,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;;;OAGG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,YAAY,CAmCnE;AAED,MAAM,WAAW,wBAAwB;IACvC,2DAA2D;IAC3D,KAAK,EAAE,aAAa,CAAC;CACtB;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,wBAAwB,GAC9B,YAAY,CAwBd"}
@@ -0,0 +1,79 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Tooltip } from '@blueprintjs/core';
3
+ import { Fragment } from 'react';
4
+ import { lookupGlossaryTerm, parseGlossaryMarkers } from "../core/glossary.js";
5
+ import { useGlossary } from "./glossaryContext.js";
6
+ /**
7
+ * Render authored prose, turning its markers into hoverable definitions.
8
+ *
9
+ * A term the glossary has no entry for renders as its plain text, never as the
10
+ * brackets: prose is allowed to link a word months before anybody writes its
11
+ * definition, and the page must keep reading in the meantime.
12
+ * @param props - The prose, and where its terms are defined.
13
+ * @returns The prose, with the known terms made hoverable.
14
+ */
15
+ export function GlossaryText(props) {
16
+ const { text, glossary, placement = 'bottom', className = 'glossary-term', } = props;
17
+ const fromProvider = useGlossary();
18
+ const terms = glossary ?? fromProvider;
19
+ const pieces = [];
20
+ for (const segment of parseGlossaryMarkers(text)) {
21
+ const entry = segment.kind === 'term'
22
+ ? lookupGlossaryTerm(terms, segment.term)
23
+ : undefined;
24
+ if (entry === undefined) {
25
+ pieces.push(_jsx(Fragment, { children: segment.text }, segment.start));
26
+ continue;
27
+ }
28
+ pieces.push(_jsx(Tooltip, { content: _jsx(GlossaryTooltipBody, { entry: entry }), hoverOpenDelay: HOVER_OPEN_DELAY, placement: placement, children: _jsx("span", { className: className, style: TERM_STYLE, children: segment.text }) }, segment.start));
29
+ }
30
+ return _jsx(_Fragment, { children: pieces });
31
+ }
32
+ /**
33
+ * The definition itself: the term, one paragraph, then the worked examples.
34
+ *
35
+ * Exported on its own so a glossary page can list every term with the body it
36
+ * shows on hover, rather than describing the same entry twice.
37
+ * @param props - The entry to show.
38
+ * @returns The body of the tooltip.
39
+ */
40
+ export function GlossaryTooltipBody(props) {
41
+ const { entry } = props;
42
+ return (_jsxs("div", { style: BODY_STYLE, children: [_jsx("div", { style: TITLE_STYLE, children: entry.title }), _jsx("div", { style: SUMMARY_STYLE, children: entry.summary }), entry.examples.length > 0 && (_jsx("ul", { style: LIST_STYLE, children: entry.examples.map((example) => (_jsxs("li", { children: [_jsx("code", { style: CODE_STYLE, children: example.code }), example.input !== undefined && (_jsx("span", { style: INPUT_STYLE, children: ` on ${example.input}` })), example.note !== undefined && (_jsx("div", { style: NOTE_STYLE, children: example.note }))] }, `${example.code}::${example.input ?? ''}`))) }))] }));
43
+ }
44
+ /** Long enough that the pointer can cross a chip without opening it. */
45
+ const HOVER_OPEN_DELAY = 150;
46
+ const TERM_STYLE = {
47
+ borderBottom: '1px dotted currentColor',
48
+ color: 'var(--accent, inherit)',
49
+ cursor: 'help',
50
+ };
51
+ const BODY_STYLE = {
52
+ display: 'flex',
53
+ flexDirection: 'column',
54
+ gap: 6,
55
+ maxWidth: 340,
56
+ };
57
+ const TITLE_STYLE = { fontWeight: 600, fontSize: 13 };
58
+ const SUMMARY_STYLE = {
59
+ fontSize: 12,
60
+ lineHeight: 1.45,
61
+ color: '#d3d8de',
62
+ };
63
+ const LIST_STYLE = {
64
+ display: 'flex',
65
+ flexDirection: 'column',
66
+ gap: 4,
67
+ margin: 0,
68
+ paddingLeft: 16,
69
+ fontSize: 12,
70
+ lineHeight: 1.4,
71
+ };
72
+ const CODE_STYLE = {
73
+ fontFamily: 'ui-monospace, SFMono-Regular, Menlo, Consolas, monospace',
74
+ fontWeight: 600,
75
+ color: '#8abbff',
76
+ };
77
+ const INPUT_STYLE = { color: '#f6f7f9' };
78
+ const NOTE_STYLE = { fontStyle: 'italic', color: '#abb3bf' };
79
+ //# sourceMappingURL=GlossaryText.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GlossaryText.js","sourceRoot":"","sources":["../../../src/pedagogy/ui/GlossaryText.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGjC,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE/E,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AA0BnD;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,MAAM,EACJ,IAAI,EACJ,QAAQ,EACR,SAAS,GAAG,QAAQ,EACpB,SAAS,GAAG,eAAe,GAC5B,GAAG,KAAK,CAAC;IACV,MAAM,YAAY,GAAG,WAAW,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG,QAAQ,IAAI,YAAY,CAAC;IAEvC,MAAM,MAAM,GAAgB,EAAE,CAAC;IAC/B,KAAK,MAAM,OAAO,IAAI,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;QACjD,MAAM,KAAK,GACT,OAAO,CAAC,IAAI,KAAK,MAAM;YACrB,CAAC,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC;YACzC,CAAC,CAAC,SAAS,CAAC;QAChB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,KAAC,QAAQ,cAAsB,OAAO,CAAC,IAAI,IAA5B,OAAO,CAAC,KAAK,CAA2B,CAAC,CAAC;YACrE,SAAS;QACX,CAAC;QACD,MAAM,CAAC,IAAI,CACT,KAAC,OAAO,IAEN,OAAO,EAAE,KAAC,mBAAmB,IAAC,KAAK,EAAE,KAAK,GAAI,EAC9C,cAAc,EAAE,gBAAgB,EAChC,SAAS,EAAE,SAAS,YAEpB,eAAM,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,YAC1C,OAAO,CAAC,IAAI,GACR,IAPF,OAAO,CAAC,KAAK,CAQV,CACX,CAAC;IACJ,CAAC;IAED,OAAO,4BAAG,MAAM,GAAI,CAAC;AACvB,CAAC;AAOD;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAA+B;IAE/B,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IAExB,OAAO,CACL,eAAK,KAAK,EAAE,UAAU,aACpB,cAAK,KAAK,EAAE,WAAW,YAAG,KAAK,CAAC,KAAK,GAAO,EAC5C,cAAK,KAAK,EAAE,aAAa,YAAG,KAAK,CAAC,OAAO,GAAO,EAC/C,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAC5B,aAAI,KAAK,EAAE,UAAU,YAClB,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAC/B,yBACE,eAAM,KAAK,EAAE,UAAU,YAAG,OAAO,CAAC,IAAI,GAAQ,EAC7C,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,CAC9B,eAAM,KAAK,EAAE,WAAW,YAAG,OAAO,OAAO,CAAC,KAAK,EAAE,GAAQ,CAC1D,EACA,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,CAC7B,cAAK,KAAK,EAAE,UAAU,YAAG,OAAO,CAAC,IAAI,GAAO,CAC7C,KAPM,GAAG,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,KAAK,IAAI,EAAE,EAAE,CAQ7C,CACN,CAAC,GACC,CACN,IACG,CACP,CAAC;AACJ,CAAC;AAED,wEAAwE;AACxE,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAE7B,MAAM,UAAU,GAAkB;IAChC,YAAY,EAAE,yBAAyB;IACvC,KAAK,EAAE,wBAAwB;IAC/B,MAAM,EAAE,MAAM;CACf,CAAC;AAEF,MAAM,UAAU,GAAkB;IAChC,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,QAAQ;IACvB,GAAG,EAAE,CAAC;IACN,QAAQ,EAAE,GAAG;CACd,CAAC;AAEF,MAAM,WAAW,GAAkB,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AAErE,MAAM,aAAa,GAAkB;IACnC,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,IAAI;IAChB,KAAK,EAAE,SAAS;CACjB,CAAC;AAEF,MAAM,UAAU,GAAkB;IAChC,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,QAAQ;IACvB,GAAG,EAAE,CAAC;IACN,MAAM,EAAE,CAAC;IACT,WAAW,EAAE,EAAE;IACf,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,GAAG;CAChB,CAAC;AAEF,MAAM,UAAU,GAAkB;IAChC,UAAU,EAAE,0DAA0D;IACtE,UAAU,EAAE,GAAG;IACf,KAAK,EAAE,SAAS;CACjB,CAAC;AAEF,MAAM,WAAW,GAAkB,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAExD,MAAM,UAAU,GAAkB,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC"}