react-cheminfo 0.38.0 → 0.39.1

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 (327) hide show
  1. package/lib/chart/ui/Axes.d.ts +19 -0
  2. package/lib/chart/ui/Axes.d.ts.map +1 -1
  3. package/lib/chart/ui/Axes.js +25 -5
  4. package/lib/chart/ui/Axes.js.map +1 -1
  5. package/lib/chrome/ui/NavMenuButton.d.ts.map +1 -1
  6. package/lib/chrome/ui/NavMenuButton.js +41 -11
  7. package/lib/chrome/ui/NavMenuButton.js.map +1 -1
  8. package/lib/chrome/ui/SiteHeader.js +24 -1
  9. package/lib/chrome/ui/SiteHeader.js.map +1 -1
  10. package/lib/chrome/ui/navItem.d.ts +7 -0
  11. package/lib/chrome/ui/navItem.d.ts.map +1 -1
  12. package/lib/chrome/ui/navItem.js.map +1 -1
  13. package/lib/citation/ui/entries.d.ts.map +1 -1
  14. package/lib/citation/ui/entries.js +6 -1
  15. package/lib/citation/ui/entries.js.map +1 -1
  16. package/lib/clipboard/ui/ClickToCopy.d.ts +11 -0
  17. package/lib/clipboard/ui/ClickToCopy.d.ts.map +1 -1
  18. package/lib/clipboard/ui/ClickToCopy.js +28 -10
  19. package/lib/clipboard/ui/ClickToCopy.js.map +1 -1
  20. package/lib/clipboard/ui/CopyButton.d.ts +2 -1
  21. package/lib/clipboard/ui/CopyButton.d.ts.map +1 -1
  22. package/lib/clipboard/ui/CopyButton.js +2 -1
  23. package/lib/clipboard/ui/CopyButton.js.map +1 -1
  24. package/lib/clipboard/ui/CopyableValue.d.ts +24 -4
  25. package/lib/clipboard/ui/CopyableValue.d.ts.map +1 -1
  26. package/lib/clipboard/ui/CopyableValue.js +35 -3
  27. package/lib/clipboard/ui/CopyableValue.js.map +1 -1
  28. package/lib/clipboard/ui/index.d.ts +1 -1
  29. package/lib/clipboard/ui/index.d.ts.map +1 -1
  30. package/lib/clipboard/ui/index.js.map +1 -1
  31. package/lib/confirm/ui/ConfirmButton.d.ts.map +1 -1
  32. package/lib/confirm/ui/ConfirmButton.js +2 -1
  33. package/lib/confirm/ui/ConfirmButton.js.map +1 -1
  34. package/lib/delimited/ui/TableDataButton.d.ts.map +1 -1
  35. package/lib/delimited/ui/TableDataButton.js +2 -1
  36. package/lib/delimited/ui/TableDataButton.js.map +1 -1
  37. package/lib/download/core/figureSvg.d.ts.map +1 -1
  38. package/lib/download/core/figureSvg.js +37 -12
  39. package/lib/download/core/figureSvg.js.map +1 -1
  40. package/lib/help/ui/HelpToolbarButton.d.ts.map +1 -1
  41. package/lib/help/ui/HelpToolbarButton.js +2 -1
  42. package/lib/help/ui/HelpToolbarButton.js.map +1 -1
  43. package/lib/i18n/core/chromeCatalog.d.ts +1 -1
  44. package/lib/i18n/core/chromeCatalog.d.ts.map +1 -1
  45. package/lib/locales/de.json +39 -4
  46. package/lib/locales/en.json +39 -4
  47. package/lib/locales/es.json +39 -4
  48. package/lib/locales/fr.json +39 -4
  49. package/lib/locales/it.json +39 -4
  50. package/lib/number/ui/NumberInput.js +1 -1
  51. package/lib/number/ui/NumberInput.js.map +1 -1
  52. package/lib/overlay/ui/OverlayIconButton.d.ts.map +1 -1
  53. package/lib/overlay/ui/OverlayIconButton.js +1 -1
  54. package/lib/overlay/ui/OverlayIconButton.js.map +1 -1
  55. package/lib/panel/ui/ClearButton.d.ts.map +1 -1
  56. package/lib/panel/ui/ClearButton.js +1 -1
  57. package/lib/panel/ui/ClearButton.js.map +1 -1
  58. package/lib/pedagogy/core/inlineMarks.d.ts +9 -5
  59. package/lib/pedagogy/core/inlineMarks.d.ts.map +1 -1
  60. package/lib/pedagogy/core/inlineMarks.js +14 -6
  61. package/lib/pedagogy/core/inlineMarks.js.map +1 -1
  62. package/lib/pedagogy/ui/GlossaryDefinition.d.ts +4 -10
  63. package/lib/pedagogy/ui/GlossaryDefinition.d.ts.map +1 -1
  64. package/lib/pedagogy/ui/GlossaryDefinition.js +7 -7
  65. package/lib/pedagogy/ui/GlossaryDefinition.js.map +1 -1
  66. package/lib/pedagogy/ui/GlossaryIndex.d.ts.map +1 -1
  67. package/lib/pedagogy/ui/GlossaryIndex.js +1 -1
  68. package/lib/pedagogy/ui/GlossaryIndex.js.map +1 -1
  69. package/lib/pedagogy/ui/GlossaryProvider.d.ts +7 -0
  70. package/lib/pedagogy/ui/GlossaryProvider.d.ts.map +1 -1
  71. package/lib/pedagogy/ui/GlossaryProvider.js +3 -2
  72. package/lib/pedagogy/ui/GlossaryProvider.js.map +1 -1
  73. package/lib/pedagogy/ui/GlossaryText.d.ts +7 -2
  74. package/lib/pedagogy/ui/GlossaryText.d.ts.map +1 -1
  75. package/lib/pedagogy/ui/GlossaryText.js +3 -2
  76. package/lib/pedagogy/ui/GlossaryText.js.map +1 -1
  77. package/lib/pedagogy/ui/InlineText.d.ts +8 -2
  78. package/lib/pedagogy/ui/InlineText.d.ts.map +1 -1
  79. package/lib/pedagogy/ui/InlineText.js +7 -2
  80. package/lib/pedagogy/ui/InlineText.js.map +1 -1
  81. package/lib/pedagogy/ui/ReferenceSectionBlock.d.ts +4 -1
  82. package/lib/pedagogy/ui/ReferenceSectionBlock.d.ts.map +1 -1
  83. package/lib/pedagogy/ui/ReferenceSectionBlock.js +2 -1
  84. package/lib/pedagogy/ui/ReferenceSectionBlock.js.map +1 -1
  85. package/lib/pedagogy/ui/SyntaxTooltip.d.ts.map +1 -1
  86. package/lib/pedagogy/ui/SyntaxTooltip.js +11 -10
  87. package/lib/pedagogy/ui/SyntaxTooltip.js.map +1 -1
  88. package/lib/pedagogy/ui/TutorialStepStrip.d.ts.map +1 -1
  89. package/lib/pedagogy/ui/TutorialStepStrip.js +18 -4
  90. package/lib/pedagogy/ui/TutorialStepStrip.js.map +1 -1
  91. package/lib/pedagogy/ui/glossaryContext.d.ts +7 -0
  92. package/lib/pedagogy/ui/glossaryContext.d.ts.map +1 -1
  93. package/lib/pedagogy/ui/glossaryContext.js.map +1 -1
  94. package/lib/pedagogy/ui/index.d.ts +1 -1
  95. package/lib/pedagogy/ui/index.d.ts.map +1 -1
  96. package/lib/pedagogy/ui/inlineSegments.d.ts +5 -0
  97. package/lib/pedagogy/ui/inlineSegments.d.ts.map +1 -1
  98. package/lib/pedagogy/ui/inlineSegments.js +2 -0
  99. package/lib/pedagogy/ui/inlineSegments.js.map +1 -1
  100. package/lib/pedagogy/ui/pedagogyStyle.d.ts +8 -9
  101. package/lib/pedagogy/ui/pedagogyStyle.d.ts.map +1 -1
  102. package/lib/pedagogy/ui/pedagogyStyle.js +10 -18
  103. package/lib/pedagogy/ui/pedagogyStyle.js.map +1 -1
  104. package/lib/seo/core/plainDescription.d.ts +2 -2
  105. package/lib/seo/core/plainDescription.js +5 -2
  106. package/lib/seo/core/plainDescription.js.map +1 -1
  107. package/lib/share/core/devices.d.ts +41 -0
  108. package/lib/share/core/devices.d.ts.map +1 -0
  109. package/lib/share/core/devices.js +58 -0
  110. package/lib/share/core/devices.js.map +1 -0
  111. package/lib/share/core/index.d.ts +4 -0
  112. package/lib/share/core/index.d.ts.map +1 -1
  113. package/lib/share/core/index.js +2 -0
  114. package/lib/share/core/index.js.map +1 -1
  115. package/lib/share/core/regions.d.ts +43 -0
  116. package/lib/share/core/regions.d.ts.map +1 -0
  117. package/lib/share/core/regions.js +71 -0
  118. package/lib/share/core/regions.js.map +1 -0
  119. package/lib/share/ui/HiddenPartsProvider.d.ts.map +1 -1
  120. package/lib/share/ui/HiddenPartsProvider.js +4 -1
  121. package/lib/share/ui/HiddenPartsProvider.js.map +1 -1
  122. package/lib/share/ui/PagePart.d.ts.map +1 -1
  123. package/lib/share/ui/PagePart.js +10 -1
  124. package/lib/share/ui/PagePart.js.map +1 -1
  125. package/lib/share/ui/ShareButton.d.ts.map +1 -1
  126. package/lib/share/ui/ShareButton.js +3 -4
  127. package/lib/share/ui/ShareButton.js.map +1 -1
  128. package/lib/share/ui/ShareConfigOptions.d.ts +6 -1
  129. package/lib/share/ui/ShareConfigOptions.d.ts.map +1 -1
  130. package/lib/share/ui/ShareConfigOptions.js +6 -13
  131. package/lib/share/ui/ShareConfigOptions.js.map +1 -1
  132. package/lib/share/ui/ShareDialog.d.ts +14 -0
  133. package/lib/share/ui/ShareDialog.d.ts.map +1 -1
  134. package/lib/share/ui/ShareDialog.js +3 -3
  135. package/lib/share/ui/ShareDialog.js.map +1 -1
  136. package/lib/share/ui/ShareDialogContent.d.ts +2 -2
  137. package/lib/share/ui/ShareDialogContent.d.ts.map +1 -1
  138. package/lib/share/ui/ShareDialogContent.js +36 -30
  139. package/lib/share/ui/ShareDialogContent.js.map +1 -1
  140. package/lib/share/ui/ShareLinkBar.d.ts +21 -0
  141. package/lib/share/ui/ShareLinkBar.d.ts.map +1 -0
  142. package/lib/share/ui/ShareLinkBar.js +32 -0
  143. package/lib/share/ui/ShareLinkBar.js.map +1 -0
  144. package/lib/share/ui/SharePanes.d.ts +17 -0
  145. package/lib/share/ui/SharePanes.d.ts.map +1 -0
  146. package/lib/share/ui/SharePanes.js +27 -0
  147. package/lib/share/ui/SharePanes.js.map +1 -0
  148. package/lib/share/ui/SharePartOptions.d.ts +9 -3
  149. package/lib/share/ui/SharePartOptions.d.ts.map +1 -1
  150. package/lib/share/ui/SharePartOptions.js +12 -16
  151. package/lib/share/ui/SharePartOptions.js.map +1 -1
  152. package/lib/share/ui/SharePartRow.d.ts +37 -0
  153. package/lib/share/ui/SharePartRow.d.ts.map +1 -0
  154. package/lib/share/ui/SharePartRow.js +25 -0
  155. package/lib/share/ui/SharePartRow.js.map +1 -0
  156. package/lib/share/ui/SharePresetTabs.d.ts +10 -7
  157. package/lib/share/ui/SharePresetTabs.d.ts.map +1 -1
  158. package/lib/share/ui/SharePresetTabs.js +17 -17
  159. package/lib/share/ui/SharePresetTabs.js.map +1 -1
  160. package/lib/share/ui/SharePreview.d.ts +32 -0
  161. package/lib/share/ui/SharePreview.d.ts.map +1 -0
  162. package/lib/share/ui/SharePreview.js +129 -0
  163. package/lib/share/ui/SharePreview.js.map +1 -0
  164. package/lib/share/ui/SharePreviewDevices.d.ts +20 -0
  165. package/lib/share/ui/SharePreviewDevices.d.ts.map +1 -0
  166. package/lib/share/ui/SharePreviewDevices.js +40 -0
  167. package/lib/share/ui/SharePreviewDevices.js.map +1 -0
  168. package/lib/share/ui/index.d.ts +1 -0
  169. package/lib/share/ui/index.d.ts.map +1 -1
  170. package/lib/share/ui/index.js.map +1 -1
  171. package/lib/share/ui/shareMarking.d.ts +14 -0
  172. package/lib/share/ui/shareMarking.d.ts.map +1 -0
  173. package/lib/share/ui/shareMarking.js +17 -0
  174. package/lib/share/ui/shareMarking.js.map +1 -0
  175. package/lib/share/ui/useShareRegionReports.d.ts +12 -0
  176. package/lib/share/ui/useShareRegionReports.d.ts.map +1 -0
  177. package/lib/share/ui/useShareRegionReports.js +102 -0
  178. package/lib/share/ui/useShareRegionReports.js.map +1 -0
  179. package/lib/shared/ui/ActionTooltip.d.ts +42 -0
  180. package/lib/shared/ui/ActionTooltip.d.ts.map +1 -0
  181. package/lib/shared/ui/ActionTooltip.js +21 -0
  182. package/lib/shared/ui/ActionTooltip.js.map +1 -0
  183. package/lib/shared/ui/index.d.ts +4 -0
  184. package/lib/shared/ui/index.d.ts.map +1 -1
  185. package/lib/shared/ui/index.js +2 -0
  186. package/lib/shared/ui/index.js.map +1 -1
  187. package/lib/shared/ui/useActionTooltip.d.ts +48 -0
  188. package/lib/shared/ui/useActionTooltip.d.ts.map +1 -0
  189. package/lib/shared/ui/useActionTooltip.js +78 -0
  190. package/lib/shared/ui/useActionTooltip.js.map +1 -0
  191. package/lib/structure/core/index.d.ts +2 -0
  192. package/lib/structure/core/index.d.ts.map +1 -1
  193. package/lib/structure/core/index.js +1 -0
  194. package/lib/structure/core/index.js.map +1 -1
  195. package/lib/structure/core/sourceMolecule.d.ts +18 -0
  196. package/lib/structure/core/sourceMolecule.d.ts.map +1 -0
  197. package/lib/structure/core/sourceMolecule.js +26 -0
  198. package/lib/structure/core/sourceMolecule.js.map +1 -0
  199. package/lib/structure/core/structureNotations.d.ts +57 -0
  200. package/lib/structure/core/structureNotations.d.ts.map +1 -0
  201. package/lib/structure/core/structureNotations.js +74 -0
  202. package/lib/structure/core/structureNotations.js.map +1 -0
  203. package/lib/structure/core/structurePicture.d.ts +49 -0
  204. package/lib/structure/core/structurePicture.d.ts.map +1 -0
  205. package/lib/structure/core/structurePicture.js +83 -0
  206. package/lib/structure/core/structurePicture.js.map +1 -0
  207. package/lib/structure/ui/EditorExportButton.d.ts +23 -0
  208. package/lib/structure/ui/EditorExportButton.d.ts.map +1 -0
  209. package/lib/structure/ui/EditorExportButton.js +23 -0
  210. package/lib/structure/ui/EditorExportButton.js.map +1 -0
  211. package/lib/structure/ui/EditorHelpButton.d.ts +5 -2
  212. package/lib/structure/ui/EditorHelpButton.d.ts.map +1 -1
  213. package/lib/structure/ui/EditorHelpButton.js +8 -9
  214. package/lib/structure/ui/EditorHelpButton.js.map +1 -1
  215. package/lib/structure/ui/StructureEditor.d.ts +8 -0
  216. package/lib/structure/ui/StructureEditor.d.ts.map +1 -1
  217. package/lib/structure/ui/StructureEditor.js +26 -3
  218. package/lib/structure/ui/StructureEditor.js.map +1 -1
  219. package/lib/structure/ui/StructureExportDialog.d.ts +34 -0
  220. package/lib/structure/ui/StructureExportDialog.d.ts.map +1 -0
  221. package/lib/structure/ui/StructureExportDialog.js +43 -0
  222. package/lib/structure/ui/StructureExportDialog.js.map +1 -0
  223. package/lib/structure/ui/StructureExportPanel.d.ts +37 -0
  224. package/lib/structure/ui/StructureExportPanel.d.ts.map +1 -0
  225. package/lib/structure/ui/StructureExportPanel.js +75 -0
  226. package/lib/structure/ui/StructureExportPanel.js.map +1 -0
  227. package/lib/structure/ui/StructureNotationRow.d.ts +22 -0
  228. package/lib/structure/ui/StructureNotationRow.d.ts.map +1 -0
  229. package/lib/structure/ui/StructureNotationRow.js +34 -0
  230. package/lib/structure/ui/StructureNotationRow.js.map +1 -0
  231. package/lib/structure/ui/StructurePicturePane.d.ts +23 -0
  232. package/lib/structure/ui/StructurePicturePane.d.ts.map +1 -0
  233. package/lib/structure/ui/StructurePicturePane.js +113 -0
  234. package/lib/structure/ui/StructurePicturePane.js.map +1 -0
  235. package/lib/structure/ui/StructureSvg.d.ts.map +1 -1
  236. package/lib/structure/ui/StructureSvg.js +2 -18
  237. package/lib/structure/ui/StructureSvg.js.map +1 -1
  238. package/lib/structure/ui/ToolbarTooltip.d.ts.map +1 -1
  239. package/lib/structure/ui/ToolbarTooltip.js +1 -2
  240. package/lib/structure/ui/ToolbarTooltip.js.map +1 -1
  241. package/lib/structure/ui/index.d.ts +7 -3
  242. package/lib/structure/ui/index.d.ts.map +1 -1
  243. package/lib/structure/ui/index.js +5 -3
  244. package/lib/structure/ui/index.js.map +1 -1
  245. package/lib/structure/ui/structureNotationText.d.ts +23 -0
  246. package/lib/structure/ui/structureNotationText.d.ts.map +1 -0
  247. package/lib/structure/ui/structureNotationText.js +42 -0
  248. package/lib/structure/ui/structureNotationText.js.map +1 -0
  249. package/lib/structure/ui/useEditorStructure.d.ts +37 -0
  250. package/lib/structure/ui/useEditorStructure.d.ts.map +1 -0
  251. package/lib/structure/ui/useEditorStructure.js +70 -0
  252. package/lib/structure/ui/useEditorStructure.js.map +1 -0
  253. package/package.json +1 -1
  254. package/src/chart/ui/Axes.tsx +53 -5
  255. package/src/chrome/ui/NavMenuButton.tsx +61 -18
  256. package/src/chrome/ui/SiteHeader.tsx +37 -1
  257. package/src/chrome/ui/navItem.ts +7 -0
  258. package/src/citation/ui/entries.tsx +10 -2
  259. package/src/clipboard/ui/ClickToCopy.tsx +47 -13
  260. package/src/clipboard/ui/CopyButton.tsx +4 -2
  261. package/src/clipboard/ui/CopyableValue.tsx +88 -13
  262. package/src/clipboard/ui/index.ts +5 -1
  263. package/src/confirm/ui/ConfirmButton.tsx +2 -0
  264. package/src/delimited/ui/TableDataButton.tsx +2 -1
  265. package/src/download/core/figureSvg.ts +42 -10
  266. package/src/help/ui/HelpToolbarButton.tsx +2 -1
  267. package/src/locales/de.json +39 -4
  268. package/src/locales/en.json +39 -4
  269. package/src/locales/es.json +39 -4
  270. package/src/locales/fr.json +39 -4
  271. package/src/locales/it.json +39 -4
  272. package/src/number/ui/NumberInput.tsx +1 -1
  273. package/src/overlay/ui/OverlayIconButton.tsx +1 -0
  274. package/src/panel/ui/ClearButton.tsx +1 -0
  275. package/src/pedagogy/core/inlineMarks.ts +15 -7
  276. package/src/pedagogy/ui/GlossaryDefinition.tsx +8 -18
  277. package/src/pedagogy/ui/GlossaryIndex.tsx +0 -1
  278. package/src/pedagogy/ui/GlossaryProvider.tsx +10 -2
  279. package/src/pedagogy/ui/GlossaryText.tsx +10 -2
  280. package/src/pedagogy/ui/InlineText.tsx +21 -4
  281. package/src/pedagogy/ui/ReferenceSectionBlock.tsx +8 -2
  282. package/src/pedagogy/ui/SyntaxTooltip.tsx +11 -9
  283. package/src/pedagogy/ui/TutorialStepStrip.tsx +50 -18
  284. package/src/pedagogy/ui/glossaryContext.ts +7 -0
  285. package/src/pedagogy/ui/index.ts +1 -1
  286. package/src/pedagogy/ui/inlineSegments.tsx +7 -0
  287. package/src/pedagogy/ui/pedagogyStyle.ts +12 -24
  288. package/src/seo/core/plainDescription.ts +4 -2
  289. package/src/share/core/devices.ts +80 -0
  290. package/src/share/core/index.ts +14 -0
  291. package/src/share/core/regions.ts +87 -0
  292. package/src/share/ui/HiddenPartsProvider.tsx +6 -1
  293. package/src/share/ui/PagePart.tsx +12 -1
  294. package/src/share/ui/ShareButton.tsx +3 -6
  295. package/src/share/ui/ShareConfigOptions.tsx +25 -16
  296. package/src/share/ui/ShareDialog.tsx +17 -3
  297. package/src/share/ui/ShareDialogContent.tsx +80 -77
  298. package/src/share/ui/ShareLinkBar.tsx +70 -0
  299. package/src/share/ui/SharePanes.tsx +62 -0
  300. package/src/share/ui/SharePartOptions.tsx +25 -26
  301. package/src/share/ui/SharePartRow.tsx +78 -0
  302. package/src/share/ui/SharePresetTabs.tsx +36 -43
  303. package/src/share/ui/SharePreview.tsx +235 -0
  304. package/src/share/ui/SharePreviewDevices.tsx +70 -0
  305. package/src/share/ui/index.ts +1 -0
  306. package/src/share/ui/shareMarking.ts +18 -0
  307. package/src/share/ui/useShareRegionReports.ts +108 -0
  308. package/src/shared/ui/ActionTooltip.tsx +70 -0
  309. package/src/shared/ui/index.ts +7 -0
  310. package/src/shared/ui/useActionTooltip.ts +103 -0
  311. package/src/structure/core/index.ts +5 -0
  312. package/src/structure/core/sourceMolecule.ts +26 -0
  313. package/src/structure/core/structureNotations.ts +125 -0
  314. package/src/structure/core/structurePicture.ts +119 -0
  315. package/src/structure/ui/EditorExportButton.tsx +62 -0
  316. package/src/structure/ui/EditorHelpButton.tsx +26 -30
  317. package/src/structure/ui/StructureEditor.tsx +51 -5
  318. package/src/structure/ui/StructureExportDialog.tsx +90 -0
  319. package/src/structure/ui/StructureExportPanel.tsx +156 -0
  320. package/src/structure/ui/StructureNotationRow.tsx +74 -0
  321. package/src/structure/ui/StructurePicturePane.tsx +208 -0
  322. package/src/structure/ui/StructureSvg.tsx +3 -12
  323. package/src/structure/ui/ToolbarTooltip.tsx +1 -1
  324. package/src/structure/ui/index.ts +7 -3
  325. package/src/structure/ui/structureNotationText.ts +56 -0
  326. package/src/structure/ui/useEditorStructure.ts +119 -0
  327. package/styles/chrome.css +414 -14
