react-cheminfo 0.37.0 → 0.39.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 (417) hide show
  1. package/README.md +77 -1
  2. package/bin/check-seo.mjs +43 -1
  3. package/lib/chart/ui/Axes.d.ts +19 -0
  4. package/lib/chart/ui/Axes.d.ts.map +1 -1
  5. package/lib/chart/ui/Axes.js +25 -5
  6. package/lib/chart/ui/Axes.js.map +1 -1
  7. package/lib/chrome/ui/NavMenuButton.d.ts.map +1 -1
  8. package/lib/chrome/ui/NavMenuButton.js +41 -11
  9. package/lib/chrome/ui/NavMenuButton.js.map +1 -1
  10. package/lib/chrome/ui/SiteHeader.js +24 -1
  11. package/lib/chrome/ui/SiteHeader.js.map +1 -1
  12. package/lib/chrome/ui/navItem.d.ts +7 -0
  13. package/lib/chrome/ui/navItem.d.ts.map +1 -1
  14. package/lib/chrome/ui/navItem.js.map +1 -1
  15. package/lib/citation/ui/entries.d.ts.map +1 -1
  16. package/lib/citation/ui/entries.js +6 -1
  17. package/lib/citation/ui/entries.js.map +1 -1
  18. package/lib/clipboard/ui/ClickToCopy.d.ts +11 -0
  19. package/lib/clipboard/ui/ClickToCopy.d.ts.map +1 -1
  20. package/lib/clipboard/ui/ClickToCopy.js +28 -10
  21. package/lib/clipboard/ui/ClickToCopy.js.map +1 -1
  22. package/lib/clipboard/ui/CopyButton.d.ts +2 -1
  23. package/lib/clipboard/ui/CopyButton.d.ts.map +1 -1
  24. package/lib/clipboard/ui/CopyButton.js +2 -1
  25. package/lib/clipboard/ui/CopyButton.js.map +1 -1
  26. package/lib/clipboard/ui/CopyableValue.d.ts +24 -4
  27. package/lib/clipboard/ui/CopyableValue.d.ts.map +1 -1
  28. package/lib/clipboard/ui/CopyableValue.js +35 -3
  29. package/lib/clipboard/ui/CopyableValue.js.map +1 -1
  30. package/lib/clipboard/ui/index.d.ts +1 -1
  31. package/lib/clipboard/ui/index.d.ts.map +1 -1
  32. package/lib/clipboard/ui/index.js.map +1 -1
  33. package/lib/confirm/ui/ConfirmButton.d.ts.map +1 -1
  34. package/lib/confirm/ui/ConfirmButton.js +2 -1
  35. package/lib/confirm/ui/ConfirmButton.js.map +1 -1
  36. package/lib/core.d.ts +1 -0
  37. package/lib/core.d.ts.map +1 -1
  38. package/lib/core.js +1 -0
  39. package/lib/core.js.map +1 -1
  40. package/lib/delimited/ui/TableDataButton.d.ts.map +1 -1
  41. package/lib/delimited/ui/TableDataButton.js +2 -1
  42. package/lib/delimited/ui/TableDataButton.js.map +1 -1
  43. package/lib/download/core/figureSvg.d.ts.map +1 -1
  44. package/lib/download/core/figureSvg.js +37 -12
  45. package/lib/download/core/figureSvg.js.map +1 -1
  46. package/lib/help/ui/HelpToolbarButton.d.ts.map +1 -1
  47. package/lib/help/ui/HelpToolbarButton.js +2 -1
  48. package/lib/help/ui/HelpToolbarButton.js.map +1 -1
  49. package/lib/i18n/core/chromeCatalog.d.ts +1 -1
  50. package/lib/i18n/core/chromeCatalog.d.ts.map +1 -1
  51. package/lib/locales/de.json +48 -5
  52. package/lib/locales/en.json +48 -5
  53. package/lib/locales/es.json +48 -5
  54. package/lib/locales/fr.json +48 -5
  55. package/lib/locales/it.json +48 -5
  56. package/lib/number/core/index.d.ts +1 -1
  57. package/lib/number/core/index.d.ts.map +1 -1
  58. package/lib/number/core/index.js +1 -1
  59. package/lib/number/core/index.js.map +1 -1
  60. package/lib/number/core/numberText.d.ts +13 -0
  61. package/lib/number/core/numberText.d.ts.map +1 -1
  62. package/lib/number/core/numberText.js +20 -0
  63. package/lib/number/core/numberText.js.map +1 -1
  64. package/lib/number/ui/NumberInput.js +1 -1
  65. package/lib/number/ui/NumberInput.js.map +1 -1
  66. package/lib/overlay/ui/OverlayIconButton.d.ts.map +1 -1
  67. package/lib/overlay/ui/OverlayIconButton.js +1 -1
  68. package/lib/overlay/ui/OverlayIconButton.js.map +1 -1
  69. package/lib/panel/ui/ClearButton.d.ts.map +1 -1
  70. package/lib/panel/ui/ClearButton.js +1 -1
  71. package/lib/panel/ui/ClearButton.js.map +1 -1
  72. package/lib/pedagogy/core/inlineMarks.d.ts +9 -5
  73. package/lib/pedagogy/core/inlineMarks.d.ts.map +1 -1
  74. package/lib/pedagogy/core/inlineMarks.js +14 -6
  75. package/lib/pedagogy/core/inlineMarks.js.map +1 -1
  76. package/lib/pedagogy/ui/GlossaryDefinition.d.ts +4 -10
  77. package/lib/pedagogy/ui/GlossaryDefinition.d.ts.map +1 -1
  78. package/lib/pedagogy/ui/GlossaryDefinition.js +7 -7
  79. package/lib/pedagogy/ui/GlossaryDefinition.js.map +1 -1
  80. package/lib/pedagogy/ui/GlossaryIndex.d.ts.map +1 -1
  81. package/lib/pedagogy/ui/GlossaryIndex.js +1 -1
  82. package/lib/pedagogy/ui/GlossaryIndex.js.map +1 -1
  83. package/lib/pedagogy/ui/GlossaryProvider.d.ts +7 -0
  84. package/lib/pedagogy/ui/GlossaryProvider.d.ts.map +1 -1
  85. package/lib/pedagogy/ui/GlossaryProvider.js +3 -2
  86. package/lib/pedagogy/ui/GlossaryProvider.js.map +1 -1
  87. package/lib/pedagogy/ui/GlossaryText.d.ts +7 -2
  88. package/lib/pedagogy/ui/GlossaryText.d.ts.map +1 -1
  89. package/lib/pedagogy/ui/GlossaryText.js +3 -2
  90. package/lib/pedagogy/ui/GlossaryText.js.map +1 -1
  91. package/lib/pedagogy/ui/InlineText.d.ts +8 -2
  92. package/lib/pedagogy/ui/InlineText.d.ts.map +1 -1
  93. package/lib/pedagogy/ui/InlineText.js +7 -2
  94. package/lib/pedagogy/ui/InlineText.js.map +1 -1
  95. package/lib/pedagogy/ui/ReferenceSectionBlock.d.ts +4 -1
  96. package/lib/pedagogy/ui/ReferenceSectionBlock.d.ts.map +1 -1
  97. package/lib/pedagogy/ui/ReferenceSectionBlock.js +2 -1
  98. package/lib/pedagogy/ui/ReferenceSectionBlock.js.map +1 -1
  99. package/lib/pedagogy/ui/SyntaxTooltip.d.ts.map +1 -1
  100. package/lib/pedagogy/ui/SyntaxTooltip.js +11 -10
  101. package/lib/pedagogy/ui/SyntaxTooltip.js.map +1 -1
  102. package/lib/pedagogy/ui/TutorialStepStrip.d.ts.map +1 -1
  103. package/lib/pedagogy/ui/TutorialStepStrip.js +18 -4
  104. package/lib/pedagogy/ui/TutorialStepStrip.js.map +1 -1
  105. package/lib/pedagogy/ui/glossaryContext.d.ts +7 -0
  106. package/lib/pedagogy/ui/glossaryContext.d.ts.map +1 -1
  107. package/lib/pedagogy/ui/glossaryContext.js.map +1 -1
  108. package/lib/pedagogy/ui/index.d.ts +1 -1
  109. package/lib/pedagogy/ui/index.d.ts.map +1 -1
  110. package/lib/pedagogy/ui/inlineSegments.d.ts +5 -0
  111. package/lib/pedagogy/ui/inlineSegments.d.ts.map +1 -1
  112. package/lib/pedagogy/ui/inlineSegments.js +2 -0
  113. package/lib/pedagogy/ui/inlineSegments.js.map +1 -1
  114. package/lib/pedagogy/ui/pedagogyStyle.d.ts +8 -9
  115. package/lib/pedagogy/ui/pedagogyStyle.d.ts.map +1 -1
  116. package/lib/pedagogy/ui/pedagogyStyle.js +10 -18
  117. package/lib/pedagogy/ui/pedagogyStyle.js.map +1 -1
  118. package/lib/range/core/index.d.ts +4 -0
  119. package/lib/range/core/index.d.ts.map +1 -0
  120. package/lib/range/core/index.js +3 -0
  121. package/lib/range/core/index.js.map +1 -0
  122. package/lib/range/core/rangeBounds.d.ts +79 -0
  123. package/lib/range/core/rangeBounds.d.ts.map +1 -0
  124. package/lib/range/core/rangeBounds.js +110 -0
  125. package/lib/range/core/rangeBounds.js.map +1 -0
  126. package/lib/range/core/rangeHistogram.d.ts +13 -0
  127. package/lib/range/core/rangeHistogram.d.ts.map +1 -0
  128. package/lib/range/core/rangeHistogram.js +39 -0
  129. package/lib/range/core/rangeHistogram.js.map +1 -0
  130. package/lib/range/ui/RangeHistogram.d.ts +20 -0
  131. package/lib/range/ui/RangeHistogram.d.ts.map +1 -0
  132. package/lib/range/ui/RangeHistogram.js +18 -0
  133. package/lib/range/ui/RangeHistogram.js.map +1 -0
  134. package/lib/range/ui/RangeSlider.d.ts +77 -0
  135. package/lib/range/ui/RangeSlider.d.ts.map +1 -0
  136. package/lib/range/ui/RangeSlider.js +60 -0
  137. package/lib/range/ui/RangeSlider.js.map +1 -0
  138. package/lib/range/ui/RangeValue.d.ts +41 -0
  139. package/lib/range/ui/RangeValue.d.ts.map +1 -0
  140. package/lib/range/ui/RangeValue.js +73 -0
  141. package/lib/range/ui/RangeValue.js.map +1 -0
  142. package/lib/range/ui/index.d.ts +3 -0
  143. package/lib/range/ui/index.d.ts.map +1 -0
  144. package/lib/range/ui/index.js +2 -0
  145. package/lib/range/ui/index.js.map +1 -0
  146. package/lib/seo/core/documentMeta.d.ts +16 -0
  147. package/lib/seo/core/documentMeta.d.ts.map +1 -1
  148. package/lib/seo/core/documentMeta.js +18 -0
  149. package/lib/seo/core/documentMeta.js.map +1 -1
  150. package/lib/seo/core/index.d.ts +3 -1
  151. package/lib/seo/core/index.d.ts.map +1 -1
  152. package/lib/seo/core/index.js +2 -1
  153. package/lib/seo/core/index.js.map +1 -1
  154. package/lib/seo/core/noscript.d.ts +8 -0
  155. package/lib/seo/core/noscript.d.ts.map +1 -1
  156. package/lib/seo/core/noscript.js +10 -3
  157. package/lib/seo/core/noscript.js.map +1 -1
  158. package/lib/seo/core/pageMeta.d.ts +10 -2
  159. package/lib/seo/core/pageMeta.d.ts.map +1 -1
  160. package/lib/seo/core/pageMeta.js +12 -3
  161. package/lib/seo/core/pageMeta.js.map +1 -1
  162. package/lib/seo/core/plainDescription.d.ts +2 -2
  163. package/lib/seo/core/plainDescription.js +5 -2
  164. package/lib/seo/core/plainDescription.js.map +1 -1
  165. package/lib/seo/core/siteFiles.d.ts +32 -3
  166. package/lib/seo/core/siteFiles.d.ts.map +1 -1
  167. package/lib/seo/core/siteFiles.js +13 -4
  168. package/lib/seo/core/siteFiles.js.map +1 -1
  169. package/lib/seo/core/startDocumentMeta.js +8 -7
  170. package/lib/seo/core/startDocumentMeta.js.map +1 -1
  171. package/lib/seo/vite/prerender.d.ts +26 -4
  172. package/lib/seo/vite/prerender.d.ts.map +1 -1
  173. package/lib/seo/vite/prerender.js +100 -30
  174. package/lib/seo/vite/prerender.js.map +1 -1
  175. package/lib/share/core/devices.d.ts +41 -0
  176. package/lib/share/core/devices.d.ts.map +1 -0
  177. package/lib/share/core/devices.js +58 -0
  178. package/lib/share/core/devices.js.map +1 -0
  179. package/lib/share/core/index.d.ts +4 -0
  180. package/lib/share/core/index.d.ts.map +1 -1
  181. package/lib/share/core/index.js +2 -0
  182. package/lib/share/core/index.js.map +1 -1
  183. package/lib/share/core/regions.d.ts +43 -0
  184. package/lib/share/core/regions.d.ts.map +1 -0
  185. package/lib/share/core/regions.js +71 -0
  186. package/lib/share/core/regions.js.map +1 -0
  187. package/lib/share/ui/HiddenPartsProvider.d.ts.map +1 -1
  188. package/lib/share/ui/HiddenPartsProvider.js +4 -1
  189. package/lib/share/ui/HiddenPartsProvider.js.map +1 -1
  190. package/lib/share/ui/PagePart.d.ts.map +1 -1
  191. package/lib/share/ui/PagePart.js +10 -1
  192. package/lib/share/ui/PagePart.js.map +1 -1
  193. package/lib/share/ui/ShareButton.d.ts.map +1 -1
  194. package/lib/share/ui/ShareButton.js +3 -4
  195. package/lib/share/ui/ShareButton.js.map +1 -1
  196. package/lib/share/ui/ShareConfigOptions.d.ts +6 -1
  197. package/lib/share/ui/ShareConfigOptions.d.ts.map +1 -1
  198. package/lib/share/ui/ShareConfigOptions.js +6 -13
  199. package/lib/share/ui/ShareConfigOptions.js.map +1 -1
  200. package/lib/share/ui/ShareDialog.d.ts +14 -0
  201. package/lib/share/ui/ShareDialog.d.ts.map +1 -1
  202. package/lib/share/ui/ShareDialog.js +3 -3
  203. package/lib/share/ui/ShareDialog.js.map +1 -1
  204. package/lib/share/ui/ShareDialogContent.d.ts +2 -2
  205. package/lib/share/ui/ShareDialogContent.d.ts.map +1 -1
  206. package/lib/share/ui/ShareDialogContent.js +36 -30
  207. package/lib/share/ui/ShareDialogContent.js.map +1 -1
  208. package/lib/share/ui/ShareLinkBar.d.ts +21 -0
  209. package/lib/share/ui/ShareLinkBar.d.ts.map +1 -0
  210. package/lib/share/ui/ShareLinkBar.js +32 -0
  211. package/lib/share/ui/ShareLinkBar.js.map +1 -0
  212. package/lib/share/ui/SharePanes.d.ts +17 -0
  213. package/lib/share/ui/SharePanes.d.ts.map +1 -0
  214. package/lib/share/ui/SharePanes.js +27 -0
  215. package/lib/share/ui/SharePanes.js.map +1 -0
  216. package/lib/share/ui/SharePartOptions.d.ts +9 -3
  217. package/lib/share/ui/SharePartOptions.d.ts.map +1 -1
  218. package/lib/share/ui/SharePartOptions.js +12 -16
  219. package/lib/share/ui/SharePartOptions.js.map +1 -1
  220. package/lib/share/ui/SharePartRow.d.ts +37 -0
  221. package/lib/share/ui/SharePartRow.d.ts.map +1 -0
  222. package/lib/share/ui/SharePartRow.js +25 -0
  223. package/lib/share/ui/SharePartRow.js.map +1 -0
  224. package/lib/share/ui/SharePresetTabs.d.ts +10 -7
  225. package/lib/share/ui/SharePresetTabs.d.ts.map +1 -1
  226. package/lib/share/ui/SharePresetTabs.js +17 -17
  227. package/lib/share/ui/SharePresetTabs.js.map +1 -1
  228. package/lib/share/ui/SharePreview.d.ts +32 -0
  229. package/lib/share/ui/SharePreview.d.ts.map +1 -0
  230. package/lib/share/ui/SharePreview.js +104 -0
  231. package/lib/share/ui/SharePreview.js.map +1 -0
  232. package/lib/share/ui/SharePreviewDevices.d.ts +20 -0
  233. package/lib/share/ui/SharePreviewDevices.d.ts.map +1 -0
  234. package/lib/share/ui/SharePreviewDevices.js +40 -0
  235. package/lib/share/ui/SharePreviewDevices.js.map +1 -0
  236. package/lib/share/ui/index.d.ts +1 -0
  237. package/lib/share/ui/index.d.ts.map +1 -1
  238. package/lib/share/ui/index.js.map +1 -1
  239. package/lib/share/ui/shareMarking.d.ts +14 -0
  240. package/lib/share/ui/shareMarking.d.ts.map +1 -0
  241. package/lib/share/ui/shareMarking.js +17 -0
  242. package/lib/share/ui/shareMarking.js.map +1 -0
  243. package/lib/share/ui/useShareRegionReports.d.ts +12 -0
  244. package/lib/share/ui/useShareRegionReports.d.ts.map +1 -0
  245. package/lib/share/ui/useShareRegionReports.js +73 -0
  246. package/lib/share/ui/useShareRegionReports.js.map +1 -0
  247. package/lib/shared/ui/ActionTooltip.d.ts +42 -0
  248. package/lib/shared/ui/ActionTooltip.d.ts.map +1 -0
  249. package/lib/shared/ui/ActionTooltip.js +21 -0
  250. package/lib/shared/ui/ActionTooltip.js.map +1 -0
  251. package/lib/shared/ui/index.d.ts +4 -0
  252. package/lib/shared/ui/index.d.ts.map +1 -1
  253. package/lib/shared/ui/index.js +2 -0
  254. package/lib/shared/ui/index.js.map +1 -1
  255. package/lib/shared/ui/useActionTooltip.d.ts +48 -0
  256. package/lib/shared/ui/useActionTooltip.d.ts.map +1 -0
  257. package/lib/shared/ui/useActionTooltip.js +78 -0
  258. package/lib/shared/ui/useActionTooltip.js.map +1 -0
  259. package/lib/structure/core/index.d.ts +2 -0
  260. package/lib/structure/core/index.d.ts.map +1 -1
  261. package/lib/structure/core/index.js +1 -0
  262. package/lib/structure/core/index.js.map +1 -1
  263. package/lib/structure/core/sourceMolecule.d.ts +18 -0
  264. package/lib/structure/core/sourceMolecule.d.ts.map +1 -0
  265. package/lib/structure/core/sourceMolecule.js +26 -0
  266. package/lib/structure/core/sourceMolecule.js.map +1 -0
  267. package/lib/structure/core/structureNotations.d.ts +57 -0
  268. package/lib/structure/core/structureNotations.d.ts.map +1 -0
  269. package/lib/structure/core/structureNotations.js +74 -0
  270. package/lib/structure/core/structureNotations.js.map +1 -0
  271. package/lib/structure/core/structurePicture.d.ts +49 -0
  272. package/lib/structure/core/structurePicture.d.ts.map +1 -0
  273. package/lib/structure/core/structurePicture.js +83 -0
  274. package/lib/structure/core/structurePicture.js.map +1 -0
  275. package/lib/structure/ui/EditorExportButton.d.ts +23 -0
  276. package/lib/structure/ui/EditorExportButton.d.ts.map +1 -0
  277. package/lib/structure/ui/EditorExportButton.js +23 -0
  278. package/lib/structure/ui/EditorExportButton.js.map +1 -0
  279. package/lib/structure/ui/EditorHelpButton.d.ts +5 -2
  280. package/lib/structure/ui/EditorHelpButton.d.ts.map +1 -1
  281. package/lib/structure/ui/EditorHelpButton.js +8 -9
  282. package/lib/structure/ui/EditorHelpButton.js.map +1 -1
  283. package/lib/structure/ui/StructureEditor.d.ts +8 -0
  284. package/lib/structure/ui/StructureEditor.d.ts.map +1 -1
  285. package/lib/structure/ui/StructureEditor.js +26 -3
  286. package/lib/structure/ui/StructureEditor.js.map +1 -1
  287. package/lib/structure/ui/StructureExportDialog.d.ts +34 -0
  288. package/lib/structure/ui/StructureExportDialog.d.ts.map +1 -0
  289. package/lib/structure/ui/StructureExportDialog.js +43 -0
  290. package/lib/structure/ui/StructureExportDialog.js.map +1 -0
  291. package/lib/structure/ui/StructureExportPanel.d.ts +37 -0
  292. package/lib/structure/ui/StructureExportPanel.d.ts.map +1 -0
  293. package/lib/structure/ui/StructureExportPanel.js +75 -0
  294. package/lib/structure/ui/StructureExportPanel.js.map +1 -0
  295. package/lib/structure/ui/StructureNotationRow.d.ts +22 -0
  296. package/lib/structure/ui/StructureNotationRow.d.ts.map +1 -0
  297. package/lib/structure/ui/StructureNotationRow.js +34 -0
  298. package/lib/structure/ui/StructureNotationRow.js.map +1 -0
  299. package/lib/structure/ui/StructurePicturePane.d.ts +23 -0
  300. package/lib/structure/ui/StructurePicturePane.d.ts.map +1 -0
  301. package/lib/structure/ui/StructurePicturePane.js +113 -0
  302. package/lib/structure/ui/StructurePicturePane.js.map +1 -0
  303. package/lib/structure/ui/StructureSvg.d.ts.map +1 -1
  304. package/lib/structure/ui/StructureSvg.js +2 -18
  305. package/lib/structure/ui/StructureSvg.js.map +1 -1
  306. package/lib/structure/ui/ToolbarTooltip.d.ts.map +1 -1
  307. package/lib/structure/ui/ToolbarTooltip.js +1 -2
  308. package/lib/structure/ui/ToolbarTooltip.js.map +1 -1
  309. package/lib/structure/ui/index.d.ts +7 -3
  310. package/lib/structure/ui/index.d.ts.map +1 -1
  311. package/lib/structure/ui/index.js +5 -3
  312. package/lib/structure/ui/index.js.map +1 -1
  313. package/lib/structure/ui/structureNotationText.d.ts +23 -0
  314. package/lib/structure/ui/structureNotationText.d.ts.map +1 -0
  315. package/lib/structure/ui/structureNotationText.js +42 -0
  316. package/lib/structure/ui/structureNotationText.js.map +1 -0
  317. package/lib/structure/ui/useEditorStructure.d.ts +37 -0
  318. package/lib/structure/ui/useEditorStructure.d.ts.map +1 -0
  319. package/lib/structure/ui/useEditorStructure.js +70 -0
  320. package/lib/structure/ui/useEditorStructure.js.map +1 -0
  321. package/lib/ui.d.ts +1 -0
  322. package/lib/ui.d.ts.map +1 -1
  323. package/lib/ui.js +1 -0
  324. package/lib/ui.js.map +1 -1
  325. package/package.json +1 -1
  326. package/src/chart/ui/Axes.tsx +53 -5
  327. package/src/chrome/ui/NavMenuButton.tsx +61 -18
  328. package/src/chrome/ui/SiteHeader.tsx +37 -1
  329. package/src/chrome/ui/navItem.ts +7 -0
  330. package/src/citation/ui/entries.tsx +10 -2
  331. package/src/clipboard/ui/ClickToCopy.tsx +47 -13
  332. package/src/clipboard/ui/CopyButton.tsx +4 -2
  333. package/src/clipboard/ui/CopyableValue.tsx +88 -13
  334. package/src/clipboard/ui/index.ts +5 -1
  335. package/src/confirm/ui/ConfirmButton.tsx +2 -0
  336. package/src/core.ts +1 -0
  337. package/src/delimited/ui/TableDataButton.tsx +2 -1
  338. package/src/download/core/figureSvg.ts +42 -10
  339. package/src/help/ui/HelpToolbarButton.tsx +2 -1
  340. package/src/locales/de.json +48 -5
  341. package/src/locales/en.json +48 -5
  342. package/src/locales/es.json +48 -5
  343. package/src/locales/fr.json +48 -5
  344. package/src/locales/it.json +48 -5
  345. package/src/number/core/index.ts +1 -0
  346. package/src/number/core/numberText.ts +20 -0
  347. package/src/number/ui/NumberInput.tsx +1 -1
  348. package/src/overlay/ui/OverlayIconButton.tsx +1 -0
  349. package/src/panel/ui/ClearButton.tsx +1 -0
  350. package/src/pedagogy/core/inlineMarks.ts +15 -7
  351. package/src/pedagogy/ui/GlossaryDefinition.tsx +8 -18
  352. package/src/pedagogy/ui/GlossaryIndex.tsx +0 -1
  353. package/src/pedagogy/ui/GlossaryProvider.tsx +10 -2
  354. package/src/pedagogy/ui/GlossaryText.tsx +10 -2
  355. package/src/pedagogy/ui/InlineText.tsx +21 -4
  356. package/src/pedagogy/ui/ReferenceSectionBlock.tsx +8 -2
  357. package/src/pedagogy/ui/SyntaxTooltip.tsx +11 -9
  358. package/src/pedagogy/ui/TutorialStepStrip.tsx +50 -18
  359. package/src/pedagogy/ui/glossaryContext.ts +7 -0
  360. package/src/pedagogy/ui/index.ts +1 -1
  361. package/src/pedagogy/ui/inlineSegments.tsx +7 -0
  362. package/src/pedagogy/ui/pedagogyStyle.ts +12 -24
  363. package/src/range/core/index.ts +11 -0
  364. package/src/range/core/rangeBounds.ts +143 -0
  365. package/src/range/core/rangeHistogram.ts +38 -0
  366. package/src/range/ui/RangeHistogram.tsx +49 -0
  367. package/src/range/ui/RangeSlider.tsx +209 -0
  368. package/src/range/ui/RangeValue.tsx +166 -0
  369. package/src/range/ui/index.ts +2 -0
  370. package/src/seo/core/documentMeta.ts +22 -0
  371. package/src/seo/core/index.ts +8 -1
  372. package/src/seo/core/noscript.ts +20 -2
  373. package/src/seo/core/pageMeta.ts +29 -5
  374. package/src/seo/core/plainDescription.ts +4 -2
  375. package/src/seo/core/siteFiles.ts +45 -10
  376. package/src/seo/core/startDocumentMeta.ts +9 -9
  377. package/src/seo/vite/prerender.ts +160 -36
  378. package/src/share/core/devices.ts +80 -0
  379. package/src/share/core/index.ts +14 -0
  380. package/src/share/core/regions.ts +87 -0
  381. package/src/share/ui/HiddenPartsProvider.tsx +6 -1
  382. package/src/share/ui/PagePart.tsx +12 -1
  383. package/src/share/ui/ShareButton.tsx +3 -6
  384. package/src/share/ui/ShareConfigOptions.tsx +25 -16
  385. package/src/share/ui/ShareDialog.tsx +17 -3
  386. package/src/share/ui/ShareDialogContent.tsx +80 -77
  387. package/src/share/ui/ShareLinkBar.tsx +70 -0
  388. package/src/share/ui/SharePanes.tsx +62 -0
  389. package/src/share/ui/SharePartOptions.tsx +25 -26
  390. package/src/share/ui/SharePartRow.tsx +78 -0
  391. package/src/share/ui/SharePresetTabs.tsx +36 -43
  392. package/src/share/ui/SharePreview.tsx +204 -0
  393. package/src/share/ui/SharePreviewDevices.tsx +70 -0
  394. package/src/share/ui/index.ts +1 -0
  395. package/src/share/ui/shareMarking.ts +18 -0
  396. package/src/share/ui/useShareRegionReports.ts +84 -0
  397. package/src/shared/ui/ActionTooltip.tsx +70 -0
  398. package/src/shared/ui/index.ts +7 -0
  399. package/src/shared/ui/useActionTooltip.ts +103 -0
  400. package/src/structure/core/index.ts +5 -0
  401. package/src/structure/core/sourceMolecule.ts +26 -0
  402. package/src/structure/core/structureNotations.ts +125 -0
  403. package/src/structure/core/structurePicture.ts +119 -0
  404. package/src/structure/ui/EditorExportButton.tsx +62 -0
  405. package/src/structure/ui/EditorHelpButton.tsx +26 -30
  406. package/src/structure/ui/StructureEditor.tsx +51 -5
  407. package/src/structure/ui/StructureExportDialog.tsx +90 -0
  408. package/src/structure/ui/StructureExportPanel.tsx +156 -0
  409. package/src/structure/ui/StructureNotationRow.tsx +74 -0
  410. package/src/structure/ui/StructurePicturePane.tsx +208 -0
  411. package/src/structure/ui/StructureSvg.tsx +3 -12
  412. package/src/structure/ui/ToolbarTooltip.tsx +1 -1
  413. package/src/structure/ui/index.ts +7 -3
  414. package/src/structure/ui/structureNotationText.ts +56 -0
  415. package/src/structure/ui/useEditorStructure.ts +119 -0
  416. package/src/ui.ts +1 -0
  417. package/styles/chrome.css +546 -11
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Where each part of a page sits, so a share dialog can show which region of
3
+ * the preview a row of its list names.
4
+ *
5
+ * The two sides are different documents — the dialog and the framed page — so
6
+ * they speak by message. Everything that arrives is somebody else's input: a
7
+ * framed page is messaged by whatever page frames it, and a dialog by whatever
8
+ * it frames, so both ends read rather than trust.
9
+ */
10
+ /** Asks a framed page to report where its parts are, and to keep reporting. */
11
+ export declare const SHARE_REGIONS_REQUEST = "cheminfo:share-regions-request";
12
+ /** Carries the answer back to the dialog. */
13
+ export declare const SHARE_REGIONS_MESSAGE = "cheminfo:share-regions";
14
+ /** The box one part of the page occupies, in the page's own coordinates. */
15
+ export interface ShareRegion {
16
+ /** The name the part takes in `?hide=`. */
17
+ part: string;
18
+ /** Distance from the left edge of the page, in CSS pixels. */
19
+ x: number;
20
+ /** Distance from the top edge of the page, in CSS pixels. */
21
+ y: number;
22
+ /** Width of the box, in CSS pixels. */
23
+ width: number;
24
+ /** Height of the box, in CSS pixels. */
25
+ height: number;
26
+ }
27
+ /**
28
+ * Whether a message asks this page to report where its parts are.
29
+ * @param data - What arrived on the message event.
30
+ * @returns Whether it is the request.
31
+ */
32
+ export declare function isShareRegionsRequest(data: unknown): boolean;
33
+ /**
34
+ * The regions a framed page reported, or `null` for anything else that arrived.
35
+ *
36
+ * A region with a name that is not a string, or a side that is not a finite
37
+ * number, is dropped rather than taken: a dialog drawing a box from a number it
38
+ * did not check draws it across the whole screen.
39
+ * @param data - What arrived on the message event.
40
+ * @returns The regions, or `null` when the message is not one.
41
+ */
42
+ export declare function readShareRegions(data: unknown): ShareRegion[] | null;
43
+ //# sourceMappingURL=regions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regions.d.ts","sourceRoot":"","sources":["../../../src/share/core/regions.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,+EAA+E;AAC/E,eAAO,MAAM,qBAAqB,mCAAmC,CAAC;AAEtE,6CAA6C;AAC7C,eAAO,MAAM,qBAAqB,2BAA2B,CAAC;AAE9D,4EAA4E;AAC5E,MAAM,WAAW,WAAW;IAC1B,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,CAAC,EAAE,MAAM,CAAC;IACV,6DAA6D;IAC7D,CAAC,EAAE,MAAM,CAAC;IACV,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAE5D;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,EAAE,GAAG,IAAI,CAWpE"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Where each part of a page sits, so a share dialog can show which region of
3
+ * the preview a row of its list names.
4
+ *
5
+ * The two sides are different documents — the dialog and the framed page — so
6
+ * they speak by message. Everything that arrives is somebody else's input: a
7
+ * framed page is messaged by whatever page frames it, and a dialog by whatever
8
+ * it frames, so both ends read rather than trust.
9
+ */
10
+ /** Asks a framed page to report where its parts are, and to keep reporting. */
11
+ export const SHARE_REGIONS_REQUEST = 'cheminfo:share-regions-request';
12
+ /** Carries the answer back to the dialog. */
13
+ export const SHARE_REGIONS_MESSAGE = 'cheminfo:share-regions';
14
+ /**
15
+ * Whether a message asks this page to report where its parts are.
16
+ * @param data - What arrived on the message event.
17
+ * @returns Whether it is the request.
18
+ */
19
+ export function isShareRegionsRequest(data) {
20
+ return messageType(data) === SHARE_REGIONS_REQUEST;
21
+ }
22
+ /**
23
+ * The regions a framed page reported, or `null` for anything else that arrived.
24
+ *
25
+ * A region with a name that is not a string, or a side that is not a finite
26
+ * number, is dropped rather than taken: a dialog drawing a box from a number it
27
+ * did not check draws it across the whole screen.
28
+ * @param data - What arrived on the message event.
29
+ * @returns The regions, or `null` when the message is not one.
30
+ */
31
+ export function readShareRegions(data) {
32
+ if (messageType(data) !== SHARE_REGIONS_MESSAGE)
33
+ return null;
34
+ const { regions } = data;
35
+ if (!Array.isArray(regions))
36
+ return null;
37
+ const read = [];
38
+ for (const candidate of regions) {
39
+ const region = readRegion(candidate);
40
+ if (region !== null)
41
+ read.push(region);
42
+ }
43
+ return read;
44
+ }
45
+ function readRegion(candidate) {
46
+ if (typeof candidate !== 'object' || candidate === null)
47
+ return null;
48
+ const { part, x, y, width, height } = candidate;
49
+ if (typeof part !== 'string' || part === '')
50
+ return null;
51
+ if (!Number.isFinite(x) ||
52
+ !Number.isFinite(y) ||
53
+ !Number.isFinite(width) ||
54
+ !Number.isFinite(height)) {
55
+ return null;
56
+ }
57
+ return {
58
+ part,
59
+ x: x,
60
+ y: y,
61
+ width: width,
62
+ height: height,
63
+ };
64
+ }
65
+ function messageType(data) {
66
+ if (typeof data !== 'object' || data === null)
67
+ return null;
68
+ const { type } = data;
69
+ return typeof type === 'string' ? type : null;
70
+ }
71
+ //# sourceMappingURL=regions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regions.js","sourceRoot":"","sources":["../../../src/share/core/regions.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,+EAA+E;AAC/E,MAAM,CAAC,MAAM,qBAAqB,GAAG,gCAAgC,CAAC;AAEtE,6CAA6C;AAC7C,MAAM,CAAC,MAAM,qBAAqB,GAAG,wBAAwB,CAAC;AAgB9D;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAa;IACjD,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,qBAAqB,CAAC;AACrD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAa;IAC5C,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,qBAAqB;QAAE,OAAO,IAAI,CAAC;IAC7D,MAAM,EAAE,OAAO,EAAE,GAAG,IAA6B,CAAC;IAClD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzC,MAAM,IAAI,GAAkB,EAAE,CAAC;IAC/B,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;QACrC,IAAI,MAAM,KAAK,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,UAAU,CAAC,SAAkB;IACpC,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACrE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,SAAoC,CAAC;IAC3E,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IACzD,IACE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnB,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QACvB,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EACxB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO;QACL,IAAI;QACJ,CAAC,EAAE,CAAW;QACd,CAAC,EAAE,CAAW;QACd,KAAK,EAAE,KAAe;QACtB,MAAM,EAAE,MAAgB;KACzB,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,IAAa;IAChC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC3D,MAAM,EAAE,IAAI,EAAE,GAAG,IAA0B,CAAC;IAC5C,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAChD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"HiddenPartsProvider.d.ts","sourceRoot":"","sources":["../../../src/share/ui/HiddenPartsProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKrD,MAAM,WAAW,wBAAwB;IACvC;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,kEAAkE;IAClE,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,wBAAwB,GAC9B,YAAY,CASd"}
1
+ {"version":3,"file":"HiddenPartsProvider.d.ts","sourceRoot":"","sources":["../../../src/share/ui/HiddenPartsProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAOrD,MAAM,WAAW,wBAAwB;IACvC;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,kEAAkE;IAClE,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,wBAAwB,GAC9B,YAAY,CAYd"}
@@ -1,6 +1,8 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useMemo } from 'react';
3
3
  import { HiddenPartsContext } from "./hiddenParts.js";
