react-cheminfo 0.74.0 → 0.76.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 (98) hide show
  1. package/lib/download/core/copySvg.d.ts +12 -0
  2. package/lib/download/core/copySvg.d.ts.map +1 -0
  3. package/lib/download/core/copySvg.js +38 -0
  4. package/lib/download/core/copySvg.js.map +1 -0
  5. package/lib/download/core/index.d.ts +1 -0
  6. package/lib/download/core/index.d.ts.map +1 -1
  7. package/lib/download/core/index.js +1 -0
  8. package/lib/download/core/index.js.map +1 -1
  9. package/lib/ecosystem/core/sites.d.ts.map +1 -1
  10. package/lib/ecosystem/core/sites.js +26 -0
  11. package/lib/ecosystem/core/sites.js.map +1 -1
  12. package/lib/ecosystem/core/types.d.ts +1 -1
  13. package/lib/ecosystem/core/types.d.ts.map +1 -1
  14. package/lib/ecosystem/ui/glyphs.d.ts.map +1 -1
  15. package/lib/ecosystem/ui/glyphs.js +7 -0
  16. package/lib/ecosystem/ui/glyphs.js.map +1 -1
  17. package/lib/formula/core/elementRanges.d.ts +25 -0
  18. package/lib/formula/core/elementRanges.d.ts.map +1 -0
  19. package/lib/formula/core/elementRanges.js +35 -0
  20. package/lib/formula/core/elementRanges.js.map +1 -0
  21. package/lib/formula/core/formulaCandidates.d.ts +59 -0
  22. package/lib/formula/core/formulaCandidates.d.ts.map +1 -0
  23. package/lib/formula/core/formulaCandidates.js +50 -0
  24. package/lib/formula/core/formulaCandidates.js.map +1 -0
  25. package/lib/formula/core/index.d.ts +4 -0
  26. package/lib/formula/core/index.d.ts.map +1 -1
  27. package/lib/formula/core/index.js +2 -0
  28. package/lib/formula/core/index.js.map +1 -1
  29. package/lib/formula/ui/ElementRangeFields.d.ts +19 -0
  30. package/lib/formula/ui/ElementRangeFields.d.ts.map +1 -0
  31. package/lib/formula/ui/ElementRangeFields.js +23 -0
  32. package/lib/formula/ui/ElementRangeFields.js.map +1 -0
  33. package/lib/formula/ui/FormulaLookup.d.ts +47 -0
  34. package/lib/formula/ui/FormulaLookup.d.ts.map +1 -0
  35. package/lib/formula/ui/FormulaLookup.js +74 -0
  36. package/lib/formula/ui/FormulaLookup.js.map +1 -0
  37. package/lib/formula/ui/FormulaLookupResults.d.ts +20 -0
  38. package/lib/formula/ui/FormulaLookupResults.d.ts.map +1 -0
  39. package/lib/formula/ui/FormulaLookupResults.js +45 -0
  40. package/lib/formula/ui/FormulaLookupResults.js.map +1 -0
  41. package/lib/formula/ui/index.d.ts +2 -0
  42. package/lib/formula/ui/index.d.ts.map +1 -1
  43. package/lib/formula/ui/index.js +1 -0
  44. package/lib/formula/ui/index.js.map +1 -1
  45. package/lib/i18n/core/chromeCatalog.d.ts +1 -1
  46. package/lib/i18n/core/chromeCatalog.d.ts.map +1 -1
  47. package/lib/ir/core/bandAssignments.d.ts.map +1 -1
  48. package/lib/ir/core/bandAssignments.js +27 -0
  49. package/lib/ir/core/bandAssignments.js.map +1 -1
  50. package/lib/ir/ui/BandRow.d.ts +4 -4
  51. package/lib/ir/ui/BandRow.d.ts.map +1 -1
  52. package/lib/ir/ui/BandRow.js +41 -14
  53. package/lib/ir/ui/BandRow.js.map +1 -1
  54. package/lib/locales/de.json +18 -0
  55. package/lib/locales/en.json +18 -0
  56. package/lib/locales/es.json +18 -0
  57. package/lib/locales/fr.json +18 -0
  58. package/lib/locales/it.json +18 -0
  59. package/lib/structure/ui/CardStructure.d.ts +43 -0
  60. package/lib/structure/ui/CardStructure.d.ts.map +1 -0
  61. package/lib/structure/ui/CardStructure.js +28 -0
  62. package/lib/structure/ui/CardStructure.js.map +1 -0
  63. package/lib/structure/ui/StructurePicturePane.d.ts +1 -1
  64. package/lib/structure/ui/StructurePicturePane.d.ts.map +1 -1
  65. package/lib/structure/ui/StructurePicturePane.js +5 -2
  66. package/lib/structure/ui/StructurePicturePane.js.map +1 -1
  67. package/lib/structure/ui/index.d.ts +2 -0
  68. package/lib/structure/ui/index.d.ts.map +1 -1
  69. package/lib/structure/ui/index.js +1 -0
  70. package/lib/structure/ui/index.js.map +1 -1
  71. package/lib/structure/ui/useToolbarFloor.d.ts.map +1 -1
  72. package/lib/structure/ui/useToolbarFloor.js +20 -10
  73. package/lib/structure/ui/useToolbarFloor.js.map +1 -1
  74. package/package.json +4 -3
  75. package/src/download/core/copySvg.ts +40 -0
  76. package/src/download/core/index.ts +1 -0
  77. package/src/ecosystem/core/sites.ts +26 -0
  78. package/src/ecosystem/core/types.ts +3 -1
  79. package/src/ecosystem/ui/glyphs.tsx +46 -0
  80. package/src/formula/core/elementRanges.ts +44 -0
  81. package/src/formula/core/formulaCandidates.ts +109 -0
  82. package/src/formula/core/index.ts +15 -0
  83. package/src/formula/ui/ElementRangeFields.tsx +65 -0
  84. package/src/formula/ui/FormulaLookup.tsx +184 -0
  85. package/src/formula/ui/FormulaLookupResults.tsx +89 -0
  86. package/src/formula/ui/index.ts +2 -0
  87. package/src/ir/core/bandAssignments.ts +27 -0
  88. package/src/ir/ui/BandRow.tsx +84 -26
  89. package/src/locales/de.json +18 -0
  90. package/src/locales/en.json +18 -0
  91. package/src/locales/es.json +18 -0
  92. package/src/locales/fr.json +18 -0
  93. package/src/locales/it.json +18 -0
  94. package/src/structure/ui/CardStructure.tsx +76 -0
  95. package/src/structure/ui/StructurePicturePane.tsx +14 -1
  96. package/src/structure/ui/index.ts +2 -0
  97. package/src/structure/ui/useToolbarFloor.ts +19 -9
  98. package/styles/chrome.css +136 -3
