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,38 @@
1
+ import type { ReactElement } from 'react';
2
+ export interface HintLadderProps {
3
+ /** Every hint of the exercise, ordered from a nudge to almost the answer. */
4
+ hints: readonly string[];
5
+ /**
6
+ * How many the student has asked for. A count outside the ladder is read as
7
+ * one of its ends, so a stored value from a shorter or longer ladder still
8
+ * opens the page.
9
+ */
10
+ revealed: number;
11
+ /**
12
+ * Opens the next hint. Leave it out where the button lives elsewhere — in
13
+ * `ExerciseActions`, say — and the ladder only shows what is already open.
14
+ * @default undefined — no button
15
+ */
16
+ onReveal?: () => void;
17
+ /**
18
+ * Text of the button, before its count.
19
+ * @default 'Reveal hint'
20
+ */
21
+ revealLabel?: string;
22
+ /**
23
+ * Heading over the hints.
24
+ * @default 'Hints'
25
+ */
26
+ title?: string;
27
+ }
28
+ /**
29
+ * The hints asked for so far, and the button that opens the next one.
30
+ *
31
+ * One at a time, in order: a ladder that dumped all four at once is a solution
32
+ * with extra steps. The prose goes through the glossary, so a hint may link its
33
+ * jargon exactly like the statement above it.
34
+ * @param props - The ladder, how much of it is open, and how to open more.
35
+ * @returns The hints, or nothing while none is open and none can be.
36
+ */
37
+ export declare function HintLadder(props: HintLadderProps): ReactElement | null;
38
+ //# sourceMappingURL=HintLadder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HintLadder.d.ts","sourceRoot":"","sources":["../../../src/pedagogy/ui/HintLadder.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,OAAO,CAAC;AAIzD,MAAM,WAAW,eAAe;IAC9B,6EAA6E;IAC7E,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,YAAY,GAAG,IAAI,CAsCtE"}
@@ -0,0 +1,33 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Button, Callout } from '@blueprintjs/core';
3
+ import { GlossaryText } from "./GlossaryText.js";
4
+ /**
5
+ * The hints asked for so far, and the button that opens the next one.
6
+ *
7
+ * One at a time, in order: a ladder that dumped all four at once is a solution
8
+ * with extra steps. The prose goes through the glossary, so a hint may link its
9
+ * jargon exactly like the statement above it.
10
+ * @param props - The ladder, how much of it is open, and how to open more.
11
+ * @returns The hints, or nothing while none is open and none can be.
12
+ */
13
+ export function HintLadder(props) {
14
+ const { hints, revealed, onReveal, revealLabel = 'Reveal hint', title = 'Hints', } = props;
15
+ const open = clampRevealed(revealed, hints.length);
16
+ const exhausted = open >= hints.length;
17
+ if (open === 0 && (onReveal === undefined || hints.length === 0))
18
+ return null;
19
+ return (_jsxs("div", { style: ROOT_STYLE, children: [onReveal !== undefined && hints.length > 0 && (_jsx("div", { children: _jsx(Button, { icon: "lightbulb", text: `${revealLabel} (${open}/${hints.length})`, disabled: exhausted, onClick: onReveal }) })), open > 0 && (_jsx(Callout, { intent: "primary", icon: "lightbulb", title: title, children: _jsx("ol", { style: LIST_STYLE, children: hints.slice(0, open).map((hint) => (_jsx("li", { style: ITEM_STYLE, children: _jsx(GlossaryText, { text: hint }) }, hint))) }) }))] }));
20
+ }
21
+ function clampRevealed(revealed, total) {
22
+ if (!Number.isFinite(revealed) || revealed <= 0)
23
+ return 0;
24
+ return Math.min(Math.floor(revealed), total);
25
+ }
26
+ const ROOT_STYLE = {
27
+ display: 'flex',
28
+ flexDirection: 'column',
29
+ gap: 8,
30
+ };
31
+ const LIST_STYLE = { margin: 0, paddingLeft: 18 };
32
+ const ITEM_STYLE = { lineHeight: 1.45 };
33
+ //# sourceMappingURL=HintLadder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HintLadder.js","sourceRoot":"","sources":["../../../src/pedagogy/ui/HintLadder.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAoB,CAAC;AA6BlD;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAAC,KAAsB;IAC/C,MAAM,EACJ,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,WAAW,GAAG,aAAa,EAC3B,KAAK,GAAG,OAAO,GAChB,GAAG,KAAK,CAAC;IACV,MAAM,IAAI,GAAG,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC;IACvC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAE9E,OAAO,CACL,eAAK,KAAK,EAAE,UAAU,aACnB,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAC7C,wBACE,KAAC,MAAM,IACL,IAAI,EAAC,WAAW,EAChB,IAAI,EAAE,GAAG,WAAW,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,GAAG,EAChD,QAAQ,EAAE,SAAS,EACnB,OAAO,EAAE,QAAQ,GACjB,GACE,CACP,EAEA,IAAI,GAAG,CAAC,IAAI,CACX,KAAC,OAAO,IAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,WAAW,EAAC,KAAK,EAAE,KAAK,YACrD,aAAI,KAAK,EAAE,UAAU,YAClB,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAClC,aAAe,KAAK,EAAE,UAAU,YAC9B,KAAC,YAAY,IAAC,IAAI,EAAE,IAAI,GAAI,IADrB,IAAI,CAER,CACN,CAAC,GACC,GACG,CACX,IACG,CACP,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,QAAgB,EAAE,KAAa;IACpD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IAC1D,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,GAAkB;IAChC,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,QAAQ;IACvB,GAAG,EAAE,CAAC;CACP,CAAC;AAEF,MAAM,UAAU,GAAkB,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;AAEjE,MAAM,UAAU,GAAkB,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC"}
@@ -0,0 +1,31 @@
1
+ import type { ReactElement } from 'react';
2
+ import type { ReferenceSection } from './ReferenceSectionBlock.tsx';
3
+ export interface ReferenceGridProps {
4
+ /** The blocks of the cheatsheet, in reading order. */
5
+ sections: readonly ReferenceSection[];
6
+ /**
7
+ * Width under which a column wraps to the next line, in pixels.
8
+ * @default 320
9
+ */
10
+ minColumnWidth?: number;
11
+ /**
12
+ * Width of the syntax column of every block, so they line up across columns.
13
+ * @default 150
14
+ */
15
+ syntaxWidth?: number | string;
16
+ /**
17
+ * Class the grid carries, in addition to `reference-grid`.
18
+ * @default undefined
19
+ */
20
+ className?: string;
21
+ }
22
+ /**
23
+ * The whole cheatsheet: as many columns as the paper or the window allows.
24
+ *
25
+ * Students print this page and take it into an exam room, so the columns
26
+ * reflow to the sheet and every block is kept off a page break.
27
+ * @param props - The sections, and how they are laid out.
28
+ * @returns The grid.
29
+ */
30
+ export declare function ReferenceGrid(props: ReferenceGridProps): ReactElement;
31
+ //# sourceMappingURL=ReferenceGrid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReferenceGrid.d.ts","sourceRoot":"","sources":["../../../src/pedagogy/ui/ReferenceGrid.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,OAAO,CAAC;AAEzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,MAAM,WAAW,kBAAkB;IACjC,sDAAsD;IACtD,QAAQ,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACtC;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,YAAY,CA0BrE"}
@@ -0,0 +1,25 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { ReferenceSectionBlock } from "./ReferenceSectionBlock.js";
3
+ /**
4
+ * The whole cheatsheet: as many columns as the paper or the window allows.
5
+ *
6
+ * Students print this page and take it into an exam room, so the columns
7
+ * reflow to the sheet and every block is kept off a page break.
8
+ * @param props - The sections, and how they are laid out.
9
+ * @returns The grid.
10
+ */
11
+ export function ReferenceGrid(props) {
12
+ const { sections, minColumnWidth = 320, syntaxWidth = 150, className, } = props;
13
+ return (_jsx("div", { className: className === undefined
14
+ ? 'reference-grid'
15
+ : `reference-grid ${className}`, style: gridStyle(minColumnWidth), children: sections.map((section) => (_jsx(ReferenceSectionBlock, { section: section, syntaxWidth: syntaxWidth }, section.id))) }));
16
+ }
17
+ function gridStyle(minColumnWidth) {
18
+ return {
19
+ display: 'grid',
20
+ gridTemplateColumns: `repeat(auto-fit, minmax(${minColumnWidth}px, 1fr))`,
21
+ gap: '10px 24px',
22
+ alignItems: 'start',
23
+ };
24
+ }
25
+ //# sourceMappingURL=ReferenceGrid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReferenceGrid.js","sourceRoot":"","sources":["../../../src/pedagogy/ui/ReferenceGrid.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA6B,CAAC;AAsBpE;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,KAAyB;IACrD,MAAM,EACJ,QAAQ,EACR,cAAc,GAAG,GAAG,EACpB,WAAW,GAAG,GAAG,EACjB,SAAS,GACV,GAAG,KAAK,CAAC;IAEV,OAAO,CACL,cACE,SAAS,EACP,SAAS,KAAK,SAAS;YACrB,CAAC,CAAC,gBAAgB;YAClB,CAAC,CAAC,kBAAkB,SAAS,EAAE,EAEnC,KAAK,EAAE,SAAS,CAAC,cAAc,CAAC,YAE/B,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CACzB,KAAC,qBAAqB,IAEpB,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,WAAW,IAFnB,OAAO,CAAC,EAAE,CAGf,CACH,CAAC,GACE,CACP,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,cAAsB;IACvC,OAAO;QACL,OAAO,EAAE,MAAM;QACf,mBAAmB,EAAE,2BAA2B,cAAc,WAAW;QACzE,GAAG,EAAE,WAAW;QAChB,UAAU,EAAE,OAAO;KACpB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,64 @@
1
+ import type { ReactElement } from 'react';
2
+ import type { SyntaxTooltipContent } from './SyntaxTooltip.tsx';
3
+ /** One line of the cheatsheet: a construct and what it does. */
4
+ export interface ReferenceRow {
5
+ /** The construct itself, set in monospace. */
6
+ syntax: string;
7
+ /** What it does, in one line — short enough to read on paper. */
8
+ description: string;
9
+ /**
10
+ * The longer story, opened by hovering the row. A sparse section is meant to
11
+ * ship and be enriched later, so a row without one is plain text rather than
12
+ * a chip that opens nothing.
13
+ * @default undefined — the row is not interactive
14
+ */
15
+ tooltip?: SyntaxTooltipContent;
16
+ }
17
+ /** One titled block of the cheatsheet. */
18
+ export interface ReferenceSection {
19
+ /** Stable and URL-safe: a heading can be linked to. */
20
+ id: string;
21
+ title: string;
22
+ /**
23
+ * One line under the heading, when the block needs framing.
24
+ * @default undefined
25
+ */
26
+ intro?: string;
27
+ /**
28
+ * Colour of the heading and of the rule under it, which is how the sections
29
+ * are told apart at a glance.
30
+ * @default undefined — the heading takes the surrounding text colour
31
+ */
32
+ color?: string;
33
+ rows: ReferenceRow[];
34
+ /**
35
+ * Whether the block is dropped from the printed sheet — a section that is
36
+ * only useful with a pointer, or one the site keeps for the screen.
37
+ * @default false
38
+ */
39
+ noPrint?: boolean;
40
+ }
41
+ export interface ReferenceSectionBlockProps {
42
+ section: ReferenceSection;
43
+ /**
44
+ * Width of the syntax column, so the blocks of one grid line up.
45
+ * @default 150
46
+ */
47
+ syntaxWidth?: number | string;
48
+ /**
49
+ * Class the block carries, in addition to `reference-section`.
50
+ * @default undefined
51
+ */
52
+ className?: string;
53
+ }
54
+ /**
55
+ * A titled block of reference rows.
56
+ *
57
+ * The rows are spans in a flex column rather than a table: a tooltip target is
58
+ * wrapped in a `<span>`, which a browser hoists straight out of a `<tbody>`,
59
+ * and a table also breaks across pages far worse than a column does.
60
+ * @param props - The section, and how wide its syntax column is.
61
+ * @returns The block, kept whole across a page break.
62
+ */
63
+ export declare function ReferenceSectionBlock(props: ReferenceSectionBlockProps): ReactElement;
64
+ //# sourceMappingURL=ReferenceSectionBlock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReferenceSectionBlock.d.ts","sourceRoot":"","sources":["../../../src/pedagogy/ui/ReferenceSectionBlock.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,OAAO,CAAC;AAEzD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAGhE,gEAAgE;AAChE,MAAM,WAAW,YAAY;IAC3B,8CAA8C;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,oBAAoB,CAAC;CAChC;AAED,0CAA0C;AAC1C,MAAM,WAAW,gBAAgB;IAC/B,uDAAuD;IACvD,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,YAAY,EAAE,CAAC;IACrB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,gBAAgB,CAAC;IAC1B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,0BAA0B,GAChC,YAAY,CAkBd"}
@@ -0,0 +1,78 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { SyntaxTooltip } from "./SyntaxTooltip.js";
3
+ /**
4
+ * A titled block of reference rows.
5
+ *
6
+ * The rows are spans in a flex column rather than a table: a tooltip target is
7
+ * wrapped in a `<span>`, which a browser hoists straight out of a `<tbody>`,
8
+ * and a table also breaks across pages far worse than a column does.
9
+ * @param props - The section, and how wide its syntax column is.
10
+ * @returns The block, kept whole across a page break.
11
+ */
12
+ export function ReferenceSectionBlock(props) {
13
+ const { section, syntaxWidth = 150, className } = props;
14
+ return (_jsxs("section", { id: section.id, className: blockClassName(section, className), style: SECTION_STYLE, children: [_jsx("h4", { style: headingStyle(section.color), children: section.title }), section.intro !== undefined && (_jsx("p", { style: INTRO_STYLE, children: section.intro })), section.rows.map((row) => (_jsx(ReferenceRowLine, { row: row, width: syntaxWidth }, row.syntax)))] }));
15
+ }
16
+ function ReferenceRowLine(props) {
17
+ const { row, width } = props;
18
+ const interactive = row.tooltip !== undefined;
19
+ const line = (_jsxs("span", { style: interactive ? INTERACTIVE_ROW_STYLE : ROW_STYLE, children: [_jsx("span", { style: syntaxStyle(width, interactive), children: row.syntax }), _jsx("span", { style: DESCRIPTION_STYLE, children: row.description })] }));
20
+ if (row.tooltip === undefined)
21
+ return line;
22
+ return (_jsx(SyntaxTooltip, { content: row.tooltip, placement: "right", children: line }));
23
+ }
24
+ function blockClassName(section, className) {
25
+ const names = ['reference-section'];
26
+ if (section.noPrint === true)
27
+ names.push('no-print');
28
+ if (className !== undefined)
29
+ names.push(className);
30
+ return names.join(' ');
31
+ }
32
+ function headingStyle(color) {
33
+ return {
34
+ margin: '0 0 4px',
35
+ paddingBottom: 2,
36
+ fontSize: 13,
37
+ ...(color === undefined
38
+ ? {}
39
+ : { color, borderBottom: `2px solid ${color}` }),
40
+ };
41
+ }
42
+ function syntaxStyle(width, interactive) {
43
+ return {
44
+ flex: `0 0 ${typeof width === 'number' ? `${width}px` : width}`,
45
+ fontFamily: 'ui-monospace, SFMono-Regular, Menlo, Consolas, monospace',
46
+ fontSize: 12,
47
+ fontWeight: 600,
48
+ color: '#1c2127',
49
+ ...(interactive
50
+ ? { borderBottom: '1px dotted #5b6875', alignSelf: 'flex-start' }
51
+ : {}),
52
+ };
53
+ }
54
+ const SECTION_STYLE = {
55
+ display: 'flex',
56
+ flexDirection: 'column',
57
+ breakInside: 'avoid',
58
+ };
59
+ const INTRO_STYLE = {
60
+ margin: '0 0 4px',
61
+ color: '#5b6875',
62
+ fontSize: 12,
63
+ };
64
+ const ROW_STYLE = {
65
+ display: 'flex',
66
+ gap: 8,
67
+ padding: '3px 0',
68
+ borderTop: '1px solid #e5e7eb',
69
+ width: '100%',
70
+ };
71
+ const INTERACTIVE_ROW_STYLE = { ...ROW_STYLE, cursor: 'help' };
72
+ const DESCRIPTION_STYLE = {
73
+ flex: '1 1 auto',
74
+ fontSize: 12,
75
+ lineHeight: 1.4,
76
+ color: '#404854',
77
+ };
78
+ //# sourceMappingURL=ReferenceSectionBlock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReferenceSectionBlock.js","sourceRoot":"","sources":["../../../src/pedagogy/ui/ReferenceSectionBlock.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,94 @@
1
+ import type { Placement } from '@blueprintjs/core';
2
+ import type { ReactElement, ReactNode } from 'react';
3
+ /** The one worked example a documented construct carries. */
4
+ export interface SyntaxTooltipExample {
5
+ /** The construct in use: a pattern, a SMILES, a LaTeX fragment, a layer. */
6
+ code: string;
7
+ /**
8
+ * What it is shown working on, for a construct whose example takes an input.
9
+ * @default undefined — the example is about notation only
10
+ */
11
+ input?: string;
12
+ /**
13
+ * What the example demonstrates, in one line.
14
+ * @default undefined
15
+ */
16
+ note?: string;
17
+ }
18
+ /** Everything the rich tooltip says about one construct. */
19
+ export interface SyntaxTooltipContent {
20
+ /** The construct itself, shown in the highlighted chip. */
21
+ syntax: string;
22
+ /** Its name, in words: `Word boundary`, `Aromatic atom`, `Layer /c`. */
23
+ name: string;
24
+ /**
25
+ * Where it comes from, in small grey type: `RegExp.prototype.global`.
26
+ * @default undefined
27
+ */
28
+ tag?: string;
29
+ /** The one-line headline. */
30
+ summary: string;
31
+ /** The longer story, in a sentence or two. */
32
+ detail: string;
33
+ example: SyntaxTooltipExample;
34
+ }
35
+ export interface SyntaxTooltipProps {
36
+ /** What to explain. */
37
+ content: SyntaxTooltipContent;
38
+ /** What the student hovers: a cheatsheet row, a chip, a help icon. */
39
+ children: ReactNode;
40
+ /**
41
+ * Side the tooltip opens on. A cheatsheet row opens to its right, a chip in
42
+ * a toolbar below itself.
43
+ * @default 'bottom'
44
+ */
45
+ placement?: Placement;
46
+ /**
47
+ * Label of the example's code line.
48
+ * @default 'Example'
49
+ */
50
+ codeLabel?: string;
51
+ /**
52
+ * Label of the example's input line.
53
+ * @default 'Input'
54
+ */
55
+ inputLabel?: string;
56
+ /**
57
+ * Holds the tooltip open regardless of the pointer, for a page that pins one
58
+ * open on click and for showing the body on its own.
59
+ * @default undefined — the tooltip follows the pointer
60
+ */
61
+ isOpen?: boolean;
62
+ }
63
+ /**
64
+ * The one rich tooltip of a tool: cheatsheet rows, option chips and inline help
65
+ * icons all open this, so every documented construct is described at the same
66
+ * level of detail and adding a construct means adding the same five fields.
67
+ * @param props - The construct, and what opens it.
68
+ * @returns The hovered element, with its tooltip.
69
+ */
70
+ export declare function SyntaxTooltip(props: SyntaxTooltipProps): ReactElement;
71
+ export interface SyntaxTooltipBodyProps {
72
+ /** What to explain. */
73
+ content: SyntaxTooltipContent;
74
+ /**
75
+ * Label of the example's code line.
76
+ * @default 'Example'
77
+ */
78
+ codeLabel?: string;
79
+ /**
80
+ * Label of the example's input line.
81
+ * @default 'Input'
82
+ */
83
+ inputLabel?: string;
84
+ }
85
+ /**
86
+ * The body of the rich tooltip, on its own.
87
+ *
88
+ * A reference page that prints the same description under each construct shows
89
+ * this rather than restating the fields in a second layout.
90
+ * @param props - The construct, and how its example is labelled.
91
+ * @returns The body.
92
+ */
93
+ export declare function SyntaxTooltipBody(props: SyntaxTooltipBodyProps): ReactElement;
94
+ //# sourceMappingURL=SyntaxTooltip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SyntaxTooltip.d.ts","sourceRoot":"","sources":["../../../src/pedagogy/ui/SyntaxTooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,KAAK,EAAiB,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEpE,6DAA6D;AAC7D,MAAM,WAAW,oBAAoB;IACnC,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,4DAA4D;AAC5D,MAAM,WAAW,oBAAoB;IACnC,2DAA2D;IAC3D,MAAM,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,oBAAoB,CAAC;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,uBAAuB;IACvB,OAAO,EAAE,oBAAoB,CAAC;IAC9B,sEAAsE;IACtE,QAAQ,EAAE,SAAS,CAAC;IACpB;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,YAAY,CA0BrE;AAED,MAAM,WAAW,sBAAsB;IACrC,uBAAuB;IACvB,OAAO,EAAE,oBAAoB,CAAC;IAC9B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,YAAY,CA8B7E"}
@@ -0,0 +1,79 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Tooltip } from '@blueprintjs/core';
3
+ /**
4
+ * The one rich tooltip of a tool: cheatsheet rows, option chips and inline help
5
+ * icons all open this, so every documented construct is described at the same
6
+ * level of detail and adding a construct means adding the same five fields.
7
+ * @param props - The construct, and what opens it.
8
+ * @returns The hovered element, with its tooltip.
9
+ */
10
+ export function SyntaxTooltip(props) {
11
+ const { content, children, placement = 'bottom', codeLabel, inputLabel, isOpen, } = props;
12
+ return (_jsx(Tooltip, { content: _jsx(SyntaxTooltipBody, { content: content, codeLabel: codeLabel, inputLabel: inputLabel }), hoverOpenDelay: HOVER_OPEN_DELAY, placement: placement, isOpen: isOpen, children: children }));
13
+ }
14
+ /**
15
+ * The body of the rich tooltip, on its own.
16
+ *
17
+ * A reference page that prints the same description under each construct shows
18
+ * this rather than restating the fields in a second layout.
19
+ * @param props - The construct, and how its example is labelled.
20
+ * @returns The body.
21
+ */
22
+ export function SyntaxTooltipBody(props) {
23
+ const { content, codeLabel = 'Example', inputLabel = 'Input' } = props;
24
+ const { syntax, name, tag, summary, detail, example } = content;
25
+ return (_jsxs("div", { style: BODY_STYLE, children: [_jsxs("div", { style: HEADER_STYLE, children: [_jsx("code", { style: SYNTAX_STYLE, children: syntax }), _jsx("span", { style: NAME_STYLE, children: name }), tag !== undefined && _jsx("span", { style: TAG_STYLE, children: tag })] }), _jsx("div", { style: SUMMARY_STYLE, children: summary }), _jsx("div", { style: DETAIL_STYLE, children: detail }), _jsxs("div", { style: EXAMPLE_STYLE, children: [_jsxs("div", { style: ROW_STYLE, children: [_jsx("span", { style: LABEL_STYLE, children: codeLabel }), _jsx("code", { style: VALUE_STYLE, children: example.code })] }), example.input !== undefined && (_jsxs("div", { style: ROW_STYLE, children: [_jsx("span", { style: LABEL_STYLE, children: inputLabel }), _jsx("code", { style: VALUE_STYLE, children: example.input })] })), example.note !== undefined && (_jsx("div", { style: NOTE_STYLE, children: example.note }))] })] }));
26
+ }
27
+ /** Long enough that the pointer can cross a row without opening it. */
28
+ const HOVER_OPEN_DELAY = 150;
29
+ const MONOSPACE = 'ui-monospace, SFMono-Regular, Menlo, Consolas, monospace';
30
+ const BODY_STYLE = {
31
+ display: 'flex',
32
+ flexDirection: 'column',
33
+ gap: 6,
34
+ maxWidth: 360,
35
+ };
36
+ const HEADER_STYLE = {
37
+ display: 'flex',
38
+ alignItems: 'baseline',
39
+ flexWrap: 'wrap',
40
+ gap: 6,
41
+ };
42
+ const SYNTAX_STYLE = {
43
+ background: 'rgb(255 255 255 / 15%)',
44
+ borderRadius: 3,
45
+ color: '#ffffff',
46
+ fontFamily: MONOSPACE,
47
+ fontSize: 14,
48
+ fontWeight: 600,
49
+ padding: '1px 6px',
50
+ };
51
+ const NAME_STYLE = { fontWeight: 600, fontSize: 13 };
52
+ const TAG_STYLE = { color: '#abb3bf', fontSize: 11 };
53
+ const SUMMARY_STYLE = { fontSize: 12, lineHeight: 1.4 };
54
+ const DETAIL_STYLE = {
55
+ color: '#d3d8de',
56
+ fontSize: 12,
57
+ lineHeight: 1.45,
58
+ };
59
+ const EXAMPLE_STYLE = {
60
+ borderTop: '1px solid rgb(255 255 255 / 15%)',
61
+ display: 'flex',
62
+ flexDirection: 'column',
63
+ gap: 2,
64
+ paddingTop: 6,
65
+ };
66
+ const ROW_STYLE = { display: 'flex', gap: 6, fontSize: 12 };
67
+ const LABEL_STYLE = { color: '#abb3bf', flex: '0 0 68px' };
68
+ const VALUE_STYLE = {
69
+ color: '#f6f7f9',
70
+ fontFamily: MONOSPACE,
71
+ overflowWrap: 'anywhere',
72
+ };
73
+ const NOTE_STYLE = {
74
+ color: '#abb3bf',
75
+ fontSize: 12,
76
+ fontStyle: 'italic',
77
+ marginTop: 2,
78
+ };
79
+ //# sourceMappingURL=SyntaxTooltip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SyntaxTooltip.js","sourceRoot":"","sources":["../../../src/pedagogy/ui/SyntaxTooltip.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import type { ReactElement, ReactNode } from 'react';
2
+ import type { TestCaseResult } from '../core/validation.ts';
3
+ export interface TestCaseListProps<TCase extends TestCaseResult = TestCaseResult> {
4
+ /** The graded cases, in the order the validator returned them. */
5
+ results: readonly TCase[];
6
+ /**
7
+ * What names a case: the input it was run on, the atom it asked about. A
8
+ * tool that carries no such name lets the sentence speak for itself.
9
+ * @default undefined — the row shows only the reason
10
+ */
11
+ label?: (result: TCase, position: number) => ReactNode;
12
+ /**
13
+ * Whether the answer could not be graded at all — it does not compile, or
14
+ * there is nothing to mark yet. Every case is then drawn neutral rather than
15
+ * red, since none of them actually failed.
16
+ * @default false
17
+ */
18
+ pending?: boolean;
19
+ /**
20
+ * Class the list carries, so a site can reach it from its stylesheet.
21
+ * @default undefined
22
+ */
23
+ className?: string;
24
+ }
25
+ /**
26
+ * One row per graded case: whether it passes, and the sentence saying why not.
27
+ *
28
+ * The sentence is the validator's own — `match was "cat", expected "cats"` —
29
+ * and is never rewritten here: the explanation is the teaching, and a
30
+ * paraphrase would drop the value the student has to compare.
31
+ * @param props - The cases, and whether they could be graded at all.
32
+ * @returns The list, or nothing when there is no case to show.
33
+ */
34
+ export declare function TestCaseList<TCase extends TestCaseResult>(props: TestCaseListProps<TCase>): ReactElement | null;
35
+ //# sourceMappingURL=TestCaseList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TestCaseList.d.ts","sourceRoot":"","sources":["../../../src/pedagogy/ui/TestCaseList.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,WAAW,iBAAiB,CAChC,KAAK,SAAS,cAAc,GAAG,cAAc;IAE7C,kEAAkE;IAClE,OAAO,EAAE,SAAS,KAAK,EAAE,CAAC;IAC1B;;;;OAIG;IACH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,KAAK,SAAS,CAAC;IACvD;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,KAAK,SAAS,cAAc,EACvD,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAC9B,YAAY,GAAG,IAAI,CA8BrB"}
@@ -0,0 +1,63 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Icon } from '@blueprintjs/core';
3
+ /**
4
+ * One row per graded case: whether it passes, and the sentence saying why not.
5
+ *
6
+ * The sentence is the validator's own — `match was "cat", expected "cats"` —
7
+ * and is never rewritten here: the explanation is the teaching, and a
8
+ * paraphrase would drop the value the student has to compare.
9
+ * @param props - The cases, and whether they could be graded at all.
10
+ * @returns The list, or nothing when there is no case to show.
11
+ */
12
+ export function TestCaseList(props) {
13
+ const { results, label, pending = false, className } = props;
14
+ if (results.length === 0)
15
+ return null;
16
+ const rows = [];
17
+ for (let position = 0; position < results.length; position++) {
18
+ const result = results[position];
19
+ rows.push(_jsxs("li", { style: itemStyle(result.passed, pending), children: [_jsx(Icon, { icon: caseIcon(result.passed, pending), intent: caseIntent(result.passed, pending) }), _jsxs("span", { children: [label !== undefined && (_jsx("strong", { style: LABEL_STYLE, children: label(result, position) })), result.reason !== '' && (_jsx("span", { style: REASON_STYLE, children: result.reason }))] })] }, `case-${position}`));
20
+ }
21
+ return (_jsx("ul", { className: className, style: LIST_STYLE, children: rows }));
22
+ }
23
+ function caseIcon(passed, pending) {
24
+ if (passed)
25
+ return 'tick-circle';
26
+ return pending ? 'circle' : 'cross-circle';
27
+ }
28
+ function caseIntent(passed, pending) {
29
+ if (passed)
30
+ return 'success';
31
+ return pending ? 'none' : 'danger';
32
+ }
33
+ function itemStyle(passed, pending) {
34
+ const failed = !passed && !pending;
35
+ return {
36
+ display: 'flex',
37
+ alignItems: 'start',
38
+ gap: 8,
39
+ padding: '4px 8px',
40
+ borderRadius: 3,
41
+ borderLeft: `3px solid ${passed ? '#1c6e42' : failed ? '#cd4246' : '#c5cbd3'}`,
42
+ background: passed
43
+ ? 'rgb(236 253 245)'
44
+ : failed
45
+ ? 'rgb(254 243 242)'
46
+ : 'rgb(245 248 250)',
47
+ };
48
+ }
49
+ const LIST_STYLE = {
50
+ display: 'flex',
51
+ flexDirection: 'column',
52
+ gap: 4,
53
+ listStyle: 'none',
54
+ margin: 0,
55
+ padding: 0,
56
+ };
57
+ const LABEL_STYLE = { marginRight: 6 };
58
+ const REASON_STYLE = {
59
+ display: 'block',
60
+ color: 'rgb(65 75 90)',
61
+ lineHeight: 1.4,
62
+ };
63
+ //# sourceMappingURL=TestCaseList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TestCaseList.js","sourceRoot":"","sources":["../../../src/pedagogy/ui/TestCaseList.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AA8BzC;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAC1B,KAA+B;IAE/B,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAC7D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEtC,MAAM,IAAI,GAAgB,EAAE,CAAC;IAC7B,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC;QAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAU,CAAC;QAC1C,IAAI,CAAC,IAAI,CACP,cAA6B,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,aACnE,KAAC,IAAI,IACH,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC1C,EACF,2BACG,KAAK,KAAK,SAAS,IAAI,CACtB,iBAAQ,KAAK,EAAE,WAAW,YAAG,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAU,CAC/D,EACA,MAAM,CAAC,MAAM,KAAK,EAAE,IAAI,CACvB,eAAM,KAAK,EAAE,YAAY,YAAG,MAAM,CAAC,MAAM,GAAQ,CAClD,IACI,KAZA,QAAQ,QAAQ,EAAE,CAatB,CACN,CAAC;IACJ,CAAC;IAED,OAAO,CACL,aAAI,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,YACxC,IAAI,GACF,CACN,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CACf,MAAe,EACf,OAAgB;IAEhB,IAAI,MAAM;QAAE,OAAO,aAAa,CAAC;IACjC,OAAO,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC;AAC7C,CAAC;AAED,SAAS,UAAU,CACjB,MAAe,EACf,OAAgB;IAEhB,IAAI,MAAM;QAAE,OAAO,SAAS,CAAC;IAC7B,OAAO,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;AACrC,CAAC;AAED,SAAS,SAAS,CAAC,MAAe,EAAE,OAAgB;IAClD,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC;IACnC,OAAO;QACL,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,OAAO;QACnB,GAAG,EAAE,CAAC;QACN,OAAO,EAAE,SAAS;QAClB,YAAY,EAAE,CAAC;QACf,UAAU,EAAE,aAAa,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE;QAC9E,UAAU,EAAE,MAAM;YAChB,CAAC,CAAC,kBAAkB;YACpB,CAAC,CAAC,MAAM;gBACN,CAAC,CAAC,kBAAkB;gBACpB,CAAC,CAAC,kBAAkB;KACzB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,GAAkB;IAChC,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,QAAQ;IACvB,GAAG,EAAE,CAAC;IACN,SAAS,EAAE,MAAM;IACjB,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC;CACX,CAAC;AAEF,MAAM,WAAW,GAAkB,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;AAEtD,MAAM,YAAY,GAAkB;IAClC,OAAO,EAAE,OAAO;IAChB,KAAK,EAAE,eAAe;IACtB,UAAU,EAAE,GAAG;CAChB,CAAC"}
@@ -0,0 +1,42 @@
1
+ import type { ReactElement, ReactNode } from 'react';
2
+ import type { ExerciseLevel, TutorialStep } from '../core/types.ts';
3
+ export interface TutorialStepStripProps {
4
+ /** The whole tour, in teaching order. */
5
+ steps: readonly TutorialStep[];
6
+ /**
7
+ * Which step is open, as its position in `steps`. A position outside the
8
+ * tour is read as one of its ends, so a hand-edited link still opens.
9
+ */
10
+ activeIndex: number;
11
+ /** Called with the position of the step to open. */
12
+ onSelect: (index: number) => void;
13
+ /**
14
+ * What each strip is called — `Basics`, `π bonds, planarity, conjugation`.
15
+ * @default undefined — the level names its own strip
16
+ */
17
+ levelLabels?: Partial<Record<ExerciseLevel, string>>;
18
+ /**
19
+ * Whether Previous and Next sit under the strips. Both exist on purpose: the
20
+ * strips show the shape of the course and let a lecturer jump into it, the
21
+ * pager is how a student actually walks through it.
22
+ * @default true
23
+ */
24
+ pager?: boolean;
25
+ /**
26
+ * A word after the pager, for a tool whose steps also answer the keyboard.
27
+ * @default undefined
28
+ */
29
+ pagerHint?: ReactNode;
30
+ /**
31
+ * Class the strips carry, so a site can reach them from its stylesheet.
32
+ * @default undefined
33
+ */
34
+ className?: string;
35
+ }
36
+ /**
37
+ * The numbered steps of the tour, one coloured strip per level, plus a pager.
38
+ * @param props - The tour, the open step, and how to move.
39
+ * @returns The strips and the pager.
40
+ */
41
+ export declare function TutorialStepStrip(props: TutorialStepStripProps): ReactElement;
42
+ //# sourceMappingURL=TutorialStepStrip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TutorialStepStrip.d.ts","sourceRoot":"","sources":["../../../src/pedagogy/ui/TutorialStepStrip.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEpE,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAMpE,MAAM,WAAW,sBAAsB;IACrC,yCAAyC;IACzC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;IAC/B;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;IACrD;;;;;OAKG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,YAAY,CA6D7E"}