4
+ import { ShareMarkingContext } from "./shareMarking.js";
5
+ import { useShareRegionReports } from "./useShareRegionReports.js";
4
6
  /**
5
7
  * Put the configuration of the current link where every part of the page can
6
8
  * read it, so nothing has to be threaded through props.
@@ -10,6 +12,7 @@ import { HiddenPartsContext } from "./hiddenParts.js";
10
12
  export function HiddenPartsProvider(props) {
11
13
  const { hidden, children } = props;
12
14
  const parts = useMemo(() => new Set(hidden), [hidden]);
13
- return (_jsx(HiddenPartsContext.Provider, { value: parts, children: children }));
15
+ const marking = useShareRegionReports(parts);
16
+ return (_jsx(HiddenPartsContext.Provider, { value: parts, children: _jsx(ShareMarkingContext.Provider, { value: marking, children: children }) }));
14
17
  }
15
18
  //# sourceMappingURL=HiddenPartsProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HiddenPartsProvider.js","sourceRoot":"","sources":["../../../src/share/ui/HiddenPartsProvider.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAatD;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAA+B;IAE/B,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IACnC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEvD,OAAO,CACL,KAAC,kBAAkB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YACtC,QAAQ,GACmB,CAC/B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"HiddenPartsProvider.js","sourceRoot":"","sources":["../../../src/share/ui/HiddenPartsProvider.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAanE;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAA+B;IAE/B,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IACnC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAE7C,OAAO,CACL,KAAC,kBAAkB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YACvC,KAAC,mBAAmB,CAAC,QAAQ,IAAC,KAAK,EAAE,OAAO,YACzC,QAAQ,GACoB,GACH,CAC/B,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"PagePart.d.ts","sourceRoot":"","sources":["../../../src/share/ui/PagePart.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,MAAM,WAAW,aAAa;IAC5B,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS,CAKxD"}
1
+ {"version":3,"file":"PagePart.d.ts","sourceRoot":"","sources":["../../../src/share/ui/PagePart.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKvC,MAAM,WAAW,aAAa;IAC5B,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS,CAexD"}
@@ -1,4 +1,6 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
1
2
  import { useIsHidden } from "./hiddenParts.js";
3
+ import { useShareMarking } from "./shareMarking.js";
2
4
  /**
3
5
  * A region of the page a shared link may leave out.
4
6
  *
@@ -11,6 +13,13 @@ import { useIsHidden } from "./hiddenParts.js";
11
13
  export function PagePart(props) {
12
14
  const { part, children } = props;
13
15
  const isHidden = useIsHidden();
14
- return isHidden(part) ? null : children;
16
+ const marking = useShareMarking();
17
+ if (isHidden(part))
18
+ return null;
19
+ if (!marking)
20
+ return children;
21
+ // `display: contents` so the marker is only a name the dialog can find, and
22
+ // never a box between the page and the part it holds.
23
+ return (_jsx("div", { "data-share-part": part, style: { display: 'contents' }, children: children }));
15
24
  }
16
25
  //# sourceMappingURL=PagePart.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PagePart.js","sourceRoot":"","sources":["../../../src/share/ui/PagePart.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAS/C;;;;;;;;GAQG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAoB;IAC3C,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IACjC,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAE/B,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC1C,CAAC"}
1
+ {"version":3,"file":"PagePart.js","sourceRoot":"","sources":["../../../src/share/ui/PagePart.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AASpD;;;;;;;;GAQG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAoB;IAC3C,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IACjC,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAElC,IAAI,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAChC,IAAI,CAAC,OAAO;QAAE,OAAO,QAAQ,CAAC;IAE9B,4EAA4E;IAC5E,sDAAsD;IACtD,OAAO,CACL,iCAAsB,IAAI,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,YACvD,QAAQ,GACL,CACP,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ShareButton.d.ts","sourceRoot":"","sources":["../../../src/share/ui/ShareButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAI1C,wDAAwD;AACxD,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,WAAW,CAAC;AAE1D,MAAM,WAAW,gBAAgB;IAC/B,iFAAiF;IACjF,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB;;;;OAIG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,YAAY,CA8CjE"}
1
+ {"version":3,"file":"ShareButton.d.ts","sourceRoot":"","sources":["../../../src/share/ui/ShareButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAK1C,wDAAwD;AACxD,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,WAAW,CAAC;AAE1D,MAAM,WAAW,gBAAgB;IAC/B,iFAAiF;IACjF,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB;;;;OAIG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,YAAY,CA0CjE"}
@@ -1,6 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Button, Icon } from '@blueprintjs/core';
3
3
  import { useChromeT } from "../../i18n/ui/useT.js";
4
+ import { joinClassNames } from "../../shared/ui/joinClassNames.js";
4
5
  /**
5
6
  * The Share entry of a site header: the button that offers the open page as a
6
7
  * link, or as the iframe that frames it in someone else's site.
@@ -14,10 +15,8 @@ export function ShareButton(props) {
14
15
  const title = givenTitle ?? t('share.buttonTitle');
15
16
  const text = compact ? undefined : label;
16
17
  if (variant === 'blueprint') {
17
- return (_jsx(Button, { className: className, variant: "minimal", icon: "share", text: text, title: title, "aria-label": label, onClick: onClick }));
18
+ return (_jsx(Button, { className: joinClassNames('no-print', className), variant: "minimal", icon: "share", text: text, title: title, "aria-label": label, onClick: onClick }));
18
19
  }
19
- return (_jsxs("button", { type: "button", className: className === undefined
20
- ? 'nav-link nav-link--icon'
21
- : `nav-link nav-link--icon ${className}`, title: title, "aria-label": label, onClick: onClick, children: [_jsx(Icon, { icon: "share", size: 14 }), text === undefined ? null : (_jsx("span", { className: "nav-link__label", children: text }))] }));
20
+ return (_jsxs("button", { type: "button", className: joinClassNames('nav-link nav-link--icon no-print', className), title: title, "aria-label": label, onClick: onClick, children: [_jsx(Icon, { icon: "share", size: 14 }), text === undefined ? null : (_jsx("span", { className: "nav-link__label", children: text }))] }));
22
21
  }
23
22
  //# sourceMappingURL=ShareButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ShareButton.js","sourceRoot":"","sources":["../../../src/share/ui/ShareButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAqCnD;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,KAAuB;IACjD,MAAM,EACJ,OAAO,EACP,OAAO,GAAG,UAAU,EACpB,KAAK,EAAE,KAAK,EACZ,OAAO,GAAG,KAAK,EACf,KAAK,EAAE,UAAU,EACjB,SAAS,GACV,GAAG,KAAK,CAAC;IACV,MAAM,CAAC,GAAG,UAAU,EAAE,CAAC;IACvB,MAAM,KAAK,GAAG,KAAK,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,UAAU,IAAI,CAAC,CAAC,mBAAmB,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;IAEzC,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;QAC5B,OAAO,CACL,KAAC,MAAM,IACL,SAAS,EAAE,SAAS,EACpB,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,OAAO,EACZ,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,gBACA,KAAK,EACjB,OAAO,EAAE,OAAO,GAChB,CACH,CAAC;IACJ,CAAC;IAED,OAAO,CACL,kBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EACP,SAAS,KAAK,SAAS;YACrB,CAAC,CAAC,yBAAyB;YAC3B,CAAC,CAAC,2BAA2B,SAAS,EAAE,EAE5C,KAAK,EAAE,KAAK,gBACA,KAAK,EACjB,OAAO,EAAE,OAAO,aAEhB,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAE,EAAE,GAAI,EAC9B,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC3B,eAAM,SAAS,EAAC,iBAAiB,YAAE,IAAI,GAAQ,CAChD,IACM,CACV,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ShareButton.js","sourceRoot":"","sources":["../../../src/share/ui/ShareButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAqCnE;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,KAAuB;IACjD,MAAM,EACJ,OAAO,EACP,OAAO,GAAG,UAAU,EACpB,KAAK,EAAE,KAAK,EACZ,OAAO,GAAG,KAAK,EACf,KAAK,EAAE,UAAU,EACjB,SAAS,GACV,GAAG,KAAK,CAAC;IACV,MAAM,CAAC,GAAG,UAAU,EAAE,CAAC;IACvB,MAAM,KAAK,GAAG,KAAK,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,UAAU,IAAI,CAAC,CAAC,mBAAmB,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;IAEzC,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;QAC5B,OAAO,CACL,KAAC,MAAM,IACL,SAAS,EAAE,cAAc,CAAC,UAAU,EAAE,SAAS,CAAC,EAChD,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,OAAO,EACZ,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,gBACA,KAAK,EACjB,OAAO,EAAE,OAAO,GAChB,CACH,CAAC;IACJ,CAAC;IAED,OAAO,CACL,kBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,cAAc,CAAC,kCAAkC,EAAE,SAAS,CAAC,EACxE,KAAK,EAAE,KAAK,gBACA,KAAK,EACjB,OAAO,EAAE,OAAO,aAEhB,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAE,EAAE,GAAI,EAC9B,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC3B,eAAM,SAAS,EAAC,iBAAiB,YAAE,IAAI,GAAQ,CAChD,IACM,CACV,CAAC;AACJ,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import type { ReactElement } from 'react';
2
2
  import type { HideablePart } from '../core/index.ts';
3
+ import type { SharePartDescriptions } from './SharePartRow.tsx';
3
4
  export interface ShareConfigOptionsProps {
4
5
  /** Whether the draft drops the site chrome. */
