react-cheminfo 0.50.0 → 0.51.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (258) hide show
  1. package/bin/check-seo.mjs +0 -0
  2. package/lib/clipboard/core/index.d.ts +0 -1
  3. package/lib/clipboard/core/index.d.ts.map +1 -1
  4. package/lib/clipboard/core/index.js +0 -1
  5. package/lib/clipboard/core/index.js.map +1 -1
  6. package/lib/clipboard/ui/CopyButton.d.ts +6 -0
  7. package/lib/clipboard/ui/CopyButton.d.ts.map +1 -1
  8. package/lib/clipboard/ui/CopyButton.js +5 -2
  9. package/lib/clipboard/ui/CopyButton.js.map +1 -1
  10. package/lib/color/core/index.d.ts +3 -0
  11. package/lib/color/core/index.d.ts.map +1 -1
  12. package/lib/color/core/index.js +2 -0
  13. package/lib/color/core/index.js.map +1 -1
  14. package/lib/color/core/interpolate.d.ts +4 -2
  15. package/lib/color/core/interpolate.d.ts.map +1 -1
  16. package/lib/color/core/interpolate.js +34 -12
  17. package/lib/color/core/interpolate.js.map +1 -1
  18. package/lib/color/core/stops.d.ts +43 -0
  19. package/lib/color/core/stops.d.ts.map +1 -0
  20. package/lib/color/core/stops.js +66 -0
  21. package/lib/color/core/stops.js.map +1 -0
  22. package/lib/color/core/tone.d.ts +25 -0
  23. package/lib/color/core/tone.d.ts.map +1 -0
  24. package/lib/color/core/tone.js +67 -0
  25. package/lib/color/core/tone.js.map +1 -0
  26. package/lib/color/core/uniform.d.ts +36 -0
  27. package/lib/color/core/uniform.d.ts.map +1 -0
  28. package/lib/color/core/uniform.js +61 -0
  29. package/lib/color/core/uniform.js.map +1 -0
  30. package/lib/color/ui/ColorScaleEditor.d.ts +5 -6
  31. package/lib/color/ui/ColorScaleEditor.d.ts.map +1 -1
  32. package/lib/color/ui/ColorScaleEditor.js +74 -84
  33. package/lib/color/ui/ColorScaleEditor.js.map +1 -1
  34. package/lib/color/ui/ColorScaleSelect.d.ts +16 -0
  35. package/lib/color/ui/ColorScaleSelect.d.ts.map +1 -1
  36. package/lib/color/ui/ColorScaleSelect.js +69 -17
  37. package/lib/color/ui/ColorScaleSelect.js.map +1 -1
  38. package/lib/color/ui/ColorScaleTone.d.ts +17 -0
  39. package/lib/color/ui/ColorScaleTone.d.ts.map +1 -0
  40. package/lib/color/ui/ColorScaleTone.js +55 -0
  41. package/lib/color/ui/ColorScaleTone.js.map +1 -0
  42. package/lib/color/ui/ColorScaleTrack.d.ts +29 -0
  43. package/lib/color/ui/ColorScaleTrack.d.ts.map +1 -0
  44. package/lib/color/ui/ColorScaleTrack.js +143 -0
  45. package/lib/color/ui/ColorScaleTrack.js.map +1 -0
  46. package/lib/download/core/copyFigure.d.ts +14 -0
  47. package/lib/download/core/copyFigure.d.ts.map +1 -0
  48. package/lib/download/core/copyFigure.js +18 -0
  49. package/lib/download/core/copyFigure.js.map +1 -0
  50. package/lib/download/core/figureHtml.js +1 -0
  51. package/lib/download/core/figureHtml.js.map +1 -1
  52. package/lib/download/core/figureHtmlMarkup.d.ts +10 -0
  53. package/lib/download/core/figureHtmlMarkup.d.ts.map +1 -1
  54. package/lib/download/core/figureHtmlMarkup.js +7 -1
  55. package/lib/download/core/figureHtmlMarkup.js.map +1 -1
  56. package/lib/download/core/index.d.ts +2 -0
  57. package/lib/download/core/index.d.ts.map +1 -1
  58. package/lib/download/core/index.js +1 -0
  59. package/lib/download/core/index.js.map +1 -1
  60. package/lib/download/ui/FigureDownloadPanel.d.ts +2 -3
  61. package/lib/download/ui/FigureDownloadPanel.d.ts.map +1 -1
  62. package/lib/download/ui/FigureDownloadPanel.js +1 -1
  63. package/lib/download/ui/FigureDownloadPanel.js.map +1 -1
  64. package/lib/download/ui/figureDownloadHint.d.ts +1 -1
  65. package/lib/download/ui/figureDownloadHint.d.ts.map +1 -1
  66. package/lib/download/ui/figureDownloadHint.js.map +1 -1
  67. package/lib/download/ui/index.d.ts +0 -1
  68. package/lib/download/ui/index.d.ts.map +1 -1
  69. package/lib/download/ui/useFigureActions.d.ts +2 -11
  70. package/lib/download/ui/useFigureActions.d.ts.map +1 -1
  71. package/lib/download/ui/useFigureActions.js +4 -23
  72. package/lib/download/ui/useFigureActions.js.map +1 -1
  73. package/lib/download/ui/useFigureTask.d.ts +21 -0
  74. package/lib/download/ui/useFigureTask.d.ts.map +1 -0
  75. package/lib/download/ui/useFigureTask.js +27 -0
  76. package/lib/download/ui/useFigureTask.js.map +1 -0
  77. package/lib/i18n/core/chromeCatalog.d.ts +1 -1
  78. package/lib/i18n/core/chromeCatalog.d.ts.map +1 -1
  79. package/lib/locales/de.json +28 -2
  80. package/lib/locales/en.json +28 -2
  81. package/lib/locales/es.json +28 -2
  82. package/lib/locales/fr.json +28 -2
  83. package/lib/locales/it.json +28 -2
  84. package/lib/molecule3d/core/index.d.ts +1 -1
  85. package/lib/molecule3d/core/index.d.ts.map +1 -1
  86. package/lib/molecule3d/core/index.js +1 -1
  87. package/lib/molecule3d/core/index.js.map +1 -1
  88. package/lib/molecule3d/core/settings.d.ts +15 -0
  89. package/lib/molecule3d/core/settings.d.ts.map +1 -1
  90. package/lib/molecule3d/core/settings.js +25 -0
  91. package/lib/molecule3d/core/settings.js.map +1 -1
  92. package/lib/molecule3d/ui/Molecule3DExport.d.ts +3 -0
  93. package/lib/molecule3d/ui/Molecule3DExport.d.ts.map +1 -1
  94. package/lib/molecule3d/ui/Molecule3DExport.js +10 -16
  95. package/lib/molecule3d/ui/Molecule3DExport.js.map +1 -1
  96. package/lib/molecule3d/ui/Molecule3DOptions.d.ts +3 -1
  97. package/lib/molecule3d/ui/Molecule3DOptions.d.ts.map +1 -1
  98. package/lib/molecule3d/ui/Molecule3DOptions.js +22 -6
  99. package/lib/molecule3d/ui/Molecule3DOptions.js.map +1 -1
  100. package/lib/molecule3d/ui/MoleculeCanvas3D.d.ts.map +1 -1
  101. package/lib/molecule3d/ui/MoleculeCanvas3D.js +4 -3
  102. package/lib/molecule3d/ui/MoleculeCanvas3D.js.map +1 -1
  103. package/lib/molecule3d/ui/exportMoleculeImage.d.ts +9 -0
  104. package/lib/molecule3d/ui/exportMoleculeImage.d.ts.map +1 -1
  105. package/lib/molecule3d/ui/exportMoleculeImage.js +15 -0
  106. package/lib/molecule3d/ui/exportMoleculeImage.js.map +1 -1
  107. package/lib/molecule3d/ui/moleculeViewer3DProps.d.ts +2 -1
  108. package/lib/molecule3d/ui/moleculeViewer3DProps.d.ts.map +1 -1
  109. package/lib/molecule3d/ui/useImageExport.d.ts +7 -1
  110. package/lib/molecule3d/ui/useImageExport.d.ts.map +1 -1
  111. package/lib/molecule3d/ui/useImageExport.js +12 -3
  112. package/lib/molecule3d/ui/useImageExport.js.map +1 -1
  113. package/lib/overlay/ui/FigureBar.d.ts +41 -0
  114. package/lib/overlay/ui/FigureBar.d.ts.map +1 -0
  115. package/lib/overlay/ui/FigureBar.js +43 -0
  116. package/lib/overlay/ui/FigureBar.js.map +1 -0
  117. package/lib/overlay/ui/OverlayBar.d.ts +13 -4
  118. package/lib/overlay/ui/OverlayBar.d.ts.map +1 -1
  119. package/lib/overlay/ui/OverlayBar.js +2 -2
  120. package/lib/overlay/ui/OverlayBar.js.map +1 -1
  121. package/lib/overlay/ui/OverlayBarStrip.d.ts +2 -1
  122. package/lib/overlay/ui/OverlayBarStrip.d.ts.map +1 -1
  123. package/lib/overlay/ui/OverlayBarStrip.js +9 -5
  124. package/lib/overlay/ui/OverlayBarStrip.js.map +1 -1
  125. package/lib/overlay/ui/OverlayIconButton.d.ts +8 -2
  126. package/lib/overlay/ui/OverlayIconButton.d.ts.map +1 -1
  127. package/lib/overlay/ui/OverlayIconButton.js +2 -1
  128. package/lib/overlay/ui/OverlayIconButton.js.map +1 -1
  129. package/lib/overlay/ui/index.d.ts +4 -0
  130. package/lib/overlay/ui/index.d.ts.map +1 -1
  131. package/lib/overlay/ui/index.js +2 -0
  132. package/lib/overlay/ui/index.js.map +1 -1
  133. package/lib/overlay/ui/overlayBarShape.d.ts +18 -0
  134. package/lib/overlay/ui/overlayBarShape.d.ts.map +1 -1
  135. package/lib/overlay/ui/overlayStyles.d.ts +30 -0
  136. package/lib/overlay/ui/overlayStyles.d.ts.map +1 -1
  137. package/lib/overlay/ui/overlayStyles.js +52 -0
  138. package/lib/overlay/ui/overlayStyles.js.map +1 -1
  139. package/lib/overlay/ui/useFigureBarAwake.d.ts +12 -0
  140. package/lib/overlay/ui/useFigureBarAwake.d.ts.map +1 -0
  141. package/lib/overlay/ui/useFigureBarAwake.js +51 -0
  142. package/lib/overlay/ui/useFigureBarAwake.js.map +1 -0
  143. package/lib/periodic/core/elements.d.ts +6 -3
  144. package/lib/periodic/core/elements.d.ts.map +1 -1
  145. package/lib/periodic/core/elements.js +9 -3
  146. package/lib/periodic/core/elements.js.map +1 -1
  147. package/lib/periodic/core/index.d.ts +2 -2
  148. package/lib/periodic/core/index.d.ts.map +1 -1
  149. package/lib/periodic/core/index.js +1 -1
  150. package/lib/periodic/core/index.js.map +1 -1
  151. package/lib/periodic/core/layout.d.ts +33 -3
  152. package/lib/periodic/core/layout.d.ts.map +1 -1
  153. package/lib/periodic/core/layout.js +14 -0
  154. package/lib/periodic/core/layout.js.map +1 -1
  155. package/lib/periodic/ui/BlockStrip.d.ts +20 -0
  156. package/lib/periodic/ui/BlockStrip.d.ts.map +1 -0
  157. package/lib/periodic/ui/BlockStrip.js +48 -0
  158. package/lib/periodic/ui/BlockStrip.js.map +1 -0
  159. package/lib/periodic/ui/ElementCell.d.ts.map +1 -1
  160. package/lib/periodic/ui/ElementCell.js +9 -8
  161. package/lib/periodic/ui/ElementCell.js.map +1 -1
  162. package/lib/periodic/ui/PeriodicTable.d.ts.map +1 -1
  163. package/lib/periodic/ui/PeriodicTable.js +3 -1
  164. package/lib/periodic/ui/PeriodicTable.js.map +1 -1
  165. package/lib/periodic/ui/PeriodicTableHelp.d.ts +33 -0
  166. package/lib/periodic/ui/PeriodicTableHelp.d.ts.map +1 -0
  167. package/lib/periodic/ui/PeriodicTableHelp.js +107 -0
  168. package/lib/periodic/ui/PeriodicTableHelp.js.map +1 -0
  169. package/lib/periodic/ui/cellStyles.d.ts +3 -2
  170. package/lib/periodic/ui/cellStyles.d.ts.map +1 -1
  171. package/lib/periodic/ui/cellStyles.js +3 -2
  172. package/lib/periodic/ui/cellStyles.js.map +1 -1
  173. package/lib/periodic/ui/index.d.ts +2 -0
  174. package/lib/periodic/ui/index.d.ts.map +1 -1
  175. package/lib/periodic/ui/index.js +1 -0
  176. package/lib/periodic/ui/index.js.map +1 -1
  177. package/lib/periodic/ui/periodicTableProps.d.ts +5 -4
  178. package/lib/periodic/ui/periodicTableProps.d.ts.map +1 -1
  179. package/lib/periodic/ui/tableLayout.d.ts +3 -1
  180. package/lib/periodic/ui/tableLayout.d.ts.map +1 -1
  181. package/lib/periodic/ui/tableLayout.js +8 -3
  182. package/lib/periodic/ui/tableLayout.js.map +1 -1
  183. package/lib/share/ui/ShareDialogContent.d.ts +3 -2
  184. package/lib/share/ui/ShareDialogContent.d.ts.map +1 -1
  185. package/lib/share/ui/ShareDialogContent.js +5 -6
  186. package/lib/share/ui/ShareDialogContent.js.map +1 -1
  187. package/lib/share/ui/ShareLinkBar.d.ts +8 -2
  188. package/lib/share/ui/ShareLinkBar.d.ts.map +1 -1
  189. package/lib/share/ui/ShareLinkBar.js +6 -5
  190. package/lib/share/ui/ShareLinkBar.js.map +1 -1
  191. package/lib/share/ui/SharePreview.d.ts.map +1 -1
  192. package/lib/share/ui/SharePreview.js +2 -2
  193. package/lib/share/ui/SharePreview.js.map +1 -1
  194. package/lib/structure/ui/StructurePicturePane.js +3 -3
  195. package/lib/structure/ui/StructurePicturePane.js.map +1 -1
  196. package/package.json +1 -1
  197. package/src/clipboard/core/index.ts +0 -1
  198. package/src/clipboard/ui/CopyButton.tsx +12 -1
  199. package/src/color/core/index.ts +9 -0
  200. package/src/color/core/interpolate.ts +51 -22
  201. package/src/color/core/stops.ts +98 -0
  202. package/src/color/core/tone.ts +79 -0
  203. package/src/color/core/uniform.ts +67 -0
  204. package/src/color/ui/ColorScaleEditor.tsx +115 -141
  205. package/src/color/ui/ColorScaleSelect.tsx +160 -36
  206. package/src/color/ui/ColorScaleTone.tsx +103 -0
  207. package/src/color/ui/ColorScaleTrack.tsx +239 -0
  208. package/src/download/core/copyFigure.ts +20 -0
  209. package/src/download/core/figureHtml.ts +1 -0
  210. package/src/download/core/figureHtmlMarkup.ts +14 -1
  211. package/src/download/core/index.ts +2 -0
  212. package/src/download/ui/FigureDownloadPanel.tsx +8 -11
  213. package/src/download/ui/figureDownloadHint.ts +1 -2
  214. package/src/download/ui/index.ts +0 -1
  215. package/src/download/ui/useFigureActions.ts +6 -42
  216. package/src/download/ui/useFigureTask.ts +46 -0
  217. package/src/locales/de.json +28 -2
  218. package/src/locales/en.json +28 -2
  219. package/src/locales/es.json +28 -2
  220. package/src/locales/fr.json +28 -2
  221. package/src/locales/it.json +28 -2
  222. package/src/molecule3d/core/index.ts +2 -0
  223. package/src/molecule3d/core/settings.ts +35 -0
  224. package/src/molecule3d/ui/Molecule3DExport.tsx +18 -17
  225. package/src/molecule3d/ui/Molecule3DOptions.tsx +51 -3
  226. package/src/molecule3d/ui/MoleculeCanvas3D.tsx +11 -3
  227. package/src/molecule3d/ui/exportMoleculeImage.ts +20 -0
  228. package/src/molecule3d/ui/moleculeViewer3DProps.ts +2 -1
  229. package/src/molecule3d/ui/useImageExport.ts +25 -3
  230. package/src/overlay/ui/FigureBar.tsx +96 -0
  231. package/src/overlay/ui/OverlayBar.tsx +15 -5
  232. package/src/overlay/ui/OverlayBarStrip.tsx +34 -22
  233. package/src/overlay/ui/OverlayIconButton.tsx +10 -2
  234. package/src/overlay/ui/index.ts +4 -0
  235. package/src/overlay/ui/overlayBarShape.ts +19 -0
  236. package/src/overlay/ui/overlayStyles.ts +61 -0
  237. package/src/overlay/ui/useFigureBarAwake.ts +56 -0
  238. package/src/periodic/core/elements.ts +8 -3
  239. package/src/periodic/core/index.ts +8 -1
  240. package/src/periodic/core/layout.ts +45 -3
  241. package/src/periodic/ui/BlockStrip.tsx +81 -0
  242. package/src/periodic/ui/ElementCell.tsx +9 -8
  243. package/src/periodic/ui/PeriodicTable.tsx +4 -1
  244. package/src/periodic/ui/PeriodicTableHelp.tsx +205 -0
  245. package/src/periodic/ui/cellStyles.ts +3 -2
  246. package/src/periodic/ui/index.ts +5 -0
  247. package/src/periodic/ui/periodicTableProps.ts +5 -4
  248. package/src/periodic/ui/tableLayout.ts +9 -3
  249. package/src/share/ui/ShareDialogContent.tsx +9 -13
  250. package/src/share/ui/ShareLinkBar.tsx +16 -4
  251. package/src/share/ui/SharePreview.tsx +6 -2
  252. package/src/structure/ui/StructurePicturePane.tsx +3 -3
  253. package/styles/chrome.css +43 -32
  254. package/lib/clipboard/core/copyPng.d.ts +0 -13
  255. package/lib/clipboard/core/copyPng.d.ts.map +0 -1
  256. package/lib/clipboard/core/copyPng.js +0 -19
  257. package/lib/clipboard/core/copyPng.js.map +0 -1
  258. package/src/clipboard/core/copyPng.ts +0 -20
