react-cheminfo 0.6.0 → 0.7.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 (79) hide show
  1. package/README.md +16 -0
  2. package/lib/citation/core/index.d.ts +1 -0
  3. package/lib/citation/core/index.d.ts.map +1 -1
  4. package/lib/citation/core/index.js +1 -0
  5. package/lib/citation/core/index.js.map +1 -1
  6. package/lib/citation/core/platformPaper.d.ts +14 -0
  7. package/lib/citation/core/platformPaper.d.ts.map +1 -0
  8. package/lib/citation/core/platformPaper.js +28 -0
  9. package/lib/citation/core/platformPaper.js.map +1 -0
  10. package/lib/color/core/index.d.ts +1 -1
  11. package/lib/color/core/index.d.ts.map +1 -1
  12. package/lib/color/core/index.js +1 -1
  13. package/lib/color/core/index.js.map +1 -1
  14. package/lib/core.d.ts +1 -0
  15. package/lib/core.d.ts.map +1 -1
  16. package/lib/core.js +1 -0
  17. package/lib/core.js.map +1 -1
  18. package/lib/ecosystem/core/sites.js +5 -5
  19. package/lib/orbital/core/index.d.ts +1 -1
  20. package/lib/orbital/core/index.d.ts.map +1 -1
  21. package/lib/orbital/core/index.js +1 -1
  22. package/lib/orbital/core/index.js.map +1 -1
  23. package/lib/periodic/core/categories.d.ts +25 -0
  24. package/lib/periodic/core/categories.d.ts.map +1 -0
  25. package/lib/periodic/core/categories.js +70 -0
  26. package/lib/periodic/core/categories.js.map +1 -0
  27. package/lib/periodic/core/elements.d.ts +49 -0
  28. package/lib/periodic/core/elements.d.ts.map +1 -0
  29. package/lib/periodic/core/elements.js +175 -0
  30. package/lib/periodic/core/elements.js.map +1 -0
  31. package/lib/periodic/core/index.d.ts +6 -0
  32. package/lib/periodic/core/index.d.ts.map +1 -0
  33. package/lib/periodic/core/index.js +4 -0
  34. package/lib/periodic/core/index.js.map +1 -0
  35. package/lib/periodic/core/layout.d.ts +73 -0
  36. package/lib/periodic/core/layout.d.ts.map +1 -0
  37. package/lib/periodic/core/layout.js +132 -0
  38. package/lib/periodic/core/layout.js.map +1 -0
  39. package/lib/periodic/ui/CategoryLegend.d.ts +26 -0
  40. package/lib/periodic/ui/CategoryLegend.d.ts.map +1 -0
  41. package/lib/periodic/ui/CategoryLegend.js +53 -0
  42. package/lib/periodic/ui/CategoryLegend.js.map +1 -0
  43. package/lib/periodic/ui/ElementCell.d.ts +53 -0
  44. package/lib/periodic/ui/ElementCell.d.ts.map +1 -0
  45. package/lib/periodic/ui/ElementCell.js +56 -0
  46. package/lib/periodic/ui/ElementCell.js.map +1 -0
  47. package/lib/periodic/ui/PeriodicTable.d.ts +90 -0
  48. package/lib/periodic/ui/PeriodicTable.d.ts.map +1 -0
  49. package/lib/periodic/ui/PeriodicTable.js +77 -0
  50. package/lib/periodic/ui/PeriodicTable.js.map +1 -0
  51. package/lib/periodic/ui/PeriodicTableChrome.d.ts +36 -0
  52. package/lib/periodic/ui/PeriodicTableChrome.d.ts.map +1 -0
  53. package/lib/periodic/ui/PeriodicTableChrome.js +72 -0
  54. package/lib/periodic/ui/PeriodicTableChrome.js.map +1 -0
  55. package/lib/periodic/ui/index.d.ts +7 -0
  56. package/lib/periodic/ui/index.d.ts.map +1 -0
  57. package/lib/periodic/ui/index.js +4 -0
  58. package/lib/periodic/ui/index.js.map +1 -0
  59. package/lib/ui.d.ts +1 -0
  60. package/lib/ui.d.ts.map +1 -1
  61. package/lib/ui.js +1 -0
  62. package/lib/ui.js.map +1 -1
  63. package/package.json +2 -1
  64. package/src/citation/core/index.ts +1 -0
  65. package/src/citation/core/platformPaper.ts +32 -0
  66. package/src/color/core/index.ts +6 -1
  67. package/src/core.ts +1 -0
  68. package/src/ecosystem/core/sites.ts +5 -5
  69. package/src/orbital/core/index.ts +1 -1
  70. package/src/periodic/core/categories.ts +83 -0
  71. package/src/periodic/core/elements.ts +217 -0
  72. package/src/periodic/core/index.ts +27 -0
  73. package/src/periodic/core/layout.ts +183 -0
  74. package/src/periodic/ui/CategoryLegend.tsx +105 -0
  75. package/src/periodic/ui/ElementCell.tsx +137 -0
  76. package/src/periodic/ui/PeriodicTable.tsx +226 -0
  77. package/src/periodic/ui/PeriodicTableChrome.tsx +170 -0
  78. package/src/periodic/ui/index.ts +6 -0
  79. package/src/ui.ts +1 -0
package/README.md CHANGED
@@ -69,6 +69,7 @@ through a wildcard subpath exactly as `react-science` serves its own.
69
69
  | **Widgets** | `CREDITS`, `credits` | `ErrorBoundary`, `CollapsibleSection`, `CapsuleFilter`, `HelpTooltip`, `CreditsList` |