5
6
  embed: boolean;
@@ -7,13 +8,17 @@ export interface ShareConfigOptionsProps {
7
8
  parts: readonly HideablePart[];
8
9
  /** The parts the draft switches off. */
9
10
  hidden: readonly string[];
11
+ /** Where each row says what switching it off does. */
12
+ descriptions: SharePartDescriptions;
10
13
  /** Called when the layout is switched. */
11
14
  onEmbedChange: (embed: boolean) => void;
12
15
  /** Called with the part and whether the link should switch it off. */
13
16
  onPartChange: (part: string, hidden: boolean) => void;
17
+ /** Called with the part the pointer is on, or `null` when it leaves. */
18
+ onPartPointed: (part: string | null) => void;
14
19
  }
15
20
  /**
16
- * The boxes of the share dialog: the layout, then one box per part of the page.
21
+ * The switches of the share dialog: the layout, then one per part of the page.
17
22
  * @param props - The draft's layout and parts, and how to change them.
18
23
  * @returns The two sections.
19
24
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ShareConfigOptions.d.ts","sourceRoot":"","sources":["../../../src/share/ui/ShareConfigOptions.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,OAAO,CAAC;AAGzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAYrD,MAAM,WAAW,uBAAuB;IACtC,+CAA+C;IAC/C,KAAK,EAAE,OAAO,CAAC;IACf,+EAA+E;IAC/E,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;IAC/B,wCAAwC;IACxC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,0CAA0C;IAC1C,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC,sEAAsE;IACtE,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CACvD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,uBAAuB,GAC7B,YAAY,CA8Bd"}
1
+ {"version":3,"file":"ShareConfigOptions.d.ts","sourceRoot":"","sources":["../../../src/share/ui/ShareConfigOptions.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,OAAO,CAAC;AAGzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGrD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAKhE,MAAM,WAAW,uBAAuB;IACtC,+CAA+C;IAC/C,KAAK,EAAE,OAAO,CAAC;IACf,+EAA+E;IAC/E,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;IAC/B,wCAAwC;IACxC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,sDAAsD;IACtD,YAAY,EAAE,qBAAqB,CAAC;IACpC,0CAA0C;IAC1C,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC,sEAAsE;IACtE,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACtD,wEAAwE;IACxE,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CAC9C;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,uBAAuB,GAC7B,YAAY,CAuCd"}
@@ -1,24 +1,17 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { Checkbox, H6 } from '@blueprintjs/core';
2
+ import { H6 } from '@blueprintjs/core';
3
3
  import { useChromeT } from "../../i18n/ui/useT.js";
4
4
  import { SharePartOptions } from "./SharePartOptions.js";
5
- const SECTION_STYLE = { marginBottom: 18 };
6
- const HINT_STYLE = {
7
- display: 'block',
8
- marginLeft: 26,
9
- color: 'var(--text-muted, #5b6875)',
10
- fontSize: 12,
11
- };
5
+ import { SharePartRow } from "./SharePartRow.js";
6
+ const SECTION_STYLE = { marginBottom: 14 };
12
7
  /**
13
- * The boxes of the share dialog: the layout, then one box per part of the page.
8
+ * The switches of the share dialog: the layout, then one per part of the page.
14
9
  * @param props - The draft's layout and parts, and how to change them.
15
10
  * @returns The two sections.
16
11
  */