@@ -0,0 +1,34 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Button } from '@blueprintjs/core';
3
+ import { CopyableValue } from "../../clipboard/ui/CopyableValue.js";
4
+ import { downloadText } from "../../download/core/downloadText.js";
5
+ import { useChromeT } from "../../i18n/ui/useT.js";
6
+ import { notationText } from "./structureNotationText.js";
7
+ /**
8
+ * One notation: its name, the text, and the two ways of taking it away.
9
+ *
10
+ * The text is the button that copies it — a notation is only ever wanted
11
+ * somewhere else — and a notation that is also a file carries a save button on
12
+ * its name's line, where it cannot be hit while reaching for the text. The
13
+ * name explains itself on hover, dotted-underlined to say so, so the row needs
14
+ * no glyph of its own.
15
+ * @param props - See {@link StructureNotationRowProps}.
16
+ * @returns The row.
17
+ */
18
+ export function StructureNotationRow(props) {
19
+ const { notation, fileName } = props;
20
+ const { kind, value, file, block } = notation;
21
+ const t = useChromeT();
22
+ const text = notationText(kind);
23
+ return (_jsx(CopyableValue, { className: "structure-export__notation", label: t(text.label), hint: t(text.hint), value: value, block: block, clip: block, maxHeight: block ? BLOCK_HEIGHT : undefined, action: file === undefined || value === '' ? undefined : (_jsx(Button, { variant: "minimal", size: "small", icon: "download", text: t('download.save'), onClick: () => {
24
+ downloadText(value, `${fileName}${file.suffix}.${file.extension}`, `${file.mimeType};charset=utf-8`);
25
+ } })) }));
26
+ }
27
+ /**
28
+ * How much of a molfile is shown: its header and the first lines of its
29
+ * connection table, which is enough to see which dialect and which molecule it
30
+ * is. The rest is faded out rather than scrolled — the whole file is what a
31
+ * click copies and what the save button writes.
32
+ */
33
+ const BLOCK_HEIGHT = 92;
34
+ //# sourceMappingURL=StructureNotationRow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StructureNotationRow.js","sourceRoot":"","sources":["../../../src/structure/ui/StructureNotationRow.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAsC,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAU1D;;;;;;;;;;GAUG;AACH,MAAM,UAAU,oBAAoB,CAClC,KAAgC;IAEhC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IACrC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC;IAC9C,MAAM,CAAC,GAAG,UAAU,EAAE,CAAC;IACvB,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAEhC,OAAO,CACL,KAAC,aAAa,IACZ,SAAS,EAAC,4BAA4B,EACtC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EACpB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAClB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,KAAK,EACX,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,EAC3C,MAAM,EACJ,IAAI,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAC/C,KAAC,MAAM,IACL,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,OAAO,EACZ,IAAI,EAAC,UAAU,EACf,IAAI,EAAE,CAAC,CAAC,eAAe,CAAC,EACxB,OAAO,EAAE,GAAG,EAAE;gBACZ,YAAY,CACV,KAAK,EACL,GAAG,QAAQ,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,EAC7C,GAAG,IAAI,CAAC,QAAQ,gBAAgB,CACjC,CAAC;YACJ,CAAC,GACD,CACH,GAEH,CACH,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,YAAY,GAAG,EAAE,CAAC"}
@@ -0,0 +1,23 @@
1
+ import type { Molecule } from 'openchemlib';
2
+ import type { ReactElement } from 'react';
3
+ /** What {@link StructurePicturePane} draws and saves. */
4
+ export interface StructurePicturePaneProps {
5
+ /** The structure. Not modified. */
6
+ molecule: Molecule;
7
+ /** Base name of the saved files, extension excluded. */
8
+ fileName: string;
9
+ }
10
+ /**
11
+ * The structure as a picture: what it looks like, how big it leaves, and the
12
+ * three ways it leaves.
13
+ *
14
+ * What is shown is the file: the preview is the very SVG the save button
15
+ * writes, laid out smaller, so nobody saves a picture they have not seen. The
16
+ * resolution is a multiple rather than a pixel width because the multiple is
17
+ * the part a reader has an opinion about — one for a note, two for a slide,
18
+ * three or four for print — and the pixels it comes to are written under it.
19
+ * @param props - See {@link StructurePicturePaneProps}.
20
+ * @returns The pane.
21
+ */
22
+ export declare function StructurePicturePane(props: StructurePicturePaneProps): ReactElement;
23
+ //# sourceMappingURL=StructurePicturePane.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StructurePicturePane.d.ts","sourceRoot":"","sources":["../../../src/structure/ui/StructurePicturePane.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,OAAO,CAAC;AAwBzD,yDAAyD;AACzD,MAAM,WAAW,yBAAyB;IACxC,mCAAmC;IACnC,QAAQ,EAAE,QAAQ,CAAC;IACnB,wDAAwD;IACxD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAKD;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,yBAAyB,GAC/B,YAAY,CAgHd"}
@@ -0,0 +1,113 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Button, SegmentedControl } from '@blueprintjs/core';
3
+ import { useMemo, useState } from 'react';
4
+ import { writeImageToClipboard } from "../../clipboard/core/copyPng.js";
5
+ import { downloadBlob } from "../../download/core/downloadBlob.js";
6
+ import { downloadText } from "../../download/core/downloadText.js";
7
+ import { figurePng } from "../../download/core/figurePng.js";
8
+ import { FIGURE_SCALES, figureScaleFits, figureScaleLabel, formatFigurePixels, } from "../../download/core/figureScale.js";
9
+ import { FIGURE_SVG_TYPE } from "../../download/core/figureSvg.js";
10
+ import { HelpTooltip } from "../../help/ui/HelpTooltip.js";
11
+ import { useChromeT } from "../../i18n/ui/useT.js";
12
+ import { OVERLAY_HELP_NAME_STYLE } from "../../overlay/ui/overlayRowStyles.js";
13
+ import { TOKEN } from "../../tokens/core/familyTokens.js";
14
+ import { STRUCTURE_BOND_LENGTH, structurePicture, } from "../core/structurePicture.js";
15
+ /** The multiple the pictures are offered at first. */
16
+ const DEFAULT_SCALE = 2;
17
+ /**
18
+ * The structure as a picture: what it looks like, how big it leaves, and the
19
+ * three ways it leaves.
20
+ *
21
+ * What is shown is the file: the preview is the very SVG the save button
22
+ * writes, laid out smaller, so nobody saves a picture they have not seen. The
23
+ * resolution is a multiple rather than a pixel width because the multiple is
24
+ * the part a reader has an opinion about — one for a note, two for a slide,
25
+ * three or four for print — and the pixels it comes to are written under it.
26
+ * @param props - See {@link StructurePicturePaneProps}.
27
+ * @returns The pane.
28
+ */
29
+ export function StructurePicturePane(props) {
30
+ const { molecule, fileName } = props;
31
+ const t = useChromeT();
32
+ const [scale, setScale] = useState(DEFAULT_SCALE);
33
+ const [notice, setNotice] = useState(null);
34
+ // Drawn once per resolution, so what is previewed, measured and saved is one
35
+ // picture rather than three that have to be kept in step.
36
+ const picture = useMemo(() => structurePicture(molecule, { bondLength: STRUCTURE_BOND_LENGTH * scale }), [molecule, scale]);
37
+ // Shown as the document itself rather than as markup put into the page: the
38
+ // dialog never writes HTML it did not author, and the preview is the file.
39
+ const preview = `data:${FIGURE_SVG_TYPE},${encodeURIComponent(picture.markup)}`;
40
+ // The crop is the structure's own shape, so the size at one resolution is
41
+ // what every other one scales from: measured rather than assumed.
42
+ const base = useMemo(() => structurePicture(molecule), [molecule]);
43
+ async function png() {
44
+ return figurePng(picture, 1);
45
+ }
46
+ async function run(write) {
47
+ try {
48
+ setNotice(await write());
49
+ }
50
+ catch (error) {
51
+ setNotice(error instanceof Error ? error.message : String(error));
52
+ }
53
+ }
54
+ return (_jsxs("div", { className: "structure-export__picture", children: [_jsx("img", { className: "structure-export__stage", src: preview, alt: t('structure.export.picture') }), _jsxs("div", { className: "structure-export__row", children: [_jsx(HelpTooltip, { content: {
55
+ title: t('download.resolution'),
56
+ body: t('download.resolutionHelp'),
57
+ example: { code: '2×', note: t('download.resolutionExample') },
58
+ }, placement: "top-start", children: _jsx("span", { style: NAME_STYLE, children: t('download.resolution') }) }), _jsx(SegmentedControl, { size: "small", options: scaleOptions(base), value: String(scale), onValueChange: (picked) => {
59
+ setNotice(null);
60
+ setScale(Number(picked));
61
+ } })] }), _jsx("p", { className: "structure-export__pixels", style: PIXELS_STYLE, children: formatFigurePixels(picture) }), _jsxs("div", { className: "structure-export__actions", children: [_jsx(Button, { icon: "download", size: "small", text: t('structure.export.saveSvg'), onClick: () => void run(async () => {
62
+ downloadText(picture.markup, `${fileName}.svg`, FIGURE_SVG_TYPE);
63
+ return null;
64
+ }) }), _jsx(Button, { icon: "download", size: "small", intent: "primary", text: t('structure.export.savePng'), onClick: () => void run(async () => {
65
+ downloadBlob(await png(), `${fileName}.png`);
66
+ return null;
67
+ }) }), _jsx(Button, { icon: "clipboard", size: "small", text: t('structure.export.copyPng'), onClick: () =>
68
+ // Safari only allows a clipboard write the click itself started,
69
+ // so the image is handed over as a promise rather than awaited
70
+ // first — see `writeImageToClipboard`.
71
+ void run(async () => (await writeImageToClipboard(png()))
72
+ ? t('download.hintCopied', {
73
+ pixels: formatFigurePixels(picture),
74
+ })
75
+ : t('download.copyUnsupported')) })] }), notice === null ? null : (_jsx("p", { className: "structure-export__notice", style: NOTICE_STYLE, children: notice }))] }));
76
+ }
77
+ /**
78
+ * The multiples offered, each greyed when the picture it would produce is past
79
+ * what a browser will paint — the ceiling is met here rather than as a blank
80
+ * file, which is the rule the figure panel follows.
81
+ * @param base - The picture at the smallest resolution, which the others are
82
+ * multiples of.
83
+ * @returns The choices, in the order offered.
84
+ */
85
+ function scaleOptions(base) {
86
+ const options = [];
87
+ for (const scale of FIGURE_SCALES) {
88
+ options.push({
89
+ label: figureScaleLabel(scale),
90
+ value: String(scale),
91
+ disabled: !figureScaleFits(base, scale),
92
+ });
93
+ }
94
+ return options;
95
+ }
96
+ const NAME_STYLE = {
97
+ ...OVERLAY_HELP_NAME_STYLE,
98
+ color: TOKEN.textMuted,
99
+ fontSize: 12,
100
+ fontWeight: 600,
101
+ };
102
+ const PIXELS_STYLE = {
103
+ margin: 0,
104
+ color: TOKEN.textFaint,
105
+ fontSize: 11,
106
+ fontVariantNumeric: 'tabular-nums',
107
+ };
108
+ const NOTICE_STYLE = {
109
+ margin: 0,
110
+ color: TOKEN.textMuted,
111
+ fontSize: 11,
112
+ };
113
+ //# sourceMappingURL=StructurePicturePane.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StructurePicturePane.js","sourceRoot":"","sources":["../../../src/structure/ui/StructurePicturePane.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"StructureSvg.d.ts","sourceRoot":"","sources":["../../../src/structure/ui/StructureSvg.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAIlE,qCAAqC;AACrC,UAAU,iBAAiB;IACzB,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,oEAAoE;IACpE,aAAa,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,UAAU,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,yCAAyC;IACzC,kBAAkB,EAAE,kBAAkB,CAAC;IACvC;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,yEAAyE;IACzE,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,YAAY,CAoDnE"}
1
+ {"version":3,"file":"StructureSvg.d.ts","sourceRoot":"","sources":["../../../src/structure/ui/StructureSvg.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAGhE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAIlE,qCAAqC;AACrC,UAAU,iBAAiB;IACzB,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,oEAAoE;IACpE,aAAa,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,UAAU,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,yCAAyC;IACzC,kBAAkB,EAAE,kBAAkB,CAAC;IACvC;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,yEAAyE;IACzE,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,YAAY,CAoDnE"}
@@ -1,17 +1,8 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- /**
3
- * The react-ocl depiction of a structure whose notation has already been
4
- * picked.
5
- *
6
- * `Structure` holds it behind `React.lazy`, and the barrel deliberately does
7
- * not export it: this is the file that value-imports react-ocl and
8
- * openchemlib, so anything able to reach it statically drags openchemlib into
9
- * every bundle, including the ones that only ever wanted the Tools menu.
10
- */
11
- import { Molecule } from 'openchemlib';
12
2
  import { useMemo } from 'react';
13
3
  import { SvgRenderer } from 'react-ocl';
14
4
  import { applyAtomLabels } from "../core/atomLabels.js";
5
+ import { sourceMolecule } from "../core/sourceMolecule.js";
15
6
  import { StructurePlaceholder } from "./StructurePlaceholder.js";
16
7
  /**
17
8
  * Read the notation and draw the picture.
@@ -51,7 +42,7 @@ export function StructureSvg(props) {
51
42
  function readDrawing(kind, value, coordinates, labelsKey, placement) {
52
43
  let molecule;
53
44
  try {
54
- molecule = parseMolecule(kind, value, coordinates);
45
+ molecule = sourceMolecule({ kind, value, coordinates });
55
46
  }
56
47
  catch {
57
48
  return null;
@@ -64,11 +55,4 @@ function readDrawing(kind, value, coordinates, labelsKey, placement) {
64
55
  const written = applyAtomLabels(molecule, labels, placement);
65
56
  return { molecule, labelled: written > 0 };
66
57
  }
67
- function parseMolecule(kind, value, coordinates) {
68
- if (kind === 'idcode')
69
- return Molecule.fromIDCode(value, coordinates);
70
- if (kind === 'molfile')
71
- return Molecule.fromMolfile(value);
72
- return Molecule.fromSmiles(value);
73
- }
74
58
  //# sourceMappingURL=StructureSvg.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StructureSvg.js","sourceRoot":"","sources":["../../../src/structure/ui/StructureSvg.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StructureSvg.js","sourceRoot":"","sources":["../../../src/structure/ui/StructureSvg.tsx"],"names":[],"mappings":";AAYA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGxC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAG3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA4B,CAAC;AA8DlE;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,MAAM,EACJ,MAAM,EACN,QAAQ,EACR,UAAU,EACV,kBAAkB,EAClB,WAAW,EACX,WAAW,EACX,aAAa,EACb,GAAG,IAAI,EACR,GAAG,KAAK,CAAC;IACV,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IAC5C,sEAAsE;IACtE,qEAAqE;IACrE,MAAM,SAAS,GACb,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IAElE,MAAM,OAAO,GAAG,OAAO,CACrB,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,kBAAkB,CAAC,EAC1E,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAC1D,CAAC;IAEF,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,CACL,KAAC,oBAAoB,IAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,YACzD,QAAQ,GACY,CACxB,CAAC;IACJ,CAAC;IAED,OAAO,CACL,KAAC,WAAW,OACN,IAAI,EACR,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAC1B,4BAA4B,EAAE,OAAO,CAAC,QAAQ,EAC9C,iBAAiB,EAAE,CAAC,aAAa,EACjC,WAAW,EACT,WAAW,KAAK,SAAS;YACvB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE;gBACP,WAAW,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC,EAEP,WAAW,EACT,WAAW,KAAK,SAAS;YACvB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE;gBACP,WAAW,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC,GAEP,CACH,CAAC;AACJ,CAAC;AAQD;;;;;;;;;GASG;AACH,SAAS,WAAW,CAClB,IAA6B,EAC7B,KAAa,EACb,WAA+B,EAC/B,SAAiB,EACjB,SAA6B;IAE7B,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,cAAc,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9C,IAAI,SAAS,KAAK,EAAE;QAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAE3D,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAA4B,CAAC,CAAC;IACzE,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAC7D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,GAAG,CAAC,EAAE,CAAC;AAC7C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarTooltip.d.ts","sourceRoot":"","sources":["../../../src/structure/ui/ToolbarTooltip.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAUpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAG7D,yCAAyC;AACzC,MAAM,WAAW,mBAAmB;IAClC,kDAAkD;IAClD,YAAY,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAC5C,0EAA0E;IAC1E,IAAI,EAAE,mBAAmB,CAAC;CAC3B;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,mBAAmB,GACzB,YAAY,GAAG,IAAI,CAiBrB"}
1
+ {"version":3,"file":"ToolbarTooltip.d.ts","sourceRoot":"","sources":["../../../src/structure/ui/ToolbarTooltip.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAUpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAG7D,yCAAyC;AACzC,MAAM,WAAW,mBAAmB;IAClC,kDAAkD;IAClD,YAAY,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAC5C,0EAA0E;IAC1E,IAAI,EAAE,mBAAmB,CAAC;CAC3B;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,mBAAmB,GACzB,YAAY,GAAG,IAAI,CAkBrB"}
@@ -21,7 +21,7 @@ export function ToolbarTooltip(props) {
21
21
  const button = EDITOR_TOOLBAR_BUTTONS[hover.button];
22
22
  if (button === undefined)
23
23
  return null;
24
- return (_jsx(Tooltip, { isOpen: hover.open, placement: "right", content: _jsx(ButtonTip, { button: button, mode: mode }), renderTarget: ({ ref }) => (_jsx("span", { ref: ref, "aria-hidden": true, style: { ...TARGET_STYLE, ...hover.box } })) }));
24
+ return (_jsx(Tooltip, { isOpen: hover.open, placement: "right", content: _jsx(ButtonTip, { button: button, mode: mode }), popoverClassName: "help-tooltip", renderTarget: ({ ref }) => (_jsx("span", { ref: ref, "aria-hidden": true, style: { ...TARGET_STYLE, ...hover.box } })) }));
25
25
  }
26
26
  function ButtonTip(props) {
27
27
  const { button, mode } = props;
@@ -39,7 +39,6 @@ const TIP_STYLE = {
39
39
  display: 'flex',
40
40
  flexDirection: 'column',
41
41
  gap: 4,
42
- maxWidth: 260,
43
42
  lineHeight: 1.4,
44
43
  };
45
44
  const HEAD_STYLE = {
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarTooltip.js","sourceRoot":"","sources":["../../../src/structure/ui/ToolbarTooltip.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAGrD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EACL,sBAAsB,EACtB,8BAA8B,GAC/B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAe,CAAC;AAExC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAUvD;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAC5B,KAA0B;IAE1B,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IACrC,MAAM,KAAK,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;IAC5C,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,MAAM,MAAM,GAAG,sBAAsB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACpD,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAEtC,OAAO,CACL,KAAC,OAAO,IACN,MAAM,EAAE,KAAK,CAAC,IAAI,EAClB,SAAS,EAAC,OAAO,EACjB,OAAO,EAAE,KAAC,SAAS,IAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAI,EAClD,YAAY,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CACzB,eAAM,GAAG,EAAE,GAAG,uBAAc,KAAK,EAAE,EAAE,GAAG,YAAY,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE,GAAI,CACzE,GACD,CACH,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,KAGlB;IACC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAC/B,MAAM,CAAC,GAAG,UAAU,EAAE,CAAC;IACvB,MAAM,SAAS,GAAG,8BAA8B,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAE/D,OAAO,CACL,eAAK,KAAK,EAAE,SAAS,iBAAc,0BAA0B,aAC3D,eAAK,KAAK,EAAE,UAAU,aACpB,2BAAS,CAAC,CAAC,EAAE,CAAC,kBAAkB,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,GAAU,EACvE,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAC,OAAO,IAAC,IAAI,EAAE,MAAM,CAAC,IAAI,GAAI,IAC9D,EACN,wBACG,CAAC,CAAC,EAAE,CAAC,kBAAkB,MAAM,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,WAAW,CAAC,GAChE,EACL,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAClB,cAAK,SAAS,EAAE,OAAO,CAAC,UAAU,YAC/B,MAAM,CAAC,YAAY,KAAK,UAAU;oBACjC,CAAC,CAAC,CAAC,CAAC,6BAA6B,CAAC;oBAClC,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,GAC/B,CACP,IACG,CACP,CAAC;AACJ,CAAC;AAED,MAAM,YAAY,GAAkB;IAClC,QAAQ,EAAE,UAAU;IACpB,aAAa,EAAE,MAAM;CACtB,CAAC;AAEF,MAAM,SAAS,GAAkB;IAC/B,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,QAAQ;IACvB,GAAG,EAAE,CAAC;IACN,QAAQ,EAAE,GAAG;IACb,UAAU,EAAE,GAAG;CAChB,CAAC;AAEF,MAAM,UAAU,GAAkB;IAChC,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,QAAQ;IACpB,cAAc,EAAE,eAAe;IAC/B,GAAG,EAAE,EAAE;CACR,CAAC"}
1
+ {"version":3,"file":"ToolbarTooltip.js","sourceRoot":"","sources":["../../../src/structure/ui/ToolbarTooltip.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAGrD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EACL,sBAAsB,EACtB,8BAA8B,GAC/B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAe,CAAC;AAExC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAUvD;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAC5B,KAA0B;IAE1B,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IACrC,MAAM,KAAK,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;IAC5C,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,MAAM,MAAM,GAAG,sBAAsB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACpD,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAEtC,OAAO,CACL,KAAC,OAAO,IACN,MAAM,EAAE,KAAK,CAAC,IAAI,EAClB,SAAS,EAAC,OAAO,EACjB,OAAO,EAAE,KAAC,SAAS,IAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAI,EAClD,gBAAgB,EAAC,cAAc,EAC/B,YAAY,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CACzB,eAAM,GAAG,EAAE,GAAG,uBAAc,KAAK,EAAE,EAAE,GAAG,YAAY,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE,GAAI,CACzE,GACD,CACH,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,KAGlB;IACC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAC/B,MAAM,CAAC,GAAG,UAAU,EAAE,CAAC;IACvB,MAAM,SAAS,GAAG,8BAA8B,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAE/D,OAAO,CACL,eAAK,KAAK,EAAE,SAAS,iBAAc,0BAA0B,aAC3D,eAAK,KAAK,EAAE,UAAU,aACpB,2BAAS,CAAC,CAAC,EAAE,CAAC,kBAAkB,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,GAAU,EACvE,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAC,OAAO,IAAC,IAAI,EAAE,MAAM,CAAC,IAAI,GAAI,IAC9D,EACN,wBACG,CAAC,CAAC,EAAE,CAAC,kBAAkB,MAAM,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,WAAW,CAAC,GAChE,EACL,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAClB,cAAK,SAAS,EAAE,OAAO,CAAC,UAAU,YAC/B,MAAM,CAAC,YAAY,KAAK,UAAU;oBACjC,CAAC,CAAC,CAAC,CAAC,6BAA6B,CAAC;oBAClC,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,GAC/B,CACP,IACG,CACP,CAAC;AACJ,CAAC;AAED,MAAM,YAAY,GAAkB;IAClC,QAAQ,EAAE,UAAU;IACpB,aAAa,EAAE,MAAM;CACtB,CAAC;AAEF,MAAM,SAAS,GAAkB;IAC/B,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,QAAQ;IACvB,GAAG,EAAE,CAAC;IACN,UAAU,EAAE,GAAG;CAChB,CAAC;AAEF,MAAM,UAAU,GAAkB;IAChC,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,QAAQ;IACpB,cAAc,EAAE,eAAe;IAC/B,GAAG,EAAE,EAAE;CACR,CAAC"}
@@ -2,9 +2,10 @@
2
2
  * What a site imports to show or to draw a structure.
3
3
  *
4
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
5
+ * `StructureSvg`, `EditorCanvas` and `StructureExportPanel` are deliberately
6
+ * absent: re-exporting any of them would make react-ocl reachable from this
7
+ * barrel, the `React.lazy` boundaries inside `Structure`, `StructureEditor`
8
+ * and `StructureExportDialog` would be defeated, and
8
9
  * `react-cheminfo/structure` would stop being importable at all when those
9
10
  * optional peers are not installed — which is what a site wanting only the
10
11
  * Tools menu does. Type-only re-exports are erased and so are safe.
@@ -16,6 +17,9 @@ export type { StructureEditorProps } from './StructureEditor.tsx';
16
17
  export { StructureEditor } from './StructureEditor.tsx';
17
18
  export type { StructureEditorHelpProps } from './StructureEditorHelp.tsx';
18
19
  export { StructureEditorHelp } from './StructureEditorHelp.tsx';
20
+ export type { StructureExportDialogProps } from './StructureExportDialog.tsx';
21
+ export { StructureExportDialog } from './StructureExportDialog.tsx';
22
+ export type { StructureExportPanelProps } from './StructureExportPanel.tsx';
19
23
  export type { ToolbarFloorOptions } from './useToolbarFloor.ts';
20
24
  export { useToolbarFloor } from './useToolbarFloor.ts';
21
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +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,EACnB,6BAA6B,EAC7B,6BAA6B,GAC9B,MAAM,mBAAmB,CAAC;AAC3B,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,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,YAAY,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/structure/ui/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,YAAY,EACV,qBAAqB,EACrB,mBAAmB,EACnB,6BAA6B,EAC7B,6BAA6B,GAC9B,MAAM,mBAAmB,CAAC;AAC3B,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,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,YAAY,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,YAAY,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,YAAY,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
@@ -2,9 +2,10 @@
2
2
  * What a site imports to show or to draw a structure.
3
3
  *
4
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
5
+ * `StructureSvg`, `EditorCanvas` and `StructureExportPanel` are deliberately
6
+ * absent: re-exporting any of them would make react-ocl reachable from this
7
+ * barrel, the `React.lazy` boundaries inside `Structure`, `StructureEditor`
8
+ * and `StructureExportDialog` would be defeated, and
8
9
  * `react-cheminfo/structure` would stop being importable at all when those
9
10
  * optional peers are not installed — which is what a site wanting only the
10
11
  * Tools menu does. Type-only re-exports are erased and so are safe.
@@ -12,5 +13,6 @@
12
13
  export { Structure } from "./Structure.js";
13
14
  export { StructureEditor } from "./StructureEditor.js";
14
15
  export { StructureEditorHelp } from "./StructureEditorHelp.js";
16
+ export { StructureExportDialog } from "./StructureExportDialog.js";
15
17
  export { useToolbarFloor } from "./useToolbarFloor.js";
16
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/structure/ui/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AASH,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAiB,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAuB,CAAC;AAExD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA2B,CAAC;AAEhE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/structure/ui/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AASH,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAiB,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAuB,CAAC;AAExD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA2B,CAAC;AAEhE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA6B,CAAC;AAGpE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * What each notation is called, and the line that explains it.
3
+ *
4
+ * The core module writing the notations stays language-free, so the words live
5
+ * here: one record, so a notation added there is a compile error until it is
6
+ * named.
7
+ */
8
+ import type { ChromeKey } from '../../i18n/core/chromeCatalog.ts';
9
+ import type { StructureNotationKind } from '../core/structureNotations.ts';
10
+ /** The two lines a notation needs: its name, and what it is. */
11
+ export interface StructureNotationText {
12
+ /** Its name, on the row. */
13
+ label: ChromeKey;
14
+ /** What it is, read by hovering the name. */
15
+ hint: ChromeKey;
16
+ }
17
+ /**
18
+ * How a notation is named and explained.
19
+ * @param kind - Which notation it is.
20
+ * @returns The two keys to format.
21
+ */
22
+ export declare function notationText(kind: StructureNotationKind): StructureNotationText;
23
+ //# sourceMappingURL=structureNotationText.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structureNotationText.d.ts","sourceRoot":"","sources":["../../../src/structure/ui/structureNotationText.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAE3E,gEAAgE;AAChE,MAAM,WAAW,qBAAqB;IACpC,4BAA4B;IAC5B,KAAK,EAAE,SAAS,CAAC;IACjB,6CAA6C;IAC7C,IAAI,EAAE,SAAS,CAAC;CACjB;AA6BD;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,qBAAqB,GAC1B,qBAAqB,CAEvB"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * What each notation is called, and the line that explains it.
3
+ *
4
+ * The core module writing the notations stays language-free, so the words live
5
+ * here: one record, so a notation added there is a compile error until it is
6
+ * named.
7
+ */
8
+ const TEXT = {
9
+ smiles: {
10
+ label: 'structure.export.smiles',
11
+ hint: 'structure.export.smilesHelp',
12
+ },
13
+ molfileV3000: {
14
+ label: 'structure.export.molfileV3000',
15
+ hint: 'structure.export.molfileV3000Help',
16
+ },
17
+ molfileV2000: {
18
+ label: 'structure.export.molfileV2000',
19
+ hint: 'structure.export.molfileV2000Help',
20
+ },
21
+ idCode: {
22
+ label: 'structure.export.idCode',
23
+ hint: 'structure.export.idCodeHelp',
24
+ },
25
+ noStereoIdCode: {
26
+ label: 'structure.export.noStereoIdCode',
27
+ hint: 'structure.export.noStereoIdCodeHelp',
28
+ },
29
+ noStereoTautomerIdCode: {
30
+ label: 'structure.export.noStereoTautomerIdCode',
31
+ hint: 'structure.export.noStereoTautomerIdCodeHelp',
32
+ },
33
+ };
34
+ /**
35
+ * How a notation is named and explained.
36
+ * @param kind - Which notation it is.
37
+ * @returns The two keys to format.
38
+ */
39
+ export function notationText(kind) {
40
+ return TEXT[kind];
41
+ }
42
+ //# sourceMappingURL=structureNotationText.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structureNotationText.js","sourceRoot":"","sources":["../../../src/structure/ui/structureNotationText.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAaH,MAAM,IAAI,GAAG;IACX,MAAM,EAAE;QACN,KAAK,EAAE,yBAAyB;QAChC,IAAI,EAAE,6BAA6B;KACpC;IACD,YAAY,EAAE;QACZ,KAAK,EAAE,+BAA+B;QACtC,IAAI,EAAE,mCAAmC;KAC1C;IACD,YAAY,EAAE;QACZ,KAAK,EAAE,+BAA+B;QACtC,IAAI,EAAE,mCAAmC;KAC1C;IACD,MAAM,EAAE;QACN,KAAK,EAAE,yBAAyB;QAChC,IAAI,EAAE,6BAA6B;KACpC;IACD,cAAc,EAAE;QACd,KAAK,EAAE,iCAAiC;QACxC,IAAI,EAAE,qCAAqC;KAC5C;IACD,sBAAsB,EAAE;QACtB,KAAK,EAAE,yCAAyC;QAChD,IAAI,EAAE,6CAA6C;KACpD;CACsE,CAAC;AAE1E;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC1B,IAA2B;IAE3B,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * What is on the editor's canvas, for whoever is not the editor.
3
+ *
4
+ * The canvas is uncontrolled and reports an edit only after the caller's
5
+ * debounce, so a button beside it cannot ask the editor what is drawn. It is
6
+ * tapped here instead, undebounced, and read back the moment it is needed —
7
+ * which keeps the drawing out of the render path: a structure kept in state
8
+ * would re-render the editor on every stroke.
9
+ */
10
+ import type { CanvasEditorInputFormat } from 'react-ocl';
11
+ import type { StructureSourceInput } from '../core/structureSource.ts';
12
+ import type { StructureEditorChange } from './editorChange.ts';
13
+ /** What {@link useEditorStructure} watches. */
14
+ export interface EditorStructureOptions {
15
+ /** What the editor was given, in `inputFormat`. */
16
+ value: string;
17
+ /** How that value is written. */
18
+ inputFormat: CanvasEditorInputFormat;
19
+ /** Bumped by the caller to load `value` into the canvas again. */
20
+ revision: number;
21
+ }
22
+ /** The canvas as something beside it can read it. */
23
+ export interface EditorStructure {
24
+ /** Called with every edit, before any debounce the caller applies. */
25
+ track: (change: StructureEditorChange) => void;
26
+ /** What is drawn right now, read when a dialog is opened on it. */
27
+ source: () => StructureSourceInput;
28
+ /** Whether the canvas holds nothing. */
29
+ empty: boolean;
30
+ }
31
+ /**
32
+ * Watch what the canvas holds.
33
+ * @param options - See {@link EditorStructureOptions}.
34
+ * @returns The tap, the reader, and whether anything is drawn.
35
+ */
36
+ export declare function useEditorStructure(options: EditorStructureOptions): EditorStructure;
37
+ //# sourceMappingURL=useEditorStructure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useEditorStructure.d.ts","sourceRoot":"","sources":["../../../src/structure/ui/useEditorStructure.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAEzD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAGvE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE/D,+CAA+C;AAC/C,MAAM,WAAW,sBAAsB;IACrC,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,WAAW,EAAE,uBAAuB,CAAC;IACrC,kEAAkE;IAClE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAUD,qDAAqD;AACrD,MAAM,WAAW,eAAe;IAC9B,sEAAsE;IACtE,KAAK,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAC/C,mEAAmE;IACnE,MAAM,EAAE,MAAM,oBAAoB,CAAC;IACnC,wCAAwC;IACxC,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,sBAAsB,GAC9B,eAAe,CAwCjB"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * What is on the editor's canvas, for whoever is not the editor.
3
+ *
4
+ * The canvas is uncontrolled and reports an edit only after the caller's
5
+ * debounce, so a button beside it cannot ask the editor what is drawn. It is
6
+ * tapped here instead, undebounced, and read back the moment it is needed —
7
+ * which keeps the drawing out of the render path: a structure kept in state
8
+ * would re-render the editor on every stroke.
9
+ */
10
+ import { useCallback, useMemo, useRef, useState } from 'react';
11
+ import { structureSource } from "../core/structureSource.js";
12
+ /**
13
+ * Watch what the canvas holds.
14
+ * @param options - See {@link EditorStructureOptions}.
15
+ * @returns The tap, the reader, and whether anything is drawn.
16
+ */
17
+ export function useEditorStructure(options) {
18
+ const { value, inputFormat, revision } = options;
19
+ const drawn = useRef(null);
20
+ const [tracked, setTracked] = useState(null);
21
+ const track = useCallback((change) => {
22
+ // A reaction is not a structure: it has no molecule, and its idCode is a
23
+ // reaction's.
24
+ if (change.mode !== 'molecule')
25
+ return;
26
+ drawn.current = { revision, idCode: change.idCode };
27
+ setTracked(drawn.current);
28
+ }, [revision]);
29
+ const source = useCallback(() => {
30
+ const held = drawn.current;
31
+ // A reload replaces the structure, so an edit made before it describes a
32
+ // canvas that no longer exists: the editor's value is the drawing again.
33
+ // The idCode carries the coordinates after a space, which
34
+ // `structureSource` takes apart.
35
+ return held?.revision === revision
36
+ ? { idCode: held.idCode }
37
+ : given(value, inputFormat);
38
+ }, [revision, value, inputFormat]);
39
+ const givenEmpty = useMemo(() => isEmpty(given(value, inputFormat)), [value, inputFormat]);
40
+ const empty = tracked?.revision === revision
41
+ ? isEmpty({ idCode: tracked.idCode })
42
+ : givenEmpty;
43
+ // One object per state rather than per render: it is handed to a `useCallback`
44
+ // in the editor, and a new identity there would rebuild the canvas's handler
45
+ // on every keystroke the page makes elsewhere.
46
+ return useMemo(() => ({ track, source, empty }), [track, source, empty]);
47
+ }
48
+ /**
49
+ * The editor's own value, as a source.
50
+ * @param value - What the editor was given.
51
+ * @param inputFormat - How it is written.
52
+ * @returns The notation, under the name `structureSource` knows it by.
53
+ */
54
+ function given(value, inputFormat) {
55
+ if (inputFormat === 'molfile')
56
+ return { molfile: value };
57
+ if (inputFormat === 'smiles')
58
+ return { smiles: value };
59
+ return { idCode: value };
60
+ }
61
+ /**
62
+ * Whether a notation describes nothing — a blank value, the idCode an erased
63
+ * canvas leaves behind, a molfile with no atoms.
64
+ * @param input - The notation.
65
+ * @returns Whether there is nothing to export.
66
+ */
67
+ function isEmpty(input) {
68
+ return structureSource(input).kind === 'empty';
69
+ }
70
+ //# sourceMappingURL=useEditorStructure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useEditorStructure.js","sourceRoot":"","sources":["../../../src/structure/ui/useEditorStructure.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAI/D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAgC7D;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAA+B;IAE/B,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IACjD,MAAM,KAAK,GAAG,MAAM,CAAe,IAAI,CAAC,CAAC;IACzC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IAE3D,MAAM,KAAK,GAAG,WAAW,CACvB,CAAC,MAA6B,EAAE,EAAE;QAChC,yEAAyE;QACzE,cAAc;QACd,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU;YAAE,OAAO;QACvC,KAAK,CAAC,OAAO,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;QACpD,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,MAAM,MAAM,GAAG,WAAW,CAAC,GAAyB,EAAE;QACpD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC;QAC3B,yEAAyE;QACzE,yEAAyE;QACzE,0DAA0D;QAC1D,iCAAiC;QACjC,OAAO,IAAI,EAAE,QAAQ,KAAK,QAAQ;YAChC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;YACzB,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAChC,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;IAEnC,MAAM,UAAU,GAAG,OAAO,CACxB,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,EACxC,CAAC,KAAK,EAAE,WAAW,CAAC,CACrB,CAAC;IACF,MAAM,KAAK,GACT,OAAO,EAAE,QAAQ,KAAK,QAAQ;QAC5B,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QACrC,CAAC,CAAC,UAAU,CAAC;IAEjB,+EAA+E;IAC/E,6EAA6E;IAC7E,+CAA+C;IAC/C,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED;;;;;GAKG;AACH,SAAS,KAAK,CACZ,KAAa,EACb,WAAoC;IAEpC,IAAI,WAAW,KAAK,SAAS;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACzD,IAAI,WAAW,KAAK,QAAQ;QAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACvD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC3B,CAAC;AAED;;;;;GAKG;AACH,SAAS,OAAO,CAAC,KAA2B;IAC1C,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC;AACjD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-cheminfo",
3
- "version": "0.38.0",
3
+ "version": "0.39.1",
4
4
  "license": "MIT",
5
5
  "description": "React components, hooks and framework-free helpers shared by the cheminfo sites: site chrome, citations, sharing, routing, pedagogy, charts, and the structure, orbital and 3D molecule viewers",
6
6
  "author": "Luc Patiny",