react-cheminfo 0.38.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.
- package/lib/chart/ui/Axes.d.ts +19 -0
- package/lib/chart/ui/Axes.d.ts.map +1 -1
- package/lib/chart/ui/Axes.js +25 -5
- package/lib/chart/ui/Axes.js.map +1 -1
- package/lib/chrome/ui/NavMenuButton.d.ts.map +1 -1
- package/lib/chrome/ui/NavMenuButton.js +41 -11
- package/lib/chrome/ui/NavMenuButton.js.map +1 -1
- package/lib/chrome/ui/SiteHeader.js +24 -1
- package/lib/chrome/ui/SiteHeader.js.map +1 -1
- package/lib/chrome/ui/navItem.d.ts +7 -0
- package/lib/chrome/ui/navItem.d.ts.map +1 -1
- package/lib/chrome/ui/navItem.js.map +1 -1
- package/lib/citation/ui/entries.d.ts.map +1 -1
- package/lib/citation/ui/entries.js +6 -1
- package/lib/citation/ui/entries.js.map +1 -1
- package/lib/clipboard/ui/ClickToCopy.d.ts +11 -0
- package/lib/clipboard/ui/ClickToCopy.d.ts.map +1 -1
- package/lib/clipboard/ui/ClickToCopy.js +28 -10
- package/lib/clipboard/ui/ClickToCopy.js.map +1 -1
- package/lib/clipboard/ui/CopyButton.d.ts +2 -1
- package/lib/clipboard/ui/CopyButton.d.ts.map +1 -1
- package/lib/clipboard/ui/CopyButton.js +2 -1
- package/lib/clipboard/ui/CopyButton.js.map +1 -1
- package/lib/clipboard/ui/CopyableValue.d.ts +24 -4
- package/lib/clipboard/ui/CopyableValue.d.ts.map +1 -1
- package/lib/clipboard/ui/CopyableValue.js +35 -3
- package/lib/clipboard/ui/CopyableValue.js.map +1 -1
- package/lib/clipboard/ui/index.d.ts +1 -1
- package/lib/clipboard/ui/index.d.ts.map +1 -1
- package/lib/clipboard/ui/index.js.map +1 -1
- package/lib/confirm/ui/ConfirmButton.d.ts.map +1 -1
- package/lib/confirm/ui/ConfirmButton.js +2 -1
- package/lib/confirm/ui/ConfirmButton.js.map +1 -1
- package/lib/delimited/ui/TableDataButton.d.ts.map +1 -1
- package/lib/delimited/ui/TableDataButton.js +2 -1
- package/lib/delimited/ui/TableDataButton.js.map +1 -1
- package/lib/download/core/figureSvg.d.ts.map +1 -1
- package/lib/download/core/figureSvg.js +37 -12
- package/lib/download/core/figureSvg.js.map +1 -1
- package/lib/help/ui/HelpToolbarButton.d.ts.map +1 -1
- package/lib/help/ui/HelpToolbarButton.js +2 -1
- package/lib/help/ui/HelpToolbarButton.js.map +1 -1
- package/lib/i18n/core/chromeCatalog.d.ts +1 -1
- package/lib/i18n/core/chromeCatalog.d.ts.map +1 -1
- package/lib/locales/de.json +39 -4
- package/lib/locales/en.json +39 -4
- package/lib/locales/es.json +39 -4
- package/lib/locales/fr.json +39 -4
- package/lib/locales/it.json +39 -4
- package/lib/number/ui/NumberInput.js +1 -1
- package/lib/number/ui/NumberInput.js.map +1 -1
- package/lib/overlay/ui/OverlayIconButton.d.ts.map +1 -1
- package/lib/overlay/ui/OverlayIconButton.js +1 -1
- package/lib/overlay/ui/OverlayIconButton.js.map +1 -1
- package/lib/panel/ui/ClearButton.d.ts.map +1 -1
- package/lib/panel/ui/ClearButton.js +1 -1
- package/lib/panel/ui/ClearButton.js.map +1 -1
- package/lib/pedagogy/core/inlineMarks.d.ts +9 -5
- package/lib/pedagogy/core/inlineMarks.d.ts.map +1 -1
- package/lib/pedagogy/core/inlineMarks.js +14 -6
- package/lib/pedagogy/core/inlineMarks.js.map +1 -1
- package/lib/pedagogy/ui/GlossaryDefinition.d.ts +4 -10
- package/lib/pedagogy/ui/GlossaryDefinition.d.ts.map +1 -1
- package/lib/pedagogy/ui/GlossaryDefinition.js +7 -7
- package/lib/pedagogy/ui/GlossaryDefinition.js.map +1 -1
- package/lib/pedagogy/ui/GlossaryIndex.d.ts.map +1 -1
- package/lib/pedagogy/ui/GlossaryIndex.js +1 -1
- package/lib/pedagogy/ui/GlossaryIndex.js.map +1 -1
- package/lib/pedagogy/ui/GlossaryProvider.d.ts +7 -0
- package/lib/pedagogy/ui/GlossaryProvider.d.ts.map +1 -1
- package/lib/pedagogy/ui/GlossaryProvider.js +3 -2
- package/lib/pedagogy/ui/GlossaryProvider.js.map +1 -1
- package/lib/pedagogy/ui/GlossaryText.d.ts +7 -2
- package/lib/pedagogy/ui/GlossaryText.d.ts.map +1 -1
- package/lib/pedagogy/ui/GlossaryText.js +3 -2
- package/lib/pedagogy/ui/GlossaryText.js.map +1 -1
- package/lib/pedagogy/ui/InlineText.d.ts +8 -2
- package/lib/pedagogy/ui/InlineText.d.ts.map +1 -1
- package/lib/pedagogy/ui/InlineText.js +7 -2
- package/lib/pedagogy/ui/InlineText.js.map +1 -1
- package/lib/pedagogy/ui/ReferenceSectionBlock.d.ts +4 -1
- package/lib/pedagogy/ui/ReferenceSectionBlock.d.ts.map +1 -1
- package/lib/pedagogy/ui/ReferenceSectionBlock.js +2 -1
- package/lib/pedagogy/ui/ReferenceSectionBlock.js.map +1 -1
- package/lib/pedagogy/ui/SyntaxTooltip.d.ts.map +1 -1
- package/lib/pedagogy/ui/SyntaxTooltip.js +11 -10
- 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 +18 -4
- package/lib/pedagogy/ui/TutorialStepStrip.js.map +1 -1
- package/lib/pedagogy/ui/glossaryContext.d.ts +7 -0
- package/lib/pedagogy/ui/glossaryContext.d.ts.map +1 -1
- package/lib/pedagogy/ui/glossaryContext.js.map +1 -1
- package/lib/pedagogy/ui/index.d.ts +1 -1
- package/lib/pedagogy/ui/index.d.ts.map +1 -1
- package/lib/pedagogy/ui/inlineSegments.d.ts +5 -0
- package/lib/pedagogy/ui/inlineSegments.d.ts.map +1 -1
- package/lib/pedagogy/ui/inlineSegments.js +2 -0
- package/lib/pedagogy/ui/inlineSegments.js.map +1 -1
- package/lib/pedagogy/ui/pedagogyStyle.d.ts +8 -9
- package/lib/pedagogy/ui/pedagogyStyle.d.ts.map +1 -1
- package/lib/pedagogy/ui/pedagogyStyle.js +10 -18
- package/lib/pedagogy/ui/pedagogyStyle.js.map +1 -1
- package/lib/seo/core/plainDescription.d.ts +2 -2
- package/lib/seo/core/plainDescription.js +5 -2
- package/lib/seo/core/plainDescription.js.map +1 -1
- package/lib/share/core/devices.d.ts +41 -0
- package/lib/share/core/devices.d.ts.map +1 -0
- package/lib/share/core/devices.js +58 -0
- package/lib/share/core/devices.js.map +1 -0
- package/lib/share/core/index.d.ts +4 -0
- package/lib/share/core/index.d.ts.map +1 -1
- package/lib/share/core/index.js +2 -0
- package/lib/share/core/index.js.map +1 -1
- package/lib/share/core/regions.d.ts +43 -0
- package/lib/share/core/regions.d.ts.map +1 -0
- package/lib/share/core/regions.js +71 -0
- package/lib/share/core/regions.js.map +1 -0
- package/lib/share/ui/HiddenPartsProvider.d.ts.map +1 -1
- package/lib/share/ui/HiddenPartsProvider.js +4 -1
- package/lib/share/ui/HiddenPartsProvider.js.map +1 -1
- package/lib/share/ui/PagePart.d.ts.map +1 -1
- package/lib/share/ui/PagePart.js +10 -1
- package/lib/share/ui/PagePart.js.map +1 -1
- package/lib/share/ui/ShareButton.d.ts.map +1 -1
- package/lib/share/ui/ShareButton.js +3 -4
- package/lib/share/ui/ShareButton.js.map +1 -1
- package/lib/share/ui/ShareConfigOptions.d.ts +6 -1
- package/lib/share/ui/ShareConfigOptions.d.ts.map +1 -1
- package/lib/share/ui/ShareConfigOptions.js +6 -13
- package/lib/share/ui/ShareConfigOptions.js.map +1 -1
- package/lib/share/ui/ShareDialog.d.ts +14 -0
- package/lib/share/ui/ShareDialog.d.ts.map +1 -1
- package/lib/share/ui/ShareDialog.js +3 -3
- package/lib/share/ui/ShareDialog.js.map +1 -1
- package/lib/share/ui/ShareDialogContent.d.ts +2 -2
- package/lib/share/ui/ShareDialogContent.d.ts.map +1 -1
- package/lib/share/ui/ShareDialogContent.js +36 -30
- package/lib/share/ui/ShareDialogContent.js.map +1 -1
- package/lib/share/ui/ShareLinkBar.d.ts +21 -0
- package/lib/share/ui/ShareLinkBar.d.ts.map +1 -0
- package/lib/share/ui/ShareLinkBar.js +32 -0
- package/lib/share/ui/ShareLinkBar.js.map +1 -0
- package/lib/share/ui/SharePanes.d.ts +17 -0
- package/lib/share/ui/SharePanes.d.ts.map +1 -0
- package/lib/share/ui/SharePanes.js +27 -0
- package/lib/share/ui/SharePanes.js.map +1 -0
- package/lib/share/ui/SharePartOptions.d.ts +9 -3
- package/lib/share/ui/SharePartOptions.d.ts.map +1 -1
- package/lib/share/ui/SharePartOptions.js +12 -16
- package/lib/share/ui/SharePartOptions.js.map +1 -1
- package/lib/share/ui/SharePartRow.d.ts +37 -0
- package/lib/share/ui/SharePartRow.d.ts.map +1 -0
- package/lib/share/ui/SharePartRow.js +25 -0
- package/lib/share/ui/SharePartRow.js.map +1 -0
- package/lib/share/ui/SharePresetTabs.d.ts +10 -7
- package/lib/share/ui/SharePresetTabs.d.ts.map +1 -1
- package/lib/share/ui/SharePresetTabs.js +17 -17
- package/lib/share/ui/SharePresetTabs.js.map +1 -1
- package/lib/share/ui/SharePreview.d.ts +32 -0
- package/lib/share/ui/SharePreview.d.ts.map +1 -0
- package/lib/share/ui/SharePreview.js +104 -0
- package/lib/share/ui/SharePreview.js.map +1 -0
- package/lib/share/ui/SharePreviewDevices.d.ts +20 -0
- package/lib/share/ui/SharePreviewDevices.d.ts.map +1 -0
- package/lib/share/ui/SharePreviewDevices.js +40 -0
- package/lib/share/ui/SharePreviewDevices.js.map +1 -0
- package/lib/share/ui/index.d.ts +1 -0
- package/lib/share/ui/index.d.ts.map +1 -1
- package/lib/share/ui/index.js.map +1 -1
- package/lib/share/ui/shareMarking.d.ts +14 -0
- package/lib/share/ui/shareMarking.d.ts.map +1 -0
- package/lib/share/ui/shareMarking.js +17 -0
- package/lib/share/ui/shareMarking.js.map +1 -0
- package/lib/share/ui/useShareRegionReports.d.ts +12 -0
- package/lib/share/ui/useShareRegionReports.d.ts.map +1 -0
- package/lib/share/ui/useShareRegionReports.js +73 -0
- package/lib/share/ui/useShareRegionReports.js.map +1 -0
- package/lib/shared/ui/ActionTooltip.d.ts +42 -0
- package/lib/shared/ui/ActionTooltip.d.ts.map +1 -0
- package/lib/shared/ui/ActionTooltip.js +21 -0
- package/lib/shared/ui/ActionTooltip.js.map +1 -0
- package/lib/shared/ui/index.d.ts +4 -0
- package/lib/shared/ui/index.d.ts.map +1 -1
- package/lib/shared/ui/index.js +2 -0
- package/lib/shared/ui/index.js.map +1 -1
- package/lib/shared/ui/useActionTooltip.d.ts +48 -0
- package/lib/shared/ui/useActionTooltip.d.ts.map +1 -0
- package/lib/shared/ui/useActionTooltip.js +78 -0
- package/lib/shared/ui/useActionTooltip.js.map +1 -0
- package/lib/structure/core/index.d.ts +2 -0
- package/lib/structure/core/index.d.ts.map +1 -1
- package/lib/structure/core/index.js +1 -0
- package/lib/structure/core/index.js.map +1 -1
- package/lib/structure/core/sourceMolecule.d.ts +18 -0
- package/lib/structure/core/sourceMolecule.d.ts.map +1 -0
- package/lib/structure/core/sourceMolecule.js +26 -0
- package/lib/structure/core/sourceMolecule.js.map +1 -0
- package/lib/structure/core/structureNotations.d.ts +57 -0
- package/lib/structure/core/structureNotations.d.ts.map +1 -0
- package/lib/structure/core/structureNotations.js +74 -0
- package/lib/structure/core/structureNotations.js.map +1 -0
- package/lib/structure/core/structurePicture.d.ts +49 -0
- package/lib/structure/core/structurePicture.d.ts.map +1 -0
- package/lib/structure/core/structurePicture.js +83 -0
- package/lib/structure/core/structurePicture.js.map +1 -0
- package/lib/structure/ui/EditorExportButton.d.ts +23 -0
- package/lib/structure/ui/EditorExportButton.d.ts.map +1 -0
- package/lib/structure/ui/EditorExportButton.js +23 -0
- package/lib/structure/ui/EditorExportButton.js.map +1 -0
- package/lib/structure/ui/EditorHelpButton.d.ts +5 -2
- package/lib/structure/ui/EditorHelpButton.d.ts.map +1 -1
- package/lib/structure/ui/EditorHelpButton.js +8 -9
- package/lib/structure/ui/EditorHelpButton.js.map +1 -1
- package/lib/structure/ui/StructureEditor.d.ts +8 -0
- package/lib/structure/ui/StructureEditor.d.ts.map +1 -1
- package/lib/structure/ui/StructureEditor.js +26 -3
- package/lib/structure/ui/StructureEditor.js.map +1 -1
- package/lib/structure/ui/StructureExportDialog.d.ts +34 -0
- package/lib/structure/ui/StructureExportDialog.d.ts.map +1 -0
- package/lib/structure/ui/StructureExportDialog.js +43 -0
- package/lib/structure/ui/StructureExportDialog.js.map +1 -0
- package/lib/structure/ui/StructureExportPanel.d.ts +37 -0
- package/lib/structure/ui/StructureExportPanel.d.ts.map +1 -0
- package/lib/structure/ui/StructureExportPanel.js +75 -0
- package/lib/structure/ui/StructureExportPanel.js.map +1 -0
- package/lib/structure/ui/StructureNotationRow.d.ts +22 -0
- package/lib/structure/ui/StructureNotationRow.d.ts.map +1 -0
- package/lib/structure/ui/StructureNotationRow.js +34 -0
- package/lib/structure/ui/StructureNotationRow.js.map +1 -0
- package/lib/structure/ui/StructurePicturePane.d.ts +23 -0
- package/lib/structure/ui/StructurePicturePane.d.ts.map +1 -0
- package/lib/structure/ui/StructurePicturePane.js +113 -0
- package/lib/structure/ui/StructurePicturePane.js.map +1 -0
- package/lib/structure/ui/StructureSvg.d.ts.map +1 -1
- package/lib/structure/ui/StructureSvg.js +2 -18
- package/lib/structure/ui/StructureSvg.js.map +1 -1
- package/lib/structure/ui/ToolbarTooltip.d.ts.map +1 -1
- package/lib/structure/ui/ToolbarTooltip.js +1 -2
- package/lib/structure/ui/ToolbarTooltip.js.map +1 -1
- package/lib/structure/ui/index.d.ts +7 -3
- package/lib/structure/ui/index.d.ts.map +1 -1
- package/lib/structure/ui/index.js +5 -3
- package/lib/structure/ui/index.js.map +1 -1
- package/lib/structure/ui/structureNotationText.d.ts +23 -0
- package/lib/structure/ui/structureNotationText.d.ts.map +1 -0
- package/lib/structure/ui/structureNotationText.js +42 -0
- package/lib/structure/ui/structureNotationText.js.map +1 -0
- package/lib/structure/ui/useEditorStructure.d.ts +37 -0
- package/lib/structure/ui/useEditorStructure.d.ts.map +1 -0
- package/lib/structure/ui/useEditorStructure.js +70 -0
- package/lib/structure/ui/useEditorStructure.js.map +1 -0
- package/package.json +1 -1
- package/src/chart/ui/Axes.tsx +53 -5
- package/src/chrome/ui/NavMenuButton.tsx +61 -18
- package/src/chrome/ui/SiteHeader.tsx +37 -1
- package/src/chrome/ui/navItem.ts +7 -0
- package/src/citation/ui/entries.tsx +10 -2
- package/src/clipboard/ui/ClickToCopy.tsx +47 -13
- package/src/clipboard/ui/CopyButton.tsx +4 -2
- package/src/clipboard/ui/CopyableValue.tsx +88 -13
- package/src/clipboard/ui/index.ts +5 -1
- package/src/confirm/ui/ConfirmButton.tsx +2 -0
- package/src/delimited/ui/TableDataButton.tsx +2 -1
- package/src/download/core/figureSvg.ts +42 -10
- package/src/help/ui/HelpToolbarButton.tsx +2 -1
- package/src/locales/de.json +39 -4
- package/src/locales/en.json +39 -4
- package/src/locales/es.json +39 -4
- package/src/locales/fr.json +39 -4
- package/src/locales/it.json +39 -4
- package/src/number/ui/NumberInput.tsx +1 -1
- package/src/overlay/ui/OverlayIconButton.tsx +1 -0
- package/src/panel/ui/ClearButton.tsx +1 -0
- package/src/pedagogy/core/inlineMarks.ts +15 -7
- package/src/pedagogy/ui/GlossaryDefinition.tsx +8 -18
- package/src/pedagogy/ui/GlossaryIndex.tsx +0 -1
- package/src/pedagogy/ui/GlossaryProvider.tsx +10 -2
- package/src/pedagogy/ui/GlossaryText.tsx +10 -2
- package/src/pedagogy/ui/InlineText.tsx +21 -4
- package/src/pedagogy/ui/ReferenceSectionBlock.tsx +8 -2
- package/src/pedagogy/ui/SyntaxTooltip.tsx +11 -9
- package/src/pedagogy/ui/TutorialStepStrip.tsx +50 -18
- package/src/pedagogy/ui/glossaryContext.ts +7 -0
- package/src/pedagogy/ui/index.ts +1 -1
- package/src/pedagogy/ui/inlineSegments.tsx +7 -0
- package/src/pedagogy/ui/pedagogyStyle.ts +12 -24
- package/src/seo/core/plainDescription.ts +4 -2
- package/src/share/core/devices.ts +80 -0
- package/src/share/core/index.ts +14 -0
- package/src/share/core/regions.ts +87 -0
- package/src/share/ui/HiddenPartsProvider.tsx +6 -1
- package/src/share/ui/PagePart.tsx +12 -1
- package/src/share/ui/ShareButton.tsx +3 -6
- package/src/share/ui/ShareConfigOptions.tsx +25 -16
- package/src/share/ui/ShareDialog.tsx +17 -3
- package/src/share/ui/ShareDialogContent.tsx +80 -77
- package/src/share/ui/ShareLinkBar.tsx +70 -0
- package/src/share/ui/SharePanes.tsx +62 -0
- package/src/share/ui/SharePartOptions.tsx +25 -26
- package/src/share/ui/SharePartRow.tsx +78 -0
- package/src/share/ui/SharePresetTabs.tsx +36 -43
- package/src/share/ui/SharePreview.tsx +204 -0
- package/src/share/ui/SharePreviewDevices.tsx +70 -0
- package/src/share/ui/index.ts +1 -0
- package/src/share/ui/shareMarking.ts +18 -0
- package/src/share/ui/useShareRegionReports.ts +84 -0
- package/src/shared/ui/ActionTooltip.tsx +70 -0
- package/src/shared/ui/index.ts +7 -0
- package/src/shared/ui/useActionTooltip.ts +103 -0
- package/src/structure/core/index.ts +5 -0
- package/src/structure/core/sourceMolecule.ts +26 -0
- package/src/structure/core/structureNotations.ts +125 -0
- package/src/structure/core/structurePicture.ts +119 -0
- package/src/structure/ui/EditorExportButton.tsx +62 -0
- package/src/structure/ui/EditorHelpButton.tsx +26 -30
- package/src/structure/ui/StructureEditor.tsx +51 -5
- package/src/structure/ui/StructureExportDialog.tsx +90 -0
- package/src/structure/ui/StructureExportPanel.tsx +156 -0
- package/src/structure/ui/StructureNotationRow.tsx +74 -0
- package/src/structure/ui/StructurePicturePane.tsx +208 -0
- package/src/structure/ui/StructureSvg.tsx +3 -12
- package/src/structure/ui/ToolbarTooltip.tsx +1 -1
- package/src/structure/ui/index.ts +7 -3
- package/src/structure/ui/structureNotationText.ts +56 -0
- package/src/structure/ui/useEditorStructure.ts +119 -0
- package/styles/chrome.css +414 -14
package/lib/chart/ui/Axes.d.ts
CHANGED
|
@@ -70,6 +70,25 @@ export interface AxesProps {
|
|
|
70
70
|
* @default 44
|
|
71
71
|
*/
|
|
72
72
|
yTickSpacing?: number;
|
|
73
|
+
/**
|
|
74
|
+
* The values to rule the vertical axis at, instead of the ones the room
|
|
75
|
+
* allows.
|
|
76
|
+
*
|
|
77
|
+
* An axis whose ticks are decided by what is being measured rather than by
|
|
78
|
+
* how much space there is: a concentration read over fifteen decades is ruled
|
|
79
|
+
* at the decades, and a tick at 0.0037 between two of them says nothing. The
|
|
80
|
+
* values outside the window are dropped, so one list serves every zoom.
|
|
81
|
+
* @default the ticks worked out from the window and the room
|
|
82
|
+
*/
|
|
83
|
+
yTickValues?: readonly number[];
|
|
84
|
+
/**
|
|
85
|
+
* How a value up the side is written, instead of as a plain number.
|
|
86
|
+
*
|
|
87
|
+
* What goes with `yTickValues`: an axis ruled at the decades writes `10⁻³`,
|
|
88
|
+
* and the exponent is the only part of it a reader is reading.
|
|
89
|
+
* @default the notation the window's step calls for
|
|
90
|
+
*/
|
|
91
|
+
formatYTick?: (value: number) => string;
|
|
73
92
|
}
|
|
74
93
|
/**
|
|
75
94
|
* The frame the spectra are read against: two axis lines, a grid, and titles.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Axes.d.ts","sourceRoot":"","sources":["../../../src/chart/ui/Axes.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAM1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAIxD,MAAM,WAAW,SAAS;IACxB,0CAA0C;IAC1C,IAAI,EAAE,QAAQ,CAAC;IACf,6EAA6E;IAC7E,OAAO,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,wEAAwE;IACxE,OAAO,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC;;;;OAIG;IACH,MAAM,EAAE,UAAU,CAAC;IACnB,mDAAmD;IACnD,MAAM,EAAE,UAAU,CAAC;IACnB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;OAMG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;;;;;OAUG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"Axes.d.ts","sourceRoot":"","sources":["../../../src/chart/ui/Axes.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAM1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAIxD,MAAM,WAAW,SAAS;IACxB,0CAA0C;IAC1C,IAAI,EAAE,QAAQ,CAAC;IACf,6EAA6E;IAC7E,OAAO,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,wEAAwE;IACxE,OAAO,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC;;;;OAIG;IACH,MAAM,EAAE,UAAU,CAAC;IACnB,mDAAmD;IACnD,MAAM,EAAE,UAAU,CAAC;IACnB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;OAMG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;;;;;OAUG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;;;;OASG;IACH,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CACzC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,YAAY,CAyInD"}
|
package/lib/chart/ui/Axes.js
CHANGED
|
@@ -34,11 +34,15 @@ import { CHART_COLORS, CHART_FONT } from "../core/chartTheme.js";
|
|
|
34
34
|
* @returns The axes, as SVG.
|
|
35
35
|
*/
|
|
36
36
|
export function Axes(props) {
|
|
37
|
-
const { plot, xDomain, yDomain, xScale, yScale, absYTicks = false, showXTicks = true, showXTitle = true, xTitle, yTitle, xTickSpacing = X_TICK_SPACING, yTickSpacing = Y_TICK_SPACING, } = props;
|
|
37
|
+
const { plot, xDomain, yDomain, xScale, yScale, absYTicks = false, showXTicks = true, showXTitle = true, xTitle, yTitle, xTickSpacing = X_TICK_SPACING, yTickSpacing = Y_TICK_SPACING, yTickValues, formatYTick, } = props;
|
|
38
38
|
const xTicks = useMemo(() => spectrumAxis(xDomain, tickCount(plot.width, xTickSpacing)), [xDomain, plot.width, xTickSpacing]);
|
|
39
39
|
const yTicks = useMemo(() => spectrumAxis(yDomain, tickCount(plot.height, yTickSpacing)), [yDomain, plot.height, yTickSpacing]);
|
|
40
40
|
const writeXTick = useMemo(() => axisLabeller(xTicks), [xTicks]);
|
|
41
|
-
const
|
|
41
|
+
const labelYTick = useMemo(() => axisLabeller(yTicks), [yTicks]);
|
|
42
|
+
const writeYTick = formatYTick ?? labelYTick;
|
|
43
|
+
// Ruled where the quantity asks rather than where there is room; a value the
|
|
44
|
+
// zoom has left behind is dropped rather than drawn onto the margin.
|
|
45
|
+
const yRules = useMemo(() => (yTickValues ? insideWindow(yTickValues, yDomain) : yTicks.values), [yTickValues, yDomain, yTicks]);
|
|
42
46
|
const middleX = plot.left + plot.width / 2;
|
|
43
47
|
const middleY = plot.top + plot.height / 2;
|
|
44
48
|
// Beside the numbers rather than in a fixed column at the edge of the margin.
|
|
@@ -46,13 +50,29 @@ export function Axes(props) {
|
|
|
46
50
|
// title pinned where the wider of the two would leave it stands twenty pixels
|
|
47
51
|
// clear of the narrower — far enough to read as naming the chart rather than
|
|
48
52
|
// the axis.
|
|
49
|
-
const titleColumn = useMemo(() => valueTitleColumn(
|
|
53
|
+
const titleColumn = useMemo(() => valueTitleColumn(yRules, writeYTick, absYTicks, plot.left), [yRules, writeYTick, absYTicks, plot.left]);
|
|
50
54
|
// The rule a mirrored pair is reflected in only exists while both halves are
|
|
51
55
|
// on screen; on an ordinary chart zero is the baseline and already drawn.
|
|
52
56
|
const zero = chartPixel(yScale, 0);
|
|
53
57
|
const showsZeroRule = yDomain[0] < 0 && yDomain[1] > 0;
|
|
54
|
-
return (_jsxs("g", { pointerEvents: "none", children: [xTicks.values.map((tick) => (_jsx("line", { x1: chartPixel(xScale, tick), y1: plot.top, x2: chartPixel(xScale, tick), y2: plot.bottom, style: gridStyle }, tick))),
|
|
55
|
-
xTicks.values.map((tick) => (_jsx("text", { x: chartPixel(xScale, tick), y: plot.bottom + TICK_LABEL_GAP, textAnchor: "middle", dominantBaseline: "hanging", style: tickStyle, children: writeXTick(tick) }, tick))),
|
|
58
|
+
return (_jsxs("g", { pointerEvents: "none", children: [xTicks.values.map((tick) => (_jsx("line", { x1: chartPixel(xScale, tick), y1: plot.top, x2: chartPixel(xScale, tick), y2: plot.bottom, style: gridStyle }, tick))), yRules.map((tick) => (_jsx("line", { x1: plot.left, y1: chartPixel(yScale, tick), x2: plot.right, y2: chartPixel(yScale, tick), style: gridStyle }, tick))), showsZeroRule ? (_jsx("line", { x1: plot.left, y1: zero, x2: plot.right, y2: zero, style: zeroRuleStyle })) : null, _jsx("path", { d: `M${plot.left} ${plot.top}V${plot.bottom}H${plot.right}`, fill: "none", style: axisStyle }), showXTicks &&
|
|
59
|
+
xTicks.values.map((tick) => (_jsx("text", { x: chartPixel(xScale, tick), y: plot.bottom + TICK_LABEL_GAP, textAnchor: "middle", dominantBaseline: "hanging", style: tickStyle, children: writeXTick(tick) }, tick))), yRules.map((tick) => (_jsx("text", { x: plot.left - TICK_LABEL_GAP, y: chartPixel(yScale, tick), textAnchor: "end", dominantBaseline: "central", style: tickStyle, children: writeYTick(absYTicks ? Math.abs(tick) : tick) }, tick))), showXTitle && (_jsx("text", { x: middleX, y: plot.bottom + TITLE_GAP, textAnchor: "middle", dominantBaseline: "hanging", style: titleStyle, children: xTitle })), _jsx("text", { x: titleColumn, y: middleY, transform: `rotate(-90 ${titleColumn} ${middleY})`, textAnchor: "middle", dominantBaseline: "central", style: titleStyle, children: yTitle })] }));
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* The values of a given list that the window still shows.
|
|
63
|
+
* @param values - Every value the axis would be ruled at.
|
|
64
|
+
* @param domain - The window on screen, `[from, to]`.
|
|
65
|
+
* @returns Those inside it, in the order they were given.
|
|
66
|
+
*/
|
|
67
|
+
function insideWindow(values, domain) {
|
|
68
|
+
const low = Math.min(domain[0], domain[1]);
|
|
69
|
+
const high = Math.max(domain[0], domain[1]);
|
|
70
|
+
const inside = [];
|
|
71
|
+
for (const value of values) {
|
|
72
|
+
if (value >= low && value <= high)
|
|
73
|
+
inside.push(value);
|
|
74
|
+
}
|
|
75
|
+
return inside;
|
|
56
76
|
}
|
|
57
77
|
/**
|
|
58
78
|
* The ticks of one axis of a chart a reader has zoomed for themselves.
|
package/lib/chart/ui/Axes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Axes.js","sourceRoot":"","sources":["../../../src/chart/ui/Axes.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAG3D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"Axes.js","sourceRoot":"","sources":["../../../src/chart/ui/Axes.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavMenuButton.d.ts","sourceRoot":"","sources":["../../../src/chrome/ui/NavMenuButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAEpE,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAErD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAG5C,MAAM,WAAW,kBAAkB;IACjC,uEAAuE;IACvE,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,KAAK,EAAE,SAAS,OAAO,EAAE,CAAC;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB;;;OAGG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAC1C;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,YAAY,
|
|
1
|
+
{"version":3,"file":"NavMenuButton.d.ts","sourceRoot":"","sources":["../../../src/chrome/ui/NavMenuButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAEpE,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAErD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAG5C,MAAM,WAAW,kBAAkB;IACjC,uEAAuE;IACvE,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,KAAK,EAAE,SAAS,OAAO,EAAE,CAAC;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB;;;OAGG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAC1C;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,YAAY,CAkDrE"}
|
|
@@ -11,7 +11,7 @@ import { isModifiedClick } from "./navItem.js";
|
|
|
11
11
|
*/
|
|
12
12
|
export function NavMenuButton(props) {
|
|
13
13
|
const { label, items, activeId, icon, placement = 'bottom-start', compact = false, children, } = props;
|
|
14
|
-
const holdsActive = items
|
|
14
|
+
const holdsActive = holdsId(items, activeId);
|
|
15
15
|
const classes = [
|
|
16
16
|
'nav-link',
|
|
17
17
|
icon === undefined ? null : 'nav-link--icon',
|
|
@@ -19,15 +19,45 @@ export function NavMenuButton(props) {
|
|
|
19
19
|
]
|
|
20
20
|
.filter((part) => part !== null)
|
|
21
21
|
.join(' ');
|
|
22
|
-
return (_jsx(PopoverNext, { placement: placement, content: _jsxs(Menu, { className: "nav-menu", children: [items.map((item) => (_jsx(
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
22
|
+
return (_jsx(PopoverNext, { placement: placement, content: _jsxs(Menu, { className: "nav-menu", children: [items.map((item) => (_jsx(NavMenuEntry, { item: item, activeId: activeId }, item.id))), children] }), children: _jsxs("button", { type: "button", className: classes, "aria-label": label, title: compact ? label : undefined, children: [icon === undefined ? (label) : (_jsxs(_Fragment, { children: [_jsx(Icon, { icon: icon, size: 14 }), compact ? null : _jsx("span", { className: "nav-link__label", children: label })] })), compact ? null : _jsx(Icon, { icon: "caret-down", size: 14 })] }) }));
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* One line of a header menu, holding a submenu of its own when the entry folds
|
|
26
|
+
* pages — which is how a bar entry that is already a menu reads once the whole
|
|
27
|
+
* bar has folded into one.
|
|
28
|
+
* @param props - The entry and the page on show.
|
|
29
|
+
* @param props.item - The entry.
|
|
30
|
+
* @param props.activeId - The page on show.
|
|
31
|
+
* @returns The line.
|
|
32
|
+
*/
|
|
33
|
+
function NavMenuEntry(props) {
|
|
34
|
+
const { item, activeId } = props;
|
|
35
|
+
return (_jsx(MenuItem, { icon: item.icon, text: item.label,
|
|
36
|
+
// A real address, so a crawler reaching the menu can follow it and a
|
|
37
|
+
// middle click opens a tab of its own.
|
|
38
|
+
href: item.href, target: item.external ? '_blank' : undefined, active: item.items === undefined
|
|
39
|
+
? item.id === activeId
|
|
40
|
+
: holdsId(item.items, activeId), onClick: (event) => {
|
|
41
|
+
if (item.onSelect === undefined || isModifiedClick(event))
|
|
42
|
+
return;
|
|
43
|
+
event.preventDefault();
|
|
44
|
+
item.onSelect();
|
|
45
|
+
}, children: item.items?.map((child) => (_jsx(NavMenuEntry, { item: child, activeId: activeId }, child.id))) }));
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Whether a run of entries holds the page on show, looking through the ones
|
|
49
|
+
* that are menus of their own.
|
|
50
|
+
* @param items - The entries.
|
|
51
|
+
* @param activeId - The page on show.
|
|
52
|
+
* @returns Whether one of them is it.
|
|
53
|
+
*/
|
|
54
|
+
function holdsId(items, activeId) {
|
|
55
|
+
for (const item of items) {
|
|
56
|
+
if (item.id === activeId)
|
|
57
|
+
return true;
|
|
58
|
+
if (item.items !== undefined && holdsId(item.items, activeId))
|
|
59
|
+
return true;
|
|
60
|
+
}
|
|
61
|
+
return false;
|
|
32
62
|
}
|
|
33
63
|
//# sourceMappingURL=NavMenuButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavMenuButton.js","sourceRoot":"","sources":["../../../src/chrome/ui/NavMenuButton.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAItE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAoC/C;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,KAAyB;IACrD,MAAM,EACJ,KAAK,EACL,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,SAAS,GAAG,cAAc,EAC1B,OAAO,GAAG,KAAK,EACf,QAAQ,GACT,GAAG,KAAK,CAAC;IAEV,MAAM,WAAW,GAAG,
|
|
1
|
+
{"version":3,"file":"NavMenuButton.js","sourceRoot":"","sources":["../../../src/chrome/ui/NavMenuButton.tsx"],"names":[],"mappings":"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"}
|
|
@@ -34,7 +34,30 @@ export function SiteHeader(props) {
|
|
|
34
34
|
return;
|
|
35
35
|
event.preventDefault();
|
|
36
36
|
onHome();
|
|
37
|
-
}, children: [mark ?? _jsx(SiteMark, { site: site, size: markSize }), _jsx(Wordmark, { site: site })] }), _jsx("nav", { className: "app-header-nav", children: nav.map((item) => (_jsx(Fragment, { children: renderNavItem === undefined ? (_jsx(
|
|
37
|
+
}, children: [mark ?? _jsx(SiteMark, { site: site, size: markSize }), _jsx(Wordmark, { site: site })] }), _jsx("nav", { className: "app-header-nav", children: nav.map((item) => (_jsx(Fragment, { children: renderNavItem === undefined ? (_jsx(NavEntry, { item: item, activeId: activeId })) : (renderNavItem(item, item.id === activeId)) }, item.id))) }), nav.length > 1 ? (_jsx("div", { className: "app-header-nav-menu", children: _jsx(NavMenuButton, { label: pagesLabel ?? t('chrome.pages'), icon: "menu", compact: true, items: nav, activeId: activeId }) })) : null, _jsx("span", { className: "spacer" }), actions === undefined ? null : (_jsx("div", { className: "app-header-actions", children: actions }))] }) }));
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* One page of the bar: a link, or the menu it opens when the entry folds pages
|
|
41
|
+
* of its own. A menu stands where its pages would, among them and not among the
|
|
42
|
+
* utilities, because picking one of them changes what the page shows.
|
|
43
|
+
* @param props - The entry and the page on show.
|
|
44
|
+
* @param props.item - The entry.
|
|
45
|
+
* @param props.activeId - The page on show.
|
|
46
|
+
* @returns The entry.
|
|
47
|
+
*/
|
|
48
|
+
function NavEntry(props) {
|
|
49
|
+
const { item, activeId } = props;
|
|
50
|
+
if (item.items === undefined) {
|
|
51
|
+
return _jsx(NavLink, { item: item, active: item.id === activeId });
|
|
52
|
+
}
|
|
53
|
+
return (_jsx(NavMenuButton, { label: menuLabel(item), icon: typeof item.icon === 'string' ? item.icon : undefined, items: item.items, activeId: activeId, placement: "bottom-start" }));
|
|
54
|
+
}
|
|
55
|
+
// The trigger names itself to a screen reader, so an entry drawn as a glyph
|
|
56
|
+
// alone says what it opens through its title rather than through its id.
|
|
57
|
+
function menuLabel(item) {
|
|
58
|
+
if (typeof item.label === 'string')
|
|
59
|
+
return item.label;
|
|
60
|
+
return item.title ?? item.id;
|
|
38
61
|
}
|
|
39
62
|
/** The two widths the bar's contents run at, as the classes that set them. */
|
|
40
63
|
const INNER_CLASS = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SiteHeader.js","sourceRoot":"","sources":["../../../src/chrome/ui/SiteHeader.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAE1D,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAiC,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA8B,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAe,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAqB,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAkF/C;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,UAAU,CAAC,KAAsB;IAC/C,MAAM,EACJ,MAAM,EACN,IAAI,EAAE,MAAM,EACZ,IAAI,EACJ,GAAG,EACH,QAAQ,EACR,OAAO,EACP,aAAa,EACb,QAAQ,GAAG,KAAK,EAChB,QAAQ,GAAG,GAAG,EACd,MAAM,EACN,QAAQ,GAAG,EAAE,EACb,KAAK,GAAG,MAAM,EACd,UAAU,GACX,GAAG,KAAK,CAAC;IACV,MAAM,CAAC,GAAG,UAAU,EAAE,CAAC;IAEvB,IAAI,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE1B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7E,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IAED,OAAO,CACL,iBAAQ,SAAS,EAAC,qBAAqB,YACrC,eAAK,SAAS,EAAE,WAAW,CAAC,KAAK,CAAC,aAChC,aACE,SAAS,EAAC,OAAO,EACjB,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,IAAI,CAAC,IAAI,EAChB,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;wBACjB,IAAI,MAAM,KAAK,SAAS,IAAI,eAAe,CAAC,KAAK,CAAC;4BAAE,OAAO;wBAC3D,KAAK,CAAC,cAAc,EAAE,CAAC;wBACvB,MAAM,EAAE,CAAC;oBACX,CAAC,aAEA,IAAI,IAAI,KAAC,QAAQ,IAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,GAAI,EACjD,KAAC,QAAQ,IAAC,IAAI,EAAE,IAAI,GAAI,IACtB,EACJ,cAAK,SAAS,EAAC,gBAAgB,YAC5B,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACjB,KAAC,QAAQ,cACN,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,CAC7B,KAAC,
|
|
1
|
+
{"version":3,"file":"SiteHeader.js","sourceRoot":"","sources":["../../../src/chrome/ui/SiteHeader.tsx"],"names":[],"mappings":"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"}
|
|
@@ -48,6 +48,13 @@ export interface NavItem {
|
|
|
48
48
|
* @default undefined
|
|
49
49
|
*/
|
|
50
50
|
after?: ReactNode;
|
|
51
|
+
/**
|
|
52
|
+
* The pages this entry folds, which make it a menu rather than a link: the
|
|
53
|
+
* run of pages that do not each need a place of their own in the bar. The
|
|
54
|
+
* entry takes the brand tint while one of them is the page on show.
|
|
55
|
+
* @default undefined
|
|
56
|
+
*/
|
|
57
|
+
items?: readonly NavItem[];
|
|
51
58
|
/**
|
|
52
59
|
* Whether the page cannot be opened yet — a view that needs data the site
|
|
53
60
|
* has not been given.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navItem.d.ts","sourceRoot":"","sources":["../../../src/chrome/ui/navItem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEjE;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACtB,0EAA0E;IAC1E,EAAE,EAAE,MAAM,CAAC;IACX,4BAA4B;IAC5B,KAAK,EAAE,SAAS,CAAC;IACjB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAC;IAC/B;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAE1D"}
|
|
1
|
+
{"version":3,"file":"navItem.d.ts","sourceRoot":"","sources":["../../../src/chrome/ui/navItem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEjE;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACtB,0EAA0E;IAC1E,EAAE,EAAE,MAAM,CAAC;IACX,4BAA4B;IAC5B,KAAK,EAAE,SAAS,CAAC;IACjB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAC;IAC/B;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IAC3B;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAE1D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navItem.js","sourceRoot":"","sources":["../../../src/chrome/ui/navItem.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"navItem.js","sourceRoot":"","sources":["../../../src/chrome/ui/navItem.ts"],"names":[],"mappings":"AAwEA;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,KAAiB;IAC/C,OAAO,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC;AAC1E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entries.d.ts","sourceRoot":"","sources":["../../../src/citation/ui/entries.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"entries.d.ts","sourceRoot":"","sources":["../../../src/citation/ui/entries.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,OAAO,CAAC;AAKzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAczD,4DAA4D;AAC5D,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,+CAA+C;IAC/C,UAAU,EAAE,SAAS,SAAS,EAAE,CAAC;IACjC,mCAAmC;IACnC,MAAM,EAAE,cAAc,CAAC;IACvB;;;OAGG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,sDAAsD;IACtD,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IACxB,wCAAwC;IACxC,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,YAAY,CAgC7D;AAED,MAAM,WAAW,kBAAkB;IACjC,+CAA+C;IAC/C,UAAU,EAAE,SAAS,SAAS,EAAE,CAAC;IACjC,oDAAoD;IACpD,QAAQ,EAAE,gBAAgB,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,YAAY,CAmBrE"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { MenuItem, Tooltip } from '@blueprintjs/core';
|
|
3
3
|
import { useChromeT } from "../../i18n/ui/useT.js";
|
|
4
|
+
import { useActionTooltip } from "../../shared/ui/useActionTooltip.js";
|
|
4
5
|
import { downloadCitations } from "../core/download.js";
|
|
5
6
|
import { CitationPreview } from "./CitationPreview.js";
|
|
6
7
|
// An entry carrying its preview tooltip is also a popover target, and
|
|
@@ -51,6 +52,10 @@ export function DownloadEntry(props) {
|
|
|
51
52
|
*/
|
|
52
53
|
function PreviewTooltip(props) {
|
|
53
54
|
const { references, format, style, children } = props;
|
|
54
|
-
|
|
55
|
+
// Held rather than left to Blueprint: pressing an entry downloads or copies
|
|
56
|
+
// and closes the menu, and a preview opened by the hover that led to the
|
|
57
|
+
// press would outlive both — see `useActionTooltip`.
|
|
58
|
+
const { isOpen, target } = useActionTooltip(false, PREVIEW_OPEN_DELAY);
|
|
59
|
+
return (_jsx(Tooltip, { placement: "left", popoverClassName: "citation-tooltip", isOpen: isOpen, content: _jsx(CitationPreview, { reference: references, format: format, style: style?.id }), renderTarget: ({ isOpen: drawn, ...targetProps }) => children({ ...targetProps, ...target }) }));
|
|
55
60
|
}
|
|
56
61
|
//# sourceMappingURL=entries.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entries.js","sourceRoot":"","sources":["../../../src/citation/ui/entries.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"entries.js","sourceRoot":"","sources":["../../../src/citation/ui/entries.tsx"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,8 @@ import type { CSSProperties, ReactElement, ReactNode } from 'react';
|
|
|
2
2
|
import type { ClipboardContent } from '../core/writeToClipboard.ts';
|
|
3
3
|
/** The elements a {@link ClickToCopy} can be, so a table cell is its own target. */
|
|
4
4
|
export type ClickToCopyElement = 'span' | 'code' | 'div' | 'td' | 'th';
|
|
5
|
+
/** Where the glyph sits: past the value, or inside its right edge. */
|
|
6
|
+
export type ClickToCopyLayout = 'inline' | 'block';
|
|
5
7
|
/** What {@link ClickToCopy} copies, and how it reads. */
|
|
6
8
|
export interface ClickToCopyProps {
|
|
7
9
|
/**
|
|
@@ -30,6 +32,15 @@ export interface ClickToCopyProps {
|
|
|
30
32
|
* @default 'span'
|
|
31
33
|
*/
|
|
32
34
|
as?: ClickToCopyElement;
|
|
35
|
+
/**
|
|
36
|
+
* Where the glyph goes. A value in a line of text shows it just past itself,
|
|
37
|
+
* so the line keeps its spacing; one laid out as a block keeps room for it
|
|
38
|
+
* inside its right edge, because a glyph past the edge of a full-width block
|
|
39
|
+
* is a glyph past the edge of whatever holds it — which scrolls the page
|
|
40
|
+
* sideways by the width of the glyph.
|
|
41
|
+
* @default read from `as`: a `span` or a `code` is inline, the rest a block
|
|
42
|
+
*/
|
|
43
|
+
layout?: ClickToCopyLayout;
|
|
33
44
|
/**
|
|
34
45
|
* Whether the value is a tab stop and a button of its own, with the glyph a
|
|
35
46
|
* keyboard is shown instead of the cursor. Off when a copy button beside it
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClickToCopy.d.ts","sourceRoot":"","sources":["../../../src/clipboard/ui/ClickToCopy.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ClickToCopy.d.ts","sourceRoot":"","sources":["../../../src/clipboard/ui/ClickToCopy.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,aAAa,EAGb,YAAY,EACZ,SAAS,EACV,MAAM,OAAO,CAAC;AAOf,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAKpE,oFAAoF;AACpF,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;AAEvE,sEAAsE;AACtE,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEnD,yDAAyD;AACzD,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,KAAK,EAAE,gBAAgB,GAAG,CAAC,MAAM,gBAAgB,CAAC,CAAC;IACnD,iEAAiE;IACjE,QAAQ,EAAE,SAAS,CAAC;IACpB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;OAOG;IACH,EAAE,CAAC,EAAE,kBAAkB,CAAC;IACxB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAYD;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,YAAY,CAmEjE"}
|
|
@@ -24,9 +24,10 @@ const NESTED_CONTROL = 'a[href], button, input, select, textarea, summary, label
|
|
|
24
24
|
* @returns The copyable value.
|
|
25
25
|
*/
|
|
26
26
|
export function ClickToCopy(props) {
|
|
27
|
-
const { value, children, label, title, as: Element = 'span', focusable = true, disabled = false, className, style, testId, } = props;
|
|
27
|
+
const { value, children, label, title, as: Element = 'span', layout, focusable = true, disabled = false, className, style, testId, } = props;
|
|
28
28
|
const t = useChromeT();
|
|
29
29
|
const { copied, failed, copy } = useCopyToClipboard();
|
|
30
|
+
const placing = layout ?? (INLINE.has(Element) ? 'inline' : 'block');
|
|
30
31
|
if (disabled) {
|
|
31
32
|
return (_jsx(Element, { className: className, style: style, "data-testid": testId, children: children }));
|
|
32
33
|
}
|
|
@@ -37,15 +38,32 @@ export function ClickToCopy(props) {
|
|
|
37
38
|
void copy(typeof value === 'function' ? () => writeToClipboard(value()) : value);
|
|
38
39
|
}
|
|
39
40
|
const outcome = copied ? 'copied' : failed ? 'failed' : undefined;
|
|
40
|
-
return (_jsxs(Element, { className: joinClassNames('click-to-copy',
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
41
|
+
return (_jsxs(Element, { className: joinClassNames('click-to-copy', `click-to-copy--${placing}`, className), style: style, "data-testid": testId, role: focusable && !CELLS.has(Element) ? 'button' : undefined, tabIndex: focusable ? 0 : undefined, title: title ?? copyTitle(value, label, t), "data-copy": outcome, onClick: activate, onKeyDown: onActivateKey(activate), children: [children, focusable ? (_jsx(Icon, { className: "click-to-copy__icon", icon: outcomeIcon(outcome), size: 16 })) : null, _jsx("span", { className: "click-to-copy__status", role: "status", children: outcomeStatus(outcome, t) })] }));
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* The glyph the value carries: the clipboard at rest, then the answer.
|
|
45
|
+
* @param outcome - How the last copy went.
|
|
46
|
+
* @returns The icon.
|
|
47
|
+
*/
|
|
48
|
+
function outcomeIcon(outcome) {
|
|
49
|
+
if (outcome === 'copied')
|
|
50
|
+
return 'tick';
|
|
51
|
+
if (outcome === 'failed')
|
|
52
|
+
return 'cross';
|
|
53
|
+
return 'clipboard';
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* What a screen reader is told once a copy has been attempted.
|
|
57
|
+
* @param outcome - How it went.
|
|
58
|
+
* @param t - The chrome's formatter.
|
|
59
|
+
* @returns The line, or nothing before anything was copied.
|
|
60
|
+
*/
|
|
61
|
+
function outcomeStatus(outcome, t) {
|
|
62
|
+
if (outcome === 'copied')
|
|
63
|
+
return t('clipboard.copied');
|
|
64
|
+
if (outcome === 'failed')
|
|
65
|
+
return t('clipboard.failed');
|
|
66
|
+
return null;
|
|
49
67
|
}
|
|
50
68
|
function isOnNestedControl(event) {
|
|
51
69
|
const { target, currentTarget } = event;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClickToCopy.js","sourceRoot":"","sources":["../../../src/clipboard/ui/ClickToCopy.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"ClickToCopy.js","sourceRoot":"","sources":["../../../src/clipboard/ui/ClickToCopy.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AASzC,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAGhE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAEnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AA4E7D,oFAAoF;AACpF,MAAM,eAAe,GAAG,GAAG,CAAC;AAE5B,MAAM,MAAM,GAAG,IAAI,GAAG,CAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAC7D,MAAM,KAAK,GAAG,IAAI,GAAG,CAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAExD,8EAA8E;AAC9E,MAAM,cAAc,GAClB,+JAA+J,CAAC;AAElK;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,WAAW,CAAC,KAAuB;IACjD,MAAM,EACJ,KAAK,EACL,QAAQ,EACR,KAAK,EACL,KAAK,EACL,EAAE,EAAE,OAAO,GAAG,MAAM,EACpB,MAAM,EACN,SAAS,GAAG,IAAI,EAChB,QAAQ,GAAG,KAAK,EAChB,SAAS,EACT,KAAK,EACL,MAAM,GACP,GAAG,KAAK,CAAC;IACV,MAAM,CAAC,GAAG,UAAU,EAAE,CAAC;IACvB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,kBAAkB,EAAE,CAAC;IACtD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAErE,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CACL,KAAC,OAAO,IAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,iBAAe,MAAM,YAC7D,QAAQ,GACD,CACX,CAAC;IACJ,CAAC;IAED,SAAS,QAAQ,CACf,KAA2D;QAE3D,IAAI,iBAAiB,CAAC,KAAK,CAAC;YAAE,OAAO;QACrC,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,KAAK,IAAI,CACP,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CACtE,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAElE,OAAO,CACL,MAAC,OAAO,IACN,SAAS,EAAE,cAAc,CACvB,eAAe,EACf,kBAAkB,OAAO,EAAE,EAC3B,SAAS,CACV,EACD,KAAK,EAAE,KAAK,iBACC,MAAM,EACnB,IAAI,EAAE,SAAS,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAC7D,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EACnC,KAAK,EAAE,KAAK,IAAI,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,eAC/B,OAAO,EAClB,OAAO,EAAE,QAAQ,EACjB,SAAS,EAAE,aAAa,CAA6B,QAAQ,CAAC,aAE7D,QAAQ,EACR,SAAS,CAAC,CAAC,CAAC,CACX,KAAC,IAAI,IACH,SAAS,EAAC,qBAAqB,EAC/B,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,EAC1B,IAAI,EAAE,EAAE,GACR,CACH,CAAC,CAAC,CAAC,IAAI,EACR,eAAM,SAAS,EAAC,uBAAuB,EAAC,IAAI,EAAC,QAAQ,YAClD,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,GACrB,IACC,CACX,CAAC;AACJ,CAAC;AAKD;;;;GAIG;AACH,SAAS,WAAW,CAAC,OAAoB;IACvC,IAAI,OAAO,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC;IACxC,IAAI,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IACzC,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CACpB,OAAoB,EACpB,CAAuB;IAEvB,IAAI,OAAO,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAAC;IACvD,IAAI,OAAO,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAAC;IACvD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,iBAAiB,CACxB,KAA2D;IAE3D,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;IACxC,IAAI,CAAC,CAAC,MAAM,YAAY,OAAO,CAAC,IAAI,MAAM,KAAK,aAAa;QAAE,OAAO,KAAK,CAAC;IAC3E,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC/C,OAAO,CACL,OAAO,KAAK,IAAI;QAChB,OAAO,KAAK,aAAa;QACzB,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAChC,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAChB,KAAgC,EAChC,KAAyB,EACzB,CAAuB;IAEvB,MAAM,IAAI,GACR,KAAK,KAAK,SAAS;QACjB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC;QACrB,CAAC,CAAC,CAAC,CAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9C,IAAI,OAAO,KAAK,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC;IAC7C,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;IAC5D,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,CAAC,MAAM,GAAG,eAAe;QAAE,OAAO,IAAI,CAAC;IAC9D,OAAO,KAAK,KAAK,SAAS;QACxB,CAAC,CAAC,CAAC,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC3C,CAAC,CAAC,GAAG,IAAI,KAAK,IAAI,GAAG,CAAC;AAC1B,CAAC"}
|
|
@@ -51,7 +51,8 @@ export interface CopyButtonProps {
|
|
|
51
51
|
*/
|
|
52
52
|
resetAfter?: number;
|
|
53
53
|
/**
|
|
54
|
-
* What the pointer and a screen reader are told.
|
|
54
|
+
* What the pointer and a screen reader are told. An empty string drops the
|
|
55
|
+
* hover title, for a button that already sits in a tooltip of its own.
|
|
55
56
|
* @default the chrome's own line, in the language of the page
|
|
56
57
|
*/
|
|
57
58
|
title?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CopyButton.d.ts","sourceRoot":"","sources":["../../../src/clipboard/ui/CopyButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAU,MAAM,mBAAmB,CAAC;AAE1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"CopyButton.d.ts","sourceRoot":"","sources":["../../../src/clipboard/ui/CopyButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAU,MAAM,mBAAmB,CAAC;AAE1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAU1C,wDAAwD;AACxD,MAAM,WAAW,eAAe;IAC9B;;;;;OAKG;IACH,OAAO,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IACjC;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,YAAY,CA0C/D"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { Button } from '@blueprintjs/core';
|
|
3
3
|
import { useChromeT } from "../../i18n/ui/useT.js";
|
|
4
|
+
import { joinClassNames } from "../../shared/ui/joinClassNames.js";
|
|
4
5
|
import { DEFAULT_COPY_RESET_AFTER, useCopyToClipboard, } from "./useCopyToClipboard.js";
|
|
5
6
|
/**
|
|
6
7
|
* A button that puts a piece of text on the clipboard and says so — with a
|
|
@@ -21,7 +22,7 @@ export function CopyButton(props) {
|
|
|
21
22
|
copiedLabel: copiedLabel ?? t('clipboard.copied'),
|
|
22
23
|
failedLabel: failedLabel ?? t('clipboard.failed'),
|
|
23
24
|
});
|
|
24
|
-
return (_jsx(Button, { className: className, variant: minimal ? 'minimal' : 'solid', size: small ? 'small' : 'medium', icon: look.icon, intent: look.intent, text: look.text, disabled: disabled, title: hoverTitle, "aria-label": label ?? hoverTitle, onClick: () => {
|
|
25
|
+
return (_jsx(Button, { className: joinClassNames('no-print', className), variant: minimal ? 'minimal' : 'solid', size: small ? 'small' : 'medium', icon: look.icon, intent: look.intent, text: look.text, disabled: disabled, title: hoverTitle, "aria-label": label ?? hoverTitle, onClick: () => {
|
|
25
26
|
void copy(typeof content === 'function' ? content() : content);
|
|
26
27
|
} }));
|
|
27
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CopyButton.js","sourceRoot":"","sources":["../../../src/clipboard/ui/CopyButton.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"CopyButton.js","sourceRoot":"","sources":["../../../src/clipboard/ui/CopyButton.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAEnE,OAAO,EACL,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AAiEjC;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,KAAsB;IAC/C,MAAM,EACJ,OAAO,EACP,KAAK,EACL,WAAW,EACX,WAAW,EACX,OAAO,GAAG,KAAK,EACf,KAAK,GAAG,KAAK,EACb,IAAI,GAAG,WAAW,EAClB,QAAQ,GAAG,KAAK,EAChB,UAAU,GAAG,wBAAwB,EACrC,KAAK,EACL,SAAS,GACV,GAAG,KAAK,CAAC;IACV,MAAM,CAAC,GAAG,UAAU,EAAE,CAAC;IACvB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAChE,MAAM,UAAU,GAAG,KAAK,IAAI,CAAC,CAAC,2BAA2B,CAAC,CAAC;IAC3D,MAAM,IAAI,GAAG,UAAU,CAAC;QACtB,MAAM;QACN,MAAM;QACN,IAAI;QACJ,KAAK;QACL,WAAW,EAAE,WAAW,IAAI,CAAC,CAAC,kBAAkB,CAAC;QACjD,WAAW,EAAE,WAAW,IAAI,CAAC,CAAC,kBAAkB,CAAC;KAClD,CAAC,CAAC;IAEH,OAAO,CACL,KAAC,MAAM,IACL,SAAS,EAAE,cAAc,CAAC,UAAU,EAAE,SAAS,CAAC,EAChD,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EACtC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAChC,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,UAAU,gBACL,KAAK,IAAI,UAAU,EAC/B,OAAO,EAAE,GAAG,EAAE;YACZ,KAAK,IAAI,CAAC,OAAO,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACjE,CAAC,GACD,CACH,CAAC;AACJ,CAAC;AAWD,SAAS,UAAU,CAAC,KAAsB;IAKxC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IACxE,MAAM,QAAQ,GAAG,KAAK,KAAK,SAAS,CAAC;IACrC,IAAI,MAAM,EAAE,CAAC;QACX,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,SAAS;YACjB,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;SACzC,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,EAAE,CAAC;QACX,OAAO;YACL,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;SACzC,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC/C,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ReactElement, ReactNode } from 'react';
|
|
2
|
+
import type { HelpText } from '../../help/ui/HelpBody.tsx';
|
|
2
3
|
/** What {@link CopyableValue} names, shows and copies. */
|
|
3
4
|
export interface CopyableValueProps {
|
|
4
5
|
/** What the value is, written above it, e.g. `InChIKey`. */
|
|
@@ -6,10 +7,13 @@ export interface CopyableValueProps {
|
|
|
6
7
|
/** The value itself, which is what a click on it copies. */
|
|
7
8
|
value: string;
|
|
8
9
|
/**
|
|
9
|
-
*
|
|
10
|
-
*
|
|
10
|
+
* What the value is, read by hovering the label — which is underlined with
|
|
11
|
+
* dots to say so. It opens as the family's help card rather than as the
|
|
12
|
+
* browser's own tooltip, which takes a second to appear and is drawn by the
|
|
13
|
+
* operating system rather than by us.
|
|
14
|
+
* @default undefined — the label explains nothing beyond itself
|
|
11
15
|
*/
|
|
12
|
-
hint?:
|
|
16
|
+
hint?: HelpText;
|
|
13
17
|
/**
|
|
14
18
|
* Whether the value keeps its line breaks and scrolls past `maxHeight`, for
|
|
15
19
|
* a molfile or any other multi-line notation.
|
|
@@ -17,16 +21,32 @@ export interface CopyableValueProps {
|
|
|
17
21
|
*/
|
|
18
22
|
block?: boolean;
|
|
19
23
|
/**
|
|
20
|
-
* Height past which a block value scrolls on its own
|
|
24
|
+
* Height past which a block value scrolls on its own, or is cut off when it
|
|
25
|
+
* is clipped.
|
|
21
26
|
* @default 160
|
|
22
27
|
*/
|
|
23
28
|
maxHeight?: number | string;
|
|
29
|
+
/**
|
|
30
|
+
* Whether a block value is cut off at `maxHeight` and faded, rather than
|
|
31
|
+
* given scrollbars. A notation is copied rather than read, and a molfile is
|
|
32
|
+
* both long and wide, so a scrollbar on each axis of each of two of them is
|
|
33
|
+
* four bars of chrome buying nothing.
|
|
34
|
+
* @default false
|
|
35
|
+
*/
|
|
36
|
+
clip?: boolean;
|
|
24
37
|
/**
|
|
25
38
|
* What the pointer and a screen reader are told, replacing the title built
|
|
26
39
|
* from the label and the value.
|
|
27
40
|
* @default undefined — `Copy the ${label} (${value})`
|
|
28
41
|
*/
|
|
29
42
|
copyTitle?: string;
|
|
43
|
+
/**
|
|
44
|
+
* A control on the label's own line, pushed to the right — a save button for
|
|
45
|
+
* a notation that is also a file, a menu of the forms it comes in. It sits
|
|
46
|
+
* outside the value, so pressing it never copies.
|
|
47
|
+
* @default undefined
|
|
48
|
+
*/
|
|
49
|
+
action?: ReactNode;
|
|
30
50
|
/**
|
|
31
51
|
* What goes under the value: the links an identifier leads to, a note on it.
|
|
32
52
|
* @default undefined
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CopyableValue.d.ts","sourceRoot":"","sources":["../../../src/clipboard/ui/CopyableValue.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"CopyableValue.d.ts","sourceRoot":"","sources":["../../../src/clipboard/ui/CopyableValue.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAY3D,0DAA0D;AAC1D,MAAM,WAAW,kBAAkB;IACjC,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,YAAY,CAqErE"}
|