17
12
  export function ShareConfigOptions(props) {
18
- const { embed, parts, hidden, onEmbedChange, onPartChange } = props;
13
+ const { embed, parts, hidden, descriptions, onEmbedChange, onPartChange, onPartPointed, } = props;
19
14
  const t = useChromeT();
20
- return (_jsxs(_Fragment, { children: [_jsxs("section", { className: "share-section", style: SECTION_STYLE, children: [_jsx(H6, { children: t('share.layout') }), _jsx(Checkbox, { checked: embed, label: t('share.embed'), onChange: (event) => {
21
- onEmbedChange(event.currentTarget.checked);
22
- } }), _jsx("span", { style: HINT_STYLE, children: t('share.embedHint') })] }), parts.length > 0 ? (_jsxs("section", { className: "share-section", style: SECTION_STYLE, children: [_jsx(H6, { children: t('share.showOnPage') }), _jsx(SharePartOptions, { parts: parts, hidden: hidden, onChange: onPartChange })] })) : null] }));
15
+ return (_jsxs(_Fragment, { children: [_jsxs("section", { className: "share-section", style: SECTION_STYLE, children: [_jsx(H6, { children: t('share.layout') }), _jsx(SharePartRow, { label: t('share.embed'), description: t('share.embedHint'), on: embed, descriptions: descriptions, onChange: onEmbedChange })] }), parts.length > 0 ? (_jsxs("section", { className: "share-section", style: SECTION_STYLE, children: [_jsx(H6, { children: t('share.showOnPage') }), _jsx(SharePartOptions, { parts: parts, hidden: hidden, descriptions: descriptions, onChange: onPartChange, onPointed: onPartPointed })] })) : null] }));
23
16
  }
