react-cheminfo 0.25.0 → 0.27.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.
- package/README.md +73 -2
- package/bin/check-deploy.mjs +14 -4
- package/bin/check-messages.mjs +229 -0
- package/lib/about/ui/AboutBuild.d.ts.map +1 -1
- package/lib/about/ui/AboutBuild.js +15 -4
- package/lib/about/ui/AboutBuild.js.map +1 -1
- package/lib/about/ui/AboutCitations.d.ts.map +1 -1
- package/lib/about/ui/AboutCitations.js +3 -1
- package/lib/about/ui/AboutCitations.js.map +1 -1
- package/lib/about/ui/AboutPage.d.ts.map +1 -1
- package/lib/about/ui/AboutPage.js +9 -1
- package/lib/about/ui/AboutPage.js.map +1 -1
- package/lib/about/ui/AboutProvidedBy.d.ts.map +1 -1
- package/lib/about/ui/AboutProvidedBy.js +8 -3
- package/lib/about/ui/AboutProvidedBy.js.map +1 -1
- package/lib/capsule/ui/Capsule.d.ts +30 -0
- package/lib/capsule/ui/Capsule.d.ts.map +1 -0
- package/lib/capsule/ui/Capsule.js +12 -0
- package/lib/capsule/ui/Capsule.js.map +1 -0
- package/lib/capsule/ui/CapsuleFilter.d.ts +19 -3
- package/lib/capsule/ui/CapsuleFilter.d.ts.map +1 -1
- package/lib/capsule/ui/CapsuleFilter.js +14 -44
- package/lib/capsule/ui/CapsuleFilter.js.map +1 -1
- package/lib/capsule/ui/capsuleFilterCapsules.d.ts +15 -0
- package/lib/capsule/ui/capsuleFilterCapsules.d.ts.map +1 -0
- package/lib/capsule/ui/capsuleFilterCapsules.js +47 -0
- package/lib/capsule/ui/capsuleFilterCapsules.js.map +1 -0
- package/lib/chart/ui/ChartTrackingLayer.d.ts.map +1 -1
- package/lib/chart/ui/ChartTrackingLayer.js +4 -2
- package/lib/chart/ui/ChartTrackingLayer.js.map +1 -1
- package/lib/chrome/ui/SiteHeader.d.ts +1 -1
- package/lib/chrome/ui/SiteHeader.d.ts.map +1 -1
- package/lib/chrome/ui/SiteHeader.js +4 -2
- package/lib/chrome/ui/SiteHeader.js.map +1 -1
- package/lib/citation/ui/CitationMenu.d.ts +1 -1
- package/lib/citation/ui/CitationMenu.d.ts.map +1 -1
- package/lib/citation/ui/CitationMenu.js +7 -3
- package/lib/citation/ui/CitationMenu.js.map +1 -1
- package/lib/citation/ui/CiteButton.d.ts +1 -1
- package/lib/citation/ui/CiteButton.d.ts.map +1 -1
- package/lib/citation/ui/CiteButton.js +3 -1
- package/lib/citation/ui/CiteButton.js.map +1 -1
- package/lib/citation/ui/CopyFormatEntries.d.ts.map +1 -1
- package/lib/citation/ui/CopyFormatEntries.js +3 -1
- package/lib/citation/ui/CopyFormatEntries.js.map +1 -1
- package/lib/citation/ui/WorkEntry.d.ts.map +1 -1
- package/lib/citation/ui/WorkEntry.js +3 -1
- package/lib/citation/ui/WorkEntry.js.map +1 -1
- package/lib/citation/ui/entries.d.ts.map +1 -1
- package/lib/citation/ui/entries.js +8 -2
- package/lib/citation/ui/entries.js.map +1 -1
- package/lib/citation/ui/useCopyFeedback.d.ts.map +1 -1
- package/lib/citation/ui/useCopyFeedback.js +9 -4
- package/lib/citation/ui/useCopyFeedback.js.map +1 -1
- package/lib/clipboard/ui/ClickToCopy.d.ts.map +1 -1
- package/lib/clipboard/ui/ClickToCopy.js +12 -6
- package/lib/clipboard/ui/ClickToCopy.js.map +1 -1
- package/lib/clipboard/ui/CopyButton.d.ts +3 -3
- package/lib/clipboard/ui/CopyButton.d.ts.map +1 -1
- package/lib/clipboard/ui/CopyButton.js +7 -4
- package/lib/clipboard/ui/CopyButton.js.map +1 -1
- package/lib/color/ui/ColorScaleEditor.d.ts.map +1 -1
- package/lib/color/ui/ColorScaleEditor.js +15 -10
- package/lib/color/ui/ColorScaleEditor.js.map +1 -1
- package/lib/color/ui/ColorScaleEntry.d.ts.map +1 -1
- package/lib/color/ui/ColorScaleEntry.js +4 -2
- package/lib/color/ui/ColorScaleEntry.js.map +1 -1
- package/lib/color/ui/ColorScaleLegend.d.ts.map +1 -1
- package/lib/color/ui/ColorScaleLegend.js +7 -1
- package/lib/color/ui/ColorScaleLegend.js.map +1 -1
- package/lib/color/ui/ColorScaleSelect.d.ts.map +1 -1
- package/lib/color/ui/ColorScaleSelect.js +8 -4
- package/lib/color/ui/ColorScaleSelect.js.map +1 -1
- package/lib/confirm/ui/ConfirmButton.d.ts +2 -2
- package/lib/confirm/ui/ConfirmButton.d.ts.map +1 -1
- package/lib/confirm/ui/ConfirmButton.js +4 -2
- package/lib/confirm/ui/ConfirmButton.js.map +1 -1
- package/lib/core.d.ts +1 -0
- package/lib/core.d.ts.map +1 -1
- package/lib/core.js +1 -0
- package/lib/core.js.map +1 -1
- package/lib/credits/ui/CreditsList.d.ts.map +1 -1
- package/lib/credits/ui/CreditsList.js +3 -1
- package/lib/credits/ui/CreditsList.js.map +1 -1
- package/lib/delimited/ui/DelimitedTextDialog.d.ts.map +1 -1
- package/lib/delimited/ui/DelimitedTextDialog.js +5 -2
- package/lib/delimited/ui/DelimitedTextDialog.js.map +1 -1
- package/lib/delimited/ui/DelimitedTextPanel.d.ts.map +1 -1
- package/lib/delimited/ui/DelimitedTextPanel.js +8 -8
- package/lib/delimited/ui/DelimitedTextPanel.js.map +1 -1
- package/lib/deploy/core/checkDeploy.d.ts +3 -1
- package/lib/deploy/core/checkDeploy.d.ts.map +1 -1
- package/lib/deploy/core/checkDeploy.js +7 -1
- package/lib/deploy/core/checkDeploy.js.map +1 -1
- package/lib/deploy/core/index.d.ts +1 -0
- package/lib/deploy/core/index.d.ts.map +1 -1
- package/lib/deploy/core/index.js +1 -0
- package/lib/deploy/core/index.js.map +1 -1
- package/lib/deploy/core/pageCache.d.ts +24 -0
- package/lib/deploy/core/pageCache.d.ts.map +1 -0
- package/lib/deploy/core/pageCache.js +91 -0
- package/lib/deploy/core/pageCache.js.map +1 -0
- package/lib/deploy/core/types.d.ts +1 -1
- package/lib/deploy/core/types.d.ts.map +1 -1
- package/lib/deploy/core/types.js.map +1 -1
- package/lib/download/ui/FigureDownload.d.ts +2 -2
- package/lib/download/ui/FigureDownload.d.ts.map +1 -1
- package/lib/download/ui/FigureDownload.js +4 -2
- package/lib/download/ui/FigureDownload.js.map +1 -1
- package/lib/download/ui/FigureDownloadPanel.d.ts.map +1 -1
- package/lib/download/ui/FigureDownloadPanel.js +24 -18
- package/lib/download/ui/FigureDownloadPanel.js.map +1 -1
- package/lib/ecosystem/ui/EcosystemButton.d.ts +1 -1
- package/lib/ecosystem/ui/EcosystemButton.d.ts.map +1 -1
- package/lib/ecosystem/ui/EcosystemButton.js +4 -2
- package/lib/ecosystem/ui/EcosystemButton.js.map +1 -1
- package/lib/ecosystem/ui/EcosystemLinks.d.ts +1 -1
- package/lib/ecosystem/ui/EcosystemLinks.d.ts.map +1 -1
- package/lib/ecosystem/ui/EcosystemLinks.js +5 -2
- package/lib/ecosystem/ui/EcosystemLinks.js.map +1 -1
- package/lib/ecosystem/ui/EcosystemMenu.d.ts.map +1 -1
- package/lib/ecosystem/ui/EcosystemMenu.js +3 -1
- package/lib/ecosystem/ui/EcosystemMenu.js.map +1 -1
- package/lib/ecosystem/ui/SiteGroupSection.d.ts.map +1 -1
- package/lib/ecosystem/ui/SiteGroupSection.js +3 -1
- package/lib/ecosystem/ui/SiteGroupSection.js.map +1 -1
- package/lib/ecosystem/ui/SiteTile.d.ts.map +1 -1
- package/lib/ecosystem/ui/SiteTile.js +3 -1
- package/lib/ecosystem/ui/SiteTile.js.map +1 -1
- package/lib/error/ui/ErrorFallback.d.ts +2 -2
- package/lib/error/ui/ErrorFallback.d.ts.map +1 -1
- package/lib/error/ui/ErrorFallback.js +4 -2
- package/lib/error/ui/ErrorFallback.js.map +1 -1
- package/lib/help/ui/HelpBody.d.ts.map +1 -1
- package/lib/help/ui/HelpBody.js +3 -1
- package/lib/help/ui/HelpBody.js.map +1 -1
- package/lib/help/ui/HelpIcon.d.ts +2 -1
- package/lib/help/ui/HelpIcon.d.ts.map +1 -1
- package/lib/help/ui/HelpIcon.js +4 -2
- package/lib/help/ui/HelpIcon.js.map +1 -1
- package/lib/help/ui/HelpToolbarButton.d.ts.map +1 -1
- package/lib/help/ui/HelpToolbarButton.js +3 -1
- package/lib/help/ui/HelpToolbarButton.js.map +1 -1
- package/lib/help/ui/helpName.d.ts +5 -1
- package/lib/help/ui/helpName.d.ts.map +1 -1
- package/lib/help/ui/helpName.js +4 -2
- package/lib/help/ui/helpName.js.map +1 -1
- package/lib/i18n/core/chromeCatalog.d.ts +21 -0
- package/lib/i18n/core/chromeCatalog.d.ts.map +1 -0
- package/lib/i18n/core/chromeCatalog.js +29 -0
- package/lib/i18n/core/chromeCatalog.js.map +1 -0
- package/lib/i18n/core/index.d.ts +12 -0
- package/lib/i18n/core/index.d.ts.map +1 -0
- package/lib/i18n/core/index.js +6 -0
- package/lib/i18n/core/index.js.map +1 -0
- package/lib/i18n/core/languages.d.ts +32 -0
- package/lib/i18n/core/languages.d.ts.map +1 -0
- package/lib/i18n/core/languages.js +41 -0
- package/lib/i18n/core/languages.js.map +1 -0
- package/lib/i18n/core/messageCatalog.d.ts +113 -0
- package/lib/i18n/core/messageCatalog.d.ts.map +1 -0
- package/lib/i18n/core/messageCatalog.js +135 -0
- package/lib/i18n/core/messageCatalog.js.map +1 -0
- package/lib/i18n/core/messageValues.d.ts +3 -0
- package/lib/i18n/core/messageValues.d.ts.map +1 -0
- package/lib/i18n/core/messageValues.js +2 -0
- package/lib/i18n/core/messageValues.js.map +1 -0
- package/lib/i18n/core/session.d.ts +51 -0
- package/lib/i18n/core/session.d.ts.map +1 -0
- package/lib/i18n/core/session.js +64 -0
- package/lib/i18n/core/session.js.map +1 -0
- package/lib/i18n/core/translateSetup.d.ts +28 -0
- package/lib/i18n/core/translateSetup.d.ts.map +1 -0
- package/lib/i18n/core/translateSetup.js +30 -0
- package/lib/i18n/core/translateSetup.js.map +1 -0
- package/lib/i18n/ui/LanguageSelect.d.ts +37 -0
- package/lib/i18n/ui/LanguageSelect.d.ts.map +1 -0
- package/lib/i18n/ui/LanguageSelect.js +27 -0
- package/lib/i18n/ui/LanguageSelect.js.map +1 -0
- package/lib/i18n/ui/index.d.ts +6 -0
- package/lib/i18n/ui/index.d.ts.map +1 -0
- package/lib/i18n/ui/index.js +4 -0
- package/lib/i18n/ui/index.js.map +1 -0
- package/lib/i18n/ui/useLanguage.d.ts +23 -0
- package/lib/i18n/ui/useLanguage.d.ts.map +1 -0
- package/lib/i18n/ui/useLanguage.js +36 -0
- package/lib/i18n/ui/useLanguage.js.map +1 -0
- package/lib/i18n/ui/useT.d.ts +47 -0
- package/lib/i18n/ui/useT.d.ts.map +1 -0
- package/lib/i18n/ui/useT.js +51 -0
- package/lib/i18n/ui/useT.js.map +1 -0
- package/lib/locales/de.json +442 -0
- package/lib/locales/en.json +442 -0
- package/lib/locales/es.json +442 -0
- package/lib/locales/fr.json +442 -0
- package/lib/molecule3d/core/gestures.d.ts +10 -0
- package/lib/molecule3d/core/gestures.d.ts.map +1 -1
- package/lib/molecule3d/core/gestures.js +39 -7
- package/lib/molecule3d/core/gestures.js.map +1 -1
- package/lib/molecule3d/ui/Molecule3DExport.d.ts.map +1 -1
- package/lib/molecule3d/ui/Molecule3DExport.js +3 -1
- package/lib/molecule3d/ui/Molecule3DExport.js.map +1 -1
- package/lib/molecule3d/ui/Molecule3DHelp.d.ts.map +1 -1
- package/lib/molecule3d/ui/Molecule3DHelp.js +7 -2
- package/lib/molecule3d/ui/Molecule3DHelp.js.map +1 -1
- package/lib/molecule3d/ui/Molecule3DOptions.d.ts.map +1 -1
- package/lib/molecule3d/ui/Molecule3DOptions.js +9 -9
- package/lib/molecule3d/ui/Molecule3DOptions.js.map +1 -1
- package/lib/molecule3d/ui/Molecule3DSurfaceColors.d.ts.map +1 -1
- package/lib/molecule3d/ui/Molecule3DSurfaceColors.js +8 -8
- package/lib/molecule3d/ui/Molecule3DSurfaceColors.js.map +1 -1
- package/lib/molecule3d/ui/Molecule3DToolbar.d.ts.map +1 -1
- package/lib/molecule3d/ui/Molecule3DToolbar.js +15 -10
- package/lib/molecule3d/ui/Molecule3DToolbar.js.map +1 -1
- package/lib/molecule3d/ui/MoleculeViewer3D.d.ts.map +1 -1
- package/lib/molecule3d/ui/MoleculeViewer3D.js +6 -3
- package/lib/molecule3d/ui/MoleculeViewer3D.js.map +1 -1
- package/lib/orbital/ui/AtomicOrbitalCanvas.d.ts.map +1 -1
- package/lib/orbital/ui/AtomicOrbitalCanvas.js +3 -1
- package/lib/orbital/ui/AtomicOrbitalCanvas.js.map +1 -1
- package/lib/orbital/ui/AtomicOrbitalControls.d.ts.map +1 -1
- package/lib/orbital/ui/AtomicOrbitalControls.js +12 -15
- package/lib/orbital/ui/AtomicOrbitalControls.js.map +1 -1
- package/lib/orbital/ui/AtomicOrbitalViewer.d.ts.map +1 -1
- package/lib/orbital/ui/AtomicOrbitalViewer.js +6 -3
- package/lib/orbital/ui/AtomicOrbitalViewer.js.map +1 -1
- package/lib/orbital/ui/capability.d.ts +4 -0
- package/lib/orbital/ui/capability.d.ts.map +1 -1
- package/lib/orbital/ui/capability.js +4 -0
- package/lib/orbital/ui/capability.js.map +1 -1
- package/lib/overlay/ui/OverlayBar.d.ts +1 -1
- package/lib/overlay/ui/OverlayBar.d.ts.map +1 -1
- package/lib/overlay/ui/OverlayBar.js +6 -3
- package/lib/overlay/ui/OverlayBar.js.map +1 -1
- package/lib/overlay/ui/OverlayInfo.d.ts +1 -1
- package/lib/overlay/ui/OverlayInfo.d.ts.map +1 -1
- package/lib/overlay/ui/OverlayInfo.js +5 -2
- package/lib/overlay/ui/OverlayInfo.js.map +1 -1
- package/lib/overlay/ui/OverlayPanel.d.ts +9 -2
- package/lib/overlay/ui/OverlayPanel.d.ts.map +1 -1
- package/lib/overlay/ui/OverlayPanel.js +5 -11
- package/lib/overlay/ui/OverlayPanel.js.map +1 -1
- package/lib/overlay/ui/OverlayReadout.d.ts.map +1 -1
- package/lib/overlay/ui/OverlayReadout.js +3 -1
- package/lib/overlay/ui/OverlayReadout.js.map +1 -1
- package/lib/pedagogy/ui/ExerciseActions.d.ts +1 -1
- package/lib/pedagogy/ui/ExerciseActions.d.ts.map +1 -1
- package/lib/pedagogy/ui/ExerciseActions.js +9 -2
- package/lib/pedagogy/ui/ExerciseActions.js.map +1 -1
- package/lib/pedagogy/ui/ExerciseProgressHeader.d.ts +1 -1
- package/lib/pedagogy/ui/ExerciseProgressHeader.d.ts.map +1 -1
- package/lib/pedagogy/ui/ExerciseProgressHeader.js +9 -5
- package/lib/pedagogy/ui/ExerciseProgressHeader.js.map +1 -1
- package/lib/pedagogy/ui/GlossaryIndex.d.ts +1 -1
- package/lib/pedagogy/ui/GlossaryIndex.d.ts.map +1 -1
- package/lib/pedagogy/ui/GlossaryIndex.js +6 -8
- package/lib/pedagogy/ui/GlossaryIndex.js.map +1 -1
- package/lib/pedagogy/ui/HintLadder.d.ts +2 -2
- package/lib/pedagogy/ui/HintLadder.d.ts.map +1 -1
- package/lib/pedagogy/ui/HintLadder.js +8 -2
- package/lib/pedagogy/ui/HintLadder.js.map +1 -1
- package/lib/pedagogy/ui/SyntaxTooltip.d.ts +4 -4
- package/lib/pedagogy/ui/SyntaxTooltip.d.ts.map +1 -1
- package/lib/pedagogy/ui/SyntaxTooltip.js +4 -2
- package/lib/pedagogy/ui/SyntaxTooltip.js.map +1 -1
- package/lib/pedagogy/ui/TutorialStepStrip.d.ts.map +1 -1
- package/lib/pedagogy/ui/TutorialStepStrip.js +7 -2
- package/lib/pedagogy/ui/TutorialStepStrip.js.map +1 -1
- package/lib/periodic/ui/CategoryLegend.d.ts.map +1 -1
- package/lib/periodic/ui/CategoryLegend.js +3 -1
- package/lib/periodic/ui/CategoryLegend.js.map +1 -1
- package/lib/periodic/ui/ElementCell.d.ts.map +1 -1
- package/lib/periodic/ui/ElementCell.js +7 -1
- package/lib/periodic/ui/ElementCell.js.map +1 -1
- package/lib/periodic/ui/PeriodicTable.d.ts.map +1 -1
- package/lib/periodic/ui/PeriodicTable.js +3 -1
- package/lib/periodic/ui/PeriodicTable.js.map +1 -1
- package/lib/periodic/ui/PeriodicTableChrome.d.ts.map +1 -1
- package/lib/periodic/ui/PeriodicTableChrome.js +4 -2
- package/lib/periodic/ui/PeriodicTableChrome.js.map +1 -1
- package/lib/share/ui/ShareButton.d.ts +2 -2
- package/lib/share/ui/ShareButton.d.ts.map +1 -1
- package/lib/share/ui/ShareButton.js +5 -2
- package/lib/share/ui/ShareButton.js.map +1 -1
- package/lib/share/ui/ShareConfigOptions.d.ts.map +1 -1
- package/lib/share/ui/ShareConfigOptions.js +4 -2
- package/lib/share/ui/ShareConfigOptions.js.map +1 -1
- package/lib/share/ui/ShareDialog.d.ts.map +1 -1
- package/lib/share/ui/ShareDialog.js +3 -1
- package/lib/share/ui/ShareDialog.js.map +1 -1
- package/lib/share/ui/ShareDialogContent.d.ts.map +1 -1
- package/lib/share/ui/ShareDialogContent.js +10 -1
- package/lib/share/ui/ShareDialogContent.js.map +1 -1
- package/lib/share/ui/SharePresetTabs.d.ts.map +1 -1
- package/lib/share/ui/SharePresetTabs.js +3 -1
- package/lib/share/ui/SharePresetTabs.js.map +1 -1
- package/lib/slides/ui/BackToSlides.d.ts.map +1 -1
- package/lib/slides/ui/BackToSlides.js +4 -2
- package/lib/slides/ui/BackToSlides.js.map +1 -1
- package/lib/slides/ui/EmbedSlide.d.ts.map +1 -1
- package/lib/slides/ui/EmbedSlide.js +3 -1
- package/lib/slides/ui/EmbedSlide.js.map +1 -1
- package/lib/slides/ui/Slide.d.ts.map +1 -1
- package/lib/slides/ui/Slide.js +3 -1
- package/lib/slides/ui/Slide.js.map +1 -1
- package/lib/slides/ui/SlideshowBar.d.ts.map +1 -1
- package/lib/slides/ui/SlideshowBar.js +5 -3
- package/lib/slides/ui/SlideshowBar.js.map +1 -1
- package/lib/slides/ui/TalkList.d.ts +1 -1
- package/lib/slides/ui/TalkList.d.ts.map +1 -1
- package/lib/slides/ui/TalkList.js +4 -2
- package/lib/slides/ui/TalkList.js.map +1 -1
- package/lib/structure/core/editorGuide.d.ts +14 -0
- package/lib/structure/core/editorGuide.d.ts.map +1 -1
- package/lib/structure/core/editorGuide.js +117 -19
- package/lib/structure/core/editorGuide.js.map +1 -1
- package/lib/structure/core/editorToolbar.d.ts +3 -1
- package/lib/structure/core/editorToolbar.d.ts.map +1 -1
- package/lib/structure/core/editorToolbar.js +44 -23
- package/lib/structure/core/editorToolbar.js.map +1 -1
- package/lib/structure/ui/EditorHelpButton.d.ts.map +1 -1
- package/lib/structure/ui/EditorHelpButton.js +3 -2
- package/lib/structure/ui/EditorHelpButton.js.map +1 -1
- package/lib/structure/ui/StructureEditor.d.ts.map +1 -1
- package/lib/structure/ui/StructureEditor.js +3 -1
- package/lib/structure/ui/StructureEditor.js.map +1 -1
- package/lib/structure/ui/StructureEditorHelp.d.ts.map +1 -1
- package/lib/structure/ui/StructureEditorHelp.js +12 -3
- package/lib/structure/ui/StructureEditorHelp.js.map +1 -1
- package/lib/structure/ui/ToolbarTooltip.d.ts.map +1 -1
- package/lib/structure/ui/ToolbarTooltip.js +5 -3
- package/lib/structure/ui/ToolbarTooltip.js.map +1 -1
- package/lib/ui.d.ts +1 -0
- package/lib/ui.d.ts.map +1 -1
- package/lib/ui.js +1 -0
- package/lib/ui.js.map +1 -1
- package/package.json +4 -2
- package/src/about/ui/AboutBuild.tsx +23 -16
- package/src/about/ui/AboutCitations.tsx +3 -1
- package/src/about/ui/AboutPage.tsx +38 -12
- package/src/about/ui/AboutProvidedBy.tsx +13 -3
- package/src/capsule/ui/Capsule.tsx +48 -0
- package/src/capsule/ui/CapsuleFilter.tsx +38 -114
- package/src/capsule/ui/capsuleFilterCapsules.tsx +110 -0
- package/src/chart/ui/ChartTrackingLayer.tsx +4 -2
- package/src/chrome/ui/SiteHeader.tsx +5 -3
- package/src/citation/ui/CitationMenu.tsx +9 -5
- package/src/citation/ui/CiteButton.tsx +4 -2
- package/src/citation/ui/CopyFormatEntries.tsx +3 -1
- package/src/citation/ui/WorkEntry.tsx +5 -3
- package/src/citation/ui/entries.tsx +9 -2
- package/src/citation/ui/useCopyFeedback.ts +11 -4
- package/src/clipboard/ui/ClickToCopy.tsx +15 -5
- package/src/clipboard/ui/CopyButton.tsx +14 -10
- package/src/color/ui/ColorScaleEditor.tsx +17 -15
- package/src/color/ui/ColorScaleEntry.tsx +7 -3
- package/src/color/ui/ColorScaleLegend.tsx +7 -1
- package/src/color/ui/ColorScaleSelect.tsx +12 -6
- package/src/confirm/ui/ConfirmButton.tsx +9 -11
- package/src/core.ts +1 -0
- package/src/credits/ui/CreditsList.tsx +5 -1
- package/src/delimited/ui/DelimitedTextDialog.tsx +10 -10
- package/src/delimited/ui/DelimitedTextPanel.tsx +19 -12
- package/src/deploy/core/checkDeploy.ts +7 -1
- package/src/deploy/core/index.ts +1 -0
- package/src/deploy/core/pageCache.ts +120 -0
- package/src/deploy/core/types.ts +2 -1
- package/src/download/ui/FigureDownload.tsx +7 -5
- package/src/download/ui/FigureDownloadPanel.tsx +31 -25
- package/src/ecosystem/ui/EcosystemButton.tsx +5 -3
- package/src/ecosystem/ui/EcosystemLinks.tsx +10 -10
- package/src/ecosystem/ui/EcosystemMenu.tsx +3 -1
- package/src/ecosystem/ui/SiteGroupSection.tsx +6 -2
- package/src/ecosystem/ui/SiteTile.tsx +6 -2
- package/src/error/ui/ErrorFallback.tsx +13 -12
- package/src/help/ui/HelpBody.tsx +4 -2
- package/src/help/ui/HelpIcon.tsx +6 -3
- package/src/help/ui/HelpToolbarButton.tsx +4 -1
- package/src/help/ui/helpName.ts +10 -2
- package/src/i18n/core/chromeCatalog.ts +35 -0
- package/src/i18n/core/index.ts +26 -0
- package/src/i18n/core/languages.ts +46 -0
- package/src/i18n/core/messageCatalog.ts +202 -0
- package/src/i18n/core/messageValues.ts +2 -0
- package/src/i18n/core/session.ts +82 -0
- package/src/i18n/core/translateSetup.ts +47 -0
- package/src/i18n/ui/LanguageSelect.tsx +72 -0
- package/src/i18n/ui/index.ts +9 -0
- package/src/i18n/ui/useLanguage.ts +48 -0
- package/src/i18n/ui/useT.ts +90 -0
- package/src/locales/de.json +442 -0
- package/src/locales/en.json +442 -0
- package/src/locales/es.json +442 -0
- package/src/locales/fr.json +442 -0
- package/src/molecule3d/core/gestures.ts +44 -7
- package/src/molecule3d/ui/Molecule3DExport.tsx +3 -1
- package/src/molecule3d/ui/Molecule3DHelp.tsx +17 -6
- package/src/molecule3d/ui/Molecule3DOptions.tsx +13 -13
- package/src/molecule3d/ui/Molecule3DSurfaceColors.tsx +16 -13
- package/src/molecule3d/ui/Molecule3DToolbar.tsx +29 -18
- package/src/molecule3d/ui/MoleculeViewer3D.tsx +13 -8
- package/src/orbital/ui/AtomicOrbitalCanvas.tsx +3 -1
- package/src/orbital/ui/AtomicOrbitalControls.tsx +15 -20
- package/src/orbital/ui/AtomicOrbitalViewer.tsx +13 -13
- package/src/orbital/ui/capability.ts +10 -0
- package/src/overlay/ui/OverlayBar.tsx +7 -4
- package/src/overlay/ui/OverlayInfo.tsx +6 -3
- package/src/overlay/ui/OverlayPanel.tsx +10 -7
- package/src/overlay/ui/OverlayReadout.tsx +3 -1
- package/src/pedagogy/ui/ExerciseActions.tsx +16 -6
- package/src/pedagogy/ui/ExerciseProgressHeader.tsx +13 -11
- package/src/pedagogy/ui/GlossaryIndex.tsx +11 -12
- package/src/pedagogy/ui/HintLadder.tsx +15 -12
- package/src/pedagogy/ui/SyntaxTooltip.tsx +9 -7
- package/src/pedagogy/ui/TutorialStepStrip.tsx +8 -3
- package/src/periodic/ui/CategoryLegend.tsx +6 -1
- package/src/periodic/ui/ElementCell.tsx +7 -1
- package/src/periodic/ui/PeriodicTable.tsx +3 -1
- package/src/periodic/ui/PeriodicTableChrome.tsx +4 -2
- package/src/share/ui/ShareButton.tsx +8 -5
- package/src/share/ui/ShareConfigOptions.tsx +6 -7
- package/src/share/ui/ShareDialog.tsx +3 -1
- package/src/share/ui/ShareDialogContent.tsx +20 -10
- package/src/share/ui/SharePresetTabs.tsx +3 -1
- package/src/slides/ui/BackToSlides.tsx +4 -2
- package/src/slides/ui/EmbedSlide.tsx +3 -3
- package/src/slides/ui/Slide.tsx +3 -1
- package/src/slides/ui/SlideshowBar.tsx +12 -4
- package/src/slides/ui/TalkList.tsx +8 -10
- package/src/structure/core/editorGuide.ts +126 -19
- package/src/structure/core/editorToolbar.ts +52 -24
- package/src/structure/ui/EditorHelpButton.tsx +9 -4
- package/src/structure/ui/StructureEditor.tsx +7 -1
- package/src/structure/ui/StructureEditorHelp.tsx +34 -11
- package/src/structure/ui/ToolbarTooltip.tsx +8 -4
- package/src/ui.ts +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editorToolbar.js","sourceRoot":"","sources":["../../../src/structure/core/editorToolbar.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"editorToolbar.js","sourceRoot":"","sources":["../../../src/structure/core/editorToolbar.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditorHelpButton.d.ts","sourceRoot":"","sources":["../../../src/structure/ui/EditorHelpButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"EditorHelpButton.d.ts","sourceRoot":"","sources":["../../../src/structure/ui/EditorHelpButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,2CAA2C;AAC3C,MAAM,WAAW,qBAAqB;IACpC,oEAAoE;IACpE,YAAY,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAC5C,6CAA6C;IAC7C,IAAI,EAAE,mBAAmB,CAAC;IAC1B,iDAAiD;IACjD,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,YAAY,CAwC3E"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { Button, PopoverNext, Tooltip } from '@blueprintjs/core';
|
|
3
3
|
import { useEffect, useState } from 'react';
|
|
4
|
+
import { useChromeT } from "../../i18n/ui/useT.js";
|
|
4
5
|
import { StructureEditorHelp } from "./StructureEditorHelp.js";
|
|
5
6
|
/**
|
|
6
7
|
* The editor's help button, in the corner of the drawing, opening the guide to
|
|
@@ -13,6 +14,7 @@ import { StructureEditorHelp } from "./StructureEditorHelp.js";
|
|
|
13
14
|
*/
|
|
14
15
|
export function EditorHelpButton(props) {
|
|
15
16
|
const { containerRef, mode, fragment } = props;
|
|
17
|
+
const t = useChromeT();
|
|
16
18
|
const [isOpen, setIsOpen] = useState(false);
|
|
17
19
|
useEffect(() => {
|
|
18
20
|
const container = containerRef.current;
|
|
@@ -27,9 +29,8 @@ export function EditorHelpButton(props) {
|
|
|
27
29
|
container.addEventListener('keydown', onKeyDown);
|
|
28
30
|
return () => container.removeEventListener('keydown', onKeyDown);
|
|
29
31
|
}, [containerRef]);
|
|
30
|
-
return (_jsx("div", { style: CORNER_STYLE, children: _jsx(PopoverNext, { isOpen: isOpen, onInteraction: setIsOpen, placement: "left-start", content: _jsx(StructureEditorHelp, { mode: mode, fragment: fragment }), children: _jsx(Tooltip, { content:
|
|
32
|
+
return (_jsx("div", { style: CORNER_STYLE, children: _jsx(PopoverNext, { isOpen: isOpen, onInteraction: setIsOpen, placement: "left-start", content: _jsx(StructureEditorHelp, { mode: mode, fragment: fragment }), children: _jsx(Tooltip, { content: t('structure.mouseAndKeyboard'), placement: "left", disabled: isOpen, children: _jsx(Button, { variant: "minimal", size: "small", icon: "help", "aria-label": t('structure.mouseAndKeyboard') }) }) }) }));
|
|
31
33
|
}
|
|
32
|
-
const LABEL = 'Mouse and keyboard';
|
|
33
34
|
const CORNER_STYLE = {
|
|
34
35
|
position: 'absolute',
|
|
35
36
|
top: 4,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditorHelpButton.js","sourceRoot":"","sources":["../../../src/structure/ui/EditorHelpButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEjE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA2B,CAAC;AAahE;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAA4B;IAC3D,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAC/C,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5C,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC;QACvC,IAAI,SAAS,KAAK,IAAI;YAAE,OAAO;QAC/B,MAAM,SAAS,GAAG,CAAC,KAAoB,EAAQ,EAAE;YAC/C,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI;gBAAE,OAAO;YAC/B,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,SAAS,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC,CAAC;QACF,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACjD,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACnE,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,OAAO,CACL,cAAK,KAAK,EAAE,YAAY,YACtB,KAAC,WAAW,IACV,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,SAAS,EACxB,SAAS,EAAC,YAAY,EACtB,OAAO,EAAE,KAAC,mBAAmB,IAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,GAAI,YAEhE,KAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"EditorHelpButton.js","sourceRoot":"","sources":["../../../src/structure/ui/EditorHelpButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEjE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA2B,CAAC;AAahE;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAA4B;IAC3D,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAC/C,MAAM,CAAC,GAAG,UAAU,EAAE,CAAC;IACvB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5C,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC;QACvC,IAAI,SAAS,KAAK,IAAI;YAAE,OAAO;QAC/B,MAAM,SAAS,GAAG,CAAC,KAAoB,EAAQ,EAAE;YAC/C,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI;gBAAE,OAAO;YAC/B,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,SAAS,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC,CAAC;QACF,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACjD,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACnE,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,OAAO,CACL,cAAK,KAAK,EAAE,YAAY,YACtB,KAAC,WAAW,IACV,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,SAAS,EACxB,SAAS,EAAC,YAAY,EACtB,OAAO,EAAE,KAAC,mBAAmB,IAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,GAAI,YAEhE,KAAC,OAAO,IACN,OAAO,EAAE,CAAC,CAAC,4BAA4B,CAAC,EACxC,SAAS,EAAC,MAAM,EAChB,QAAQ,EAAE,MAAM,YAEhB,KAAC,MAAM,IACL,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,OAAO,EACZ,IAAI,EAAC,MAAM,gBACC,CAAC,CAAC,4BAA4B,CAAC,GAC3C,GACM,GACE,GACV,CACP,CAAC;AACJ,CAAC;AAED,MAAM,YAAY,GAAkB;IAClC,QAAQ,EAAE,UAAU;IACpB,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,CAAC;CACT,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StructureEditor.d.ts","sourceRoot":"","sources":["../../../src/structure/ui/StructureEditor.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AASzD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"StructureEditor.d.ts","sourceRoot":"","sources":["../../../src/structure/ui/StructureEditor.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AASzD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAQzD,OAAO,KAAK,EACV,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AAQ3B,0CAA0C;AAC1C,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,QAAQ,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAClD;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,WAAW,CAAC,EAAE,uBAAuB,CAAC;IACtC;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAC3B;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,YAAY,CAmDzE"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Suspense, lazy, useCallback, useEffect, useRef, useState, } from 'react';
|
|
3
|
+
import { useChromeT } from "../../i18n/ui/useT.js";
|
|
3
4
|
import { TOKEN } from "../../tokens/core/familyTokens.js";
|
|
4
5
|
import { createPendingCall } from "../core/pendingCall.js";
|
|
5
6
|
import { EditorHelpButton } from "./EditorHelpButton.js";
|
|
@@ -18,9 +19,10 @@ const EditorCanvas = lazy(async () => {
|
|
|
18
19
|
*/
|
|
19
20
|
export function StructureEditor(props) {
|
|
20
21
|
const { onChange, fragment = false, inputFormat = 'idcode', value = '', revision = 0, debounce = 300, minHeight = 320, mode = 'molecule', help = true, className, style, } = props;
|
|
22
|
+
const t = useChromeT();
|
|
21
23
|
const containerRef = useToolbarFloor({ minHeight, revision });
|
|
22
24
|
const handleChange = useDebounced(onChange, debounce, revision);
|
|
23
|
-
return (_jsx("div", { ref: containerRef, className: className, style: { ...ROOT_STYLE, minHeight, ...style }, children: _jsxs(Suspense, { fallback: _jsx("div", { style: LOADING_STYLE, children:
|
|
25
|
+
return (_jsx("div", { ref: containerRef, className: className, style: { ...ROOT_STYLE, minHeight, ...style }, children: _jsxs(Suspense, { fallback: _jsx("div", { style: LOADING_STYLE, children: t('structure.loadingEditor') }), children: [_jsx(EditorCanvas, { onChange: handleChange, fragment: fragment, inputFormat: inputFormat, value: value, mode: mode }, revision), help ? (_jsxs(_Fragment, { children: [_jsx(ToolbarTooltip, { containerRef: containerRef, mode: mode }), _jsx(EditorHelpButton, { containerRef: containerRef, mode: mode, fragment: fragment })] })) : null] }) }));
|
|
24
26
|
}
|
|
25
27
|
/**
|
|
26
28
|
* Report the last edit of a burst rather than every one of them.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StructureEditor.js","sourceRoot":"","sources":["../../../src/structure/ui/StructureEditor.tsx"],"names":[],"mappings":";AAUA,OAAO,EACL,QAAQ,EACR,IAAI,EACJ,WAAW,EACX,SAAS,EACT,MAAM,EACN,QAAQ,GACT,MAAM,OAAO,CAAC;AAGf,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAwB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAsB,CAAC;AAKtD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE;IACnC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,mBAAoB,CAAC,CAAC;IAClD,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC;AAC1C,CAAC,CAAC,CAAC;AAwEH;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,KAA2B;IACzD,MAAM,EACJ,QAAQ,EACR,QAAQ,GAAG,KAAK,EAChB,WAAW,GAAG,QAAQ,EACtB,KAAK,GAAG,EAAE,EACV,QAAQ,GAAG,CAAC,EACZ,QAAQ,GAAG,GAAG,EACd,SAAS,GAAG,GAAG,EACf,IAAI,GAAG,UAAU,EACjB,IAAI,GAAG,IAAI,EACX,SAAS,EACT,KAAK,GACN,GAAG,KAAK,CAAC;IAEV,MAAM,YAAY,GAAG,eAAe,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAG,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAEhE,OAAO,CACL,cACE,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,EAAE,GAAG,UAAU,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,YAE7C,MAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"StructureEditor.js","sourceRoot":"","sources":["../../../src/structure/ui/StructureEditor.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StructureEditorHelp.d.ts","sourceRoot":"","sources":["../../../src/structure/ui/StructureEditorHelp.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"StructureEditorHelp.d.ts","sourceRoot":"","sources":["../../../src/structure/ui/StructureEditorHelp.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,OAAO,CAAC;AAMzD,OAAO,KAAK,EAAiB,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAShF,uDAAuD;AACvD,MAAM,MAAM,wBAAwB,GAAG,kBAAkB,CAAC;AAE1D;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,wBAAwB,GAC9B,YAAY,CAgDd"}
|
|
@@ -4,8 +4,9 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
4
4
|
* editor's help popover, and usable by a site on a page of its own.
|
|
5
5
|
*/
|
|
6
6
|
import { Classes } from '@blueprintjs/core';
|
|
7
|
+
import { useChromeT } from "../../i18n/ui/useT.js";
|
|
7
8
|
import { TOKEN } from "../../tokens/core/familyTokens.js";
|
|
8
|
-
import { STRUCTURE_EDITOR_DOCS, editorGuideSections, } from "../core/editorGuide.js";
|
|
9
|
+
import { STRUCTURE_EDITOR_DOCS, editorGuideSections, editorInputWordId, } from "../core/editorGuide.js";
|
|
9
10
|
import { KeyCaps } from "./KeyCaps.js";
|
|
10
11
|
/**
|
|
11
12
|
* The guide to the structure editor: the keys that change the atom or bond
|
|
@@ -16,11 +17,19 @@ import { KeyCaps } from "./KeyCaps.js";
|
|
|
16
17
|
* @returns The guide.
|
|
17
18
|
*/
|
|
18
19
|
export function StructureEditorHelp(props) {
|
|
20
|
+
const t = useChromeT();
|
|
19
21
|
const sections = editorGuideSections(props);
|
|
20
|
-
return (_jsxs("div", { style: PANEL_STYLE, "data-testid": "structure-editor-help", children: [_jsx("p", { className: Classes.TEXT_MUTED, style: PARAGRAPH_STYLE, children:
|
|
22
|
+
return (_jsxs("div", { style: PANEL_STYLE, "data-testid": "structure-editor-help", children: [_jsx("p", { className: Classes.TEXT_MUTED, style: PARAGRAPH_STYLE, children: t('structure.help.hoverToolbar') }), _jsx("div", { style: GRID_STYLE, children: sections.map((section) => (_jsxs("section", { style: ROW_STYLE, children: [_jsx("h4", { style: HEADING_STYLE, children: t.or(`structure.guide.${section.id}.title`, section.title) }), section.gestures.map((gesture) => (_jsxs("div", { style: ROW_STYLE, children: [_jsx(GestureInput, { input: gesture.input, t: t }), _jsx("span", { children: t.or(`structure.guide.${section.id}.${gesture.id}`, gesture.action) })] }, gestureKey(gesture)))), section.note === undefined ? null : (_jsx("p", { className: Classes.TEXT_MUTED, style: NOTE_STYLE, children: t.or(`structure.guide.${section.id}.note`, section.note) }))] }, section.id))) }), _jsxs("p", { style: PARAGRAPH_STYLE, children: [t('structure.help.learnMore'), ' ', STRUCTURE_EDITOR_DOCS.map((link, index) => (_jsxs("span", { children: [index === 0 ? null : ' · ', _jsx("a", { href: link.url, target: "_blank", rel: "noopener noreferrer", children: t.or(`structure.docs.${link.id}`, link.title) })] }, link.url)))] })] }));
|
|
21
23
|
}
|
|
22
24
|
function GestureInput(props) {
|
|
23
|
-
|
|
25
|
+
const { input, t } = props;
|
|
26
|
+
return (_jsx("span", { style: INPUT_STYLE, children: input.map((part) => typeof part === 'string' ? (_jsx("span", { children: word(part, t) }, part)) : (_jsx(KeyCaps, { keys: [part.key] }, part.key))) }));
|
|
27
|
+
}
|
|
28
|
+
// A word between two key caps is one catalog entry, shared by every gesture
|
|
29
|
+
// that writes it; punctuation such as `…` is left exactly as it is.
|
|
30
|
+
function word(text, t) {
|
|
31
|
+
const id = editorInputWordId(text);
|
|
32
|
+
return id === undefined ? text : t.or(`structure.input.${id}`, text);
|
|
24
33
|
}
|
|
25
34
|
function gestureKey(gesture) {
|
|
26
35
|
const input = gesture.input
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StructureEditorHelp.js","sourceRoot":"","sources":["../../../src/structure/ui/StructureEditorHelp.tsx"],"names":[],"mappings":";AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"StructureEditorHelp.js","sourceRoot":"","sources":["../../../src/structure/ui/StructureEditorHelp.tsx"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
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,5 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Classes, Tooltip } from '@blueprintjs/core';
|
|
3
|
+
import { useChromeT } from "../../i18n/ui/useT.js";
|
|
3
4
|
import { EDITOR_TOOLBAR_BUTTONS, isEditorToolbarButtonAvailable, } from "../core/editorToolbar.js";
|
|
4
5
|
import { KeyCaps } from "./KeyCaps.js";
|
|
5
6
|
import { useToolbarHover } from "./useToolbarHover.js";
|
|
@@ -24,10 +25,11 @@ export function ToolbarTooltip(props) {
|
|
|
24
25
|
}
|
|
25
26
|
function ButtonTip(props) {
|
|
26
27
|
const { button, mode } = props;
|
|
28
|
+
const t = useChromeT();
|
|
27
29
|
const available = isEditorToolbarButtonAvailable(button, mode);
|
|
28
|
-
return (_jsxs("div", { style: TIP_STYLE, "data-testid": "structure-editor-tooltip", children: [_jsxs("div", { style: HEAD_STYLE, children: [_jsx("strong", { children: button.name }), button.keys === undefined ? null : _jsx(KeyCaps, { keys: button.keys })] }), _jsx("div", { children: button.description }), available ? null : (_jsx("div", { className: Classes.TEXT_MUTED, children: button.availability === 'reaction'
|
|
29
|
-
? '
|
|
30
|
-
: '
|
|
30
|
+
return (_jsxs("div", { style: TIP_STYLE, "data-testid": "structure-editor-tooltip", children: [_jsxs("div", { style: HEAD_STYLE, children: [_jsx("strong", { children: t.or(`structure.tool.${button.id}.name`, button.name) }), button.keys === undefined ? null : _jsx(KeyCaps, { keys: button.keys })] }), _jsx("div", { children: t.or(`structure.tool.${button.id}.description`, button.description) }), available ? null : (_jsx("div", { className: Classes.TEXT_MUTED, children: button.availability === 'reaction'
|
|
31
|
+
? t('structure.tool.reactionOnly')
|
|
32
|
+
: t('structure.tool.unavailable') }))] }));
|
|
31
33
|
}
|
|
32
34
|
const TARGET_STYLE = {
|
|
33
35
|
position: 'absolute',
|
|
@@ -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;
|
|
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"}
|
package/lib/ui.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ export * from './ecosystem/ui/index.ts';
|
|
|
14
14
|
export * from './error/ui/index.ts';
|
|
15
15
|
export * from './help/ui/index.ts';
|
|
16
16
|
export * from './hooks/ui/index.ts';
|
|
17
|
+
export * from './i18n/ui/index.ts';
|
|
17
18
|
export * from './language/ui/index.ts';
|
|
18
19
|
export * from './overlay/ui/index.ts';
|
|
19
20
|
export * from './parallel/ui/index.ts';
|
package/lib/ui.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC"}
|
package/lib/ui.js
CHANGED
|
@@ -14,6 +14,7 @@ export * from "./ecosystem/ui/index.js";
|
|
|
14
14
|
export * from "./error/ui/index.js";
|
|
15
15
|
export * from "./help/ui/index.js";
|
|
16
16
|
export * from "./hooks/ui/index.js";
|
|
17
|
+
export * from "./i18n/ui/index.js";
|
|
17
18
|
export * from "./language/ui/index.js";
|
|
18
19
|
export * from "./overlay/ui/index.js";
|
|
19
20
|
export * from "./parallel/ui/index.js";
|
package/lib/ui.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-cheminfo",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.27.0",
|
|
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",
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
},
|
|
32
32
|
"bin": {
|
|
33
33
|
"cheminfo-check-deploy": "bin/check-deploy.mjs",
|
|
34
|
+
"cheminfo-check-messages": "bin/check-messages.mjs",
|
|
34
35
|
"cheminfo-check-tokens": "bin/check-tokens.mjs"
|
|
35
36
|
},
|
|
36
37
|
"files": [
|
|
@@ -41,6 +42,7 @@
|
|
|
41
42
|
],
|
|
42
43
|
"scripts": {
|
|
43
44
|
"build-storybook": "storybook build",
|
|
45
|
+
"check-messages": "node scripts/check-messages.mjs src/locales",
|
|
44
46
|
"check-tokens": "node scripts/check-tokens.mjs --fallbacks styles src",
|
|
45
47
|
"check-types": "tsc --noEmit",
|
|
46
48
|
"clean": "rimraf coverage lib storybook-static",
|
|
@@ -50,7 +52,7 @@
|
|
|
50
52
|
"prepack": "npm run tsc",
|
|
51
53
|
"prettier": "prettier --check .",
|
|
52
54
|
"prettier-write": "prettier --write .",
|
|
53
|
-
"test": "npm run test-only && npm run check-types && npm run check-tokens && npm run eslint && npm run prettier",
|
|
55
|
+
"test": "npm run test-only && npm run check-types && npm run check-tokens && npm run check-messages && npm run eslint && npm run prettier",
|
|
54
56
|
"test-e2e": "playwright test",
|
|
55
57
|
"test-e2e-ui": "playwright test --ui",
|
|
56
58
|
"test-only": "vitest run --coverage",
|
|
@@ -2,6 +2,7 @@ import type { CSSProperties, ReactElement, ReactNode } from 'react';
|
|
|
2
2
|
|
|
3
3
|
import type { BuildInfo } from '../../build/core/buildInfo.ts';
|
|
4
4
|
import { formatBuiltAt, shortCommit } from '../../build/core/buildInfo.ts';
|
|
5
|
+
import { useChromeT } from '../../i18n/ui/useT.ts';
|
|
5
6
|
import { githubSources } from '../core/repository.ts';
|
|
6
7
|
|
|
7
8
|
export interface AboutBuildProps {
|
|
@@ -24,26 +25,32 @@ export interface AboutBuildProps {
|
|
|
24
25
|
*/
|
|
25
26
|
export function AboutBuild(props: AboutBuildProps): ReactElement {
|
|
26
27
|
const { build, repository } = props;
|
|
28
|
+
const t = useChromeT();
|
|
27
29
|
const sources = githubSources(repository);
|
|
30
|
+
const builtAt = formatBuiltAt(build.builtAt);
|
|
31
|
+
if (build.commit === undefined) {
|
|
32
|
+
return <p style={PARAGRAPH_STYLE}>{t('about.built', { builtAt })}</p>;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// The commit is a link inside a sentence whose word order is the
|
|
36
|
+
// translator's, so the message is split where it names it.
|
|
37
|
+
const [before = '', after = ''] = t('about.builtFromCommit', {
|
|
38
|
+
builtAt,
|
|
39
|
+
}).split('{commit}');
|
|
28
40
|
|
|
29
41
|
return (
|
|
30
42
|
<p style={PARAGRAPH_STYLE}>
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
{shortCommit(build.commit)}
|
|
43
|
-
</Reference>
|
|
44
|
-
</>
|
|
45
|
-
)}
|
|
46
|
-
.
|
|
43
|
+
{before}
|
|
44
|
+
<Reference
|
|
45
|
+
href={
|
|
46
|
+
sources === undefined
|
|
47
|
+
? undefined
|
|
48
|
+
: `${sources}/commit/${build.commit}`
|
|
49
|
+
}
|
|
50
|
+
>
|
|
51
|
+
{shortCommit(build.commit)}
|
|
52
|
+
</Reference>
|
|
53
|
+
{after}
|
|
47
54
|
</p>
|
|
48
55
|
);
|
|
49
56
|
}
|
|
@@ -2,6 +2,7 @@ import type { CSSProperties, ReactElement } from 'react';
|
|
|
2
2
|
|
|
3
3
|
import type { CitedWork } from '../../citation/core/works.ts';
|
|
4
4
|
import { CiteButton } from '../../citation/ui/CiteButton.tsx';
|
|
5
|
+
import { useChromeT } from '../../i18n/ui/useT.ts';
|
|
5
6
|
|
|
6
7
|
export interface AboutCitationsProps {
|
|
7
8
|
/** The works the site asks for, in the order it names them. */
|
|
@@ -18,6 +19,7 @@ export interface AboutCitationsProps {
|
|
|
18
19
|
*/
|
|
19
20
|
export function AboutCitations(props: AboutCitationsProps): ReactElement {
|
|
20
21
|
const { works } = props;
|
|
22
|
+
const t = useChromeT();
|
|
21
23
|
|
|
22
24
|
return (
|
|
23
25
|
<div className="about-citations" style={LIST_STYLE}>
|
|
@@ -29,7 +31,7 @@ export function AboutCitations(props: AboutCitationsProps): ReactElement {
|
|
|
29
31
|
)}
|
|
30
32
|
<CiteButton
|
|
31
33
|
reference={work.reference}
|
|
32
|
-
label={
|
|
34
|
+
label={t('about.citeWork', { what: work.what })}
|
|
33
35
|
placement="bottom-start"
|
|
34
36
|
/>
|
|
35
37
|
</div>
|
|
@@ -3,6 +3,7 @@ import type { CSSProperties, ReactElement, ReactNode } from 'react';
|
|
|
3
3
|
import { CreditsList } from '../../credits/ui/CreditsList.tsx';
|
|
4
4
|
import { Wordmark } from '../../ecosystem/ui/Wordmark.tsx';
|
|
5
5
|
import { SiteMark } from '../../ecosystem/ui/marks.tsx';
|
|
6
|
+
import { useChromeT } from '../../i18n/ui/useT.ts';
|
|
6
7
|
import type { AboutContent } from '../core/about.ts';
|
|
7
8
|
import { resolveAbout } from '../core/about.ts';
|
|
8
9
|
|
|
@@ -58,6 +59,7 @@ export interface AboutPageProps {
|
|
|
58
59
|
*/
|
|
59
60
|
export function AboutPage(props: AboutPageProps): ReactElement {
|
|
60
61
|
const { content, className, children, logo, mark } = props;
|
|
62
|
+
const t = useChromeT();
|
|
61
63
|
const about = resolveAbout(content);
|
|
62
64
|
const site = about.site;
|
|
63
65
|
|
|
@@ -76,7 +78,9 @@ export function AboutPage(props: AboutPageProps): ReactElement {
|
|
|
76
78
|
<h1 style={logo === undefined ? NAME_STYLE : LOGO_NAME_STYLE}>
|
|
77
79
|
{logo ?? <Wordmark site={site} size={26} />}
|
|
78
80
|
</h1>
|
|
79
|
-
<p style={TAGLINE_STYLE}>
|
|
81
|
+
<p style={TAGLINE_STYLE}>
|
|
82
|
+
{t.or(`site.${site.id}.tagline`, site.tagline)}
|
|
83
|
+
</p>
|
|
80
84
|
<p style={WHAT_STYLE}>{about.what}</p>
|
|
81
85
|
</div>
|
|
82
86
|
<AboutVersion
|
|
@@ -87,12 +91,15 @@ export function AboutPage(props: AboutPageProps): ReactElement {
|
|
|
87
91
|
</header>
|
|
88
92
|
|
|
89
93
|
{about.people.length === 0 && about.providedBy.length === 0 ? null : (
|
|
90
|
-
<AboutSection
|
|
94
|
+
<AboutSection
|
|
95
|
+
title={t('about.providedBy')}
|
|
96
|
+
className="about-provided-by"
|
|
97
|
+
>
|
|
91
98
|
<AboutProvidedBy people={about.people} providers={about.providedBy} />
|
|
92
99
|
</AboutSection>
|
|
93
100
|
)}
|
|
94
101
|
|
|
95
|
-
<AboutSection title=
|
|
102
|
+
<AboutSection title={t('about.whatYouCanDo')} className="about-can">
|
|
96
103
|
<ul style={CAN_LIST_STYLE}>
|
|
97
104
|
{about.can.map((line) => (
|
|
98
105
|
<li key={line}>{line}</li>
|
|
@@ -115,12 +122,12 @@ export function AboutPage(props: AboutPageProps): ReactElement {
|
|
|
115
122
|
|
|
116
123
|
{children}
|
|
117
124
|
|
|
118
|
-
<AboutSection title=
|
|
125
|
+
<AboutSection title={t('about.builtOn')} className="about-credits">
|
|
119
126
|
<CreditsList entries={about.credits} />
|
|
120
127
|
</AboutSection>
|
|
121
128
|
|
|
122
129
|
{about.cite.length === 0 ? null : (
|
|
123
|
-
<AboutSection title=
|
|
130
|
+
<AboutSection title={t('about.howToCite')} className="about-cite">
|
|
124
131
|
<AboutCitations works={about.cite} />
|
|
125
132
|
</AboutSection>
|
|
126
133
|
)}
|
|
@@ -131,11 +138,16 @@ export function AboutPage(props: AboutPageProps): ReactElement {
|
|
|
131
138
|
The version stays in the hero, unlinked, so a report still names a build.
|
|
132
139
|
*/}
|
|
133
140
|
{!about.publicRepository ? null : (
|
|
134
|
-
<AboutSection
|
|
141
|
+
<AboutSection
|
|
142
|
+
title={t('about.licenceAndSource')}
|
|
143
|
+
className="about-licence"
|
|
144
|
+
>
|
|
135
145
|
<p style={FIRST_PARAGRAPH_STYLE}>
|
|
136
|
-
{
|
|
137
|
-
|
|
138
|
-
|
|
146
|
+
{around(
|
|
147
|
+
t('about.licence', { license: about.license }),
|
|
148
|
+
'sources',
|
|
149
|
+
<ExternalLink key="sources" href={about.repository} />,
|
|
150
|
+
)}
|
|
139
151
|
</p>
|
|
140
152
|
{about.build === undefined ? null : (
|
|
141
153
|
<AboutBuild build={about.build} repository={about.repository} />
|
|
@@ -148,10 +160,13 @@ export function AboutPage(props: AboutPageProps): ReactElement {
|
|
|
148
160
|
the tracker of a private repository answers 404 to every visitor.
|
|
149
161
|
*/}
|
|
150
162
|
{about.issues === undefined ? null : (
|
|
151
|
-
<AboutSection title=
|
|
163
|
+
<AboutSection title={t('about.foundAProblem')} className="about-issues">
|
|
152
164
|
<p style={FIRST_PARAGRAPH_STYLE}>
|
|
153
|
-
|
|
154
|
-
|
|
165
|
+
{around(
|
|
166
|
+
t('about.reportIt'),
|
|
167
|
+
'tracker',
|
|
168
|
+
<ExternalLink key="tracker" href={about.issues} />,
|
|
169
|
+
)}
|
|
155
170
|
</p>
|
|
156
171
|
</AboutSection>
|
|
157
172
|
)}
|
|
@@ -159,6 +174,17 @@ export function AboutPage(props: AboutPageProps): ReactElement {
|
|
|
159
174
|
);
|
|
160
175
|
}
|
|
161
176
|
|
|
177
|
+
// A link sits inside a sentence whose word order is the translator's, so the
|
|
178
|
+
// message names where it goes with a placeholder and is split there.
|
|
179
|
+
function around(
|
|
180
|
+
message: string,
|
|
181
|
+
placeholder: string,
|
|
182
|
+
link: ReactNode,
|
|
183
|
+
): ReactNode[] {
|
|
184
|
+
const [before = '', after = ''] = message.split(`{${placeholder}}`);
|
|
185
|
+
return [before, link, after];
|
|
186
|
+
}
|
|
187
|
+
|
|
162
188
|
function ExternalLink(props: { href: string }): ReactElement {
|
|
163
189
|
const { href } = props;
|
|
164
190
|
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import type { CSSProperties, ReactElement } from 'react';
|
|
2
2
|
|
|
3
|
+
import type { ChromeKey } from '../../i18n/core/chromeCatalog.ts';
|
|
4
|
+
import type { Translate } from '../../i18n/ui/useT.ts';
|
|
5
|
+
import { useChromeT } from '../../i18n/ui/useT.ts';
|
|
3
6
|
import type { AboutPerson } from '../core/about.ts';
|
|
4
7
|
import type { ProviderEntry } from '../core/providers.ts';
|
|
5
8
|
|
|
@@ -19,6 +22,7 @@ export interface AboutProvidedByProps {
|
|
|
19
22
|
*/
|
|
20
23
|
export function AboutProvidedBy(props: AboutProvidedByProps): ReactElement {
|
|
21
24
|
const { people, providers } = props;
|
|
25
|
+
const t = useChromeT();
|
|
22
26
|
const withRoles = people.filter((person) => person.role !== undefined);
|
|
23
27
|
|
|
24
28
|
return (
|
|
@@ -42,7 +46,7 @@ export function AboutProvidedBy(props: AboutProvidedByProps): ReactElement {
|
|
|
42
46
|
}
|
|
43
47
|
>
|
|
44
48
|
{people.length === 0 ? null : (
|
|
45
|
-
<p style={NAMES_STYLE}>{joinNames(people)}</p>
|
|
49
|
+
<p style={NAMES_STYLE}>{joinNames(people, t)}</p>
|
|
46
50
|
)}
|
|
47
51
|
{providers.map((provider) => (
|
|
48
52
|
<p key={provider.id} style={INSTITUTION_STYLE}>
|
|
@@ -65,10 +69,16 @@ export function AboutProvidedBy(props: AboutProvidedByProps): ReactElement {
|
|
|
65
69
|
);
|
|
66
70
|
}
|
|
67
71
|
|
|
68
|
-
function joinNames(
|
|
72
|
+
function joinNames(
|
|
73
|
+
people: readonly AboutPerson[],
|
|
74
|
+
t: Translate<ChromeKey>,
|
|
75
|
+
): string {
|
|
69
76
|
const names = people.map((person) => person.name);
|
|
70
77
|
if (names.length < 2) return names.join('');
|
|
71
|
-
return
|
|
78
|
+
return t('about.nameList', {
|
|
79
|
+
names: names.slice(0, -1).join(', '),
|
|
80
|
+
last: names.at(-1) ?? '',
|
|
81
|
+
});
|
|
72
82
|
}
|
|
73
83
|
|
|
74
84
|
function ProviderLogo(props: { provider: ProviderEntry }): ReactElement {
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One capsule of a filter row: an interactive tag that keeps its semantic
|
|
3
|
+
* colour whether or not it is selected, the filled shape being what encodes
|
|
4
|
+
* the selection.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import type { Intent } from '@blueprintjs/core';
|
|
8
|
+
import { Tag } from '@blueprintjs/core';
|
|
9
|
+
import type { ReactElement } from 'react';
|
|
10
|
+
|
|
11
|
+
/** What one capsule needs. */
|
|
12
|
+
export interface CapsuleProps {
|
|
13
|
+
/** What the capsule reads, count included. */
|
|
14
|
+
text: string;
|
|
15
|
+
/** Whether it is filled. */
|
|
16
|
+
selected: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Colour of the capsule, which says what the outcome means.
|
|
19
|
+
* @default undefined — the capsule takes no intent
|
|
20
|
+
*/
|
|
21
|
+
intent?: Intent;
|
|
22
|
+
/** What the pointer is told, or `undefined` for no title at all. */
|
|
23
|
+
title: string | undefined;
|
|
24
|
+
/** Called when the capsule is picked. */
|
|
25
|
+
onClick: () => void;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* One capsule.
|
|
30
|
+
* @param props - See {@link CapsuleProps}.
|
|
31
|
+
* @returns The tag.
|
|
32
|
+
*/
|
|
33
|
+
export function Capsule(props: CapsuleProps): ReactElement {
|
|
34
|
+
const { text, selected, intent, title, onClick } = props;
|
|
35
|
+
return (
|
|
36
|
+
<Tag
|
|
37
|
+
interactive
|
|
38
|
+
round
|
|
39
|
+
minimal={!selected}
|
|
40
|
+
intent={intent}
|
|
41
|
+
aria-pressed={selected}
|
|
42
|
+
htmlTitle={title}
|
|
43
|
+
onClick={onClick}
|
|
44
|
+
>
|
|
45
|
+
{text}
|
|
46
|
+
</Tag>
|
|
47
|
+
);
|
|
48
|
+
}
|