react-cheminfo 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +111 -23
- package/lib/capsule/ui/CapsuleFilter.d.ts +61 -0
- package/lib/capsule/ui/CapsuleFilter.d.ts.map +1 -0
- package/lib/capsule/ui/CapsuleFilter.js +33 -0
- package/lib/capsule/ui/CapsuleFilter.js.map +1 -0
- package/lib/capsule/ui/index.d.ts +3 -0
- package/lib/capsule/ui/index.d.ts.map +1 -0
- package/lib/capsule/ui/index.js +2 -0
- package/lib/capsule/ui/index.js.map +1 -0
- package/lib/chrome/ui/NavLink.d.ts +27 -0
- package/lib/chrome/ui/NavLink.d.ts.map +1 -0
- package/lib/chrome/ui/NavLink.js +36 -0
- package/lib/chrome/ui/NavLink.js.map +1 -0
- package/lib/chrome/ui/NavMenuButton.d.ts +40 -0
- package/lib/chrome/ui/NavMenuButton.d.ts.map +1 -0
- package/lib/chrome/ui/NavMenuButton.js +26 -0
- package/lib/chrome/ui/NavMenuButton.js.map +1 -0
- package/lib/chrome/ui/SiteFooter.d.ts +39 -0
- package/lib/chrome/ui/SiteFooter.d.ts.map +1 -0
- package/lib/chrome/ui/SiteFooter.js +17 -0
- package/lib/chrome/ui/SiteFooter.js.map +1 -0
- package/lib/chrome/ui/SiteHeader.d.ts +59 -0
- package/lib/chrome/ui/SiteHeader.d.ts.map +1 -0
- package/lib/chrome/ui/SiteHeader.js +28 -0
- package/lib/chrome/ui/SiteHeader.js.map +1 -0
- package/lib/chrome/ui/index.d.ts +12 -0
- package/lib/chrome/ui/index.d.ts.map +1 -0
- package/lib/chrome/ui/index.js +6 -0
- package/lib/chrome/ui/index.js.map +1 -0
- package/lib/chrome/ui/navItem.d.ts +57 -0
- package/lib/chrome/ui/navItem.d.ts.map +1 -0
- package/lib/chrome/ui/navItem.js +10 -0
- package/lib/chrome/ui/navItem.js.map +1 -0
- package/lib/chrome/ui/useCompactHeader.d.ts +31 -0
- package/lib/chrome/ui/useCompactHeader.d.ts.map +1 -0
- package/lib/chrome/ui/useCompactHeader.js +50 -0
- package/lib/chrome/ui/useCompactHeader.js.map +1 -0
- package/lib/citation/core/clipboard.d.ts +12 -3
- package/lib/citation/core/clipboard.d.ts.map +1 -1
- package/lib/citation/core/clipboard.js +21 -10
- package/lib/citation/core/clipboard.js.map +1 -1
- package/lib/citation/core/download.d.ts +11 -3
- package/lib/citation/core/download.d.ts.map +1 -1
- package/lib/citation/core/download.js +17 -13
- package/lib/citation/core/download.js.map +1 -1
- package/lib/citation/core/index.d.ts +4 -3
- package/lib/citation/core/index.d.ts.map +1 -1
- package/lib/citation/core/index.js +3 -3
- package/lib/citation/core/index.js.map +1 -1
- package/lib/citation/core/works.d.ts +44 -0
- package/lib/citation/core/works.d.ts.map +1 -0
- package/lib/citation/core/works.js +51 -0
- package/lib/citation/core/works.js.map +1 -0
- package/lib/citation/ui/CitationMenu.d.ts +20 -3
- package/lib/citation/ui/CitationMenu.d.ts.map +1 -1
- package/lib/citation/ui/CitationMenu.js +60 -49
- package/lib/citation/ui/CitationMenu.js.map +1 -1
- package/lib/citation/ui/CitationPreview.d.ts +5 -2
- package/lib/citation/ui/CitationPreview.d.ts.map +1 -1
- package/lib/citation/ui/CitationPreview.js +9 -4
- package/lib/citation/ui/CitationPreview.js.map +1 -1
- package/lib/citation/ui/CiteButton.d.ts +13 -6
- package/lib/citation/ui/CiteButton.d.ts.map +1 -1
- package/lib/citation/ui/CiteButton.js +5 -4
- package/lib/citation/ui/CiteButton.js.map +1 -1
- package/lib/citation/ui/CopyFormatEntries.d.ts +31 -0
- package/lib/citation/ui/CopyFormatEntries.d.ts.map +1 -0
- package/lib/citation/ui/CopyFormatEntries.js +29 -0
- package/lib/citation/ui/CopyFormatEntries.js.map +1 -0
- package/lib/citation/ui/WorkEntry.d.ts +18 -0
- package/lib/citation/ui/WorkEntry.d.ts.map +1 -0
- package/lib/citation/ui/WorkEntry.js +32 -0
- package/lib/citation/ui/WorkEntry.js.map +1 -0
- package/lib/citation/ui/entries.d.ts +7 -7
- package/lib/citation/ui/entries.d.ts.map +1 -1
- package/lib/citation/ui/entries.js +11 -13
- package/lib/citation/ui/entries.js.map +1 -1
- package/lib/citation/ui/index.d.ts +2 -2
- package/lib/citation/ui/index.d.ts.map +1 -1
- package/lib/citation/ui/index.js.map +1 -1
- package/lib/citation/ui/useCopyFeedback.d.ts +20 -0
- package/lib/citation/ui/useCopyFeedback.d.ts.map +1 -0
- package/lib/citation/ui/useCopyFeedback.js +49 -0
- package/lib/citation/ui/useCopyFeedback.js.map +1 -0
- package/lib/clipboard/core/index.d.ts +2 -0
- package/lib/clipboard/core/index.d.ts.map +1 -0
- package/lib/clipboard/core/index.js +2 -0
- package/lib/clipboard/core/index.js.map +1 -0
- package/lib/clipboard/core/writeToClipboard.d.ts +12 -0
- package/lib/clipboard/core/writeToClipboard.d.ts.map +1 -0
- package/lib/clipboard/core/writeToClipboard.js +49 -0
- package/lib/clipboard/core/writeToClipboard.js.map +1 -0
- package/lib/clipboard/ui/CodeBlock.d.ts +43 -0
- package/lib/clipboard/ui/CodeBlock.d.ts.map +1 -0
- package/lib/clipboard/ui/CodeBlock.js +49 -0
- package/lib/clipboard/ui/CodeBlock.js.map +1 -0
- package/lib/clipboard/ui/CopyButton.d.ts +64 -0
- package/lib/clipboard/ui/CopyButton.d.ts.map +1 -0
- package/lib/clipboard/ui/CopyButton.js +21 -0
- package/lib/clipboard/ui/CopyButton.js.map +1 -0
- package/lib/clipboard/ui/index.d.ts +7 -0
- package/lib/clipboard/ui/index.d.ts.map +1 -0
- package/lib/clipboard/ui/index.js +4 -0
- package/lib/clipboard/ui/index.js.map +1 -0
- package/lib/clipboard/ui/useCopyToClipboard.d.ts +24 -0
- package/lib/clipboard/ui/useCopyToClipboard.d.ts.map +1 -0
- package/lib/clipboard/ui/useCopyToClipboard.js +36 -0
- package/lib/clipboard/ui/useCopyToClipboard.js.map +1 -0
- package/lib/color/core/contrast.d.ts +43 -0
- package/lib/color/core/contrast.d.ts.map +1 -0
- package/lib/color/core/contrast.js +61 -0
- package/lib/color/core/contrast.js.map +1 -0
- package/lib/color/core/hex.d.ts +26 -0
- package/lib/color/core/hex.d.ts.map +1 -0
- package/lib/color/core/hex.js +44 -0
- package/lib/color/core/hex.js.map +1 -0
- package/lib/color/core/index.d.ts +5 -0
- package/lib/color/core/index.d.ts.map +1 -0
- package/lib/color/core/index.js +3 -0
- package/lib/color/core/index.js.map +1 -0
- package/lib/color/core/scale.d.ts +52 -0
- package/lib/color/core/scale.d.ts.map +1 -0
- package/lib/color/core/scale.js +96 -0
- package/lib/color/core/scale.js.map +1 -0
- package/lib/color/ui/ColorScaleLegend.d.ts +38 -0
- package/lib/color/ui/ColorScaleLegend.d.ts.map +1 -0
- package/lib/color/ui/ColorScaleLegend.js +68 -0
- package/lib/color/ui/ColorScaleLegend.js.map +1 -0
- package/lib/color/ui/index.d.ts +3 -0
- package/lib/color/ui/index.d.ts.map +1 -0
- package/lib/color/ui/index.js +2 -0
- package/lib/color/ui/index.js.map +1 -0
- package/lib/core.d.ts +11 -0
- package/lib/core.d.ts.map +1 -1
- package/lib/core.js +11 -0
- package/lib/core.js.map +1 -1
- package/lib/credits/core/credits.d.ts +144 -0
- package/lib/credits/core/credits.d.ts.map +1 -0
- package/lib/credits/core/credits.js +156 -0
- package/lib/credits/core/credits.js.map +1 -0
- package/lib/credits/core/index.d.ts +3 -0
- package/lib/credits/core/index.d.ts.map +1 -0
- package/lib/credits/core/index.js +2 -0
- package/lib/credits/core/index.js.map +1 -0
- package/lib/credits/ui/CreditsList.d.ts +29 -0
- package/lib/credits/ui/CreditsList.d.ts.map +1 -0
- package/lib/credits/ui/CreditsList.js +33 -0
- package/lib/credits/ui/CreditsList.js.map +1 -0
- package/lib/credits/ui/index.d.ts +3 -0
- package/lib/credits/ui/index.d.ts.map +1 -0
- package/lib/credits/ui/index.js +2 -0
- package/lib/credits/ui/index.js.map +1 -0
- package/lib/delimited/core/delimiters.d.ts +31 -0
- package/lib/delimited/core/delimiters.d.ts.map +1 -0
- package/lib/delimited/core/delimiters.js +46 -0
- package/lib/delimited/core/delimiters.js.map +1 -0
- package/lib/delimited/core/index.d.ts +9 -0
- package/lib/delimited/core/index.d.ts.map +1 -0
- package/lib/delimited/core/index.js +5 -0
- package/lib/delimited/core/index.js.map +1 -0
- package/lib/delimited/core/readDelimited.d.ts +32 -0
- package/lib/delimited/core/readDelimited.d.ts.map +1 -0
- package/lib/delimited/core/readDelimited.js +122 -0
- package/lib/delimited/core/readDelimited.js.map +1 -0
- package/lib/delimited/core/rowsToDelimited.d.ts +59 -0
- package/lib/delimited/core/rowsToDelimited.d.ts.map +1 -0
- package/lib/delimited/core/rowsToDelimited.js +87 -0
- package/lib/delimited/core/rowsToDelimited.js.map +1 -0
- package/lib/delimited/core/toDelimited.d.ts +38 -0
- package/lib/delimited/core/toDelimited.d.ts.map +1 -0
- package/lib/delimited/core/toDelimited.js +45 -0
- package/lib/delimited/core/toDelimited.js.map +1 -0
- package/lib/delimited/ui/DelimitedTextDialog.d.ts +22 -0
- package/lib/delimited/ui/DelimitedTextDialog.d.ts.map +1 -0
- package/lib/delimited/ui/DelimitedTextDialog.js +17 -0
- package/lib/delimited/ui/DelimitedTextDialog.js.map +1 -0
- package/lib/delimited/ui/DelimitedTextPanel.d.ts +56 -0
- package/lib/delimited/ui/DelimitedTextPanel.d.ts.map +1 -0
- package/lib/delimited/ui/DelimitedTextPanel.js +55 -0
- package/lib/delimited/ui/DelimitedTextPanel.js.map +1 -0
- package/lib/delimited/ui/index.d.ts +5 -0
- package/lib/delimited/ui/index.d.ts.map +1 -0
- package/lib/delimited/ui/index.js +3 -0
- package/lib/delimited/ui/index.js.map +1 -0
- package/lib/disclosure/ui/CollapsibleSection.d.ts +57 -0
- package/lib/disclosure/ui/CollapsibleSection.d.ts.map +1 -0
- package/lib/disclosure/ui/CollapsibleSection.js +60 -0
- package/lib/disclosure/ui/CollapsibleSection.js.map +1 -0
- package/lib/disclosure/ui/index.d.ts +5 -0
- package/lib/disclosure/ui/index.d.ts.map +1 -0
- package/lib/disclosure/ui/index.js +3 -0
- package/lib/disclosure/ui/index.js.map +1 -0
- package/lib/disclosure/ui/useDisclosure.d.ts +22 -0
- package/lib/disclosure/ui/useDisclosure.d.ts.map +1 -0
- package/lib/disclosure/ui/useDisclosure.js +18 -0
- package/lib/disclosure/ui/useDisclosure.js.map +1 -0
- package/lib/download/core/downloadBlob.d.ts +10 -0
- package/lib/download/core/downloadBlob.d.ts.map +1 -0
- package/lib/download/core/downloadBlob.js +20 -0
- package/lib/download/core/downloadBlob.js.map +1 -0
- package/lib/download/core/downloadText.d.ts +9 -0
- package/lib/download/core/downloadText.d.ts.map +1 -0
- package/lib/download/core/downloadText.js +14 -0
- package/lib/download/core/downloadText.js.map +1 -0
- package/lib/download/core/index.d.ts +4 -0
- package/lib/download/core/index.d.ts.map +1 -0
- package/lib/download/core/index.js +4 -0
- package/lib/download/core/index.js.map +1 -0
- package/lib/download/core/sanitizeFileName.d.ts +15 -0
- package/lib/download/core/sanitizeFileName.d.ts.map +1 -0
- package/lib/download/core/sanitizeFileName.js +33 -0
- package/lib/download/core/sanitizeFileName.js.map +1 -0
- package/lib/ecosystem/core/index.d.ts +3 -0
- package/lib/ecosystem/core/index.d.ts.map +1 -1
- package/lib/ecosystem/core/index.js +3 -0
- package/lib/ecosystem/core/index.js.map +1 -1
- package/lib/ecosystem/core/links.d.ts +11 -0
- package/lib/ecosystem/core/links.d.ts.map +1 -0
- package/lib/ecosystem/core/links.js +28 -0
- package/lib/ecosystem/core/links.js.map +1 -0
- package/lib/ecosystem/core/lookup.d.ts +21 -0
- package/lib/ecosystem/core/lookup.d.ts.map +1 -0
- package/lib/ecosystem/core/lookup.js +40 -0
- package/lib/ecosystem/core/lookup.js.map +1 -0
- package/lib/ecosystem/core/sites.d.ts +2 -0
- package/lib/ecosystem/core/sites.d.ts.map +1 -1
- package/lib/ecosystem/core/sites.js +15 -0
- package/lib/ecosystem/core/sites.js.map +1 -1
- package/lib/ecosystem/core/tokens.d.ts +21 -0
- package/lib/ecosystem/core/tokens.d.ts.map +1 -0
- package/lib/ecosystem/core/tokens.js +42 -0
- package/lib/ecosystem/core/tokens.js.map +1 -0
- package/lib/ecosystem/ui/SiteTheme.d.ts +18 -0
- package/lib/ecosystem/ui/SiteTheme.d.ts.map +1 -0
- package/lib/ecosystem/ui/SiteTheme.js +16 -0
- package/lib/ecosystem/ui/SiteTheme.js.map +1 -0
- package/lib/ecosystem/ui/Wordmark.d.ts +30 -0
- package/lib/ecosystem/ui/Wordmark.d.ts.map +1 -0
- package/lib/ecosystem/ui/Wordmark.js +26 -0
- package/lib/ecosystem/ui/Wordmark.js.map +1 -0
- package/lib/ecosystem/ui/index.d.ts +4 -0
- package/lib/ecosystem/ui/index.d.ts.map +1 -1
- package/lib/ecosystem/ui/index.js +2 -0
- package/lib/ecosystem/ui/index.js.map +1 -1
- package/lib/ecosystem/ui/marks.d.ts +30 -4
- package/lib/ecosystem/ui/marks.d.ts.map +1 -1
- package/lib/ecosystem/ui/marks.js +13 -3
- package/lib/ecosystem/ui/marks.js.map +1 -1
- package/lib/error/ui/ErrorBoundary.d.ts +60 -0
- package/lib/error/ui/ErrorBoundary.d.ts.map +1 -0
- package/lib/error/ui/ErrorBoundary.js +59 -0
- package/lib/error/ui/ErrorBoundary.js.map +1 -0
- package/lib/error/ui/ErrorFallback.d.ts +38 -0
- package/lib/error/ui/ErrorFallback.d.ts.map +1 -0
- package/lib/error/ui/ErrorFallback.js +16 -0
- package/lib/error/ui/ErrorFallback.js.map +1 -0
- package/lib/error/ui/index.d.ts +5 -0
- package/lib/error/ui/index.d.ts.map +1 -0
- package/lib/error/ui/index.js +3 -0
- package/lib/error/ui/index.js.map +1 -0
- package/lib/error/ui/toError.d.ts +11 -0
- package/lib/error/ui/toError.d.ts.map +1 -0
- package/lib/error/ui/toError.js +35 -0
- package/lib/error/ui/toError.js.map +1 -0
- package/lib/format/core/index.d.ts +5 -0
- package/lib/format/core/index.d.ts.map +1 -0
- package/lib/format/core/index.js +5 -0
- package/lib/format/core/index.js.map +1 -0
- package/lib/format/core/missing.d.ts +7 -0
- package/lib/format/core/missing.d.ts.map +1 -0
- package/lib/format/core/missing.js +7 -0
- package/lib/format/core/missing.js.map +1 -0
- package/lib/format/core/numbers.d.ts +40 -0
- package/lib/format/core/numbers.d.ts.map +1 -0
- package/lib/format/core/numbers.js +81 -0
- package/lib/format/core/numbers.js.map +1 -0
- package/lib/format/core/units.d.ts +17 -0
- package/lib/format/core/units.d.ts.map +1 -0
- package/lib/format/core/units.js +54 -0
- package/lib/format/core/units.js.map +1 -0
- package/lib/format/core/words.d.ts +12 -0
- package/lib/format/core/words.d.ts.map +1 -0
- package/lib/format/core/words.js +14 -0
- package/lib/format/core/words.js.map +1 -0
- package/lib/help/ui/HelpBody.d.ts +57 -0
- package/lib/help/ui/HelpBody.d.ts.map +1 -0
- package/lib/help/ui/HelpBody.js +44 -0
- package/lib/help/ui/HelpBody.js.map +1 -0
- package/lib/help/ui/HelpIcon.d.ts +33 -0
- package/lib/help/ui/HelpIcon.d.ts.map +1 -0
- package/lib/help/ui/HelpIcon.js +16 -0
- package/lib/help/ui/HelpIcon.js.map +1 -0
- package/lib/help/ui/HelpToolbarButton.d.ts +45 -0
- package/lib/help/ui/HelpToolbarButton.d.ts.map +1 -0
- package/lib/help/ui/HelpToolbarButton.js +17 -0
- package/lib/help/ui/HelpToolbarButton.js.map +1 -0
- package/lib/help/ui/HelpTooltip.d.ts +36 -0
- package/lib/help/ui/HelpTooltip.d.ts.map +1 -0
- package/lib/help/ui/HelpTooltip.js +24 -0
- package/lib/help/ui/HelpTooltip.js.map +1 -0
- package/lib/help/ui/index.d.ts +9 -0
- package/lib/help/ui/index.d.ts.map +1 -0
- package/lib/help/ui/index.js +5 -0
- package/lib/help/ui/index.js.map +1 -0
- package/lib/hooks/ui/index.d.ts +7 -0
- package/lib/hooks/ui/index.d.ts.map +1 -0
- package/lib/hooks/ui/index.js +5 -0
- package/lib/hooks/ui/index.js.map +1 -0
- package/lib/hooks/ui/listNavigation.d.ts +54 -0
- package/lib/hooks/ui/listNavigation.d.ts.map +1 -0
- package/lib/hooks/ui/listNavigation.js +77 -0
- package/lib/hooks/ui/listNavigation.js.map +1 -0
- package/lib/hooks/ui/useContainerSize.d.ts +15 -0
- package/lib/hooks/ui/useContainerSize.d.ts.map +1 -0
- package/lib/hooks/ui/useContainerSize.js +24 -0
- package/lib/hooks/ui/useContainerSize.js.map +1 -0
- package/lib/hooks/ui/useDebouncedValue.d.ts +12 -0
- package/lib/hooks/ui/useDebouncedValue.d.ts.map +1 -0
- package/lib/hooks/ui/useDebouncedValue.js +24 -0
- package/lib/hooks/ui/useDebouncedValue.js.map +1 -0
- package/lib/hooks/ui/useListKeyboardNavigation.d.ts +17 -0
- package/lib/hooks/ui/useListKeyboardNavigation.d.ts.map +1 -0
- package/lib/hooks/ui/useListKeyboardNavigation.js +25 -0
- package/lib/hooks/ui/useListKeyboardNavigation.js.map +1 -0
- package/lib/hooks/ui/useResizeObserver.d.ts +20 -0
- package/lib/hooks/ui/useResizeObserver.d.ts.map +1 -0
- package/lib/hooks/ui/useResizeObserver.js +37 -0
- package/lib/hooks/ui/useResizeObserver.js.map +1 -0
- package/lib/orbital/core/atomicGrid.d.ts +27 -0
- package/lib/orbital/core/atomicGrid.d.ts.map +1 -1
- package/lib/orbital/core/atomicGrid.js +37 -1
- package/lib/orbital/core/atomicGrid.js.map +1 -1
- package/lib/orbital/core/index.d.ts +9 -7
- package/lib/orbital/core/index.d.ts.map +1 -1
- package/lib/orbital/core/index.js +7 -6
- package/lib/orbital/core/index.js.map +1 -1
- package/lib/orbital/core/isovalue.d.ts +60 -0
- package/lib/orbital/core/isovalue.d.ts.map +1 -0
- package/lib/orbital/core/isovalue.js +128 -0
- package/lib/orbital/core/isovalue.js.map +1 -0
- package/lib/orbital/core/sample.d.ts +15 -1
- package/lib/orbital/core/sample.d.ts.map +1 -1
- package/lib/orbital/core/sample.js +10 -3
- package/lib/orbital/core/sample.js.map +1 -1
- package/lib/orbital/ui/AtomicOrbitalCanvas.d.ts +6 -1
- package/lib/orbital/ui/AtomicOrbitalCanvas.d.ts.map +1 -1
- package/lib/orbital/ui/AtomicOrbitalCanvas.js +12 -2
- package/lib/orbital/ui/AtomicOrbitalCanvas.js.map +1 -1
- package/lib/orbital/ui/AtomicOrbitalViewer.d.ts +5 -1
- package/lib/orbital/ui/AtomicOrbitalViewer.d.ts.map +1 -1
- package/lib/orbital/ui/AtomicOrbitalViewer.js.map +1 -1
- package/lib/orbital/ui/renderVolume.d.ts +6 -3
- package/lib/orbital/ui/renderVolume.d.ts.map +1 -1
- package/lib/orbital/ui/renderVolume.js +14 -15
- package/lib/orbital/ui/renderVolume.js.map +1 -1
- package/lib/orbital/ui/viewer.d.ts +3 -1
- package/lib/orbital/ui/viewer.d.ts.map +1 -1
- package/lib/orbital/ui/viewer.js +3 -2
- package/lib/orbital/ui/viewer.js.map +1 -1
- package/lib/orbital/ui/volumeField.d.ts +5 -21
- package/lib/orbital/ui/volumeField.d.ts.map +1 -1
- package/lib/orbital/ui/volumeField.js +5 -45
- package/lib/orbital/ui/volumeField.js.map +1 -1
- package/lib/pedagogy/core/glossary.d.ts +79 -0
- package/lib/pedagogy/core/glossary.d.ts.map +1 -0
- package/lib/pedagogy/core/glossary.js +71 -0
- package/lib/pedagogy/core/glossary.js.map +1 -0
- package/lib/pedagogy/core/index.d.ts +8 -0
- package/lib/pedagogy/core/index.d.ts.map +1 -0
- package/lib/pedagogy/core/index.js +4 -0
- package/lib/pedagogy/core/index.js.map +1 -0
- package/lib/pedagogy/core/jsonStorage.d.ts +21 -0
- package/lib/pedagogy/core/jsonStorage.d.ts.map +1 -0
- package/lib/pedagogy/core/jsonStorage.js +55 -0
- package/lib/pedagogy/core/jsonStorage.js.map +1 -0
- package/lib/pedagogy/core/progress.d.ts +116 -0
- package/lib/pedagogy/core/progress.d.ts.map +1 -0
- package/lib/pedagogy/core/progress.js +122 -0
- package/lib/pedagogy/core/progress.js.map +1 -0
- package/lib/pedagogy/core/types.d.ts +74 -0
- package/lib/pedagogy/core/types.d.ts.map +1 -0
- package/lib/pedagogy/core/types.js +8 -0
- package/lib/pedagogy/core/types.js.map +1 -0
- package/lib/pedagogy/core/validation.d.ts +79 -0
- package/lib/pedagogy/core/validation.d.ts.map +1 -0
- package/lib/pedagogy/core/validation.js +47 -0
- package/lib/pedagogy/core/validation.js.map +1 -0
- package/lib/pedagogy/ui/ExerciseActions.d.ts +74 -0
- package/lib/pedagogy/ui/ExerciseActions.d.ts.map +1 -0
- package/lib/pedagogy/ui/ExerciseActions.js +22 -0
- package/lib/pedagogy/ui/ExerciseActions.js.map +1 -0
- package/lib/pedagogy/ui/ExerciseProgressHeader.d.ts +43 -0
- package/lib/pedagogy/ui/ExerciseProgressHeader.d.ts.map +1 -0
- package/lib/pedagogy/ui/ExerciseProgressHeader.js +43 -0
- package/lib/pedagogy/ui/ExerciseProgressHeader.js.map +1 -0
- package/lib/pedagogy/ui/ExerciseTags.d.ts +49 -0
- package/lib/pedagogy/ui/ExerciseTags.d.ts.map +1 -0
- package/lib/pedagogy/ui/ExerciseTags.js +22 -0
- package/lib/pedagogy/ui/ExerciseTags.js.map +1 -0
- package/lib/pedagogy/ui/GlossaryProvider.d.ts +19 -0
- package/lib/pedagogy/ui/GlossaryProvider.d.ts.map +1 -0
- package/lib/pedagogy/ui/GlossaryProvider.js +16 -0
- package/lib/pedagogy/ui/GlossaryProvider.js.map +1 -0
- package/lib/pedagogy/ui/GlossaryText.d.ts +50 -0
- package/lib/pedagogy/ui/GlossaryText.d.ts.map +1 -0
- package/lib/pedagogy/ui/GlossaryText.js +79 -0
- package/lib/pedagogy/ui/GlossaryText.js.map +1 -0
- package/lib/pedagogy/ui/HintLadder.d.ts +38 -0
- package/lib/pedagogy/ui/HintLadder.d.ts.map +1 -0
- package/lib/pedagogy/ui/HintLadder.js +33 -0
- package/lib/pedagogy/ui/HintLadder.js.map +1 -0
- package/lib/pedagogy/ui/ReferenceGrid.d.ts +31 -0
- package/lib/pedagogy/ui/ReferenceGrid.d.ts.map +1 -0
- package/lib/pedagogy/ui/ReferenceGrid.js +25 -0
- package/lib/pedagogy/ui/ReferenceGrid.js.map +1 -0
- package/lib/pedagogy/ui/ReferenceSectionBlock.d.ts +64 -0
- package/lib/pedagogy/ui/ReferenceSectionBlock.d.ts.map +1 -0
- package/lib/pedagogy/ui/ReferenceSectionBlock.js +78 -0
- package/lib/pedagogy/ui/ReferenceSectionBlock.js.map +1 -0
- package/lib/pedagogy/ui/SyntaxTooltip.d.ts +94 -0
- package/lib/pedagogy/ui/SyntaxTooltip.d.ts.map +1 -0
- package/lib/pedagogy/ui/SyntaxTooltip.js +79 -0
- package/lib/pedagogy/ui/SyntaxTooltip.js.map +1 -0
- package/lib/pedagogy/ui/TestCaseList.d.ts +35 -0
- package/lib/pedagogy/ui/TestCaseList.d.ts.map +1 -0
- package/lib/pedagogy/ui/TestCaseList.js +63 -0
- package/lib/pedagogy/ui/TestCaseList.js.map +1 -0
- package/lib/pedagogy/ui/TutorialStepStrip.d.ts +42 -0
- package/lib/pedagogy/ui/TutorialStepStrip.d.ts.map +1 -0
- package/lib/pedagogy/ui/TutorialStepStrip.js +98 -0
- package/lib/pedagogy/ui/TutorialStepStrip.js.map +1 -0
- package/lib/pedagogy/ui/exerciseMeta.d.ts +24 -0
- package/lib/pedagogy/ui/exerciseMeta.d.ts.map +1 -0
- package/lib/pedagogy/ui/exerciseMeta.js +38 -0
- package/lib/pedagogy/ui/exerciseMeta.js.map +1 -0
- package/lib/pedagogy/ui/glossaryContext.d.ts +17 -0
- package/lib/pedagogy/ui/glossaryContext.d.ts.map +1 -0
- package/lib/pedagogy/ui/glossaryContext.js +19 -0
- package/lib/pedagogy/ui/glossaryContext.js.map +1 -0
- package/lib/pedagogy/ui/index.d.ts +27 -0
- package/lib/pedagogy/ui/index.d.ts.map +1 -0
- package/lib/pedagogy/ui/index.js +15 -0
- package/lib/pedagogy/ui/index.js.map +1 -0
- package/lib/pedagogy/ui/tutorialLevels.d.ts +18 -0
- package/lib/pedagogy/ui/tutorialLevels.d.ts.map +1 -0
- package/lib/pedagogy/ui/tutorialLevels.js +14 -0
- package/lib/pedagogy/ui/tutorialLevels.js.map +1 -0
- package/lib/router/core/address.d.ts +42 -0
- package/lib/router/core/address.d.ts.map +1 -0
- package/lib/router/core/address.js +64 -0
- package/lib/router/core/address.js.map +1 -0
- package/lib/router/core/basePath.d.ts +49 -0
- package/lib/router/core/basePath.d.ts.map +1 -0
- package/lib/router/core/basePath.js +78 -0
- package/lib/router/core/basePath.js.map +1 -0
- package/lib/router/core/index.d.ts +8 -0
- package/lib/router/core/index.d.ts.map +1 -0
- package/lib/router/core/index.js +5 -0
- package/lib/router/core/index.js.map +1 -0
- package/lib/router/core/legacyHash.d.ts +45 -0
- package/lib/router/core/legacyHash.d.ts.map +1 -0
- package/lib/router/core/legacyHash.js +50 -0
- package/lib/router/core/legacyHash.js.map +1 -0
- package/lib/router/core/pageAddresses.d.ts +50 -0
- package/lib/router/core/pageAddresses.d.ts.map +1 -0
- package/lib/router/core/pageAddresses.js +56 -0
- package/lib/router/core/pageAddresses.js.map +1 -0
- package/lib/router/core/query.d.ts +41 -0
- package/lib/router/core/query.d.ts.map +1 -0
- package/lib/router/core/query.js +64 -0
- package/lib/router/core/query.js.map +1 -0
- package/lib/router/core/tabRouter.d.ts +111 -0
- package/lib/router/core/tabRouter.d.ts.map +1 -0
- package/lib/router/core/tabRouter.js +87 -0
- package/lib/router/core/tabRouter.js.map +1 -0
- package/lib/seo/core/documentMeta.d.ts +45 -0
- package/lib/seo/core/documentMeta.d.ts.map +1 -0
- package/lib/seo/core/documentMeta.js +69 -0
- package/lib/seo/core/documentMeta.js.map +1 -0
- package/lib/seo/core/index.d.ts +3 -0
- package/lib/seo/core/index.d.ts.map +1 -0
- package/lib/seo/core/index.js +2 -0
- package/lib/seo/core/index.js.map +1 -0
- package/lib/share/core/config.d.ts +63 -0
- package/lib/share/core/config.d.ts.map +1 -0
- package/lib/share/core/config.js +125 -0
- package/lib/share/core/config.js.map +1 -0
- package/lib/share/core/escape.d.ts +15 -0
- package/lib/share/core/escape.d.ts.map +1 -0
- package/lib/share/core/escape.js +22 -0
- package/lib/share/core/escape.js.map +1 -0
- package/lib/share/core/index.d.ts +9 -0
- package/lib/share/core/index.d.ts.map +1 -0
- package/lib/share/core/index.js +5 -0
- package/lib/share/core/index.js.map +1 -0
- package/lib/share/core/params.d.ts +93 -0
- package/lib/share/core/params.d.ts.map +1 -0
- package/lib/share/core/params.js +111 -0
- package/lib/share/core/params.js.map +1 -0
- package/lib/share/core/query.d.ts +30 -0
- package/lib/share/core/query.d.ts.map +1 -0
- package/lib/share/core/query.js +68 -0
- package/lib/share/core/query.js.map +1 -0
- package/lib/share/core/url.d.ts +57 -0
- package/lib/share/core/url.d.ts.map +1 -0
- package/lib/share/core/url.js +49 -0
- package/lib/share/core/url.js.map +1 -0
- package/lib/share/core/vocabulary.d.ts +51 -0
- package/lib/share/core/vocabulary.d.ts.map +1 -0
- package/lib/share/core/vocabulary.js +2 -0
- package/lib/share/core/vocabulary.js.map +1 -0
- package/lib/share/ui/HiddenPartsProvider.d.ts +19 -0
- package/lib/share/ui/HiddenPartsProvider.d.ts.map +1 -0
- package/lib/share/ui/HiddenPartsProvider.js +15 -0
- package/lib/share/ui/HiddenPartsProvider.js.map +1 -0
- package/lib/share/ui/PagePart.d.ts +18 -0
- package/lib/share/ui/PagePart.d.ts.map +1 -0
- package/lib/share/ui/PagePart.js +16 -0
- package/lib/share/ui/PagePart.js.map +1 -0
- package/lib/share/ui/ShareButton.d.ts +42 -0
- package/lib/share/ui/ShareButton.d.ts.map +1 -0
- package/lib/share/ui/ShareButton.js +18 -0
- package/lib/share/ui/ShareButton.js.map +1 -0
- package/lib/share/ui/ShareDialog.d.ts +73 -0
- package/lib/share/ui/ShareDialog.d.ts.map +1 -0
- package/lib/share/ui/ShareDialog.js +19 -0
- package/lib/share/ui/ShareDialog.js.map +1 -0
- package/lib/share/ui/ShareDialogContent.d.ts +13 -0
- package/lib/share/ui/ShareDialogContent.d.ts.map +1 -0
- package/lib/share/ui/ShareDialogContent.js +71 -0
- package/lib/share/ui/ShareDialogContent.js.map +1 -0
- package/lib/share/ui/SharePartOptions.d.ts +18 -0
- package/lib/share/ui/SharePartOptions.d.ts.map +1 -0
- package/lib/share/ui/SharePartOptions.js +22 -0
- package/lib/share/ui/SharePartOptions.js.map +1 -0
- package/lib/share/ui/draft.d.ts +13 -0
- package/lib/share/ui/draft.d.ts.map +1 -0
- package/lib/share/ui/draft.js +16 -0
- package/lib/share/ui/draft.js.map +1 -0
- package/lib/share/ui/hiddenParts.d.ts +17 -0
- package/lib/share/ui/hiddenParts.d.ts.map +1 -0
- package/lib/share/ui/hiddenParts.js +21 -0
- package/lib/share/ui/hiddenParts.js.map +1 -0
- package/lib/share/ui/index.d.ts +10 -0
- package/lib/share/ui/index.d.ts.map +1 -0
- package/lib/share/ui/index.js +6 -0
- package/lib/share/ui/index.js.map +1 -0
- package/lib/shared/ui/index.d.ts +2 -1
- package/lib/shared/ui/index.d.ts.map +1 -1
- package/lib/shared/ui/index.js +1 -1
- package/lib/shared/ui/index.js.map +1 -1
- package/lib/state/ui/index.d.ts +3 -0
- package/lib/state/ui/index.d.ts.map +1 -0
- package/lib/state/ui/index.js +2 -0
- package/lib/state/ui/index.js.map +1 -0
- package/lib/state/ui/mergeStored.d.ts +27 -0
- package/lib/state/ui/mergeStored.d.ts.map +1 -0
- package/lib/state/ui/mergeStored.js +82 -0
- package/lib/state/ui/mergeStored.js.map +1 -0
- package/lib/state/ui/persistBucket.d.ts +65 -0
- package/lib/state/ui/persistBucket.d.ts.map +1 -0
- package/lib/state/ui/persistBucket.js +90 -0
- package/lib/state/ui/persistBucket.js.map +1 -0
- package/lib/structure/core/editorValue.d.ts +69 -0
- package/lib/structure/core/editorValue.d.ts.map +1 -0
- package/lib/structure/core/editorValue.js +72 -0
- package/lib/structure/core/editorValue.js.map +1 -0
- package/lib/structure/core/fragmentQuery.d.ts +33 -0
- package/lib/structure/core/fragmentQuery.d.ts.map +1 -0
- package/lib/structure/core/fragmentQuery.js +37 -0
- package/lib/structure/core/fragmentQuery.js.map +1 -0
- package/lib/structure/core/index.d.ts +11 -0
- package/lib/structure/core/index.d.ts.map +1 -0
- package/lib/structure/core/index.js +6 -0
- package/lib/structure/core/index.js.map +1 -0
- package/lib/structure/core/molfile.d.ts +42 -0
- package/lib/structure/core/molfile.d.ts.map +1 -0
- package/lib/structure/core/molfile.js +74 -0
- package/lib/structure/core/molfile.js.map +1 -0
- package/lib/structure/core/readStructure.d.ts +37 -0
- package/lib/structure/core/readStructure.d.ts.map +1 -0
- package/lib/structure/core/readStructure.js +59 -0
- package/lib/structure/core/readStructure.js.map +1 -0
- package/lib/structure/core/structureSource.d.ts +34 -0
- package/lib/structure/core/structureSource.d.ts.map +1 -0
- package/lib/structure/core/structureSource.js +32 -0
- package/lib/structure/core/structureSource.js.map +1 -0
- package/lib/structure/core/toolbarFloor.d.ts +16 -0
- package/lib/structure/core/toolbarFloor.d.ts.map +1 -0
- package/lib/structure/core/toolbarFloor.js +27 -0
- package/lib/structure/core/toolbarFloor.js.map +1 -0
- package/lib/structure/ui/EditorCanvas.d.ts +55 -0
- package/lib/structure/ui/EditorCanvas.d.ts.map +1 -0
- package/lib/structure/ui/EditorCanvas.js +41 -0
- package/lib/structure/ui/EditorCanvas.js.map +1 -0
- package/lib/structure/ui/Structure.d.ts +122 -0
- package/lib/structure/ui/Structure.d.ts.map +1 -0
- package/lib/structure/ui/Structure.js +28 -0
- package/lib/structure/ui/Structure.js.map +1 -0
- package/lib/structure/ui/StructureEditor.d.ts +75 -0
- package/lib/structure/ui/StructureEditor.d.ts.map +1 -0
- package/lib/structure/ui/StructureEditor.js +83 -0
- package/lib/structure/ui/StructureEditor.js.map +1 -0
- package/lib/structure/ui/StructurePlaceholder.d.ts +29 -0
- package/lib/structure/ui/StructurePlaceholder.d.ts.map +1 -0
- package/lib/structure/ui/StructurePlaceholder.js +19 -0
- package/lib/structure/ui/StructurePlaceholder.js.map +1 -0
- package/lib/structure/ui/StructureSvg.d.ts +58 -0
- package/lib/structure/ui/StructureSvg.d.ts.map +1 -0
- package/lib/structure/ui/StructureSvg.js +33 -0
- package/lib/structure/ui/StructureSvg.js.map +1 -0
- package/lib/structure/ui/index.d.ts +19 -0
- package/lib/structure/ui/index.d.ts.map +1 -0
- package/lib/structure/ui/index.js +15 -0
- package/lib/structure/ui/index.js.map +1 -0
- package/lib/structure/ui/useToolbarFloor.d.ts +26 -0
- package/lib/structure/ui/useToolbarFloor.d.ts.map +1 -0
- package/lib/structure/ui/useToolbarFloor.js +70 -0
- package/lib/structure/ui/useToolbarFloor.js.map +1 -0
- package/lib/structure.d.ts +3 -0
- package/lib/structure.d.ts.map +1 -0
- package/lib/structure.js +3 -0
- package/lib/structure.js.map +1 -0
- package/lib/ui.d.ts +13 -0
- package/lib/ui.d.ts.map +1 -1
- package/lib/ui.js +13 -0
- package/lib/ui.js.map +1 -1
- package/lib/worker/core/errors.d.ts +15 -0
- package/lib/worker/core/errors.d.ts.map +1 -0
- package/lib/worker/core/errors.js +15 -0
- package/lib/worker/core/errors.js.map +1 -0
- package/lib/worker/core/index.d.ts +5 -0
- package/lib/worker/core/index.d.ts.map +1 -0
- package/lib/worker/core/index.js +3 -0
- package/lib/worker/core/index.js.map +1 -0
- package/lib/worker/core/messages.d.ts +48 -0
- package/lib/worker/core/messages.d.ts.map +1 -0
- package/lib/worker/core/messages.js +2 -0
- package/lib/worker/core/messages.js.map +1 -0
- package/lib/worker/core/workerChannel.d.ts +69 -0
- package/lib/worker/core/workerChannel.d.ts.map +1 -0
- package/lib/worker/core/workerChannel.js +121 -0
- package/lib/worker/core/workerChannel.js.map +1 -0
- package/package.json +18 -5
- package/src/capsule/ui/CapsuleFilter.tsx +119 -0
- package/src/capsule/ui/index.ts +2 -0
- package/src/chrome/ui/NavLink.tsx +88 -0
- package/src/chrome/ui/NavMenuButton.tsx +95 -0
- package/src/chrome/ui/SiteFooter.tsx +65 -0
- package/src/chrome/ui/SiteHeader.tsx +119 -0
- package/src/chrome/ui/index.ts +11 -0
- package/src/chrome/ui/navItem.ts +60 -0
- package/src/chrome/ui/useCompactHeader.ts +81 -0
- package/src/citation/core/clipboard.ts +27 -11
- package/src/citation/core/download.ts +25 -15
- package/src/citation/core/index.ts +8 -3
- package/src/citation/core/works.ts +81 -0
- package/src/citation/ui/CitationMenu.tsx +104 -89
- package/src/citation/ui/CitationPreview.tsx +18 -8
- package/src/citation/ui/CiteButton.tsx +24 -9
- package/src/citation/ui/CopyFormatEntries.tsx +84 -0
- package/src/citation/ui/WorkEntry.tsx +80 -0
- package/src/citation/ui/entries.tsx +18 -20
- package/src/citation/ui/index.ts +10 -2
- package/src/citation/ui/useCopyFeedback.ts +76 -0
- package/src/clipboard/core/index.ts +1 -0
- package/src/clipboard/core/writeToClipboard.ts +47 -0
- package/src/clipboard/ui/CodeBlock.tsx +110 -0
- package/src/clipboard/ui/CopyButton.tsx +111 -0
- package/src/clipboard/ui/index.ts +9 -0
- package/src/clipboard/ui/useCopyToClipboard.ts +57 -0
- package/src/color/core/contrast.ts +85 -0
- package/src/color/core/hex.ts +57 -0
- package/src/color/core/index.ts +4 -0
- package/src/color/core/scale.ts +132 -0
- package/src/color/ui/ColorScaleLegend.tsx +144 -0
- package/src/color/ui/index.ts +2 -0
- package/src/core.ts +11 -0
- package/src/credits/core/credits.ts +183 -0
- package/src/credits/core/index.ts +2 -0
- package/src/credits/ui/CreditsList.tsx +82 -0
- package/src/credits/ui/index.ts +2 -0
- package/src/delimited/core/delimiters.ts +64 -0
- package/src/delimited/core/index.ts +11 -0
- package/src/delimited/core/readDelimited.ts +132 -0
- package/src/delimited/core/rowsToDelimited.ts +135 -0
- package/src/delimited/core/toDelimited.ts +69 -0
- package/src/delimited/ui/DelimitedTextDialog.tsx +49 -0
- package/src/delimited/ui/DelimitedTextPanel.tsx +161 -0
- package/src/delimited/ui/index.ts +4 -0
- package/src/disclosure/ui/CollapsibleSection.tsx +150 -0
- package/src/disclosure/ui/index.ts +4 -0
- package/src/disclosure/ui/useDisclosure.ts +35 -0
- package/src/download/core/downloadBlob.ts +19 -0
- package/src/download/core/downloadText.ts +19 -0
- package/src/download/core/index.ts +3 -0
- package/src/download/core/sanitizeFileName.ts +33 -0
- package/src/ecosystem/core/index.ts +3 -0
- package/src/ecosystem/core/links.ts +29 -0
- package/src/ecosystem/core/lookup.ts +41 -0
- package/src/ecosystem/core/sites.ts +17 -0
- package/src/ecosystem/core/tokens.ts +47 -0
- package/src/ecosystem/ui/SiteTheme.tsx +23 -0
- package/src/ecosystem/ui/Wordmark.tsx +65 -0
- package/src/ecosystem/ui/index.ts +4 -0
- package/src/ecosystem/ui/marks.tsx +54 -15
- package/src/error/ui/ErrorBoundary.tsx +94 -0
- package/src/error/ui/ErrorFallback.tsx +64 -0
- package/src/error/ui/index.ts +4 -0
- package/src/error/ui/toError.ts +33 -0
- package/src/format/core/index.ts +9 -0
- package/src/format/core/missing.ts +6 -0
- package/src/format/core/numbers.ts +84 -0
- package/src/format/core/units.ts +60 -0
- package/src/format/core/words.ts +17 -0
- package/src/help/ui/HelpBody.tsx +130 -0
- package/src/help/ui/HelpIcon.tsx +53 -0
- package/src/help/ui/HelpToolbarButton.tsx +72 -0
- package/src/help/ui/HelpTooltip.tsx +72 -0
- package/src/help/ui/index.ts +8 -0
- package/src/hooks/ui/index.ts +6 -0
- package/src/hooks/ui/listNavigation.ts +116 -0
- package/src/hooks/ui/useContainerSize.ts +32 -0
- package/src/hooks/ui/useDebouncedValue.ts +29 -0
- package/src/hooks/ui/useListKeyboardNavigation.ts +37 -0
- package/src/hooks/ui/useResizeObserver.ts +50 -0
- package/src/orbital/core/atomicGrid.ts +53 -1
- package/src/orbital/core/index.ts +7 -16
- package/src/orbital/core/isovalue.ts +146 -0
- package/src/orbital/core/sample.ts +25 -5
- package/src/orbital/ui/AtomicOrbitalCanvas.tsx +19 -3
- package/src/orbital/ui/AtomicOrbitalViewer.tsx +5 -1
- package/src/orbital/ui/renderVolume.ts +29 -16
- package/src/orbital/ui/viewer.ts +6 -1
- package/src/orbital/ui/volumeField.ts +5 -49
- package/src/pedagogy/core/glossary.ts +122 -0
- package/src/pedagogy/core/index.ts +28 -0
- package/src/pedagogy/core/jsonStorage.ts +51 -0
- package/src/pedagogy/core/progress.ts +205 -0
- package/src/pedagogy/core/types.ts +78 -0
- package/src/pedagogy/core/validation.ts +109 -0
- package/src/pedagogy/ui/ExerciseActions.tsx +129 -0
- package/src/pedagogy/ui/ExerciseProgressHeader.tsx +135 -0
- package/src/pedagogy/ui/ExerciseTags.tsx +85 -0
- package/src/pedagogy/ui/GlossaryProvider.tsx +31 -0
- package/src/pedagogy/ui/GlossaryText.tsx +164 -0
- package/src/pedagogy/ui/HintLadder.tsx +95 -0
- package/src/pedagogy/ui/ReferenceGrid.tsx +69 -0
- package/src/pedagogy/ui/ReferenceSectionBlock.tsx +175 -0
- package/src/pedagogy/ui/SyntaxTooltip.tsx +222 -0
- package/src/pedagogy/ui/TestCaseList.tsx +122 -0
- package/src/pedagogy/ui/TutorialStepStrip.tsx +230 -0
- package/src/pedagogy/ui/exerciseMeta.ts +45 -0
- package/src/pedagogy/ui/glossaryContext.ts +23 -0
- package/src/pedagogy/ui/index.ts +37 -0
- package/src/pedagogy/ui/tutorialLevels.ts +27 -0
- package/src/router/core/address.ts +74 -0
- package/src/router/core/basePath.ts +76 -0
- package/src/router/core/index.ts +26 -0
- package/src/router/core/legacyHash.ts +77 -0
- package/src/router/core/pageAddresses.ts +106 -0
- package/src/router/core/query.ts +87 -0
- package/src/router/core/tabRouter.ts +214 -0
- package/src/seo/core/documentMeta.ts +92 -0
- package/src/seo/core/index.ts +6 -0
- package/src/share/core/config.ts +165 -0
- package/src/share/core/escape.ts +22 -0
- package/src/share/core/index.ts +31 -0
- package/src/share/core/params.ts +176 -0
- package/src/share/core/query.ts +72 -0
- package/src/share/core/url.ts +105 -0
- package/src/share/core/vocabulary.ts +60 -0
- package/src/share/ui/HiddenPartsProvider.tsx +34 -0
- package/src/share/ui/PagePart.tsx +26 -0
- package/src/share/ui/ShareButton.tsx +84 -0
- package/src/share/ui/ShareDialog.tsx +114 -0
- package/src/share/ui/ShareDialogContent.tsx +189 -0
- package/src/share/ui/SharePartOptions.tsx +51 -0
- package/src/share/ui/draft.ts +19 -0
- package/src/share/ui/hiddenParts.ts +22 -0
- package/src/share/ui/index.ts +9 -0
- package/src/shared/ui/index.ts +2 -1
- package/src/state/ui/index.ts +6 -0
- package/src/state/ui/mergeStored.ts +87 -0
- package/src/state/ui/persistBucket.ts +147 -0
- package/src/structure/core/editorValue.ts +116 -0
- package/src/structure/core/fragmentQuery.ts +50 -0
- package/src/structure/core/index.ts +13 -0
- package/src/structure/core/molfile.ts +90 -0
- package/src/structure/core/readStructure.ts +73 -0
- package/src/structure/core/structureSource.ts +57 -0
- package/src/structure/core/toolbarFloor.ts +31 -0
- package/src/structure/ui/EditorCanvas.tsx +130 -0
- package/src/structure/ui/Structure.tsx +183 -0
- package/src/structure/ui/StructureEditor.tsx +196 -0
- package/src/structure/ui/StructurePlaceholder.tsx +48 -0
- package/src/structure/ui/StructureSvg.tsx +110 -0
- package/src/structure/ui/index.ts +22 -0
- package/src/structure/ui/useToolbarFloor.ts +93 -0
- package/src/structure.ts +2 -0
- package/src/ui.ts +13 -0
- package/src/worker/core/errors.ts +15 -0
- package/src/worker/core/index.ts +8 -0
- package/src/worker/core/messages.ts +47 -0
- package/src/worker/core/workerChannel.ts +218 -0
- package/styles/chrome.css +223 -0
|
@@ -55,4 +55,31 @@ export declare function createAtomicOrbitalEvaluator(orbital: AtomicOrbital): Or
|
|
|
55
55
|
* @returns A cube centred on the nucleus.
|
|
56
56
|
*/
|
|
57
57
|
export declare function atomicGridBox(orbital: AtomicOrbital, enclosedFraction?: number, padding?: number): GridBox;
|
|
58
|
+
/** How finely one orbital may be sampled, whatever its shape asks for. */
|
|
59
|
+
export interface ResolutionLimits {
|
|
60
|
+
/** Samples per edge no orbital drops below. */
|
|
61
|
+
floor: number;
|
|
62
|
+
/** Samples per edge no orbital exceeds. */
|
|
63
|
+
cap: number;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* How finely this particular orbital has to be sampled.
|
|
67
|
+
*
|
|
68
|
+
* One resolution for a whole periodic table draws the nested orbitals badly.
|
|
69
|
+
* The box is sized by the outermost lobe, but a `4p` also has to separate two
|
|
70
|
+
* inner shells packed against the nucleus, and at 56 samples per edge xenon's
|
|
71
|
+
* innermost 4p lobe spans **6.6 voxels** while the outer one spans 41 — the
|
|
72
|
+
* inner shells come out as lumps and the outer surface visibly faceted. What
|
|
73
|
+
* sets the requirement is therefore the ratio between the box and the smallest
|
|
74
|
+
* feature in it, not the orbital's size, which is why a nodeless orbital
|
|
75
|
+
* (every `1s`, `2p`, `3d`, `4f`) stays on the floor and costs nothing extra.
|
|
76
|
+
*
|
|
77
|
+
* The cap is not a budget cheat: the innermost lobe of caesium's `7s` would
|
|
78
|
+
* need 858 samples per edge, and no uniform grid the browser can afford
|
|
79
|
+
* resolves it. Those orbitals are drawn as well as the cap allows.
|
|
80
|
+
* @param orbital - The orbital to draw.
|
|
81
|
+
* @param limits - See {@link ResolutionLimits}.
|
|
82
|
+
* @returns Samples along each edge of the cube.
|
|
83
|
+
*/
|
|
84
|
+
export declare function atomicGridResolution(orbital: AtomicOrbital, limits: ResolutionLimits): number;
|
|
58
85
|
//# sourceMappingURL=atomicGrid.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"atomicGrid.d.ts","sourceRoot":"","sources":["../../../src/orbital/core/atomicGrid.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"atomicGrid.d.ts","sourceRoot":"","sources":["../../../src/orbital/core/atomicGrid.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAQxE,0DAA0D;AAC1D,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,aAAa,EACtB,OAAO,GAAE,iBAAsB,GAC9B,WAAW,CAWb;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,aAAa,GACrB,gBAAgB,CAalB;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,aAAa,EACtB,gBAAgB,SAA4B,EAC5C,OAAO,SAAkB,GACxB,OAAO,CAQT;AAED,0EAA0E;AAC1E,MAAM,WAAW,gBAAgB;IAC/B,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,gBAAgB,GACvB,MAAM,CAUR"}
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
*/
|
|
14
14
|
import { hydrogenicParametersOf } from "./atomicOrbitals.js";
|
|
15
15
|
import { evaluateGrid } from "./grid.js";
|
|
16
|
-
import { createRadialFunction, enclosingRadius } from "./hydrogenic.js";
|
|
16
|
+
import { createRadialFunction, enclosingRadius, radialNodeRadii, } from "./hydrogenic.js";
|
|
17
17
|
/**
|
|
18
18
|
* Sample an atomic orbital onto a cubic grid centred on its nucleus.
|
|
19
19
|
* @param orbital - The orbital to draw.
|
|
@@ -60,8 +60,44 @@ export function atomicGridBox(orbital, enclosedFraction = DEFAULT_ENCLOSED_FRACT
|
|
|
60
60
|
size: { x: 2 * half, y: 2 * half, z: 2 * half },
|
|
61
61
|
};
|
|
62
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* How finely this particular orbital has to be sampled.
|
|
65
|
+
*
|
|
66
|
+
* One resolution for a whole periodic table draws the nested orbitals badly.
|
|
67
|
+
* The box is sized by the outermost lobe, but a `4p` also has to separate two
|
|
68
|
+
* inner shells packed against the nucleus, and at 56 samples per edge xenon's
|
|
69
|
+
* innermost 4p lobe spans **6.6 voxels** while the outer one spans 41 — the
|
|
70
|
+
* inner shells come out as lumps and the outer surface visibly faceted. What
|
|
71
|
+
* sets the requirement is therefore the ratio between the box and the smallest
|
|
72
|
+
* feature in it, not the orbital's size, which is why a nodeless orbital
|
|
73
|
+
* (every `1s`, `2p`, `3d`, `4f`) stays on the floor and costs nothing extra.
|
|
74
|
+
*
|
|
75
|
+
* The cap is not a budget cheat: the innermost lobe of caesium's `7s` would
|
|
76
|
+
* need 858 samples per edge, and no uniform grid the browser can afford
|
|
77
|
+
* resolves it. Those orbitals are drawn as well as the cap allows.
|
|
78
|
+
* @param orbital - The orbital to draw.
|
|
79
|
+
* @param limits - See {@link ResolutionLimits}.
|
|
80
|
+
* @returns Samples along each edge of the cube.
|
|
81
|
+
*/
|
|
82
|
+
export function atomicGridResolution(orbital, limits) {
|
|
83
|
+
const { floor, cap } = limits;
|
|
84
|
+
const parameters = hydrogenicParametersOf(orbital);
|
|
85
|
+
const innermost = radialNodeRadii(parameters)[0];
|
|
86
|
+
if (innermost === undefined || !(innermost > 0))
|
|
87
|
+
return Math.min(floor, cap);
|
|
88
|
+
const half = atomicGridBox(orbital).size.x / 2;
|
|
89
|
+
// The samples span the box edge to edge, so `resolution - 1` of them cover
|
|
90
|
+
// it: a lobe of radius r gets `r (resolution - 1) / half` across its diameter.
|
|
91
|
+
const needed = Math.ceil((INNER_LOBE_SAMPLES * half) / innermost) + 1;
|
|
92
|
+
return Math.min(cap, Math.max(floor, needed));
|
|
93
|
+
}
|
|
63
94
|
/** Samples per edge; the cost is the cube of it. */
|
|
64
95
|
const DEFAULT_RESOLUTION = 56;
|
|
96
|
+
/**
|
|
97
|
+
* Samples the innermost radial lobe is asked to span, edge to edge. Below
|
|
98
|
+
* about eight, marching cubes turns a sphere into a faceted blob.
|
|
99
|
+
*/
|
|
100
|
+
const INNER_LOBE_SAMPLES = 12;
|
|
65
101
|
/** A tail past this holds too little density to change the surface. */
|
|
66
102
|
const DEFAULT_ENCLOSED_FRACTION = 0.985;
|
|
67
103
|
/** Room for the surface to close before the box ends. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"atomicGrid.js","sourceRoot":"","sources":["../../../src/orbital/core/atomicGrid.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,
|
|
1
|
+
{"version":3,"file":"atomicGrid.js","sourceRoot":"","sources":["../../../src/orbital/core/atomicGrid.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
export type {
|
|
2
|
-
export {
|
|
1
|
+
export type { ResolutionLimits } from './atomicGrid.ts';
|
|
2
|
+
export { atomicGridResolution } from './atomicGrid.ts';
|
|
3
3
|
export type { AtomicOrbital, AtomicOrbitalOptions } from './atomicOrbitals.ts';
|
|
4
|
-
export { atomicOrbitalsOf, defaultOrbitalId, findAtomicOrbital, hydrogenicParametersOf,
|
|
4
|
+
export { atomicOrbitalsOf, defaultOrbitalId, findAtomicOrbital, hydrogenicParametersOf, } from './atomicOrbitals.ts';
|
|
5
5
|
export type { Vec3 } from './constants.ts';
|
|
6
|
-
export { BOHR_IN_ANGSTROM,
|
|
6
|
+
export { BOHR_IN_ANGSTROM, RYDBERG_ELECTRONVOLTS } from './constants.ts';
|
|
7
7
|
export type { Subshell, SubshellOccupancy } from './electronConfiguration.ts';
|
|
8
|
-
export { ELEMENT_ANOMALIES, HIGHEST_ATOMIC_NUMBER, MADELUNG_ORDER, NOBLE_GASES,
|
|
8
|
+
export { ELEMENT_ANOMALIES, HIGHEST_ATOMIC_NUMBER, MADELUNG_ORDER, NOBLE_GASES, aufbauConfigurationOf, configurationOf, coreAtomicNumber, formatConfiguration, formatOccupancy, isAnomalous, subshellCapacity, subshellLabel, } from './electronConfiguration.ts';
|
|
9
9
|
export type { GridBox, OrbitalEvaluator, OrbitalGrid } from './grid.ts';
|
|
10
10
|
export { evaluateGrid, gridIndex } from './grid.ts';
|
|
11
|
+
export type { OrbitalContour } from './isovalue.ts';
|
|
12
|
+
export { enclosedReach, isocontourCutoff, orbitalContour } from './isovalue.ts';
|
|
11
13
|
export type { HydrogenicParameters } from './hydrogenic.ts';
|
|
12
14
|
export { createRadialFunction, enclosingRadius, meanRadius, orbitalEnergy, radialAmplitude, radialNodeCount, radialNodeRadii, radialProfile, } from './hydrogenic.ts';
|
|
13
15
|
export { hundDistribution, outermostShell, withoutOutermostElectron, } from './occupancy.ts';
|
|
@@ -16,7 +18,7 @@ export { DEFAULT_PHASE_PALETTE_ID, PHASE_PALETTES } from './palette.ts';
|
|
|
16
18
|
export type { RealHarmonic } from './realHarmonics.ts';
|
|
17
19
|
export { REAL_HARMONICS, SUBSHELL_LETTERS, harmonicsOf, subshellLetter, } from './realHarmonics.ts';
|
|
18
20
|
export type { AtomicSampleRequest, AtomicSampleResult, AtomicSampler, } from './sample.ts';
|
|
19
|
-
export { runAtomicSample
|
|
21
|
+
export { runAtomicSample } from './sample.ts';
|
|
20
22
|
export type { Screening } from './screening.ts';
|
|
21
|
-
export {
|
|
23
|
+
export { slaterScreening } from './screening.ts';
|
|
22
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,
|
|
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,12 +1,13 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export { atomicOrbitalsOf, defaultOrbitalId, findAtomicOrbital, hydrogenicParametersOf,
|
|
3
|
-
export { BOHR_IN_ANGSTROM,
|
|
4
|
-
export { ELEMENT_ANOMALIES, HIGHEST_ATOMIC_NUMBER, MADELUNG_ORDER, NOBLE_GASES,
|
|
1
|
+
export { atomicGridResolution } from "./atomicGrid.js";
|
|
2
|
+
export { atomicOrbitalsOf, defaultOrbitalId, findAtomicOrbital, hydrogenicParametersOf, } from "./atomicOrbitals.js";
|
|
3
|
+
export { BOHR_IN_ANGSTROM, RYDBERG_ELECTRONVOLTS } from "./constants.js";
|
|
4
|
+
export { ELEMENT_ANOMALIES, HIGHEST_ATOMIC_NUMBER, MADELUNG_ORDER, NOBLE_GASES, aufbauConfigurationOf, configurationOf, coreAtomicNumber, formatConfiguration, formatOccupancy, isAnomalous, subshellCapacity, subshellLabel, } from "./electronConfiguration.js";
|
|
5
5
|
export { evaluateGrid, gridIndex } from "./grid.js";
|
|
6
|
+
export { enclosedReach, isocontourCutoff, orbitalContour } from "./isovalue.js";
|
|
6
7
|
export { createRadialFunction, enclosingRadius, meanRadius, orbitalEnergy, radialAmplitude, radialNodeCount, radialNodeRadii, radialProfile, } from "./hydrogenic.js";
|
|
7
8
|
export { hundDistribution, outermostShell, withoutOutermostElectron, } from "./occupancy.js";
|
|
8
9
|
export { DEFAULT_PHASE_PALETTE_ID, PHASE_PALETTES } from "./palette.js";
|
|
9
10
|
export { REAL_HARMONICS, SUBSHELL_LETTERS, harmonicsOf, subshellLetter, } from "./realHarmonics.js";
|
|
10
|
-
export { runAtomicSample
|
|
11
|
-
export {
|
|
11
|
+
export { runAtomicSample } from "./sample.js";
|
|
12
|
+
export { slaterScreening } from "./screening.js";
|
|
12
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/orbital/core/index.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Choosing the value a signed wavefunction's isosurface is drawn at.
|
|
3
|
+
*
|
|
4
|
+
* The surface is named by how much of the electron it holds, not by an
|
|
5
|
+
* amplitude: `ENCLOSED_WEIGHT` of `∫|ψ|² dV` inside it and the tail
|
|
6
|
+
* outside. On a uniform grid that is a weighted quantile of the samples, and
|
|
7
|
+
* the isovalue is the `|ψ|` at which the quantile falls.
|
|
8
|
+
*
|
|
9
|
+
* molstar ships `computeOrbitalIsocontourValues` for the same job, and it
|
|
10
|
+
* cannot be used here. It abandons any field whose mean `ψ²` is under an
|
|
11
|
+
* absolute `1e-5` and returns no isovalue at all — a guard against degenerate
|
|
12
|
+
* data that instead reads the amplitude *scale*. Amplitudes are Å^(-3/2), so a
|
|
13
|
+
* diffuse orbital is normalised straight into that range and draws nothing:
|
|
14
|
+
* caesium's 6s reaches 13 Å, and 2588 of the 7460 orbitals lcao.cheminfo.org
|
|
15
|
+
* offers came back blank. A quantile has no scale of its own and cannot.
|
|
16
|
+
*
|
|
17
|
+
* Every pass below touches each of the million-odd samples, so all of them are
|
|
18
|
+
* indexed loops: `for…of` over a `Float32Array` measures 6.7× slower.
|
|
19
|
+
*/
|
|
20
|
+
import type { OrbitalGrid } from './grid.ts';
|
|
21
|
+
/**
|
|
22
|
+
* The `|ψ|` whose surface encloses a given share of the sampled electron.
|
|
23
|
+
* @param data - The sampled amplitudes.
|
|
24
|
+
* @param enclosedWeight - Share of `∑ψ²` to hold inside, between 0 and 1.
|
|
25
|
+
* @returns The isovalue, or 0 when the field is empty — a nodeless orbital
|
|
26
|
+
* sampled where it has no amplitude at all.
|
|
27
|
+
* @throws {Error} When `enclosedWeight` is outside `(0, 1)`.
|
|
28
|
+
*/
|
|
29
|
+
export declare function isocontourCutoff(data: Float32Array, enclosedWeight?: number): number;
|
|
30
|
+
/**
|
|
31
|
+
* How far from the centre of the box the drawn surface actually reaches.
|
|
32
|
+
*
|
|
33
|
+
* Molstar sizes a volume representation's bounding sphere from the whole
|
|
34
|
+
* sampled box, which is deliberately larger than the isosurface inside it, so a
|
|
35
|
+
* camera framing that sphere leaves the orbital a quarter of the frame wide.
|
|
36
|
+
* Measuring the samples that are really enclosed gives the camera the extent it
|
|
37
|
+
* has to fill.
|
|
38
|
+
* @param field - The sampled field.
|
|
39
|
+
* @param cutoff - The isovalue the surfaces are drawn at.
|
|
40
|
+
* @returns The reach in ångström, or 0 when nothing is enclosed.
|
|
41
|
+
*/
|
|
42
|
+
export declare function enclosedReach(field: OrbitalGrid, cutoff: number): number;
|
|
43
|
+
/** Which isovalue each phase is drawn at, and how far the pair reaches. */
|
|
44
|
+
export interface OrbitalContour {
|
|
45
|
+
/** `|ψ|` on the surface; 0 when there is nothing to draw. */
|
|
46
|
+
cutoff: number;
|
|
47
|
+
/** Distance from the centre of the box to the outermost enclosed sample. */
|
|
48
|
+
reach: number;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* The isovalue and the extent of one sampled orbital's surface pair.
|
|
52
|
+
*
|
|
53
|
+
* Both phases come from one cutoff, so they can never disagree about where the
|
|
54
|
+
* node between them is.
|
|
55
|
+
* @param field - The sampled field.
|
|
56
|
+
* @param enclosedWeight - Share of `∑ψ²` to hold inside.
|
|
57
|
+
* @returns See {@link OrbitalContour}.
|
|
58
|
+
*/
|
|
59
|
+
export declare function orbitalContour(field: OrbitalGrid, enclosedWeight?: number): OrbitalContour;
|
|
60
|
+
//# sourceMappingURL=isovalue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isovalue.d.ts","sourceRoot":"","sources":["../../../src/orbital/core/isovalue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,YAAY,EAClB,cAAc,GAAE,MAAwB,GACvC,MAAM,CAwCR;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAuBxE;AAED,2EAA2E;AAC3E,MAAM,WAAW,cAAc;IAC7B,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,WAAW,EAClB,cAAc,GAAE,MAAwB,GACvC,cAAc,CAGhB"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Choosing the value a signed wavefunction's isosurface is drawn at.
|
|
3
|
+
*
|
|
4
|
+
* The surface is named by how much of the electron it holds, not by an
|
|
5
|
+
* amplitude: `ENCLOSED_WEIGHT` of `∫|ψ|² dV` inside it and the tail
|
|
6
|
+
* outside. On a uniform grid that is a weighted quantile of the samples, and
|
|
7
|
+
* the isovalue is the `|ψ|` at which the quantile falls.
|
|
8
|
+
*
|
|
9
|
+
* molstar ships `computeOrbitalIsocontourValues` for the same job, and it
|
|
10
|
+
* cannot be used here. It abandons any field whose mean `ψ²` is under an
|
|
11
|
+
* absolute `1e-5` and returns no isovalue at all — a guard against degenerate
|
|
12
|
+
* data that instead reads the amplitude *scale*. Amplitudes are Å^(-3/2), so a
|
|
13
|
+
* diffuse orbital is normalised straight into that range and draws nothing:
|
|
14
|
+
* caesium's 6s reaches 13 Å, and 2588 of the 7460 orbitals lcao.cheminfo.org
|
|
15
|
+
* offers came back blank. A quantile has no scale of its own and cannot.
|
|
16
|
+
*
|
|
17
|
+
* Every pass below touches each of the million-odd samples, so all of them are
|
|
18
|
+
* indexed loops: `for…of` over a `Float32Array` measures 6.7× slower.
|
|
19
|
+
*/
|
|
20
|
+
import { ENCLOSED_WEIGHT } from "./constants.js";
|
|
21
|
+
/**
|
|
22
|
+
* The `|ψ|` whose surface encloses a given share of the sampled electron.
|
|
23
|
+
* @param data - The sampled amplitudes.
|
|
24
|
+
* @param enclosedWeight - Share of `∑ψ²` to hold inside, between 0 and 1.
|
|
25
|
+
* @returns The isovalue, or 0 when the field is empty — a nodeless orbital
|
|
26
|
+
* sampled where it has no amplitude at all.
|
|
27
|
+
* @throws {Error} When `enclosedWeight` is outside `(0, 1)`.
|
|
28
|
+
*/
|
|
29
|
+
export function isocontourCutoff(data, enclosedWeight = ENCLOSED_WEIGHT) {
|
|
30
|
+
if (!(enclosedWeight > 0) || enclosedWeight >= 1) {
|
|
31
|
+
throw new RangeError('the enclosed weight must be in (0, 1)');
|
|
32
|
+
}
|
|
33
|
+
let total = 0;
|
|
34
|
+
let peak = 0;
|
|
35
|
+
for (let index = data.length - 1; index >= 0; index--) {
|
|
36
|
+
const value = data[index];
|
|
37
|
+
const weight = value * value;
|
|
38
|
+
total += weight;
|
|
39
|
+
if (weight > peak)
|
|
40
|
+
peak = weight;
|
|
41
|
+
}
|
|
42
|
+
if (!(total > 0))
|
|
43
|
+
return 0;
|
|
44
|
+
// Bins are logarithmic because a wavefunction spans decades between its peak
|
|
45
|
+
// and its tail while the isovalue sits far below the peak: linear bins would
|
|
46
|
+
// drop every sample that decides the answer into the first one.
|
|
47
|
+
const bins = new Float64Array(BIN_COUNT);
|
|
48
|
+
const peakLogarithm = Math.log2(peak);
|
|
49
|
+
for (let index = data.length - 1; index >= 0; index--) {
|
|
50
|
+
const value = data[index];
|
|
51
|
+
const weight = value * value;
|
|
52
|
+
if (weight === 0)
|
|
53
|
+
continue;
|
|
54
|
+
const bin = Math.floor((peakLogarithm - Math.log2(weight)) * BINS_PER_OCTAVE);
|
|
55
|
+
const clamped = bin < 0 ? 0 : Math.min(bin, BIN_COUNT - 1);
|
|
56
|
+
bins[clamped] = bins[clamped] + weight;
|
|
57
|
+
}
|
|
58
|
+
const target = total * enclosedWeight;
|
|
59
|
+
let running = 0;
|
|
60
|
+
for (let bin = 0; bin < BIN_COUNT; bin++) {
|
|
61
|
+
running += bins[bin];
|
|
62
|
+
// Everything above this bin's lower edge is what has just been counted.
|
|
63
|
+
if (running >= target) {
|
|
64
|
+
return Math.sqrt(peak * 2 ** (-(bin + 1) / BINS_PER_OCTAVE));
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return 0;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* How far from the centre of the box the drawn surface actually reaches.
|
|
71
|
+
*
|
|
72
|
+
* Molstar sizes a volume representation's bounding sphere from the whole
|
|
73
|
+
* sampled box, which is deliberately larger than the isosurface inside it, so a
|
|
74
|
+
* camera framing that sphere leaves the orbital a quarter of the frame wide.
|
|
75
|
+
* Measuring the samples that are really enclosed gives the camera the extent it
|
|
76
|
+
* has to fill.
|
|
77
|
+
* @param field - The sampled field.
|
|
78
|
+
* @param cutoff - The isovalue the surfaces are drawn at.
|
|
79
|
+
* @returns The reach in ångström, or 0 when nothing is enclosed.
|
|
80
|
+
*/
|
|
81
|
+
export function enclosedReach(field, cutoff) {
|
|
82
|
+
if (!(cutoff > 0))
|
|
83
|
+
return 0;
|
|
84
|
+
const { data, dimensions, origin, spacing } = field;
|
|
85
|
+
const [countX, countY, countZ] = dimensions;
|
|
86
|
+
const centreX = origin.x + ((countX - 1) * spacing) / 2;
|
|
87
|
+
const centreY = origin.y + ((countY - 1) * spacing) / 2;
|
|
88
|
+
const centreZ = origin.z + ((countZ - 1) * spacing) / 2;
|
|
89
|
+
let furthest = 0;
|
|
90
|
+
let index = 0;
|
|
91
|
+
for (let indexX = 0; indexX < countX; indexX++) {
|
|
92
|
+
const dx = origin.x + indexX * spacing - centreX;
|
|
93
|
+
for (let indexY = 0; indexY < countY; indexY++) {
|
|
94
|
+
const dy = origin.y + indexY * spacing - centreY;
|
|
95
|
+
for (let indexZ = 0; indexZ < countZ; indexZ++) {
|
|
96
|
+
const value = data[index++];
|
|
97
|
+
if (value < cutoff && value > -cutoff)
|
|
98
|
+
continue;
|
|
99
|
+
const dz = origin.z + indexZ * spacing - centreZ;
|
|
100
|
+
const squared = dx * dx + dy * dy + dz * dz;
|
|
101
|
+
if (squared > furthest)
|
|
102
|
+
furthest = squared;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return Math.sqrt(furthest);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* The isovalue and the extent of one sampled orbital's surface pair.
|
|
110
|
+
*
|
|
111
|
+
* Both phases come from one cutoff, so they can never disagree about where the
|
|
112
|
+
* node between them is.
|
|
113
|
+
* @param field - The sampled field.
|
|
114
|
+
* @param enclosedWeight - Share of `∑ψ²` to hold inside.
|
|
115
|
+
* @returns See {@link OrbitalContour}.
|
|
116
|
+
*/
|
|
117
|
+
export function orbitalContour(field, enclosedWeight = ENCLOSED_WEIGHT) {
|
|
118
|
+
const cutoff = isocontourCutoff(field.data, enclosedWeight);
|
|
119
|
+
return { cutoff, reach: enclosedReach(field, cutoff) };
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Bins per doubling of `ψ²`, so the isovalue lands within 2.2% in `|ψ|`.
|
|
123
|
+
* Finer than the grid spacing can resolve on the surface it produces.
|
|
124
|
+
*/
|
|
125
|
+
const BINS_PER_OCTAVE = 16;
|
|
126
|
+
/** 128 octaves of `ψ²`, far past the dynamic range of a sampled orbital. */
|
|
127
|
+
const BIN_COUNT = 2048;
|
|
128
|
+
//# sourceMappingURL=isovalue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isovalue.js","sourceRoot":"","sources":["../../../src/orbital/core/isovalue.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,9 @@
|
|
|
10
10
|
* implements this contract in a worker and hands `AtomicOrbitalViewer` the
|
|
11
11
|
* `sample` prop; one that does not gets the in-process version for free.
|
|
12
12
|
*/
|
|
13
|
+
import type { ResolutionLimits } from './atomicGrid.ts';
|
|
13
14
|
import type { OrbitalGrid } from './grid.ts';
|
|
15
|
+
import type { OrbitalContour } from './isovalue.ts';
|
|
14
16
|
/** Which orbital to sample, and how finely. */
|
|
15
17
|
export interface AtomicSampleRequest {
|
|
16
18
|
/** Proton count, 1 to 118. */
|
|
@@ -19,14 +21,26 @@ export interface AtomicSampleRequest {
|
|
|
19
21
|
orbitalId: string;
|
|
20
22
|
/**
|
|
21
23
|
* Samples along each edge of the cube. The cost is the cube of this.
|
|
24
|
+
*
|
|
25
|
+
* A number fixes the resolution. {@link ResolutionLimits} lets the orbital's
|
|
26
|
+
* own shape pick one between the two, which is what a nested orbital needs —
|
|
27
|
+
* see {@link atomicGridResolution}.
|
|
22
28
|
* @default 56
|
|
23
29
|
*/
|
|
24
|
-
resolution?: number;
|
|
30
|
+
resolution?: number | ResolutionLimits;
|
|
25
31
|
}
|
|
26
32
|
/** What one sampling job produces. */
|
|
27
33
|
export interface AtomicSampleResult {
|
|
28
34
|
/** The signed field, ready for an isosurface. */
|
|
29
35
|
grid: OrbitalGrid;
|
|
36
|
+
/**
|
|
37
|
+
* The isovalue both phases are drawn at, and how far the pair reaches.
|
|
38
|
+
*
|
|
39
|
+
* Measured here rather than beside the renderer: both passes are O(samples),
|
|
40
|
+
* and at the resolutions a nested orbital asks for that is over a million of
|
|
41
|
+
* them on whichever thread runs this.
|
|
42
|
+
*/
|
|
43
|
+
contour: OrbitalContour;
|
|
30
44
|
/** Radii of the orbital's radial nodes, ångström, ascending. */
|
|
31
45
|
nodeRadii: number[];
|
|
32
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sample.d.ts","sourceRoot":"","sources":["../../../src/orbital/core/sample.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"sample.d.ts","sourceRoot":"","sources":["../../../src/orbital/core/sample.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAqB,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAO3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGpD,+CAA+C;AAC/C,MAAM,WAAW,mBAAmB;IAClC,8BAA8B;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;CACxC;AAED,sCAAsC;AACtC,MAAM,WAAW,kBAAkB;IACjC,iDAAiD;IACjD,IAAI,EAAE,WAAW,CAAC;IAClB;;;;;;OAMG;IACH,OAAO,EAAE,cAAc,CAAC;IACxB,gEAAgE;IAChE,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,mBAAmB,GAC3B,kBAAkB,CAuBpB;AAED,4EAA4E;AAC5E,MAAM,MAAM,aAAa,GAAG,CAC1B,OAAO,EAAE,mBAAmB,KACzB,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAEjC;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,aAK7B,CAAC"}
|
|
@@ -10,9 +10,10 @@
|
|
|
10
10
|
* implements this contract in a worker and hands `AtomicOrbitalViewer` the
|
|
11
11
|
* `sample` prop; one that does not gets the in-process version for free.
|
|
12
12
|
*/
|
|
13
|
-
import { sampleAtomicOrbital } from "./atomicGrid.js";
|
|
13
|
+
import { atomicGridResolution, sampleAtomicOrbital } from "./atomicGrid.js";
|
|
14
14
|
import { atomicOrbitalsOf, findAtomicOrbital, hydrogenicParametersOf, } from "./atomicOrbitals.js";
|
|
15
15
|
import { radialNodeRadii } from "./hydrogenic.js";
|
|
16
|
+
import { orbitalContour } from "./isovalue.js";
|
|
16
17
|
/**
|
|
17
18
|
* Sample one atomic orbital onto a grid.
|
|
18
19
|
*
|
|
@@ -32,10 +33,16 @@ export function runAtomicSample(request) {
|
|
|
32
33
|
.join(', ')}.`);
|
|
33
34
|
}
|
|
34
35
|
const options = {};
|
|
35
|
-
if (resolution
|
|
36
|
+
if (typeof resolution === 'number') {
|
|
36
37
|
options.resolution = resolution;
|
|
38
|
+
}
|
|
39
|
+
else if (resolution !== undefined) {
|
|
40
|
+
options.resolution = atomicGridResolution(orbital, resolution);
|
|
41
|
+
}
|
|
42
|
+
const grid = sampleAtomicOrbital(orbital, options);
|
|
37
43
|
return {
|
|
38
|
-
grid
|
|
44
|
+
grid,
|
|
45
|
+
contour: orbitalContour(grid),
|
|
39
46
|
nodeRadii: radialNodeRadii(hydrogenicParametersOf(orbital)),
|
|
40
47
|
};
|
|
41
48
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sample.js","sourceRoot":"","sources":["../../../src/orbital/core/sample.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"sample.js","sourceRoot":"","sources":["../../../src/orbital/core/sample.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAmC/C;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAC7B,OAA4B;IAE5B,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IACxD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,iBAAiB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACvD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,WAAW,YAAY,mBAAmB,SAAS,YAAY,QAAQ;aACpE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;aACxB,IAAI,CAAC,IAAI,CAAC,GAAG,CACjB,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAsB,EAAE,CAAC;IACtC,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACnC,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;IAClC,CAAC;SAAM,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QACpC,OAAO,CAAC,UAAU,GAAG,oBAAoB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACjE,CAAC;IACD,MAAM,IAAI,GAAG,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACnD,OAAO;QACL,IAAI;QACJ,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC;QAC7B,SAAS,EAAE,eAAe,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;KAC5D,CAAC;AACJ,CAAC;AAOD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAkB,KAAK,EAAE,OAAO,EAAE,EAAE;IAC9D,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC5B,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;IACH,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC;AAClC,CAAC,CAAC"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* reason the two components are separate files.
|
|
7
7
|
*/
|
|
8
8
|
import type { ReactElement } from 'react';
|
|
9
|
+
import type { ResolutionLimits } from '../core/atomicGrid.ts';
|
|
9
10
|
import type { PhasePalette } from '../core/palette.ts';
|
|
10
11
|
import type { AtomicSampler } from '../core/sample.ts';
|
|
11
12
|
/** Props of {@link AtomicOrbitalCanvas}. */
|
|
@@ -21,9 +22,13 @@ export interface AtomicOrbitalCanvasProps {
|
|
|
21
22
|
palette?: PhasePalette;
|
|
22
23
|
/**
|
|
23
24
|
* Samples along each edge of the cube; the cost is the cube of it.
|
|
25
|
+
*
|
|
26
|
+
* A number fixes it. A {@link ResolutionLimits} pair lets each orbital's own
|
|
27
|
+
* shape pick a resolution between the two, which is what the orbitals with
|
|
28
|
+
* inner shells packed against the nucleus need.
|
|
24
29
|
* @default 56
|
|
25
30
|
*/
|
|
26
|
-
resolution?: number;
|
|
31
|
+
resolution?: number | ResolutionLimits;
|
|
27
32
|
/**
|
|
28
33
|
* Whether the scene turns on its own, which is what makes a still screenshot
|
|
29
34
|
* of a 3D shape readable.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AtomicOrbitalCanvas.d.ts","sourceRoot":"","sources":["../../../src/orbital/ui/AtomicOrbitalCanvas.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,OAAO,CAAC;AAGzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAMvD,4CAA4C;AAC5C,MAAM,WAAW,wBAAwB;IACvC,6CAA6C;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB
|
|
1
|
+
{"version":3,"file":"AtomicOrbitalCanvas.d.ts","sourceRoot":"","sources":["../../../src/orbital/ui/AtomicOrbitalCanvas.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,OAAO,CAAC;AAGzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAMvD,4CAA4C;AAC5C,MAAM,WAAW,wBAAwB;IACvC,6CAA6C;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IACvC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACxC;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,wBAAwB,GAC9B,YAAY,CAkFd"}
|
|
@@ -15,7 +15,7 @@ export function AtomicOrbitalCanvas(props) {
|
|
|
15
15
|
const [drawn, setDrawn] = useState(null);
|
|
16
16
|
// What the canvas is being asked to show. Comparing it with what it *is*
|
|
17
17
|
// showing gives the progress note without a state write on every prop change.
|
|
18
|
-
const wanted = `${atomicNumber}|${orbitalId}|${resolution}|${palette.id}`;
|
|
18
|
+
const wanted = `${atomicNumber}|${orbitalId}|${resolutionKey(resolution)}|${palette.id}`;
|
|
19
19
|
const busy = drawn !== wanted;
|
|
20
20
|
// Callbacks are read through refs so a caller passing an inline arrow does
|
|
21
21
|
// not re-sample the orbital on every render of its parent.
|
|
@@ -52,7 +52,7 @@ export function AtomicOrbitalCanvas(props) {
|
|
|
52
52
|
if (cancelled)
|
|
53
53
|
return;
|
|
54
54
|
callbacks.current.onNodeRadii?.(result.nodeRadii);
|
|
55
|
-
const reach = await viewer.showOrbital(result.grid, {
|
|
55
|
+
const reach = await viewer.showOrbital(result.grid, result.contour, {
|
|
56
56
|
positiveColour: palette.positive,
|
|
57
57
|
negativeColour: palette.negative,
|
|
58
58
|
});
|
|
@@ -76,6 +76,16 @@ export function AtomicOrbitalCanvas(props) {
|
|
|
76
76
|
}
|
|
77
77
|
/** Samples per edge; 56 resolves the radial node of a 3s in about 25 ms. */
|
|
78
78
|
const DEFAULT_RESOLUTION = 56;
|
|
79
|
+
/**
|
|
80
|
+
* A stable identity for either shape the resolution prop can take.
|
|
81
|
+
* @param resolution - A fixed sample count, or the limits it may vary between.
|
|
82
|
+
* @returns A string that changes exactly when the sampling would.
|
|
83
|
+
*/
|
|
84
|
+
function resolutionKey(resolution) {
|
|
85
|
+
return typeof resolution === 'number'
|
|
86
|
+
? String(resolution)
|
|
87
|
+
: `${resolution.floor}-${resolution.cap}`;
|
|
88
|
+
}
|
|
79
89
|
/**
|
|
80
90
|
* A square, centred stage: an atomic orbital is as tall as it is wide, so a
|
|
81
91
|
* square wastes the least of the frame and keeps the lobes the same size when
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AtomicOrbitalCanvas.js","sourceRoot":"","sources":["../../../src/orbital/ui/AtomicOrbitalCanvas.tsx"],"names":[],"mappings":";AASA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"AtomicOrbitalCanvas.js","sourceRoot":"","sources":["../../../src/orbital/ui/AtomicOrbitalCanvas.tsx"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
* ```
|
|
16
16
|
*/
|
|
17
17
|
import type { ReactElement, ReactNode } from 'react';
|
|
18
|
+
import type { ResolutionLimits } from '../core/atomicGrid.ts';
|
|
18
19
|
import type { PhasePalette } from '../core/palette.ts';
|
|
19
20
|
import type { AtomicSampler } from '../core/sample.ts';
|
|
20
21
|
import type { ViewerCapability } from './capability.ts';
|
|
@@ -31,9 +32,12 @@ export interface AtomicOrbitalViewerProps {
|
|
|
31
32
|
palette?: PhasePalette;
|
|
32
33
|
/**
|
|
33
34
|
* Samples along each edge of the cube; the cost is the cube of it.
|
|
35
|
+
*
|
|
36
|
+
* A number fixes it. A {@link ResolutionLimits} pair lets each orbital's own
|
|
37
|
+
* shape pick a resolution between the two.
|
|
34
38
|
* @default 56
|
|
35
39
|
*/
|
|
36
|
-
resolution?: number;
|
|
40
|
+
resolution?: number | ResolutionLimits;
|
|
37
41
|
/**
|
|
38
42
|
* Whether the scene turns on its own.
|
|
39
43
|
* @default false
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AtomicOrbitalViewer.d.ts","sourceRoot":"","sources":["../../../src/orbital/ui/AtomicOrbitalViewer.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAiB,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAQxD,4CAA4C;AAC5C,MAAM,WAAW,wBAAwB;IACvC,6CAA6C;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB
|
|
1
|
+
{"version":3,"file":"AtomicOrbitalViewer.d.ts","sourceRoot":"","sources":["../../../src/orbital/ui/AtomicOrbitalViewer.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAiB,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAQxD,4CAA4C;AAC5C,MAAM,WAAW,wBAAwB;IACvC,6CAA6C;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IACvC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACxC;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,CAAC,UAAU,EAAE,gBAAgB,KAAK,SAAS,CAAC;CACjE;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,wBAAwB,GAC9B,YAAY,CAkCd"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AtomicOrbitalViewer.js","sourceRoot":"","sources":["../../../src/orbital/ui/AtomicOrbitalViewer.tsx"],"names":[],"mappings":";AAkBA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"AtomicOrbitalViewer.js","sourceRoot":"","sources":["../../../src/orbital/ui/AtomicOrbitalViewer.tsx"],"names":[],"mappings":";AAkBA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AASjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,MAAM,mBAAmB,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE;IAC1C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,0BAA2B,CAAC,CAAC;IACzD,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,mBAAmB,EAAE,CAAC;AACjD,CAAC,CAAC,CAAC;AAoDH;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAA+B;IAE/B,MAAM,EACJ,QAAQ,GAAG,wBAAwB,EACnC,iBAAiB,EACjB,GAAG,MAAM,EACV,GAAG,KAAK,CAAC;IACV,MAAM,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IACrD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAE5D,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;QAC1B,OAAO,CACL,cAAK,KAAK,EAAE,UAAU,YACnB,iBAAiB,EAAE,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,OAAO,GAClD,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,eAAK,KAAK,EAAE,UAAU,aACpB,KAAC,QAAQ,IAAC,QAAQ,EAAE,cAAK,KAAK,EAAE,UAAU,YAAG,QAAQ,GAAO,YAC1D,KAAC,mBAAmB,OACd,MAAM,EACV,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE;wBACnB,UAAU,CAAC,OAAO,CAAC,CAAC;oBACtB,CAAC,GACD,GACO,EACV,OAAO,KAAK,IAAI,IAAI,CACnB,eAAK,KAAK,EAAE,aAAa,kDACW,OAAO,IACrC,CACP,IACG,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,GAAkB;IAChC,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,QAAQ;IACvB,GAAG,EAAE,CAAC;IACN,QAAQ,EAAE,CAAC;CACZ,CAAC;AAEF,MAAM,UAAU,GAAkB;IAChC,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,QAAQ;IACpB,cAAc,EAAE,QAAQ;IACxB,SAAS,EAAE,GAAG;IACd,OAAO,EAAE,EAAE;IACX,YAAY,EAAE,CAAC;IACf,UAAU,EAAE,kBAAkB;IAC9B,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,EAAE;IACZ,SAAS,EAAE,QAAQ;CACpB,CAAC;AAEF,MAAM,aAAa,GAAkB;IACnC,OAAO,EAAE,SAAS;IAClB,YAAY,EAAE,CAAC;IACf,UAAU,EAAE,SAAS;IACrB,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,EAAE;CACb,CAAC"}
|