24
17
  //# sourceMappingURL=ShareConfigOptions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ShareConfigOptions.js","sourceRoot":"","sources":["../../../src/share/ui/ShareConfigOptions.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAwB,CAAC;AAE1D,MAAM,aAAa,GAAkB,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;AAC1D,MAAM,UAAU,GAAkB;IAChC,OAAO,EAAE,OAAO;IAChB,UAAU,EAAE,EAAE;IACd,KAAK,EAAE,4BAA4B;IACnC,QAAQ,EAAE,EAAE;CACb,CAAC;AAeF;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAA8B;IAE9B,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;IACpE,MAAM,CAAC,GAAG,UAAU,EAAE,CAAC;IAEvB,OAAO,CACL,8BACE,mBAAS,SAAS,EAAC,eAAe,EAAC,KAAK,EAAE,aAAa,aACrD,KAAC,EAAE,cAAE,CAAC,CAAC,cAAc,CAAC,GAAM,EAC5B,KAAC,QAAQ,IACP,OAAO,EAAE,KAAK,EACd,KAAK,EAAE,CAAC,CAAC,aAAa,CAAC,EACvB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;4BAClB,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;wBAC7C,CAAC,GACD,EACF,eAAM,KAAK,EAAE,UAAU,YAAG,CAAC,CAAC,iBAAiB,CAAC,GAAQ,IAC9C,EAET,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAClB,mBAAS,SAAS,EAAC,eAAe,EAAC,KAAK,EAAE,aAAa,aACrD,KAAC,EAAE,cAAE,CAAC,CAAC,kBAAkB,CAAC,GAAM,EAChC,KAAC,gBAAgB,IACf,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,YAAY,GACtB,IACM,CACX,CAAC,CAAC,CAAC,IAAI,IACP,CACJ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ShareConfigOptions.js","sourceRoot":"","sources":["../../../src/share/ui/ShareConfigOptions.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAGvC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAwB,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAoB,CAAC;AAElD,MAAM,aAAa,GAAkB,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;AAmB1D;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAA8B;IAE9B,MAAM,EACJ,KAAK,EACL,KAAK,EACL,MAAM,EACN,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,aAAa,GACd,GAAG,KAAK,CAAC;IACV,MAAM,CAAC,GAAG,UAAU,EAAE,CAAC;IAEvB,OAAO,CACL,8BACE,mBAAS,SAAS,EAAC,eAAe,EAAC,KAAK,EAAE,aAAa,aACrD,KAAC,EAAE,cAAE,CAAC,CAAC,cAAc,CAAC,GAAM,EAC5B,KAAC,YAAY,IACX,KAAK,EAAE,CAAC,CAAC,aAAa,CAAC,EACvB,WAAW,EAAE,CAAC,CAAC,iBAAiB,CAAC,EACjC,EAAE,EAAE,KAAK,EACT,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,aAAa,GACvB,IACM,EAET,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAClB,mBAAS,SAAS,EAAC,eAAe,EAAC,KAAK,EAAE,aAAa,aACrD,KAAC,EAAE,cAAE,CAAC,CAAC,kBAAkB,CAAC,GAAM,EAChC,KAAC,gBAAgB,IACf,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,aAAa,GACxB,IACM,CACX,CAAC,CAAC,CAAC,IAAI,IACP,CACJ,CAAC;AACJ,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import type { ReactElement, ReactNode } from 'react';
