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,122 @@
1
+ /**
2
+ * A read-only depiction of a structure, whichever notation the caller has.
3
+ *
4
+ * Which notation is drawn, and what is shown when there is nothing to draw, is
5
+ * decided here; the drawing itself sits behind `React.lazy`, so a page that
6
+ * never renders a structure never downloads react-ocl and openchemlib for one.
7
+ * That is also what lets `react-cheminfo/structure` be imported at all when
8
+ * those optional peers are not installed.
9
+ */
10
+ import type { ReactElement, ReactNode } from 'react';
11
+ /** What is written on a depiction besides the atoms and the bonds. */
12
+ export interface StructureLabels {
13
+ /**
14
+ * Write the index of every atom next to it.
15
+ * @default false
16
+ */
17
+ atoms?: boolean;
18
+ /**
19
+ * Write the index of every bond next to it.
20
+ * @default false
21
+ */
22
+ bonds?: boolean;
23
+ /**
24
+ * Write the reaction mapping number of every mapped atom.
25
+ * @default false
26
+ */
27
+ mapping?: boolean;
28
+ /**
29
+ * A caption drawn inside the picture, under the structure.
30
+ * @default undefined
31
+ */
32
+ caption?: string;
33
+ }
34
+ export interface StructureProps {
35
+ /**
36
+ * A canonical openchemlib idCode, coordinates included or not. The most
37
+ * exact notation, so it is drawn in preference to the others.
38
+ * @default undefined
39
+ */
40
+ idCode?: string;
41
+ /**
42
+ * Encoded 2D coordinates, when they did not travel with the idCode.
43
+ * @default undefined
44
+ */
45
+ coordinates?: string;
46
+ /**
47
+ * A molfile, V2000 or V3000, drawn when there is no usable idCode.
48
+ * @default undefined
49
+ */
50
+ molfile?: string;
51
+ /**
52
+ * A SMILES, drawn when there is neither an idCode nor a molfile. The layout
53
+ * is invented, so two depictions of the same molecule may differ.
54
+ * @default undefined
55
+ */
56
+ smiles?: string;
57
+ /**
58
+ * Width of the picture, in pixels.
59
+ * @default 200
60
+ */
61
+ width?: number;
62
+ /**
63
+ * Height of the picture, in pixels.
64
+ * @default 140
65
+ */
66
+ height?: number;
67
+ /**
68
+ * What is written on the picture besides the structure itself.
69
+ * @default {}
70
+ */
71
+ labels?: StructureLabels;
72
+ /**
73
+ * Crop the picture to the atoms rather than centring them in the box.
74
+ * @default true
75
+ */
76
+ autoCrop?: boolean;
77
+ /**
78
+ * Blank space kept around the structure when it is cropped, in pixels.
79
+ * @default 4
80
+ */
81
+ autoCropMargin?: number;
82
+ /**
83
+ * Atoms to paint, which is how a substructure match is shown.
84
+ * @default undefined
85
+ */
86
+ atomHighlight?: number[];
87
+ /**
88
+ * The colour the highlighted atoms are painted.
89
+ * @default '#a5d8ff'
90
+ */
91
+ atomHighlightColor?: string;
92
+ /**
93
+ * Bonds to paint.
94
+ * @default undefined
95
+ */
96
+ bondHighlight?: number[];
97
+ /**
98
+ * The colour the highlighted bonds are painted.
99
+ * @default '#ffd8a8'
100
+ */
101
+ bondHighlightColor?: string;
102
+ /**
103
+ * What is shown when there is no structure, or when the one supplied cannot
104
+ * be read. An em dash rather than a red box: a missing structure is a row of
105
+ * a table far more often than it is a bug worth shouting about.
106
+ * @default '—'
107
+ */
108
+ fallback?: ReactNode;
109
+ }
110
+ /**
111
+ * Draw a structure, from whichever notation the caller has.
112
+ *
113
+ * Nothing here throws and nothing renders a broken box: a blank value, a
114
+ * molfile with an empty atom block and a SMILES with a typo in it all come out
115
+ * as the same quiet placeholder, sized like the picture that would have been
116
+ * drawn so a list of structures keeps its rhythm. The box the renderers load
117
+ * into is that same placeholder, so nothing moves once they arrive.
118
+ * @param props - The structure, its size and what is written on it.
119
+ * @returns The picture, or the placeholder.
120
+ */
121
+ export declare function Structure(props: StructureProps): ReactElement;
122
+ //# sourceMappingURL=Structure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Structure.d.ts","sourceRoot":"","sources":["../../../src/structure/ui/Structure.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAYrD,sEAAsE;AACtE,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,YAAY,CAgD7D"}
@@ -0,0 +1,28 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Suspense, lazy } from 'react';
3
+ import { structureSource } from "../core/structureSource.js";
4
+ import { StructurePlaceholder } from "./StructurePlaceholder.js";
5
+ const StructureSvg = lazy(async () => {
6
+ const module = await import("./StructureSvg.js");
7
+ return { default: module.StructureSvg };
8
+ });
9
+ /**
10
+ * Draw a structure, from whichever notation the caller has.
11
+ *
12
+ * Nothing here throws and nothing renders a broken box: a blank value, a
13
+ * molfile with an empty atom block and a SMILES with a typo in it all come out
14
+ * as the same quiet placeholder, sized like the picture that would have been
15
+ * drawn so a list of structures keeps its rhythm. The box the renderers load
16
+ * into is that same placeholder, so nothing moves once they arrive.
17
+ * @param props - The structure, its size and what is written on it.
18
+ * @returns The picture, or the placeholder.
19
+ */
20
+ export function Structure(props) {
21
+ const { idCode, coordinates, molfile, smiles, width = 200, height = 140, labels = {}, autoCrop = true, autoCropMargin = 4, atomHighlight, atomHighlightColor = '#a5d8ff', bondHighlight, bondHighlightColor = '#ffd8a8', fallback = '—', } = props;
22
+ const source = structureSource({ idCode, coordinates, molfile, smiles });
23
+ if (source.kind === 'empty') {
24
+ return (_jsx(StructurePlaceholder, { width: width, height: height, children: fallback }));
25
+ }
26
+ return (_jsx(Suspense, { fallback: _jsx(StructurePlaceholder, { width: width, height: height }), children: _jsx(StructureSvg, { source: source, width: width, height: height, autoCrop: autoCrop, autoCropMargin: autoCropMargin, atomHighlight: atomHighlight, atomHighlightColor: atomHighlightColor, bondHighlight: bondHighlight, bondHighlightColor: bondHighlightColor, showAtomNumber: labels.atoms ?? false, showBondNumber: labels.bonds ?? false, showMapping: labels.mapping ?? false, label: labels.caption, fallback: fallback }) }));
27
+ }
28
+ //# sourceMappingURL=Structure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Structure.js","sourceRoot":"","sources":["../../../src/structure/ui/Structure.tsx"],"names":[],"mappings":";AAWA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA4B,CAAC;AAElE,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE;IACnC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,mBAAoB,CAAC,CAAC;IAClD,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC;AAC1C,CAAC,CAAC,CAAC;AAuGH;;;;;;;;;;GAUG;AACH,MAAM,UAAU,SAAS,CAAC,KAAqB;IAC7C,MAAM,EACJ,MAAM,EACN,WAAW,EACX,OAAO,EACP,MAAM,EACN,KAAK,GAAG,GAAG,EACX,MAAM,GAAG,GAAG,EACZ,MAAM,GAAG,EAAE,EACX,QAAQ,GAAG,IAAI,EACf,cAAc,GAAG,CAAC,EAClB,aAAa,EACb,kBAAkB,GAAG,SAAS,EAC9B,aAAa,EACb,kBAAkB,GAAG,SAAS,EAC9B,QAAQ,GAAG,GAAG,GACf,GAAG,KAAK,CAAC;IAEV,MAAM,MAAM,GAAG,eAAe,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAEzE,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC5B,OAAO,CACL,KAAC,oBAAoB,IAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,YAC/C,QAAQ,GACY,CACxB,CAAC;IACJ,CAAC;IAED,OAAO,CACL,KAAC,QAAQ,IAAC,QAAQ,EAAE,KAAC,oBAAoB,IAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAI,YACxE,KAAC,YAAY,IACX,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,aAAa,EAC5B,kBAAkB,EAAE,kBAAkB,EACtC,aAAa,EAAE,aAAa,EAC5B,kBAAkB,EAAE,kBAAkB,EACtC,cAAc,EAAE,MAAM,CAAC,KAAK,IAAI,KAAK,EACrC,cAAc,EAAE,MAAM,CAAC,KAAK,IAAI,KAAK,EACrC,WAAW,EAAE,MAAM,CAAC,OAAO,IAAI,KAAK,EACpC,KAAK,EAAE,MAAM,CAAC,OAAO,EACrB,QAAQ,EAAE,QAAQ,GAClB,GACO,CACZ,CAAC;AACJ,CAAC"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * The canvas structure editor and the box it is drawn in.
3
+ *
4
+ * The canvas itself sits behind `React.lazy`: it is the half that imports
5
+ * react-ocl, so a page that never opens an editor never downloads openchemlib,
6
+ * and `react-cheminfo/structure` stays importable when those optional peers
7
+ * are absent.
8
+ */
9
+ import type { CSSProperties, ReactElement } from 'react';
10
+ import type { CanvasEditorInputFormat } from 'react-ocl';
11
+ import type { StructureEditorChange, StructureEditorMode } from './EditorCanvas.tsx';
12
+ export interface StructureEditorProps {
13
+ /**
14
+ * Called after every edit, once the drawing has been still for `debounce`
15
+ * milliseconds, with every notation read out of the editor.
16
+ */
17
+ onChange: (change: StructureEditorChange) => void;
18
+ /**
19
+ * Draw a query fragment rather than a whole structure, which is what a
20
+ * substructure filter needs.
21
+ * @default false
22
+ */
23
+ fragment?: boolean;
24
+ /**
25
+ * How `value` is written.
26
+ * @default 'idcode'
27
+ */
28
+ inputFormat?: CanvasEditorInputFormat;
29
+ /**
30
+ * What the canvas holds. Read once, when the editor appears and again on
31
+ * every change of `revision`: the editor is uncontrolled, so feeding the
32
+ * drawing back into it would replace the structure and reset every
33
+ * coordinate under the pen.
34
+ * @default ''
35
+ */
36
+ value?: string;
37
+ /**
38
+ * Bumped by the caller to load `value` into the canvas again, which is what
39
+ * an example, a share link or a Clear button does. Changing it discards
40
+ * whatever was being drawn.
41
+ * @default 0
42
+ */
43
+ revision?: number;
44
+ /**
45
+ * How long the drawing has to be still before `onChange` is called, in
46
+ * milliseconds. Long enough that drawing a ring does not publish six
47
+ * structures; `0` reports every stroke.
48
+ * @default 300
49
+ */
50
+ debounce?: number;
51
+ /**
52
+ * Smallest height of the drawing area, in pixels. Raised to whatever the
53
+ * toolbar needs, which is usually more.
54
+ * @default 320
55
+ */
56
+ minHeight?: number;
57
+ /**
58
+ * Whether the editor draws one structure or a reaction. A reaction canvas
59
+ * has its own toolbar and its own arrow.
60
+ * @default 'molecule'
61
+ */
62
+ mode?: StructureEditorMode;
63
+ /** Class the container carries, so a site can reach it from its stylesheet. */
64
+ className?: string;
65
+ /** Extra style for the container, merged over the packaged one. */
66
+ style?: CSSProperties;
67
+ }
68
+ /**
69
+ * The canvas structure editor, sized to fill its container and never to hide
70
+ * part of its toolbar.
71
+ * @param props - What to draw, when to reload it, and where to send it.
72
+ * @returns The editor.
73
+ */
74
+ export declare function StructureEditor(props: StructureEditorProps): ReactElement;
75
+ //# sourceMappingURL=StructureEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StructureEditor.d.ts","sourceRoot":"","sources":["../../../src/structure/ui/StructureEditor.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAEzD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAEzD,OAAO,KAAK,EACV,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,oBAAoB,CAAC;AAQ5B,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,QAAQ,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAClD;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,WAAW,CAAC,EAAE,uBAAuB,CAAC;IACtC;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAC3B,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,YAAY,CAmCzE"}
@@ -0,0 +1,83 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Suspense, lazy, useCallback, useEffect, useRef } from 'react';
3
+ import { useToolbarFloor } from "./useToolbarFloor.js";
4
+ const EditorCanvas = lazy(async () => {
5
+ const module = await import("./EditorCanvas.js");
6
+ return { default: module.EditorCanvas };
7
+ });
8
+ /**
9
+ * The canvas structure editor, sized to fill its container and never to hide
10
+ * part of its toolbar.
11
+ * @param props - What to draw, when to reload it, and where to send it.
12
+ * @returns The editor.
13
+ */
14
+ export function StructureEditor(props) {
15
+ const { onChange, fragment = false, inputFormat = 'idcode', value = '', revision = 0, debounce = 300, minHeight = 320, mode = 'molecule', className, style, } = props;
16
+ const containerRef = useToolbarFloor({ minHeight, revision });
17
+ const handleChange = useDebounced(onChange, debounce, revision);
18
+ return (_jsx("div", { ref: containerRef, className: className, style: { ...ROOT_STYLE, minHeight, ...style }, children: _jsx(Suspense, { fallback: _jsx("div", { style: LOADING_STYLE, children: "Loading the editor\u2026" }), children: _jsx(EditorCanvas, { onChange: handleChange, fragment: fragment, inputFormat: inputFormat, value: value, mode: mode }, revision) }) }));
19
+ }
20
+ /**
21
+ * Report the last edit of a burst rather than every one of them.
22
+ *
23
+ * The editor's own event is read out before the wait starts, so what arrives
24
+ * late is a plain object rather than a handle on an editor that has moved on.
25
+ * @param onChange - What the caller wants told.
26
+ * @param delay - How long the drawing has to be still, in milliseconds.
27
+ * @param resetKey - Dropped edits: a burst still waiting when the caller
28
+ * replaces the structure describes a canvas that no longer exists.
29
+ * @returns The handler to give the canvas.
30
+ */
31
+ function useDebounced(onChange, delay, resetKey) {
32
+ const timerRef = useRef(null);
33
+ const onChangeRef = useRef(onChange);
34
+ useEffect(() => {
35
+ onChangeRef.current = onChange;
36
+ });
37
+ useEffect(() => {
38
+ return () => {
39
+ if (timerRef.current !== null) {
40
+ clearTimeout(timerRef.current);
41
+ timerRef.current = null;
42
+ }
43
+ };
44
+ }, [resetKey]);
45
+ return useCallback((change) => {
46
+ if (timerRef.current !== null)
47
+ clearTimeout(timerRef.current);
48
+ if (delay <= 0) {
49
+ onChangeRef.current(change);
50
+ return;
51
+ }
52
+ timerRef.current = setTimeout(() => {
53
+ timerRef.current = null;
54
+ onChangeRef.current(change);
55
+ }, delay);
56
+ }, [delay]);
57
+ }
58
+ /**
59
+ * The canvas is positioned out of the height computation, so the container's
60
+ * own height is what the measured toolbar floor writes on it. The `minHeight`
61
+ * prop is applied on top of this at first render: without a height before the
62
+ * toolbar has been measured, the editor is built at zero size and never paints
63
+ * the structure it was given.
64
+ */
65
+ const ROOT_STYLE = {
66
+ position: 'relative',
67
+ overflow: 'hidden',
68
+ boxSizing: 'border-box',
69
+ border: '1px solid #d3d8de',
70
+ borderRadius: 6,
71
+ background: '#fff',
72
+ };
73
+ /** The box the canvas will fill, so its arrival moves nothing. */
74
+ const LOADING_STYLE = {
75
+ position: 'absolute',
76
+ inset: 0,
77
+ display: 'flex',
78
+ alignItems: 'center',
79
+ justifyContent: 'center',
80
+ color: '#8a96a3',
81
+ fontSize: 13,
82
+ };
83
+ //# sourceMappingURL=StructureEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StructureEditor.js","sourceRoot":"","sources":["../../../src/structure/ui/StructureEditor.tsx"],"names":[],"mappings":";AAUA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAOvE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE;IACnC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,mBAAoB,CAAC,CAAC;IAClD,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC;AAC1C,CAAC,CAAC,CAAC;AA2DH;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,KAA2B;IACzD,MAAM,EACJ,QAAQ,EACR,QAAQ,GAAG,KAAK,EAChB,WAAW,GAAG,QAAQ,EACtB,KAAK,GAAG,EAAE,EACV,QAAQ,GAAG,CAAC,EACZ,QAAQ,GAAG,GAAG,EACd,SAAS,GAAG,GAAG,EACf,IAAI,GAAG,UAAU,EACjB,SAAS,EACT,KAAK,GACN,GAAG,KAAK,CAAC;IAEV,MAAM,YAAY,GAAG,eAAe,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAG,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAEhE,OAAO,CACL,cACE,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,EAAE,GAAG,UAAU,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,YAE7C,KAAC,QAAQ,IAAC,QAAQ,EAAE,cAAK,KAAK,EAAE,aAAa,yCAA2B,YACtE,KAAC,YAAY,IAEX,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,IAAI,IALL,QAAQ,CAMb,GACO,GACP,CACP,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,YAAY,CACnB,QAAiD,EACjD,KAAa,EACb,QAAgB;IAEhB,MAAM,QAAQ,GAAG,MAAM,CAAuC,IAAI,CAAC,CAAC;IACpE,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrC,SAAS,CAAC,GAAG,EAAE;QACb,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IACjC,CAAC,CAAC,CAAC;IACH,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,GAAG,EAAE;YACV,IAAI,QAAQ,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;gBAC9B,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAC/B,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;YAC1B,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,OAAO,WAAW,CAChB,CAAC,MAA6B,EAAE,EAAE;QAChC,IAAI,QAAQ,CAAC,OAAO,KAAK,IAAI;YAAE,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC9D,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC5B,OAAO;QACT,CAAC;QACD,QAAQ,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YACjC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;YACxB,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC,EAAE,KAAK,CAAC,CAAC;IACZ,CAAC,EACD,CAAC,KAAK,CAAC,CACR,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,GAAkB;IAChC,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,QAAQ;IAClB,SAAS,EAAE,YAAY;IACvB,MAAM,EAAE,mBAAmB;IAC3B,YAAY,EAAE,CAAC;IACf,UAAU,EAAE,MAAM;CACnB,CAAC;AAEF,kEAAkE;AAClE,MAAM,aAAa,GAAkB;IACnC,QAAQ,EAAE,UAAU;IACpB,KAAK,EAAE,CAAC;IACR,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,QAAQ;IACpB,cAAc,EAAE,QAAQ;IACxB,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,EAAE;CACb,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * The box a depiction leaves behind when there is no picture in it — nothing
3
+ * to draw, a notation that cannot be read, or the moment before the renderers
4
+ * have been downloaded.
5
+ *
6
+ * It is kept apart from the renderers on purpose: it pulls nothing in, so both
7
+ * sides of the `React.lazy` boundary in `Structure` can use it.
8
+ */
9
+ import type { ReactElement, ReactNode } from 'react';
10
+ /** Props of {@link StructurePlaceholder}. */
11
+ export interface StructurePlaceholderProps {
12
+ /** Width of the box, in pixels: the width the picture would have had. */
13
+ width: number;
14
+ /** Height of the box, in pixels. */
15
+ height: number;
16
+ /**
17
+ * What is written in the middle of the box.
18
+ * @default undefined
19
+ */
20
+ children?: ReactNode;
21
+ }
22
+ /**
23
+ * A box the size of the picture that is not there, holding whatever the caller
24
+ * wants said instead.
25
+ * @param props - See {@link StructurePlaceholderProps}.
26
+ * @returns The placeholder.
27
+ */
28
+ export declare function StructurePlaceholder(props: StructurePlaceholderProps): ReactElement;
29
+ //# sourceMappingURL=StructurePlaceholder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StructurePlaceholder.d.ts","sourceRoot":"","sources":["../../../src/structure/ui/StructurePlaceholder.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAiB,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEpE,6CAA6C;AAC7C,MAAM,WAAW,yBAAyB;IACxC,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,yBAAyB,GAC/B,YAAY,CAOd"}
@@ -0,0 +1,19 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * A box the size of the picture that is not there, holding whatever the caller
4
+ * wants said instead.
5
+ * @param props - See {@link StructurePlaceholderProps}.
6
+ * @returns The placeholder.
7
+ */
8
+ export function StructurePlaceholder(props) {
9
+ const { width, height, children } = props;
10
+ return (_jsx("span", { style: { ...PLACEHOLDER_STYLE, width, height }, "aria-hidden": "true", children: children }));
11
+ }
12
+ const PLACEHOLDER_STYLE = {
13
+ display: 'inline-flex',
14
+ alignItems: 'center',
15
+ justifyContent: 'center',
16
+ color: '#8a96a3',
17
+ fontSize: '0.75rem',
18
+ };
19
+ //# sourceMappingURL=StructurePlaceholder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StructurePlaceholder.js","sourceRoot":"","sources":["../../../src/structure/ui/StructurePlaceholder.tsx"],"names":[],"mappings":";AAwBA;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,KAAgC;IAEhC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAC1C,OAAO,CACL,eAAM,KAAK,EAAE,EAAE,GAAG,iBAAiB,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAc,MAAM,YACrE,QAAQ,GACJ,CACR,CAAC;AACJ,CAAC;AAED,MAAM,iBAAiB,GAAkB;IACvC,OAAO,EAAE,aAAa;IACtB,UAAU,EAAE,QAAQ;IACpB,cAAc,EAAE,QAAQ;IACxB,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,SAAS;CACpB,CAAC"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * The react-ocl depiction of a structure whose notation has already been
3
+ * picked.
4
+ *
5
+ * `Structure` holds it behind `React.lazy`, and the barrel deliberately does
6
+ * not export it: this is the file that value-imports react-ocl, so
7
+ * anything able to reach it statically drags openchemlib into every bundle,
8
+ * including the ones that only ever wanted the Tools menu.
9
+ */
10
+ import type { ReactElement, ReactNode } from 'react';
11
+ import type { StructureSource } from '../core/structureSource.ts';
12
+ /** Props of {@link StructureSvg}. */
13
+ export interface StructureSvgProps {
14
+ /** The notation to draw, as `structureSource` picked it. */
15
+ source: StructureSource;
16
+ /** Width of the picture, in pixels. */
17
+ width: number;
18
+ /** Height of the picture, in pixels. */
19
+ height: number;
20
+ /** Crop the picture to the atoms rather than centring them in the box. */
21
+ autoCrop: boolean;
22
+ /** Blank space kept around the structure when it is cropped, in pixels. */
23
+ autoCropMargin: number;
24
+ /**
25
+ * Atoms to paint, which is how a substructure match is shown.
26
+ * @default undefined
27
+ */
28
+ atomHighlight?: number[];
29
+ /** The colour the highlighted atoms are painted. */
30
+ atomHighlightColor: string;
31
+ /**
32
+ * Bonds to paint.
33
+ * @default undefined
34
+ */
35
+ bondHighlight?: number[];
36
+ /** The colour the highlighted bonds are painted. */
37
+ bondHighlightColor: string;
38
+ /** Write the index of every atom next to it. */
39
+ showAtomNumber: boolean;
40
+ /** Write the index of every bond next to it. */
41
+ showBondNumber: boolean;
42
+ /** Write the reaction mapping number of every mapped atom. */
43
+ showMapping: boolean;
44
+ /**
45
+ * A caption drawn inside the picture, under the structure.
46
+ * @default undefined
47
+ */
48
+ label?: string;
49
+ /** What is shown in place of a structure react-ocl refuses to read. */
50
+ fallback: ReactNode;
51
+ }
52
+ /**
53
+ * Draw the picture with the renderer the notation calls for.
54
+ * @param props - See {@link StructureSvgProps}.
55
+ * @returns The svg, or the placeholder when the notation cannot be read.
56
+ */
57
+ export declare function StructureSvg(props: StructureSvgProps): ReactElement;
58
+ //# sourceMappingURL=StructureSvg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StructureSvg.d.ts","sourceRoot":"","sources":["../../../src/structure/ui/StructureSvg.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAiB,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AASpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAIlE,qCAAqC;AACrC,MAAM,WAAW,iBAAiB;IAChC,4DAA4D;IAC5D,MAAM,EAAE,eAAe,CAAC;IACxB,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,QAAQ,EAAE,OAAO,CAAC;IAClB,2EAA2E;IAC3E,cAAc,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,oDAAoD;IACpD,kBAAkB,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,oDAAoD;IACpD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gDAAgD;IAChD,cAAc,EAAE,OAAO,CAAC;IACxB,gDAAgD;IAChD,cAAc,EAAE,OAAO,CAAC;IACxB,8DAA8D;IAC9D,WAAW,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,YAAY,CAsBnE"}
@@ -0,0 +1,33 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useMemo } from 'react';
3
+ import { IdcodeSvgRenderer, MolfileSvgRenderer, SmilesSvgRenderer, } from 'react-ocl';
4
+ import { StructurePlaceholder } from "./StructurePlaceholder.js";
5
+ /**
6
+ * Draw the picture with the renderer the notation calls for.
7
+ * @param props - See {@link StructureSvgProps}.
8
+ * @returns The svg, or the placeholder when the notation cannot be read.
9
+ */
10
+ export function StructureSvg(props) {
11
+ const { source, fallback, ...rest } = props;
12
+ const ErrorComponent = useMemo(() => createFallbackRenderer(fallback), [fallback]);
13
+ const shared = { ...rest, ErrorComponent };
14
+ if (source.kind === 'idcode') {
15
+ return (_jsx(IdcodeSvgRenderer, { idcode: source.value, coordinates: source.coordinates, ...shared }));
16
+ }
17
+ if (source.kind === 'molfile') {
18
+ return _jsx(MolfileSvgRenderer, { molfile: source.value, ...shared });
19
+ }
20
+ return _jsx(SmilesSvgRenderer, { smiles: source.value, ...shared });
21
+ }
22
+ /**
23
+ * Build the renderer react-ocl falls back to, so a structure it refuses looks
24
+ * like one that was never supplied rather than like an error.
25
+ * @param fallback - What the caller wants shown instead of the structure.
26
+ * @returns The component react-ocl renders in place of the picture.
27
+ */
28
+ function createFallbackRenderer(fallback) {
29
+ return function StructureFallback(props) {
30
+ return (_jsx(StructurePlaceholder, { width: props.width, height: props.height, children: fallback }));
31
+ };
32
+ }
33
+ //# sourceMappingURL=StructureSvg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StructureSvg.js","sourceRoot":"","sources":["../../../src/structure/ui/StructureSvg.tsx"],"names":[],"mappings":";AAWA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AAInB,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA4B,CAAC;AA2ClE;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IAE5C,MAAM,cAAc,GAAG,OAAO,CAC5B,GAAG,EAAE,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EACtC,CAAC,QAAQ,CAAC,CACX,CAAC;IACF,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,EAAE,cAAc,EAAE,CAAC;IAE3C,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,CACL,KAAC,iBAAiB,IAChB,MAAM,EAAE,MAAM,CAAC,KAAK,EACpB,WAAW,EAAE,MAAM,CAAC,WAAW,KAC3B,MAAM,GACV,CACH,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,KAAC,kBAAkB,IAAC,OAAO,EAAE,MAAM,CAAC,KAAK,KAAM,MAAM,GAAI,CAAC;IACnE,CAAC;IACD,OAAO,KAAC,iBAAiB,IAAC,MAAM,EAAE,MAAM,CAAC,KAAK,KAAM,MAAM,GAAI,CAAC;AACjE,CAAC;AAED;;;;;GAKG;AACH,SAAS,sBAAsB,CAC7B,QAAmB;IAEnB,OAAO,SAAS,iBAAiB,CAAC,KAA0B;QAC1D,OAAO,CACL,KAAC,oBAAoB,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,YAC3D,QAAQ,GACY,CACxB,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * What a site imports to show or to draw a structure.
3
+ *
4
+ * **Nothing exported here may pull react-ocl or openchemlib in statically.**
5
+ * `StructureSvg` and `EditorCanvas` are deliberately absent: re-exporting
6
+ * either would make react-ocl reachable from this barrel, the `React.lazy`
7
+ * boundaries inside `Structure` and `StructureEditor` would be defeated, and
8
+ * `react-cheminfo/structure` would stop being importable at all when those
9
+ * optional peers are not installed — which is what a site wanting only the
10
+ * Tools menu does. Type-only re-exports are erased and so are safe.
11
+ */
12
+ export type { StructureEditorChange, StructureEditorMode, } from './EditorCanvas.tsx';
13
+ export type { StructureLabels, StructureProps } from './Structure.tsx';
14
+ export { Structure } from './Structure.tsx';
15
+ export type { StructureEditorProps } from './StructureEditor.tsx';
16
+ export { StructureEditor } from './StructureEditor.tsx';
17
+ export type { ToolbarFloorOptions } from './useToolbarFloor.ts';
18
+ export { useToolbarFloor } from './useToolbarFloor.ts';
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/structure/ui/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,YAAY,EACV,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,YAAY,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * What a site imports to show or to draw a structure.
3
+ *
4
+ * **Nothing exported here may pull react-ocl or openchemlib in statically.**
5
+ * `StructureSvg` and `EditorCanvas` are deliberately absent: re-exporting
6
+ * either would make react-ocl reachable from this barrel, the `React.lazy`
7
+ * boundaries inside `Structure` and `StructureEditor` would be defeated, and
8
+ * `react-cheminfo/structure` would stop being importable at all when those
9
+ * optional peers are not installed — which is what a site wanting only the
10
+ * Tools menu does. Type-only re-exports are erased and so are safe.
11
+ */
12
+ export { Structure } from "./Structure.js";
13
+ export { StructureEditor } from "./StructureEditor.js";
14
+ export { useToolbarFloor } from "./useToolbarFloor.js";
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/structure/ui/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAiB,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAuB,CAAC;AAExD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,26 @@
1
+ import type { RefObject } from 'react';
2
+ export interface ToolbarFloorOptions {
3
+ /**
4
+ * Smallest height of the drawing area, in pixels. Raised to whatever the
5
+ * toolbar needs, which is usually more.
6
+ * @default 320
7
+ */
8
+ minHeight?: number;
9
+ /**
10
+ * Bumped to look for the toolbar again, which a caller does after the editor
11
+ * has been remounted and the previous toolbar element has gone.
12
+ * @default 0
13
+ */
14
+ revision?: number;
15
+ }
16
+ /**
17
+ * Give an editor's container a minimum height that shows the whole toolbar.
18
+ *
19
+ * The height is measured rather than written down, so a different button count
20
+ * — a fragment editor, a reaction editor, a future release — keeps working
21
+ * instead of clipping its last buttons behind whatever follows the editor.
22
+ * @param options - The height the caller asked for, and when to look again.
23
+ * @returns The ref to put on the element wrapping the editor.
24
+ */
25
+ export declare function useToolbarFloor(options?: ToolbarFloorOptions): RefObject<HTMLDivElement | null>;
26
+ //# sourceMappingURL=useToolbarFloor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useToolbarFloor.d.ts","sourceRoot":"","sources":["../../../src/structure/ui/useToolbarFloor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKvC,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,OAAO,GAAE,mBAAwB,GAChC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAyClC"}
@@ -0,0 +1,70 @@
1
+ import { useLayoutEffect, useRef } from 'react';
2
+ import { toolbarFloorHeight } from "../core/toolbarFloor.js";
3
+ /**
4
+ * Give an editor's container a minimum height that shows the whole toolbar.
5
+ *
6
+ * The height is measured rather than written down, so a different button count
7
+ * — a fragment editor, a reaction editor, a future release — keeps working
8
+ * instead of clipping its last buttons behind whatever follows the editor.
9
+ * @param options - The height the caller asked for, and when to look again.
10
+ * @returns The ref to put on the element wrapping the editor.
11
+ */
12
+ export function useToolbarFloor(options = {}) {
13
+ const { minHeight = 320, revision = 0 } = options;
14
+ const containerRef = useRef(null);
15
+ useLayoutEffect(() => {
16
+ const container = containerRef.current;
17
+ if (container === null)
18
+ return;
19
+ let observer = null;
20
+ let frame = 0;
21
+ let attempts = 0;
22
+ // The editor builds itself asynchronously, so the toolbar is usually not
23
+ // there yet on the first look; watching for it is what keeps a slow first
24
+ // paint from leaving the container at its unmeasured height for good.
25
+ const attach = () => {
26
+ const toolbar = findToolbar(container);
27
+ if (toolbar === null) {
28
+ attempts++;
29
+ if (attempts > MAX_ATTEMPTS)
30
+ return;
31
+ frame = globalThis.requestAnimationFrame(attach);
32
+ return;
33
+ }
34
+ observer = new ResizeObserver(() => {
35
+ // offsetHeight, because a dialog opens under a scaling transform and a
36
+ // measured rectangle would be that of the half drawn toolbar.
37
+ const floor = toolbarFloorHeight(toolbar.offsetHeight, minHeight);
38
+ container.style.minHeight = `${floor}px`;
39
+ });
40
+ observer.observe(toolbar);
41
+ };
42
+ attach();
43
+ return () => {
44
+ if (frame !== 0)
45
+ globalThis.cancelAnimationFrame(frame);
46
+ observer?.disconnect();
47
+ };
48
+ }, [minHeight, revision]);
49
+ return containerRef;
50
+ }
51
+ /** Roughly two seconds of frames, after which the editor is not coming. */
52
+ const MAX_ATTEMPTS = 120;
53
+ /**
54
+ * Find the toolbar canvas of the editor.
55
+ *
56
+ * The editor builds itself inside a shadow root and puts the toolbar there as
57
+ * a direct child, the drawing canvas being nested deeper.
58
+ * @param container - The element wrapping the editor.
59
+ * @returns The toolbar canvas, or null while the editor has not drawn one.
60
+ */
61
+ function findToolbar(container) {
62
+ for (const element of container.querySelectorAll('*')) {
63
+ for (const child of element.shadowRoot?.children ?? []) {
64
+ if (child instanceof HTMLCanvasElement)
65
+ return child;
66
+ }
67
+ }
68
+ return null;
69
+ }
70
+ //# sourceMappingURL=useToolbarFloor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useToolbarFloor.js","sourceRoot":"","sources":["../../../src/structure/ui/useToolbarFloor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAEhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAiB7D;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAC7B,UAA+B,EAAE;IAEjC,MAAM,EAAE,SAAS,GAAG,GAAG,EAAE,QAAQ,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC;IAClD,MAAM,YAAY,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAElD,eAAe,CAAC,GAAG,EAAE;QACnB,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC;QACvC,IAAI,SAAS,KAAK,IAAI;YAAE,OAAO;QAE/B,IAAI,QAAQ,GAA0B,IAAI,CAAC;QAC3C,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,QAAQ,GAAG,CAAC,CAAC;QAEjB,yEAAyE;QACzE,0EAA0E;QAC1E,sEAAsE;QACtE,MAAM,MAAM,GAAG,GAAS,EAAE;YACxB,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;YACvC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,QAAQ,EAAE,CAAC;gBACX,IAAI,QAAQ,GAAG,YAAY;oBAAE,OAAO;gBACpC,KAAK,GAAG,UAAU,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;gBACjD,OAAO;YACT,CAAC;YACD,QAAQ,GAAG,IAAI,cAAc,CAAC,GAAG,EAAE;gBACjC,uEAAuE;gBACvE,8DAA8D;gBAC9D,MAAM,KAAK,GAAG,kBAAkB,CAAC,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;gBAClE,SAAS,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,KAAK,IAAI,CAAC;YAC3C,CAAC,CAAC,CAAC;YACH,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC,CAAC;QAEF,MAAM,EAAE,CAAC;QAET,OAAO,GAAG,EAAE;YACV,IAAI,KAAK,KAAK,CAAC;gBAAE,UAAU,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YACxD,QAAQ,EAAE,UAAU,EAAE,CAAC;QACzB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE1B,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,2EAA2E;AAC3E,MAAM,YAAY,GAAG,GAAG,CAAC;AAEzB;;;;;;;GAOG;AACH,SAAS,WAAW,CAAC,SAAsB;IACzC,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;QACtD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,UAAU,EAAE,QAAQ,IAAI,EAAE,EAAE,CAAC;YACvD,IAAI,KAAK,YAAY,iBAAiB;gBAAE,OAAO,KAAK,CAAC;QACvD,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './structure/core/index.ts';
2
+ export * from './structure/ui/index.ts';
3
+ //# sourceMappingURL=structure.d.ts.map