70
70
  | **Hooks & state** | `createWorkerChannel` | `persistBucket`, `useDebouncedValue`, `useContainerSize`, `useListKeyboardNavigation`, `useDisclosure` |
71
71
  | **Chemistry** | `atomicOrbitalsOf`, `configurationOf`, `classifyMolfile`, `readStructure` | `AtomicOrbitalViewer` (`/orbital`), `StructureEditor`, `Structure` (`/structure`) |
72
+ | **Periodic table** | `PERIODIC_ELEMENTS`, `elementBySymbol`, `elementByAtomicNumber`, `cellOf`, `placedElements`, `elementByArrowKey`, `categorySwatch`, `CATEGORY_LABELS` | `PeriodicTable`, `ElementCell`, `CategoryLegend` |
72
73
 
73
74
  Everything in that table is exported from `./core`, `./ui`, `./vite` or
74
75
  `./structure` and nothing else is: the sub-components a component is built
@@ -162,6 +163,21 @@ sections below carry the whole set at once, so one copy pastes both citations an
162
163
  one saved file holds both records (`references.ris`). Nothing changes for a site
163
164
  asking for a single work.
164
165
 
166
+ The two works the whole family shares are held here rather than copied into each
167
+ site, so none of them can name a different version of the same paper — import
168
+ them from `react-cheminfo/core` and put the site's own work first:
169
+
170
+ | Export | The work |
171
+ | ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
172
+ | `PLATFORM_PAPER` / `PLATFORM_WORK` | Chemical data processed in the browser, which is what makes these applications rather than queues of jobs. Every site. |
173
+ | `TEACHING_PAPER` / `TEACHING_WORK` | Two decades of online teaching, which is what the tutorials and the exercises are. The sites that teach. |
174
+
175
+ ```tsx
176
+ import { PLATFORM_WORK, TEACHING_WORK } from 'react-cheminfo/core';
177
+
178
+ <CiteButton works={[OWN_WORK, TEACHING_WORK, PLATFORM_WORK]} />;
179
+ ```
180
+
165
181
  ### `EcosystemButton`
166
182
 
167
183
  The Tools entry of a site header: one button opening every other site of the
@@ -2,6 +2,7 @@ export { copyCitation, copyCitations } from './clipboard.ts';
2
2
  export { downloadCitation, downloadCitations } from './download.ts';
3
3
  export type { CitationDownload, CitationFormat, CitationFormatId, } from './formats.ts';
4
4
  export { CITATION_DOWNLOADS, CITATION_FORMATS, DEFAULT_CITATION_STYLE, citationFilename, formatCitation, } from './formats.ts';
5
+ export { PLATFORM_PAPER, PLATFORM_WORK } from './platformPaper.ts';
5
6
  export type { Reference, ReferenceAuthor } from './reference.ts';
6
7
  export { doiUrl } from './reference.ts';
7
8
  export type { CitationSegment, CitationStyle, CitationStyleId, } from './segments.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/citation/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACpE,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,YAAY,EACV,eAAe,EACf,aAAa,EACb,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAClE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,eAAe,GAChB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/citation/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACpE,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,YAAY,EACV,eAAe,EACf,aAAa,EACb,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAClE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,eAAe,GAChB,MAAM,YAAY,CAAC"}
@@ -1,6 +1,7 @@
1
1
  export { copyCitation, copyCitations } from "./clipboard.js";
2
2
  export { downloadCitation, downloadCitations } from "./download.js";
3
3
  export { CITATION_DOWNLOADS, CITATION_FORMATS, DEFAULT_CITATION_STYLE, citationFilename, formatCitation, } from "./formats.js";
4
+ export { PLATFORM_PAPER, PLATFORM_WORK } from "./platformPaper.js";
4
5
  export { doiUrl } from "./reference.js";
5
6
  export { CITATION_STYLES, citationSegments } from "./segments.js";
6
7
  export { citationsFilename, citedReferences, formatCitations, } from "./works.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/citation/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAMpE,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,GACf,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAMxC,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAElE,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,eAAe,GAChB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/citation/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAMpE,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnE,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAMxC,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAElE,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,eAAe,GAChB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { Reference } from './reference.ts';