2
2
  import type { ShareConfig, ShareParamCodecs, ShareParamValues, SharePreset, ShareVocabulary } from '../core/index.ts';
3
+ import type { SharePartDescriptions } from './SharePartRow.tsx';
3
4
  /**
4
5
  * The configuration the dialog is holding, handed to a tool-specific section so
5
6
  * it can read it and change it.
@@ -60,6 +61,19 @@ export interface ShareDialogProps<Codecs extends ShareParamCodecs = Record<strin
60
61
  * @default 700
61
62
  */
62
63
  frameHeight?: number;
64
+ /**
65
+ * Whether the page the link hands out is shown live beside the options.
66
+ * A tool whose page is too heavy to load a second time switches it off.
67
+ * @default true
68
+ */
69
+ preview?: boolean;
70
+ /**
71
+ * Where each row says what switching it off does: `inline` writes it under
72
+ * the label, which is where it is read; `help` puts it behind a glyph beside
73
+ * the label, for a dialog short on room.
74
+ * @default 'inline'
75
+ */
76
+ partDescriptions?: SharePartDescriptions;
63
77
  /**
64
78
  * Whether the dialog is rendered through a portal on `document.body`.
65
79
  * @default true
@@ -1 +1 @@
1
- {"version":3,"file":"ShareDialog.d.ts","sourceRoot":"","sources":["../../../src/share/ui/ShareDialog.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGpE,OAAO,KAAK,EACV,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,eAAe,EAChB,MAAM,kBAAkB,CAAC;AAS1B;;;GAGG;AACH,MAAM,WAAW,UAAU,CACzB,MAAM,SAAS,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;IAEvD,yDAAyD;IACzD,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5B,kDAAkD;IAClD,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,oDAAoD;IACpD,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACvD,yDAAyD;IACzD,QAAQ,EAAE,CAAC,GAAG,SAAS,MAAM,gBAAgB,CAAC,MAAM,CAAC,EACnD,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,KACjC,IAAI,CAAC;CACX;AAED,MAAM,WAAW,gBAAgB,CAC/B,MAAM,SAAS,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;IAEvD,uCAAuC;IACvC,MAAM,EAAE,OAAO,CAAC;IAChB,2CAA2C;IAC3C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,yFAAyF;IACzF,UAAU,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IACpC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7C;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC;CACnE;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CACzB,MAAM,SAAS,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACvD,KAAK,EAAE,gBAAgB,CAAC,MAAM,CAAC,GAAG,YAAY,CAoB/C"}
1
+ {"version":3,"file":"ShareDialog.d.ts","sourceRoot":"","sources":["../../../src/share/ui/ShareDialog.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGpE,OAAO,KAAK,EACV,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,eAAe,EAChB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAOhE;;;GAGG;AACH,MAAM,WAAW,UAAU,CACzB,MAAM,SAAS,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;IAEvD,yDAAyD;IACzD,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5B,kDAAkD;IAClD,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,oDAAoD;IACpD,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACvD,yDAAyD;IACzD,QAAQ,EAAE,CAAC,GAAG,SAAS,MAAM,gBAAgB,CAAC,MAAM,CAAC,EACnD,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,KACjC,IAAI,CAAC;CACX;AAED,MAAM,WAAW,gBAAgB,CAC/B,MAAM,SAAS,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;IAEvD,uCAAuC;IACvC,MAAM,EAAE,OAAO,CAAC;IAChB,2CAA2C;IAC3C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,yFAAyF;IACzF,UAAU,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IACpC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7C;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,qBAAqB,CAAC;IACzC;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC;CACnE;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CACzB,MAAM,SAAS,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACvD,KAAK,EAAE,gBAAgB,CAAC,MAAM,CAAC,GAAG,YAAY,CAoB/C"}
@@ -3,8 +3,8 @@ import { Dialog } from '@blueprintjs/core';
3
3
  import { useChromeT } from "../../i18n/ui/useT.js";
4
4
  import { ShareDialogContent } from "./ShareDialogContent.js";
5
5
  const DIALOG_STYLE = {
6
- width: 'min(820px, 94vw)',
7
- height: 'min(760px, 90dvh)',
6
+ width: 'min(1180px, 96vw)',
7
+ height: 'min(820px, 92dvh)',
8
8
  };
9
9
  /**
10
10
  * Hand the open page out as a link, or as the iframe that frames it in someone
@@ -19,6 +19,6 @@ const DIALOG_STYLE = {
19
19
  export function ShareDialog(props) {
20
20
  const { isOpen, onClose, usePortal = true, ...rest } = props;
21
21
  const t = useChromeT();
22
- return (_jsx(Dialog, { isOpen: isOpen, onClose: onClose, usePortal: usePortal, title: t('share.dialogTitle'), icon: "share", className: "share-dialog", style: DIALOG_STYLE, children: isOpen ? _jsx(ShareDialogContent, { ...rest, onClose: onClose }) : null }));
22
+ return (_jsx(Dialog, { isOpen: isOpen, onClose: onClose, usePortal: usePortal, title: t('share.dialogTitleFor', { title: rest.title }), icon: "share", className: "share-dialog", style: DIALOG_STYLE, children: isOpen ? _jsx(ShareDialogContent, { ...rest, onClose: onClose }) : null }));
23
23
  }
24
24
  //# sourceMappingURL=ShareDialog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ShareDialog.js","sourceRoot":"","sources":["../../../src/share/ui/ShareDialog.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AASnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAA0B,CAAC;AAE9D,MAAM,YAAY,GAAkB;IAClC,KAAK,EAAE,kBAAkB;IACzB,MAAM,EAAE,mBAAmB;CAC5B,CAAC;AAoFF;;;;;;;;;GASG;AACH,MAAM,UAAU,WAAW,CAEzB,KAA+B;IAC/B,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IAC7D,MAAM,CAAC,GAAG,UAAU,EAAE,CAAC;IAEvB,OAAO,CACL,KAAC,MAAM,IACL,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,CAAC,CAAC,mBAAmB,CAAC,EAC7B,IAAI,EAAC,OAAO,EACZ,SAAS,EAAC,cAAc,EACxB,KAAK,EAAE,YAAY,YAKlB,MAAM,CAAC,CAAC,CAAC,KAAC,kBAAkB,OAAK,IAAI,EAAE,OAAO,EAAE,OAAO,GAAI,CAAC,CAAC,CAAC,IAAI,GAC5D,CACV,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ShareDialog.js","sourceRoot":"","sources":["../../../src/share/ui/ShareDialog.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AASnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAA0B,CAAC;AAG9D,MAAM,YAAY,GAAkB;IAClC,KAAK,EAAE,mBAAmB;IAC1B,MAAM,EAAE,mBAAmB;CAC5B,CAAC;AAiGF;;;;;;;;;GASG;AACH,MAAM,UAAU,WAAW,CAEzB,KAA+B;IAC/B,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IAC7D,MAAM,CAAC,GAAG,UAAU,EAAE,CAAC;IAEvB,OAAO,CACL,KAAC,MAAM,IACL,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,CAAC,CAAC,sBAAsB,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,EACvD,IAAI,EAAC,OAAO,EACZ,SAAS,EAAC,cAAc,EACxB,KAAK,EAAE,YAAY,YAKlB,MAAM,CAAC,CAAC,CAAC,KAAC,kBAAkB,OAAK,IAAI,EAAE,OAAO,EAAE,OAAO,GAAI,CAAC,CAAC,CAAC,IAAI,GAC5D,CACV,CAAC;AACJ,CAAC"}
@@ -4,8 +4,8 @@ import type { ShareDialogProps } from './ShareDialog.tsx';
4
4
  /** Everything the dialog holds, minus what only its shell is concerned with. */