@@ -0,0 +1,20 @@
1
+ /**
2
+ * The s, d, p and f labels, set in the cells no element occupies.
3
+ */
4
+ import type { ReactElement } from 'react';
5
+ import type { ElementRange } from '../core/layout.ts';
6
+ /** What {@link BlockStrip} needs. */
7
+ interface BlockStripProps {
8
+ /** Called with the block whose label was clicked. */
9
+ onSelectRange: (range: ElementRange) => void;
10
+ }
11
+ /**
12
+ * A thin rule under each block with its letter on it, so the four blocks are a
13
+ * click each, like a period or a group, without a toolbar repeating the table.
14
+ * The f label stands beside the two rows it names, its rule running down them.
15
+ * @param props - See {@link BlockStripProps}.
16
+ * @returns One button per block, placed on the grid with the header offset.
17
+ */
18
+ export declare function BlockStrip(props: BlockStripProps): ReactElement;
19
+ export {};
20
+ //# sourceMappingURL=BlockStrip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlockStrip.d.ts","sourceRoot":"","sources":["../../../src/periodic/ui/BlockStrip.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAA6B,YAAY,EAAE,MAAM,OAAO,CAAC;AAIrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAMtD,qCAAqC;AACrC,UAAU,eAAe;IACvB,qDAAqD;IACrD,aAAa,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;CAC9C;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,YAAY,CA2C/D"}
@@ -0,0 +1,48 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useChromeT } from "../../i18n/ui/useT.js";
3
+ import { TOKEN } from "../../tokens/core/familyTokens.js";
4
+ import { BLOCK_LABELS } from "../core/layout.js";
5
+ import { headerButtonStyle, headerStyle } from "./headerStyles.js";
6
+ import { ofWidth } from "./unit.js";
7
+ /**
8
+ * A thin rule under each block with its letter on it, so the four blocks are a
9
+ * click each, like a period or a group, without a toolbar repeating the table.
10
+ * The f label stands beside the two rows it names, its rule running down them.
11
+ * @param props - See {@link BlockStripProps}.
12
+ * @returns One button per block, placed on the grid with the header offset.
13
+ */
14
+ export function BlockStrip(props) {
15
+ const { onSelectRange } = props;
16
+ const t = useChromeT();
17
+ return (_jsx(_Fragment, { children: BLOCK_LABELS.map(({ block, cell, columnSpan, rowSpan }) => {
18
+ const title = t('periodic.block', { block });
19
+ const vertical = rowSpan > 1;
20
+ return (_jsxs("button", { type: "button", "aria-label": title, title: title, "data-block": block, onClick: (event) => {
21
+ onSelectRange({
22
+ kind: 'block',
23
+ value: block,
24
+ additive: event.metaKey || event.ctrlKey,
25
+ });
26
+ }, style: {
27
+ ...headerStyle,
28
+ ...headerButtonStyle,
29
+ gridColumn: `${String(cell.column + 1)} / span ${String(columnSpan)}`,
30
+ gridRow: `${String(cell.row + 1)} / span ${String(rowSpan)}`,
31
+ justifyContent: vertical ? 'flex-end' : 'center',
32
+ gap: '0.3em',
33
+ // Quieter than the period and group numbers: a block is a
34
+ // shortcut found on hover, not a label the table is read by.
35
+ color: TOKEN.textFaint,
36
+ fontSize: `max(0.4rem, ${ofWidth(1.05)})`,
37
+ }, children: [vertical ? null : _jsx("span", { style: horizontalRuleStyle }), _jsx("span", { children: block }), _jsx("span", { style: vertical ? verticalRuleStyle : horizontalRuleStyle })] }, block));
38
+ }) }));
39
+ }
40
+ const horizontalRuleStyle = {
41
+ borderTop: `1px solid ${TOKEN.border}`,
42
+ flex: '1 1 0',
43
+ };
44
+ const verticalRuleStyle = {
45
+ alignSelf: 'stretch',
46
+ borderLeft: `1px solid ${TOKEN.border}`,
47
+ };
48
+ //# sourceMappingURL=BlockStrip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlockStrip.js","sourceRoot":"","sources":["../../../src/periodic/ui/BlockStrip.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,KAAsB;IAC/C,MAAM,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;IAChC,MAAM,CAAC,GAAG,UAAU,EAAE,CAAC;IACvB,OAAO,CACL,4BACG,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;YACzD,MAAM,KAAK,GAAG,CAAC,CAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7C,MAAM,QAAQ,GAAG,OAAO,GAAG,CAAC,CAAC;YAC7B,OAAO,CACL,kBAEE,IAAI,EAAC,QAAQ,gBACD,KAAK,EACjB,KAAK,EAAE,KAAK,gBACA,KAAK,EACjB,OAAO,EAAE,CAAC,KAAiB,EAAE,EAAE;oBAC7B,aAAa,CAAC;wBACZ,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,KAAK;wBACZ,QAAQ,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO;qBACzC,CAAC,CAAC;gBACL,CAAC,EACD,KAAK,EAAE;oBACL,GAAG,WAAW;oBACd,GAAG,iBAAiB;oBACpB,UAAU,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,WAAW,MAAM,CAAC,UAAU,CAAC,EAAE;oBACrE,OAAO,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,WAAW,MAAM,CAAC,OAAO,CAAC,EAAE;oBAC5D,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ;oBAChD,GAAG,EAAE,OAAO;oBACZ,0DAA0D;oBAC1D,6DAA6D;oBAC7D,KAAK,EAAE,KAAK,CAAC,SAAS;oBACtB,QAAQ,EAAE,eAAe,OAAO,CAAC,IAAI,CAAC,GAAG;iBAC1C,aAEA,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAM,KAAK,EAAE,mBAAmB,GAAI,EACvD,yBAAO,KAAK,GAAQ,EACpB,eAAM,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,mBAAmB,GAAI,KA3B9D,KAAK,CA4BH,CACV,CAAC;QACJ,CAAC,CAAC,GACD,CACJ,CAAC;AACJ,CAAC;AAED,MAAM,mBAAmB,GAAG;IAC1B,SAAS,EAAE,aAAa,KAAK,CAAC,MAAM,EAAE;IACtC,IAAI,EAAE,OAAO;CACmB,CAAC;AAEnC,MAAM,iBAAiB,GAAG;IACxB,SAAS,EAAE,SAAS;IACpB,UAAU,EAAE,aAAa,KAAK,CAAC,MAAM,EAAE;CACP,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ElementCell.d.ts","sourceRoot":"","sources":["../../../src/periodic/ui/ElementCell.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAG1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAE9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAWrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAahD,0DAA0D;AAC1D,MAAM,WAAW,gBAAgB;IAC/B,kDAAkD;IAClD,YAAY,EAAE,MAAM,CAAC;IACrB,sDAAsD;IACtD,MAAM,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ;;;OAGG;IACH,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACtD;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1C;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,YAAY,CAqGjE"}
1
+ {"version":3,"file":"ElementCell.d.ts","sourceRoot":"","sources":["../../../src/periodic/ui/ElementCell.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAG1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAE9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAWrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAahD,0DAA0D;AAC1D,MAAM,WAAW,gBAAgB;IAC/B,kDAAkD;IAClD,YAAY,EAAE,MAAM,CAAC;IACrB,sDAAsD;IACtD,MAAM,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ;;;OAGG;IACH,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACtD;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1C;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,YAAY,CAsGjE"}
@@ -40,14 +40,15 @@ export function ElementCell(props) {
40
40
  background: swatch.background,
41
41
  color: swatch.foreground,
42
42
  opacity: isIncluded ? 1 : 0.28,
43
- // An outline rather than a fill: a table coloured by a property must
44
- // keep saying what the value is while a cell is selected.
45
- outlineStyle: isSelected ? 'solid' : 'none',
46
- outlineColor: swatch.foreground,
47
- // Thick enough to be seen from the back of a room, and drawn inside
48
- // the cell so a neighbour never covers it.
49
- outlineWidth: `max(2px, ${ofWidth(0.3)})`,
50
- outlineOffset: `max(-3px, ${ofWidth(-0.4)})`,
43
+ // A ring rather than a fill: a table coloured by a property must keep
44
+ // saying what the value is while a cell is selected. Drawn as an inset
45
+ // shadow, never an outline: a click focuses the cell, and a site's
46
+ // focus-ring reset (`outline: none !important`) would erase it.
47
+ // Thick enough to be seen from the back of a room, and inside the cell
48
+ // so a neighbour never covers it.
49
+ boxShadow: isSelected
50
+ ? `inset 0 0 0 max(2px, ${ofWidth(0.3)}) ${swatch.foreground}`
51
+ : undefined,
51
52
  // The cell the pointer is on, for a class following a demonstration.
52
53
  filter: isHovered ? 'brightness(1.08)' : undefined,
53
54
  }, children: [_jsx("span", { style: numberStyle, children: atomicNumber }), _jsx("span", { style: {
@@ -1 +1 @@
1
- {"version":3,"file":"ElementCell.js","sourceRoot":"","sources":["../../../src/periodic/ui/ElementCell.tsx"],"names":[],"mappings":";AAcA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGjC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,EACL,UAAU,EACV,aAAa,EACb,SAAS,EACT,WAAW,EACX,WAAW,EACX,WAAW,EACX,WAAW,GACZ,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,eAAe,EACf,UAAU,EACV,cAAc,EACd,UAAU,EACV,MAAM,EACN,aAAa,EACb,cAAc,EACd,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmEpC;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,KAAuB;IACjD,MAAM,EACJ,SAAS,EACT,YAAY,EACZ,MAAM,EACN,IAAI,EACJ,MAAM,EACN,MAAM,EACN,GAAG,EACH,QAAQ,EACR,MAAM,GAAG,EAAE,EACX,MAAM,EACN,UAAU,GAAG,KAAK,EAClB,UAAU,GAAG,IAAI,EACjB,OAAO,GACR,GAAG,KAAK,CAAC;IACV,MAAM,CAAC,GAAG,UAAU,EAAE,CAAC;IACvB,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAElD,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;IAC5D,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,IAAI,UAAU,CAAC,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAC;IACrE,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,aAAa,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;IAExE,OAAO,CACL,kBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,SAAS,iBACP,WAAW,MAAM,EAAE,iBACnB,MAAM,EACnB,KAAK,EAAE,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,MAAM,EAAE,gBACvC,CAAC,CAAC,oBAAoB,EAAE;YAClC,IAAI;YACJ,MAAM;YACN,YAAY;SACb,CAAC,kBACY,UAAU,EACxB,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACjB,QAAQ,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACjE,CAAC,EACD,cAAc,EAAE,GAAG,EAAE;YACnB,YAAY,CAAC,IAAI,CAAC,CAAC;YACnB,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;QACpB,CAAC,EACD,cAAc,EAAE,GAAG,EAAE;YACnB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC,EACD,KAAK,EAAE;YACL,GAAG,SAAS;YACZ,UAAU,EAAE,MAAM;YAClB,OAAO,EAAE,GAAG;YACZ,oEAAoE;YACpE,gEAAgE;YAChE,mBAAmB,EACjB,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,aAAa,EAAE;YACvD,SAAS,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;YACxD,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,KAAK,EAAE,MAAM,CAAC,UAAU;YACxB,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;YAC9B,qEAAqE;YACrE,0DAA0D;YAC1D,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;YAC3C,YAAY,EAAE,MAAM,CAAC,UAAU;YAC/B,oEAAoE;YACpE,2CAA2C;YAC3C,YAAY,EAAE,YAAY,OAAO,CAAC,GAAG,CAAC,GAAG;YACzC,aAAa,EAAE,aAAa,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG;YAC5C,qEAAqE;YACrE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS;SACnD,aAED,eAAM,KAAK,EAAE,WAAW,YAAG,YAAY,GAAQ,EAC/C,eACE,KAAK,EAAE;oBACL,GAAG,WAAW;oBACd,QAAQ,EAAE,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC;iBACvD,YAEA,MAAM,GACF,EACN,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACtB,eACE,KAAK,EAAE;oBACL,GAAG,WAAW;oBACd,QAAQ,EAAE,IAAI,CAAC,IAAI;oBACnB,8DAA8D;oBAC9D,iDAAiD;oBACjD,SAAS,EAAE,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;iBAC/D,YAEA,MAAM,GACF,CACR,EACA,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC7B,eAAM,KAAK,EAAE,EAAE,GAAG,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,YACjD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GACb,CACR,IACM,CACV,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ElementCell.js","sourceRoot":"","sources":["../../../src/periodic/ui/ElementCell.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"PeriodicTable.d.ts","sourceRoot":"","sources":["../../../src/periodic/ui/PeriodicTable.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,OAAO,CAAC;AAuBzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAIlE,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,YAAY,CA4HrE"}
1
+ {"version":3,"file":"PeriodicTable.d.ts","sourceRoot":"","sources":["../../../src/periodic/ui/PeriodicTable.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,OAAO,CAAC;AAwBzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAIlE,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,YAAY,CA8HrE"}
@@ -4,6 +4,7 @@ import { useResizeObserver } from "../../hooks/ui/useResizeObserver.js";
4
4
  import { useChromeT } from "../../i18n/ui/useT.js";
5
5
  import { categorySwatch } from "../core/categories.js";
6
6
  import { elementByArrowKey, placedElements } from "../core/layout.js";
7
+ import { BlockStrip } from "./BlockStrip.js";
7
8
  import { CategoryLegend } from "./CategoryLegend.js";
8
9
  import { ElementCell } from "./ElementCell.js";
9
10
  import { HeaderStrips, InnerTransitionMarkers, } from "./PeriodicTableChrome.js";
@@ -22,6 +23,7 @@ export function PeriodicTable(props) {
22
23
  const gridRef = useRef(null);
23
24
  const cameFromKeyRef = useRef(false);
24
25
  const offset = headers ? 1 : 0;
26
+ const blocks = headers && onSelectRange !== undefined;
25
27
  // The drawing is read off this one number, so it is written straight onto
26
28
  // the element rather than held as state: a window being dragged would
27
29
  // otherwise re-render all 118 cells per frame, and the engine recomputes
@@ -68,7 +70,7 @@ export function PeriodicTable(props) {
68
70
  const reserved = deepest === 0 ? 0 : SHELLS_RESERVED;
69
71
  const type = detailType(widths, reserved);
70
72
  const shellSize = shellFontSize(deepest);
71
- return (_jsxs("div", { ref: rootRef, className: className, "data-figure": "html", style: rootStyle, children: [_jsxs("div", { ref: gridRef, role: "grid", "aria-label": t('periodic.table'), "data-testid": "periodic-table", style: gridStyle(headers), onKeyDown: handleKeyDown, children: [headers ? (_jsx(HeaderStrips, { onSelectRange: onSelectRange, onSelectAll: onSelectAll })) : null, inset === undefined ? null : (_jsx("div", { style: insetStyle(offset), children: inset })), markers ? _jsx(InnerTransitionMarkers, { offset: offset }) : null, placed.map(({ element, cell }) => (_jsx(ElementCell, { atomicNumber: element.atomicNumber, symbol: element.symbol, name: nameOf(element), detail: detailOf?.(element), detailType: type, shells: shellsOf?.(element), shellSize: shellSize, swatch: swatchOf(element), isSelected: element.symbol === selected, isIncluded: isIncluded?.(element), column: cell.column + offset, row: cell.row + offset, onSelect: onSelect ?? noop, onHover: onHover }, element.symbol)))] }), legend ? _jsx(CategoryLegend, {}) : null] }));
73
+ return (_jsxs("div", { ref: rootRef, className: className, "data-figure": "html", style: rootStyle, children: [_jsxs("div", { ref: gridRef, role: "grid", "aria-label": t('periodic.table'), "data-testid": "periodic-table", style: gridStyle(headers, blocks), onKeyDown: handleKeyDown, children: [headers ? (_jsx(HeaderStrips, { onSelectRange: onSelectRange, onSelectAll: onSelectAll })) : null, blocks ? _jsx(BlockStrip, { onSelectRange: onSelectRange }) : null, inset === undefined ? null : (_jsx("div", { style: insetStyle(offset), children: inset })), markers ? _jsx(InnerTransitionMarkers, { offset: offset }) : null, placed.map(({ element, cell }) => (_jsx(ElementCell, { atomicNumber: element.atomicNumber, symbol: element.symbol, name: nameOf(element), detail: detailOf?.(element), detailType: type, shells: shellsOf?.(element), shellSize: shellSize, swatch: swatchOf(element), isSelected: element.symbol === selected, isIncluded: isIncluded?.(element), column: cell.column + offset, row: cell.row + offset, onSelect: onSelect ?? noop, onHover: onHover }, element.symbol)))] }), legend ? _jsx(CategoryLegend, {}) : null] }));
72
74
  }
73
75
  function defaultSwatchOf(element) {
74
76
  return categorySwatch(element.category);
@@ -1 +1 @@
1
- {"version":3,"file":"PeriodicTable.js","sourceRoot":"","sources":["../../../src/periodic/ui/PeriodicTable.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PeriodicTable.js","sourceRoot":"","sources":["../../../src/periodic/ui/PeriodicTable.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * What the clicks on a periodic table do, behind one question mark.
3
+ *
4
+ * The table picks by row, by column, by block and by element, and the corner
5
+ * that takes everything back only shows itself when pointed at. None of that is
6
+ * written on the table, so the gestures are listed here, one to a line, the way
7
+ * the 3D viewer lists its own.
8
+ */
9
+ import type { ReactElement } from 'react';
10
+ /** What {@link PeriodicTableHelp} needs. */
11
+ export interface PeriodicTableHelpProps {
12
+ /**
13
+ * Which side the card opens on.
14
+ * @default 'bottom'
15
+ */
16
+ placement?: 'top' | 'right' | 'bottom' | 'left';
17
+ }
18
+ /**
19
+ * The question mark that explains how to pick elements on the table.
20
+ *
21
+ * It is the same button as `FigureDownload`'s, so the two sit side by side in a
22
+ * row of controls at one size and one ink.
23
+ * @param props - See {@link PeriodicTableHelpProps}.
24
+ * @returns The glyph, with its card.
25
+ */
26
+ export declare function PeriodicTableHelp(props: PeriodicTableHelpProps): ReactElement;
27
+ /**
28
+ * The gestures the table answers to: what is clicked, then what a plain click
29
+ * and a click with Cmd or Ctrl held each do to it.
30
+ * @returns The table of gestures, and the line saying what the dimming means.
31
+ */
32
+ export declare function PeriodicTableGestures(): ReactElement;
33
+ //# sourceMappingURL=PeriodicTableHelp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PeriodicTableHelp.d.ts","sourceRoot":"","sources":["../../../src/periodic/ui/PeriodicTableHelp.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,OAAO,CAAC;AAQzD,4CAA4C;AAC5C,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,SAAS,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;CACjD;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,YAAY,CAoB7E;AAiCD;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,YAAY,CAoDpD"}
@@ -0,0 +1,107 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * What the clicks on a periodic table do, behind one question mark.
4
+ *
5
+ * The table picks by row, by column, by block and by element, and the corner
6
+ * that takes everything back only shows itself when pointed at. None of that is
7
+ * written on the table, so the gestures are listed here, one to a line, the way
8
+ * the 3D viewer lists its own.
9
+ */
10
+ import { Classes } from '@blueprintjs/core';
11
+ import { HelpTooltip } from "../../help/ui/HelpTooltip.js";
12
+ import { useChromeT } from "../../i18n/ui/useT.js";
13
+ import { OverlayIconButton } from "../../overlay/ui/OverlayIconButton.js";
14
+ import { TOKEN } from "../../tokens/core/familyTokens.js";
15
+ /**
16
+ * The question mark that explains how to pick elements on the table.
17
+ *
18
+ * It is the same button as `FigureDownload`'s, so the two sit side by side in a
19
+ * row of controls at one size and one ink.
20
+ * @param props - See {@link PeriodicTableHelpProps}.
21
+ * @returns The glyph, with its card.
22
+ */
23
+ export function PeriodicTableHelp(props) {
24
+ const { placement = 'bottom' } = props;
25
+ const t = useChromeT();
26
+ const title = t('periodic.help.title');
27
+ return (_jsx(HelpTooltip, { content: { title, body: _jsx(PeriodicTableGestures, {}) }, placement: placement, width: CARD_WIDTH, popoverClassName: "help-tooltip--wide", children: _jsx(OverlayIconButton, { icon: "help", label: title, untitled: true, testId: "periodic-table-help" }) }));
28
+ }
29
+ const TARGETS = [
30
+ {
31
+ name: 'periodic.help.element',
32
+ click: 'periodic.help.elementClick',
33
+ modClick: 'periodic.help.elementMod',
34
+ },
35
+ {
36
+ name: 'periodic.help.number',
37
+ click: 'periodic.help.numberClick',
38
+ modClick: 'periodic.help.runMod',
39
+ },
40
+ {
41
+ name: 'periodic.help.block',
42
+ click: 'periodic.help.blockClick',
43
+ modClick: 'periodic.help.runMod',
44
+ },
45
+ { name: 'periodic.help.corner', click: 'periodic.help.cornerClick' },
46
+ { keys: ['←', '↑', '→', '↓'], click: 'periodic.help.arrowsClick' },
47
+ ];
48
+ /**
49
+ * The gestures the table answers to: what is clicked, then what a plain click
50
+ * and a click with Cmd or Ctrl held each do to it.
51
+ * @returns The table of gestures, and the line saying what the dimming means.
52
+ */
53
+ export function PeriodicTableGestures() {
54
+ const t = useChromeT();
55
+ const modifier = isMacPlatform() ? '⌘' : t('periodic.help.ctrl');
56
+ return (_jsxs("div", { style: LIST_STYLE, children: [_jsxs("table", { style: TABLE_STYLE, children: [_jsx("thead", { children: _jsxs("tr", { children: [_jsx("th", { "aria-hidden": "true" }), _jsx("th", { style: HEAD_STYLE, children: t('periodic.help.click') }), _jsx("th", { style: HEAD_STYLE, children: _jsxs("span", { style: KEYS_STYLE, children: [_jsx("kbd", { className: Classes.KEY, children: modifier }), t('periodic.help.modClick')] }) })] }) }), _jsx("tbody", { children: TARGETS.map(({ name, keys, click, modClick }) => (_jsxs("tr", { style: ROW_STYLE, children: [_jsx("th", { scope: "row", style: TARGET_STYLE, children: name === undefined ? (_jsx("span", { style: KEYS_STYLE, children: keys?.map((key) => (_jsx("kbd", { className: Classes.KEY, children: key }, key))) })) : (t(name)) }), _jsx("td", { style: CELL_STYLE, children: t(click) }), _jsx("td", { style: CELL_STYLE, children: modClick === undefined ? (_jsx("span", { className: Classes.TEXT_DISABLED, children: "\u2014" })) : (t(modClick)) })] }, click))) })] }), _jsx("p", { className: Classes.TEXT_MUTED, style: NOTE_STYLE, children: t('periodic.help.note') })] }));
57
+ }
58
+ /**
59
+ * Whether the page runs on a Mac.
60
+ * @returns True there, where the table reads ⌘ rather than Ctrl.
61
+ */
62
+ function isMacPlatform() {
63
+ return typeof navigator !== 'undefined' && navigator.platform.includes('Mac');
64
+ }
65
+ /** The wide card's measure, less its padding. */
66
+ const CARD_WIDTH = 436;
67
+ const LIST_STYLE = {
68
+ display: 'flex',
69
+ flexDirection: 'column',
70
+ gap: 10,
71
+ marginTop: 4,
72
+ };
73
+ const TABLE_STYLE = {
74
+ borderCollapse: 'collapse',
75
+ width: '100%',
76
+ };
77
+ const HEAD_STYLE = {
78
+ color: TOKEN.textMuted,
79
+ fontSize: 11.5,
80
+ fontWeight: 600,
81
+ padding: '0 8px 6px',
82
+ textAlign: 'left',
83
+ whiteSpace: 'nowrap',
84
+ };
85
+ const ROW_STYLE = {
86
+ borderTop: `1px solid ${TOKEN.border}`,
87
+ };
88
+ const TARGET_STYLE = {
89
+ fontWeight: 600,
90
+ padding: '6px 8px 6px 0',
91
+ textAlign: 'left',
92
+ verticalAlign: 'top',
93
+ width: '34%',
94
+ };
95
+ const CELL_STYLE = {
96
+ padding: '6px 8px',
97
+ verticalAlign: 'top',
98
+ width: '33%',
99
+ };
100
+ const KEYS_STYLE = {
101
+ alignItems: 'center',
102
+ display: 'inline-flex',
103
+ gap: 3,
104
+ whiteSpace: 'nowrap',
105
+ };
106
+ const NOTE_STYLE = { margin: 0 };
107
+ //# sourceMappingURL=PeriodicTableHelp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PeriodicTableHelp.js","sourceRoot":"","sources":["../../../src/periodic/ui/PeriodicTableHelp.tsx"],"names":[],"mappings":"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"}
@@ -62,10 +62,11 @@ export declare const detailStyle: {
62
62
  /**
63
63
  * The electrons of each shell, innermost at the top, down the right-hand edge
64
64
  * of the whole cell: the stack is as tall as the three bands together, which
65
- * is what lets seven of them be read.
65
+ * is what lets seven of them be read. It hangs from the top, so the innermost
66
+ * shell sits at the same height in every cell whatever the period.
66
67
  */
67
68
  export declare const shellsStyle: {
68
- readonly alignSelf: "center";
69
+ readonly alignSelf: "start";
69
70
  readonly gridColumn: 2;
70
71
  readonly gridRow: "1 / span 3";
71
72
  readonly fontVariantNumeric: "tabular-nums";
@@ -1 +1 @@
1
- {"version":3,"file":"cellStyles.d.ts","sourceRoot":"","sources":["../../../src/periodic/ui/cellStyles.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,gEAAgE;AAChE,eAAO,MAAM,aAAa,QAAwB,CAAC;AAEnD,mEAAmE;AACnE,eAAO,MAAM,UAAU,QAAsB,CAAC;AAY9C;;;;;;;;;GASG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;CAYY,CAAC;AAEnC,eAAO,MAAM,WAAW;;;;;;;;;CASU,CAAC;AAEnC,eAAO,MAAM,WAAW;;;;;;;CAOU,CAAC;AAEnC,eAAO,MAAM,WAAW;;;;;;;;CAQU,CAAC;AAEnC;;;;GAIG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;CAWU,CAAC"}
1
+ {"version":3,"file":"cellStyles.d.ts","sourceRoot":"","sources":["../../../src/periodic/ui/cellStyles.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,gEAAgE;AAChE,eAAO,MAAM,aAAa,QAAwB,CAAC;AAEnD,mEAAmE;AACnE,eAAO,MAAM,UAAU,QAAsB,CAAC;AAY9C;;;;;;;;;GASG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;CAYY,CAAC;AAEnC,eAAO,MAAM,WAAW;;;;;;;;;CASU,CAAC;AAEnC,eAAO,MAAM,WAAW;;;;;;;CAOU,CAAC;AAEnC,eAAO,MAAM,WAAW;;;;;;;;CAQU,CAAC;AAEnC;;;;;GAKG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;CAWU,CAAC"}
@@ -73,10 +73,11 @@ export const detailStyle = {
73
73
  /**
74
74
  * The electrons of each shell, innermost at the top, down the right-hand edge
75
75
  * of the whole cell: the stack is as tall as the three bands together, which
76
- * is what lets seven of them be read.
76
+ * is what lets seven of them be read. It hangs from the top, so the innermost
77
+ * shell sits at the same height in every cell whatever the period.
77
78
  */
78
79
  export const shellsStyle = {
79
- alignSelf: 'center',
80
+ alignSelf: 'start',
80
81
  gridColumn: 2,
81
82
  gridRow: '1 / span 3',
82
83
  fontVariantNumeric: 'tabular-nums',
@@ -1 +1 @@
1
- {"version":3,"file":"cellStyles.js","sourceRoot":"","sources":["../../../src/periodic/ui/cellStyles.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,gEAAgE;AAChE,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AAEnD,mEAAmE;AACnE,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAE9C;;;;;;;GAOG;AACH,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;AAE/B;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,MAAM,EAAE,mCAAmC;IAC3C,YAAY,EAAE,CAAC;IACf,MAAM,EAAE,SAAS;IACjB,OAAO,EAAE,MAAM;IACf,IAAI,EAAE,SAAS;IACf,gBAAgB,EAAE,GAAG,SAAS,QAAQ,SAAS,EAAE;IACjD,YAAY,EAAE,QAAQ;IACtB,QAAQ,EAAE,CAAC;IACX,QAAQ,EAAE,QAAQ;IAClB,OAAO,EAAE,KAAK;IACd,UAAU,EAAE,uCAAuC;CACnB,CAAC;AAEnC,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,SAAS,EAAE,OAAO;IAClB,UAAU,EAAE,CAAC;IACb,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,gBAAgB,OAAO,CAAC,GAAG,CAAC,GAAG;IACzC,kBAAkB,EAAE,cAAc;IAClC,WAAW,EAAE,OAAO;IACpB,UAAU,EAAE,CAAC;IACb,OAAO,EAAE,GAAG;CACoB,CAAC;AAEnC,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,SAAS,EAAE,QAAQ;IACnB,UAAU,EAAE,CAAC;IACb,OAAO,EAAE,CAAC;IACV,UAAU,EAAE,GAAG;IACf,aAAa,EAAE,SAAS;IACxB,UAAU,EAAE,IAAI;CACgB,CAAC;AAEnC,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,SAAS,EAAE,QAAQ;IACnB,UAAU,EAAE,CAAC;IACb,OAAO,EAAE,CAAC;IACV,kBAAkB,EAAE,cAAc;IAClC,UAAU,EAAE,CAAC;IACb,QAAQ,EAAE,QAAQ;IAClB,UAAU,EAAE,QAAQ;CACY,CAAC;AAEnC;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,SAAS,EAAE,QAAQ;IACnB,UAAU,EAAE,CAAC;IACb,OAAO,EAAE,YAAY;IACrB,kBAAkB,EAAE,cAAc;IAClC,WAAW,EAAE,KAAK;IAClB,UAAU,EAAE,aAAa;IACzB,OAAO,EAAE,IAAI;IACb,gBAAgB,EAAE,cAAc,OAAO,CAAC,IAAI,CAAC,GAAG;IAChD,SAAS,EAAE,OAAO;IAClB,UAAU,EAAE,UAAU;CACU,CAAC"}
1
+ {"version":3,"file":"cellStyles.js","sourceRoot":"","sources":["../../../src/periodic/ui/cellStyles.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,gEAAgE;AAChE,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AAEnD,mEAAmE;AACnE,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAE9C;;;;;;;GAOG;AACH,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;AAE/B;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,MAAM,EAAE,mCAAmC;IAC3C,YAAY,EAAE,CAAC;IACf,MAAM,EAAE,SAAS;IACjB,OAAO,EAAE,MAAM;IACf,IAAI,EAAE,SAAS;IACf,gBAAgB,EAAE,GAAG,SAAS,QAAQ,SAAS,EAAE;IACjD,YAAY,EAAE,QAAQ;IACtB,QAAQ,EAAE,CAAC;IACX,QAAQ,EAAE,QAAQ;IAClB,OAAO,EAAE,KAAK;IACd,UAAU,EAAE,uCAAuC;CACnB,CAAC;AAEnC,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,SAAS,EAAE,OAAO;IAClB,UAAU,EAAE,CAAC;IACb,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,gBAAgB,OAAO,CAAC,GAAG,CAAC,GAAG;IACzC,kBAAkB,EAAE,cAAc;IAClC,WAAW,EAAE,OAAO;IACpB,UAAU,EAAE,CAAC;IACb,OAAO,EAAE,GAAG;CACoB,CAAC;AAEnC,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,SAAS,EAAE,QAAQ;IACnB,UAAU,EAAE,CAAC;IACb,OAAO,EAAE,CAAC;IACV,UAAU,EAAE,GAAG;IACf,aAAa,EAAE,SAAS;IACxB,UAAU,EAAE,IAAI;CACgB,CAAC;AAEnC,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,SAAS,EAAE,QAAQ;IACnB,UAAU,EAAE,CAAC;IACb,OAAO,EAAE,CAAC;IACV,kBAAkB,EAAE,cAAc;IAClC,UAAU,EAAE,CAAC;IACb,QAAQ,EAAE,QAAQ;IAClB,UAAU,EAAE,QAAQ;CACY,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,SAAS,EAAE,OAAO;IAClB,UAAU,EAAE,CAAC;IACb,OAAO,EAAE,YAAY;IACrB,kBAAkB,EAAE,cAAc;IAClC,WAAW,EAAE,KAAK;IAClB,UAAU,EAAE,aAAa;IACzB,OAAO,EAAE,IAAI;IACb,gBAAgB,EAAE,cAAc,OAAO,CAAC,IAAI,CAAC,GAAG;IAChD,SAAS,EAAE,OAAO;IAClB,UAAU,EAAE,UAAU;CACU,CAAC"}
@@ -4,4 +4,6 @@ export type { ElementCellProps } from './ElementCell.tsx';
4
4
  export { ElementCell } from './ElementCell.tsx';
5
5
  export type { PeriodicTableProps } from './PeriodicTable.tsx';
6
6
  export { PeriodicTable } from './PeriodicTable.tsx';
7
+ export type { PeriodicTableHelpProps } from './PeriodicTableHelp.tsx';
8
+ export { PeriodicTableGestures, PeriodicTableHelp, } from './PeriodicTableHelp.tsx';
7
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/periodic/ui/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/periodic/ui/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EACL,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  export { CategoryLegend } from "./CategoryLegend.js";
2
2
  export { ElementCell } from "./ElementCell.js";
3
3
  export { PeriodicTable } from "./PeriodicTable.js";
4
+ export { PeriodicTableGestures, PeriodicTableHelp, } from "./PeriodicTableHelp.js";
4
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/periodic/ui/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAsB,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAmB,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/periodic/ui/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAsB,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAmB,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAqB,CAAC;AAEpD,OAAO,EACL,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,wBAAyB,CAAC"}
@@ -69,10 +69,11 @@ export interface PeriodicTableProps {
69
69
  */
70
70
  headers?: boolean;
71
71
  /**
72
- * Called when a whole group or period header is clicked. The run says
73
- * whether the click was additive — Cmd or Ctrl held — so a tool can let a
74
- * reader put two periods on one chart. Without it the strips are labels
75
- * rather than buttons.
72
+ * Called when a whole group or period header is clicked, or one of the block
73
+ * labels the gap under period 7 then carries. The run says whether the click
74
+ * was additive — Cmd or Ctrl held — so a tool can let a reader put two
75
+ * periods on one chart. Without it the strips are labels rather than
76
+ * buttons, and the blocks are not named.
76
77
  * @default undefined
77
78
  */
78
79
  onSelectRange?: (range: ElementRange) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"periodicTableProps.d.ts","sourceRoot":"","sources":["../../../src/periodic/ui/periodicTableProps.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEnE,kCAAkC;AAClC,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACvD;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,MAAM,CAAC;IAChD;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,MAAM,CAAC;IAChD;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,MAAM,CAAC;IAC9C;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACvE;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC;IACnD;;;;;;;;;OASG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAC9C;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1C;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"periodicTableProps.d.ts","sourceRoot":"","sources":["../../../src/periodic/ui/periodicTableProps.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEnE,kCAAkC;AAClC,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACvD;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,MAAM,CAAC;IAChD;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,MAAM,CAAC;IAChD;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,MAAM,CAAC;IAC9C;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACvE;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC;IACnD;;;;;;;;;OASG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAC9C;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1C;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
@@ -20,7 +20,9 @@ export declare const rootStyle: {
20
20
  * The grid the cells are placed on.
21
21
  * @param headers - Whether a leading column and row hold the period and group
22
22
  * numbers.
23
+ * @param blocks - Whether the gap under period 7 names the blocks, which needs
24
+ * it as tall as a header strip.
23
25
  * @returns The style of the grid.
24
26
  */
25
- export declare function gridStyle(headers: boolean): CSSProperties;
27
+ export declare function gridStyle(headers: boolean, blocks?: boolean): CSSProperties;
26
28
  //# sourceMappingURL=tableLayout.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tableLayout.d.ts","sourceRoot":"","sources":["../../../src/periodic/ui/tableLayout.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAO3C;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAiBxD;AAmBD,eAAO,MAAM,SAAS;;;;;;CAYY,CAAC;AASnC;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,CAezD"}
1
+ {"version":3,"file":"tableLayout.d.ts","sourceRoot":"","sources":["../../../src/periodic/ui/tableLayout.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAO3C;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAiBxD;AAsBD,eAAO,MAAM,SAAS;;;;;;CAYY,CAAC;AASnC;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAQ,GAAG,aAAa,CAgBzE"}
@@ -42,6 +42,8 @@ const MIN_WIDTH = 280;
42
42
  const ROW_HEIGHT = ofWidth(ROW_SHARE);
43
43
  /** The band the two inner-transition series were lifted out across. */
44
44
  const SERIES_GAP = `max(6px, ${ofWidth(1.1)})`;
45
+ /** The height of a header strip, and of the gap once it carries block labels. */
46
+ const STRIP_HEIGHT = `max(12px, ${ofWidth(2)})`;
45
47
  export const rootStyle = {
46
48
  display: 'flex',
47
49
  flexDirection: 'column',
@@ -65,11 +67,14 @@ const baseGridStyle = {
65
67
  * The grid the cells are placed on.
66
68
  * @param headers - Whether a leading column and row hold the period and group
67
69
  * numbers.
70
+ * @param blocks - Whether the gap under period 7 names the blocks, which needs
71
+ * it as tall as a header strip.
68
72
  * @returns The style of the grid.
69
73
  */
70
- export function gridStyle(headers) {
74
+ export function gridStyle(headers, blocks = false) {
71
75
  // The eighth row is the gap the inner-transition series are lifted out into.
72
- const rows = `repeat(7, ${ROW_HEIGHT}) ${SERIES_GAP} repeat(2, ${ROW_HEIGHT})`;
76
+ const gap = blocks ? STRIP_HEIGHT : SERIES_GAP;
77
+ const rows = `repeat(7, ${ROW_HEIGHT}) ${gap} repeat(2, ${ROW_HEIGHT})`;
73
78
  if (!headers) {
74
79
  return {
75
80
  ...baseGridStyle,
@@ -80,7 +85,7 @@ export function gridStyle(headers) {
80
85
  return {
81
86
  ...baseGridStyle,
82
87
  gridTemplateColumns: `max(14px, ${ofWidth(2.4)}) repeat(${String(COLUMN_COUNT)}, minmax(0, 1fr))`,
83
- gridTemplateRows: `max(12px, ${ofWidth(2)}) ${rows}`,
88
+ gridTemplateRows: `${STRIP_HEIGHT} ${rows}`,
84
89
  };
85
90
  }
86
91
  //# sourceMappingURL=tableLayout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tableLayout.js","sourceRoot":"","sources":["../../../src/periodic/ui/tableLayout.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,MAAc;IACvC,OAAO;QACL,UAAU,EAAE,QAAQ;QACpB,OAAO,EAAE,MAAM;QACf,uEAAuE;QACvE,yDAAyD;QACzD,OAAO,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,EAAE;QAC5B,UAAU,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE;QAC7F,OAAO,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,GAAG,MAAM,CAAC,WAAW,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE;QACpF,0EAA0E;QAC1E,yEAAyE;QACzE,iCAAiC;QACjC,QAAQ,EAAE,eAAe,OAAO,CAAC,GAAG,CAAC,GAAG;QACxC,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,QAAQ;KACnB,CAAC;AACJ,CAAC;AAED,iFAAiF;AACjF,MAAM,SAAS,GAAG,GAAG,CAAC;AAEtB;;;;;;;;GAQG;AACH,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AAEtC,uEAAuE;AACvE,MAAM,UAAU,GAAG,YAAY,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;AAE/C,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,QAAQ;IACvB,GAAG,EAAE,CAAC;IACN,QAAQ,EAAE,SAAS;IACnB,6EAA6E;IAC7E,0EAA0E;IAC1E,0EAA0E;IAC1E,sEAAsE;IACtE,6EAA6E;IAC7E,6DAA6D;IAC7D,aAAa,EAAE,aAAa;CACI,CAAC;AAEnC,MAAM,aAAa,GAAG;IACpB,OAAO,EAAE,MAAM;IACf,GAAG,EAAE,CAAC;IACN,QAAQ,EAAE,SAAS;IACnB,KAAK,EAAE,MAAM;CACmB,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,OAAgB;IACxC,6EAA6E;IAC7E,MAAM,IAAI,GAAG,aAAa,UAAU,KAAK,UAAU,cAAc,UAAU,GAAG,CAAC;IAC/E,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,GAAG,aAAa;YAChB,mBAAmB,EAAE,UAAU,MAAM,CAAC,YAAY,CAAC,mBAAmB;YACtE,gBAAgB,EAAE,IAAI;SACvB,CAAC;IACJ,CAAC;IACD,OAAO;QACL,GAAG,aAAa;QAChB,mBAAmB,EAAE,aAAa,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,YAAY,CAAC,mBAAmB;QACjG,gBAAgB,EAAE,aAAa,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;KACrD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"tableLayout.js","sourceRoot":"","sources":["../../../src/periodic/ui/tableLayout.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,MAAc;IACvC,OAAO;QACL,UAAU,EAAE,QAAQ;QACpB,OAAO,EAAE,MAAM;QACf,uEAAuE;QACvE,yDAAyD;QACzD,OAAO,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,EAAE;QAC5B,UAAU,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE;QAC7F,OAAO,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,GAAG,MAAM,CAAC,WAAW,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE;QACpF,0EAA0E;QAC1E,yEAAyE;QACzE,iCAAiC;QACjC,QAAQ,EAAE,eAAe,OAAO,CAAC,GAAG,CAAC,GAAG;QACxC,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,QAAQ;KACnB,CAAC;AACJ,CAAC;AAED,iFAAiF;AACjF,MAAM,SAAS,GAAG,GAAG,CAAC;AAEtB;;;;;;;;GAQG;AACH,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AAEtC,uEAAuE;AACvE,MAAM,UAAU,GAAG,YAAY,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;AAE/C,iFAAiF;AACjF,MAAM,YAAY,GAAG,aAAa,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AAEhD,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,QAAQ;IACvB,GAAG,EAAE,CAAC;IACN,QAAQ,EAAE,SAAS;IACnB,6EAA6E;IAC7E,0EAA0E;IAC1E,0EAA0E;IAC1E,sEAAsE;IACtE,6EAA6E;IAC7E,6DAA6D;IAC7D,aAAa,EAAE,aAAa;CACI,CAAC;AAEnC,MAAM,aAAa,GAAG;IACpB,OAAO,EAAE,MAAM;IACf,GAAG,EAAE,CAAC;IACN,QAAQ,EAAE,SAAS;IACnB,KAAK,EAAE,MAAM;CACmB,CAAC;AAEnC;;;;;;;GAOG;AACH,MAAM,UAAU,SAAS,CAAC,OAAgB,EAAE,MAAM,GAAG,KAAK;IACxD,6EAA6E;IAC7E,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC;IAC/C,MAAM,IAAI,GAAG,aAAa,UAAU,KAAK,GAAG,cAAc,UAAU,GAAG,CAAC;IACxE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,GAAG,aAAa;YAChB,mBAAmB,EAAE,UAAU,MAAM,CAAC,YAAY,CAAC,mBAAmB;YACtE,gBAAgB,EAAE,IAAI;SACvB,CAAC;IACJ,CAAC;IACD,OAAO;QACL,GAAG,aAAa;QAChB,mBAAmB,EAAE,aAAa,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,YAAY,CAAC,mBAAmB;QACjG,gBAAgB,EAAE,GAAG,YAAY,IAAI,IAAI,EAAE;KAC5C,CAAC;AACJ,CAAC"}
@@ -4,8 +4,9 @@ import type { ShareDialogProps } from './ShareDialog.tsx';
4
4
  /** Everything the dialog holds, minus what only its shell is concerned with. */
5
5
  export type ShareDialogContentProps<Codecs extends ShareParamCodecs = Record<string, never>> = Omit<ShareDialogProps<Codecs>, 'isOpen' | 'usePortal'>;
6
6
  /**
7
- * The share dialog's body: what one does with the link above, never scrolled
8
- * away, then the options on the left and the page they write on the right.
7
+ * The share dialog's body: the options on the left and the page they write on
8
+ * the right, and what one does with the link in the footer, never scrolled
9
+ * away. A copy closes the dialog, since it was what the dialog was opened for.
9
10
  * @param props - What the site's links can say, how the page is named, and the extra section.
10
11
  * @returns The body and the footer of the dialog.
11
12
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ShareDialogContent.d.ts","sourceRoot":"","sources":["../../../src/share/ui/ShareDialogContent.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,OAAO,CAAC;AAKzD,OAAO,KAAK,EAGV,gBAAgB,EAIjB,MAAM,kBAAkB,CAAC;AAa1B,OAAO,KAAK,EAAE,gBAAgB,EAAc,MAAM,mBAAmB,CAAC;AActE,gFAAgF;AAChF,MAAM,MAAM,uBAAuB,CACjC,MAAM,SAAS,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IACrD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC,CAAC;AAE3D;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,SAAS,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACvD,KAAK,EAAE,uBAAuB,CAAC,MAAM,CAAC,GAAG,YAAY,CA0ItD"}
1
+ {"version":3,"file":"ShareDialogContent.d.ts","sourceRoot":"","sources":["../../../src/share/ui/ShareDialogContent.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,OAAO,CAAC;AAIzD,OAAO,KAAK,EAGV,gBAAgB,EAIjB,MAAM,kBAAkB,CAAC;AAa1B,OAAO,KAAK,EAAE,gBAAgB,EAAc,MAAM,mBAAmB,CAAC;AActE,gFAAgF;AAChF,MAAM,MAAM,uBAAuB,CACjC,MAAM,SAAS,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IACrD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC,CAAC;AAE3D;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,SAAS,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACvD,KAAK,EAAE,uBAAuB,CAAC,MAAM,CAAC,GAAG,YAAY,CAsItD"}
@@ -1,8 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { Button, DialogFooter } from '@blueprintjs/core';
2
+ import { DialogFooter } from '@blueprintjs/core';
3
3
  import { useRef, useState } from 'react';
4
4
  import { useContainerSize } from "../../hooks/ui/useContainerSize.js";
5
- import { useChromeT } from "../../i18n/ui/useT.js";
6
5
  import { applySharePreset, buildEmbedCode, buildShareUrl, findSharePreset, isShareConfigured, parseShareConfig, suggestedShareConfig, visibleShareParts, } from "../core/index.js";
7
6
  import { ShareConfigOptions } from "./ShareConfigOptions.js";
8
7
  import { ShareLinkBar } from "./ShareLinkBar.js";
@@ -15,14 +14,14 @@ const NO_PRESETS = [];
15
14
  const TWO_PANE_WIDTH = 720;
16
15
  const SECTION_STYLE = { marginBottom: 14 };
17
16
  /**
18
- * The share dialog's body: what one does with the link above, never scrolled
19
- * away, then the options on the left and the page they write on the right.
17
+ * The share dialog's body: the options on the left and the page they write on
18
+ * the right, and what one does with the link in the footer, never scrolled
19
+ * away. A copy closes the dialog, since it was what the dialog was opened for.
20
20
  * @param props - What the site's links can say, how the page is named, and the extra section.
21
21
  * @returns The body and the footer of the dialog.
22
22
  */
23
23
  export function ShareDialogContent(props) {
24
24
  const { onClose, vocabulary, presets = NO_PRESETS, defaultPreset, title, baseUrl, search, frameTitle, frameHeight, preview = true, partDescriptions = 'inline', children, } = props;
25
- const t = useChromeT();
26
25
  const address = globalThis.location;
27
26
  const base = baseUrl ?? address?.href ?? '';
28
27
  const query = search ?? address?.search ?? '';
@@ -73,7 +72,7 @@ export function ShareDialogContent(props) {
73
72
  const openPreset = findPreset(presets, presetKey);
74
73
  const optionsPane = (_jsxs("div", { className: "share-dialog__options", children: [openPreset === undefined ? (options) : (_jsx("p", { className: "share-dialog__preset", children: openPreset.description })), children === undefined ? null : (_jsx("section", { className: "share-section", style: SECTION_STYLE, children: typeof children === 'function' ? children(draft) : children }))] }));
75
74
  const previewPane = preview ? (_jsx(SharePreview, { url: url, title: frameTitle ?? title, highlight: highlightOf(vocabulary.parts, pointed) })) : null;
76
- return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "share-dialog__body", ref: body, children: [_jsxs("div", { className: "share-dialog__top", children: [presets.length === 0 ? null : (_jsx(SharePresetTabs, { presets: presets, selected: presetKey, onSelect: selectPreset })), _jsx(ShareLinkBar, { url: url, frame: frame })] }), _jsx(SharePanes, { options: optionsPane, preview: previewPane, narrow: narrow })] }), _jsx(DialogFooter, { actions: _jsx(Button, { intent: "primary", text: t('share.done'), onClick: onClose }) })] }));
75
+ return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "share-dialog__body", ref: body, children: [presets.length === 0 ? null : (_jsx("div", { className: "share-dialog__top", children: _jsx(SharePresetTabs, { presets: presets, selected: presetKey, onSelect: selectPreset }) })), _jsx(SharePanes, { options: optionsPane, preview: previewPane, narrow: narrow })] }), _jsx(DialogFooter, { actions: _jsx(ShareLinkBar, { url: url, frame: frame, onCopied: onClose }) })] }));
77
76
  }
78
77
  function initialDraft(search, vocabulary, preset) {
79
78
  const current = parseShareConfig(search, vocabulary);
@@ -1 +1 @@
1
- {"version":3,"file":"ShareDialogContent.js","sourceRoot":"","sources":["../../../src/share/ui/ShareDialogContent.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ShareDialogContent.js","sourceRoot":"","sources":["../../../src/share/ui/ShareDialogContent.tsx"],"names":[],"mappings":"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"}