2
+ import type { CitedWork } from './works.ts';
3
+ /**
4
+ * The platform every site of the family runs on: chemical data processed in the
5
+ * browser, which is what makes these applications rather than queues of jobs.
6
+ * One record holds it, so no site can name a different version of it.
7
+ */
8
+ export declare const PLATFORM_PAPER: Reference;
9
+ /**
10
+ * The platform paper as the second work a site asks to be cited, after the work
11
+ * the tool itself implements.
12
+ */
13
+ export declare const PLATFORM_WORK: CitedWork;
14
+ //# sourceMappingURL=platformPaper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platformPaper.d.ts","sourceRoot":"","sources":["../../../src/citation/core/platformPaper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,SAa5B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,SAI3B,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * The platform every site of the family runs on: chemical data processed in the
3
+ * browser, which is what makes these applications rather than queues of jobs.
4
+ * One record holds it, so no site can name a different version of it.
5
+ */
6
+ export const PLATFORM_PAPER = {
7
+ authors: [{ given: 'L.', family: 'Patiny' }],
8
+ title: 'Unlocking the Potential of Browser-Based Scientific Data Analysis: A 20-Year Journey of Expertise',
9
+ journal: 'CHIMIA',
10
+ journalAbbreviation: 'Chimia',
11
+ year: 2025,
12
+ volume: '79',
13
+ issue: '1-2',
14
+ firstPage: '66',
15
+ lastPage: '69',
16
+ doi: '10.2533/chimia.2025.66',
17
+ publisher: 'Swiss Chemical Society',
18
+ };
19
+ /**
20
+ * The platform paper as the second work a site asks to be cited, after the work
21
+ * the tool itself implements.
22
+ */
23
+ export const PLATFORM_WORK = {
24
+ reference: PLATFORM_PAPER,
25
+ what: 'Data processing in the browser',
26
+ note: 'Cite it for the site itself, which runs in the browser.',
27
+ };
28
+ //# sourceMappingURL=platformPaper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platformPaper.js","sourceRoot":"","sources":["../../../src/citation/core/platformPaper.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAc;IACvC,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC5C,KAAK,EACH,mGAAmG;IACrG,OAAO,EAAE,QAAQ;IACjB,mBAAmB,EAAE,QAAQ;IAC7B,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,KAAK;IACZ,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,IAAI;IACd,GAAG,EAAE,wBAAwB;IAC7B,SAAS,EAAE,wBAAwB;CACpC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAc;IACtC,SAAS,EAAE,cAAc;IACzB,IAAI,EAAE,gCAAgC;IACtC,IAAI,EAAE,yDAAyD;CAChE,CAAC"}
@@ -1,5 +1,5 @@
1
1
  export type { ReadableInkOptions } from './contrast.ts';
2
2
  export { contrastRatio, readableInk, relativeLuminance } from './contrast.ts';
3
3
  export type { PositionInRangeOptions, Swatch } from './scale.ts';
4
- export { VIRIDIS_SCALE, positionInRange, swatchFromScale } from './scale.ts';
4
+ export { VIRIDIS_SCALE, colorFromScale, positionInRange, swatchFromScale, } from './scale.ts';
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/color/core/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC9E,YAAY,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/color/core/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC9E,YAAY,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EACL,aAAa,EACb,cAAc,EACd,eAAe,EACf,eAAe,GAChB,MAAM,YAAY,CAAC"}
@@ -1,3 +1,3 @@
1
1
  export { contrastRatio, readableInk, relativeLuminance } from "./contrast.js";
2
- export { VIRIDIS_SCALE, positionInRange, swatchFromScale } from "./scale.js";
2
+ export { VIRIDIS_SCALE, colorFromScale, positionInRange, swatchFromScale, } from "./scale.js";
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/color/core/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAE9E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/color/core/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAE9E,OAAO,EACL,aAAa,EACb,cAAc,EACd,eAAe,EACf,eAAe,GAChB,MAAM,YAAY,CAAC"}
package/lib/core.d.ts CHANGED
@@ -8,6 +8,7 @@ export * from './ecosystem/core/index.ts';
8
8
  export * from './format/core/index.ts';
9
9
  export * from './orbital/core/index.ts';
10
10
  export * from './pedagogy/core/index.ts';
11
+ export * from './periodic/core/index.ts';
11
12
  export * from './router/core/index.ts';
12
13
  export * from './seo/core/index.ts';
13
14
  export * from './share/core/index.ts';
package/lib/core.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC"}
package/lib/core.js CHANGED
@@ -8,6 +8,7 @@ export * from "./ecosystem/core/index.js";
8
8
  export * from "./format/core/index.js";
9
9
  export * from "./orbital/core/index.js";
10
10
  export * from "./pedagogy/core/index.js";
11
+ export * from "./periodic/core/index.js";
11
12
  export * from "./router/core/index.js";
12
13
  export * from "./seo/core/index.js";
13
14
  export * from "./share/core/index.js";
package/lib/core.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC"}
@@ -40,8 +40,8 @@ export const ECOSYSTEM_SITES = [
40
40
  repository: 'https://github.com/cheminfo/chemcalc.org',
41
41
  tagline: 'Molecular formula, exact mass and isotopic distribution.',
42
42
  brand: '#5b52e0',
43
- brandAlt: '#0d9488',
44
- mark: { plate: '#5b52e0', accent: '#09d3ac' },
43
+ brandAlt: '#d63384',
44
+ mark: { plate: '#5b52e0', accent: '#ff8ac2' },
45
45
  },