5
5
  export type ShareDialogContentProps<Codecs extends ShareParamCodecs = Record<string, never>> = Omit<ShareDialogProps<Codecs>, 'isOpen' | 'usePortal'>;
6
6
  /**
7
- * The sections of the share dialog: what the link says, what it hands out, and
8
- * the markup that frames it.
7
+ * The share dialog's body: what one does with the link above, never scrolled
8
+ * away, then the options on the left and the page they write on the right.
9
9
  * @param props - What the site's links can say, how the page is named, and the extra section.
10
10
  * @returns The body and the footer of the dialog.
11
11
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ShareDialogContent.d.ts","sourceRoot":"","sources":["../../../src/share/ui/ShareDialogContent.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAiB,YAAY,EAAa,MAAM,OAAO,CAAC;AAKpE,OAAO,KAAK,EAEV,gBAAgB,EAIjB,MAAM,kBAAkB,CAAC;AAa1B,OAAO,KAAK,EAAE,gBAAgB,EAAc,MAAM,mBAAmB,CAAC;AAuBtE,gFAAgF;AAChF,MAAM,MAAM,uBAAuB,CACjC,MAAM,SAAS,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IACrD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC,CAAC;AAE3D;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,SAAS,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACvD,KAAK,EAAE,uBAAuB,CAAC,MAAM,CAAC,GAAG,YAAY,CA+HtD"}
1
+ {"version":3,"file":"ShareDialogContent.d.ts","sourceRoot":"","sources":["../../../src/share/ui/ShareDialogContent.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,OAAO,CAAC;AAKzD,OAAO,KAAK,EAGV,gBAAgB,EAIjB,MAAM,kBAAkB,CAAC;AAa1B,OAAO,KAAK,EAAE,gBAAgB,EAAc,MAAM,mBAAmB,CAAC;AActE,gFAAgF;AAChF,MAAM,MAAM,uBAAuB,CACjC,MAAM,SAAS,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IACrD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC,CAAC;AAE3D;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,SAAS,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACvD,KAAK,EAAE,uBAAuB,CAAC,MAAM,CAAC,GAAG,YAAY,CA0ItD"}
@@ -1,42 +1,40 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { AnchorButton, Button, Classes, DialogFooter, H6, } from '@blueprintjs/core';
3
- import { useState } from 'react';
4
- import { CodeBlock, CopyButton } from "../../clipboard/ui/index.js";
2
+ import { Button, DialogFooter } from '@blueprintjs/core';
3
+ import { useRef, useState } from 'react';
4
+ import { useContainerSize } from "../../hooks/ui/useContainerSize.js";
5
5
  import { useChromeT } from "../../i18n/ui/useT.js";
6
6
  import { applySharePreset, buildEmbedCode, buildShareUrl, findSharePreset, isShareConfigured, parseShareConfig, suggestedShareConfig, visibleShareParts, } from "../core/index.js";
7
7
  import { ShareConfigOptions } from "./ShareConfigOptions.js";
8
+ import { ShareLinkBar } from "./ShareLinkBar.js";
9
+ import { SharePanes } from "./SharePanes.js";
8
10
  import { SharePresetTabs } from "./SharePresetTabs.js";
11
+ import { SharePreview } from "./SharePreview.js";
9
12
  import { withPart } from "./draft.js";
10
- const LEAD_STYLE = {
11
- marginTop: 0,
12
- color: 'var(--text-muted, #5b6875)',
13
- };
14
- const SECTION_STYLE = { marginBottom: 18 };
15
- const ACTIONS_STYLE = {
16
- display: 'flex',
17
- flexWrap: 'wrap',
18
- gap: 8,
19
- marginTop: 8,
20
- };
21
13
  const NO_PRESETS = [];
22
- // The dialog has a fixed height so switching preset does not resize it: the
23
- // body takes what the header and footer leave, and scrolls.
24
- const BODY_CLASS = `${Classes.DIALOG_BODY} ${Classes.DIALOG_BODY_SCROLL_CONTAINER}`;
25
- const BODY_STYLE = { maxHeight: 'none', minHeight: 0 };
14
+ /** Width below which the two panes stop fitting side by side and become tabs. */
15
+ const TWO_PANE_WIDTH = 720;
16
+ const SECTION_STYLE = { marginBottom: 14 };
26
17
  /**
27
- * The sections of the share dialog: what the link says, what it hands out, and
28
- * the markup that frames it.
18
+ * The share dialog's body: what one does with the link above, never scrolled
19
+ * away, then the options on the left and the page they write on the right.
29
20
  * @param props - What the site's links can say, how the page is named, and the extra section.
30
21
  * @returns The body and the footer of the dialog.
31
22
  */
32
23
  export function ShareDialogContent(props) {
33
- const { onClose, vocabulary, presets = NO_PRESETS, defaultPreset, title, baseUrl, search, frameTitle, frameHeight, children, } = props;
24
+ const { onClose, vocabulary, presets = NO_PRESETS, defaultPreset, title, baseUrl, search, frameTitle, frameHeight, preview = true, partDescriptions = 'inline', children, } = props;
34
25
  const t = useChromeT();
35
26
  const address = globalThis.location;
36
27
  const base = baseUrl ?? address?.href ?? '';
37
28
  const query = search ?? address?.search ?? '';
38
29
  const [config, setConfig] = useState(() => initialDraft(query, vocabulary, findPreset(presets, defaultPreset ?? null)));
30
+ const [pointed, setPointed] = useState(null);
39
31
  const [presetKey, setPresetKey] = useState(() => findSharePreset(config, presets, vocabulary)?.key ?? null);
32
+ const body = useRef(null);
33
+ const { width } = useContainerSize(body);
34
+ // Zero until the body is first measured, and the wide layout is the one that
35
+ // renders both panes, so nothing is missing from a first paint or a render
36
+ // with no layout at all.
37
+ const narrow = width > 0 && width < TWO_PANE_WIDTH;
40
38
  function setEmbed(embed) {
41
39
  setConfig((previous) => ({ ...previous, embed }));
42
40
  }
@@ -71,15 +69,11 @@ export function ShareDialogContent(props) {
71
69
  title: frameTitle ?? title,
72
70
  height: frameHeight,
73
71
  });