package/styles/chrome.css CHANGED
@@ -850,9 +850,9 @@ a.source-badge:hover {
850
850
  gap: 8px;
851
851
  }
852
852
 
853
- /* Two columns, so the three buttons are one size: a row of buttons whose
854
- widths are set by the length of their labels reads as three unrelated
855
- controls. */
853
+ /* Two columns, so the buttons are one size — the saves over the copies, SVG
854
+ over SVG: a row of buttons whose widths are set by the length of their
855
+ labels reads as unrelated controls. */
856
856
  .structure-export__actions {
857
857
  display: grid;
858
858
  margin-top: 2px;
@@ -1760,6 +1760,139 @@ span.taxon-lineage__name {
1760
1760
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
1761
1761
  }
1762
1762
 
1763
+ /* ── A formula lookup ────────────────────────────────────────────────────── */
1764
+
1765
+ /* Only the panel's own look: where it sits — a column beside a question, a
1766
+ sticky rail, a shadow — is the page's, through the class it passes. */
1767
+ .formula-lookup {
1768
+ display: flex;
1769
+ flex-direction: column;
1770
+ border: 1px solid var(--border);
1771
+ background: var(--surface);
1772
+ }
1773
+
1774
+ .formula-lookup__header {
1775
+ display: flex;
1776
+ align-items: center;
1777
+ padding: 0.25rem 0.5rem 0.25rem 0.75rem;
1778
+ border-bottom: 1px solid var(--border);
1779
+ color: var(--text-muted);
1780
+ font-size: 0.8rem;
1781
+ font-weight: 700;
1782
+ gap: 0.25rem;
1783
+ letter-spacing: 0.04em;
1784
+ text-transform: uppercase;
1785
+ }
1786
+
1787
+ .formula-lookup__header > .bp6-button {
1788
+ margin-left: auto;
1789
+ }
1790
+
1791
+ .formula-lookup__body {
1792
+ display: flex;
1793
+ flex-direction: column;
1794
+ padding: 0.75rem;
1795
+ gap: 0.5rem;
1796
+ }
1797
+
1798
+ .formula-lookup__field {
1799
+ display: flex;
1800
+ flex-direction: column;
1801
+ color: var(--text-muted);
1802
+ font-size: 0.8rem;
1803
+ font-weight: 600;
1804
+ gap: 2px;
1805
+ }
1806
+
1807
+ .formula-lookup__hint {
1808
+ color: var(--text-muted);
1809
+ font-size: 0.75rem;
1810
+ line-height: 1.4;
1811
+ }
1812
+
1813
+ /* Two elements to a line: each box holds two or three digits. */
1814
+ .formula-lookup__ranges {
1815
+ display: grid;
1816
+ margin-top: 0.25rem;
1817
+ gap: 0.25rem 0.5rem;
1818
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1819
+ }
1820
+
1821
+ .formula-lookup__range {
1822
+ display: flex;
1823
+ min-width: 0;
1824
+ align-items: center;
1825
+ gap: 3px;
1826
+ }
1827
+
1828
+ .formula-lookup__range .bp6-input-group {
1829
+ min-width: 0;
1830
+ flex: 1 1 0;
1831
+ }
1832
+
1833
+ .formula-lookup__range .bp6-input {
1834
+ padding-right: 4px;
1835
+ padding-left: 4px;
1836
+ text-align: center;
1837
+ }
1838
+
1839
+ .formula-lookup__element {
1840
+ width: 1.3rem;
1841
+ font-variant-numeric: tabular-nums;
1842
+ font-weight: 700;
1843
+ }
1844
+
1845
+ .formula-lookup__dash {
1846
+ color: var(--text-muted);
1847
+ font-size: 0.75rem;
1848
+ }
1849
+
1850
+ .formula-lookup__results {
1851
+ display: flex;
1852
+ flex-direction: column;
1853
+ padding: 0.75rem;
1854
+ border-top: 1px solid var(--border);
1855
+ gap: 0.25rem;
1856
+ }
1857
+
1858
+ /* A search still to come leaves the band empty rather than collapsing it. */
1859
+ .formula-lookup__results:empty {
1860
+ min-height: 2.5rem;
1861
+ }
1862
+
1863
+ .formula-lookup__count {
1864
+ color: var(--text-muted);
1865
+ font-size: 0.75rem;
1866
+ font-weight: 600;
1867
+ }
1868
+
1869
+ .formula-lookup__list {
1870
+ display: flex;
1871
+ overflow-y: auto;
1872
+ max-height: 40vh;
1873
+ flex-direction: column;
1874
+ padding: 0;
1875
+ margin: 0;
1876
+ list-style: none;
1877
+ }
1878
+
1879
+ /* A formula is never split across two lines. */
1880
+ .formula-lookup__list li {
1881
+ display: flex;
1882
+ align-items: baseline;
1883
+ justify-content: space-between;
1884
+ padding: 2px 0;
1885
+ font-size: 0.85rem;
1886
+ gap: 0.5rem;
1887
+ white-space: nowrap;
1888
+ }
1889
+
1890
+ .formula-lookup__ppm {
1891
+ color: var(--text-muted);
1892
+ font-size: 0.72rem;
1893
+ font-variant-numeric: tabular-nums;
1894
+ }
1895
+
1763
1896
  /* ── A list of exercises ─────────────────────────────────────────────────── */
1764
1897
 
1765
1898
  .exercise-list {