46
46
  {
47
47
  id: 'nmrium',
@@ -139,9 +139,9 @@ export const ECOSYSTEM_SITES = [
139
139
  host: 'polycarp.cheminfo.org',
140
140
  repository: 'https://github.com/cheminfo/polycarp.cheminfo.org',
141
141
  tagline: 'Predict the microstructure of a radical copolymerisation.',
142
- brand: '#0d1d37',
143
- brandAlt: '#0c9ba3',
144
- mark: { plate: '#0d1d37', accent: '#0c9ba3' },
142
+ brand: '#701a75',
143
+ brandAlt: '#4d7c0f',
144
+ mark: { plate: '#701a75', accent: '#a3e635' },
145
145
  },
146
146
  {
147
147
  id: '3d',
@@ -20,5 +20,5 @@ export { REAL_HARMONICS, SUBSHELL_LETTERS, harmonicsOf, subshellLetter, } from '
20
20
  export type { AtomicSampleRequest, AtomicSampleResult, AtomicSampler, } from './sample.ts';
21
21
  export { runAtomicSample } from './sample.ts';
22
22
  export type { Screening } from './screening.ts';
23
- export { slaterScreening } from './screening.ts';
23
+ export { groupRank, slaterScreening } from './screening.ts';
24
24
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/orbital/core/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACzE,YAAY,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,EACd,WAAW,EACX,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,aAAa,GACd,MAAM,4BAA4B,CAAC;AACpC,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACpD,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAChF,YAAY,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,UAAU,EACV,aAAa,EACb,eAAe,EACf,eAAe,EACf,eAAe,EACf,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACxE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/orbital/core/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACzE,YAAY,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,EACd,WAAW,EACX,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,aAAa,GACd,MAAM,4BAA4B,CAAC;AACpC,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACpD,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAChF,YAAY,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,UAAU,EACV,aAAa,EACb,eAAe,EACf,eAAe,EACf,eAAe,EACf,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACxE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC"}
@@ -9,5 +9,5 @@ export { hundDistribution, outermostShell, withoutOutermostElectron, } from "./o
9
9
  export { DEFAULT_PHASE_PALETTE_ID, PHASE_PALETTES } from "./palette.js";
10
10
  export { REAL_HARMONICS, SUBSHELL_LETTERS, harmonicsOf, subshellLetter, } from "./realHarmonics.js";
11
11
  export { runAtomicSample } from "./sample.js";
12
- export { slaterScreening } from "./screening.js";
12
+ export { groupRank, slaterScreening } from "./screening.js";
13
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/orbital/core/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAEzE,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,EACd,WAAW,EACX,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,aAAa,GACd,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEhF,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,UAAU,EACV,aAAa,EACb,eAAe,EACf,eAAe,EACf,eAAe,EACf,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAExE,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,cAAc,GACf,MAAM,oBAAoB,CAAC;AAM5B,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/orbital/core/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAEzE,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,EACd,WAAW,EACX,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,aAAa,GACd,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEhF,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,UAAU,EACV,aAAa,EACb,eAAe,EACf,eAAe,EACf,eAAe,EACf,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAExE,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,cAAc,GACf,MAAM,oBAAoB,CAAC;AAM5B,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * What each family is called, and the colour it takes.
3
+ *
4
+ * Ten hues that stay distinguishable under deuteranopia and protanopia, and
5
+ * that keep the metals warm and the non-metals cool the way a wall chart does.
6
+ * Each is paired at load with the ink that stays readable on it, so a cell
7
+ * never has to compute a contrast while it renders.
8
+ */
9
+ import type { Swatch } from '../../color/core/scale.ts';
10
+ import type { ElementCategory } from './elements.ts';
11
+ /** Families in the order a legend lists them, which is the order of the table. */
12
+ export declare const CATEGORY_ORDER: readonly ElementCategory[];
13
+ /** What each family is called in a legend. */
14
+ export declare const CATEGORY_LABELS: Record<ElementCategory, string>;
15
+ /** The colour of each family, with the ink that stays readable on it. */
16
+ export declare const CATEGORY_SWATCHES: Record<ElementCategory, Swatch>;
17
+ /** Shown for a cell whose family is unknown. */
18
+ export declare const UNKNOWN_SWATCH: Swatch;
19
+ /**
20
+ * The swatch of one family.
21
+ * @param category - Family to look up.
22
+ * @returns Its colour and the ink to write on it.
23
+ */
24
+ export declare function categorySwatch(category: ElementCategory): Swatch;
25
+ //# sourceMappingURL=categories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"categories.d.ts","sourceRoot":"","sources":["../../../src/periodic/core/categories.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAExD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD,kFAAkF;AAClF,eAAO,MAAM,cAAc,EAAE,SAAS,eAAe,EAWpD,CAAC;AAEF,8CAA8C;AAC9C,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAW3D,CAAC;AAeF,yEAAyE;AACzE,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CASxB,CAAC;AAIvC,gDAAgD;AAChD,eAAO,MAAM,cAAc,EAAE,MAG5B,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,CAEhE"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * What each family is called, and the colour it takes.
3
+ *
4
+ * Ten hues that stay distinguishable under deuteranopia and protanopia, and
5
+ * that keep the metals warm and the non-metals cool the way a wall chart does.
6
+ * Each is paired at load with the ink that stays readable on it, so a cell
7
+ * never has to compute a contrast while it renders.
8
+ */
9
+ import { readableInk } from "../../color/core/contrast.js";
10
+ /** Families in the order a legend lists them, which is the order of the table. */
11
+ export const CATEGORY_ORDER = [
12
+ 'alkali-metal',
13
+ 'alkaline-earth-metal',
14
+ 'transition-metal',
15
+ 'post-transition-metal',
16
+ 'metalloid',
17
+ 'nonmetal',
18
+ 'halogen',
19
+ 'noble-gas',
20
+ 'lanthanoid',
21
+ 'actinoid',
22
+ ];
23
+ /** What each family is called in a legend. */
24
+ export const CATEGORY_LABELS = {
25
+ 'alkali-metal': 'Alkali metal',
26
+ 'alkaline-earth-metal': 'Alkaline earth',
27
+ 'transition-metal': 'Transition metal',
28
+ 'post-transition-metal': 'Post-transition',
29
+ metalloid: 'Metalloid',
30
+ nonmetal: 'Non-metal',
31
+ halogen: 'Halogen',
32
+ 'noble-gas': 'Noble gas',
33
+ lanthanoid: 'Lanthanoid',
34
+ actinoid: 'Actinoid',
35
+ };
36
+ const CATEGORY_BACKGROUNDS = {
37
+ 'alkali-metal': '#f4a58a',
38
+ 'alkaline-earth-metal': '#f6c98a',
39
+ 'transition-metal': '#e8b7d4',
40
+ 'post-transition-metal': '#c8c3ea',
41
+ metalloid: '#c9d67c',
42
+ nonmetal: '#7fd4a8',
43
+ halogen: '#8fd9d2',
44
+ 'noble-gas': '#9ec9f0',
45
+ lanthanoid: '#f2d06b',
46
+ actinoid: '#e5a3a3',
47
+ };
48
+ /** The colour of each family, with the ink that stays readable on it. */
49
+ export const CATEGORY_SWATCHES = Object.fromEntries(CATEGORY_ORDER.map((category) => [
50
+ category,
51
+ {
52
+ background: CATEGORY_BACKGROUNDS[category],
53
+ foreground: readableInk(CATEGORY_BACKGROUNDS[category]),
54
+ },
55
+ ]));
56
+ const UNKNOWN_BACKGROUND = '#e4e8ee';
57
+ /** Shown for a cell whose family is unknown. */
58
+ export const UNKNOWN_SWATCH = {
59
+ background: UNKNOWN_BACKGROUND,
60
+ foreground: readableInk(UNKNOWN_BACKGROUND),
61
+ };
62
+ /**
63
+ * The swatch of one family.
64
+ * @param category - Family to look up.
65
+ * @returns Its colour and the ink to write on it.
66
+ */
67
+ export function categorySwatch(category) {
68
+ return CATEGORY_SWATCHES[category] ?? UNKNOWN_SWATCH;
69
+ }
70
+ //# sourceMappingURL=categories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"categories.js","sourceRoot":"","sources":["../../../src/periodic/core/categories.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAK3D,kFAAkF;AAClF,MAAM,CAAC,MAAM,cAAc,GAA+B;IACxD,cAAc;IACd,sBAAsB;IACtB,kBAAkB;IAClB,uBAAuB;IACvB,WAAW;IACX,UAAU;IACV,SAAS;IACT,WAAW;IACX,YAAY;IACZ,UAAU;CACX,CAAC;AAEF,8CAA8C;AAC9C,MAAM,CAAC,MAAM,eAAe,GAAoC;IAC9D,cAAc,EAAE,cAAc;IAC9B,sBAAsB,EAAE,gBAAgB;IACxC,kBAAkB,EAAE,kBAAkB;IACtC,uBAAuB,EAAE,iBAAiB;IAC1C,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,WAAW;IACrB,OAAO,EAAE,SAAS;IAClB,WAAW,EAAE,WAAW;IACxB,UAAU,EAAE,YAAY;IACxB,QAAQ,EAAE,UAAU;CACrB,CAAC;AAEF,MAAM,oBAAoB,GAAoC;IAC5D,cAAc,EAAE,SAAS;IACzB,sBAAsB,EAAE,SAAS;IACjC,kBAAkB,EAAE,SAAS;IAC7B,uBAAuB,EAAE,SAAS;IAClC,SAAS,EAAE,SAAS;IACpB,QAAQ,EAAE,SAAS;IACnB,OAAO,EAAE,SAAS;IAClB,WAAW,EAAE,SAAS;IACtB,UAAU,EAAE,SAAS;IACrB,QAAQ,EAAE,SAAS;CACpB,CAAC;AAEF,yEAAyE;AACzE,MAAM,CAAC,MAAM,iBAAiB,GAC5B,MAAM,CAAC,WAAW,CAChB,cAAc,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC;IAC/B,QAAQ;IACR;QACE,UAAU,EAAE,oBAAoB,CAAC,QAAQ,CAAC;QAC1C,UAAU,EAAE,WAAW,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;KACxD;CACF,CAAC,CACgC,CAAC;AAEvC,MAAM,kBAAkB,GAAG,SAAS,CAAC;AAErC,gDAAgD;AAChD,MAAM,CAAC,MAAM,cAAc,GAAW;IACpC,UAAU,EAAE,kBAAkB;IAC9B,UAAU,EAAE,WAAW,CAAC,kBAAkB,CAAC;CAC5C,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,QAAyB;IACtD,OAAO,iBAAiB,CAAC,QAAQ,CAAC,IAAI,cAAc,CAAC;AACvD,CAAC"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Where every element sits in the table, and which family it belongs to.
3
+ *
4
+ * Deliberately the *position* and nothing else: the masses, the isotopes and
5
+ * the exact monoisotopic masses are `chemical-elements`' subject, and a site
6
+ * that needs them reads them from there. Importing that package pulls its whole
7
+ * isotope table, which a site wanting only an element picker must not be made
8
+ * to carry — so the symbols and names are repeated here, and a test asserts
9
+ * they still agree with it.
10
+ *
11
+ * `block` follows the element's *position* in the table, which is what a
12
+ * student reads off it. The configuration is the authority on which subshell is
13
+ * actually filling, and the two disagree for a handful of elements — lanthanum
14
+ * fills 5d, not 4f. See `ELEMENT_ANOMALIES` in the orbital module.
15
+ */
16
+ /** Region of the table an element sits in. */
17
+ export type ElementBlock = 's' | 'p' | 'd' | 'f';
18
+ /** Coarse family, used to colour the table. */
19
+ export type ElementCategory = 'alkali-metal' | 'alkaline-earth-metal' | 'transition-metal' | 'post-transition-metal' | 'metalloid' | 'nonmetal' | 'halogen' | 'noble-gas' | 'lanthanoid' | 'actinoid';
20
+ /** One element, as the table places it. */
21
+ export interface PeriodicElement {
22
+ /** Proton count, 1 to 118. */
23
+ atomicNumber: number;
24
+ /** Chemical symbol, e.g. `Fe`. */
25
+ symbol: string;
26
+ /** English name, spelled as `chemical-elements` spells it. */
27
+ name: string;
28
+ /** Row of the table, 1 to 7. */
29
+ period: number;
30
+ /** IUPAC column 1 to 18; `null` for the lanthanoids and the actinoids. */
31
+ group: number | null;
32
+ block: ElementBlock;
33
+ category: ElementCategory;
34
+ }
35
+ /** Every element, ordered by atomic number. */
36
+ export declare const PERIODIC_ELEMENTS: readonly PeriodicElement[];
37
+ /**
38
+ * Look up an element by its symbol.
39
+ * @param symbol - Chemical symbol, e.g. `Cl`. Case sensitive, as symbols are.
40
+ * @returns The element, or `undefined` when no element carries that symbol.
41
+ */
42
+ export declare function elementBySymbol(symbol: string): PeriodicElement | undefined;
43
+ /**
44
+ * Look up an element by its atomic number.
45
+ * @param atomicNumber - Proton count, 1 to 118.
46
+ * @returns The element, or `undefined` when it is outside the table.
47
+ */
48
+ export declare function elementByAtomicNumber(atomicNumber: number): PeriodicElement | undefined;
49
+ //# sourceMappingURL=elements.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elements.d.ts","sourceRoot":"","sources":["../../../src/periodic/core/elements.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,8CAA8C;AAC9C,MAAM,MAAM,YAAY,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAEjD,+CAA+C;AAC/C,MAAM,MAAM,eAAe,GACvB,cAAc,GACd,sBAAsB,GACtB,kBAAkB,GAClB,uBAAuB,GACvB,WAAW,GACX,UAAU,GACV,SAAS,GACT,WAAW,GACX,YAAY,GACZ,UAAU,CAAC;AAEf,2CAA2C;AAC3C,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,kCAAkC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,eAAe,CAAC;CAC3B;AA8HD,+CAA+C;AAC/C,eAAO,MAAM,iBAAiB,EAAE,SAAS,eAAe,EAUvD,CAAC;AAMF;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAE3E;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,MAAM,GACnB,eAAe,GAAG,SAAS,CAE7B"}
@@ -0,0 +1,175 @@
1
+ /**
2
+ * Where every element sits in the table, and which family it belongs to.
3
+ *
4
+ * Deliberately the *position* and nothing else: the masses, the isotopes and
5
+ * the exact monoisotopic masses are `chemical-elements`' subject, and a site
6
+ * that needs them reads them from there. Importing that package pulls its whole
7
+ * isotope table, which a site wanting only an element picker must not be made
8
+ * to carry — so the symbols and names are repeated here, and a test asserts
9
+ * they still agree with it.
10
+ *
11
+ * `block` follows the element's *position* in the table, which is what a
12
+ * student reads off it. The configuration is the authority on which subshell is
13
+ * actually filling, and the two disagree for a handful of elements — lanthanum
14
+ * fills 5d, not 4f. See `ELEMENT_ANOMALIES` in the orbital module.
15
+ */
16
+ const ROWS = [
17
+ ['H', 'Hydrogen', 1, 1, 'nonmetal'],
18
+ ['He', 'Helium', 1, 18, 'noble-gas'],
19
+ ['Li', 'Lithium', 2, 1, 'alkali-metal'],
20
+ ['Be', 'Beryllium', 2, 2, 'alkaline-earth-metal'],
21
+ ['B', 'Boron', 2, 13, 'metalloid'],
22
+ ['C', 'Carbon', 2, 14, 'nonmetal'],
23
+ ['N', 'Nitrogen', 2, 15, 'nonmetal'],
24
+ ['O', 'Oxygen', 2, 16, 'nonmetal'],
25
+ ['F', 'Fluorine', 2, 17, 'halogen'],
26
+ ['Ne', 'Neon', 2, 18, 'noble-gas'],
27
+ ['Na', 'Sodium', 3, 1, 'alkali-metal'],
28
+ ['Mg', 'Magnesium', 3, 2, 'alkaline-earth-metal'],
29
+ ['Al', 'Aluminium', 3, 13, 'post-transition-metal'],
30
+ ['Si', 'Silicon', 3, 14, 'metalloid'],
31
+ ['P', 'Phosphorus', 3, 15, 'nonmetal'],
32
+ ['S', 'Sulfur', 3, 16, 'nonmetal'],
33
+ ['Cl', 'Chlorine', 3, 17, 'halogen'],
34
+ ['Ar', 'Argon', 3, 18, 'noble-gas'],
35
+ ['K', 'Potassium', 4, 1, 'alkali-metal'],
36
+ ['Ca', 'Calcium', 4, 2, 'alkaline-earth-metal'],
37
+ ['Sc', 'Scandium', 4, 3, 'transition-metal'],
38
+ ['Ti', 'Titanium', 4, 4, 'transition-metal'],
39
+ ['V', 'Vanadium', 4, 5, 'transition-metal'],
40
+ ['Cr', 'Chromium', 4, 6, 'transition-metal'],
41
+ ['Mn', 'Manganese', 4, 7, 'transition-metal'],
42
+ ['Fe', 'Iron', 4, 8, 'transition-metal'],
43
+ ['Co', 'Cobalt', 4, 9, 'transition-metal'],
44
+ ['Ni', 'Nickel', 4, 10, 'transition-metal'],
45
+ ['Cu', 'Copper', 4, 11, 'transition-metal'],
46
+ ['Zn', 'Zinc', 4, 12, 'transition-metal'],
47
+ ['Ga', 'Gallium', 4, 13, 'post-transition-metal'],
48
+ ['Ge', 'Germanium', 4, 14, 'metalloid'],
49
+ ['As', 'Arsenic', 4, 15, 'metalloid'],
50
+ ['Se', 'Selenium', 4, 16, 'nonmetal'],
51
+ ['Br', 'Bromine', 4, 17, 'halogen'],
52
+ ['Kr', 'Krypton', 4, 18, 'noble-gas'],
53
+ ['Rb', 'Rubidium', 5, 1, 'alkali-metal'],
54
+ ['Sr', 'Strontium', 5, 2, 'alkaline-earth-metal'],
55
+ ['Y', 'Yttrium', 5, 3, 'transition-metal'],
56
+ ['Zr', 'Zirconium', 5, 4, 'transition-metal'],
57
+ ['Nb', 'Niobium', 5, 5, 'transition-metal'],
58
+ ['Mo', 'Molybdenum', 5, 6, 'transition-metal'],
59
+ ['Tc', 'Technetium', 5, 7, 'transition-metal'],
60
+ ['Ru', 'Ruthenium', 5, 8, 'transition-metal'],
61
+ ['Rh', 'Rhodium', 5, 9, 'transition-metal'],
62
+ ['Pd', 'Palladium', 5, 10, 'transition-metal'],
63
+ ['Ag', 'Silver', 5, 11, 'transition-metal'],
64
+ ['Cd', 'Cadmium', 5, 12, 'transition-metal'],
65
+ ['In', 'Indium', 5, 13, 'post-transition-metal'],
66
+ ['Sn', 'Tin', 5, 14, 'post-transition-metal'],
67
+ ['Sb', 'Antimony', 5, 15, 'metalloid'],
68
+ ['Te', 'Tellurium', 5, 16, 'metalloid'],
69
+ ['I', 'Iodine', 5, 17, 'halogen'],
70
+ ['Xe', 'Xenon', 5, 18, 'noble-gas'],
71
+ ['Cs', 'Caesium', 6, 1, 'alkali-metal'],
72
+ ['Ba', 'Barium', 6, 2, 'alkaline-earth-metal'],
73
+ ['La', 'Lanthanum', 6, null, 'lanthanoid'],
74
+ ['Ce', 'Cerium', 6, null, 'lanthanoid'],
75
+ ['Pr', 'Praseodymium', 6, null, 'lanthanoid'],
76
+ ['Nd', 'Neodymium', 6, null, 'lanthanoid'],
77
+ ['Pm', 'Promethium', 6, null, 'lanthanoid'],
78
+ ['Sm', 'Samarium', 6, null, 'lanthanoid'],
79
+ ['Eu', 'Europium', 6, null, 'lanthanoid'],
80
+ ['Gd', 'Gadolinium', 6, null, 'lanthanoid'],
81
+ ['Tb', 'Terbium', 6, null, 'lanthanoid'],
82
+ ['Dy', 'Dysprosium', 6, null, 'lanthanoid'],
83
+ ['Ho', 'Holmium', 6, null, 'lanthanoid'],
84
+ ['Er', 'Erbium', 6, null, 'lanthanoid'],
85
+ ['Tm', 'Thulium', 6, null, 'lanthanoid'],
86
+ ['Yb', 'Ytterbium', 6, null, 'lanthanoid'],
87
+ ['Lu', 'Lutetium', 6, null, 'lanthanoid'],
88
+ ['Hf', 'Hafnium', 6, 4, 'transition-metal'],
89
+ ['Ta', 'Tantalum', 6, 5, 'transition-metal'],
90
+ ['W', 'Tungsten', 6, 6, 'transition-metal'],
91
+ ['Re', 'Rhenium', 6, 7, 'transition-metal'],
92
+ ['Os', 'Osmium', 6, 8, 'transition-metal'],
93
+ ['Ir', 'Iridium', 6, 9, 'transition-metal'],
94
+ ['Pt', 'Platinum', 6, 10, 'transition-metal'],
95
+ ['Au', 'Gold', 6, 11, 'transition-metal'],
96
+ ['Hg', 'Mercury', 6, 12, 'transition-metal'],
97
+ ['Tl', 'Thallium', 6, 13, 'post-transition-metal'],
98
+ ['Pb', 'Lead', 6, 14, 'post-transition-metal'],
99
+ ['Bi', 'Bismuth', 6, 15, 'post-transition-metal'],
100
+ ['Po', 'Polonium', 6, 16, 'post-transition-metal'],
101
+ ['At', 'Astatine', 6, 17, 'halogen'],
102
+ ['Rn', 'Radon', 6, 18, 'noble-gas'],
103
+ ['Fr', 'Francium', 7, 1, 'alkali-metal'],
104
+ ['Ra', 'Radium', 7, 2, 'alkaline-earth-metal'],
105
+ ['Ac', 'Actinium', 7, null, 'actinoid'],
106
+ ['Th', 'Thorium', 7, null, 'actinoid'],
107
+ ['Pa', 'Protactinium', 7, null, 'actinoid'],
108
+ ['U', 'Uranium', 7, null, 'actinoid'],
109
+ ['Np', 'Neptunium', 7, null, 'actinoid'],
110
+ ['Pu', 'Plutonium', 7, null, 'actinoid'],
111
+ ['Am', 'Americium', 7, null, 'actinoid'],
112
+ ['Cm', 'Curium', 7, null, 'actinoid'],
113
+ ['Bk', 'Berkelium', 7, null, 'actinoid'],
114
+ ['Cf', 'Californium', 7, null, 'actinoid'],
115
+ ['Es', 'Einsteinium', 7, null, 'actinoid'],
116
+ ['Fm', 'Fermium', 7, null, 'actinoid'],
117
+ ['Md', 'Mendelevium', 7, null, 'actinoid'],
118
+ ['No', 'Nobelium', 7, null, 'actinoid'],
119
+ ['Lr', 'Lawrencium', 7, null, 'actinoid'],
120
+ ['Rf', 'Rutherfordium', 7, 4, 'transition-metal'],
121
+ ['Db', 'Dubnium', 7, 5, 'transition-metal'],
122
+ ['Sg', 'Seaborgium', 7, 6, 'transition-metal'],
123
+ ['Bh', 'Bohrium', 7, 7, 'transition-metal'],
124
+ ['Hs', 'Hassium', 7, 8, 'transition-metal'],
125
+ ['Mt', 'Meitnerium', 7, 9, 'transition-metal'],
126
+ ['Ds', 'Darmstadtium', 7, 10, 'transition-metal'],
127
+ ['Rg', 'Roentgenium', 7, 11, 'transition-metal'],
128
+ ['Cn', 'Copernicium', 7, 12, 'transition-metal'],
129
+ ['Nh', 'Nihonium', 7, 13, 'post-transition-metal'],
130
+ ['Fl', 'Flerovium', 7, 14, 'post-transition-metal'],
131
+ ['Mc', 'Moscovium', 7, 15, 'post-transition-metal'],
132
+ ['Lv', 'Livermorium', 7, 16, 'post-transition-metal'],
133
+ ['Ts', 'Tennessine', 7, 17, 'halogen'],
134
+ ['Og', 'Oganesson', 7, 18, 'noble-gas'],
135
+ ];
136
+ /** Every element, ordered by atomic number. */
137
+ export const PERIODIC_ELEMENTS = ROWS.map((row, index) => ({
138
+ atomicNumber: index + 1,
139
+ symbol: row[0],
140
+ name: row[1],
141
+ period: row[2],
142
+ group: row[3],
143
+ block: blockOf(index + 1, row[3]),
144
+ category: row[4],
145
+ }));
146
+ const BY_SYMBOL = new Map(PERIODIC_ELEMENTS.map((element) => [element.symbol, element]));
147
+ /**
148
+ * Look up an element by its symbol.
149
+ * @param symbol - Chemical symbol, e.g. `Cl`. Case sensitive, as symbols are.
150
+ * @returns The element, or `undefined` when no element carries that symbol.
151
+ */
152
+ export function elementBySymbol(symbol) {
153
+ return BY_SYMBOL.get(symbol);
154
+ }
155
+ /**
156
+ * Look up an element by its atomic number.
157
+ * @param atomicNumber - Proton count, 1 to 118.
158
+ * @returns The element, or `undefined` when it is outside the table.
159
+ */
160
+ export function elementByAtomicNumber(atomicNumber) {
161
+ return PERIODIC_ELEMENTS[atomicNumber - 1];
162
+ }
163
+ function blockOf(atomicNumber, group) {
164
+ if (group === null)
165
+ return 'f';
166
+ // Helium sits above the p block but its only electrons are 1s.
167
+ if (atomicNumber === 2)
168
+ return 's';
169
+ if (group <= 2)
170
+ return 's';
171
+ if (group <= 12)
172
+ return 'd';
173
+ return 'p';
174
+ }
175
+ //# sourceMappingURL=elements.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elements.js","sourceRoot":"","sources":["../../../src/periodic/core/elements.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export type { ElementBlock, ElementCategory, PeriodicElement, } from './elements.ts';
2
+ export { PERIODIC_ELEMENTS, elementByAtomicNumber, elementBySymbol, } from './elements.ts';
3
+ export { CATEGORY_LABELS, CATEGORY_ORDER, CATEGORY_SWATCHES, UNKNOWN_SWATCH, categorySwatch, } from './categories.ts';
4
+ export type { Cell, ElementRange } from './layout.ts';
5
+ export { COLUMN_COUNT, INNER_TRANSITION_MARKERS, INNER_TRANSITION_ROWS, ROW_COUNT, cellOf, elementByArrowKey, placedElements, } from './layout.ts';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/periodic/core/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,YAAY,EACZ,eAAe,EACf,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EACL,YAAY,EACZ,wBAAwB,EACxB,qBAAqB,EACrB,SAAS,EACT,MAAM,EACN,iBAAiB,EACjB,cAAc,GACf,MAAM,aAAa,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { PERIODIC_ELEMENTS, elementByAtomicNumber, elementBySymbol, } from "./elements.js";
2
+ export { CATEGORY_LABELS, CATEGORY_ORDER, CATEGORY_SWATCHES, UNKNOWN_SWATCH, categorySwatch, } from "./categories.js";
3
+ export { COLUMN_COUNT, INNER_TRANSITION_MARKERS, INNER_TRANSITION_ROWS, ROW_COUNT, cellOf, elementByArrowKey, placedElements, } from "./layout.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/periodic/core/index.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,cAAc,GACf,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,YAAY,EACZ,wBAAwB,EACxB,qBAAqB,EACrB,SAAS,EACT,MAAM,EACN,iBAAiB,EACjB,cAAc,GACf,MAAM,aAAa,CAAC"}