74
- const options = (_jsx(ShareConfigOptions, { embed: config.embed, parts: visibleShareParts(vocabulary.parts, config.embed), hidden: config.hidden, onEmbedChange: setEmbed, onPartChange: setPartHidden }));
75
- return (_jsxs(_Fragment, { children: [_jsxs("div", { className: BODY_CLASS, style: BODY_STYLE, children: [_jsx("p", { style: LEAD_STYLE, children: lead(t('share.lead'), title) }), presets.length === 0 ? (options) : (_jsx(SharePresetTabs, { presets: presets, selected: presetKey, onSelect: selectPreset, custom: options })), children === undefined ? null : (_jsx("section", { className: "share-section", style: SECTION_STYLE, children: typeof children === 'function' ? children(draft) : children })), _jsxs("section", { className: "share-section", style: SECTION_STYLE, children: [_jsx(H6, { children: t('share.link') }), _jsx(CodeBlock, { code: url, tone: "muted" }), _jsxs("div", { style: ACTIONS_STYLE, children: [_jsx(CopyButton, { content: url, label: t('share.copyLink') }), _jsx(AnchorButton, { icon: "share", text: t('share.openInNewTab'), href: url, target: "_blank", rel: "noopener noreferrer" })] })] }), _jsxs("section", { className: "share-section", style: SECTION_STYLE, children: [_jsx(H6, { children: t('share.iframe') }), _jsx(CodeBlock, { code: frame, tone: "muted" }), _jsx("div", { style: ACTIONS_STYLE, children: _jsx(CopyButton, { content: frame, label: t('share.copyIframe') }) })] })] }), _jsx(DialogFooter, { actions: _jsx(Button, { intent: "primary", text: t('share.done'), onClick: onClose }) })] }));
76
- }
77
- // The name of the page is set in bold inside a sentence whose word order is
78
- // the translator's, so the message is split at its placeholder rather than
79
- // written as a prefix and a suffix.
80
- function lead(message, title) {
81
- const [before = '', after = ''] = message.split('{title}');
82
- return [before, _jsx("b", { children: title }, "title"), after];
72
+ const options = (_jsx(ShareConfigOptions, { embed: config.embed, parts: visibleShareParts(vocabulary.parts, config.embed), hidden: config.hidden, descriptions: partDescriptions, onEmbedChange: setEmbed, onPartChange: setPartHidden, onPartPointed: setPointed }));
73
+ const openPreset = findPreset(presets, presetKey);
74
+ const optionsPane = (_jsxs("div", { className: "share-dialog__options", children: [openPreset === undefined ? (options) : (_jsx("p", { className: "share-dialog__preset", children: openPreset.description })), children === undefined ? null : (_jsx("section", { className: "share-section", style: SECTION_STYLE, children: typeof children === 'function' ? children(draft) : children }))] }));
75
+ const previewPane = preview ? (_jsx(SharePreview, { url: url, title: frameTitle ?? title, highlight: highlightOf(vocabulary.parts, pointed) })) : null;
76
+ return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "share-dialog__body", ref: body, children: [_jsxs("div", { className: "share-dialog__top", children: [presets.length === 0 ? null : (_jsx(SharePresetTabs, { presets: presets, selected: presetKey, onSelect: selectPreset })), _jsx(ShareLinkBar, { url: url, frame: frame })] }), _jsx(SharePanes, { options: optionsPane, preview: previewPane, narrow: narrow })] }), _jsx(DialogFooter, { actions: _jsx(Button, { intent: "primary", text: t('share.done'), onClick: onClose }) })] }));
83
77
  }
84
78
  function initialDraft(search, vocabulary, preset) {
85
79
  const current = parseShareConfig(search, vocabulary);
@@ -90,6 +84,18 @@ function initialDraft(search, vocabulary, preset) {
90
84
  ? suggested
91
85
  : applySharePreset(suggested, preset, vocabulary);
92
86
  }
87
+ // The name in the list and the box on the page are the same thing, so the
88
+ // preview is told what the reader is pointing at rather than a key it would
89
+ // have to look a name up for.
90
+ function highlightOf(parts, pointed) {
91
+ if (pointed === null)
92
+ return null;
93
+ for (const part of parts) {
94
+ if (part.key === pointed)
95
+ return { part: part.key, label: part.label };
96
+ }
97
+ return null;
98
+ }
93
99
  function findPreset(presets, key) {
94
100
  if (key === null)
95
101
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"ShareDialogContent.js","sourceRoot":"","sources":["../../../src/share/ui/ShareDialogContent.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ShareDialogContent.js","sourceRoot":"","sources":["../../../src/share/ui/ShareDialogContent.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { ReactElement } from 'react';
2
+ export interface ShareLinkBarProps {
3
+ /** The address the link hands out. */
4
+ url: string;
5
+ /** The markup that frames the page in someone else's site. */
6
+ frame: string;
7
+ }
8
+ /**
9
+ * The three things one does with a share link, kept above the options and
10
+ * never scrolled away: a dialog whose Copy button is below the fold is a dialog
11
+ * one scrolls through every single time.
12
+ *
13
+ * Neither the address nor the frame markup is printed. A teacher reads neither
14
+ * before pasting it, and a hundred characters of query string set in monospace
15
+ * is the widest thing in the dialog; what tells them which button to press is
16
+ * the help on it.
17
+ * @param props - The address, and the frame markup the third button copies.
18
+ * @returns The bar.
19
+ */
20
+ export declare function ShareLinkBar(props: ShareLinkBarProps): ReactElement;
21
+ //# sourceMappingURL=ShareLinkBar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShareLinkBar.d.ts","sourceRoot":"","sources":["../../../src/share/ui/ShareLinkBar.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAM1C,MAAM,WAAW,iBAAiB;IAChC,sCAAsC;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,YAAY,CA2CnE"}
@@ -0,0 +1,32 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { AnchorButton } from '@blueprintjs/core';
3
+ import { CopyButton } from "../../clipboard/ui/index.js";
4
+ import { HelpTooltip } from "../../help/ui/index.js";
5
+ import { useChromeT } from "../../i18n/ui/useT.js";
6
+ /**
7
+ * The three things one does with a share link, kept above the options and
8
+ * never scrolled away: a dialog whose Copy button is below the fold is a dialog
9
+ * one scrolls through every single time.
10
+ *
11
+ * Neither the address nor the frame markup is printed. A teacher reads neither
12
+ * before pasting it, and a hundred characters of query string set in monospace
13
+ * is the widest thing in the dialog; what tells them which button to press is
14
+ * the help on it.
15
+ * @param props - The address, and the frame markup the third button copies.
16
+ * @returns The bar.
17
+ */
18
+ export function ShareLinkBar(props) {
19
+ const { url, frame } = props;
20
+ const t = useChromeT();
21
+ return (_jsxs("div", { className: "share-linkbar", children: [_jsx(HelpTooltip, { content: {
22
+ title: t('share.copyLinkHelpTitle'),
23
+ body: t('share.copyLinkHelp'),
24
+ }, children: _jsx(CopyButton, { content: url, label: t('share.copyLink'), title: "" }) }), _jsx(HelpTooltip, { content: {
25
+ title: t('share.openInNewTabHelpTitle'),
26
+ body: t('share.openInNewTabHelp'),
27
+ }, children: _jsx(AnchorButton, { icon: "share", text: t('share.openInNewTab'), href: url, target: "_blank", rel: "noopener noreferrer" }) }), _jsx(HelpTooltip, { content: {
28
+ title: t('share.copyIframeHelpTitle'),
29
+ body: t('share.copyIframeHelp'),
30
+ }, children: _jsx(CopyButton, { content: frame, icon: "code", label: t('share.copyIframe'), title: "" }) })] }));
31
+ }
32
+ //# sourceMappingURL=ShareLinkBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShareLinkBar.js","sourceRoot":"","sources":["../../../src/share/ui/ShareLinkBar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AASnD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IAC7B,MAAM,CAAC,GAAG,UAAU,EAAE,CAAC;IAEvB,OAAO,CACL,eAAK,SAAS,EAAC,eAAe,aAC5B,KAAC,WAAW,IACV,OAAO,EAAE;oBACP,KAAK,EAAE,CAAC,CAAC,yBAAyB,CAAC;oBACnC,IAAI,EAAE,CAAC,CAAC,oBAAoB,CAAC;iBAC9B,YAED,KAAC,UAAU,IAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAC,EAAE,GAAG,GACrD,EACd,KAAC,WAAW,IACV,OAAO,EAAE;oBACP,KAAK,EAAE,CAAC,CAAC,6BAA6B,CAAC;oBACvC,IAAI,EAAE,CAAC,CAAC,wBAAwB,CAAC;iBAClC,YAED,KAAC,YAAY,IACX,IAAI,EAAC,OAAO,EACZ,IAAI,EAAE,CAAC,CAAC,oBAAoB,CAAC,EAC7B,IAAI,EAAE,GAAG,EACT,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,GACzB,GACU,EACd,KAAC,WAAW,IACV,OAAO,EAAE;oBACP,KAAK,EAAE,CAAC,CAAC,2BAA2B,CAAC;oBACrC,IAAI,EAAE,CAAC,CAAC,sBAAsB,CAAC;iBAChC,YAED,KAAC,UAAU,IACT,OAAO,EAAE,KAAK,EACd,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,CAAC,CAAC,kBAAkB,CAAC,EAC5B,KAAK,EAAC,EAAE,GACR,GACU,IACV,CACP,CAAC;AACJ,CAAC"}