diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..e69de29 diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 781f966..ff4943b 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -15,4 +15,9 @@ conda: python: install: - method: pip - path: . \ No newline at end of file + path: . + +python: + install: + - method: pip + path: docs/source/polyconstruct-sphinx-theme \ No newline at end of file diff --git a/data_paper_examples/pei.itp b/data_paper_examples/pei.itp new file mode 100644 index 0000000..f279d20 --- /dev/null +++ b/data_paper_examples/pei.itp @@ -0,0 +1,117 @@ +;----------------------------TITLE ----------------------------------------------------------------------------------------- +; None +; +; This file was generated at 14:05 on 2024-12-13 by +; +; Automatic Topology Builder +; +; REVISION 2024-11-20 12:06:25 +;--------------------------------------------------------------------------------------------------------------------------- +; Authors : Martin Stroet, Bertrand Caron, Alpeshkumar K. Malde, Thomas Lee, Alan E. Mark +; +; Institute : Molecular Dynamics group, +; School of Chemistry and Molecular Biosciences (SCMB), +; The University of Queensland, QLD 4072, Australia +; URL : https://atb.uq.edu.au +; Citations : 1. Malde AK, Zuo L, Breeze M, Stroet M, Poger D, Nair PC, Oostenbrink C, Mark AE. +; An Automated force field Topology Builder (ATB) and repository: version 1.0. +; Journal of Chemical Theory and Computation, 2011, 7, 4026-4037. +; 2. Stroet M, Caron B, Visscher K, Geerke D, Malde AK, Mark AE. +; Automated Topology Builder version 3.0: Prediction of solvation free enthalpies in water and hexane. +; DOI:10.1021/acs.jctc.8b00768 +; +; Disclaimer : +; While every effort has been made to ensure the accuracy and validity of parameters provided below +; the assignment of parameters is being based on an automated procedure combining data provided by a +; given user as well as calculations performed using third party software. They are provided as a guide. +; The authors of the ATB cannot guarantee that the parameters are complete or that the parameters provided +; are appropriate for use in any specific application. Users are advised to treat these parameters with discretion +; and to perform additional validation tests for their specific application if required. Neither the authors +; of the ATB or The University of Queensland except any responsibly for how the parameters may be used. +; +; Release notes and warnings: +; (1) The topology is based on a set of atomic coordinates and other data provided by the user after +; after quantum mechanical optimization of the structure using different levels of theory depending on +; the nature of the molecule. +; (2) In some cases the automatic bond, bond angle and dihedral type assignment is ambiguous. +; In these cases alternative type codes are provided at the end of the line. +; (3) While bonded parameters are taken where possible from the nominated force field non-standard bond, angle and dihedral +; type code may be incorporated in cases where an exact match could not be found. These are marked as "non-standard" +; or "uncertain" in comments. +; (4) In some cases it is not possible to assign an appropriate parameter automatically. "%%" is used as a place holder +; for those fields that could not be determined automatically. The parameters in these fields must be assigned manually +; before the file can be used. +;--------------------------------------------------------------------------------------------------------------------------- +; Input Structure : LHCU +; Output : UNITED ATOM topology +; Use in conjunction with the corresponding united atom PDB file. +;--------------------------------------------------------------------------------------------------------------------------- +; Citing this topology file +; ATB molid: 1707355 +; ATB Topology Hash: f968d +;--------------------------------------------------------------------------------------------------------------------------- +; Final Topology Generation was performed using: +; A B3LYP/6-31G* optimized geometry. +; Bonded and van der Waals parameters were taken from the GROMOS 54A7 parameter set. +; Initial charges were estimated using the ESP method of Merz-Kollman. +; Final charges and charge groups were generated by method described in the ATB paper. +; If required, additional bonded parameters were generated from a Hessian matrix calculated at the B3LYP/6-31G* level of theory. +;--------------------------------------------------------------------------------------------------------------------------- +; +; +[ moleculetype ] +; Name nrexcl +LHCU 3 +[ atoms ] +; nr type resnr resid atom cgnr charge mass + 1 CH3 1 LHCU C62 1 0.001 15.0350 + 2 CH2 1 LHCU C51 2 0.201 14.0270 + 3 NOpt 1 LHCU N71 3 -0.698 14.0067 + 4 HS14 1 LHCU H72 4 0.292 1.0080 + 5 CH2 1 LHCU C61 5 0.198 14.0270 + 6 CH2 1 LHCU C5 6 0.213 14.0270 + 7 NOpt 1 LHCU N7 7 -0.711 14.0067 + 8 HS14 1 LHCU H21 8 0.306 1.0080 + 9 CH3 1 LHCU C6 9 0.198 15.0350 +; total charge of the molecule: 0.000 +[ bonds ] +; ai aj funct c0 c1 + 1 2 2 0.1530 7.1500e+06 + 2 3 2 0.1470 8.7100e+06 + 3 4 2 0.1020 1.7782e+07 + 3 5 2 0.1470 8.7100e+06 + 5 6 2 0.1530 7.1500e+06 + 6 7 2 0.1470 8.7100e+06 + 7 8 2 0.1020 1.7782e+07 + 7 9 2 0.1470 8.7100e+06 +[ pairs ] +; ai aj funct ; all 1-4 pairs but the ones excluded in GROMOS itp + 1 4 1 + 1 5 1 + 2 6 1 + 3 7 1 + 4 6 1 + 5 8 1 + 5 9 1 +[ angles ] +; ai aj ak funct angle fc + 1 2 3 2 111.00 530.00 + 2 3 4 2 109.50 425.00 + 2 3 5 2 116.00 620.00 + 4 3 5 2 109.50 425.00 + 3 5 6 2 111.00 530.00 + 5 6 7 2 111.00 530.00 + 6 7 8 2 109.50 425.00 + 6 7 9 2 116.00 620.00 + 8 7 9 2 109.50 425.00 +[ dihedrals ] +; GROMOS improper dihedrals +; ai aj ak al funct angle fc +[ dihedrals ] +; ai aj ak al funct ph0 cp mult + 1 2 3 5 1 180.00 1.00 6 + 2 3 5 6 1 180.00 1.00 6 + 3 5 6 7 1 0.00 5.92 3 + 5 6 7 9 1 180.00 1.00 6 +[ exclusions ] +; ai aj funct ; GROMOS 1-4 exclusions \ No newline at end of file diff --git a/data_paper_examples/pei_linear_polymer.itp b/data_paper_examples/pei_linear_polymer.itp new file mode 100644 index 0000000..354d20d --- /dev/null +++ b/data_paper_examples/pei_linear_polymer.itp @@ -0,0 +1,704 @@ +;----------------------------TITLE ----------------------------------------------------------------------------------------- +; pei polymer +; +;----------------------------TITLE ----------------------------------------------------------------------------------------- +; None +; +; This file was generated at 14:05 on 2024-12-13 by +; +; Automatic Topology Builder +; +; REVISION 2024-11-20 12:06:25 +;--------------------------------------------------------------------------------------------------------------------------- +; Authors : Martin Stroet, Bertrand Caron, Alpeshkumar K. Malde, Thomas Lee, Alan E. Mark +; +; Institute : Molecular Dynamics group, +; School of Chemistry and Molecular Biosciences (SCMB), +; The University of Queensland, QLD 4072, Australia +; URL : https://atb.uq.edu.au +; Citations : 1. Malde AK, Zuo L, Breeze M, Stroet M, Poger D, Nair PC, Oostenbrink C, Mark AE. +; An Automated force field Topology Builder (ATB) and repository: version 1.0. +; Journal of Chemical Theory and Computation, 2011, 7, 4026-4037. +; 2. Stroet M, Caron B, Visscher K, Geerke D, Malde AK, Mark AE. +; Automated Topology Builder version 3.0: Prediction of solvation free enthalpies in water and hexane. +; DOI:10.1021/acs.jctc.8b00768 +; +; Disclaimer : +; While every effort has been made to ensure the accuracy and validity of parameters provided below +; the assignment of parameters is being based on an automated procedure combining data provided by a +; given user as well as calculations performed using third party software. They are provided as a guide. +; The authors of the ATB cannot guarantee that the parameters are complete or that the parameters provided +; are appropriate for use in any specific application. Users are advised to treat these parameters with discretion +; and to perform additional validation tests for their specific application if required. Neither the authors +; of the ATB or The University of Queensland except any responsibly for how the parameters may be used. +; +; Release notes and warnings: +; (1) The topology is based on a set of atomic coordinates and other data provided by the user after +; after quantum mechanical optimization of the structure using different levels of theory depending on +; the nature of the molecule. +; (2) In some cases the automatic bond, bond angle and dihedral type assignment is ambiguous. +; In these cases alternative type codes are provided at the end of the line. +; (3) While bonded parameters are taken where possible from the nominated force field non-standard bond, angle and dihedral +; type code may be incorporated in cases where an exact match could not be found. These are marked as "non-standard" +; or "uncertain" in comments. +; (4) In some cases it is not possible to assign an appropriate parameter automatically. "%%" is used as a place holder +; for those fields that could not be determined automatically. The parameters in these fields must be assigned manually +; before the file can be used. +;--------------------------------------------------------------------------------------------------------------------------- +; Input Structure : LHCU +; Output : UNITED ATOM topology +; Use in conjunction with the corresponding united atom PDB file. +;--------------------------------------------------------------------------------------------------------------------------- +; Citing this topology file +; ATB molid: 1707355 +; ATB Topology Hash: f968d +;--------------------------------------------------------------------------------------------------------------------------- +; Final Topology Generation was performed using: +; A B3LYP/6-31G* optimized geometry. +; Bonded and van der Waals parameters were taken from the GROMOS 54A7 parameter set. +; Initial charges were estimated using the ESP method of Merz-Kollman. +; Final charges and charge groups were generated by method described in the ATB paper. +; If required, additional bonded parameters were generated from a Hessian matrix calculated at the B3LYP/6-31G* level of theory. +;--------------------------------------------------------------------------------------------------------------------------- +; +; + +[ moleculetype ] +LHCU 3 +[ atoms ] + 1 CH3 1 LHCU C62 1 0.013438 15.0350 + 2 CH2 1 LHCU C51 2 0.213438 14.0270 + 3 NOpt 1 LHCU N71 3 -0.685562 14.0067 + 4 HS14 1 LHCU H72 4 0.304437 1.0080 + 5 CH2 1 LHCU C61 5 0.210437 14.0270 + 6 CH2 1 LHCU C5 6 0.225438 14.0270 + 7 NOpt 1 LHCU N7 7 -0.698562 14.0067 + 8 HS14 1 LHCU H21 8 0.318437 1.0080 + 9 CH2 2 LHCU C51 9 0.227533 14.0270 + 10 NOpt 2 LHCU N71 10 -0.671467 14.0067 + 11 HS14 2 LHCU H72 11 0.318533 1.0080 + 12 CH2 2 LHCU C61 12 0.224533 14.0270 + 13 CH2 2 LHCU C5 13 0.239533 14.0270 + 14 NOpt 2 LHCU N7 14 -0.684467 14.0067 + 15 HS14 2 LHCU H21 15 0.332533 1.0080 + 16 CH2 3 LHCU C51 16 0.229302 14.0270 + 17 NOpt 3 LHCU N71 17 -0.669698 14.0067 + 18 HS14 3 LHCU H72 18 0.320302 1.0080 + 19 CH2 3 LHCU C61 19 0.226302 14.0270 + 20 CH2 3 LHCU C5 20 0.241302 14.0270 + 21 NOpt 3 LHCU N7 21 -0.682698 14.0067 + 22 HS14 3 LHCU H21 22 0.334302 1.0080 + 23 CH2 4 LHCU C51 23 0.229420 14.0270 + 24 NOpt 4 LHCU N71 24 -0.669580 14.0067 + 25 HS14 4 LHCU H72 25 0.320420 1.0080 + 26 CH2 4 LHCU C61 26 0.226420 14.0270 + 27 CH2 4 LHCU C5 27 0.241420 14.0270 + 28 NOpt 4 LHCU N7 28 -0.682580 14.0067 + 29 HS14 4 LHCU H21 29 0.334420 1.0080 + 30 CH2 5 LHCU C51 30 0.229428 14.0270 + 31 NOpt 5 LHCU N71 31 -0.669572 14.0067 + 32 HS14 5 LHCU H72 32 0.320428 1.0080 + 33 CH2 5 LHCU C61 33 0.226428 14.0270 + 34 CH2 5 LHCU C5 34 0.241428 14.0270 + 35 NOpt 5 LHCU N7 35 -0.682572 14.0067 + 36 HS14 5 LHCU H21 36 0.334428 1.0080 + 37 CH2 6 LHCU C51 37 0.229429 14.0270 + 38 NOpt 6 LHCU N71 38 -0.669571 14.0067 + 39 HS14 6 LHCU H72 39 0.320429 1.0080 + 40 CH2 6 LHCU C61 40 0.226429 14.0270 + 41 CH2 6 LHCU C5 41 0.241429 14.0270 + 42 NOpt 6 LHCU N7 42 -0.682571 14.0067 + 43 HS14 6 LHCU H21 43 0.334429 1.0080 + 44 CH2 7 LHCU C51 44 0.229429 14.0270 + 45 NOpt 7 LHCU N71 45 -0.669571 14.0067 + 46 HS14 7 LHCU H72 46 0.320429 1.0080 + 47 CH2 7 LHCU C61 47 0.226429 14.0270 + 48 CH2 7 LHCU C5 48 0.241429 14.0270 + 49 NOpt 7 LHCU N7 49 -0.682571 14.0067 + 50 HS14 7 LHCU H21 50 0.334429 1.0080 + 51 CH2 8 LHCU C51 51 0.229429 14.0270 + 52 NOpt 8 LHCU N71 52 -0.669571 14.0067 + 53 HS14 8 LHCU H72 53 0.320429 1.0080 + 54 CH2 8 LHCU C61 54 0.226429 14.0270 + 55 CH2 8 LHCU C5 55 0.241429 14.0270 + 56 NOpt 8 LHCU N7 56 -0.682571 14.0067 + 57 HS14 8 LHCU H21 57 0.334429 1.0080 + 58 CH2 9 LHCU C51 58 0.229429 14.0270 + 59 NOpt 9 LHCU N71 59 -0.669571 14.0067 + 60 HS14 9 LHCU H72 60 0.320429 1.0080 + 61 CH2 9 LHCU C61 61 0.226429 14.0270 + 62 CH2 9 LHCU C5 62 0.241429 14.0270 + 63 NOpt 9 LHCU N7 63 -0.682571 14.0067 + 64 HS14 9 LHCU H21 64 0.334429 1.0080 + 65 CH2 10 LHCU C51 65 0.229429 14.0270 + 66 NOpt 10 LHCU N71 66 -0.669571 14.0067 + 67 HS14 10 LHCU H72 67 0.320429 1.0080 + 68 CH2 10 LHCU C61 68 0.226429 14.0270 + 69 CH2 10 LHCU C5 69 0.241429 14.0270 + 70 NOpt 10 LHCU N7 70 -0.682571 14.0067 + 71 HS14 10 LHCU H21 71 0.334429 1.0080 + 72 CH2 11 LHCU C51 72 0.229429 14.0270 + 73 NOpt 11 LHCU N71 73 -0.669571 14.0067 + 74 HS14 11 LHCU H72 74 0.320429 1.0080 + 75 CH2 11 LHCU C61 75 0.226429 14.0270 + 76 CH2 11 LHCU C5 76 0.241429 14.0270 + 77 NOpt 11 LHCU N7 77 -0.682571 14.0067 + 78 HS14 11 LHCU H21 78 0.334429 1.0080 + 79 CH2 12 LHCU C51 79 0.229429 14.0270 + 80 NOpt 12 LHCU N71 80 -0.669571 14.0067 + 81 HS14 12 LHCU H72 81 0.320429 1.0080 + 82 CH2 12 LHCU C61 82 0.226429 14.0270 + 83 CH2 12 LHCU C5 83 0.241429 14.0270 + 84 NOpt 12 LHCU N7 84 -0.682571 14.0067 + 85 HS14 12 LHCU H21 85 0.334429 1.0080 + 86 CH2 13 LHCU C51 86 0.229429 14.0270 + 87 NOpt 13 LHCU N71 87 -0.669571 14.0067 + 88 HS14 13 LHCU H72 88 0.320429 1.0080 + 89 CH2 13 LHCU C61 89 0.226429 14.0270 + 90 CH2 13 LHCU C5 90 0.241429 14.0270 + 91 NOpt 13 LHCU N7 91 -0.682571 14.0067 + 92 HS14 13 LHCU H21 92 0.334429 1.0080 + 93 CH2 14 LHCU C51 93 0.229429 14.0270 + 94 NOpt 14 LHCU N71 94 -0.669571 14.0067 + 95 HS14 14 LHCU H72 95 0.320429 1.0080 + 96 CH2 14 LHCU C61 96 0.226429 14.0270 + 97 CH2 14 LHCU C5 97 0.241429 14.0270 + 98 NOpt 14 LHCU N7 98 -0.682571 14.0067 + 99 HS14 14 LHCU H21 99 0.334429 1.0080 + 100 CH2 15 LHCU C51 100 0.229429 14.0270 + 101 NOpt 15 LHCU N71 101 -0.669571 14.0067 + 102 HS14 15 LHCU H72 102 0.320429 1.0080 + 103 CH2 15 LHCU C61 103 0.226429 14.0270 + 104 CH2 15 LHCU C5 104 0.241429 14.0270 + 105 NOpt 15 LHCU N7 105 -0.682571 14.0067 + 106 HS14 15 LHCU H21 106 0.334429 1.0080 + 107 CH2 16 LHCU C51 107 0.229429 14.0270 + 108 NOpt 16 LHCU N71 108 -0.669571 14.0067 + 109 HS14 16 LHCU H72 109 0.320429 1.0080 + 110 CH2 16 LHCU C61 110 0.226429 14.0270 + 111 CH2 16 LHCU C5 111 0.241429 14.0270 + 112 NOpt 16 LHCU N7 112 -0.682571 14.0067 + 113 HS14 16 LHCU H21 113 0.334429 1.0080 + 114 CH2 17 LHCU C51 114 0.229429 14.0270 + 115 NOpt 17 LHCU N71 115 -0.669571 14.0067 + 116 HS14 17 LHCU H72 116 0.320429 1.0080 + 117 CH2 17 LHCU C61 117 0.226429 14.0270 + 118 CH2 17 LHCU C5 118 0.241429 14.0270 + 119 NOpt 17 LHCU N7 119 -0.682571 14.0067 + 120 HS14 17 LHCU H21 120 0.334429 1.0080 + 121 CH2 18 LHCU C51 121 0.229429 14.0270 + 122 NOpt 18 LHCU N71 122 -0.669571 14.0067 + 123 HS14 18 LHCU H72 123 0.320429 1.0080 + 124 CH2 18 LHCU C61 124 0.226429 14.0270 + 125 CH2 18 LHCU C5 125 0.241429 14.0270 + 126 NOpt 18 LHCU N7 126 -0.682571 14.0067 + 127 HS14 18 LHCU H21 127 0.334429 1.0080 + 128 CH2 19 LHCU C51 128 0.229429 14.0270 + 129 NOpt 19 LHCU N71 129 -0.669571 14.0067 + 130 HS14 19 LHCU H72 130 0.320429 1.0080 + 131 CH2 19 LHCU C61 131 0.226429 14.0270 + 132 CH2 19 LHCU C5 132 0.241429 14.0270 + 133 NOpt 19 LHCU N7 133 -0.682571 14.0067 + 134 HS14 19 LHCU H21 134 0.334429 1.0080 + 135 CH2 20 LHCU C51 135 0.215214 14.0270 + 136 NOpt 20 LHCU N71 136 -0.683786 14.0067 + 137 HS14 20 LHCU H72 137 0.306214 1.0080 + 138 CH2 20 LHCU C61 138 0.212214 14.0270 + 139 CH2 20 LHCU C5 139 0.227214 14.0270 + 140 NOpt 20 LHCU N7 140 -0.696786 14.0067 + 141 HS14 20 LHCU H21 141 0.320214 1.0080 + 142 CH3 20 LHCU C6 142 0.212214 15.0350 + +[ bonds ] + 1 2 2 0.1530 7.1500e+06 + 2 3 2 0.1470 8.7100e+06 + 3 5 2 0.1470 8.7100e+06 + 3 4 2 0.1020 1.7782e+07 + 5 6 2 0.1530 7.1500e+06 + 6 7 2 0.1470 8.7100e+06 + 7 9 2 0.1500 8.7100e+06 + 7 8 2 0.1020 1.7782e+07 + 9 10 2 0.1470 8.7100e+06 + 10 12 2 0.1470 8.7100e+06 + 10 11 2 0.1020 1.7782e+07 + 12 13 2 0.1530 7.1500e+06 + 13 14 2 0.1470 8.7100e+06 + 14 15 2 0.1020 1.7782e+07 + 14 16 2 0.1500 7.1500e+06 + 16 17 2 0.1470 8.7100e+06 + 17 18 2 0.1020 1.7782e+07 + 17 19 2 0.1470 8.7100e+06 + 19 20 2 0.1530 7.1500e+06 + 20 21 2 0.1470 8.7100e+06 + 21 22 2 0.1020 1.7782e+07 + 21 23 2 0.1500 8.7100e+06 + 23 24 2 0.1470 8.7100e+06 + 24 25 2 0.1020 1.7782e+07 + 24 26 2 0.1470 8.7100e+06 + 26 27 2 0.1530 7.1500e+06 + 27 28 2 0.1470 8.7100e+06 + 28 30 2 0.1500 8.7100e+06 + 28 29 2 0.1020 1.7782e+07 + 30 31 2 0.1470 8.7100e+06 + 31 33 2 0.1470 8.7100e+06 + 31 32 2 0.1020 1.7782e+07 + 33 34 2 0.1530 7.1500e+06 + 34 35 2 0.1470 8.7100e+06 + 35 37 2 0.1500 8.7100e+06 + 35 36 2 0.1020 1.7782e+07 + 37 38 2 0.1470 8.7100e+06 + 38 39 2 0.1020 1.7782e+07 + 38 40 2 0.1470 8.7100e+06 + 40 41 2 0.1530 7.1500e+06 + 41 42 2 0.1470 8.7100e+06 + 42 44 2 0.1500 8.7100e+06 + 42 43 2 0.1020 1.7782e+07 + 44 45 2 0.1470 8.7100e+06 + 45 47 2 0.1470 8.7100e+06 + 45 46 2 0.1020 1.7782e+07 + 47 48 2 0.1530 7.1500e+06 + 48 49 2 0.1470 8.7100e+06 + 49 51 2 0.1500 8.7100e+06 + 49 50 2 0.1020 1.7782e+07 + 51 52 2 0.1470 8.7100e+06 + 52 53 2 0.1020 1.7782e+07 + 52 54 2 0.1470 8.7100e+06 + 54 55 2 0.1530 7.1500e+06 + 55 56 2 0.1470 8.7100e+06 + 56 57 2 0.1020 1.7782e+07 + 56 58 2 0.1500 8.7100e+06 + 58 59 2 0.1470 8.7100e+06 + 59 61 2 0.1470 8.7100e+06 + 59 60 2 0.1020 1.7782e+07 + 61 62 2 0.1530 7.1500e+06 + 62 63 2 0.1470 8.7100e+06 + 63 65 2 0.1500 8.7100e+06 + 63 64 2 0.1020 1.7782e+07 + 65 66 2 0.1470 8.7100e+06 + 66 67 2 0.1020 1.7782e+07 + 66 68 2 0.1470 8.7100e+06 + 68 69 2 0.1530 7.1500e+06 + 69 70 2 0.1470 8.7100e+06 + 70 71 2 0.1020 1.7782e+07 + 70 72 2 0.1500 8.7100e+06 + 72 73 2 0.1470 8.7100e+06 + 73 75 2 0.1470 8.7100e+06 + 73 74 2 0.1020 1.7782e+07 + 75 76 2 0.1530 7.1500e+06 + 76 77 2 0.1470 8.7100e+06 + 77 78 2 0.1020 1.7782e+07 + 77 79 2 0.1500 7.1500e+06 + 79 80 2 0.1470 8.7100e+06 + 80 81 2 0.1020 1.7782e+07 + 80 82 2 0.1470 8.7100e+06 + 82 83 2 0.1530 7.1500e+06 + 83 84 2 0.1470 8.7100e+06 + 84 86 2 0.1500 7.1500e+06 + 84 85 2 0.1020 1.7782e+07 + 86 87 2 0.1470 8.7100e+06 + 87 89 2 0.1470 8.7100e+06 + 87 88 2 0.1020 1.7782e+07 + 89 90 2 0.1530 7.1500e+06 + 90 91 2 0.1470 8.7100e+06 + 91 93 2 0.1500 7.1500e+06 + 91 92 2 0.1020 1.7782e+07 + 93 94 2 0.1470 8.7100e+06 + 94 96 2 0.1470 8.7100e+06 + 94 95 2 0.1020 1.7782e+07 + 96 97 2 0.1530 7.1500e+06 + 97 98 2 0.1470 8.7100e+06 + 98 100 2 0.1500 7.1500e+06 + 98 99 2 0.1020 1.7782e+07 + 100 101 2 0.1470 8.7100e+06 + 101 103 2 0.1470 8.7100e+06 + 101 102 2 0.1020 1.7782e+07 + 103 104 2 0.1530 7.1500e+06 + 104 105 2 0.1470 8.7100e+06 + 105 106 2 0.1020 1.7782e+07 + 105 107 2 0.1500 7.1500e+06 + 107 108 2 0.1470 8.7100e+06 + 108 110 2 0.1470 8.7100e+06 + 108 109 2 0.1020 1.7782e+07 + 110 111 2 0.1530 7.1500e+06 + 111 112 2 0.1470 8.7100e+06 + 112 113 2 0.1020 1.7782e+07 + 112 114 2 0.1500 8.7100e+06 + 114 115 2 0.1470 8.7100e+06 + 115 116 2 0.1020 1.7782e+07 + 115 117 2 0.1470 8.7100e+06 + 117 118 2 0.1530 7.1500e+06 + 118 119 2 0.1470 8.7100e+06 + 119 120 2 0.1020 1.7782e+07 + 119 121 2 0.1500 7.1500e+06 + 121 122 2 0.1470 8.7100e+06 + 122 124 2 0.1470 8.7100e+06 + 122 123 2 0.1020 1.7782e+07 + 124 125 2 0.1530 7.1500e+06 + 125 126 2 0.1470 8.7100e+06 + 126 128 2 0.1500 7.1500e+06 + 126 127 2 0.1020 1.7782e+07 + 128 129 2 0.1470 8.7100e+06 + 129 130 2 0.1020 1.7782e+07 + 129 131 2 0.1470 8.7100e+06 + 131 132 2 0.1530 7.1500e+06 + 132 133 2 0.1470 8.7100e+06 + 133 135 2 0.1500 7.1500e+06 + 133 134 2 0.1020 1.7782e+07 + 135 136 2 0.1470 8.7100e+06 + 136 137 2 0.1020 1.7782e+07 + 136 138 2 0.1470 8.7100e+06 + 138 139 2 0.1530 7.1500e+06 + 139 140 2 0.1470 8.7100e+06 + 140 141 2 0.1020 1.7782e+07 + 140 142 2 0.1470 8.7100e+06 + +[ pairs ] + 1 5 1 + 1 4 1 + 2 6 1 + 3 7 1 + 4 6 1 + 5 8 1 + 9 13 1 + 10 14 1 + 11 13 1 + 12 15 1 + 16 20 1 + 17 21 1 + 18 20 1 + 19 22 1 + 23 27 1 + 24 28 1 + 25 27 1 + 26 29 1 + 30 34 1 + 31 35 1 + 32 34 1 + 33 36 1 + 37 41 1 + 38 42 1 + 39 41 1 + 40 43 1 + 44 48 1 + 45 49 1 + 46 48 1 + 47 50 1 + 51 55 1 + 52 56 1 + 53 55 1 + 54 57 1 + 58 62 1 + 59 63 1 + 60 62 1 + 61 64 1 + 65 69 1 + 66 70 1 + 67 69 1 + 68 71 1 + 72 76 1 + 73 77 1 + 74 76 1 + 75 78 1 + 79 83 1 + 80 84 1 + 81 83 1 + 82 85 1 + 86 90 1 + 87 91 1 + 88 90 1 + 89 92 1 + 93 97 1 + 94 98 1 + 95 97 1 + 96 99 1 + 100 104 1 + 101 105 1 + 102 104 1 + 103 106 1 + 107 111 1 + 108 112 1 + 109 111 1 + 110 113 1 + 114 118 1 + 115 119 1 + 116 118 1 + 117 120 1 + 121 125 1 + 122 126 1 + 123 125 1 + 124 127 1 + 128 132 1 + 129 133 1 + 130 132 1 + 131 134 1 + 135 139 1 + 136 140 1 + 137 139 1 + 138 142 1 + 138 141 1 + +[ angles ] + 1 2 3 2 111.0000 5.3000e+02 + 2 3 4 2 109.5000 4.2500e+02 + 2 3 5 2 116.0000 6.2000e+02 + 4 3 5 2 109.5000 4.2500e+02 + 3 5 6 2 111.0000 5.3000e+02 + 5 6 7 2 111.0000 5.3000e+02 + 6 7 8 2 109.5000 4.2500e+02 + 6 7 9 2 116.0000 6.2000e+02 + 7 9 10 2 111.0000 5.3000e+02 + 8 7 9 2 109.5000 4.2500e+02 + 9 10 12 2 116.0000 6.2000e+02 + 9 10 11 2 109.5000 4.2500e+02 + 11 10 12 2 109.5000 4.2500e+02 + 10 12 13 2 111.0000 5.3000e+02 + 12 13 14 2 111.0000 5.3000e+02 + 13 14 16 2 116.0000 6.2000e+02 + 13 14 15 2 109.5000 4.2500e+02 + 15 14 16 2 109.5000 4.2500e+02 + 14 16 17 2 111.0000 5.3000e+02 + 16 17 19 2 116.0000 6.2000e+02 + 16 17 18 2 109.5000 4.2500e+02 + 18 17 19 2 109.5000 4.2500e+02 + 17 19 20 2 111.0000 5.3000e+02 + 19 20 21 2 111.0000 5.3000e+02 + 20 21 23 2 116.0000 6.2000e+02 + 20 21 22 2 109.5000 4.2500e+02 + 22 21 23 2 109.5000 4.2500e+02 + 21 23 24 2 111.0000 5.3000e+02 + 23 24 26 2 116.0000 6.2000e+02 + 23 24 25 2 109.5000 4.2500e+02 + 25 24 26 2 109.5000 4.2500e+02 + 24 26 27 2 111.0000 5.3000e+02 + 26 27 28 2 111.0000 5.3000e+02 + 27 28 30 2 116.0000 6.2000e+02 + 27 28 29 2 109.5000 4.2500e+02 + 28 30 31 2 111.0000 5.3000e+02 + 29 28 30 2 109.5000 4.2500e+02 + 30 31 33 2 116.0000 6.2000e+02 + 30 31 32 2 109.5000 4.2500e+02 + 32 31 33 2 109.5000 4.2500e+02 + 31 33 34 2 111.0000 5.3000e+02 + 33 34 35 2 111.0000 5.3000e+02 + 34 35 36 2 109.5000 4.2500e+02 + 34 35 37 2 116.0000 6.2000e+02 + 36 35 37 2 109.5000 4.2500e+02 + 35 37 38 2 111.0000 5.3000e+02 + 37 38 39 2 109.5000 4.2500e+02 + 37 38 40 2 116.0000 6.2000e+02 + 39 38 40 2 109.5000 4.2500e+02 + 38 40 41 2 111.0000 5.3000e+02 + 40 41 42 2 111.0000 5.3000e+02 + 41 42 44 2 116.0000 6.2000e+02 + 41 42 43 2 109.5000 4.2500e+02 + 43 42 44 2 109.5000 4.2500e+02 + 42 44 45 2 111.0000 5.3000e+02 + 44 45 46 2 109.5000 4.2500e+02 + 44 45 47 2 116.0000 6.2000e+02 + 45 47 48 2 111.0000 5.3000e+02 + 46 45 47 2 109.5000 4.2500e+02 + 47 48 49 2 111.0000 5.3000e+02 + 48 49 50 2 109.5000 4.2500e+02 + 48 49 51 2 116.0000 6.2000e+02 + 50 49 51 2 109.5000 4.2500e+02 + 49 51 52 2 111.0000 5.3000e+02 + 51 52 53 2 109.5000 4.2500e+02 + 51 52 54 2 116.0000 6.2000e+02 + 53 52 54 2 109.5000 4.2500e+02 + 52 54 55 2 111.0000 5.3000e+02 + 54 55 56 2 111.0000 5.3000e+02 + 55 56 57 2 109.5000 4.2500e+02 + 55 56 58 2 116.0000 6.2000e+02 + 57 56 58 2 109.5000 4.2500e+02 + 56 58 59 2 111.0000 5.3000e+02 + 58 59 61 2 116.0000 6.2000e+02 + 58 59 60 2 109.5000 4.2500e+02 + 59 61 62 2 111.0000 5.3000e+02 + 60 59 61 2 109.5000 4.2500e+02 + 61 62 63 2 111.0000 5.3000e+02 + 62 63 64 2 109.5000 4.2500e+02 + 62 63 65 2 116.0000 6.2000e+02 + 64 63 65 2 109.5000 4.2500e+02 + 63 65 66 2 111.0000 5.3000e+02 + 65 66 68 2 116.0000 6.2000e+02 + 65 66 67 2 109.5000 4.2500e+02 + 67 66 68 2 109.5000 4.2500e+02 + 66 68 69 2 111.0000 5.3000e+02 + 68 69 70 2 111.0000 5.3000e+02 + 69 70 72 2 116.0000 6.2000e+02 + 69 70 71 2 109.5000 4.2500e+02 + 71 70 72 2 109.5000 4.2500e+02 + 70 72 73 2 111.0000 5.3000e+02 + 72 73 74 2 109.5000 4.2500e+02 + 72 73 75 2 116.0000 6.2000e+02 + 74 73 75 2 109.5000 4.2500e+02 + 73 75 76 2 111.0000 5.3000e+02 + 75 76 77 2 111.0000 5.3000e+02 + 76 77 78 2 109.5000 4.2500e+02 + 76 77 79 2 116.0000 6.2000e+02 + 78 77 79 2 109.5000 4.2500e+02 + 77 79 80 2 111.0000 5.3000e+02 + 79 80 82 2 116.0000 6.2000e+02 + 79 80 81 2 109.5000 4.2500e+02 + 81 80 82 2 109.5000 4.2500e+02 + 80 82 83 2 111.0000 5.3000e+02 + 82 83 84 2 111.0000 5.3000e+02 + 83 84 86 2 116.0000 6.2000e+02 + 83 84 85 2 109.5000 4.2500e+02 + 84 86 87 2 111.0000 5.3000e+02 + 85 84 86 2 109.5000 4.2500e+02 + 86 87 89 2 116.0000 6.2000e+02 + 86 87 88 2 109.5000 4.2500e+02 + 88 87 89 2 109.5000 4.2500e+02 + 87 89 90 2 111.0000 5.3000e+02 + 89 90 91 2 111.0000 5.3000e+02 + 90 91 92 2 109.5000 4.2500e+02 + 90 91 93 2 116.0000 6.2000e+02 + 91 93 94 2 111.0000 5.3000e+02 + 92 91 93 2 109.5000 4.2500e+02 + 93 94 95 2 109.5000 4.2500e+02 + 93 94 96 2 116.0000 6.2000e+02 + 94 96 97 2 111.0000 5.3000e+02 + 95 94 96 2 109.5000 4.2500e+02 + 96 97 98 2 111.0000 5.3000e+02 + 97 98 99 2 109.5000 4.2500e+02 + 97 98 100 2 116.0000 6.2000e+02 + 98 100 101 2 111.0000 5.3000e+02 + 99 98 100 2 109.5000 4.2500e+02 + 100 101 102 2 109.5000 4.2500e+02 + 100 101 103 2 116.0000 6.2000e+02 + 102 101 103 2 109.5000 4.2500e+02 + 101 103 104 2 111.0000 5.3000e+02 + 103 104 105 2 111.0000 5.3000e+02 + 104 105 106 2 109.5000 4.2500e+02 + 104 105 107 2 116.0000 6.2000e+02 + 106 105 107 2 109.5000 4.2500e+02 + 105 107 108 2 111.0000 5.3000e+02 + 107 108 109 2 109.5000 4.2500e+02 + 107 108 110 2 116.0000 6.2000e+02 + 109 108 110 2 109.5000 4.2500e+02 + 108 110 111 2 111.0000 5.3000e+02 + 110 111 112 2 111.0000 5.3000e+02 + 111 112 114 2 116.0000 6.2000e+02 + 111 112 113 2 109.5000 4.2500e+02 + 113 112 114 2 109.5000 4.2500e+02 + 112 114 115 2 111.0000 5.3000e+02 + 114 115 116 2 109.5000 4.2500e+02 + 114 115 117 2 116.0000 6.2000e+02 + 116 115 117 2 109.5000 4.2500e+02 + 115 117 118 2 111.0000 5.3000e+02 + 117 118 119 2 111.0000 5.3000e+02 + 118 119 120 2 109.5000 4.2500e+02 + 118 119 121 2 116.0000 6.2000e+02 + 120 119 121 2 109.5000 4.2500e+02 + 119 121 122 2 111.0000 5.3000e+02 + 121 122 124 2 116.0000 6.2000e+02 + 121 122 123 2 109.5000 4.2500e+02 + 122 124 125 2 111.0000 5.3000e+02 + 123 122 124 2 109.5000 4.2500e+02 + 124 125 126 2 111.0000 5.3000e+02 + 125 126 127 2 109.5000 4.2500e+02 + 125 126 128 2 116.0000 6.2000e+02 + 126 128 129 2 111.0000 5.3000e+02 + 127 126 128 2 109.5000 4.2500e+02 + 128 129 131 2 116.0000 6.2000e+02 + 128 129 130 2 109.5000 4.2500e+02 + 130 129 131 2 109.5000 4.2500e+02 + 129 131 132 2 111.0000 5.3000e+02 + 131 132 133 2 111.0000 5.3000e+02 + 132 133 135 2 116.0000 6.2000e+02 + 132 133 134 2 109.5000 4.2500e+02 + 133 135 136 2 111.0000 5.3000e+02 + 134 133 135 2 109.5000 4.2500e+02 + 135 136 138 2 116.0000 6.2000e+02 + 135 136 137 2 109.5000 4.2500e+02 + 137 136 138 2 109.5000 4.2500e+02 + 136 138 139 2 111.0000 5.3000e+02 + 138 139 140 2 111.0000 5.3000e+02 + 139 140 142 2 116.0000 6.2000e+02 + 139 140 141 2 109.5000 4.2500e+02 + 141 140 142 2 109.5000 4.2500e+02 + +[ dihedrals ] + 1 2 3 5 1 180.0000 1.0000e+00 6 + 2 3 5 6 1 180.0000 1.0000e+00 6 + 3 5 6 7 1 0.0000 5.9200e+00 3 + 5 6 7 9 1 180.0000 1.0000e+00 6 + 7 9 10 12 1 180.0000 1.0000e+00 6 + 9 10 12 13 1 180.0000 1.0000e+00 6 + 10 12 13 14 1 0.0000 5.9200e+00 3 + 12 13 14 16 1 180.0000 1.0000e+00 6 + 14 16 17 19 1 180.0000 1.0000e+00 6 + 16 17 19 20 1 180.0000 1.0000e+00 6 + 17 19 20 21 1 0.0000 5.9200e+00 3 + 19 20 21 23 1 180.0000 1.0000e+00 6 + 21 23 24 26 1 180.0000 1.0000e+00 6 + 23 24 26 27 1 180.0000 1.0000e+00 6 + 24 26 27 28 1 0.0000 5.9200e+00 3 + 26 27 28 30 1 180.0000 1.0000e+00 6 + 28 30 31 33 1 180.0000 1.0000e+00 6 + 30 31 33 34 1 180.0000 1.0000e+00 6 + 31 33 34 35 1 0.0000 5.9200e+00 3 + 33 34 35 37 1 180.0000 1.0000e+00 6 + 35 37 38 40 1 180.0000 1.0000e+00 6 + 37 38 40 41 1 180.0000 1.0000e+00 6 + 38 40 41 42 1 0.0000 5.9200e+00 3 + 40 41 42 44 1 180.0000 1.0000e+00 6 + 42 44 45 47 1 180.0000 1.0000e+00 6 + 44 45 47 48 1 180.0000 1.0000e+00 6 + 45 47 48 49 1 0.0000 5.9200e+00 3 + 47 48 49 51 1 180.0000 1.0000e+00 6 + 49 51 52 54 1 180.0000 1.0000e+00 6 + 51 52 54 55 1 180.0000 1.0000e+00 6 + 52 54 55 56 1 0.0000 5.9200e+00 3 + 54 55 56 58 1 180.0000 1.0000e+00 6 + 56 58 59 61 1 180.0000 1.0000e+00 6 + 58 59 61 62 1 180.0000 1.0000e+00 6 + 59 61 62 63 1 0.0000 5.9200e+00 3 + 61 62 63 65 1 180.0000 1.0000e+00 6 + 63 65 66 68 1 180.0000 1.0000e+00 6 + 65 66 68 69 1 180.0000 1.0000e+00 6 + 66 68 69 70 1 0.0000 5.9200e+00 3 + 68 69 70 72 1 180.0000 1.0000e+00 6 + 70 72 73 75 1 180.0000 1.0000e+00 6 + 72 73 75 76 1 180.0000 1.0000e+00 6 + 73 75 76 77 1 0.0000 5.9200e+00 3 + 75 76 77 79 1 180.0000 1.0000e+00 6 + 77 79 80 82 1 180.0000 1.0000e+00 6 + 79 80 82 83 1 180.0000 1.0000e+00 6 + 80 82 83 84 1 0.0000 5.9200e+00 3 + 82 83 84 86 1 180.0000 1.0000e+00 6 + 84 86 87 89 1 180.0000 1.0000e+00 6 + 86 87 89 90 1 180.0000 1.0000e+00 6 + 87 89 90 91 1 0.0000 5.9200e+00 3 + 89 90 91 93 1 180.0000 1.0000e+00 6 + 91 93 94 96 1 180.0000 1.0000e+00 6 + 93 94 96 97 1 180.0000 1.0000e+00 6 + 94 96 97 98 1 0.0000 5.9200e+00 3 + 96 97 98 100 1 180.0000 1.0000e+00 6 + 98 100 101 103 1 180.0000 1.0000e+00 6 + 100 101 103 104 1 180.0000 1.0000e+00 6 + 101 103 104 105 1 0.0000 5.9200e+00 3 + 103 104 105 107 1 180.0000 1.0000e+00 6 + 105 107 108 110 1 180.0000 1.0000e+00 6 + 107 108 110 111 1 180.0000 1.0000e+00 6 + 108 110 111 112 1 0.0000 5.9200e+00 3 + 110 111 112 114 1 180.0000 1.0000e+00 6 + 112 114 115 117 1 180.0000 1.0000e+00 6 + 114 115 117 118 1 180.0000 1.0000e+00 6 + 115 117 118 119 1 0.0000 5.9200e+00 3 + 117 118 119 121 1 180.0000 1.0000e+00 6 + 119 121 122 124 1 180.0000 1.0000e+00 6 + 121 122 124 125 1 180.0000 1.0000e+00 6 + 122 124 125 126 1 0.0000 5.9200e+00 3 + 124 125 126 128 1 180.0000 1.0000e+00 6 + 126 128 129 131 1 180.0000 1.0000e+00 6 + 128 129 131 132 1 180.0000 1.0000e+00 6 + 129 131 132 133 1 0.0000 5.9200e+00 3 + 131 132 133 135 1 180.0000 1.0000e+00 6 + 133 135 136 138 1 180.0000 1.0000e+00 6 + 135 136 138 139 1 180.0000 1.0000e+00 6 + 136 138 139 140 1 0.0000 5.9200e+00 3 + 138 139 140 142 1 180.0000 1.0000e+00 6 + +[ exclusions ] diff --git a/data_paper_examples/pei_linear_polymer.json b/data_paper_examples/pei_linear_polymer.json new file mode 100644 index 0000000..91b6390 --- /dev/null +++ b/data_paper_examples/pei_linear_polymer.json @@ -0,0 +1 @@ +{"topology": {"atoms": [{"atom_id": 1, "atom_type": "CH3", "residue_id": 1, "residue_name": "LHCU", "atom_name": "C62", "charge_group_num": 1, "partial_charge": 0.013437500000000005, "mass": 15.035, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 2, "atom_type": "CH2", "residue_id": 1, "residue_name": "LHCU", "atom_name": "C51", "charge_group_num": 2, "partial_charge": 0.2134375, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 3, "atom_type": "NOpt", "residue_id": 1, "residue_name": "LHCU", "atom_name": "N71", "charge_group_num": 3, "partial_charge": -0.6855625, "mass": 14.0067, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 4, "atom_type": "HS14", "residue_id": 1, "residue_name": "LHCU", "atom_name": "H72", "charge_group_num": 4, "partial_charge": 0.30443749999999997, "mass": 1.008, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 5, "atom_type": "CH2", "residue_id": 1, "residue_name": "LHCU", "atom_name": "C61", "charge_group_num": 5, "partial_charge": 0.2104375, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 6, "atom_type": "CH2", "residue_id": 1, "residue_name": "LHCU", "atom_name": "C5", "charge_group_num": 6, "partial_charge": 0.2254375, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 7, "atom_type": "HS14", "residue_id": 1, "residue_name": "LHCU", "atom_name": "H21", "charge_group_num": 8, "partial_charge": 0.3184375, "mass": 1.008, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 8, "atom_type": "NOpt", "residue_id": 1, "residue_name": "LHCU", "atom_name": "N7", "charge_group_num": 7, "partial_charge": -0.6985625, "mass": 14.0067, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 9, "atom_type": "CH2", "residue_id": 2, "residue_name": "LHCU", "atom_name": "C51", "charge_group_num": 2, "partial_charge": 0.22753333333333334, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 10, "atom_type": "NOpt", "residue_id": 2, "residue_name": "LHCU", "atom_name": "N71", "charge_group_num": 3, "partial_charge": -0.6714666666666667, "mass": 14.0067, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 11, "atom_type": "HS14", "residue_id": 2, "residue_name": "LHCU", "atom_name": "H72", "charge_group_num": 4, "partial_charge": 0.31853333333333333, "mass": 1.008, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 12, "atom_type": "CH2", "residue_id": 2, "residue_name": "LHCU", "atom_name": "C61", "charge_group_num": 5, "partial_charge": 0.22453333333333333, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 13, "atom_type": "CH2", "residue_id": 2, "residue_name": "LHCU", "atom_name": "C5", "charge_group_num": 6, "partial_charge": 0.23953333333333335, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 14, "atom_type": "HS14", "residue_id": 2, "residue_name": "LHCU", "atom_name": "H21", "charge_group_num": 8, "partial_charge": 0.33253333333333335, "mass": 1.008, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 15, "atom_type": "NOpt", "residue_id": 2, "residue_name": "LHCU", "atom_name": "N7", "charge_group_num": 7, "partial_charge": -0.6844666666666667, "mass": 14.0067, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 16, "atom_type": "CH2", "residue_id": 3, "residue_name": "LHCU", "atom_name": "C51", "charge_group_num": 2, "partial_charge": 0.22930222222222224, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 17, "atom_type": "NOpt", "residue_id": 3, "residue_name": "LHCU", "atom_name": "N71", "charge_group_num": 3, "partial_charge": -0.6696977777777777, "mass": 14.0067, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 18, "atom_type": "HS14", "residue_id": 3, "residue_name": "LHCU", "atom_name": "H72", "charge_group_num": 4, "partial_charge": 0.32030222222222227, "mass": 1.008, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 19, "atom_type": "CH2", "residue_id": 3, "residue_name": "LHCU", "atom_name": "C61", "charge_group_num": 5, "partial_charge": 0.22630222222222224, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 20, "atom_type": "CH2", "residue_id": 3, "residue_name": "LHCU", "atom_name": "C5", "charge_group_num": 6, "partial_charge": 0.24130222222222222, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 21, "atom_type": "HS14", "residue_id": 3, "residue_name": "LHCU", "atom_name": "H21", "charge_group_num": 8, "partial_charge": 0.3343022222222223, "mass": 1.008, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 22, "atom_type": "NOpt", "residue_id": 3, "residue_name": "LHCU", "atom_name": "N7", "charge_group_num": 7, "partial_charge": -0.6826977777777777, "mass": 14.0067, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 23, "atom_type": "CH2", "residue_id": 4, "residue_name": "LHCU", "atom_name": "C51", "charge_group_num": 2, "partial_charge": 0.22942014814814818, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 24, "atom_type": "NOpt", "residue_id": 4, "residue_name": "LHCU", "atom_name": "N71", "charge_group_num": 3, "partial_charge": -0.6695798518518518, "mass": 14.0067, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 25, "atom_type": "HS14", "residue_id": 4, "residue_name": "LHCU", "atom_name": "H72", "charge_group_num": 4, "partial_charge": 0.3204201481481482, "mass": 1.008, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 26, "atom_type": "CH2", "residue_id": 4, "residue_name": "LHCU", "atom_name": "C61", "charge_group_num": 5, "partial_charge": 0.22642014814814818, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 27, "atom_type": "CH2", "residue_id": 4, "residue_name": "LHCU", "atom_name": "C5", "charge_group_num": 6, "partial_charge": 0.24142014814814816, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 28, "atom_type": "HS14", "residue_id": 4, "residue_name": "LHCU", "atom_name": "H21", "charge_group_num": 8, "partial_charge": 0.3344201481481482, "mass": 1.008, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 29, "atom_type": "NOpt", "residue_id": 4, "residue_name": "LHCU", "atom_name": "N7", "charge_group_num": 7, "partial_charge": -0.6825798518518518, "mass": 14.0067, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 30, "atom_type": "CH2", "residue_id": 5, "residue_name": "LHCU", "atom_name": "C51", "charge_group_num": 2, "partial_charge": 0.22942800987654324, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 31, "atom_type": "NOpt", "residue_id": 5, "residue_name": "LHCU", "atom_name": "N71", "charge_group_num": 3, "partial_charge": -0.6695719901234567, "mass": 14.0067, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 32, "atom_type": "HS14", "residue_id": 5, "residue_name": "LHCU", "atom_name": "H72", "charge_group_num": 4, "partial_charge": 0.3204280098765432, "mass": 1.008, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 33, "atom_type": "CH2", "residue_id": 5, "residue_name": "LHCU", "atom_name": "C61", "charge_group_num": 5, "partial_charge": 0.22642800987654324, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 34, "atom_type": "CH2", "residue_id": 5, "residue_name": "LHCU", "atom_name": "C5", "charge_group_num": 6, "partial_charge": 0.24142800987654323, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 35, "atom_type": "HS14", "residue_id": 5, "residue_name": "LHCU", "atom_name": "H21", "charge_group_num": 8, "partial_charge": 0.3344280098765432, "mass": 1.008, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 36, "atom_type": "NOpt", "residue_id": 5, "residue_name": "LHCU", "atom_name": "N7", "charge_group_num": 7, "partial_charge": -0.6825719901234567, "mass": 14.0067, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 37, "atom_type": "CH2", "residue_id": 6, "residue_name": "LHCU", "atom_name": "C51", "charge_group_num": 2, "partial_charge": 0.22942853399176957, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 38, "atom_type": "NOpt", "residue_id": 6, "residue_name": "LHCU", "atom_name": "N71", "charge_group_num": 3, "partial_charge": -0.6695714660082304, "mass": 14.0067, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 39, "atom_type": "HS14", "residue_id": 6, "residue_name": "LHCU", "atom_name": "H72", "charge_group_num": 4, "partial_charge": 0.3204285339917695, "mass": 1.008, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 40, "atom_type": "CH2", "residue_id": 6, "residue_name": "LHCU", "atom_name": "C61", "charge_group_num": 5, "partial_charge": 0.22642853399176957, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 41, "atom_type": "CH2", "residue_id": 6, "residue_name": "LHCU", "atom_name": "C5", "charge_group_num": 6, "partial_charge": 0.24142853399176956, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 42, "atom_type": "HS14", "residue_id": 6, "residue_name": "LHCU", "atom_name": "H21", "charge_group_num": 8, "partial_charge": 0.3344285339917695, "mass": 1.008, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 43, "atom_type": "NOpt", "residue_id": 6, "residue_name": "LHCU", "atom_name": "N7", "charge_group_num": 7, "partial_charge": -0.6825714660082304, "mass": 14.0067, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 44, "atom_type": "CH2", "residue_id": 7, "residue_name": "LHCU", "atom_name": "C51", "charge_group_num": 2, "partial_charge": 0.22942856893278465, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 45, "atom_type": "NOpt", "residue_id": 7, "residue_name": "LHCU", "atom_name": "N71", "charge_group_num": 3, "partial_charge": -0.6695714310672153, "mass": 14.0067, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 46, "atom_type": "HS14", "residue_id": 7, "residue_name": "LHCU", "atom_name": "H72", "charge_group_num": 4, "partial_charge": 0.3204285689327846, "mass": 1.008, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 47, "atom_type": "CH2", "residue_id": 7, "residue_name": "LHCU", "atom_name": "C61", "charge_group_num": 5, "partial_charge": 0.22642856893278465, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 48, "atom_type": "CH2", "residue_id": 7, "residue_name": "LHCU", "atom_name": "C5", "charge_group_num": 6, "partial_charge": 0.24142856893278464, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 49, "atom_type": "HS14", "residue_id": 7, "residue_name": "LHCU", "atom_name": "H21", "charge_group_num": 8, "partial_charge": 0.3344285689327846, "mass": 1.008, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 50, "atom_type": "NOpt", "residue_id": 7, "residue_name": "LHCU", "atom_name": "N7", "charge_group_num": 7, "partial_charge": -0.6825714310672153, "mass": 14.0067, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 51, "atom_type": "CH2", "residue_id": 8, "residue_name": "LHCU", "atom_name": "C51", "charge_group_num": 2, "partial_charge": 0.22942857126218566, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 52, "atom_type": "NOpt", "residue_id": 8, "residue_name": "LHCU", "atom_name": "N71", "charge_group_num": 3, "partial_charge": -0.6695714287378143, "mass": 14.0067, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 53, "atom_type": "HS14", "residue_id": 8, "residue_name": "LHCU", "atom_name": "H72", "charge_group_num": 4, "partial_charge": 0.3204285712621856, "mass": 1.008, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 54, "atom_type": "CH2", "residue_id": 8, "residue_name": "LHCU", "atom_name": "C61", "charge_group_num": 5, "partial_charge": 0.22642857126218566, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 55, "atom_type": "CH2", "residue_id": 8, "residue_name": "LHCU", "atom_name": "C5", "charge_group_num": 6, "partial_charge": 0.24142857126218564, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 56, "atom_type": "HS14", "residue_id": 8, "residue_name": "LHCU", "atom_name": "H21", "charge_group_num": 8, "partial_charge": 0.3344285712621856, "mass": 1.008, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 57, "atom_type": "NOpt", "residue_id": 8, "residue_name": "LHCU", "atom_name": "N7", "charge_group_num": 7, "partial_charge": -0.6825714287378143, "mass": 14.0067, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 58, "atom_type": "CH2", "residue_id": 9, "residue_name": "LHCU", "atom_name": "C51", "charge_group_num": 2, "partial_charge": 0.22942857141747908, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 59, "atom_type": "NOpt", "residue_id": 9, "residue_name": "LHCU", "atom_name": "N71", "charge_group_num": 3, "partial_charge": -0.6695714285825209, "mass": 14.0067, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 60, "atom_type": "HS14", "residue_id": 9, "residue_name": "LHCU", "atom_name": "H72", "charge_group_num": 4, "partial_charge": 0.32042857141747905, "mass": 1.008, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 61, "atom_type": "CH2", "residue_id": 9, "residue_name": "LHCU", "atom_name": "C61", "charge_group_num": 5, "partial_charge": 0.22642857141747907, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 62, "atom_type": "CH2", "residue_id": 9, "residue_name": "LHCU", "atom_name": "C5", "charge_group_num": 6, "partial_charge": 0.24142857141747906, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 63, "atom_type": "HS14", "residue_id": 9, "residue_name": "LHCU", "atom_name": "H21", "charge_group_num": 8, "partial_charge": 0.33442857141747906, "mass": 1.008, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 64, "atom_type": "NOpt", "residue_id": 9, "residue_name": "LHCU", "atom_name": "N7", "charge_group_num": 7, "partial_charge": -0.682571428582521, "mass": 14.0067, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 65, "atom_type": "CH2", "residue_id": 10, "residue_name": "LHCU", "atom_name": "C51", "charge_group_num": 2, "partial_charge": 0.22942857142783196, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 66, "atom_type": "NOpt", "residue_id": 10, "residue_name": "LHCU", "atom_name": "N71", "charge_group_num": 3, "partial_charge": -0.669571428572168, "mass": 14.0067, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 67, "atom_type": "HS14", "residue_id": 10, "residue_name": "LHCU", "atom_name": "H72", "charge_group_num": 4, "partial_charge": 0.32042857142783193, "mass": 1.008, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 68, "atom_type": "CH2", "residue_id": 10, "residue_name": "LHCU", "atom_name": "C61", "charge_group_num": 5, "partial_charge": 0.22642857142783196, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 69, "atom_type": "CH2", "residue_id": 10, "residue_name": "LHCU", "atom_name": "C5", "charge_group_num": 6, "partial_charge": 0.24142857142783195, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 70, "atom_type": "HS14", "residue_id": 10, "residue_name": "LHCU", "atom_name": "H21", "charge_group_num": 8, "partial_charge": 0.33442857142783194, "mass": 1.008, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 71, "atom_type": "NOpt", "residue_id": 10, "residue_name": "LHCU", "atom_name": "N7", "charge_group_num": 7, "partial_charge": -0.682571428572168, "mass": 14.0067, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 72, "atom_type": "CH2", "residue_id": 11, "residue_name": "LHCU", "atom_name": "C51", "charge_group_num": 2, "partial_charge": 0.22942857142852213, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 73, "atom_type": "NOpt", "residue_id": 11, "residue_name": "LHCU", "atom_name": "N71", "charge_group_num": 3, "partial_charge": -0.6695714285714778, "mass": 14.0067, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 74, "atom_type": "HS14", "residue_id": 11, "residue_name": "LHCU", "atom_name": "H72", "charge_group_num": 4, "partial_charge": 0.3204285714285221, "mass": 1.008, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 75, "atom_type": "CH2", "residue_id": 11, "residue_name": "LHCU", "atom_name": "C61", "charge_group_num": 5, "partial_charge": 0.22642857142852213, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 76, "atom_type": "CH2", "residue_id": 11, "residue_name": "LHCU", "atom_name": "C5", "charge_group_num": 6, "partial_charge": 0.24142857142852212, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 77, "atom_type": "HS14", "residue_id": 11, "residue_name": "LHCU", "atom_name": "H21", "charge_group_num": 8, "partial_charge": 0.3344285714285221, "mass": 1.008, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 78, "atom_type": "NOpt", "residue_id": 11, "residue_name": "LHCU", "atom_name": "N7", "charge_group_num": 7, "partial_charge": -0.6825714285714778, "mass": 14.0067, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 79, "atom_type": "CH2", "residue_id": 12, "residue_name": "LHCU", "atom_name": "C51", "charge_group_num": 2, "partial_charge": 0.22942857142856815, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 80, "atom_type": "NOpt", "residue_id": 12, "residue_name": "LHCU", "atom_name": "N71", "charge_group_num": 3, "partial_charge": -0.6695714285714318, "mass": 14.0067, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 81, "atom_type": "HS14", "residue_id": 12, "residue_name": "LHCU", "atom_name": "H72", "charge_group_num": 4, "partial_charge": 0.3204285714285681, "mass": 1.008, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 82, "atom_type": "CH2", "residue_id": 12, "residue_name": "LHCU", "atom_name": "C61", "charge_group_num": 5, "partial_charge": 0.22642857142856815, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 83, "atom_type": "CH2", "residue_id": 12, "residue_name": "LHCU", "atom_name": "C5", "charge_group_num": 6, "partial_charge": 0.24142857142856813, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 84, "atom_type": "HS14", "residue_id": 12, "residue_name": "LHCU", "atom_name": "H21", "charge_group_num": 8, "partial_charge": 0.33442857142856813, "mass": 1.008, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 85, "atom_type": "NOpt", "residue_id": 12, "residue_name": "LHCU", "atom_name": "N7", "charge_group_num": 7, "partial_charge": -0.6825714285714318, "mass": 14.0067, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 86, "atom_type": "CH2", "residue_id": 13, "residue_name": "LHCU", "atom_name": "C51", "charge_group_num": 2, "partial_charge": 0.22942857142857123, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 87, "atom_type": "NOpt", "residue_id": 13, "residue_name": "LHCU", "atom_name": "N71", "charge_group_num": 3, "partial_charge": -0.6695714285714287, "mass": 14.0067, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 88, "atom_type": "HS14", "residue_id": 13, "residue_name": "LHCU", "atom_name": "H72", "charge_group_num": 4, "partial_charge": 0.3204285714285712, "mass": 1.008, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 89, "atom_type": "CH2", "residue_id": 13, "residue_name": "LHCU", "atom_name": "C61", "charge_group_num": 5, "partial_charge": 0.22642857142857123, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 90, "atom_type": "CH2", "residue_id": 13, "residue_name": "LHCU", "atom_name": "C5", "charge_group_num": 6, "partial_charge": 0.24142857142857121, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 91, "atom_type": "HS14", "residue_id": 13, "residue_name": "LHCU", "atom_name": "H21", "charge_group_num": 8, "partial_charge": 0.3344285714285712, "mass": 1.008, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 92, "atom_type": "NOpt", "residue_id": 13, "residue_name": "LHCU", "atom_name": "N7", "charge_group_num": 7, "partial_charge": -0.6825714285714287, "mass": 14.0067, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 93, "atom_type": "CH2", "residue_id": 14, "residue_name": "LHCU", "atom_name": "C51", "charge_group_num": 2, "partial_charge": 0.22942857142857143, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 94, "atom_type": "NOpt", "residue_id": 14, "residue_name": "LHCU", "atom_name": "N71", "charge_group_num": 3, "partial_charge": -0.6695714285714285, "mass": 14.0067, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 95, "atom_type": "HS14", "residue_id": 14, "residue_name": "LHCU", "atom_name": "H72", "charge_group_num": 4, "partial_charge": 0.3204285714285714, "mass": 1.008, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 96, "atom_type": "CH2", "residue_id": 14, "residue_name": "LHCU", "atom_name": "C61", "charge_group_num": 5, "partial_charge": 0.22642857142857142, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 97, "atom_type": "CH2", "residue_id": 14, "residue_name": "LHCU", "atom_name": "C5", "charge_group_num": 6, "partial_charge": 0.2414285714285714, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 98, "atom_type": "HS14", "residue_id": 14, "residue_name": "LHCU", "atom_name": "H21", "charge_group_num": 8, "partial_charge": 0.3344285714285714, "mass": 1.008, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 99, "atom_type": "NOpt", "residue_id": 14, "residue_name": "LHCU", "atom_name": "N7", "charge_group_num": 7, "partial_charge": -0.6825714285714285, "mass": 14.0067, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 100, "atom_type": "CH2", "residue_id": 15, "residue_name": "LHCU", "atom_name": "C51", "charge_group_num": 2, "partial_charge": 0.22942857142857143, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 101, "atom_type": "NOpt", "residue_id": 15, "residue_name": "LHCU", "atom_name": "N71", "charge_group_num": 3, "partial_charge": -0.6695714285714285, "mass": 14.0067, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 102, "atom_type": "HS14", "residue_id": 15, "residue_name": "LHCU", "atom_name": "H72", "charge_group_num": 4, "partial_charge": 0.32042857142857145, "mass": 1.008, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 103, "atom_type": "CH2", "residue_id": 15, "residue_name": "LHCU", "atom_name": "C61", "charge_group_num": 5, "partial_charge": 0.22642857142857142, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 104, "atom_type": "CH2", "residue_id": 15, "residue_name": "LHCU", "atom_name": "C5", "charge_group_num": 6, "partial_charge": 0.2414285714285714, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 105, "atom_type": "HS14", "residue_id": 15, "residue_name": "LHCU", "atom_name": "H21", "charge_group_num": 8, "partial_charge": 0.33442857142857146, "mass": 1.008, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 106, "atom_type": "NOpt", "residue_id": 15, "residue_name": "LHCU", "atom_name": "N7", "charge_group_num": 7, "partial_charge": -0.6825714285714285, "mass": 14.0067, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 107, "atom_type": "CH2", "residue_id": 16, "residue_name": "LHCU", "atom_name": "C51", "charge_group_num": 2, "partial_charge": 0.22942857142857143, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 108, "atom_type": "NOpt", "residue_id": 16, "residue_name": "LHCU", "atom_name": "N71", "charge_group_num": 3, "partial_charge": -0.6695714285714285, "mass": 14.0067, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 109, "atom_type": "HS14", "residue_id": 16, "residue_name": "LHCU", "atom_name": "H72", "charge_group_num": 4, "partial_charge": 0.32042857142857145, "mass": 1.008, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 110, "atom_type": "CH2", "residue_id": 16, "residue_name": "LHCU", "atom_name": "C61", "charge_group_num": 5, "partial_charge": 0.22642857142857142, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 111, "atom_type": "CH2", "residue_id": 16, "residue_name": "LHCU", "atom_name": "C5", "charge_group_num": 6, "partial_charge": 0.2414285714285714, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 112, "atom_type": "HS14", "residue_id": 16, "residue_name": "LHCU", "atom_name": "H21", "charge_group_num": 8, "partial_charge": 0.33442857142857146, "mass": 1.008, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 113, "atom_type": "NOpt", "residue_id": 16, "residue_name": "LHCU", "atom_name": "N7", "charge_group_num": 7, "partial_charge": -0.6825714285714285, "mass": 14.0067, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 114, "atom_type": "CH2", "residue_id": 17, "residue_name": "LHCU", "atom_name": "C51", "charge_group_num": 2, "partial_charge": 0.22942857142857143, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 115, "atom_type": "NOpt", "residue_id": 17, "residue_name": "LHCU", "atom_name": "N71", "charge_group_num": 3, "partial_charge": -0.6695714285714285, "mass": 14.0067, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 116, "atom_type": "HS14", "residue_id": 17, "residue_name": "LHCU", "atom_name": "H72", "charge_group_num": 4, "partial_charge": 0.32042857142857145, "mass": 1.008, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 117, "atom_type": "CH2", "residue_id": 17, "residue_name": "LHCU", "atom_name": "C61", "charge_group_num": 5, "partial_charge": 0.22642857142857142, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 118, "atom_type": "CH2", "residue_id": 17, "residue_name": "LHCU", "atom_name": "C5", "charge_group_num": 6, "partial_charge": 0.2414285714285714, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 119, "atom_type": "HS14", "residue_id": 17, "residue_name": "LHCU", "atom_name": "H21", "charge_group_num": 8, "partial_charge": 0.33442857142857146, "mass": 1.008, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 120, "atom_type": "NOpt", "residue_id": 17, "residue_name": "LHCU", "atom_name": "N7", "charge_group_num": 7, "partial_charge": -0.6825714285714285, "mass": 14.0067, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 121, "atom_type": "CH2", "residue_id": 18, "residue_name": "LHCU", "atom_name": "C51", "charge_group_num": 2, "partial_charge": 0.22942857142857143, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 122, "atom_type": "NOpt", "residue_id": 18, "residue_name": "LHCU", "atom_name": "N71", "charge_group_num": 3, "partial_charge": -0.6695714285714285, "mass": 14.0067, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 123, "atom_type": "HS14", "residue_id": 18, "residue_name": "LHCU", "atom_name": "H72", "charge_group_num": 4, "partial_charge": 0.32042857142857145, "mass": 1.008, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 124, "atom_type": "CH2", "residue_id": 18, "residue_name": "LHCU", "atom_name": "C61", "charge_group_num": 5, "partial_charge": 0.22642857142857142, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 125, "atom_type": "CH2", "residue_id": 18, "residue_name": "LHCU", "atom_name": "C5", "charge_group_num": 6, "partial_charge": 0.2414285714285714, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 126, "atom_type": "HS14", "residue_id": 18, "residue_name": "LHCU", "atom_name": "H21", "charge_group_num": 8, "partial_charge": 0.33442857142857146, "mass": 1.008, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 127, "atom_type": "NOpt", "residue_id": 18, "residue_name": "LHCU", "atom_name": "N7", "charge_group_num": 7, "partial_charge": -0.6825714285714285, "mass": 14.0067, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 128, "atom_type": "CH2", "residue_id": 19, "residue_name": "LHCU", "atom_name": "C51", "charge_group_num": 2, "partial_charge": 0.22942857142857143, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 129, "atom_type": "NOpt", "residue_id": 19, "residue_name": "LHCU", "atom_name": "N71", "charge_group_num": 3, "partial_charge": -0.6695714285714285, "mass": 14.0067, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 130, "atom_type": "HS14", "residue_id": 19, "residue_name": "LHCU", "atom_name": "H72", "charge_group_num": 4, "partial_charge": 0.32042857142857145, "mass": 1.008, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 131, "atom_type": "CH2", "residue_id": 19, "residue_name": "LHCU", "atom_name": "C61", "charge_group_num": 5, "partial_charge": 0.22642857142857142, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 132, "atom_type": "CH2", "residue_id": 19, "residue_name": "LHCU", "atom_name": "C5", "charge_group_num": 6, "partial_charge": 0.2414285714285714, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 134, "atom_type": "HS14", "residue_id": 19, "residue_name": "LHCU", "atom_name": "H21", "charge_group_num": 8, "partial_charge": 0.33442857142857146, "mass": 1.008, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 133, "atom_type": "NOpt", "residue_id": 19, "residue_name": "LHCU", "atom_name": "N7", "charge_group_num": 7, "partial_charge": -0.6825714285714285, "mass": 14.0067, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 137, "atom_type": "CH2", "residue_id": 20, "residue_name": "LHCU", "atom_name": "C51", "charge_group_num": 2, "partial_charge": 0.21521428571428572, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 138, "atom_type": "NOpt", "residue_id": 20, "residue_name": "LHCU", "atom_name": "N71", "charge_group_num": 3, "partial_charge": -0.6837857142857142, "mass": 14.0067, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 139, "atom_type": "HS14", "residue_id": 20, "residue_name": "LHCU", "atom_name": "H72", "charge_group_num": 4, "partial_charge": 0.3062142857142857, "mass": 1.008, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 140, "atom_type": "CH2", "residue_id": 20, "residue_name": "LHCU", "atom_name": "C61", "charge_group_num": 5, "partial_charge": 0.21221428571428572, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 141, "atom_type": "CH2", "residue_id": 20, "residue_name": "LHCU", "atom_name": "C5", "charge_group_num": 6, "partial_charge": 0.2272142857142857, "mass": 14.027, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 142, "atom_type": "NOpt", "residue_id": 20, "residue_name": "LHCU", "atom_name": "N7", "charge_group_num": 7, "partial_charge": -0.6967857142857142, "mass": 14.0067, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 143, "atom_type": "HS14", "residue_id": 20, "residue_name": "LHCU", "atom_name": "H21", "charge_group_num": 8, "partial_charge": 0.32021428571428573, "mass": 1.008, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}, {"atom_id": 144, "atom_type": "CH3", "residue_id": 20, "residue_name": "LHCU", "atom_name": "C6", "charge_group_num": 9, "partial_charge": 0.21221428571428572, "mass": 15.035, "x": 0.0, "y": 0.0, "z": 0.0, "formerly": null}], "bonds": [{"atom_a": 1, "atom_b": 2, "bond_type": 2, "bond_length": 0.153, "force_constant": 7150000.0, "order": 1}, {"atom_a": 2, "atom_b": 3, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 3, "atom_b": 5, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 3, "atom_b": 4, "bond_type": 2, "bond_length": 0.102, "force_constant": 17782000.0, "order": 1}, {"atom_a": 5, "atom_b": 6, "bond_type": 2, "bond_length": 0.153, "force_constant": 7150000.0, "order": 1}, {"atom_a": 6, "atom_b": 8, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 8, "atom_b": 7, "bond_type": 2, "bond_length": 0.102, "force_constant": 17782000.0, "order": 1}, {"atom_a": 8, "atom_b": 9, "bond_type": 2, "bond_length": 0.15, "force_constant": 8710000.0, "order": 1}, {"atom_a": 9, "atom_b": 10, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 10, "atom_b": 12, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 10, "atom_b": 11, "bond_type": 2, "bond_length": 0.102, "force_constant": 17782000.0, "order": 1}, {"atom_a": 12, "atom_b": 13, "bond_type": 2, "bond_length": 0.153, "force_constant": 7150000.0, "order": 1}, {"atom_a": 13, "atom_b": 15, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 15, "atom_b": 14, "bond_type": 2, "bond_length": 0.102, "force_constant": 17782000.0, "order": 1}, {"atom_a": 15, "atom_b": 16, "bond_type": 2, "bond_length": 0.15, "force_constant": 7150000.0, "order": 1}, {"atom_a": 16, "atom_b": 17, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 17, "atom_b": 18, "bond_type": 2, "bond_length": 0.102, "force_constant": 17782000.0, "order": 1}, {"atom_a": 17, "atom_b": 19, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 19, "atom_b": 20, "bond_type": 2, "bond_length": 0.153, "force_constant": 7150000.0, "order": 1}, {"atom_a": 20, "atom_b": 22, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 22, "atom_b": 21, "bond_type": 2, "bond_length": 0.102, "force_constant": 17782000.0, "order": 1}, {"atom_a": 22, "atom_b": 23, "bond_type": 2, "bond_length": 0.15, "force_constant": 8710000.0, "order": 1}, {"atom_a": 23, "atom_b": 24, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 24, "atom_b": 25, "bond_type": 2, "bond_length": 0.102, "force_constant": 17782000.0, "order": 1}, {"atom_a": 24, "atom_b": 26, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 26, "atom_b": 27, "bond_type": 2, "bond_length": 0.153, "force_constant": 7150000.0, "order": 1}, {"atom_a": 27, "atom_b": 29, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 29, "atom_b": 28, "bond_type": 2, "bond_length": 0.102, "force_constant": 17782000.0, "order": 1}, {"atom_a": 29, "atom_b": 30, "bond_type": 2, "bond_length": 0.15, "force_constant": 8710000.0, "order": 1}, {"atom_a": 30, "atom_b": 31, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 31, "atom_b": 33, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 31, "atom_b": 32, "bond_type": 2, "bond_length": 0.102, "force_constant": 17782000.0, "order": 1}, {"atom_a": 33, "atom_b": 34, "bond_type": 2, "bond_length": 0.153, "force_constant": 7150000.0, "order": 1}, {"atom_a": 34, "atom_b": 36, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 36, "atom_b": 35, "bond_type": 2, "bond_length": 0.102, "force_constant": 17782000.0, "order": 1}, {"atom_a": 36, "atom_b": 37, "bond_type": 2, "bond_length": 0.15, "force_constant": 8710000.0, "order": 1}, {"atom_a": 37, "atom_b": 38, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 38, "atom_b": 39, "bond_type": 2, "bond_length": 0.102, "force_constant": 17782000.0, "order": 1}, {"atom_a": 38, "atom_b": 40, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 40, "atom_b": 41, "bond_type": 2, "bond_length": 0.153, "force_constant": 7150000.0, "order": 1}, {"atom_a": 41, "atom_b": 43, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 43, "atom_b": 42, "bond_type": 2, "bond_length": 0.102, "force_constant": 17782000.0, "order": 1}, {"atom_a": 43, "atom_b": 44, "bond_type": 2, "bond_length": 0.15, "force_constant": 8710000.0, "order": 1}, {"atom_a": 44, "atom_b": 45, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 45, "atom_b": 47, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 45, "atom_b": 46, "bond_type": 2, "bond_length": 0.102, "force_constant": 17782000.0, "order": 1}, {"atom_a": 47, "atom_b": 48, "bond_type": 2, "bond_length": 0.153, "force_constant": 7150000.0, "order": 1}, {"atom_a": 48, "atom_b": 50, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 50, "atom_b": 49, "bond_type": 2, "bond_length": 0.102, "force_constant": 17782000.0, "order": 1}, {"atom_a": 50, "atom_b": 51, "bond_type": 2, "bond_length": 0.15, "force_constant": 8710000.0, "order": 1}, {"atom_a": 51, "atom_b": 52, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 52, "atom_b": 53, "bond_type": 2, "bond_length": 0.102, "force_constant": 17782000.0, "order": 1}, {"atom_a": 52, "atom_b": 54, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 54, "atom_b": 55, "bond_type": 2, "bond_length": 0.153, "force_constant": 7150000.0, "order": 1}, {"atom_a": 55, "atom_b": 57, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 57, "atom_b": 56, "bond_type": 2, "bond_length": 0.102, "force_constant": 17782000.0, "order": 1}, {"atom_a": 57, "atom_b": 58, "bond_type": 2, "bond_length": 0.15, "force_constant": 8710000.0, "order": 1}, {"atom_a": 58, "atom_b": 59, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 59, "atom_b": 61, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 59, "atom_b": 60, "bond_type": 2, "bond_length": 0.102, "force_constant": 17782000.0, "order": 1}, {"atom_a": 61, "atom_b": 62, "bond_type": 2, "bond_length": 0.153, "force_constant": 7150000.0, "order": 1}, {"atom_a": 62, "atom_b": 64, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 64, "atom_b": 63, "bond_type": 2, "bond_length": 0.102, "force_constant": 17782000.0, "order": 1}, {"atom_a": 64, "atom_b": 65, "bond_type": 2, "bond_length": 0.15, "force_constant": 8710000.0, "order": 1}, {"atom_a": 65, "atom_b": 66, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 66, "atom_b": 67, "bond_type": 2, "bond_length": 0.102, "force_constant": 17782000.0, "order": 1}, {"atom_a": 66, "atom_b": 68, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 68, "atom_b": 69, "bond_type": 2, "bond_length": 0.153, "force_constant": 7150000.0, "order": 1}, {"atom_a": 69, "atom_b": 71, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 71, "atom_b": 70, "bond_type": 2, "bond_length": 0.102, "force_constant": 17782000.0, "order": 1}, {"atom_a": 71, "atom_b": 72, "bond_type": 2, "bond_length": 0.15, "force_constant": 8710000.0, "order": 1}, {"atom_a": 72, "atom_b": 73, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 73, "atom_b": 75, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 73, "atom_b": 74, "bond_type": 2, "bond_length": 0.102, "force_constant": 17782000.0, "order": 1}, {"atom_a": 75, "atom_b": 76, "bond_type": 2, "bond_length": 0.153, "force_constant": 7150000.0, "order": 1}, {"atom_a": 76, "atom_b": 78, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 78, "atom_b": 77, "bond_type": 2, "bond_length": 0.102, "force_constant": 17782000.0, "order": 1}, {"atom_a": 78, "atom_b": 79, "bond_type": 2, "bond_length": 0.15, "force_constant": 7150000.0, "order": 1}, {"atom_a": 79, "atom_b": 80, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 80, "atom_b": 81, "bond_type": 2, "bond_length": 0.102, "force_constant": 17782000.0, "order": 1}, {"atom_a": 80, "atom_b": 82, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 82, "atom_b": 83, "bond_type": 2, "bond_length": 0.153, "force_constant": 7150000.0, "order": 1}, {"atom_a": 83, "atom_b": 85, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 85, "atom_b": 84, "bond_type": 2, "bond_length": 0.102, "force_constant": 17782000.0, "order": 1}, {"atom_a": 85, "atom_b": 86, "bond_type": 2, "bond_length": 0.15, "force_constant": 7150000.0, "order": 1}, {"atom_a": 86, "atom_b": 87, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 87, "atom_b": 89, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 87, "atom_b": 88, "bond_type": 2, "bond_length": 0.102, "force_constant": 17782000.0, "order": 1}, {"atom_a": 89, "atom_b": 90, "bond_type": 2, "bond_length": 0.153, "force_constant": 7150000.0, "order": 1}, {"atom_a": 90, "atom_b": 92, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 92, "atom_b": 91, "bond_type": 2, "bond_length": 0.102, "force_constant": 17782000.0, "order": 1}, {"atom_a": 92, "atom_b": 93, "bond_type": 2, "bond_length": 0.15, "force_constant": 7150000.0, "order": 1}, {"atom_a": 93, "atom_b": 94, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 94, "atom_b": 96, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 94, "atom_b": 95, "bond_type": 2, "bond_length": 0.102, "force_constant": 17782000.0, "order": 1}, {"atom_a": 96, "atom_b": 97, "bond_type": 2, "bond_length": 0.153, "force_constant": 7150000.0, "order": 1}, {"atom_a": 97, "atom_b": 99, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 99, "atom_b": 98, "bond_type": 2, "bond_length": 0.102, "force_constant": 17782000.0, "order": 1}, {"atom_a": 99, "atom_b": 100, "bond_type": 2, "bond_length": 0.15, "force_constant": 7150000.0, "order": 1}, {"atom_a": 100, "atom_b": 101, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 101, "atom_b": 103, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 101, "atom_b": 102, "bond_type": 2, "bond_length": 0.102, "force_constant": 17782000.0, "order": 1}, {"atom_a": 103, "atom_b": 104, "bond_type": 2, "bond_length": 0.153, "force_constant": 7150000.0, "order": 1}, {"atom_a": 104, "atom_b": 106, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 106, "atom_b": 105, "bond_type": 2, "bond_length": 0.102, "force_constant": 17782000.0, "order": 1}, {"atom_a": 106, "atom_b": 107, "bond_type": 2, "bond_length": 0.15, "force_constant": 7150000.0, "order": 1}, {"atom_a": 107, "atom_b": 108, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 108, "atom_b": 110, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 108, "atom_b": 109, "bond_type": 2, "bond_length": 0.102, "force_constant": 17782000.0, "order": 1}, {"atom_a": 110, "atom_b": 111, "bond_type": 2, "bond_length": 0.153, "force_constant": 7150000.0, "order": 1}, {"atom_a": 111, "atom_b": 113, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 113, "atom_b": 112, "bond_type": 2, "bond_length": 0.102, "force_constant": 17782000.0, "order": 1}, {"atom_a": 113, "atom_b": 114, "bond_type": 2, "bond_length": 0.15, "force_constant": 8710000.0, "order": 1}, {"atom_a": 114, "atom_b": 115, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 115, "atom_b": 116, "bond_type": 2, "bond_length": 0.102, "force_constant": 17782000.0, "order": 1}, {"atom_a": 115, "atom_b": 117, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 117, "atom_b": 118, "bond_type": 2, "bond_length": 0.153, "force_constant": 7150000.0, "order": 1}, {"atom_a": 118, "atom_b": 120, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 120, "atom_b": 119, "bond_type": 2, "bond_length": 0.102, "force_constant": 17782000.0, "order": 1}, {"atom_a": 120, "atom_b": 121, "bond_type": 2, "bond_length": 0.15, "force_constant": 7150000.0, "order": 1}, {"atom_a": 121, "atom_b": 122, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 122, "atom_b": 124, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 122, "atom_b": 123, "bond_type": 2, "bond_length": 0.102, "force_constant": 17782000.0, "order": 1}, {"atom_a": 124, "atom_b": 125, "bond_type": 2, "bond_length": 0.153, "force_constant": 7150000.0, "order": 1}, {"atom_a": 125, "atom_b": 127, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 127, "atom_b": 126, "bond_type": 2, "bond_length": 0.102, "force_constant": 17782000.0, "order": 1}, {"atom_a": 127, "atom_b": 128, "bond_type": 2, "bond_length": 0.15, "force_constant": 7150000.0, "order": 1}, {"atom_a": 128, "atom_b": 129, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 129, "atom_b": 130, "bond_type": 2, "bond_length": 0.102, "force_constant": 17782000.0, "order": 1}, {"atom_a": 129, "atom_b": 131, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 131, "atom_b": 132, "bond_type": 2, "bond_length": 0.153, "force_constant": 7150000.0, "order": 1}, {"atom_a": 132, "atom_b": 133, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 133, "atom_b": 134, "bond_type": 2, "bond_length": 0.102, "force_constant": 17782000.0, "order": 1}, {"atom_a": 133, "atom_b": 137, "bond_type": 2, "bond_length": 0.15, "force_constant": 7150000.0, "order": 1}, {"atom_a": 137, "atom_b": 138, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 138, "atom_b": 139, "bond_type": 2, "bond_length": 0.102, "force_constant": 17782000.0, "order": 1}, {"atom_a": 138, "atom_b": 140, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 140, "atom_b": 141, "bond_type": 2, "bond_length": 0.153, "force_constant": 7150000.0, "order": 1}, {"atom_a": 141, "atom_b": 142, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}, {"atom_a": 142, "atom_b": 143, "bond_type": 2, "bond_length": 0.102, "force_constant": 17782000.0, "order": 1}, {"atom_a": 142, "atom_b": 144, "bond_type": 2, "bond_length": 0.147, "force_constant": 8710000.0, "order": 1}], "angles": [{"atom_a": 1, "atom_b": 2, "atom_c": 3, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 2, "atom_b": 3, "atom_c": 4, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 2, "atom_b": 3, "atom_c": 5, "angle_type": 2, "angle_value": 116.0, "force_constant": 620.0}, {"atom_a": 4, "atom_b": 3, "atom_c": 5, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 3, "atom_b": 5, "atom_c": 6, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 5, "atom_b": 6, "atom_c": 8, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 6, "atom_b": 8, "atom_c": 7, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 6, "atom_b": 8, "atom_c": 9, "angle_type": 2, "angle_value": 116.0, "force_constant": 620.0}, {"atom_a": 7, "atom_b": 8, "atom_c": 9, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 8, "atom_b": 9, "atom_c": 10, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 9, "atom_b": 10, "atom_c": 12, "angle_type": 2, "angle_value": 116.0, "force_constant": 620.0}, {"atom_a": 9, "atom_b": 10, "atom_c": 11, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 11, "atom_b": 10, "atom_c": 12, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 10, "atom_b": 12, "atom_c": 13, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 12, "atom_b": 13, "atom_c": 15, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 13, "atom_b": 15, "atom_c": 16, "angle_type": 2, "angle_value": 116.0, "force_constant": 620.0}, {"atom_a": 13, "atom_b": 15, "atom_c": 14, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 14, "atom_b": 15, "atom_c": 16, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 15, "atom_b": 16, "atom_c": 17, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 16, "atom_b": 17, "atom_c": 19, "angle_type": 2, "angle_value": 116.0, "force_constant": 620.0}, {"atom_a": 16, "atom_b": 17, "atom_c": 18, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 18, "atom_b": 17, "atom_c": 19, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 17, "atom_b": 19, "atom_c": 20, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 19, "atom_b": 20, "atom_c": 22, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 20, "atom_b": 22, "atom_c": 23, "angle_type": 2, "angle_value": 116.0, "force_constant": 620.0}, {"atom_a": 20, "atom_b": 22, "atom_c": 21, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 21, "atom_b": 22, "atom_c": 23, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 22, "atom_b": 23, "atom_c": 24, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 23, "atom_b": 24, "atom_c": 26, "angle_type": 2, "angle_value": 116.0, "force_constant": 620.0}, {"atom_a": 23, "atom_b": 24, "atom_c": 25, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 25, "atom_b": 24, "atom_c": 26, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 24, "atom_b": 26, "atom_c": 27, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 26, "atom_b": 27, "atom_c": 29, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 27, "atom_b": 29, "atom_c": 30, "angle_type": 2, "angle_value": 116.0, "force_constant": 620.0}, {"atom_a": 27, "atom_b": 29, "atom_c": 28, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 28, "atom_b": 29, "atom_c": 30, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 29, "atom_b": 30, "atom_c": 31, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 30, "atom_b": 31, "atom_c": 33, "angle_type": 2, "angle_value": 116.0, "force_constant": 620.0}, {"atom_a": 30, "atom_b": 31, "atom_c": 32, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 32, "atom_b": 31, "atom_c": 33, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 31, "atom_b": 33, "atom_c": 34, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 33, "atom_b": 34, "atom_c": 36, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 34, "atom_b": 36, "atom_c": 35, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 34, "atom_b": 36, "atom_c": 37, "angle_type": 2, "angle_value": 116.0, "force_constant": 620.0}, {"atom_a": 35, "atom_b": 36, "atom_c": 37, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 36, "atom_b": 37, "atom_c": 38, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 37, "atom_b": 38, "atom_c": 39, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 37, "atom_b": 38, "atom_c": 40, "angle_type": 2, "angle_value": 116.0, "force_constant": 620.0}, {"atom_a": 39, "atom_b": 38, "atom_c": 40, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 38, "atom_b": 40, "atom_c": 41, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 40, "atom_b": 41, "atom_c": 43, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 41, "atom_b": 43, "atom_c": 44, "angle_type": 2, "angle_value": 116.0, "force_constant": 620.0}, {"atom_a": 41, "atom_b": 43, "atom_c": 42, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 42, "atom_b": 43, "atom_c": 44, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 43, "atom_b": 44, "atom_c": 45, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 44, "atom_b": 45, "atom_c": 46, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 44, "atom_b": 45, "atom_c": 47, "angle_type": 2, "angle_value": 116.0, "force_constant": 620.0}, {"atom_a": 45, "atom_b": 47, "atom_c": 48, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 46, "atom_b": 45, "atom_c": 47, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 47, "atom_b": 48, "atom_c": 50, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 48, "atom_b": 50, "atom_c": 49, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 48, "atom_b": 50, "atom_c": 51, "angle_type": 2, "angle_value": 116.0, "force_constant": 620.0}, {"atom_a": 49, "atom_b": 50, "atom_c": 51, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 50, "atom_b": 51, "atom_c": 52, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 51, "atom_b": 52, "atom_c": 53, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 51, "atom_b": 52, "atom_c": 54, "angle_type": 2, "angle_value": 116.0, "force_constant": 620.0}, {"atom_a": 53, "atom_b": 52, "atom_c": 54, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 52, "atom_b": 54, "atom_c": 55, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 54, "atom_b": 55, "atom_c": 57, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 55, "atom_b": 57, "atom_c": 56, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 55, "atom_b": 57, "atom_c": 58, "angle_type": 2, "angle_value": 116.0, "force_constant": 620.0}, {"atom_a": 56, "atom_b": 57, "atom_c": 58, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 57, "atom_b": 58, "atom_c": 59, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 58, "atom_b": 59, "atom_c": 61, "angle_type": 2, "angle_value": 116.0, "force_constant": 620.0}, {"atom_a": 58, "atom_b": 59, "atom_c": 60, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 59, "atom_b": 61, "atom_c": 62, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 60, "atom_b": 59, "atom_c": 61, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 61, "atom_b": 62, "atom_c": 64, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 62, "atom_b": 64, "atom_c": 63, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 62, "atom_b": 64, "atom_c": 65, "angle_type": 2, "angle_value": 116.0, "force_constant": 620.0}, {"atom_a": 63, "atom_b": 64, "atom_c": 65, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 64, "atom_b": 65, "atom_c": 66, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 65, "atom_b": 66, "atom_c": 68, "angle_type": 2, "angle_value": 116.0, "force_constant": 620.0}, {"atom_a": 65, "atom_b": 66, "atom_c": 67, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 67, "atom_b": 66, "atom_c": 68, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 66, "atom_b": 68, "atom_c": 69, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 68, "atom_b": 69, "atom_c": 71, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 69, "atom_b": 71, "atom_c": 72, "angle_type": 2, "angle_value": 116.0, "force_constant": 620.0}, {"atom_a": 69, "atom_b": 71, "atom_c": 70, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 70, "atom_b": 71, "atom_c": 72, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 71, "atom_b": 72, "atom_c": 73, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 72, "atom_b": 73, "atom_c": 74, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 72, "atom_b": 73, "atom_c": 75, "angle_type": 2, "angle_value": 116.0, "force_constant": 620.0}, {"atom_a": 74, "atom_b": 73, "atom_c": 75, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 73, "atom_b": 75, "atom_c": 76, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 75, "atom_b": 76, "atom_c": 78, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 76, "atom_b": 78, "atom_c": 77, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 76, "atom_b": 78, "atom_c": 79, "angle_type": 2, "angle_value": 116.0, "force_constant": 620.0}, {"atom_a": 77, "atom_b": 78, "atom_c": 79, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 78, "atom_b": 79, "atom_c": 80, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 79, "atom_b": 80, "atom_c": 82, "angle_type": 2, "angle_value": 116.0, "force_constant": 620.0}, {"atom_a": 79, "atom_b": 80, "atom_c": 81, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 81, "atom_b": 80, "atom_c": 82, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 80, "atom_b": 82, "atom_c": 83, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 82, "atom_b": 83, "atom_c": 85, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 83, "atom_b": 85, "atom_c": 86, "angle_type": 2, "angle_value": 116.0, "force_constant": 620.0}, {"atom_a": 83, "atom_b": 85, "atom_c": 84, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 84, "atom_b": 85, "atom_c": 86, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 85, "atom_b": 86, "atom_c": 87, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 86, "atom_b": 87, "atom_c": 89, "angle_type": 2, "angle_value": 116.0, "force_constant": 620.0}, {"atom_a": 86, "atom_b": 87, "atom_c": 88, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 88, "atom_b": 87, "atom_c": 89, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 87, "atom_b": 89, "atom_c": 90, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 89, "atom_b": 90, "atom_c": 92, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 90, "atom_b": 92, "atom_c": 91, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 90, "atom_b": 92, "atom_c": 93, "angle_type": 2, "angle_value": 116.0, "force_constant": 620.0}, {"atom_a": 91, "atom_b": 92, "atom_c": 93, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 92, "atom_b": 93, "atom_c": 94, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 93, "atom_b": 94, "atom_c": 95, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 93, "atom_b": 94, "atom_c": 96, "angle_type": 2, "angle_value": 116.0, "force_constant": 620.0}, {"atom_a": 94, "atom_b": 96, "atom_c": 97, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 95, "atom_b": 94, "atom_c": 96, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 96, "atom_b": 97, "atom_c": 99, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 97, "atom_b": 99, "atom_c": 98, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 97, "atom_b": 99, "atom_c": 100, "angle_type": 2, "angle_value": 116.0, "force_constant": 620.0}, {"atom_a": 98, "atom_b": 99, "atom_c": 100, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 99, "atom_b": 100, "atom_c": 101, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 100, "atom_b": 101, "atom_c": 102, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 100, "atom_b": 101, "atom_c": 103, "angle_type": 2, "angle_value": 116.0, "force_constant": 620.0}, {"atom_a": 102, "atom_b": 101, "atom_c": 103, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 101, "atom_b": 103, "atom_c": 104, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 103, "atom_b": 104, "atom_c": 106, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 104, "atom_b": 106, "atom_c": 105, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 104, "atom_b": 106, "atom_c": 107, "angle_type": 2, "angle_value": 116.0, "force_constant": 620.0}, {"atom_a": 105, "atom_b": 106, "atom_c": 107, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 106, "atom_b": 107, "atom_c": 108, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 107, "atom_b": 108, "atom_c": 109, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 107, "atom_b": 108, "atom_c": 110, "angle_type": 2, "angle_value": 116.0, "force_constant": 620.0}, {"atom_a": 109, "atom_b": 108, "atom_c": 110, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 108, "atom_b": 110, "atom_c": 111, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 110, "atom_b": 111, "atom_c": 113, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 111, "atom_b": 113, "atom_c": 114, "angle_type": 2, "angle_value": 116.0, "force_constant": 620.0}, {"atom_a": 111, "atom_b": 113, "atom_c": 112, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 112, "atom_b": 113, "atom_c": 114, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 113, "atom_b": 114, "atom_c": 115, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 114, "atom_b": 115, "atom_c": 116, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 114, "atom_b": 115, "atom_c": 117, "angle_type": 2, "angle_value": 116.0, "force_constant": 620.0}, {"atom_a": 116, "atom_b": 115, "atom_c": 117, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 115, "atom_b": 117, "atom_c": 118, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 117, "atom_b": 118, "atom_c": 120, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 118, "atom_b": 120, "atom_c": 119, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 118, "atom_b": 120, "atom_c": 121, "angle_type": 2, "angle_value": 116.0, "force_constant": 620.0}, {"atom_a": 119, "atom_b": 120, "atom_c": 121, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 120, "atom_b": 121, "atom_c": 122, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 121, "atom_b": 122, "atom_c": 124, "angle_type": 2, "angle_value": 116.0, "force_constant": 620.0}, {"atom_a": 121, "atom_b": 122, "atom_c": 123, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 122, "atom_b": 124, "atom_c": 125, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 123, "atom_b": 122, "atom_c": 124, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 124, "atom_b": 125, "atom_c": 127, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 125, "atom_b": 127, "atom_c": 126, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 125, "atom_b": 127, "atom_c": 128, "angle_type": 2, "angle_value": 116.0, "force_constant": 620.0}, {"atom_a": 126, "atom_b": 127, "atom_c": 128, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 127, "atom_b": 128, "atom_c": 129, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 128, "atom_b": 129, "atom_c": 131, "angle_type": 2, "angle_value": 116.0, "force_constant": 620.0}, {"atom_a": 128, "atom_b": 129, "atom_c": 130, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 130, "atom_b": 129, "atom_c": 131, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 129, "atom_b": 131, "atom_c": 132, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 131, "atom_b": 132, "atom_c": 133, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 132, "atom_b": 133, "atom_c": 137, "angle_type": 2, "angle_value": 116.0, "force_constant": 620.0}, {"atom_a": 132, "atom_b": 133, "atom_c": 134, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 134, "atom_b": 133, "atom_c": 137, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 133, "atom_b": 137, "atom_c": 138, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 137, "atom_b": 138, "atom_c": 140, "angle_type": 2, "angle_value": 116.0, "force_constant": 620.0}, {"atom_a": 137, "atom_b": 138, "atom_c": 139, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 139, "atom_b": 138, "atom_c": 140, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 138, "atom_b": 140, "atom_c": 141, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 140, "atom_b": 141, "atom_c": 142, "angle_type": 2, "angle_value": 111.0, "force_constant": 530.0}, {"atom_a": 141, "atom_b": 142, "atom_c": 144, "angle_type": 2, "angle_value": 116.0, "force_constant": 620.0}, {"atom_a": 141, "atom_b": 142, "atom_c": 143, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}, {"atom_a": 143, "atom_b": 142, "atom_c": 144, "angle_type": 2, "angle_value": 109.5, "force_constant": 425.0}], "dihedrals": [{"atom_a": 1, "atom_b": 2, "atom_c": 3, "atom_d": 5, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 2, "atom_b": 3, "atom_c": 5, "atom_d": 6, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 3, "atom_b": 5, "atom_c": 6, "atom_d": 8, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 5.92, "multiplicity": 3}, {"atom_a": 5, "atom_b": 6, "atom_c": 8, "atom_d": 9, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 8, "atom_b": 9, "atom_c": 10, "atom_d": 12, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 9, "atom_b": 10, "atom_c": 12, "atom_d": 13, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 10, "atom_b": 12, "atom_c": 13, "atom_d": 15, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 5.92, "multiplicity": 3}, {"atom_a": 12, "atom_b": 13, "atom_c": 15, "atom_d": 16, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 15, "atom_b": 16, "atom_c": 17, "atom_d": 19, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 16, "atom_b": 17, "atom_c": 19, "atom_d": 20, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 17, "atom_b": 19, "atom_c": 20, "atom_d": 22, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 5.92, "multiplicity": 3}, {"atom_a": 19, "atom_b": 20, "atom_c": 22, "atom_d": 23, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 22, "atom_b": 23, "atom_c": 24, "atom_d": 26, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 23, "atom_b": 24, "atom_c": 26, "atom_d": 27, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 24, "atom_b": 26, "atom_c": 27, "atom_d": 29, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 5.92, "multiplicity": 3}, {"atom_a": 26, "atom_b": 27, "atom_c": 29, "atom_d": 30, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 29, "atom_b": 30, "atom_c": 31, "atom_d": 33, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 30, "atom_b": 31, "atom_c": 33, "atom_d": 34, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 31, "atom_b": 33, "atom_c": 34, "atom_d": 36, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 5.92, "multiplicity": 3}, {"atom_a": 33, "atom_b": 34, "atom_c": 36, "atom_d": 37, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 36, "atom_b": 37, "atom_c": 38, "atom_d": 40, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 37, "atom_b": 38, "atom_c": 40, "atom_d": 41, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 38, "atom_b": 40, "atom_c": 41, "atom_d": 43, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 5.92, "multiplicity": 3}, {"atom_a": 40, "atom_b": 41, "atom_c": 43, "atom_d": 44, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 43, "atom_b": 44, "atom_c": 45, "atom_d": 47, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 44, "atom_b": 45, "atom_c": 47, "atom_d": 48, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 45, "atom_b": 47, "atom_c": 48, "atom_d": 50, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 5.92, "multiplicity": 3}, {"atom_a": 47, "atom_b": 48, "atom_c": 50, "atom_d": 51, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 50, "atom_b": 51, "atom_c": 52, "atom_d": 54, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 51, "atom_b": 52, "atom_c": 54, "atom_d": 55, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 52, "atom_b": 54, "atom_c": 55, "atom_d": 57, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 5.92, "multiplicity": 3}, {"atom_a": 54, "atom_b": 55, "atom_c": 57, "atom_d": 58, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 57, "atom_b": 58, "atom_c": 59, "atom_d": 61, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 58, "atom_b": 59, "atom_c": 61, "atom_d": 62, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 59, "atom_b": 61, "atom_c": 62, "atom_d": 64, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 5.92, "multiplicity": 3}, {"atom_a": 61, "atom_b": 62, "atom_c": 64, "atom_d": 65, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 64, "atom_b": 65, "atom_c": 66, "atom_d": 68, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 65, "atom_b": 66, "atom_c": 68, "atom_d": 69, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 66, "atom_b": 68, "atom_c": 69, "atom_d": 71, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 5.92, "multiplicity": 3}, {"atom_a": 68, "atom_b": 69, "atom_c": 71, "atom_d": 72, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 71, "atom_b": 72, "atom_c": 73, "atom_d": 75, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 72, "atom_b": 73, "atom_c": 75, "atom_d": 76, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 73, "atom_b": 75, "atom_c": 76, "atom_d": 78, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 5.92, "multiplicity": 3}, {"atom_a": 75, "atom_b": 76, "atom_c": 78, "atom_d": 79, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 78, "atom_b": 79, "atom_c": 80, "atom_d": 82, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 79, "atom_b": 80, "atom_c": 82, "atom_d": 83, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 80, "atom_b": 82, "atom_c": 83, "atom_d": 85, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 5.92, "multiplicity": 3}, {"atom_a": 82, "atom_b": 83, "atom_c": 85, "atom_d": 86, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 85, "atom_b": 86, "atom_c": 87, "atom_d": 89, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 86, "atom_b": 87, "atom_c": 89, "atom_d": 90, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 87, "atom_b": 89, "atom_c": 90, "atom_d": 92, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 5.92, "multiplicity": 3}, {"atom_a": 89, "atom_b": 90, "atom_c": 92, "atom_d": 93, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 92, "atom_b": 93, "atom_c": 94, "atom_d": 96, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 93, "atom_b": 94, "atom_c": 96, "atom_d": 97, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 94, "atom_b": 96, "atom_c": 97, "atom_d": 99, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 5.92, "multiplicity": 3}, {"atom_a": 96, "atom_b": 97, "atom_c": 99, "atom_d": 100, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 99, "atom_b": 100, "atom_c": 101, "atom_d": 103, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 100, "atom_b": 101, "atom_c": 103, "atom_d": 104, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 101, "atom_b": 103, "atom_c": 104, "atom_d": 106, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 5.92, "multiplicity": 3}, {"atom_a": 103, "atom_b": 104, "atom_c": 106, "atom_d": 107, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 106, "atom_b": 107, "atom_c": 108, "atom_d": 110, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 107, "atom_b": 108, "atom_c": 110, "atom_d": 111, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 108, "atom_b": 110, "atom_c": 111, "atom_d": 113, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 5.92, "multiplicity": 3}, {"atom_a": 110, "atom_b": 111, "atom_c": 113, "atom_d": 114, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 113, "atom_b": 114, "atom_c": 115, "atom_d": 117, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 114, "atom_b": 115, "atom_c": 117, "atom_d": 118, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 115, "atom_b": 117, "atom_c": 118, "atom_d": 120, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 5.92, "multiplicity": 3}, {"atom_a": 117, "atom_b": 118, "atom_c": 120, "atom_d": 121, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 120, "atom_b": 121, "atom_c": 122, "atom_d": 124, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 121, "atom_b": 122, "atom_c": 124, "atom_d": 125, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 122, "atom_b": 124, "atom_c": 125, "atom_d": 127, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 5.92, "multiplicity": 3}, {"atom_a": 124, "atom_b": 125, "atom_c": 127, "atom_d": 128, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 127, "atom_b": 128, "atom_c": 129, "atom_d": 131, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 128, "atom_b": 129, "atom_c": 131, "atom_d": 132, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 129, "atom_b": 131, "atom_c": 132, "atom_d": 133, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 5.92, "multiplicity": 3}, {"atom_a": 131, "atom_b": 132, "atom_c": 133, "atom_d": 137, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 133, "atom_b": 137, "atom_c": 138, "atom_d": 140, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 137, "atom_b": 138, "atom_c": 140, "atom_d": 141, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}, {"atom_a": 138, "atom_b": 140, "atom_c": 141, "atom_d": 142, "dihedral_type": 1, "phase_angle": 0.0, "force_constant": 5.92, "multiplicity": 3}, {"atom_a": 140, "atom_b": 141, "atom_c": 142, "atom_d": 144, "dihedral_type": 1, "phase_angle": 180.0, "force_constant": 1.0, "multiplicity": 6}], "pairs": [{"atom_a": 1, "atom_b": 5, "pair_type": 1}, {"atom_a": 1, "atom_b": 4, "pair_type": 1}, {"atom_a": 2, "atom_b": 6, "pair_type": 1}, {"atom_a": 3, "atom_b": 8, "pair_type": 1}, {"atom_a": 4, "atom_b": 6, "pair_type": 1}, {"atom_a": 5, "atom_b": 7, "pair_type": 1}, {"atom_a": 9, "atom_b": 13, "pair_type": 1}, {"atom_a": 10, "atom_b": 15, "pair_type": 1}, {"atom_a": 11, "atom_b": 13, "pair_type": 1}, {"atom_a": 12, "atom_b": 14, "pair_type": 1}, {"atom_a": 16, "atom_b": 20, "pair_type": 1}, {"atom_a": 17, "atom_b": 22, "pair_type": 1}, {"atom_a": 18, "atom_b": 20, "pair_type": 1}, {"atom_a": 19, "atom_b": 21, "pair_type": 1}, {"atom_a": 23, "atom_b": 27, "pair_type": 1}, {"atom_a": 24, "atom_b": 29, "pair_type": 1}, {"atom_a": 25, "atom_b": 27, "pair_type": 1}, {"atom_a": 26, "atom_b": 28, "pair_type": 1}, {"atom_a": 30, "atom_b": 34, "pair_type": 1}, {"atom_a": 31, "atom_b": 36, "pair_type": 1}, {"atom_a": 32, "atom_b": 34, "pair_type": 1}, {"atom_a": 33, "atom_b": 35, "pair_type": 1}, {"atom_a": 37, "atom_b": 41, "pair_type": 1}, {"atom_a": 38, "atom_b": 43, "pair_type": 1}, {"atom_a": 39, "atom_b": 41, "pair_type": 1}, {"atom_a": 40, "atom_b": 42, "pair_type": 1}, {"atom_a": 44, "atom_b": 48, "pair_type": 1}, {"atom_a": 45, "atom_b": 50, "pair_type": 1}, {"atom_a": 46, "atom_b": 48, "pair_type": 1}, {"atom_a": 47, "atom_b": 49, "pair_type": 1}, {"atom_a": 51, "atom_b": 55, "pair_type": 1}, {"atom_a": 52, "atom_b": 57, "pair_type": 1}, {"atom_a": 53, "atom_b": 55, "pair_type": 1}, {"atom_a": 54, "atom_b": 56, "pair_type": 1}, {"atom_a": 58, "atom_b": 62, "pair_type": 1}, {"atom_a": 59, "atom_b": 64, "pair_type": 1}, {"atom_a": 60, "atom_b": 62, "pair_type": 1}, {"atom_a": 61, "atom_b": 63, "pair_type": 1}, {"atom_a": 65, "atom_b": 69, "pair_type": 1}, {"atom_a": 66, "atom_b": 71, "pair_type": 1}, {"atom_a": 67, "atom_b": 69, "pair_type": 1}, {"atom_a": 68, "atom_b": 70, "pair_type": 1}, {"atom_a": 72, "atom_b": 76, "pair_type": 1}, {"atom_a": 73, "atom_b": 78, "pair_type": 1}, {"atom_a": 74, "atom_b": 76, "pair_type": 1}, {"atom_a": 75, "atom_b": 77, "pair_type": 1}, {"atom_a": 79, "atom_b": 83, "pair_type": 1}, {"atom_a": 80, "atom_b": 85, "pair_type": 1}, {"atom_a": 81, "atom_b": 83, "pair_type": 1}, {"atom_a": 82, "atom_b": 84, "pair_type": 1}, {"atom_a": 86, "atom_b": 90, "pair_type": 1}, {"atom_a": 87, "atom_b": 92, "pair_type": 1}, {"atom_a": 88, "atom_b": 90, "pair_type": 1}, {"atom_a": 89, "atom_b": 91, "pair_type": 1}, {"atom_a": 93, "atom_b": 97, "pair_type": 1}, {"atom_a": 94, "atom_b": 99, "pair_type": 1}, {"atom_a": 95, "atom_b": 97, "pair_type": 1}, {"atom_a": 96, "atom_b": 98, "pair_type": 1}, {"atom_a": 100, "atom_b": 104, "pair_type": 1}, {"atom_a": 101, "atom_b": 106, "pair_type": 1}, {"atom_a": 102, "atom_b": 104, "pair_type": 1}, {"atom_a": 103, "atom_b": 105, "pair_type": 1}, {"atom_a": 107, "atom_b": 111, "pair_type": 1}, {"atom_a": 108, "atom_b": 113, "pair_type": 1}, {"atom_a": 109, "atom_b": 111, "pair_type": 1}, {"atom_a": 110, "atom_b": 112, "pair_type": 1}, {"atom_a": 114, "atom_b": 118, "pair_type": 1}, {"atom_a": 115, "atom_b": 120, "pair_type": 1}, {"atom_a": 116, "atom_b": 118, "pair_type": 1}, {"atom_a": 117, "atom_b": 119, "pair_type": 1}, {"atom_a": 121, "atom_b": 125, "pair_type": 1}, {"atom_a": 122, "atom_b": 127, "pair_type": 1}, {"atom_a": 123, "atom_b": 125, "pair_type": 1}, {"atom_a": 124, "atom_b": 126, "pair_type": 1}, {"atom_a": 128, "atom_b": 132, "pair_type": 1}, {"atom_a": 129, "atom_b": 133, "pair_type": 1}, {"atom_a": 130, "atom_b": 132, "pair_type": 1}, {"atom_a": 131, "atom_b": 134, "pair_type": 1}, {"atom_a": 137, "atom_b": 141, "pair_type": 1}, {"atom_a": 138, "atom_b": 142, "pair_type": 1}, {"atom_a": 139, "atom_b": 141, "pair_type": 1}, {"atom_a": 140, "atom_b": 144, "pair_type": 1}, {"atom_a": 140, "atom_b": 143, "pair_type": 1}], "exclusions": [], "preamble": [";----------------------------TITLE -----------------------------------------------------------------------------------------", "; None", ";", "; This file was generated at 14:05 on 2024-12-13 by", ";", "; Automatic Topology Builder", ";", "; REVISION 2024-11-20 12:06:25", ";---------------------------------------------------------------------------------------------------------------------------", "; Authors : Martin Stroet, Bertrand Caron, Alpeshkumar K. Malde, Thomas Lee, Alan E. Mark", ";", "; Institute : Molecular Dynamics group,", "; School of Chemistry and Molecular Biosciences (SCMB),", "; The University of Queensland, QLD 4072, Australia", "; URL : https://atb.uq.edu.au", "; Citations : 1. Malde AK, Zuo L, Breeze M, Stroet M, Poger D, Nair PC, Oostenbrink C, Mark AE.", "; An Automated force field Topology Builder (ATB) and repository: version 1.0.", "; Journal of Chemical Theory and Computation, 2011, 7, 4026-4037.", "; 2. Stroet M, Caron B, Visscher K, Geerke D, Malde AK, Mark AE.", "; Automated Topology Builder version 3.0: Prediction of solvation free enthalpies in water and hexane.", "; DOI:10.1021/acs.jctc.8b00768", ";", "; Disclaimer :", "; While every effort has been made to ensure the accuracy and validity of parameters provided below", "; the assignment of parameters is being based on an automated procedure combining data provided by a", "; given user as well as calculations performed using third party software. They are provided as a guide.", "; The authors of the ATB cannot guarantee that the parameters are complete or that the parameters provided", "; are appropriate for use in any specific application. Users are advised to treat these parameters with discretion", "; and to perform additional validation tests for their specific application if required. Neither the authors", "; of the ATB or The University of Queensland except any responsibly for how the parameters may be used.", ";", "; Release notes and warnings:", "; (1) The topology is based on a set of atomic coordinates and other data provided by the user after", "; after quantum mechanical optimization of the structure using different levels of theory depending on", "; the nature of the molecule.", "; (2) In some cases the automatic bond, bond angle and dihedral type assignment is ambiguous.", "; In these cases alternative type codes are provided at the end of the line.", "; (3) While bonded parameters are taken where possible from the nominated force field non-standard bond, angle and dihedral", "; type code may be incorporated in cases where an exact match could not be found. These are marked as \"non-standard\"", "; or \"uncertain\" in comments.", "; (4) In some cases it is not possible to assign an appropriate parameter automatically. \"%%\" is used as a place holder", "; for those fields that could not be determined automatically. The parameters in these fields must be assigned manually", "; before the file can be used.", ";---------------------------------------------------------------------------------------------------------------------------", "; Input Structure : LHCU", "; Output : UNITED ATOM topology", ";\tUse in conjunction with the corresponding united atom PDB file.", ";---------------------------------------------------------------------------------------------------------------------------", "; Citing this topology file", "; ATB molid: 1707355", "; ATB Topology Hash: f968d", ";---------------------------------------------------------------------------------------------------------------------------", "; Final Topology Generation was performed using:", "; A B3LYP/6-31G* optimized geometry.", "; Bonded and van der Waals parameters were taken from the GROMOS 54A7 parameter set.", "; Initial charges were estimated using the ESP method of Merz-Kollman.", "; Final charges and charge groups were generated by method described in the ATB paper.", "; If required, additional bonded parameters were generated from a Hessian matrix calculated at the B3LYP/6-31G* level of theory.", ";---------------------------------------------------------------------------------------------------------------------------", ";", ";"], "moleculetype": {"name": "LHCU", "nrexcl": 3}}, "junctions": [{"name": "to", "monomer_atom": "C51", "residue_atom": "C62"}, {"name": "from", "monomer_atom": "N7", "residue_atom": "C6"}]} \ No newline at end of file diff --git a/data_paper_examples/pei_linear_polymer.png b/data_paper_examples/pei_linear_polymer.png new file mode 100644 index 0000000..c6948dd Binary files /dev/null and b/data_paper_examples/pei_linear_polymer.png differ diff --git a/docs/requirements.yaml b/docs/requirements.yaml index da69945..ac602db 100644 --- a/docs/requirements.yaml +++ b/docs/requirements.yaml @@ -6,7 +6,6 @@ dependencies: # Base depends - python - pip - - mdanalysis-sphinx-theme >=1.0.1 # MDAnalysis - MDAnalysis diff --git a/docs/source/_static/logo/placeholder_favicon.svg b/docs/source/_static/logo/placeholder_favicon.svg index cf62228..b6b30c4 100644 --- a/docs/source/_static/logo/placeholder_favicon.svg +++ b/docs/source/_static/logo/placeholder_favicon.svg @@ -15,7 +15,7 @@ `_ +with the command used, a copy of your monomer CSV file and a description of the +issue observed. + +For more information and how to use it, see +:ref:`Automated Linear, United-Atom Polymer Builder` documentation. + + +-------------------------------------------------------------------------------------- + +Find the above and additional worked examples as executable Python scripts or Jupyter +Notebooks on the `PolyConstruct GitHub repository `_. +Examples for PolyTop are available at 'polyconstruct/paper_worked_examples.ipynb' +and for PolyConf at 'polyconstruct/polyconf_examples/'; while instructions to +use the two PolyBuild scripts are included under the :ref:`PolyBuild` documentation. \ No newline at end of file diff --git a/docs/source/index.rst b/docs/source/index.rst index eedf161..59dc14d 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -7,11 +7,13 @@ Welcome to PolyConstruct's documentation! ========================================================= .. toctree:: - :maxdepth: 2 + :maxdepth: 1 :caption: Contents: getting_started - api + polybuild + polyconf + polytop diff --git a/docs/source/modules.rst b/docs/source/modules.rst deleted file mode 100644 index da5eb6d..0000000 --- a/docs/source/modules.rst +++ /dev/null @@ -1,7 +0,0 @@ -polyconf -======== - -.. toctree:: - :maxdepth: 4 - - polyconf diff --git a/docs/source/polybuild.rst b/docs/source/polybuild.rst new file mode 100644 index 0000000..9838a0b --- /dev/null +++ b/docs/source/polybuild.rst @@ -0,0 +1,22 @@ +PolyBuild +================ + +ITP2RTP +----------------------- + +.. automodule:: polybuild.ITP2RTP + :show-inheritance: + +RTPcharge +------------------- + +.. automodule:: polybuild.RTPcharge + :show-inheritance: + +Module contents +--------------- + +.. automodule:: polybuild + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/polyconf.Monomer.rst b/docs/source/polyconf.Monomer.rst new file mode 100644 index 0000000..613e1c1 --- /dev/null +++ b/docs/source/polyconf.Monomer.rst @@ -0,0 +1,7 @@ +Monomer +----------------------- + +.. autoclass:: polyconf.Monomer + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/source/polyconf.PDB.rst b/docs/source/polyconf.PDB.rst new file mode 100644 index 0000000..1f641a9 --- /dev/null +++ b/docs/source/polyconf.PDB.rst @@ -0,0 +1,7 @@ +PDB +------------------- + +.. autoclass:: polyconf.PDB + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/polyconf.Polymer.rst b/docs/source/polyconf.Polymer.rst new file mode 100644 index 0000000..40666fa --- /dev/null +++ b/docs/source/polyconf.Polymer.rst @@ -0,0 +1,7 @@ +Polymer +----------------------- + +.. autoclass:: polyconf.Polymer + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/source/polyconf.polyconf_automatic.rst b/docs/source/polyconf.polyconf_automatic.rst new file mode 100644 index 0000000..a3fe26c --- /dev/null +++ b/docs/source/polyconf.polyconf_automatic.rst @@ -0,0 +1,7 @@ +Automated Linear, United-Atom Polymer Builder +---------------------------------------------- + +.. automodule:: polyconf.polyconf_automatic + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/source/polyconf.rst b/docs/source/polyconf.rst index 45b662c..f3efebc 100644 --- a/docs/source/polyconf.rst +++ b/docs/source/polyconf.rst @@ -1,40 +1,14 @@ -polyconf package +PolyConf ================ -Classes ----------- +.. toctree:: + :titlesonly: -polyconf.Monomer ------------------------ + polyconf.Monomer + polyconf.PDB + polyconf.Polymer + polyconf.polyconf_automatic -.. automodule:: polyconf.Monomer - :members: - :undoc-members: - :show-inheritance: - -polyconf.PDB -------------------- - -.. automodule:: polyconf.PDB - :members: - :undoc-members: - :show-inheritance: - -polyconf.Polymer ------------------------ - -.. automodule:: polyconf.Polymer - :members: - :undoc-members: - :show-inheritance: - -polyconf.polyconf\_automatic ------------------------------------ - -.. automodule:: polyconf.polyconf_automatic - :members: - :undoc-members: - :show-inheritance: Module contents --------------- diff --git a/docs/source/polyconstruct-sphinx-theme/AUTHORS.md b/docs/source/polyconstruct-sphinx-theme/AUTHORS.md new file mode 100644 index 0000000..ad383b9 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/AUTHORS.md @@ -0,0 +1,32 @@ +# Authors + +The mdanalysis-sphinx-theme repository was created by MDAnalysis in 2023. + +All contributing authors are listed in this file below. +The repository history at https://github.com/MDAnalysis/mdanalysis-sphinx-theme +and the CHANGELOG show individual code contributions. + +## Chronological list of authors + + + +**Prior work** +- Matthew Harrigan @mpharrigan +- Robert T. McGibbon @rmcgibbo +- Christian Schwantes @schwancr +- Martin K. Scherer @marscher +- Joshua A. Mitchell @Yoshanuikabundi +- Simon Boothroyd @SimonBoothroyd + +**2023** +- Lily Wang @lilyminium +- Ian Kenney @ianmkenney +- Irfan Alibay @IAlibay \ No newline at end of file diff --git a/docs/source/polyconstruct-sphinx-theme/CHANGELOG.md b/docs/source/polyconstruct-sphinx-theme/CHANGELOG.md new file mode 100644 index 0000000..65637fc --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/CHANGELOG.md @@ -0,0 +1,191 @@ +# Changelog +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + + + +## [Unreleased] + +### Authors +IAlibay + +### Reviewers + + +### Added + + +### Fixed + + +### Changed +- Modernized packaging to be PEP518 compliant. + +### Removed + + + + + +## v1.3.1 + +### Authors + +- lilyminium +- IAlibay + +### Reviewers + +- lilyminium + +### Fixed +- Changed PyPI deployment to use OpenID Connect (PR #72, #77) + +### Removed + +- Upper Sphinx<7 pin (PR #74) + + + +## v1.3.0 + +### Authors + +- lilyminium + +### Reviewers + +- IAlibay + +### Added + +- Added authors to documentation footer (Issue #43, PR #64) +- Added navigation options (Issue #67, PR #68) + +### Fixed + +- Fixed background and navbar issue so they can now be + specified separately (Issue #66, PR #68) + + +## v1.2.0 + +### Authors + +- lilyminium + +### Reviewers +- IAlibay +- RMeli + +### Fixed + +- Fixed mobile rendering by changing the bar default background to gray (Issue #59, PR #60, PR #61) + +## v1.1.0 + +### Authors + +- ianmkenney +- ialibay +- lilyminium + +### Fixed + +- Fixed documentation and added bibtex docs (PR #53, Issues #10, #26) +- Fixed non-inclusion of versions javascript (PR #55) +- Fixed warning for package directories (Issue #52, PR #56) +- Fix long descriptions issue (Issue #49, PR #51) + +### Changed + +- Allow favicon override when using mda_official (PR #37, Issue #35) + +## v1.0.1 +### Authors + +- lilyminium +- IAlibay + +### Added +- Atom license details (PR #47) +- Pin to sphinx_rtd_theme (PR #38) + +## v1.0.0 + +### Authors + +- lilyminium +- IAlibay +### Fixed + +- Updated path to deploy action (PR #31) +- Remove pytest in deploy action (PR #39) + +### Changed + +- Customised theme further (PR #32) + +### Removed + +- Removed deployment from CI check (PR #38) + + +## v0.1.2 + +### Authors + +- ianmkenney +- IAlibay + +### Added + +- Deployment to PyPI on release (PR #27) + +### Fixed + +- Fixed path resolution to logo and favicon (PR #22) + +### Changed + +- Unpinned Sphinx in dependencies (PR #29) + + +## v0.1.1 + +### Authors + +- lilyminium + +### Fixed +- Fixed metadata to allow for PyPI release + +## v0.1.0 + +### Authors + +- lilyminium +- ianmkenney + +### Added + +- Meta files (PR #15) +- Conditional content (PR #6) +- ReadTheDocs config (PR #1, PR #2) + + +### Changed + +- Customised to MDAnalysis colours (PR #4, #5, #9, #13) diff --git a/docs/source/polyconstruct-sphinx-theme/LICENSE b/docs/source/polyconstruct-sphinx-theme/LICENSE new file mode 100644 index 0000000..921f073 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2013 Dave Snider + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/docs/source/polyconstruct-sphinx-theme/MANIFEST.in b/docs/source/polyconstruct-sphinx-theme/MANIFEST.in new file mode 100644 index 0000000..f340521 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/MANIFEST.in @@ -0,0 +1,7 @@ +include LICENSE +recursive-include polyconstruct_sphinx_theme * +recursive-include branding * +include setup.cfg +include versioneer.py +include polyconstruct_sphinx_theme/_version.py +include AUTHORS.md CHANGELOG.md README.md diff --git a/docs/source/polyconstruct-sphinx-theme/README.md b/docs/source/polyconstruct-sphinx-theme/README.md new file mode 100644 index 0000000..2d0a407 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/README.md @@ -0,0 +1,17 @@ +`polyconstruct-sphinx-theme` +========================= + +This builds on [mdanalysis-sphinx-theme](https://github.com/MDAnalysis/mdanalysis-sphinx-theme) +and [msmb_theme](https://github.com/msmbuilder/msmb_theme) +to apply slight modifications to `sphinx_rtd_theme`. It needs the forementioned +theme to be installed. + +## Code of conduct + +All members of the MDAnalysis community and participants are expected to abide by the MDAnalysis [Code of Conduct](https://www.mdanalysis.org/pages/conduct/). + +## Acknowledgements + +This theme builds on [mdanalysis-sphinx-theme](https://github.com/MDAnalysis/mdanalysis-sphinx-theme), +[msmb_theme](https://github.com/msmbuilder/msmb_theme) and the +[openff-sphinx-theme](https://github.com/openforcefield/openff-sphinx-theme). diff --git a/docs/source/polyconstruct-sphinx-theme/docs/.gitignore b/docs/source/polyconstruct-sphinx-theme/docs/.gitignore new file mode 100644 index 0000000..9c5f578 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/docs/.gitignore @@ -0,0 +1 @@ +_build \ No newline at end of file diff --git a/docs/source/polyconstruct-sphinx-theme/docs/Makefile b/docs/source/polyconstruct-sphinx-theme/docs/Makefile new file mode 100644 index 0000000..d2a8238 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/docs/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= -j auto +SPHINXBUILD ?= sphinx-build +SOURCEDIR = . +BUILDDIR = _build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" -j auto $(SPHINXOPTS) $(O) diff --git a/docs/source/polyconstruct-sphinx-theme/docs/_static/copy-overrides.css b/docs/source/polyconstruct-sphinx-theme/docs/_static/copy-overrides.css new file mode 100644 index 0000000..b911d6e --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/docs/_static/copy-overrides.css @@ -0,0 +1,3 @@ +.o-tooltip--left:after{ + font-size: 0.8rem; +} diff --git a/docs/source/polyconstruct-sphinx-theme/docs/_static/images/apple-icon-152x152.png b/docs/source/polyconstruct-sphinx-theme/docs/_static/images/apple-icon-152x152.png new file mode 100644 index 0000000..4cbab30 Binary files /dev/null and b/docs/source/polyconstruct-sphinx-theme/docs/_static/images/apple-icon-152x152.png differ diff --git a/docs/source/polyconstruct-sphinx-theme/docs/_static/versions.json b/docs/source/polyconstruct-sphinx-theme/docs/_static/versions.json new file mode 100644 index 0000000..c66d00d --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/docs/_static/versions.json @@ -0,0 +1 @@ +{"release": "", "development": "devel"} diff --git a/docs/source/polyconstruct-sphinx-theme/docs/change-log.rst b/docs/source/polyconstruct-sphinx-theme/docs/change-log.rst new file mode 100644 index 0000000..d3554e1 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/docs/change-log.rst @@ -0,0 +1,8 @@ +Change Log +========== + +.. warning:: + + Changes are not being tracked until a beta-quality release is made. + +The change log will appear here. \ No newline at end of file diff --git a/docs/source/polyconstruct-sphinx-theme/docs/conf.py b/docs/source/polyconstruct-sphinx-theme/docs/conf.py new file mode 100644 index 0000000..77df635 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/docs/conf.py @@ -0,0 +1,163 @@ +# Configuration file for the Sphinx documentation builder. +# +# This file only contains a selection of the most common options. For a full +# list see the documentation: +# http://www.sphinx-doc.org/en/master/config + +# -- Path setup -------------------------------------------------------------- + + +# -- Project information ----------------------------------------------------- + +project = "PolyConstruct Sphinx theme" +html_title = "PolyConstruct Sphinx theme" +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# +import os +import sys + +sys.path.insert(0, os.path.abspath(".")) +import polyconstruct_sphinx_theme # noqa: E402 + +authors = ", ".join(polyconstruct_sphinx_theme.__authors__) +copyright = "2023, " + authors + +# -- General configuration --------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ + "sphinx.ext.autodoc", + "sphinx.ext.autosummary", + "sphinx.ext.napoleon", + "sphinx.ext.doctest", + "sphinx.ext.extlinks", + "sphinx.ext.intersphinx", + "sphinx.ext.todo", + "sphinx.ext.mathjax", + "sphinx.ext.viewcode", + "nbsphinx", + "mdanalysis_sphinx_theme", + "sphinxcontrib.autodoc_pydantic", + "sphinx_search.extension", +] + +# Autodoc settings +autosummary_generate = True + +autodoc_default_options = { + "members": True, + "inherited-members": True, + "member-order": "bysource", +} +autodoc_preserve_defaults = True +autodoc_typehints_format = "short" +# Workaround for autodoc_typehints_format not working for attributes +# see https://github.com/sphinx-doc/sphinx/issues/10290#issuecomment-1079740009 +python_use_unqualified_type_names = True + +intersphinx_mapping = { + "python": ("https://docs.python.org/3", None), + "sphinx": ("https://www.sphinx-doc.org/en/master/", None), +} + +napoleon_numpy_docstring = True +napoleon_google_docstring = False +napoleon_attr_annotations = True +napoleon_custom_sections = [("attributes", "params_style")] +napoleon_use_rtype = False +napoleon_use_param = True +napoleon_use_ivar = True +napoleon_preprocess_types = True + +# Add any paths that contain templates here, relative to this directory. +# templates_path = ["_templates"] + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path. +exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"] + +# -- Options for HTML output ------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +html_theme = "polyconstruct_sphinx_theme" + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named 'default.css' will overwrite the builtin 'default.css'. +html_static_path = ["_static"] + +# If HTML theme settings isn't lines 90-160, remember to change customization.rst + +# -- HTML theme settings ------------------------------------------------ +html_show_sourcelink = True +html_sidebars = { + "**": ["globaltoc.html", "localtoc.html", "searchbox.html", "navigation.html"], + "customization": ["globaltoc.html", "searchbox.html"], + "subpage/second-subsubpage": ["globaltoc.html", "searchbox.html"], +} + +html_theme = "polyconstruct_sphinx_theme" + + +# material theme options (see theme.conf for more information) +html_theme_options = { + # whether to apply official MDAnalysis styling + # e.g. using the official MDAnalysis logo and favicon + # and using the MDAnalysis privacy policy + "mda_official": True, + # The background colour of the logo area in the navigation bar + "sidebar_logo_background": "#ffffff", + # The background colour of the top navigation bar on mobile + "mobile_navbar_background": "dark-gray", + + # other options inherited from sphinx_rtd_theme + # Only display logo and not the project name on sidebar + "logo_only": True, + # Display the version number on the sidebar + "display_version": True, + # Where to display "next" and "previous" buttons + "prev_next_buttons_location": "bottom", + # Add an icon next to external links + "style_external_links": False, + # If enabled, navigation entries are not expandable + "collapse_navigation": True, + # If enabled, the navigation bar scrolls with the main page + "sticky_navigation": True, + # Maximum depth of the contents tree -- set to -1 for unlimited + "navigation_depth": 4, + # Whether to include hidden toctrees in the navigation bar + "includehidden": True, + # Whether to hide page subheadings from navigation + "titles_only": False, +} + +# If HTML theme settings isn't lines 90-160, remember to change customization.rst + +language = "en" +html_last_updated_fmt = "" + +todo_include_todos = True + +html_use_index = True +html_domain_indices = True + +nbsphinx_execute = "always" +nbsphinx_kernel_name = "python3" + +extlinks = { + "duref": ( + "http://docutils.sourceforge.net/docs/ref/rst/" "restructuredtext.html#%s", + "%s", + ), + "durole": ("http://docutils.sourceforge.net/docs/ref/rst/" "roles.html#%s", "%s"), + "dudir": ( + "http://docutils.sourceforge.net/docs/ref/rst/" "directives.html#%s", + "%s", + ), +} diff --git a/docs/source/polyconstruct-sphinx-theme/docs/environment.yml b/docs/source/polyconstruct-sphinx-theme/docs/environment.yml new file mode 100644 index 0000000..4c2088a --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/docs/environment.yml @@ -0,0 +1,34 @@ +name: polyconstruct-sphinx-theme-dev +channels: + - conda-forge +dependencies: + - python >= 3.9 + - pip + - numpy>=1.16 + - pandas + - matplotlib + - numpydoc + - nbsphinx + - jupyter_client + - notebook + - nbconvert + - ipykernel + - autodoc-pydantic + - myst-parser~=1.0 + - pandoc + - wheel + - sphinx-autobuild + - sphinx>=6.2.1 + - sphinx_rtd_theme + + - mdanalysis + - pip: + - readthedocs-sphinx-search + - beautifulsoup4 + - python-slugify[unidecode] + - css_html_js_minify + - lxml + - libsass + + + diff --git a/docs/source/polyconstruct-sphinx-theme/docs/index.rst b/docs/source/polyconstruct-sphinx-theme/docs/index.rst new file mode 100644 index 0000000..9c00841 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/docs/index.rst @@ -0,0 +1,119 @@ +.. _quickstart: + +====================================== +PolyConstruct Sphinx theme Quickstart +====================================== + +This theme provides a responsive theme for Sphinx documentation by the Open Force Field Initiative. +It is inspired by `Material for Sphinx `_ and `Material for MkDocs `_, but has been rewritten with the `Bulma `_ CSS framework to remove any JavaScript dependencies. + +Getting Started +--------------- +Install from git + +.. code-block:: shell-session + + $ pip install git+https://github.com/lunamorrow/polyconstruct-sphinx-theme.git@main + +Or, add to your ReadTheDocs environment.yml + +.. code-block:: yaml + + dependencies: + - pip + - + - + - + # --- snip --- # + - pip: + - git+https://github.com/lunamorrow/polyconstruct-sphinx-theme.git@main + +Update your ``conf.py`` with the required changes: + +.. code-block:: python + + extensions.append("polyconstruct_sphinx_theme") + html_theme = "polyconstruct_sphinx_theme" + html_sidebars = {"**": ["globaltoc.html", "localtoc.html", "searchbox.html"]} + + +There are a lot more ways to customize this theme. See :ref:`Customization` +or ``theme.conf`` for more details. + +.. code-block:: python + + # Enable the theme itself + extensions.append("polyconstruct_sphinx_theme") + html_theme = "polyconstruct_sphinx_theme" + + # (Optional) Logo in PNG format. + # If not provided and mda_official is False, no logo will be added. + # If not provided and mda_official is True, the MDAnalysis logo will be used. + html_logo = "_static/logo/placeholder_logo.png" + + # (Optional) favicon. + # If not provided and mda_official is False, will default to a placeholder favicon. + # If not provided and mda_official is True, will default to the MDAnalysis favicon. + html_favicon = "_static/logo/placeholder_favicon.svg" + + # Theme options are theme-specific and customize the look and feel of a + # theme further. + html_theme_options = { + # ===== mdanalysis-sphinx-theme options ===== + # whether to apply official MDAnalysis styling + # e.g. using the official MDAnalysis logo and favicon + # and using the MDAnalysis privacy policy + "mda_official": False, + # The background colour of the logo area in the navigation bar + "sidebar_logo_background": "white", + # The background colour of the top navigation bar on mobile + "mobile_navbar_background": "dark-gray", + # Extra navigation links to show on the sidebar, before the table of contents + "extra_nav_links": extra_nav_links, + + # ===== inherited options ===== + # For more details, please see + # https://sphinx-rtd-theme.readthedocs.io/en/stable/ + # Default values are shown below + + # Only display logo and not the project name on sidebar + "logo_only": True, + # Display the version number on the sidebar + "display_version": True, + # Where to display "next" and "previous" buttons + "prev_next_buttons_location": "bottom", + # Add an icon next to external links + "style_external_links": False, + # If enabled, navigation entries are not expandable + "collapse_navigation": True, + # If enabled, the navigation bar scrolls with the main page + "sticky_navigation": True, + # Maximum depth of the contents tree -- set to -1 for unlimited + "navigation_depth": 4, + # Whether to include hidden toctrees in the navigation bar + "includehidden": True, + # Whether to hide page subheadings from navigation + "titles_only": False, + + } + + # Custom sidebar templates, must be a dictionary that maps document names + # to template names. + html_sidebars = { + # By default, show everything + "**": ["globaltoc.html", "localtoc.html", "searchbox.html"] + } + + +.. toctree:: + :caption: Changes and License + :maxdepth: 1 + + change-log + license + + + +Index +~~~~~ +:ref:`genindex` diff --git a/docs/source/polyconstruct-sphinx-theme/docs/license.rst b/docs/source/polyconstruct-sphinx-theme/docs/license.rst new file mode 100644 index 0000000..ed55d57 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/docs/license.rst @@ -0,0 +1,26 @@ +License +======= + +Copyright (c) 2019 Kevin Sheppard + +Derived from: + +* Material for Mkdocs: Copyright (c) 2016-2019 Martin Donath +* Guzzle Sphinx Theme: Copyright (c) 2013 Michael Dowling + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/docs/source/polyconstruct-sphinx-theme/docs/make.bat b/docs/source/polyconstruct-sphinx-theme/docs/make.bat new file mode 100644 index 0000000..1264db8 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/docs/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=. +set BUILDDIR=_build + +if "%1" == "" goto help + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.http://www.sphinx-doc.org/ + exit /b 1 +) + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/__init__.py b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/__init__.py new file mode 100644 index 0000000..90bd74a --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/__init__.py @@ -0,0 +1,107 @@ +"""PolyConstruct Sphinx theme.""" + +import logging +import os +import pathlib + +import sass +from sass import SassColor, SassFunction +from sphinx.util import console + +logger = logging.getLogger(__name__) + +try: + from .authors import __authors__ +except ImportError: + logger.info('Could not find authors.py, __authors__ will be empty.') + __authors__ = [] + + +from importlib.metadata import version +__version__ = version("polyconstruct_sphinx_theme") + + +def setup(app): + """Setup connects events to the sitemap builder""" + app.connect("build-finished", compile_css) + + app.site_pages = [] + app.add_html_theme( + "polyconstruct_sphinx_theme", html_theme_path()[0] + ) + return { + "version": __version__, + "parallel_read_safe": True, + "parallel_write_safe": True, + } + + +def hex_to_rgb(hex): + """Convert a hex color to RGB""" + hex = hex.lstrip("#") + return tuple(int(hex[i : i + 2], 16) for i in (0, 2, 4)) + + +def compile_css(app, exception): + """Compile Bulma SASS into CSS""" + if exception is not None: + return + + theme_path = pathlib.Path(html_theme_path()[0]) + src = theme_path / "sass/site.sass" + dest = pathlib.Path(app.outdir) / "_static/site.css" + + if not dest.parent.exists(): + return + + config = app.config["html_theme_options"] + COLORS = { + "mdanalysis-orange": (17, 146, 232), + "mdanalysis-code-orange": (69, 137, 255), + "white": (255, 255, 255), + "dark-gray": (52, 49, 49), + } + theme_defaults = { + "color_accent": "mdanalysis-code-orange", + "sidebar_logo_background": "white", + "mobile_navbar_background": "dark-gray", + } + function_colors = {} + custom_sass_functions = {} + for option, default in theme_defaults.items(): + theme_option = config.get(option, default) + if theme_option in COLORS: + color = COLORS[theme_option] + else: + color = hex_to_rgb(theme_option) + function_colors[option] = color + + if config.get("css_minify", False): + output_style = "compressed" + source_comments = False + else: + output_style = "expanded" + source_comments = True + + custom_sass_functions["mobile_navbar_background"] = lambda: SassColor(*function_colors["mobile_navbar_background"], 1) + custom_sass_functions["sidebar_logo_background"] = lambda: SassColor(*function_colors["sidebar_logo_background"], 1) + custom_sass_functions["color_accent"] = lambda: SassColor(*function_colors["color_accent"], 1) + custom_sass_functions["hyphenate"] = lambda: config.get( + "html_hyphenate_and_justify", False + ) + + css = sass.compile( + filename=str(src), + output_style=output_style, + custom_functions=custom_sass_functions, + ) + + print(f"Writing compiled SASS to {console.colorize('blue', str(dest))}") + + with open(dest, "w") as f: + print(css, file=f) + + +def html_theme_path(): + return [os.path.dirname(os.path.abspath(__file__))] + diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/authors.py b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/authors.py new file mode 100644 index 0000000..0297973 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/authors.py @@ -0,0 +1,8 @@ +#-*- coding:utf-8 -*- +# This file is generated from the AUTHORS file during the installation process. +# Do not edit it as your changes will be overwritten. +__authors__ = [ + u"Lily Wang", + u"Irfan Alibay", + u"Ian Kenney", +] diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/footer.html b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/footer.html new file mode 100644 index 0000000..d59eba3 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/footer.html @@ -0,0 +1,14 @@ +{% extends "sphinx_rtd_theme/footer.html" %} +{% set show_sphinx = False %} + + +{% block extrafooter %} +{% if theme_mda_official|tobool %} + +{% endif %} +{% endblock %} diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/layout.html b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/layout.html new file mode 100644 index 0000000..5d31ee7 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/layout.html @@ -0,0 +1,63 @@ +{% set _favicon_url = '' %} + +{% if theme_mda_official|tobool %} + {% if favicon_url == '' %} + {% set _favicon_url = '_static/logo/mda_favicon.ico' %} + {% endif %} +{% endif %} + +{% if favicon_url != '' %} + {% set _favicon_url = favicon_url %} +{% endif %} + + + + + + + +{% extends "sphinx_rtd_theme/layout.html" %} +{% set script_files = script_files + ["_static/js/versions.js"] %} +{% set show_sphinx = "False" %} + +{% block sidebartitle %} + +{% set _logo_url = "" %} + +{% if logo_url %} + {% set _logo_url = logo_url %} +{% elif logo %} + {% set _logo_url = pathto("_static/" + logo, 1) %} +{% elif theme_mda_official %} + {% set _logo_url = pathto('_static/logo/mda_logo.png', 1) %} +{% else %} + {% set _logo_url = '' %} +{% endif %} + + +{% set _root_doc = root_doc|default(master_doc) %} + + {% if not theme_logo_only %}{{ project }}{% endif %} + {%- if _logo_url != "" %} + + {%- endif %} + + +{% if theme_display_version %} + {% set nav_version = version %} + {% if READTHEDOCS and current_version %} + {% set nav_version = current_version %} + {% endif %} + {% if nav_version %} +
+ {{ nav_version }} +
+ {% endif %} +{% endif %} + +{% include "searchbox.html" %} +{% endblock %} + +{% block navigation %} +{% include "navigation.html" %} +{% endblock %} \ No newline at end of file diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/navigation.html b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/navigation.html new file mode 100644 index 0000000..d2b5db2 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/navigation.html @@ -0,0 +1,25 @@ +{#- Translators: This is an ARIA section label for the main navigation menu -#} + diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/admonitions.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/admonitions.sass new file mode 100644 index 0000000..b9e3102 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/admonitions.sass @@ -0,0 +1,160 @@ + +@mixin material_admonitions($color, $font, $unicode) + border-left-color: $color + background-color: rgba($color, 0.1) + [dir="rtl"] & + border-right-color: $color + .admonition-title, &.deprecated .versionmodified.deprecated + background-color: $color //rgba($color, 0.1) + border-left-color: $color + + // Adjust for right-to-left languages + [dir="rtl"] & + border-right-color: $color + + // Text color + color: $white + + // Admonition icon + &::before + // color: $color + color: $white + font-family: $font + content: $unicode + + strong + color: $white + + +.admonition, div.deprecated, div.alert + margin: $admonition-margin 0 + padding: 0 0.75rem + overflow: hidden + color: $text + page-break-inside: avoid + border-left: none //0.25rem solid $accent + border-radius: 0.125rem + @include z-depth(6) + + // [print]: Omit shadow as it may lead to rendering errors + @media print + box-shadow: none + + // Adjust for right-to-left languages + [dir="rtl"] & + border-right: 0.25rem solid $accent + border-left: none + + // Adjust vertical spacing for nested admonitions + .admonition + margin-top: 1em + margin-bottom: 1em + + // Adjust spacing for contained table wrappers + .md-typeset__scrollwrap + margin: 1em -0.75rem + + // Adjust spacing for contained tables + .md-typeset__table + padding: 0 0.75rem + + // Adjust spacing for single-child tabbed block container + > .tabbed-set:only-child + margin-top: 0 + + // Adjust spacing on last child + html &:not(div.deprecated) > :last-child + margin-bottom: 0.75rem + + &:not(div.deprecated) >p:not(.admonition-title) + max-width: calc(80ex - 2 * #{$admonition-margin}) + + &.note, &.admonition-note + @include material_admonitions($mdanalysis-gray, "FontAwesome", "\f05a") + &.seealso, &.admonition-seealso + @include material_admonitions($mdanalysis-gray, "FontAwesome", "\f06e") + &.admonition-abstract, &.admonition-summary, &.admonition-tldr + @include material_admonitions($cyan, "FontAwesome", "\f543") + &.admonition-info, &.alert-info + @include material_admonitions($mdanalysis-code-orange, "FontAwesome", "\f129") + &.admonition-todo + @include material_admonitions($yellow, "FontAwesome", "\f249") + &.tip, &.hint, &.admonition-tip, &.admonition-hint + @include material_admonitions($turquoise, "FontAwesome", "\f06d") + &.important, &.admonition-important + @include material_admonitions($mdanalysis-orange, "FontAwesome", "\f06a") + &.admonition-success, &.admonition-check, &.admonition-done, &.alert-success + @include material_admonitions($green, "FontAwesome", "\f058") + &.admonition-question, &.admonition-help, &.admonition-faq + @include material_admonitions($cyan, "FontAwesome", "\f059") + &.warning, &.caution, &.attention, &.admonition-warning, &.admonition-caution, &.admonition-attention + @include material_admonitions($mdanalysis-orange, "FontAwesome", "\f071") + &.attention, &.admonition-attention, &.alert-warning + @include material_admonitions($mdanalysis-orange, "FontAwesome", "\f071") + &.error, &.admonition-failure, &.admonition-fail, &.admonition-missing, &.admonition-error + @include material_admonitions($mdanalysis-orange-red, "FontAwesome", "\f057") + &.danger, &.admonition-danger, &.alert-danger + @include material_admonitions($mdanalysis-orange-red, "FontAwesome", "\f071") + &.admonition-bug + @include material_admonitions($purple, "FontAwesome", "\f188") + &.admonition-example + @include material_admonitions($blue, "FontAwesome", "\f0c5") + &.admonition-quote, &.admonition-cite + @include material_admonitions($mdanalysis-gray, "FontAwesome", "\f10e") + &.deprecated, &.admonition-deprecated + @include material_admonitions($mdanalysis-gray, "FontAwesome", "\f017") + &.experimental, &.admonition-experimental, &.admonition-experiment, &.admonition-experiments + @include material_admonitions($mdanalysis-orange, "FontAwesome", "\f492") + +// Differences between deprecated and admonitions +div.deprecated > p + margin-top: 0 + max-width: unset + +.versionmodified.deprecated + display: block + margin: 0 -0.75rem 0.75rem -1rem + +// Admonition title +.admonition-title + margin: 0 -0.75rem 0 -1rem +.admonition-title, .versionmodified.deprecated + position: relative + padding: 0.5rem 0.75rem 0.5rem 2.5rem + font-weight: 700 + background-color: $accent // rgba($accent, 0.1) + border-left: 0.25rem solid $accent + + // Adjust for right-to-left languages + [dir="rtl"] & + margin: 0 -1rem 0 -0.75rem + padding: 0.5rem 2.5rem 0.5rem 0.75rem + border-right: 0.25rem solid $accent + border-left: none + + // Adjust spacing for title-only admonitions + html &:last-child + &.admonition-title + margin-bottom: 0 + &.versionmodified.deprecated + margin-bottom: -1rem + + // Admonition icon + &::before + position: absolute + left: 0.75rem + width: 1.25rem + height: 1.25rem + // color: $accent + font-family: "FontAwesome" + content: "\f12a" + + // Adjust for right-to-left languages + [dir="rtl"] & + right: 0.75rem + left: initial + + // Adjust spacing on last tabbed block container child - if the tabbed + // block container is the sole child, it looks better to omit the margin + + .tabbed-set:last-child + margin-top: 0 diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/bulma.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/bulma.sass new file mode 100644 index 0000000..9b27009 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/bulma.sass @@ -0,0 +1,10 @@ +@charset "utf-8" +/*! bulma.io v0.9.2 | MIT License | github.com/jgthms/bulma */ +@import "sass/utilities/_all" +@import "sass/base/_all" +@import "sass/elements/_all" +@import "sass/form/_all" +@import "sass/components/_all" +@import "sass/grid/_all" +@import "sass/helpers/_all" +@import "sass/layout/_all" diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/.DS_Store b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/.DS_Store new file mode 100644 index 0000000..0bcde96 Binary files /dev/null and b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/.DS_Store differ diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/base/.DS_Store b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/base/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/base/.DS_Store differ diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/base/_all.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/base/_all.sass new file mode 100644 index 0000000..a5ae0a7 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/base/_all.sass @@ -0,0 +1,6 @@ +/* Bulma Base */ +@charset "utf-8" + +@import "minireset" +@import "generic" +@import "animations" diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/base/animations.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/base/animations.sass new file mode 100644 index 0000000..a14525d --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/base/animations.sass @@ -0,0 +1,5 @@ +@keyframes spinAround + from + transform: rotate(0deg) + to + transform: rotate(359deg) diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/base/generic.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/base/generic.sass new file mode 100644 index 0000000..42c736a --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/base/generic.sass @@ -0,0 +1,145 @@ +@import "../utilities/mixins" + +$body-background-color: $scheme-main !default +$body-size: 16px !default +$body-min-width: 300px !default +$body-rendering: optimizeLegibility !default +$body-family: $family-primary !default +$body-overflow-x: hidden !default +$body-overflow-y: scroll !default + +$body-color: $text !default +$body-font-size: 1em !default +$body-weight: $weight-normal !default +$body-line-height: 1.5 !default + +$code-family: $family-code !default +$code-padding: 0.25em 0.5em 0.25em !default +$code-weight: normal !default +$code-size: 0.875em !default + +$small-font-size: 0.875em !default + +$hr-background-color: $background !default +$hr-height: 2px !default +$hr-margin: 1.5rem 0 !default + +$strong-color: $text-strong !default +$strong-weight: $weight-bold !default + +$pre-font-size: 0.875em !default +$pre-padding: 1.25rem 1.5rem !default +$pre-code-font-size: 1em !default + +html + background-color: $body-background-color + font-size: $body-size + -moz-osx-font-smoothing: grayscale + -webkit-font-smoothing: antialiased + min-width: $body-min-width + overflow-x: $body-overflow-x + overflow-y: $body-overflow-y + text-rendering: $body-rendering + text-size-adjust: 100% + +article, +aside, +figure, +footer, +header, +hgroup, +section + display: block + +body, +button, +input, +optgroup, +select, +textarea + font-family: $body-family + +code, +pre + -moz-osx-font-smoothing: auto + -webkit-font-smoothing: auto + font-family: $code-family + +body + color: $body-color + font-size: $body-font-size + font-weight: $body-weight + line-height: $body-line-height + +// Inline + +a + color: $link + cursor: pointer + text-decoration: none + strong + color: currentColor + &:hover + color: $link-hover + +code + background-color: $code-background + color: $code + font-size: $code-size + font-weight: $code-weight + padding: $code-padding + +hr + background-color: $hr-background-color + border: none + display: block + height: $hr-height + margin: $hr-margin + +img + height: auto + max-width: 100% + +input[type="checkbox"], +input[type="radio"] + vertical-align: baseline + +small + font-size: $small-font-size + +span + font-style: inherit + font-weight: inherit + +strong + color: $strong-color + font-weight: $strong-weight + +// Block + +fieldset + border: none + +pre + +overflow-touch + background-color: $pre-background + color: $pre + font-size: $pre-font-size + overflow-x: auto + padding: $pre-padding + white-space: pre + word-wrap: normal + code + background-color: transparent + color: currentColor + font-size: $pre-code-font-size + padding: 0 + +table + td, + th + vertical-align: top + &:not([align]) + text-align: inherit + th + color: $text-strong diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/base/helpers.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/base/helpers.sass new file mode 100644 index 0000000..e356830 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/base/helpers.sass @@ -0,0 +1 @@ +@warn "The helpers.sass file is DEPRECATED. It has moved into its own /helpers folder. Please import sass/helpers/_all instead." diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/base/minireset.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/base/minireset.sass new file mode 100644 index 0000000..aa2b6f3 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/base/minireset.sass @@ -0,0 +1,79 @@ +/*! minireset.css v0.0.6 | MIT License | github.com/jgthms/minireset.css */ +// Blocks +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 + margin: 0 + padding: 0 + +// Headings +h1, +h2, +h3, +h4, +h5, +h6 + font-size: 100% + font-weight: normal + +// List +ul + list-style: none + +// Form +button, +input, +select, +textarea + margin: 0 + +// Box sizing +html + box-sizing: border-box + +* + &, + &::before, + &::after + box-sizing: inherit + +// Media +img, +video + height: auto + max-width: 100% + +// Iframe +iframe + border: 0 + +// Table +table + border-collapse: collapse + border-spacing: 0 + +td, +th + padding: 0 + &:not([align]) + text-align: inherit diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/components/_all.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/components/_all.sass new file mode 100644 index 0000000..a7062ec --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/components/_all.sass @@ -0,0 +1,15 @@ +/* Bulma Components */ +@charset "utf-8" + +@import "breadcrumb" +@import "card" +@import "dropdown" +@import "level" +@import "media" +@import "menu" +@import "message" +@import "modal" +@import "navbar" +@import "pagination" +@import "panel" +@import "tabs" diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/components/breadcrumb.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/components/breadcrumb.sass new file mode 100644 index 0000000..60bb17b --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/components/breadcrumb.sass @@ -0,0 +1,77 @@ +@import "../utilities/mixins" + +$breadcrumb-item-color: $link !default +$breadcrumb-item-hover-color: $link-hover !default +$breadcrumb-item-active-color: $text-strong !default + +$breadcrumb-item-padding-vertical: 0 !default +$breadcrumb-item-padding-horizontal: 0.75em !default + +$breadcrumb-item-separator-color: $border-hover !default + +.breadcrumb + @extend %block + @extend %unselectable + font-size: $size-normal + white-space: nowrap + a + align-items: center + color: $breadcrumb-item-color + display: flex + justify-content: center + padding: $breadcrumb-item-padding-vertical $breadcrumb-item-padding-horizontal + &:hover + color: $breadcrumb-item-hover-color + li + align-items: center + display: flex + &:first-child a + +ltr-property("padding", 0, false) + &.is-active + a + color: $breadcrumb-item-active-color + cursor: default + pointer-events: none + & + li::before + color: $breadcrumb-item-separator-color + content: "\0002f" + ul, + ol + align-items: flex-start + display: flex + flex-wrap: wrap + justify-content: flex-start + .icon + &:first-child + +ltr-property("margin", 0.5em) + &:last-child + +ltr-property("margin", 0.5em, false) + // Alignment + &.is-centered + ol, + ul + justify-content: center + &.is-right + ol, + ul + justify-content: flex-end + // Sizes + &.is-small + font-size: $size-small + &.is-medium + font-size: $size-medium + &.is-large + font-size: $size-large + // Styles + &.has-arrow-separator + li + li::before + content: "\02192" + &.has-bullet-separator + li + li::before + content: "\02022" + &.has-dot-separator + li + li::before + content: "\000b7" + &.has-succeeds-separator + li + li::before + content: "\0227B" diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/components/card.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/components/card.sass new file mode 100644 index 0000000..09f1109 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/components/card.sass @@ -0,0 +1,102 @@ +@import "../utilities/mixins" + +$card-color: $text !default +$card-background-color: $scheme-main !default +$card-shadow: 0 0.5em 1em -0.125em rgba($scheme-invert, 0.1), 0 0px 0 1px rgba($scheme-invert, 0.02) !default +$card-radius: 0.25rem !default + +$card-header-background-color: transparent !default +$card-header-color: $text-strong !default +$card-header-padding: 0.75rem 1rem !default +$card-header-shadow: 0 0.125em 0.25em rgba($scheme-invert, 0.1) !default +$card-header-weight: $weight-bold !default + +$card-content-background-color: transparent !default +$card-content-padding: 1.5rem !default + +$card-footer-background-color: transparent !default +$card-footer-border-top: 1px solid $border-light !default +$card-footer-padding: 0.75rem !default + +$card-media-margin: $block-spacing !default + +.card + background-color: $card-background-color + border-radius: $card-radius + box-shadow: $card-shadow + color: $card-color + max-width: 100% + position: relative + +%card-item + &:first-child + border-top-left-radius: $card-radius + border-top-right-radius: $card-radius + &:last-child + border-bottom-left-radius: $card-radius + border-bottom-right-radius: $card-radius + +.card-header + @extend %card-item + background-color: $card-header-background-color + align-items: stretch + box-shadow: $card-header-shadow + display: flex + +.card-header-title + align-items: center + color: $card-header-color + display: flex + flex-grow: 1 + font-weight: $card-header-weight + padding: $card-header-padding + &.is-centered + justify-content: center + +.card-header-icon + align-items: center + cursor: pointer + display: flex + justify-content: center + padding: $card-header-padding + +.card-image + display: block + position: relative + &:first-child + img + border-top-left-radius: $card-radius + border-top-right-radius: $card-radius + &:last-child + img + border-bottom-left-radius: $card-radius + border-bottom-right-radius: $card-radius + +.card-content + @extend %card-item + background-color: $card-content-background-color + padding: $card-content-padding + +.card-footer + @extend %card-item + background-color: $card-footer-background-color + border-top: $card-footer-border-top + align-items: stretch + display: flex + +.card-footer-item + align-items: center + display: flex + flex-basis: 0 + flex-grow: 1 + flex-shrink: 0 + justify-content: center + padding: $card-footer-padding + &:not(:last-child) + +ltr-property("border", $card-footer-border-top) + +// Combinations + +.card + .media:not(:last-child) + margin-bottom: $card-media-margin diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/components/dropdown.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/components/dropdown.sass new file mode 100644 index 0000000..6bf6a3a --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/components/dropdown.sass @@ -0,0 +1,83 @@ +@import "../utilities/mixins" + +$dropdown-menu-min-width: 12rem !default + +$dropdown-content-background-color: $scheme-main !default +$dropdown-content-arrow: $link !default +$dropdown-content-offset: 4px !default +$dropdown-content-padding-bottom: 0.5rem !default +$dropdown-content-padding-top: 0.5rem !default +$dropdown-content-radius: $radius !default +$dropdown-content-shadow: 0 0.5em 1em -0.125em rgba($scheme-invert, 0.1), 0 0px 0 1px rgba($scheme-invert, 0.02) !default +$dropdown-content-z: 20 !default + +$dropdown-item-color: $text !default +$dropdown-item-hover-color: $scheme-invert !default +$dropdown-item-hover-background-color: $background !default +$dropdown-item-active-color: $link-invert !default +$dropdown-item-active-background-color: $link !default + +$dropdown-divider-background-color: $border-light !default + +.dropdown + display: inline-flex + position: relative + vertical-align: top + &.is-active, + &.is-hoverable:hover + .dropdown-menu + display: block + &.is-right + .dropdown-menu + left: auto + right: 0 + &.is-up + .dropdown-menu + bottom: 100% + padding-bottom: $dropdown-content-offset + padding-top: initial + top: auto + +.dropdown-menu + display: none + +ltr-position(0, false) + min-width: $dropdown-menu-min-width + padding-top: $dropdown-content-offset + position: absolute + top: 100% + z-index: $dropdown-content-z + +.dropdown-content + background-color: $dropdown-content-background-color + border-radius: $dropdown-content-radius + box-shadow: $dropdown-content-shadow + padding-bottom: $dropdown-content-padding-bottom + padding-top: $dropdown-content-padding-top + +.dropdown-item + color: $dropdown-item-color + display: block + font-size: 0.875rem + line-height: 1.5 + padding: 0.375rem 1rem + position: relative + +a.dropdown-item, +button.dropdown-item + +ltr-property("padding", 3rem) + text-align: inherit + white-space: nowrap + width: 100% + &:hover + background-color: $dropdown-item-hover-background-color + color: $dropdown-item-hover-color + &.is-active + background-color: $dropdown-item-active-background-color + color: $dropdown-item-active-color + +.dropdown-divider + background-color: $dropdown-divider-background-color + border: none + display: block + height: 1px + margin: 0.5rem 0 diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/components/level.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/components/level.sass new file mode 100644 index 0000000..0133ebf --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/components/level.sass @@ -0,0 +1,79 @@ +@import "../utilities/mixins" + +$level-item-spacing: ($block-spacing / 2) !default + +.level + @extend %block + align-items: center + justify-content: space-between + code + border-radius: $radius + img + display: inline-block + vertical-align: top + // Modifiers + &.is-mobile + display: flex + .level-left, + .level-right + display: flex + .level-left + .level-right + margin-top: 0 + .level-item + &:not(:last-child) + margin-bottom: 0 + +ltr-property("margin", $level-item-spacing) + &:not(.is-narrow) + flex-grow: 1 + // Responsiveness + +tablet + display: flex + & > .level-item + &:not(.is-narrow) + flex-grow: 1 + +.level-item + align-items: center + display: flex + flex-basis: auto + flex-grow: 0 + flex-shrink: 0 + justify-content: center + .title, + .subtitle + margin-bottom: 0 + // Responsiveness + +mobile + &:not(:last-child) + margin-bottom: $level-item-spacing + +.level-left, +.level-right + flex-basis: auto + flex-grow: 0 + flex-shrink: 0 + .level-item + // Modifiers + &.is-flexible + flex-grow: 1 + // Responsiveness + +tablet + &:not(:last-child) + +ltr-property("margin", $level-item-spacing) + +.level-left + align-items: center + justify-content: flex-start + // Responsiveness + +mobile + & + .level-right + margin-top: 1.5rem + +tablet + display: flex + +.level-right + align-items: center + justify-content: flex-end + // Responsiveness + +tablet + display: flex diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/components/media.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/components/media.sass new file mode 100644 index 0000000..fc3f7d1 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/components/media.sass @@ -0,0 +1,59 @@ +@import "../utilities/mixins" + +$media-border-color: bulmaRgba($border, 0.5) !default +$media-border-size: 1px !default +$media-spacing: 1rem !default +$media-spacing-large: 1.5rem !default +$media-content-spacing: 0.75rem !default +$media-level-1-spacing: 0.75rem !default +$media-level-1-content-spacing: 0.5rem !default +$media-level-2-spacing: 0.5rem !default + +.media + align-items: flex-start + display: flex + text-align: inherit + .content:not(:last-child) + margin-bottom: $media-content-spacing + .media + border-top: $media-border-size solid $media-border-color + display: flex + padding-top: $media-level-1-spacing + .content:not(:last-child), + .control:not(:last-child) + margin-bottom: $media-level-1-content-spacing + .media + padding-top: $media-level-2-spacing + & + .media + margin-top: $media-level-2-spacing + & + .media + border-top: $media-border-size solid $media-border-color + margin-top: $media-spacing + padding-top: $media-spacing + // Sizes + &.is-large + & + .media + margin-top: $media-spacing-large + padding-top: $media-spacing-large + +.media-left, +.media-right + flex-basis: auto + flex-grow: 0 + flex-shrink: 0 + +.media-left + +ltr-property("margin", $media-spacing) + +.media-right + +ltr-property("margin", $media-spacing, false) + +.media-content + flex-basis: auto + flex-grow: 1 + flex-shrink: 1 + text-align: inherit + ++mobile + .media-content + overflow-x: auto diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/components/menu.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/components/menu.sass new file mode 100644 index 0000000..31dc56f --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/components/menu.sass @@ -0,0 +1,59 @@ +@import "../utilities/mixins" + +$menu-item-color: $text !default +$menu-item-radius: $radius-small !default +$menu-item-hover-color: $text-strong !default +$menu-item-hover-background-color: $background !default +$menu-item-active-color: $link-invert !default +$menu-item-active-background-color: $link !default + +$menu-list-border-left: 1px solid $border !default +$menu-list-line-height: 1.25 !default +$menu-list-link-padding: 0.5em 0.75em !default +$menu-nested-list-margin: 0.75em !default +$menu-nested-list-padding-left: 0.75em !default + +$menu-label-color: $text-light !default +$menu-label-font-size: 0.75em !default +$menu-label-letter-spacing: 0.1em !default +$menu-label-spacing: 1em !default + +.menu + font-size: $size-normal + // Sizes + &.is-small + font-size: $size-small + &.is-medium + font-size: $size-medium + &.is-large + font-size: $size-large + +.menu-list + line-height: $menu-list-line-height + a + border-radius: $menu-item-radius + color: $menu-item-color + display: block + padding: $menu-list-link-padding + &:hover + background-color: $menu-item-hover-background-color + color: $menu-item-hover-color + // Modifiers + &.is-active + background-color: $menu-item-active-background-color + color: $menu-item-active-color + li + ul + +ltr-property("border", $menu-list-border-left, false) + margin: $menu-nested-list-margin + +ltr-property("padding", $menu-nested-list-padding-left, false) + +.menu-label + color: $menu-label-color + font-size: $menu-label-font-size + letter-spacing: $menu-label-letter-spacing + text-transform: uppercase + &:not(:first-child) + margin-top: $menu-label-spacing + &:not(:last-child) + margin-bottom: $menu-label-spacing diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/components/message.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/components/message.sass new file mode 100644 index 0000000..ab83780 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/components/message.sass @@ -0,0 +1,101 @@ +@import "../utilities/mixins" + +$message-background-color: $background !default +$message-radius: $radius !default + +$message-header-background-color: $text !default +$message-header-color: $text-invert !default +$message-header-weight: $weight-bold !default +$message-header-padding: 0.75em 1em !default +$message-header-radius: $radius !default + +$message-body-border-color: $border !default +$message-body-border-width: 0 0 0 4px !default +$message-body-color: $text !default +$message-body-padding: 1.25em 1.5em !default +$message-body-radius: $radius !default + +$message-body-pre-background-color: $scheme-main !default +$message-body-pre-code-background-color: transparent !default + +$message-header-body-border-width: 0 !default +$message-colors: $colors !default + +.message + @extend %block + background-color: $message-background-color + border-radius: $message-radius + font-size: $size-normal + strong + color: currentColor + a:not(.button):not(.tag):not(.dropdown-item) + color: currentColor + text-decoration: underline + // Sizes + &.is-small + font-size: $size-small + &.is-medium + font-size: $size-medium + &.is-large + font-size: $size-large + // Colors + @each $name, $components in $message-colors + $color: nth($components, 1) + $color-invert: nth($components, 2) + $color-light: null + $color-dark: null + + @if length($components) >= 3 + $color-light: nth($components, 3) + @if length($components) >= 4 + $color-dark: nth($components, 4) + @else + $color-luminance: colorLuminance($color) + $darken-percentage: $color-luminance * 70% + $desaturate-percentage: $color-luminance * 30% + $color-dark: desaturate(darken($color, $darken-percentage), $desaturate-percentage) + @else + $color-lightning: max((100% - lightness($color)) - 2%, 0%) + $color-light: lighten($color, $color-lightning) + + &.is-#{$name} + background-color: $color-light + .message-header + background-color: $color + color: $color-invert + .message-body + border-color: $color + color: $color-dark + +.message-header + align-items: center + background-color: $message-header-background-color + border-radius: $message-header-radius $message-header-radius 0 0 + color: $message-header-color + display: flex + font-weight: $message-header-weight + justify-content: space-between + line-height: 1.25 + padding: $message-header-padding + position: relative + .delete + flex-grow: 0 + flex-shrink: 0 + +ltr-property("margin", 0.75em, false) + & + .message-body + border-width: $message-header-body-border-width + border-top-left-radius: 0 + border-top-right-radius: 0 + +.message-body + border-color: $message-body-border-color + border-radius: $message-body-radius + border-style: solid + border-width: $message-body-border-width + color: $message-body-color + padding: $message-body-padding + code, + pre + background-color: $message-body-pre-background-color + pre code + background-color: $message-body-pre-code-background-color diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/components/modal.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/components/modal.sass new file mode 100644 index 0000000..fdbddd6 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/components/modal.sass @@ -0,0 +1,117 @@ +@import "../utilities/mixins" + +$modal-z: 40 !default + +$modal-background-background-color: bulmaRgba($scheme-invert, 0.86) !default + +$modal-content-width: 640px !default +$modal-content-margin-mobile: 20px !default +$modal-content-spacing-mobile: 160px !default +$modal-content-spacing-tablet: 40px !default + +$modal-close-dimensions: 40px !default +$modal-close-right: 20px !default +$modal-close-top: 20px !default + +$modal-card-spacing: 40px !default + +$modal-card-head-background-color: $background !default +$modal-card-head-border-bottom: 1px solid $border !default +$modal-card-head-padding: 20px !default +$modal-card-head-radius: $radius-large !default + +$modal-card-title-color: $text-strong !default +$modal-card-title-line-height: 1 !default +$modal-card-title-size: $size-4 !default + +$modal-card-foot-radius: $radius-large !default +$modal-card-foot-border-top: 1px solid $border !default + +$modal-card-body-background-color: $scheme-main !default +$modal-card-body-padding: 20px !default + +$modal-breakpoint: $tablet !default + +.modal + @extend %overlay + align-items: center + display: none + flex-direction: column + justify-content: center + overflow: hidden + position: fixed + z-index: $modal-z + // Modifiers + &.is-active + display: flex + +.modal-background + @extend %overlay + background-color: $modal-background-background-color + +.modal-content, +.modal-card + margin: 0 $modal-content-margin-mobile + max-height: calc(100vh - #{$modal-content-spacing-mobile}) + overflow: auto + position: relative + width: 100% + // Responsiveness + +from($modal-breakpoint) + margin: 0 auto + max-height: calc(100vh - #{$modal-content-spacing-tablet}) + width: $modal-content-width + +.modal-close + @extend %delete + background: none + height: $modal-close-dimensions + position: fixed + +ltr-position($modal-close-right) + top: $modal-close-top + width: $modal-close-dimensions + +.modal-card + display: flex + flex-direction: column + max-height: calc(100vh - #{$modal-card-spacing}) + overflow: hidden + -ms-overflow-y: visible + +.modal-card-head, +.modal-card-foot + align-items: center + background-color: $modal-card-head-background-color + display: flex + flex-shrink: 0 + justify-content: flex-start + padding: $modal-card-head-padding + position: relative + +.modal-card-head + border-bottom: $modal-card-head-border-bottom + border-top-left-radius: $modal-card-head-radius + border-top-right-radius: $modal-card-head-radius + +.modal-card-title + color: $modal-card-title-color + flex-grow: 1 + flex-shrink: 0 + font-size: $modal-card-title-size + line-height: $modal-card-title-line-height + +.modal-card-foot + border-bottom-left-radius: $modal-card-foot-radius + border-bottom-right-radius: $modal-card-foot-radius + border-top: $modal-card-foot-border-top + .button + &:not(:last-child) + +ltr-property("margin", 0.5em) + +.modal-card-body + +overflow-touch + background-color: $modal-card-body-background-color + flex-grow: 1 + flex-shrink: 1 + overflow: auto + padding: $modal-card-body-padding diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/components/navbar.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/components/navbar.sass new file mode 100644 index 0000000..bcbcd80 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/components/navbar.sass @@ -0,0 +1,445 @@ +@import "../utilities/mixins" + +$navbar-background-color: $scheme-main !default +$navbar-box-shadow-size: 0 2px 0 0 !default +$navbar-box-shadow-color: $background !default +$navbar-height: 3.25rem !default +$navbar-padding-vertical: 1rem !default +$navbar-padding-horizontal: 2rem !default +$navbar-z: 30 !default +$navbar-fixed-z: 30 !default + +$navbar-item-color: $text !default +$navbar-item-hover-color: $link !default +$navbar-item-hover-background-color: $scheme-main-bis !default +$navbar-item-active-color: $scheme-invert !default +$navbar-item-active-background-color: transparent !default +$navbar-item-img-max-height: 1.75rem !default + +$navbar-burger-color: $navbar-item-color !default + +$navbar-tab-hover-background-color: transparent !default +$navbar-tab-hover-border-bottom-color: $link !default +$navbar-tab-active-color: $link !default +$navbar-tab-active-background-color: transparent !default +$navbar-tab-active-border-bottom-color: $link !default +$navbar-tab-active-border-bottom-style: solid !default +$navbar-tab-active-border-bottom-width: 3px !default + +$navbar-dropdown-background-color: $scheme-main !default +$navbar-dropdown-border-top: 2px solid $border !default +$navbar-dropdown-offset: -4px !default +$navbar-dropdown-arrow: $link !default +$navbar-dropdown-radius: $radius-large !default +$navbar-dropdown-z: 20 !default + +$navbar-dropdown-boxed-radius: $radius-large !default +$navbar-dropdown-boxed-shadow: 0 8px 8px bulmaRgba($scheme-invert, 0.1), 0 0 0 1px bulmaRgba($scheme-invert, 0.1) !default + +$navbar-dropdown-item-hover-color: $scheme-invert !default +$navbar-dropdown-item-hover-background-color: $background !default +$navbar-dropdown-item-active-color: $link !default +$navbar-dropdown-item-active-background-color: $background !default + +$navbar-divider-background-color: $background !default +$navbar-divider-height: 2px !default + +$navbar-bottom-box-shadow-size: 0 -2px 0 0 !default + +$navbar-breakpoint: $desktop !default + +$navbar-colors: $colors !default + +=navbar-fixed + left: 0 + position: fixed + right: 0 + z-index: $navbar-fixed-z + +.navbar + background-color: $navbar-background-color + min-height: $navbar-height + position: relative + z-index: $navbar-z + @each $name, $pair in $navbar-colors + $color: nth($pair, 1) + $color-invert: nth($pair, 2) + &.is-#{$name} + background-color: $color + color: $color-invert + .navbar-brand + & > .navbar-item, + .navbar-link + color: $color-invert + & > a.navbar-item, + .navbar-link + &:focus, + &:hover, + &.is-active + background-color: bulmaDarken($color, 5%) + color: $color-invert + .navbar-link + &::after + border-color: $color-invert + .navbar-burger + color: $color-invert + +from($navbar-breakpoint) + .navbar-start, + .navbar-end + & > .navbar-item, + .navbar-link + color: $color-invert + & > a.navbar-item, + .navbar-link + &:focus, + &:hover, + &.is-active + background-color: bulmaDarken($color, 5%) + color: $color-invert + .navbar-link + &::after + border-color: $color-invert + .navbar-item.has-dropdown:focus .navbar-link, + .navbar-item.has-dropdown:hover .navbar-link, + .navbar-item.has-dropdown.is-active .navbar-link + background-color: bulmaDarken($color, 5%) + color: $color-invert + .navbar-dropdown + a.navbar-item + &.is-active + background-color: $color + color: $color-invert + & > .container + align-items: stretch + display: flex + min-height: $navbar-height + width: 100% + &.has-shadow + box-shadow: $navbar-box-shadow-size $navbar-box-shadow-color + &.is-fixed-bottom, + &.is-fixed-top + +navbar-fixed + &.is-fixed-bottom + bottom: 0 + &.has-shadow + box-shadow: $navbar-bottom-box-shadow-size $navbar-box-shadow-color + &.is-fixed-top + top: 0 + +html, +body + &.has-navbar-fixed-top + padding-top: $navbar-height + &.has-navbar-fixed-bottom + padding-bottom: $navbar-height + +.navbar-brand, +.navbar-tabs + align-items: stretch + display: flex + flex-shrink: 0 + min-height: $navbar-height + +.navbar-brand + a.navbar-item + &:focus, + &:hover + background-color: transparent + +.navbar-tabs + +overflow-touch + max-width: 100vw + overflow-x: auto + overflow-y: hidden + +.navbar-burger + color: $navbar-burger-color + +hamburger($navbar-height) + +ltr-property("margin", auto, false) + +.navbar-menu + display: none + +.navbar-item, +.navbar-link + color: $navbar-item-color + display: block + line-height: 1.5 + padding: 0.5rem 0.75rem + position: relative + .icon + &:only-child + margin-left: -0.25rem + margin-right: -0.25rem + +a.navbar-item, +.navbar-link + cursor: pointer + &:focus, + &:focus-within, + &:hover, + &.is-active + background-color: $navbar-item-hover-background-color + color: $navbar-item-hover-color + +.navbar-item + flex-grow: 0 + flex-shrink: 0 + img + max-height: $navbar-item-img-max-height + &.has-dropdown + padding: 0 + &.is-expanded + flex-grow: 1 + flex-shrink: 1 + &.is-tab + border-bottom: 1px solid transparent + min-height: $navbar-height + padding-bottom: calc(0.5rem - 1px) + &:focus, + &:hover + background-color: $navbar-tab-hover-background-color + border-bottom-color: $navbar-tab-hover-border-bottom-color + &.is-active + background-color: $navbar-tab-active-background-color + border-bottom-color: $navbar-tab-active-border-bottom-color + border-bottom-style: $navbar-tab-active-border-bottom-style + border-bottom-width: $navbar-tab-active-border-bottom-width + color: $navbar-tab-active-color + padding-bottom: calc(0.5rem - #{$navbar-tab-active-border-bottom-width}) + +.navbar-content + flex-grow: 1 + flex-shrink: 1 + +.navbar-link:not(.is-arrowless) + +ltr-property("padding", 2.5em) + &::after + @extend %arrow + border-color: $navbar-dropdown-arrow + margin-top: -0.375em + +ltr-position(1.125em) + +.navbar-dropdown + font-size: 0.875rem + padding-bottom: 0.5rem + padding-top: 0.5rem + .navbar-item + padding-left: 1.5rem + padding-right: 1.5rem + +.navbar-divider + background-color: $navbar-divider-background-color + border: none + display: none + height: $navbar-divider-height + margin: 0.5rem 0 + ++until($navbar-breakpoint) + .navbar > .container + display: block + .navbar-brand, + .navbar-tabs + .navbar-item + align-items: center + display: flex + .navbar-link + &::after + display: none + .navbar-menu + background-color: $navbar-background-color + box-shadow: 0 8px 16px bulmaRgba($scheme-invert, 0.1) + padding: 0.5rem 0 + &.is-active + display: block + // Fixed navbar + .navbar + &.is-fixed-bottom-touch, + &.is-fixed-top-touch + +navbar-fixed + &.is-fixed-bottom-touch + bottom: 0 + &.has-shadow + box-shadow: 0 -2px 3px bulmaRgba($scheme-invert, 0.1) + &.is-fixed-top-touch + top: 0 + &.is-fixed-top, + &.is-fixed-top-touch + .navbar-menu + +overflow-touch + max-height: calc(100vh - #{$navbar-height}) + overflow: auto + html, + body + &.has-navbar-fixed-top-touch + padding-top: $navbar-height + &.has-navbar-fixed-bottom-touch + padding-bottom: $navbar-height + ++from($navbar-breakpoint) + .navbar, + .navbar-menu, + .navbar-start, + .navbar-end + align-items: stretch + display: flex + .navbar + min-height: $navbar-height + &.is-spaced + padding: $navbar-padding-vertical $navbar-padding-horizontal + .navbar-start, + .navbar-end + align-items: center + a.navbar-item, + .navbar-link + border-radius: $radius + &.is-transparent + a.navbar-item, + .navbar-link + &:focus, + &:hover, + &.is-active + background-color: transparent !important + .navbar-item.has-dropdown + &.is-active, + &.is-hoverable:focus, + &.is-hoverable:focus-within, + &.is-hoverable:hover + .navbar-link + background-color: transparent !important + .navbar-dropdown + a.navbar-item + &:focus, + &:hover + background-color: $navbar-dropdown-item-hover-background-color + color: $navbar-dropdown-item-hover-color + &.is-active + background-color: $navbar-dropdown-item-active-background-color + color: $navbar-dropdown-item-active-color + .navbar-burger + display: none + .navbar-item, + .navbar-link + align-items: center + display: flex + .navbar-item + &.has-dropdown + align-items: stretch + &.has-dropdown-up + .navbar-link::after + transform: rotate(135deg) translate(0.25em, -0.25em) + .navbar-dropdown + border-bottom: $navbar-dropdown-border-top + border-radius: $navbar-dropdown-radius $navbar-dropdown-radius 0 0 + border-top: none + bottom: 100% + box-shadow: 0 -8px 8px bulmaRgba($scheme-invert, 0.1) + top: auto + &.is-active, + &.is-hoverable:focus, + &.is-hoverable:focus-within, + &.is-hoverable:hover + .navbar-dropdown + display: block + .navbar.is-spaced &, + &.is-boxed + opacity: 1 + pointer-events: auto + transform: translateY(0) + .navbar-menu + flex-grow: 1 + flex-shrink: 0 + .navbar-start + justify-content: flex-start + +ltr-property("margin", auto) + .navbar-end + justify-content: flex-end + +ltr-property("margin", auto, false) + .navbar-dropdown + background-color: $navbar-dropdown-background-color + border-bottom-left-radius: $navbar-dropdown-radius + border-bottom-right-radius: $navbar-dropdown-radius + border-top: $navbar-dropdown-border-top + box-shadow: 0 8px 8px bulmaRgba($scheme-invert, 0.1) + display: none + font-size: 0.875rem + +ltr-position(0, false) + min-width: 100% + position: absolute + top: 100% + z-index: $navbar-dropdown-z + .navbar-item + padding: 0.375rem 1rem + white-space: nowrap + a.navbar-item + +ltr-property("padding", 3rem) + &:focus, + &:hover + background-color: $navbar-dropdown-item-hover-background-color + color: $navbar-dropdown-item-hover-color + &.is-active + background-color: $navbar-dropdown-item-active-background-color + color: $navbar-dropdown-item-active-color + .navbar.is-spaced &, + &.is-boxed + border-radius: $navbar-dropdown-boxed-radius + border-top: none + box-shadow: $navbar-dropdown-boxed-shadow + display: block + opacity: 0 + pointer-events: none + top: calc(100% + (#{$navbar-dropdown-offset})) + transform: translateY(-5px) + transition-duration: $speed + transition-property: opacity, transform + &.is-right + left: auto + right: 0 + .navbar-divider + display: block + .navbar > .container, + .container > .navbar + .navbar-brand + +ltr-property("margin", -.75rem, false) + .navbar-menu + +ltr-property("margin", -.75rem) + // Fixed navbar + .navbar + &.is-fixed-bottom-desktop, + &.is-fixed-top-desktop + +navbar-fixed + &.is-fixed-bottom-desktop + bottom: 0 + &.has-shadow + box-shadow: 0 -2px 3px bulmaRgba($scheme-invert, 0.1) + &.is-fixed-top-desktop + top: 0 + html, + body + &.has-navbar-fixed-top-desktop + padding-top: $navbar-height + &.has-navbar-fixed-bottom-desktop + padding-bottom: $navbar-height + &.has-spaced-navbar-fixed-top + padding-top: $navbar-height + ($navbar-padding-vertical * 2) + &.has-spaced-navbar-fixed-bottom + padding-bottom: $navbar-height + ($navbar-padding-vertical * 2) + // Hover/Active states + a.navbar-item, + .navbar-link + &.is-active + color: $navbar-item-active-color + &.is-active:not(:focus):not(:hover) + background-color: $navbar-item-active-background-color + .navbar-item.has-dropdown + &:focus, + &:hover, + &.is-active + .navbar-link + background-color: $navbar-item-hover-background-color + +// Combination + +.hero + &.is-fullheight-with-navbar + min-height: calc(100vh - #{$navbar-height}) diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/components/pagination.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/components/pagination.sass new file mode 100644 index 0000000..7455b52 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/components/pagination.sass @@ -0,0 +1,158 @@ +@import "../utilities/controls" +@import "../utilities/mixins" + +$pagination-color: $text-strong !default +$pagination-border-color: $border !default +$pagination-margin: -0.25rem !default +$pagination-min-width: $control-height !default + +$pagination-item-font-size: 1em !default +$pagination-item-margin: 0.25rem !default +$pagination-item-padding-left: 0.5em !default +$pagination-item-padding-right: 0.5em !default + +$pagination-nav-padding-left: 0.75em !default +$pagination-nav-padding-right: 0.75em !default + +$pagination-hover-color: $link-hover !default +$pagination-hover-border-color: $link-hover-border !default + +$pagination-focus-color: $link-focus !default +$pagination-focus-border-color: $link-focus-border !default + +$pagination-active-color: $link-active !default +$pagination-active-border-color: $link-active-border !default + +$pagination-disabled-color: $text-light !default +$pagination-disabled-background-color: $border !default +$pagination-disabled-border-color: $border !default + +$pagination-current-color: $link-invert !default +$pagination-current-background-color: $link !default +$pagination-current-border-color: $link !default + +$pagination-ellipsis-color: $grey-light !default + +$pagination-shadow-inset: inset 0 1px 2px rgba($scheme-invert, 0.2) !default + +.pagination + @extend %block + font-size: $size-normal + margin: $pagination-margin + // Sizes + &.is-small + font-size: $size-small + &.is-medium + font-size: $size-medium + &.is-large + font-size: $size-large + &.is-rounded + .pagination-previous, + .pagination-next + padding-left: 1em + padding-right: 1em + border-radius: $radius-rounded + .pagination-link + border-radius: $radius-rounded + +.pagination, +.pagination-list + align-items: center + display: flex + justify-content: center + text-align: center + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis + @extend %control + @extend %unselectable + font-size: $pagination-item-font-size + justify-content: center + margin: $pagination-item-margin + padding-left: $pagination-item-padding-left + padding-right: $pagination-item-padding-right + text-align: center + +.pagination-previous, +.pagination-next, +.pagination-link + border-color: $pagination-border-color + color: $pagination-color + min-width: $pagination-min-width + &:hover + border-color: $pagination-hover-border-color + color: $pagination-hover-color + &:focus + border-color: $pagination-focus-border-color + &:active + box-shadow: $pagination-shadow-inset + &[disabled] + background-color: $pagination-disabled-background-color + border-color: $pagination-disabled-border-color + box-shadow: none + color: $pagination-disabled-color + opacity: 0.5 + +.pagination-previous, +.pagination-next + padding-left: $pagination-nav-padding-left + padding-right: $pagination-nav-padding-right + white-space: nowrap + +.pagination-link + &.is-current + background-color: $pagination-current-background-color + border-color: $pagination-current-border-color + color: $pagination-current-color + +.pagination-ellipsis + color: $pagination-ellipsis-color + pointer-events: none + +.pagination-list + flex-wrap: wrap + li + list-style: none + ++mobile + .pagination + flex-wrap: wrap + .pagination-previous, + .pagination-next + flex-grow: 1 + flex-shrink: 1 + .pagination-list + li + flex-grow: 1 + flex-shrink: 1 + ++tablet + .pagination-list + flex-grow: 1 + flex-shrink: 1 + justify-content: flex-start + order: 1 + .pagination-previous + order: 2 + .pagination-next + order: 3 + .pagination + justify-content: space-between + &.is-centered + .pagination-previous + order: 1 + .pagination-list + justify-content: center + order: 2 + .pagination-next + order: 3 + &.is-right + .pagination-previous + order: 1 + .pagination-next + order: 2 + .pagination-list + justify-content: flex-end + order: 3 diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/components/panel.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/components/panel.sass new file mode 100644 index 0000000..a9d42fb --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/components/panel.sass @@ -0,0 +1,121 @@ +@import "../utilities/mixins" + +$panel-margin: $block-spacing !default +$panel-item-border: 1px solid $border-light !default +$panel-radius: $radius-large !default +$panel-shadow: 0 0.5em 1em -0.125em rgba($scheme-invert, 0.1), 0 0px 0 1px rgba($scheme-invert, 0.02) !default + +$panel-heading-background-color: $border-light !default +$panel-heading-color: $text-strong !default +$panel-heading-line-height: 1.25 !default +$panel-heading-padding: 0.75em 1em !default +$panel-heading-radius: $radius !default +$panel-heading-size: 1.25em !default +$panel-heading-weight: $weight-bold !default + +$panel-tabs-font-size: 0.875em !default +$panel-tab-border-bottom: 1px solid $border !default +$panel-tab-active-border-bottom-color: $link-active-border !default +$panel-tab-active-color: $link-active !default + +$panel-list-item-color: $text !default +$panel-list-item-hover-color: $link !default + +$panel-block-color: $text-strong !default +$panel-block-hover-background-color: $background !default +$panel-block-active-border-left-color: $link !default +$panel-block-active-color: $link-active !default +$panel-block-active-icon-color: $link !default + +$panel-icon-color: $text-light !default +$panel-colors: $colors !default + +.panel + border-radius: $panel-radius + box-shadow: $panel-shadow + font-size: $size-normal + &:not(:last-child) + margin-bottom: $panel-margin + // Colors + @each $name, $components in $panel-colors + $color: nth($components, 1) + $color-invert: nth($components, 2) + &.is-#{$name} + .panel-heading + background-color: $color + color: $color-invert + .panel-tabs a.is-active + border-bottom-color: $color + .panel-block.is-active .panel-icon + color: $color + +.panel-tabs, +.panel-block + &:not(:last-child) + border-bottom: $panel-item-border + +.panel-heading + background-color: $panel-heading-background-color + border-radius: $panel-radius $panel-radius 0 0 + color: $panel-heading-color + font-size: $panel-heading-size + font-weight: $panel-heading-weight + line-height: $panel-heading-line-height + padding: $panel-heading-padding + +.panel-tabs + align-items: flex-end + display: flex + font-size: $panel-tabs-font-size + justify-content: center + a + border-bottom: $panel-tab-border-bottom + margin-bottom: -1px + padding: 0.5em + // Modifiers + &.is-active + border-bottom-color: $panel-tab-active-border-bottom-color + color: $panel-tab-active-color + +.panel-list + a + color: $panel-list-item-color + &:hover + color: $panel-list-item-hover-color + +.panel-block + align-items: center + color: $panel-block-color + display: flex + justify-content: flex-start + padding: 0.5em 0.75em + input[type="checkbox"] + +ltr-property("margin", 0.75em) + & > .control + flex-grow: 1 + flex-shrink: 1 + width: 100% + &.is-wrapped + flex-wrap: wrap + &.is-active + border-left-color: $panel-block-active-border-left-color + color: $panel-block-active-color + .panel-icon + color: $panel-block-active-icon-color + &:last-child + border-bottom-left-radius: $panel-radius + border-bottom-right-radius: $panel-radius + +a.panel-block, +label.panel-block + cursor: pointer + &:hover + background-color: $panel-block-hover-background-color + +.panel-icon + +fa(14px, 1em) + color: $panel-icon-color + +ltr-property("margin", 0.75em) + .fa + font-size: inherit + line-height: inherit diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/components/tabs.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/components/tabs.sass new file mode 100644 index 0000000..2cb6a54 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/components/tabs.sass @@ -0,0 +1,176 @@ +@import "../utilities/mixins" + +$tabs-border-bottom-color: $border !default +$tabs-border-bottom-style: solid !default +$tabs-border-bottom-width: 1px !default +$tabs-link-color: $text !default +$tabs-link-hover-border-bottom-color: $text-strong !default +$tabs-link-hover-color: $text-strong !default +$tabs-link-active-border-bottom-color: $link !default +$tabs-link-active-color: $link !default +$tabs-link-padding: 0.5em 1em !default + +$tabs-boxed-link-radius: $radius !default +$tabs-boxed-link-hover-background-color: $background !default +$tabs-boxed-link-hover-border-bottom-color: $border !default + +$tabs-boxed-link-active-background-color: $scheme-main !default +$tabs-boxed-link-active-border-color: $border !default +$tabs-boxed-link-active-border-bottom-color: transparent !default + +$tabs-toggle-link-border-color: $border !default +$tabs-toggle-link-border-style: solid !default +$tabs-toggle-link-border-width: 1px !default +$tabs-toggle-link-hover-background-color: $background !default +$tabs-toggle-link-hover-border-color: $border-hover !default +$tabs-toggle-link-radius: $radius !default +$tabs-toggle-link-active-background-color: $link !default +$tabs-toggle-link-active-border-color: $link !default +$tabs-toggle-link-active-color: $link-invert !default + +.tabs + @extend %block + +overflow-touch + @extend %unselectable + align-items: stretch + display: flex + font-size: $size-normal + justify-content: space-between + overflow: hidden + overflow-x: auto + white-space: nowrap + a + align-items: center + border-bottom-color: $tabs-border-bottom-color + border-bottom-style: $tabs-border-bottom-style + border-bottom-width: $tabs-border-bottom-width + color: $tabs-link-color + display: flex + justify-content: center + margin-bottom: -#{$tabs-border-bottom-width} + padding: $tabs-link-padding + vertical-align: top + &:hover + border-bottom-color: $tabs-link-hover-border-bottom-color + color: $tabs-link-hover-color + li + display: block + &.is-active + a + border-bottom-color: $tabs-link-active-border-bottom-color + color: $tabs-link-active-color + ul + align-items: center + border-bottom-color: $tabs-border-bottom-color + border-bottom-style: $tabs-border-bottom-style + border-bottom-width: $tabs-border-bottom-width + display: flex + flex-grow: 1 + flex-shrink: 0 + justify-content: flex-start + &.is-left + padding-right: 0.75em + &.is-center + flex: none + justify-content: center + padding-left: 0.75em + padding-right: 0.75em + &.is-right + justify-content: flex-end + padding-left: 0.75em + .icon + &:first-child + +ltr-property("margin", 0.5em) + &:last-child + +ltr-property("margin", 0.5em, false) + // Alignment + &.is-centered + ul + justify-content: center + &.is-right + ul + justify-content: flex-end + // Styles + &.is-boxed + a + border: 1px solid transparent + +ltr + border-radius: $tabs-boxed-link-radius $tabs-boxed-link-radius 0 0 + +rtl + border-radius: 0 0 $tabs-boxed-link-radius $tabs-boxed-link-radius + &:hover + background-color: $tabs-boxed-link-hover-background-color + border-bottom-color: $tabs-boxed-link-hover-border-bottom-color + li + &.is-active + a + background-color: $tabs-boxed-link-active-background-color + border-color: $tabs-boxed-link-active-border-color + border-bottom-color: $tabs-boxed-link-active-border-bottom-color !important + &.is-fullwidth + li + flex-grow: 1 + flex-shrink: 0 + &.is-toggle + a + border-color: $tabs-toggle-link-border-color + border-style: $tabs-toggle-link-border-style + border-width: $tabs-toggle-link-border-width + margin-bottom: 0 + position: relative + &:hover + background-color: $tabs-toggle-link-hover-background-color + border-color: $tabs-toggle-link-hover-border-color + z-index: 2 + li + & + li + +ltr-property("margin", -#{$tabs-toggle-link-border-width}, false) + &:first-child a + +ltr + border-top-left-radius: $tabs-toggle-link-radius + border-bottom-left-radius: $tabs-toggle-link-radius + +rtl + border-top-right-radius: $tabs-toggle-link-radius + border-bottom-right-radius: $tabs-toggle-link-radius + &:last-child a + +ltr + border-top-right-radius: $tabs-toggle-link-radius + border-bottom-right-radius: $tabs-toggle-link-radius + +rtl + border-top-left-radius: $tabs-toggle-link-radius + border-bottom-left-radius: $tabs-toggle-link-radius + &.is-active + a + background-color: $tabs-toggle-link-active-background-color + border-color: $tabs-toggle-link-active-border-color + color: $tabs-toggle-link-active-color + z-index: 1 + ul + border-bottom: none + &.is-toggle-rounded + li + &:first-child a + +ltr + border-bottom-left-radius: $radius-rounded + border-top-left-radius: $radius-rounded + padding-left: 1.25em + +rtl + border-bottom-right-radius: $radius-rounded + border-top-right-radius: $radius-rounded + padding-right: 1.25em + &:last-child a + +ltr + border-bottom-right-radius: $radius-rounded + border-top-right-radius: $radius-rounded + padding-right: 1.25em + +rtl + border-bottom-left-radius: $radius-rounded + border-top-left-radius: $radius-rounded + padding-left: 1.25em + // Sizes + &.is-small + font-size: $size-small + &.is-medium + font-size: $size-medium + &.is-large + font-size: $size-large diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/elements/_all.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/elements/_all.sass new file mode 100644 index 0000000..511047a --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/elements/_all.sass @@ -0,0 +1,16 @@ +/* Bulma Elements */ +@charset "utf-8" + +@import "box" +@import "button" +@import "container" +@import "content" +@import "icon" +@import "image" +@import "notification" +@import "progress" +@import "table" +@import "tag" +@import "title" + +@import "other" diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/elements/box.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/elements/box.sass new file mode 100644 index 0000000..ed70a39 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/elements/box.sass @@ -0,0 +1,26 @@ +@import "../utilities/mixins" + +$box-color: $text !default +$box-background-color: $scheme-main !default +$box-radius: $radius-large !default +$box-shadow: 0 0.5em 1em -0.125em rgba($scheme-invert, 0.1), 0 0px 0 1px rgba($scheme-invert, 0.02) !default +$box-padding: 1.25rem !default + +$box-link-hover-shadow: 0 0.5em 1em -0.125em rgba($scheme-invert, 0.1), 0 0 0 1px $link !default +$box-link-active-shadow: inset 0 1px 2px rgba($scheme-invert, 0.2), 0 0 0 1px $link !default + +.box + @extend %block + background-color: $box-background-color + border-radius: $box-radius + box-shadow: $box-shadow + color: $box-color + display: block + padding: $box-padding + +a.box + &:hover, + &:focus + box-shadow: $box-link-hover-shadow + &:active + box-shadow: $box-link-active-shadow diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/elements/button.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/elements/button.sass new file mode 100644 index 0000000..ca3bc3d --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/elements/button.sass @@ -0,0 +1,345 @@ +@import "../utilities/controls" +@import "../utilities/mixins" + +$button-color: $text-strong !default +$button-background-color: $scheme-main !default +$button-family: false !default + +$button-border-color: $border !default +$button-border-width: $control-border-width !default + +$button-padding-vertical: calc(0.5em - #{$button-border-width}) !default +$button-padding-horizontal: 1em !default + +$button-hover-color: $link-hover !default +$button-hover-border-color: $link-hover-border !default + +$button-focus-color: $link-focus !default +$button-focus-border-color: $link-focus-border !default +$button-focus-box-shadow-size: 0 0 0 0.125em !default +$button-focus-box-shadow-color: bulmaRgba($link, 0.25) !default + +$button-active-color: $link-active !default +$button-active-border-color: $link-active-border !default + +$button-text-color: $text !default +$button-text-decoration: underline !default +$button-text-hover-background-color: $background !default +$button-text-hover-color: $text-strong !default + +$button-ghost-background: none !default +$button-ghost-border-color: transparent !default +$button-ghost-color: $link !default +$button-ghost-decoration: none !default +$button-ghost-hover-color: $link !default +$button-ghost-hover-decoration: underline !default + +$button-disabled-background-color: $scheme-main !default +$button-disabled-border-color: $border !default +$button-disabled-shadow: none !default +$button-disabled-opacity: 0.5 !default + +$button-static-color: $text-light !default +$button-static-background-color: $scheme-main-ter !default +$button-static-border-color: $border !default + +$button-colors: $colors !default + +// The button sizes use mixins so they can be used at different breakpoints +=button-small + &:not(.is-rounded) + border-radius: $radius-small + font-size: $size-small +=button-normal + font-size: $size-normal +=button-medium + font-size: $size-medium +=button-large + font-size: $size-large + +.button + @extend %control + @extend %unselectable + background-color: $button-background-color + border-color: $button-border-color + border-width: $button-border-width + color: $button-color + cursor: pointer + @if $button-family + font-family: $button-family + justify-content: center + padding-bottom: $button-padding-vertical + padding-left: $button-padding-horizontal + padding-right: $button-padding-horizontal + padding-top: $button-padding-vertical + text-align: center + white-space: nowrap + strong + color: inherit + .icon + &, + &.is-small, + &.is-medium, + &.is-large + height: 1.5em + width: 1.5em + &:first-child:not(:last-child) + +ltr-property("margin", calc(#{-1 / 2 * $button-padding-horizontal} - #{$button-border-width}), false) + +ltr-property("margin", $button-padding-horizontal / 4) + &:last-child:not(:first-child) + +ltr-property("margin", $button-padding-horizontal / 4, false) + +ltr-property("margin", calc(#{-1 / 2 * $button-padding-horizontal} - #{$button-border-width})) + &:first-child:last-child + margin-left: calc(#{-1 / 2 * $button-padding-horizontal} - #{$button-border-width}) + margin-right: calc(#{-1 / 2 * $button-padding-horizontal} - #{$button-border-width}) + // States + &:hover, + &.is-hovered + border-color: $button-hover-border-color + color: $button-hover-color + &:focus, + &.is-focused + border-color: $button-focus-border-color + color: $button-focus-color + &:not(:active) + box-shadow: $button-focus-box-shadow-size $button-focus-box-shadow-color + &:active, + &.is-active + border-color: $button-active-border-color + color: $button-active-color + // Colors + &.is-text + background-color: transparent + border-color: transparent + color: $button-text-color + text-decoration: $button-text-decoration + &:hover, + &.is-hovered, + &:focus, + &.is-focused + background-color: $button-text-hover-background-color + color: $button-text-hover-color + &:active, + &.is-active + background-color: bulmaDarken($button-text-hover-background-color, 5%) + color: $button-text-hover-color + &[disabled], + fieldset[disabled] & + background-color: transparent + border-color: transparent + box-shadow: none + &.is-ghost + background: $button-ghost-background + border-color: $button-ghost-border-color + color: $button-ghost-color + text-decoration: $button-ghost-decoration + &:hover, + &.is-hovered + color: $button-ghost-hover-color + text-decoration: $button-ghost-hover-decoration + @each $name, $pair in $button-colors + $color: nth($pair, 1) + $color-invert: nth($pair, 2) + &.is-#{$name} + background-color: $color + border-color: transparent + color: $color-invert + &:hover, + &.is-hovered + background-color: bulmaDarken($color, 2.5%) + border-color: transparent + color: $color-invert + &:focus, + &.is-focused + border-color: transparent + color: $color-invert + &:not(:active) + box-shadow: $button-focus-box-shadow-size bulmaRgba($color, 0.25) + &:active, + &.is-active + background-color: bulmaDarken($color, 5%) + border-color: transparent + color: $color-invert + &[disabled], + fieldset[disabled] & + background-color: $color + border-color: transparent + box-shadow: none + &.is-inverted + background-color: $color-invert + color: $color + &:hover, + &.is-hovered + background-color: bulmaDarken($color-invert, 5%) + &[disabled], + fieldset[disabled] & + background-color: $color-invert + border-color: transparent + box-shadow: none + color: $color + &.is-loading + &::after + border-color: transparent transparent $color-invert $color-invert !important + &.is-outlined + background-color: transparent + border-color: $color + color: $color + &:hover, + &.is-hovered, + &:focus, + &.is-focused + background-color: $color + border-color: $color + color: $color-invert + &.is-loading + &::after + border-color: transparent transparent $color $color !important + &:hover, + &.is-hovered, + &:focus, + &.is-focused + &::after + border-color: transparent transparent $color-invert $color-invert !important + &[disabled], + fieldset[disabled] & + background-color: transparent + border-color: $color + box-shadow: none + color: $color + &.is-inverted.is-outlined + background-color: transparent + border-color: $color-invert + color: $color-invert + &:hover, + &.is-hovered, + &:focus, + &.is-focused + background-color: $color-invert + color: $color + &.is-loading + &:hover, + &.is-hovered, + &:focus, + &.is-focused + &::after + border-color: transparent transparent $color $color !important + &[disabled], + fieldset[disabled] & + background-color: transparent + border-color: $color-invert + box-shadow: none + color: $color-invert + // If light and dark colors are provided + @if length($pair) >= 4 + $color-light: nth($pair, 3) + $color-dark: nth($pair, 4) + &.is-light + background-color: $color-light + color: $color-dark + &:hover, + &.is-hovered + background-color: bulmaDarken($color-light, 2.5%) + border-color: transparent + color: $color-dark + &:active, + &.is-active + background-color: bulmaDarken($color-light, 5%) + border-color: transparent + color: $color-dark + // Sizes + &.is-small + +button-small + &.is-normal + +button-normal + &.is-medium + +button-medium + &.is-large + +button-large + // Modifiers + &[disabled], + fieldset[disabled] & + background-color: $button-disabled-background-color + border-color: $button-disabled-border-color + box-shadow: $button-disabled-shadow + opacity: $button-disabled-opacity + &.is-fullwidth + display: flex + width: 100% + &.is-loading + color: transparent !important + pointer-events: none + &::after + @extend %loader + +center(1em) + position: absolute !important + &.is-static + background-color: $button-static-background-color + border-color: $button-static-border-color + color: $button-static-color + box-shadow: none + pointer-events: none + &.is-rounded + border-radius: $radius-rounded + padding-left: calc(#{$button-padding-horizontal} + 0.25em) + padding-right: calc(#{$button-padding-horizontal} + 0.25em) + +.buttons + align-items: center + display: flex + flex-wrap: wrap + justify-content: flex-start + .button + margin-bottom: 0.5rem + &:not(:last-child):not(.is-fullwidth) + +ltr-property("margin", 0.5rem) + &:last-child + margin-bottom: -0.5rem + &:not(:last-child) + margin-bottom: 1rem + // Sizes + &.are-small + .button:not(.is-normal):not(.is-medium):not(.is-large) + +button-small + &.are-medium + .button:not(.is-small):not(.is-normal):not(.is-large) + +button-medium + &.are-large + .button:not(.is-small):not(.is-normal):not(.is-medium) + +button-large + &.has-addons + .button + &:not(:first-child) + border-bottom-left-radius: 0 + border-top-left-radius: 0 + &:not(:last-child) + border-bottom-right-radius: 0 + border-top-right-radius: 0 + +ltr-property("margin", -1px) + &:last-child + +ltr-property("margin", 0) + &:hover, + &.is-hovered + z-index: 2 + &:focus, + &.is-focused, + &:active, + &.is-active, + &.is-selected + z-index: 3 + &:hover + z-index: 4 + &.is-expanded + flex-grow: 1 + flex-shrink: 1 + &.is-centered + justify-content: center + &:not(.has-addons) + .button:not(.is-fullwidth) + margin-left: 0.25rem + margin-right: 0.25rem + &.is-right + justify-content: flex-end + &:not(.has-addons) + .button:not(.is-fullwidth) + margin-left: 0.25rem + margin-right: 0.25rem diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/elements/container.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/elements/container.sass new file mode 100644 index 0000000..c13011e --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/elements/container.sass @@ -0,0 +1,29 @@ +@import "../utilities/mixins" + +$container-offset: (2 * $gap) !default +$container-max-width: $fullhd !default + +.container + flex-grow: 1 + margin: 0 auto + position: relative + width: auto + &.is-fluid + max-width: none !important + padding-left: $gap + padding-right: $gap + width: 100% + +desktop + max-width: $desktop - $container-offset + +until-widescreen + &.is-widescreen:not(.is-max-desktop) + max-width: min($widescreen, $container-max-width) - $container-offset + +until-fullhd + &.is-fullhd:not(.is-max-desktop):not(.is-max-widescreen) + max-width: min($fullhd, $container-max-width) - $container-offset + +widescreen + &:not(.is-max-desktop) + max-width: min($widescreen, $container-max-width) - $container-offset + +fullhd + &:not(.is-max-desktop):not(.is-max-widescreen) + max-width: min($fullhd, $container-max-width) - $container-offset diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/elements/content.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/elements/content.sass new file mode 100644 index 0000000..ebfa9f0 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/elements/content.sass @@ -0,0 +1,157 @@ +@import "../utilities/mixins" + +$content-heading-color: $text-strong !default +$content-heading-weight: $weight-semibold !default +$content-heading-line-height: 1.125 !default + +$content-blockquote-background-color: $background !default +$content-blockquote-border-left: 5px solid $border !default +$content-blockquote-padding: 1.25em 1.5em !default + +$content-pre-padding: 1.25em 1.5em !default + +$content-table-cell-border: 1px solid $border !default +$content-table-cell-border-width: 0 0 1px !default +$content-table-cell-padding: 0.5em 0.75em !default +$content-table-cell-heading-color: $text-strong !default +$content-table-head-cell-border-width: 0 0 2px !default +$content-table-head-cell-color: $text-strong !default +$content-table-foot-cell-border-width: 2px 0 0 !default +$content-table-foot-cell-color: $text-strong !default + +.content + @extend %block + // Inline + li + li + margin-top: 0.25em + // Block + p, + dl, + ol, + ul, + blockquote, + pre, + table + &:not(:last-child) + margin-bottom: 1em + h1, + h2, + h3, + h4, + h5, + h6 + color: $content-heading-color + font-weight: $content-heading-weight + line-height: $content-heading-line-height + h1 + font-size: 2em + margin-bottom: 0.5em + &:not(:first-child) + margin-top: 1em + h2 + font-size: 1.75em + margin-bottom: 0.5714em + &:not(:first-child) + margin-top: 1.1428em + h3 + font-size: 1.5em + margin-bottom: 0.6666em + &:not(:first-child) + margin-top: 1.3333em + h4 + font-size: 1.25em + margin-bottom: 0.8em + h5 + font-size: 1.125em + margin-bottom: 0.8888em + h6 + font-size: 1em + margin-bottom: 1em + blockquote + background-color: $content-blockquote-background-color + +ltr-property("border", $content-blockquote-border-left, false) + padding: $content-blockquote-padding + ol + list-style-position: outside + +ltr-property("margin", 2em, false) + margin-top: 1em + &:not([type]) + list-style-type: decimal + &.is-lower-alpha + list-style-type: lower-alpha + &.is-lower-roman + list-style-type: lower-roman + &.is-upper-alpha + list-style-type: upper-alpha + &.is-upper-roman + list-style-type: upper-roman + ul + list-style: disc outside + +ltr-property("margin", 2em, false) + margin-top: 1em + ul + list-style-type: circle + margin-top: 0.5em + ul + list-style-type: square + dd + +ltr-property("margin", 2em, false) + figure + margin-left: 2em + margin-right: 2em + text-align: center + &:not(:first-child) + margin-top: 2em + &:not(:last-child) + margin-bottom: 2em + img + display: inline-block + figcaption + font-style: italic + pre + +overflow-touch + overflow-x: auto + padding: $content-pre-padding + white-space: pre + word-wrap: normal + sup, + sub + font-size: 75% + table + width: 100% + td, + th + border: $content-table-cell-border + border-width: $content-table-cell-border-width + padding: $content-table-cell-padding + vertical-align: top + th + color: $content-table-cell-heading-color + &:not([align]) + text-align: inherit + thead + td, + th + border-width: $content-table-head-cell-border-width + color: $content-table-head-cell-color + tfoot + td, + th + border-width: $content-table-foot-cell-border-width + color: $content-table-foot-cell-color + tbody + tr + &:last-child + td, + th + border-bottom-width: 0 + .tabs + li + li + margin-top: 0 + // Sizes + &.is-small + font-size: $size-small + &.is-medium + font-size: $size-medium + &.is-large + font-size: $size-large diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/elements/form.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/elements/form.sass new file mode 100644 index 0000000..3122dc4 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/elements/form.sass @@ -0,0 +1 @@ +@warn "The form.sass file is DEPRECATED. It has moved into its own /form folder. Please import sass/form/_all instead." diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/elements/icon.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/elements/icon.sass new file mode 100644 index 0000000..466146f --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/elements/icon.sass @@ -0,0 +1,40 @@ +$icon-dimensions: 1.5rem !default +$icon-dimensions-small: 1rem !default +$icon-dimensions-medium: 2rem !default +$icon-dimensions-large: 3rem !default +$icon-text-spacing: 0.25em !default + +.icon + align-items: center + display: inline-flex + justify-content: center + height: $icon-dimensions + width: $icon-dimensions + // Sizes + &.is-small + height: $icon-dimensions-small + width: $icon-dimensions-small + &.is-medium + height: $icon-dimensions-medium + width: $icon-dimensions-medium + &.is-large + height: $icon-dimensions-large + width: $icon-dimensions-large + +.icon-text + align-items: flex-start + color: inherit + display: inline-flex + flex-wrap: wrap + line-height: $icon-dimensions + vertical-align: top + .icon + flex-grow: 0 + flex-shrink: 0 + &:not(:last-child) + margin-right: $icon-text-spacing + &:not(:first-child) + margin-left: $icon-text-spacing + +div.icon-text + display: flex diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/elements/image.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/elements/image.sass new file mode 100644 index 0000000..fc46541 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/elements/image.sass @@ -0,0 +1,73 @@ +@import "../utilities/mixins" + +$dimensions: 16 24 32 48 64 96 128 !default + +.image + display: block + position: relative + img + display: block + height: auto + width: 100% + &.is-rounded + border-radius: $radius-rounded + &.is-fullwidth + width: 100% + // Ratio + &.is-square, + &.is-1by1, + &.is-5by4, + &.is-4by3, + &.is-3by2, + &.is-5by3, + &.is-16by9, + &.is-2by1, + &.is-3by1, + &.is-4by5, + &.is-3by4, + &.is-2by3, + &.is-3by5, + &.is-9by16, + &.is-1by2, + &.is-1by3 + img, + .has-ratio + @extend %overlay + height: 100% + width: 100% + &.is-square, + &.is-1by1 + padding-top: 100% + &.is-5by4 + padding-top: 80% + &.is-4by3 + padding-top: 75% + &.is-3by2 + padding-top: 66.6666% + &.is-5by3 + padding-top: 60% + &.is-16by9 + padding-top: 56.25% + &.is-2by1 + padding-top: 50% + &.is-3by1 + padding-top: 33.3333% + &.is-4by5 + padding-top: 125% + &.is-3by4 + padding-top: 133.3333% + &.is-2by3 + padding-top: 150% + &.is-3by5 + padding-top: 166.6666% + &.is-9by16 + padding-top: 177.7777% + &.is-1by2 + padding-top: 200% + &.is-1by3 + padding-top: 300% + // Sizes + @each $dimension in $dimensions + &.is-#{$dimension}x#{$dimension} + height: $dimension * 1px + width: $dimension * 1px diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/elements/notification.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/elements/notification.sass new file mode 100644 index 0000000..f5c6021 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/elements/notification.sass @@ -0,0 +1,52 @@ +@import "../utilities/mixins" + +$notification-background-color: $background !default +$notification-code-background-color: $scheme-main !default +$notification-radius: $radius !default +$notification-padding: 1.25rem 2.5rem 1.25rem 1.5rem !default +$notification-padding-ltr: 1.25rem 2.5rem 1.25rem 1.5rem !default +$notification-padding-rtl: 1.25rem 1.5rem 1.25rem 2.5rem !default + +$notification-colors: $colors !default + +.notification + @extend %block + background-color: $notification-background-color + border-radius: $notification-radius + position: relative + +ltr + padding: $notification-padding-ltr + +rtl + padding: $notification-padding-rtl + a:not(.button):not(.dropdown-item) + color: currentColor + text-decoration: underline + strong + color: currentColor + code, + pre + background: $notification-code-background-color + pre code + background: transparent + & > .delete + +ltr-position(0.5rem) + position: absolute + top: 0.5rem + .title, + .subtitle, + .content + color: currentColor + // Colors + @each $name, $pair in $notification-colors + $color: nth($pair, 1) + $color-invert: nth($pair, 2) + &.is-#{$name} + background-color: $color + color: $color-invert + // If light and dark colors are provided + @if length($pair) >= 4 + $color-light: nth($pair, 3) + $color-dark: nth($pair, 4) + &.is-light + background-color: $color-light + color: $color-dark diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/elements/other.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/elements/other.sass new file mode 100644 index 0000000..b993d68 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/elements/other.sass @@ -0,0 +1,41 @@ +@import "../utilities/mixins" + +.block + @extend %block + +.delete + @extend %delete + +.heading + display: block + font-size: 11px + letter-spacing: 1px + margin-bottom: 5px + text-transform: uppercase + +.highlight + @extend %block + font-weight: $weight-normal + max-width: 100% + overflow: hidden + padding: 0 + pre + overflow: auto + max-width: 100% + +.loader + @extend %loader + +.number + align-items: center + background-color: $background + border-radius: $radius-rounded + display: inline-flex + font-size: $size-medium + height: 2em + justify-content: center + margin-right: 1.5rem + min-width: 2.5em + padding: 0.25rem 0.5rem + text-align: center + vertical-align: top diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/elements/progress.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/elements/progress.sass new file mode 100644 index 0000000..4daeb80 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/elements/progress.sass @@ -0,0 +1,73 @@ +@import "../utilities/mixins" + +$progress-bar-background-color: $border-light !default +$progress-value-background-color: $text !default +$progress-border-radius: $radius-rounded !default + +$progress-indeterminate-duration: 1.5s !default + +$progress-colors: $colors !default + +.progress + @extend %block + -moz-appearance: none + -webkit-appearance: none + border: none + border-radius: $progress-border-radius + display: block + height: $size-normal + overflow: hidden + padding: 0 + width: 100% + &::-webkit-progress-bar + background-color: $progress-bar-background-color + &::-webkit-progress-value + background-color: $progress-value-background-color + &::-moz-progress-bar + background-color: $progress-value-background-color + &::-ms-fill + background-color: $progress-value-background-color + border: none + // Colors + @each $name, $pair in $progress-colors + $color: nth($pair, 1) + &.is-#{$name} + &::-webkit-progress-value + background-color: $color + &::-moz-progress-bar + background-color: $color + &::-ms-fill + background-color: $color + &:indeterminate + background-image: linear-gradient(to right, $color 30%, $progress-bar-background-color 30%) + + &:indeterminate + animation-duration: $progress-indeterminate-duration + animation-iteration-count: infinite + animation-name: moveIndeterminate + animation-timing-function: linear + background-color: $progress-bar-background-color + background-image: linear-gradient(to right, $text 30%, $progress-bar-background-color 30%) + background-position: top left + background-repeat: no-repeat + background-size: 150% 150% + &::-webkit-progress-bar + background-color: transparent + &::-moz-progress-bar + background-color: transparent + &::-ms-fill + animation-name: none + + // Sizes + &.is-small + height: $size-small + &.is-medium + height: $size-medium + &.is-large + height: $size-large + +@keyframes moveIndeterminate + from + background-position: 200% 0 + to + background-position: -200% 0 diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/elements/table.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/elements/table.sass new file mode 100644 index 0000000..7ea6c11 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/elements/table.sass @@ -0,0 +1,133 @@ +@import "../utilities/mixins" + +$table-color: $text-strong !default +$table-background-color: $scheme-main !default + +$table-cell-border: 1px solid $border !default +$table-cell-border-width: 0 0 1px !default +$table-cell-padding: 0.5em 0.75em !default +$table-cell-heading-color: $text-strong !default + +$table-head-cell-border-width: 0 0 2px !default +$table-head-cell-color: $text-strong !default +$table-foot-cell-border-width: 2px 0 0 !default +$table-foot-cell-color: $text-strong !default + +$table-head-background-color: transparent !default +$table-body-background-color: transparent !default +$table-foot-background-color: transparent !default + +$table-row-hover-background-color: $scheme-main-bis !default + +$table-row-active-background-color: $primary !default +$table-row-active-color: $primary-invert !default + +$table-striped-row-even-background-color: $scheme-main-bis !default +$table-striped-row-even-hover-background-color: $scheme-main-ter !default + +$table-colors: $colors !default + +.table + @extend %block + background-color: $table-background-color + color: $table-color + td, + th + border: $table-cell-border + border-width: $table-cell-border-width + padding: $table-cell-padding + vertical-align: top + // Colors + @each $name, $pair in $table-colors + $color: nth($pair, 1) + $color-invert: nth($pair, 2) + &.is-#{$name} + background-color: $color + border-color: $color + color: $color-invert + // Modifiers + &.is-narrow + white-space: nowrap + width: 1% + &.is-selected + background-color: $table-row-active-background-color + color: $table-row-active-color + a, + strong + color: currentColor + &.is-vcentered + vertical-align: middle + th + color: $table-cell-heading-color + &:not([align]) + text-align: inherit + tr + &.is-selected + background-color: $table-row-active-background-color + color: $table-row-active-color + a, + strong + color: currentColor + td, + th + border-color: $table-row-active-color + color: currentColor + thead + background-color: $table-head-background-color + td, + th + border-width: $table-head-cell-border-width + color: $table-head-cell-color + tfoot + background-color: $table-foot-background-color + td, + th + border-width: $table-foot-cell-border-width + color: $table-foot-cell-color + tbody + background-color: $table-body-background-color + tr + &:last-child + td, + th + border-bottom-width: 0 + // Modifiers + &.is-bordered + td, + th + border-width: 1px + tr + &:last-child + td, + th + border-bottom-width: 1px + &.is-fullwidth + width: 100% + &.is-hoverable + tbody + tr:not(.is-selected) + &:hover + background-color: $table-row-hover-background-color + &.is-striped + tbody + tr:not(.is-selected) + &:hover + background-color: $table-row-hover-background-color + &:nth-child(even) + background-color: $table-striped-row-even-hover-background-color + &.is-narrow + td, + th + padding: 0.25em 0.5em + &.is-striped + tbody + tr:not(.is-selected) + &:nth-child(even) + background-color: $table-striped-row-even-background-color + +.table-container + @extend %block + +overflow-touch + overflow: auto + overflow-y: hidden + max-width: 100% diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/elements/tag.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/elements/tag.sass new file mode 100644 index 0000000..392daee --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/elements/tag.sass @@ -0,0 +1,140 @@ +@import "../utilities/mixins" + +$tag-background-color: $background !default +$tag-color: $text !default +$tag-radius: $radius !default +$tag-delete-margin: 1px !default + +$tag-colors: $colors !default + +.tags + align-items: center + display: flex + flex-wrap: wrap + justify-content: flex-start + .tag + margin-bottom: 0.5rem + &:not(:last-child) + +ltr-property("margin", 0.5rem) + &:last-child + margin-bottom: -0.5rem + &:not(:last-child) + margin-bottom: 1rem + // Sizes + &.are-medium + .tag:not(.is-normal):not(.is-large) + font-size: $size-normal + &.are-large + .tag:not(.is-normal):not(.is-medium) + font-size: $size-medium + &.is-centered + justify-content: center + .tag + margin-right: 0.25rem + margin-left: 0.25rem + &.is-right + justify-content: flex-end + .tag + &:not(:first-child) + margin-left: 0.5rem + &:not(:last-child) + margin-right: 0 + &.has-addons + .tag + +ltr-property("margin", 0) + &:not(:first-child) + +ltr-property("margin", 0, false) + +ltr + border-top-left-radius: 0 + border-bottom-left-radius: 0 + +rtl + border-top-right-radius: 0 + border-bottom-right-radius: 0 + &:not(:last-child) + +ltr + border-top-right-radius: 0 + border-bottom-right-radius: 0 + +rtl + border-top-left-radius: 0 + border-bottom-left-radius: 0 + +.tag:not(body) + align-items: center + background-color: $tag-background-color + border-radius: $tag-radius + color: $tag-color + display: inline-flex + font-size: $size-small + height: 2em + justify-content: center + line-height: 1.5 + padding-left: 0.75em + padding-right: 0.75em + white-space: nowrap + .delete + +ltr-property("margin", 0.25rem, false) + +ltr-property("margin", -0.375rem) + // Colors + @each $name, $pair in $tag-colors + $color: nth($pair, 1) + $color-invert: nth($pair, 2) + &.is-#{$name} + background-color: $color + color: $color-invert + // If a light and dark colors are provided + @if length($pair) > 3 + $color-light: nth($pair, 3) + $color-dark: nth($pair, 4) + &.is-light + background-color: $color-light + color: $color-dark + // Sizes + &.is-normal + font-size: $size-small + &.is-medium + font-size: $size-normal + &.is-large + font-size: $size-medium + .icon + &:first-child:not(:last-child) + +ltr-property("margin", -0.375em, false) + +ltr-property("margin", 0.1875em) + &:last-child:not(:first-child) + +ltr-property("margin", 0.1875em, false) + +ltr-property("margin", -0.375em) + &:first-child:last-child + +ltr-property("margin", -0.375em, false) + +ltr-property("margin", -0.375em) + // Modifiers + &.is-delete + +ltr-property("margin", $tag-delete-margin, false) + padding: 0 + position: relative + width: 2em + &::before, + &::after + background-color: currentColor + content: "" + display: block + left: 50% + position: absolute + top: 50% + transform: translateX(-50%) translateY(-50%) rotate(45deg) + transform-origin: center center + &::before + height: 1px + width: 50% + &::after + height: 50% + width: 1px + &:hover, + &:focus + background-color: darken($tag-background-color, 5%) + &:active + background-color: darken($tag-background-color, 10%) + &.is-rounded + border-radius: $radius-rounded + +a.tag + &:hover + text-decoration: underline diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/elements/title.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/elements/title.sass new file mode 100644 index 0000000..e87c531 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/elements/title.sass @@ -0,0 +1,72 @@ +@import "../utilities/mixins" + +$title-color: $text-strong !default +$title-family: false !default +$title-size: $size-3 !default +$title-weight: $weight-semibold !default +$title-line-height: 1.125 !default +$title-strong-color: inherit !default +$title-strong-weight: inherit !default +$title-sub-size: 0.75em !default +$title-sup-size: 0.75em !default + +$subtitle-color: $text !default +$subtitle-family: false !default +$subtitle-size: $size-5 !default +$subtitle-weight: $weight-normal !default +$subtitle-line-height: 1.25 !default +$subtitle-strong-color: $text-strong !default +$subtitle-strong-weight: $weight-semibold !default +$subtitle-negative-margin: -1.25rem !default + +.title, +.subtitle + @extend %block + word-break: break-word + em, + span + font-weight: inherit + sub + font-size: $title-sub-size + sup + font-size: $title-sup-size + .tag + vertical-align: middle + +.title + color: $title-color + @if $title-family + font-family: $title-family + font-size: $title-size + font-weight: $title-weight + line-height: $title-line-height + strong + color: $title-strong-color + font-weight: $title-strong-weight + & + .highlight + margin-top: -0.75rem + &:not(.is-spaced) + .subtitle + margin-top: $subtitle-negative-margin + // Sizes + @each $size in $sizes + $i: index($sizes, $size) + &.is-#{$i} + font-size: $size + +.subtitle + color: $subtitle-color + @if $subtitle-family + font-family: $subtitle-family + font-size: $subtitle-size + font-weight: $subtitle-weight + line-height: $subtitle-line-height + strong + color: $subtitle-strong-color + font-weight: $subtitle-strong-weight + &:not(.is-spaced) + .title + margin-top: $subtitle-negative-margin + // Sizes + @each $size in $sizes + $i: index($sizes, $size) + &.is-#{$i} + font-size: $size diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/form/_all.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/form/_all.sass new file mode 100644 index 0000000..0a15f80 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/form/_all.sass @@ -0,0 +1,9 @@ +/* Bulma Form */ +@charset "utf-8" + +@import "shared" +@import "input-textarea" +@import "checkbox-radio" +@import "select" +@import "file" +@import "tools" diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/form/checkbox-radio.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/form/checkbox-radio.sass new file mode 100644 index 0000000..f033d11 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/form/checkbox-radio.sass @@ -0,0 +1,22 @@ +%checkbox-radio + cursor: pointer + display: inline-block + line-height: 1.25 + position: relative + input + cursor: pointer + &:hover + color: $input-hover-color + &[disabled], + fieldset[disabled] &, + input[disabled] + color: $input-disabled-color + cursor: not-allowed + +.checkbox + @extend %checkbox-radio + +.radio + @extend %checkbox-radio + & + .radio + +ltr-property("margin", 0.5em, false) diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/form/file.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/form/file.sass new file mode 100644 index 0000000..22a5a50 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/form/file.sass @@ -0,0 +1,182 @@ +$file-border-color: $border !default +$file-radius: $radius !default + +$file-cta-background-color: $scheme-main-ter !default +$file-cta-color: $text !default +$file-cta-hover-color: $text-strong !default +$file-cta-active-color: $text-strong !default + +$file-name-border-color: $border !default +$file-name-border-style: solid !default +$file-name-border-width: 1px 1px 1px 0 !default +$file-name-max-width: 16em !default + +$file-colors: $form-colors !default + +.file + @extend %unselectable + align-items: stretch + display: flex + justify-content: flex-start + position: relative + // Colors + @each $name, $pair in $file-colors + $color: nth($pair, 1) + $color-invert: nth($pair, 2) + &.is-#{$name} + .file-cta + background-color: $color + border-color: transparent + color: $color-invert + &:hover, + &.is-hovered + .file-cta + background-color: bulmaDarken($color, 2.5%) + border-color: transparent + color: $color-invert + &:focus, + &.is-focused + .file-cta + border-color: transparent + box-shadow: 0 0 0.5em bulmaRgba($color, 0.25) + color: $color-invert + &:active, + &.is-active + .file-cta + background-color: bulmaDarken($color, 5%) + border-color: transparent + color: $color-invert + // Sizes + &.is-small + font-size: $size-small + &.is-medium + font-size: $size-medium + .file-icon + .fa + font-size: 21px + &.is-large + font-size: $size-large + .file-icon + .fa + font-size: 28px + // Modifiers + &.has-name + .file-cta + border-bottom-right-radius: 0 + border-top-right-radius: 0 + .file-name + border-bottom-left-radius: 0 + border-top-left-radius: 0 + &.is-empty + .file-cta + border-radius: $file-radius + .file-name + display: none + &.is-boxed + .file-label + flex-direction: column + .file-cta + flex-direction: column + height: auto + padding: 1em 3em + .file-name + border-width: 0 1px 1px + .file-icon + height: 1.5em + width: 1.5em + .fa + font-size: 21px + &.is-small + .file-icon .fa + font-size: 14px + &.is-medium + .file-icon .fa + font-size: 28px + &.is-large + .file-icon .fa + font-size: 35px + &.has-name + .file-cta + border-radius: $file-radius $file-radius 0 0 + .file-name + border-radius: 0 0 $file-radius $file-radius + border-width: 0 1px 1px + &.is-centered + justify-content: center + &.is-fullwidth + .file-label + width: 100% + .file-name + flex-grow: 1 + max-width: none + &.is-right + justify-content: flex-end + .file-cta + border-radius: 0 $file-radius $file-radius 0 + .file-name + border-radius: $file-radius 0 0 $file-radius + border-width: 1px 0 1px 1px + order: -1 + +.file-label + align-items: stretch + display: flex + cursor: pointer + justify-content: flex-start + overflow: hidden + position: relative + &:hover + .file-cta + background-color: bulmaDarken($file-cta-background-color, 2.5%) + color: $file-cta-hover-color + .file-name + border-color: bulmaDarken($file-name-border-color, 2.5%) + &:active + .file-cta + background-color: bulmaDarken($file-cta-background-color, 5%) + color: $file-cta-active-color + .file-name + border-color: bulmaDarken($file-name-border-color, 5%) + +.file-input + height: 100% + left: 0 + opacity: 0 + outline: none + position: absolute + top: 0 + width: 100% + +.file-cta, +.file-name + @extend %control + border-color: $file-border-color + border-radius: $file-radius + font-size: 1em + padding-left: 1em + padding-right: 1em + white-space: nowrap + +.file-cta + background-color: $file-cta-background-color + color: $file-cta-color + +.file-name + border-color: $file-name-border-color + border-style: $file-name-border-style + border-width: $file-name-border-width + display: block + max-width: $file-name-max-width + overflow: hidden + text-align: inherit + text-overflow: ellipsis + +.file-icon + align-items: center + display: flex + height: 1em + justify-content: center + +ltr-property("margin", 0.5em) + width: 1em + .fa + font-size: 14px diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/form/input-textarea.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/form/input-textarea.sass new file mode 100644 index 0000000..8d842a0 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/form/input-textarea.sass @@ -0,0 +1,66 @@ +$textarea-padding: $control-padding-horizontal !default +$textarea-max-height: 40em !default +$textarea-min-height: 8em !default + +$textarea-colors: $form-colors !default + +%input-textarea + @extend %input + box-shadow: $input-shadow + max-width: 100% + width: 100% + &[readonly] + box-shadow: none + // Colors + @each $name, $pair in $textarea-colors + $color: nth($pair, 1) + &.is-#{$name} + border-color: $color + &:focus, + &.is-focused, + &:active, + &.is-active + box-shadow: $input-focus-box-shadow-size bulmaRgba($color, 0.25) + // Sizes + &.is-small + +control-small + &.is-medium + +control-medium + &.is-large + +control-large + // Modifiers + &.is-fullwidth + display: block + width: 100% + &.is-inline + display: inline + width: auto + +.input + @extend %input-textarea + &.is-rounded + border-radius: $radius-rounded + padding-left: calc(#{$control-padding-horizontal} + 0.375em) + padding-right: calc(#{$control-padding-horizontal} + 0.375em) + &.is-static + background-color: transparent + border-color: transparent + box-shadow: none + padding-left: 0 + padding-right: 0 + +.textarea + @extend %input-textarea + display: block + max-width: 100% + min-width: 100% + padding: $textarea-padding + resize: vertical + &:not([rows]) + max-height: $textarea-max-height + min-height: $textarea-min-height + &[rows] + height: initial + // Modifiers + &.has-fixed-size + resize: none diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/form/select.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/form/select.sass new file mode 100644 index 0000000..07fe98c --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/form/select.sass @@ -0,0 +1,87 @@ +$select-colors: $form-colors !default + +.select + display: inline-block + max-width: 100% + position: relative + vertical-align: top + &:not(.is-multiple) + height: $input-height + &:not(.is-multiple):not(.is-loading) + &::after + @extend %arrow + border-color: $input-arrow + +ltr-position(1.125em) + z-index: 4 + &.is-rounded + select + border-radius: $radius-rounded + +ltr-property("padding", 1em, false) + select + @extend %input + cursor: pointer + display: block + font-size: 1em + max-width: 100% + outline: none + &::-ms-expand + display: none + &[disabled]:hover, + fieldset[disabled] &:hover + border-color: $input-disabled-border-color + &:not([multiple]) + +ltr-property("padding", 2.5em) + &[multiple] + height: auto + padding: 0 + option + padding: 0.5em 1em + // States + &:not(.is-multiple):not(.is-loading):hover + &::after + border-color: $input-hover-color + // Colors + @each $name, $pair in $select-colors + $color: nth($pair, 1) + &.is-#{$name} + &:not(:hover)::after + border-color: $color + select + border-color: $color + &:hover, + &.is-hovered + border-color: bulmaDarken($color, 5%) + &:focus, + &.is-focused, + &:active, + &.is-active + box-shadow: $input-focus-box-shadow-size bulmaRgba($color, 0.25) + // Sizes + &.is-small + +control-small + &.is-medium + +control-medium + &.is-large + +control-large + // Modifiers + &.is-disabled + &::after + border-color: $input-disabled-color + &.is-fullwidth + width: 100% + select + width: 100% + &.is-loading + &::after + @extend %loader + margin-top: 0 + position: absolute + +ltr-position(0.625em) + top: 0.625em + transform: none + &.is-small:after + font-size: $size-small + &.is-medium:after + font-size: $size-medium + &.is-large:after + font-size: $size-large diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/form/shared.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/form/shared.sass new file mode 100644 index 0000000..422d7aa --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/form/shared.sass @@ -0,0 +1,60 @@ +@import "../utilities/controls" +@import "../utilities/mixins" + +$form-colors: $colors !default + +$input-color: $text-strong !default +$input-background-color: $scheme-main !default +$input-border-color: $border !default +$input-height: $control-height !default +$input-shadow: inset 0 0.0625em 0.125em rgba($scheme-invert, 0.05) !default +$input-placeholder-color: bulmaRgba($input-color, 0.3) !default + +$input-hover-color: $text-strong !default +$input-hover-border-color: $border-hover !default + +$input-focus-color: $text-strong !default +$input-focus-border-color: $link !default +$input-focus-box-shadow-size: 0 0 0 0.125em !default +$input-focus-box-shadow-color: bulmaRgba($link, 0.25) !default + +$input-disabled-color: $text-light !default +$input-disabled-background-color: $background !default +$input-disabled-border-color: $background !default +$input-disabled-placeholder-color: bulmaRgba($input-disabled-color, 0.3) !default + +$input-arrow: $link !default + +$input-icon-color: $border !default +$input-icon-active-color: $text !default + +$input-radius: $radius !default + +=input + @extend %control + background-color: $input-background-color + border-color: $input-border-color + border-radius: $input-radius + color: $input-color + +placeholder + color: $input-placeholder-color + &:hover, + &.is-hovered + border-color: $input-hover-border-color + &:focus, + &.is-focused, + &:active, + &.is-active + border-color: $input-focus-border-color + box-shadow: $input-focus-box-shadow-size $input-focus-box-shadow-color + &[disabled], + fieldset[disabled] & + background-color: $input-disabled-background-color + border-color: $input-disabled-border-color + box-shadow: none + color: $input-disabled-color + +placeholder + color: $input-disabled-placeholder-color + +%input + +input diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/form/tools.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/form/tools.sass new file mode 100644 index 0000000..73b09b6 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/form/tools.sass @@ -0,0 +1,215 @@ +$label-color: $text-strong !default +$label-weight: $weight-bold !default + +$help-size: $size-small !default + +$label-colors: $form-colors !default + +.label + color: $label-color + display: block + font-size: $size-normal + font-weight: $label-weight + &:not(:last-child) + margin-bottom: 0.5em + // Sizes + &.is-small + font-size: $size-small + &.is-medium + font-size: $size-medium + &.is-large + font-size: $size-large + +.help + display: block + font-size: $help-size + margin-top: 0.25rem + @each $name, $pair in $label-colors + $color: nth($pair, 1) + &.is-#{$name} + color: $color + +// Containers + +.field + &:not(:last-child) + margin-bottom: 0.75rem + // Modifiers + &.has-addons + display: flex + justify-content: flex-start + .control + &:not(:last-child) + +ltr-property("margin", -1px) + &:not(:first-child):not(:last-child) + .button, + .input, + .select select + border-radius: 0 + &:first-child:not(:only-child) + .button, + .input, + .select select + +ltr + border-bottom-right-radius: 0 + border-top-right-radius: 0 + +rtl + border-bottom-left-radius: 0 + border-top-left-radius: 0 + &:last-child:not(:only-child) + .button, + .input, + .select select + +ltr + border-bottom-left-radius: 0 + border-top-left-radius: 0 + +rtl + border-bottom-right-radius: 0 + border-top-right-radius: 0 + .button, + .input, + .select select + &:not([disabled]) + &:hover, + &.is-hovered + z-index: 2 + &:focus, + &.is-focused, + &:active, + &.is-active + z-index: 3 + &:hover + z-index: 4 + &.is-expanded + flex-grow: 1 + flex-shrink: 1 + &.has-addons-centered + justify-content: center + &.has-addons-right + justify-content: flex-end + &.has-addons-fullwidth + .control + flex-grow: 1 + flex-shrink: 0 + &.is-grouped + display: flex + justify-content: flex-start + & > .control + flex-shrink: 0 + &:not(:last-child) + margin-bottom: 0 + +ltr-property("margin", 0.75rem) + &.is-expanded + flex-grow: 1 + flex-shrink: 1 + &.is-grouped-centered + justify-content: center + &.is-grouped-right + justify-content: flex-end + &.is-grouped-multiline + flex-wrap: wrap + & > .control + &:last-child, + &:not(:last-child) + margin-bottom: 0.75rem + &:last-child + margin-bottom: -0.75rem + &:not(:last-child) + margin-bottom: 0 + &.is-horizontal + +tablet + display: flex + +.field-label + .label + font-size: inherit + +mobile + margin-bottom: 0.5rem + +tablet + flex-basis: 0 + flex-grow: 1 + flex-shrink: 0 + +ltr-property("margin", 1.5rem) + text-align: right + &.is-small + font-size: $size-small + padding-top: 0.375em + &.is-normal + padding-top: 0.375em + &.is-medium + font-size: $size-medium + padding-top: 0.375em + &.is-large + font-size: $size-large + padding-top: 0.375em + +.field-body + .field .field + margin-bottom: 0 + +tablet + display: flex + flex-basis: 0 + flex-grow: 5 + flex-shrink: 1 + .field + margin-bottom: 0 + & > .field + flex-shrink: 1 + &:not(.is-narrow) + flex-grow: 1 + &:not(:last-child) + +ltr-property("margin", 0.75rem) + +.control + box-sizing: border-box + clear: both + font-size: $size-normal + position: relative + text-align: inherit + // Modifiers + &.has-icons-left, + &.has-icons-right + .input, + .select + &:focus + & ~ .icon + color: $input-icon-active-color + &.is-small ~ .icon + font-size: $size-small + &.is-medium ~ .icon + font-size: $size-medium + &.is-large ~ .icon + font-size: $size-large + .icon + color: $input-icon-color + height: $input-height + pointer-events: none + position: absolute + top: 0 + width: $input-height + z-index: 4 + &.has-icons-left + .input, + .select select + padding-left: $input-height + .icon.is-left + left: 0 + &.has-icons-right + .input, + .select select + padding-right: $input-height + .icon.is-right + right: 0 + &.is-loading + &::after + @extend %loader + position: absolute !important + +ltr-position(0.625em) + top: 0.625em + z-index: 4 + &.is-small:after + font-size: $size-small + &.is-medium:after + font-size: $size-medium + &.is-large:after + font-size: $size-large diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/grid/_all.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/grid/_all.sass new file mode 100644 index 0000000..0b5ed31 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/grid/_all.sass @@ -0,0 +1,5 @@ +/* Bulma Grid */ +@charset "utf-8" + +@import "columns" +@import "tiles" diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/grid/columns.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/grid/columns.sass new file mode 100644 index 0000000..2c6c47c --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/grid/columns.sass @@ -0,0 +1,513 @@ +@import "../utilities/mixins" + +$column-gap: 0.75rem !default + +.column + display: block + flex-basis: 0 + flex-grow: 1 + flex-shrink: 1 + padding: $column-gap + .columns.is-mobile > &.is-narrow + flex: none + width: unset + .columns.is-mobile > &.is-full + flex: none + width: 100% + .columns.is-mobile > &.is-three-quarters + flex: none + width: 75% + .columns.is-mobile > &.is-two-thirds + flex: none + width: 66.6666% + .columns.is-mobile > &.is-half + flex: none + width: 50% + .columns.is-mobile > &.is-one-third + flex: none + width: 33.3333% + .columns.is-mobile > &.is-one-quarter + flex: none + width: 25% + .columns.is-mobile > &.is-one-fifth + flex: none + width: 20% + .columns.is-mobile > &.is-two-fifths + flex: none + width: 40% + .columns.is-mobile > &.is-three-fifths + flex: none + width: 60% + .columns.is-mobile > &.is-four-fifths + flex: none + width: 80% + .columns.is-mobile > &.is-offset-three-quarters + +ltr-property("margin", 75%, false) + .columns.is-mobile > &.is-offset-two-thirds + +ltr-property("margin", 66.6666%, false) + .columns.is-mobile > &.is-offset-half + +ltr-property("margin", 50%, false) + .columns.is-mobile > &.is-offset-one-third + +ltr-property("margin", 33.3333%, false) + .columns.is-mobile > &.is-offset-one-quarter + +ltr-property("margin", 25%, false) + .columns.is-mobile > &.is-offset-one-fifth + +ltr-property("margin", 20%, false) + .columns.is-mobile > &.is-offset-two-fifths + +ltr-property("margin", 40%, false) + .columns.is-mobile > &.is-offset-three-fifths + +ltr-property("margin", 60%, false) + .columns.is-mobile > &.is-offset-four-fifths + +ltr-property("margin", 80%, false) + @for $i from 0 through 12 + .columns.is-mobile > &.is-#{$i} + flex: none + width: percentage($i / 12) + .columns.is-mobile > &.is-offset-#{$i} + +ltr-property("margin", percentage($i / 12), false) + +mobile + &.is-narrow-mobile + flex: none + width: unset + &.is-full-mobile + flex: none + width: 100% + &.is-three-quarters-mobile + flex: none + width: 75% + &.is-two-thirds-mobile + flex: none + width: 66.6666% + &.is-half-mobile + flex: none + width: 50% + &.is-one-third-mobile + flex: none + width: 33.3333% + &.is-one-quarter-mobile + flex: none + width: 25% + &.is-one-fifth-mobile + flex: none + width: 20% + &.is-two-fifths-mobile + flex: none + width: 40% + &.is-three-fifths-mobile + flex: none + width: 60% + &.is-four-fifths-mobile + flex: none + width: 80% + &.is-offset-three-quarters-mobile + +ltr-property("margin", 75%, false) + &.is-offset-two-thirds-mobile + +ltr-property("margin", 66.6666%, false) + &.is-offset-half-mobile + +ltr-property("margin", 50%, false) + &.is-offset-one-third-mobile + +ltr-property("margin", 33.3333%, false) + &.is-offset-one-quarter-mobile + +ltr-property("margin", 25%, false) + &.is-offset-one-fifth-mobile + +ltr-property("margin", 20%, false) + &.is-offset-two-fifths-mobile + +ltr-property("margin", 40%, false) + &.is-offset-three-fifths-mobile + +ltr-property("margin", 60%, false) + &.is-offset-four-fifths-mobile + +ltr-property("margin", 80%, false) + @for $i from 0 through 12 + &.is-#{$i}-mobile + flex: none + width: percentage($i / 12) + &.is-offset-#{$i}-mobile + +ltr-property("margin", percentage($i / 12), false) + +tablet + &.is-narrow, + &.is-narrow-tablet + flex: none + width: unset + &.is-full, + &.is-full-tablet + flex: none + width: 100% + &.is-three-quarters, + &.is-three-quarters-tablet + flex: none + width: 75% + &.is-two-thirds, + &.is-two-thirds-tablet + flex: none + width: 66.6666% + &.is-half, + &.is-half-tablet + flex: none + width: 50% + &.is-one-third, + &.is-one-third-tablet + flex: none + width: 33.3333% + &.is-one-quarter, + &.is-one-quarter-tablet + flex: none + width: 25% + &.is-one-fifth, + &.is-one-fifth-tablet + flex: none + width: 20% + &.is-two-fifths, + &.is-two-fifths-tablet + flex: none + width: 40% + &.is-three-fifths, + &.is-three-fifths-tablet + flex: none + width: 60% + &.is-four-fifths, + &.is-four-fifths-tablet + flex: none + width: 80% + &.is-offset-three-quarters, + &.is-offset-three-quarters-tablet + +ltr-property("margin", 75%, false) + &.is-offset-two-thirds, + &.is-offset-two-thirds-tablet + +ltr-property("margin", 66.6666%, false) + &.is-offset-half, + &.is-offset-half-tablet + +ltr-property("margin", 50%, false) + &.is-offset-one-third, + &.is-offset-one-third-tablet + +ltr-property("margin", 33.3333%, false) + &.is-offset-one-quarter, + &.is-offset-one-quarter-tablet + +ltr-property("margin", 25%, false) + &.is-offset-one-fifth, + &.is-offset-one-fifth-tablet + +ltr-property("margin", 20%, false) + &.is-offset-two-fifths, + &.is-offset-two-fifths-tablet + +ltr-property("margin", 40%, false) + &.is-offset-three-fifths, + &.is-offset-three-fifths-tablet + +ltr-property("margin", 60%, false) + &.is-offset-four-fifths, + &.is-offset-four-fifths-tablet + +ltr-property("margin", 80%, false) + @for $i from 0 through 12 + &.is-#{$i}, + &.is-#{$i}-tablet + flex: none + width: percentage($i / 12) + &.is-offset-#{$i}, + &.is-offset-#{$i}-tablet + +ltr-property("margin", percentage($i / 12), false) + +touch + &.is-narrow-touch + flex: none + width: unset + &.is-full-touch + flex: none + width: 100% + &.is-three-quarters-touch + flex: none + width: 75% + &.is-two-thirds-touch + flex: none + width: 66.6666% + &.is-half-touch + flex: none + width: 50% + &.is-one-third-touch + flex: none + width: 33.3333% + &.is-one-quarter-touch + flex: none + width: 25% + &.is-one-fifth-touch + flex: none + width: 20% + &.is-two-fifths-touch + flex: none + width: 40% + &.is-three-fifths-touch + flex: none + width: 60% + &.is-four-fifths-touch + flex: none + width: 80% + &.is-offset-three-quarters-touch + +ltr-property("margin", 75%, false) + &.is-offset-two-thirds-touch + +ltr-property("margin", 66.6666%, false) + &.is-offset-half-touch + +ltr-property("margin", 50%, false) + &.is-offset-one-third-touch + +ltr-property("margin", 33.3333%, false) + &.is-offset-one-quarter-touch + +ltr-property("margin", 25%, false) + &.is-offset-one-fifth-touch + +ltr-property("margin", 20%, false) + &.is-offset-two-fifths-touch + +ltr-property("margin", 40%, false) + &.is-offset-three-fifths-touch + +ltr-property("margin", 60%, false) + &.is-offset-four-fifths-touch + +ltr-property("margin", 80%, false) + @for $i from 0 through 12 + &.is-#{$i}-touch + flex: none + width: percentage($i / 12) + &.is-offset-#{$i}-touch + +ltr-property("margin", percentage($i / 12), false) + +desktop + &.is-narrow-desktop + flex: none + width: unset + &.is-full-desktop + flex: none + width: 100% + &.is-three-quarters-desktop + flex: none + width: 75% + &.is-two-thirds-desktop + flex: none + width: 66.6666% + &.is-half-desktop + flex: none + width: 50% + &.is-one-third-desktop + flex: none + width: 33.3333% + &.is-one-quarter-desktop + flex: none + width: 25% + &.is-one-fifth-desktop + flex: none + width: 20% + &.is-two-fifths-desktop + flex: none + width: 40% + &.is-three-fifths-desktop + flex: none + width: 60% + &.is-four-fifths-desktop + flex: none + width: 80% + &.is-offset-three-quarters-desktop + +ltr-property("margin", 75%, false) + &.is-offset-two-thirds-desktop + +ltr-property("margin", 66.6666%, false) + &.is-offset-half-desktop + +ltr-property("margin", 50%, false) + &.is-offset-one-third-desktop + +ltr-property("margin", 33.3333%, false) + &.is-offset-one-quarter-desktop + +ltr-property("margin", 25%, false) + &.is-offset-one-fifth-desktop + +ltr-property("margin", 20%, false) + &.is-offset-two-fifths-desktop + +ltr-property("margin", 40%, false) + &.is-offset-three-fifths-desktop + +ltr-property("margin", 60%, false) + &.is-offset-four-fifths-desktop + +ltr-property("margin", 80%, false) + @for $i from 0 through 12 + &.is-#{$i}-desktop + flex: none + width: percentage($i / 12) + &.is-offset-#{$i}-desktop + +ltr-property("margin", percentage($i / 12), false) + +widescreen + &.is-narrow-widescreen + flex: none + width: unset + &.is-full-widescreen + flex: none + width: 100% + &.is-three-quarters-widescreen + flex: none + width: 75% + &.is-two-thirds-widescreen + flex: none + width: 66.6666% + &.is-half-widescreen + flex: none + width: 50% + &.is-one-third-widescreen + flex: none + width: 33.3333% + &.is-one-quarter-widescreen + flex: none + width: 25% + &.is-one-fifth-widescreen + flex: none + width: 20% + &.is-two-fifths-widescreen + flex: none + width: 40% + &.is-three-fifths-widescreen + flex: none + width: 60% + &.is-four-fifths-widescreen + flex: none + width: 80% + &.is-offset-three-quarters-widescreen + +ltr-property("margin", 75%, false) + &.is-offset-two-thirds-widescreen + +ltr-property("margin", 66.6666%, false) + &.is-offset-half-widescreen + +ltr-property("margin", 50%, false) + &.is-offset-one-third-widescreen + +ltr-property("margin", 33.3333%, false) + &.is-offset-one-quarter-widescreen + +ltr-property("margin", 25%, false) + &.is-offset-one-fifth-widescreen + +ltr-property("margin", 20%, false) + &.is-offset-two-fifths-widescreen + +ltr-property("margin", 40%, false) + &.is-offset-three-fifths-widescreen + +ltr-property("margin", 60%, false) + &.is-offset-four-fifths-widescreen + +ltr-property("margin", 80%, false) + @for $i from 0 through 12 + &.is-#{$i}-widescreen + flex: none + width: percentage($i / 12) + &.is-offset-#{$i}-widescreen + +ltr-property("margin", percentage($i / 12), false) + +fullhd + &.is-narrow-fullhd + flex: none + width: unset + &.is-full-fullhd + flex: none + width: 100% + &.is-three-quarters-fullhd + flex: none + width: 75% + &.is-two-thirds-fullhd + flex: none + width: 66.6666% + &.is-half-fullhd + flex: none + width: 50% + &.is-one-third-fullhd + flex: none + width: 33.3333% + &.is-one-quarter-fullhd + flex: none + width: 25% + &.is-one-fifth-fullhd + flex: none + width: 20% + &.is-two-fifths-fullhd + flex: none + width: 40% + &.is-three-fifths-fullhd + flex: none + width: 60% + &.is-four-fifths-fullhd + flex: none + width: 80% + &.is-offset-three-quarters-fullhd + +ltr-property("margin", 75%, false) + &.is-offset-two-thirds-fullhd + +ltr-property("margin", 66.6666%, false) + &.is-offset-half-fullhd + +ltr-property("margin", 50%, false) + &.is-offset-one-third-fullhd + +ltr-property("margin", 33.3333%, false) + &.is-offset-one-quarter-fullhd + +ltr-property("margin", 25%, false) + &.is-offset-one-fifth-fullhd + +ltr-property("margin", 20%, false) + &.is-offset-two-fifths-fullhd + +ltr-property("margin", 40%, false) + &.is-offset-three-fifths-fullhd + +ltr-property("margin", 60%, false) + &.is-offset-four-fifths-fullhd + +ltr-property("margin", 80%, false) + @for $i from 0 through 12 + &.is-#{$i}-fullhd + flex: none + width: percentage($i / 12) + &.is-offset-#{$i}-fullhd + +ltr-property("margin", percentage($i / 12), false) + +.columns + +ltr-property("margin", (-$column-gap), false) + +ltr-property("margin", (-$column-gap)) + margin-top: (-$column-gap) + &:last-child + margin-bottom: (-$column-gap) + &:not(:last-child) + margin-bottom: calc(1.5rem - #{$column-gap}) + // Modifiers + &.is-centered + justify-content: center + &.is-gapless + +ltr-property("margin", 0, false) + +ltr-property("margin", 0) + margin-top: 0 + & > .column + margin: 0 + padding: 0 !important + &:not(:last-child) + margin-bottom: 1.5rem + &:last-child + margin-bottom: 0 + &.is-mobile + display: flex + &.is-multiline + flex-wrap: wrap + &.is-vcentered + align-items: center + // Responsiveness + +tablet + &:not(.is-desktop) + display: flex + +desktop + // Modifiers + &.is-desktop + display: flex + +@if $variable-columns + .columns.is-variable + --columnGap: 0.75rem + +ltr-property("margin", calc(-1 * var(--columnGap)), false) + +ltr-property("margin", calc(-1 * var(--columnGap))) + > .column + padding-left: var(--columnGap) + padding-right: var(--columnGap) + @for $i from 0 through 8 + &.is-#{$i} + --columnGap: #{$i * 0.25rem} + +mobile + &.is-#{$i}-mobile + --columnGap: #{$i * 0.25rem} + +tablet + &.is-#{$i}-tablet + --columnGap: #{$i * 0.25rem} + +tablet-only + &.is-#{$i}-tablet-only + --columnGap: #{$i * 0.25rem} + +touch + &.is-#{$i}-touch + --columnGap: #{$i * 0.25rem} + +desktop + &.is-#{$i}-desktop + --columnGap: #{$i * 0.25rem} + +desktop-only + &.is-#{$i}-desktop-only + --columnGap: #{$i * 0.25rem} + +widescreen + &.is-#{$i}-widescreen + --columnGap: #{$i * 0.25rem} + +widescreen-only + &.is-#{$i}-widescreen-only + --columnGap: #{$i * 0.25rem} + +fullhd + &.is-#{$i}-fullhd + --columnGap: #{$i * 0.25rem} diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/grid/tiles.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/grid/tiles.sass new file mode 100644 index 0000000..ebd136f --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/grid/tiles.sass @@ -0,0 +1,36 @@ +@import "../utilities/mixins" + +$tile-spacing: 0.75rem !default + +.tile + align-items: stretch + display: block + flex-basis: 0 + flex-grow: 1 + flex-shrink: 1 + min-height: min-content + // Modifiers + &.is-ancestor + margin-left: $tile-spacing * -1 + margin-right: $tile-spacing * -1 + margin-top: $tile-spacing * -1 + &:last-child + margin-bottom: $tile-spacing * -1 + &:not(:last-child) + margin-bottom: $tile-spacing + &.is-child + margin: 0 !important + &.is-parent + padding: $tile-spacing + &.is-vertical + flex-direction: column + & > .tile.is-child:not(:last-child) + margin-bottom: 1.5rem !important + // Responsiveness + +tablet + &:not(.is-child) + display: flex + @for $i from 1 through 12 + &.is-#{$i} + flex: none + width: ($i / 12) * 100% diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/helpers/_all.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/helpers/_all.sass new file mode 100644 index 0000000..d673da6 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/helpers/_all.sass @@ -0,0 +1,12 @@ +/* Bulma Helpers */ +@charset "utf-8" + +@import "color" +@import "flexbox" +@import "float" +@import "other" +@import "overflow" +@import "position" +@import "spacing" +@import "typography" +@import "visibility" diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/helpers/color.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/helpers/color.sass new file mode 100644 index 0000000..b7a8a50 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/helpers/color.sass @@ -0,0 +1,39 @@ +@import "../utilities/derived-variables" + +@each $name, $pair in $colors + $color: nth($pair, 1) + .has-text-#{$name} + color: $color !important + a.has-text-#{$name} + &:hover, + &:focus + color: bulmaDarken($color, 10%) !important + .has-background-#{$name} + background-color: $color !important + @if length($pair) >= 4 + $color-light: nth($pair, 3) + $color-dark: nth($pair, 4) + // Light + .has-text-#{$name}-light + color: $color-light !important + a.has-text-#{$name}-light + &:hover, + &:focus + color: bulmaDarken($color-light, 10%) !important + .has-background-#{$name}-light + background-color: $color-light !important + // Dark + .has-text-#{$name}-dark + color: $color-dark !important + a.has-text-#{$name}-dark + &:hover, + &:focus + color: bulmaLighten($color-dark, 10%) !important + .has-background-#{$name}-dark + background-color: $color-dark !important + +@each $name, $shade in $shades + .has-text-#{$name} + color: $shade !important + .has-background-#{$name} + background-color: $shade !important diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/helpers/flexbox.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/helpers/flexbox.sass new file mode 100644 index 0000000..2538a2d --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/helpers/flexbox.sass @@ -0,0 +1,35 @@ +$flex-direction-values: row, row-reverse, column, column-reverse +@each $value in $flex-direction-values + .is-flex-direction-#{$value} + flex-direction: $value !important + +$flex-wrap-values: nowrap, wrap, wrap-reverse +@each $value in $flex-wrap-values + .is-flex-wrap-#{$value} + flex-wrap: $value !important + +$justify-content-values: flex-start, flex-end, center, space-between, space-around, space-evenly, start, end, left, right +@each $value in $justify-content-values + .is-justify-content-#{$value} + justify-content: $value !important + +$align-content-values: flex-start, flex-end, center, space-between, space-around, space-evenly, stretch, start, end, baseline +@each $value in $align-content-values + .is-align-content-#{$value} + align-content: $value !important + +$align-items-values: stretch, flex-start, flex-end, center, baseline, start, end, self-start, self-end +@each $value in $align-items-values + .is-align-items-#{$value} + align-items: $value !important + +$align-self-values: auto, flex-start, flex-end, center, baseline, stretch +@each $value in $align-self-values + .is-align-self-#{$value} + align-self: $value !important + +$flex-operators: grow, shrink +@each $operator in $flex-operators + @for $i from 0 through 5 + .is-flex-#{$operator}-#{$i} + flex-#{$operator}: $i !important diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/helpers/float.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/helpers/float.sass new file mode 100644 index 0000000..f62f24e --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/helpers/float.sass @@ -0,0 +1,10 @@ +@import "../utilities/mixins" + +.is-clearfix + +clearfix + +.is-pulled-left + float: left !important + +.is-pulled-right + float: right !important diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/helpers/other.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/helpers/other.sass new file mode 100644 index 0000000..6e2e63c --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/helpers/other.sass @@ -0,0 +1,14 @@ +@import "../utilities/mixins" + +.is-radiusless + border-radius: 0 !important + +.is-shadowless + box-shadow: none !important + +.is-clickable + cursor: pointer !important + pointer-events: all !important + +.is-unselectable + @extend %unselectable diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/helpers/overflow.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/helpers/overflow.sass new file mode 100644 index 0000000..ef1e3ef --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/helpers/overflow.sass @@ -0,0 +1,2 @@ +.is-clipped + overflow: hidden !important diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/helpers/position.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/helpers/position.sass new file mode 100644 index 0000000..4b8fda4 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/helpers/position.sass @@ -0,0 +1,7 @@ +@import "../utilities/mixins" + +.is-overlay + @extend %overlay + +.is-relative + position: relative !important diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/helpers/spacing.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/helpers/spacing.sass new file mode 100644 index 0000000..b9bb19b --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/helpers/spacing.sass @@ -0,0 +1,31 @@ +.is-marginless + margin: 0 !important + +.is-paddingless + padding: 0 !important + +$spacing-shortcuts: ("margin": "m", "padding": "p") !default +$spacing-directions: ("top": "t", "right": "r", "bottom": "b", "left": "l") !default +$spacing-horizontal: "x" !default +$spacing-vertical: "y" !default +$spacing-values: ("0": 0, "1": 0.25rem, "2": 0.5rem, "3": 0.75rem, "4": 1rem, "5": 1.5rem, "6": 3rem) !default + +@each $property, $shortcut in $spacing-shortcuts + @each $name, $value in $spacing-values + // All directions + .#{$shortcut}-#{$name} + #{$property}: $value !important + // Cardinal directions + @each $direction, $suffix in $spacing-directions + .#{$shortcut}#{$suffix}-#{$name} + #{$property}-#{$direction}: $value !important + // Horizontal axis + @if $spacing-horizontal != null + .#{$shortcut}#{$spacing-horizontal}-#{$name} + #{$property}-left: $value !important + #{$property}-right: $value !important + // Vertical axis + @if $spacing-vertical != null + .#{$shortcut}#{$spacing-vertical}-#{$name} + #{$property}-top: $value !important + #{$property}-bottom: $value !important diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/helpers/typography.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/helpers/typography.sass new file mode 100644 index 0000000..5243315 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/helpers/typography.sass @@ -0,0 +1,100 @@ +@import "../utilities/mixins" + +=typography-size($target:'') + @each $size in $sizes + $i: index($sizes, $size) + .is-size-#{$i}#{if($target == '', '', '-' + $target)} + font-size: $size !important + ++typography-size() + ++mobile + +typography-size('mobile') + ++tablet + +typography-size('tablet') + ++touch + +typography-size('touch') + ++desktop + +typography-size('desktop') + ++widescreen + +typography-size('widescreen') + ++fullhd + +typography-size('fullhd') + +$alignments: ('centered': 'center', 'justified': 'justify', 'left': 'left', 'right': 'right') + +@each $alignment, $text-align in $alignments + .has-text-#{$alignment} + text-align: #{$text-align} !important + +@each $alignment, $text-align in $alignments + +mobile + .has-text-#{$alignment}-mobile + text-align: #{$text-align} !important + +tablet + .has-text-#{$alignment}-tablet + text-align: #{$text-align} !important + +tablet-only + .has-text-#{$alignment}-tablet-only + text-align: #{$text-align} !important + +touch + .has-text-#{$alignment}-touch + text-align: #{$text-align} !important + +desktop + .has-text-#{$alignment}-desktop + text-align: #{$text-align} !important + +desktop-only + .has-text-#{$alignment}-desktop-only + text-align: #{$text-align} !important + +widescreen + .has-text-#{$alignment}-widescreen + text-align: #{$text-align} !important + +widescreen-only + .has-text-#{$alignment}-widescreen-only + text-align: #{$text-align} !important + +fullhd + .has-text-#{$alignment}-fullhd + text-align: #{$text-align} !important + +.is-capitalized + text-transform: capitalize !important + +.is-lowercase + text-transform: lowercase !important + +.is-uppercase + text-transform: uppercase !important + +.is-italic + font-style: italic !important + +.has-text-weight-light + font-weight: $weight-light !important +.has-text-weight-normal + font-weight: $weight-normal !important +.has-text-weight-medium + font-weight: $weight-medium !important +.has-text-weight-semibold + font-weight: $weight-semibold !important +.has-text-weight-bold + font-weight: $weight-bold !important + +.is-family-primary + font-family: $family-primary !important + +.is-family-secondary + font-family: $family-secondary !important + +.is-family-sans-serif + font-family: $family-sans-serif !important + +.is-family-monospace + font-family: $family-monospace !important + +.is-family-code + font-family: $family-code !important diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/helpers/visibility.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/helpers/visibility.sass new file mode 100644 index 0000000..a1bb0d5 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/helpers/visibility.sass @@ -0,0 +1,122 @@ +@import "../utilities/mixins" + +$displays: 'block' 'flex' 'inline' 'inline-block' 'inline-flex' + +@each $display in $displays + .is-#{$display} + display: #{$display} !important + +mobile + .is-#{$display}-mobile + display: #{$display} !important + +tablet + .is-#{$display}-tablet + display: #{$display} !important + +tablet-only + .is-#{$display}-tablet-only + display: #{$display} !important + +touch + .is-#{$display}-touch + display: #{$display} !important + +desktop + .is-#{$display}-desktop + display: #{$display} !important + +desktop-only + .is-#{$display}-desktop-only + display: #{$display} !important + +widescreen + .is-#{$display}-widescreen + display: #{$display} !important + +widescreen-only + .is-#{$display}-widescreen-only + display: #{$display} !important + +fullhd + .is-#{$display}-fullhd + display: #{$display} !important + +.is-hidden + display: none !important + +.is-sr-only + border: none !important + clip: rect(0, 0, 0, 0) !important + height: 0.01em !important + overflow: hidden !important + padding: 0 !important + position: absolute !important + white-space: nowrap !important + width: 0.01em !important + ++mobile + .is-hidden-mobile + display: none !important + ++tablet + .is-hidden-tablet + display: none !important + ++tablet-only + .is-hidden-tablet-only + display: none !important + ++touch + .is-hidden-touch + display: none !important + ++desktop + .is-hidden-desktop + display: none !important + ++desktop-only + .is-hidden-desktop-only + display: none !important + ++widescreen + .is-hidden-widescreen + display: none !important + ++widescreen-only + .is-hidden-widescreen-only + display: none !important + ++fullhd + .is-hidden-fullhd + display: none !important + +.is-invisible + visibility: hidden !important + ++mobile + .is-invisible-mobile + visibility: hidden !important + ++tablet + .is-invisible-tablet + visibility: hidden !important + ++tablet-only + .is-invisible-tablet-only + visibility: hidden !important + ++touch + .is-invisible-touch + visibility: hidden !important + ++desktop + .is-invisible-desktop + visibility: hidden !important + ++desktop-only + .is-invisible-desktop-only + visibility: hidden !important + ++widescreen + .is-invisible-widescreen + visibility: hidden !important + ++widescreen-only + .is-invisible-widescreen-only + visibility: hidden !important + ++fullhd + .is-invisible-fullhd + visibility: hidden !important diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/layout/_all.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/layout/_all.sass new file mode 100644 index 0000000..4d1df5b --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/layout/_all.sass @@ -0,0 +1,6 @@ +/* Bulma Layout */ +@charset "utf-8" + +@import "hero" +@import "section" +@import "footer" diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/layout/footer.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/layout/footer.sass new file mode 100644 index 0000000..4e9187e --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/layout/footer.sass @@ -0,0 +1,11 @@ +@import "../utilities/derived-variables" + +$footer-background-color: $scheme-main-bis !default +$footer-color: false !default +$footer-padding: 3rem 1.5rem 6rem !default + +.footer + background-color: $footer-background-color + padding: $footer-padding + @if $footer-color + color: $footer-color diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/layout/hero.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/layout/hero.sass new file mode 100644 index 0000000..491e976 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/layout/hero.sass @@ -0,0 +1,149 @@ +@import "../utilities/mixins" + +$hero-body-padding: 3rem 1.5rem !default +$hero-body-padding-small: 1.5rem !default +$hero-body-padding-medium: 9rem 1.5rem !default +$hero-body-padding-large: 18rem 1.5rem !default + +$hero-colors: $colors !default + +// Main container +.hero + align-items: stretch + display: flex + flex-direction: column + justify-content: space-between + .navbar + background: none + .tabs + ul + border-bottom: none + // Colors + @each $name, $pair in $hero-colors + $color: nth($pair, 1) + $color-invert: nth($pair, 2) + &.is-#{$name} + background-color: $color + color: $color-invert + a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + strong + color: inherit + .title + color: $color-invert + .subtitle + color: bulmaRgba($color-invert, 0.9) + a:not(.button), + strong + color: $color-invert + .navbar-menu + +touch + background-color: $color + .navbar-item, + .navbar-link + color: bulmaRgba($color-invert, 0.7) + a.navbar-item, + .navbar-link + &:hover, + &.is-active + background-color: bulmaDarken($color, 5%) + color: $color-invert + .tabs + a + color: $color-invert + opacity: 0.9 + &:hover + opacity: 1 + li + &.is-active a + opacity: 1 + &.is-boxed, + &.is-toggle + a + color: $color-invert + &:hover + background-color: bulmaRgba($scheme-invert, 0.1) + li.is-active a + &, + &:hover + background-color: $color-invert + border-color: $color-invert + color: $color + // Modifiers + @if type-of($color) == 'color' + &.is-bold + $gradient-top-left: darken(saturate(adjust-hue($color, -10deg), 10%), 10%) + $gradient-bottom-right: lighten(saturate(adjust-hue($color, 10deg), 5%), 5%) + background-image: linear-gradient(141deg, $gradient-top-left 0%, $color 71%, $gradient-bottom-right 100%) + +mobile + .navbar-menu + background-image: linear-gradient(141deg, $gradient-top-left 0%, $color 71%, $gradient-bottom-right 100%) + // Sizes + &.is-small + .hero-body + padding: $hero-body-padding-small + &.is-medium + +tablet + .hero-body + padding: $hero-body-padding-medium + &.is-large + +tablet + .hero-body + padding: $hero-body-padding-large + &.is-halfheight, + &.is-fullheight, + &.is-fullheight-with-navbar + .hero-body + align-items: center + display: flex + & > .container + flex-grow: 1 + flex-shrink: 1 + &.is-halfheight + min-height: 50vh + &.is-fullheight + min-height: 100vh + +// Components + +.hero-video + @extend %overlay + overflow: hidden + video + left: 50% + min-height: 100% + min-width: 100% + position: absolute + top: 50% + transform: translate3d(-50%, -50%, 0) + // Modifiers + &.is-transparent + opacity: 0.3 + // Responsiveness + +mobile + display: none + +.hero-buttons + margin-top: 1.5rem + // Responsiveness + +mobile + .button + display: flex + &:not(:last-child) + margin-bottom: 0.75rem + +tablet + display: flex + justify-content: center + .button:not(:last-child) + +ltr-property("margin", 1.5rem) + +// Containers + +.hero-head, +.hero-foot + flex-grow: 0 + flex-shrink: 0 + +.hero-body + flex-grow: 1 + flex-shrink: 0 + padding: $hero-body-padding diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/layout/section.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/layout/section.sass new file mode 100644 index 0000000..25e7038 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/layout/section.sass @@ -0,0 +1,15 @@ +@import "../utilities/mixins" + +$section-padding: 3rem 1.5rem !default +$section-padding-medium: 9rem 1.5rem !default +$section-padding-large: 18rem 1.5rem !default + +.section + padding: $section-padding + // Responsiveness + +desktop + // Sizes + &.is-medium + padding: $section-padding-medium + &.is-large + padding: $section-padding-large diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/utilities/.DS_Store b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/utilities/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/utilities/.DS_Store differ diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/utilities/_all.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/utilities/_all.sass new file mode 100644 index 0000000..51cf348 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/utilities/_all.sass @@ -0,0 +1,9 @@ +/* Bulma Utilities */ +@charset "utf-8" + +@import "initial-variables" +@import "functions" +@import "derived-variables" +@import "mixins" +@import "controls" +@import "extends" diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/utilities/animations.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/utilities/animations.sass new file mode 100644 index 0000000..1872e08 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/utilities/animations.sass @@ -0,0 +1 @@ +@warn "The animations.sass file has MOVED. It is now in the /base folder. Please import sass/base/animations instead." diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/utilities/controls.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/utilities/controls.sass new file mode 100644 index 0000000..4c738c7 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/utilities/controls.sass @@ -0,0 +1,49 @@ +@import "derived-variables" + +$control-radius: $radius !default +$control-radius-small: $radius-small !default + +$control-border-width: 1px !default + +$control-height: 2.5em !default +$control-line-height: 1.5 !default + +$control-padding-vertical: calc(0.5em - #{$control-border-width}) !default +$control-padding-horizontal: calc(0.75em - #{$control-border-width}) !default + +=control + -moz-appearance: none + -webkit-appearance: none + align-items: center + border: $control-border-width solid transparent + border-radius: $control-radius + box-shadow: none + display: inline-flex + font-size: $size-normal + height: $control-height + justify-content: flex-start + line-height: $control-line-height + padding-bottom: $control-padding-vertical + padding-left: $control-padding-horizontal + padding-right: $control-padding-horizontal + padding-top: $control-padding-vertical + position: relative + vertical-align: top + // States + &:focus, + &.is-focused, + &:active, + &.is-active + outline: none + &[disabled], + fieldset[disabled] & + cursor: not-allowed + +// The controls sizes use mixins so they can be used at different breakpoints +=control-small + border-radius: $control-radius-small + font-size: $size-small +=control-medium + font-size: $size-medium +=control-large + font-size: $size-large diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/utilities/derived-variables.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/utilities/derived-variables.sass new file mode 100644 index 0000000..2b9e7e0 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/utilities/derived-variables.sass @@ -0,0 +1,110 @@ +@import "initial-variables" +@import "functions" + +$primary: $turquoise !default + +$info: $cyan !default +$success: $green !default +$warning: $yellow !default +$danger: $red !default + +$light: $white-ter !default +$dark: $grey-darker !default + +// Invert colors + +$orange-invert: findColorInvert($orange) !default +$yellow-invert: findColorInvert($yellow) !default +$green-invert: findColorInvert($green) !default +$turquoise-invert: findColorInvert($turquoise) !default +$cyan-invert: findColorInvert($cyan) !default +$blue-invert: findColorInvert($blue) !default +$purple-invert: findColorInvert($purple) !default +$red-invert: findColorInvert($red) !default + +$primary-invert: findColorInvert($primary) !default +$primary-light: findLightColor($primary) !default +$primary-dark: findDarkColor($primary) !default +$info-invert: findColorInvert($info) !default +$info-light: findLightColor($info) !default +$info-dark: findDarkColor($info) !default +$success-invert: findColorInvert($success) !default +$success-light: findLightColor($success) !default +$success-dark: findDarkColor($success) !default +$warning-invert: findColorInvert($warning) !default +$warning-light: findLightColor($warning) !default +$warning-dark: findDarkColor($warning) !default +$danger-invert: findColorInvert($danger) !default +$danger-light: findLightColor($danger) !default +$danger-dark: findDarkColor($danger) !default +$light-invert: findColorInvert($light) !default +$dark-invert: findColorInvert($dark) !default + +// General colors + +$scheme-main: $white !default +$scheme-main-bis: $white-bis !default +$scheme-main-ter: $white-ter !default +$scheme-invert: $black !default +$scheme-invert-bis: $black-bis !default +$scheme-invert-ter: $black-ter !default + +$background: $white-ter !default + +$border: $grey-lighter !default +$border-hover: $grey-light !default +$border-light: $grey-lightest !default +$border-light-hover: $grey-light !default + +// Text colors + +$text: $grey-dark !default +$text-invert: findColorInvert($text) !default +$text-light: $grey !default +$text-strong: $grey-darker !default + +// Code colors + +$code: darken($red, 15%) !default +$code-background: $background !default + +$pre: $text !default +$pre-background: $background !default + +// Link colors + +$link: $blue !default +$link-invert: findColorInvert($link) !default +$link-light: findLightColor($link) !default +$link-dark: findDarkColor($link) !default +$link-visited: $purple !default + +$link-hover: $grey-darker !default +$link-hover-border: $grey-light !default + +$link-focus: $grey-darker !default +$link-focus-border: $blue !default + +$link-active: $grey-darker !default +$link-active-border: $grey-dark !default + +// Typography + +$family-primary: $family-sans-serif !default +$family-secondary: $family-sans-serif !default +$family-code: $family-monospace !default + +$size-small: $size-7 !default +$size-normal: $size-6 !default +$size-medium: $size-5 !default +$size-large: $size-4 !default + +// Lists and maps +$custom-colors: null !default +$custom-shades: null !default + +$colors: mergeColorMaps(("white": ($white, $black), "black": ($black, $white), "light": ($light, $light-invert), "dark": ($dark, $dark-invert), "primary": ($primary, $primary-invert, $primary-light, $primary-dark), "link": ($link, $link-invert, $link-light, $link-dark), "info": ($info, $info-invert, $info-light, $info-dark), "success": ($success, $success-invert, $success-light, $success-dark), "warning": ($warning, $warning-invert, $warning-light, $warning-dark), "danger": ($danger, $danger-invert, $danger-light, $danger-dark)), $custom-colors) !default + +$shades: mergeColorMaps(("black-bis": $black-bis, "black-ter": $black-ter, "grey-darker": $grey-darker, "grey-dark": $grey-dark, "grey": $grey, "grey-light": $grey-light, "grey-lighter": $grey-lighter, "white-ter": $white-ter, "white-bis": $white-bis), $custom-shades) !default + +$sizes: $size-1 $size-2 $size-3 $size-4 $size-5 $size-6 $size-7 !default diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/utilities/extends.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/utilities/extends.sass new file mode 100644 index 0000000..e7b69fe --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/utilities/extends.sass @@ -0,0 +1,22 @@ +@import "mixins" + +%control + +control + +%unselectable + +unselectable + +%arrow + +arrow + +%block + +block + +%delete + +delete + +%loader + +loader + +%overlay + +overlay diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/utilities/functions.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/utilities/functions.sass new file mode 100644 index 0000000..270121f --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/utilities/functions.sass @@ -0,0 +1,115 @@ +@function mergeColorMaps($bulma-colors, $custom-colors) + // We return at least Bulma's hard-coded colors + $merged-colors: $bulma-colors + + // We want a map as input + @if type-of($custom-colors) == 'map' + @each $name, $components in $custom-colors + // The color name should be a string + // and the components either a single color + // or a colors list with at least one element + @if type-of($name) == 'string' and (type-of($components) == 'list' or type-of($components) == 'color') and length($components) >= 1 + $color-base: null + $color-invert: null + $color-light: null + $color-dark: null + $value: null + + // The param can either be a single color + // or a list of 2 colors + @if type-of($components) == 'color' + $color-base: $components + $color-invert: findColorInvert($color-base) + $color-light: findLightColor($color-base) + $color-dark: findDarkColor($color-base) + @else if type-of($components) == 'list' + $color-base: nth($components, 1) + // If Invert, Light and Dark are provided + @if length($components) > 3 + $color-invert: nth($components, 2) + $color-light: nth($components, 3) + $color-dark: nth($components, 4) + // If only Invert and Light are provided + @else if length($components) > 2 + $color-invert: nth($components, 2) + $color-light: nth($components, 3) + $color-dark: findDarkColor($color-base) + // If only Invert is provided + @else + $color-invert: nth($components, 2) + $color-light: findLightColor($color-base) + $color-dark: findDarkColor($color-base) + + $value: ($color-base, $color-invert, $color-light, $color-dark) + + // We only want to merge the map if the color base is an actual color + @if type-of($color-base) == 'color' + // We merge this colors elements as map with Bulma's colors map + // (we can override them this way, no multiple definition for the same name) + // $merged-colors: map_merge($merged-colors, ($name: ($color-base, $color-invert, $color-light, $color-dark))) + $merged-colors: map_merge($merged-colors, ($name: $value)) + + @return $merged-colors + +@function powerNumber($number, $exp) + $value: 1 + @if $exp > 0 + @for $i from 1 through $exp + $value: $value * $number + @else if $exp < 0 + @for $i from 1 through -$exp + $value: $value / $number + @return $value + +@function colorLuminance($color) + @if type-of($color) != 'color' + @return 0.55 + $color-rgb: ('red': red($color),'green': green($color),'blue': blue($color)) + @each $name, $value in $color-rgb + $adjusted: 0 + $value: $value / 255 + @if $value < 0.03928 + $value: $value / 12.92 + @else + $value: ($value + .055) / 1.055 + $value: powerNumber($value, 2) + $color-rgb: map-merge($color-rgb, ($name: $value)) + @return (map-get($color-rgb, 'red') * .2126) + (map-get($color-rgb, 'green') * .7152) + (map-get($color-rgb, 'blue') * .0722) + +@function findColorInvert($color) + @if (colorLuminance($color) > 0.55) + @return rgba(#000, 0.7) + @else + @return #fff + +@function findLightColor($color) + @if type-of($color) == 'color' + $l: 96% + @if lightness($color) > 96% + $l: lightness($color) + @return change-color($color, $lightness: $l) + @return $background + +@function findDarkColor($color) + @if type-of($color) == 'color' + $base-l: 29% + $luminance: colorLuminance($color) + $luminance-delta: (0.53 - $luminance) + $target-l: round($base-l + ($luminance-delta * 53)) + @return change-color($color, $lightness: max($base-l, $target-l)) + @return $text-strong + +@function bulmaRgba($color, $alpha) + @if type-of($color) != 'color' + @return $color + @return rgba($color, $alpha) + +@function bulmaDarken($color, $amount) + @if type-of($color) != 'color' + @return $color + @return darken($color, $amount) + +@function bulmaLighten($color, $amount) + @if type-of($color) != 'color' + @return $color + @return lighten($color, $amount) diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/utilities/initial-variables.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/utilities/initial-variables.sass new file mode 100644 index 0000000..a1d688b --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/utilities/initial-variables.sass @@ -0,0 +1,78 @@ +// Colors + +$black: hsl(0, 0%, 4%) !default +$black-bis: hsl(0, 0%, 7%) !default +$black-ter: hsl(0, 0%, 14%) !default + +$grey-darker: hsl(0, 0%, 21%) !default +$grey-dark: hsl(0, 0%, 29%) !default +$grey: hsl(0, 0%, 48%) !default +$grey-light: hsl(0, 0%, 71%) !default +$grey-lighter: hsl(0, 0%, 86%) !default +$grey-lightest: hsl(0, 0%, 93%) !default + +$white-ter: hsl(0, 0%, 96%) !default +$white-bis: hsl(0, 0%, 98%) !default +$white: hsl(0, 0%, 100%) !default + +$orange: hsl(14, 100%, 53%) !default +$yellow: hsl(48, 100%, 67%) !default +$green: hsl(141, 53%, 53%) !default +$turquoise: hsl(171, 100%, 41%) !default +$cyan: hsl(204, 71%, 53%) !default +$blue: hsl(217, 71%, 53%) !default +$purple: hsl(271, 100%, 71%) !default +$red: hsl(348, 86%, 61%) !default + +// Typography + +$family-sans-serif: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif !default +$family-monospace: monospace !default +$render-mode: optimizeLegibility !default + +$size-1: 3rem !default +$size-2: 2.5rem !default +$size-3: 2rem !default +$size-4: 1.5rem !default +$size-5: 1.25rem !default +$size-6: 1rem !default +$size-7: 0.75rem !default + +$weight-light: 300 !default +$weight-normal: 400 !default +$weight-medium: 500 !default +$weight-semibold: 600 !default +$weight-bold: 700 !default + +// Spacing + +$block-spacing: 1.5rem !default + +// Responsiveness + +// The container horizontal gap, which acts as the offset for breakpoints +$gap: 32px !default +// 960, 1152, and 1344 have been chosen because they are divisible by both 12 and 16 +$tablet: 769px !default +// 960px container + 4rem +$desktop: 960px + (2 * $gap) !default +// 1152px container + 4rem +$widescreen: 1152px + (2 * $gap) !default +$widescreen-enabled: true !default +// 1344px container + 4rem +$fullhd: 1344px + (2 * $gap) !default +$fullhd-enabled: true !default + +// Miscellaneous + +$easing: ease-out !default +$radius-small: 2px !default +$radius: 4px !default +$radius-large: 6px !default +$radius-rounded: 290486px !default +$speed: 86ms !default + +// Flags + +$variable-columns: true !default +$rtl: false !default diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/utilities/mixins.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/utilities/mixins.sass new file mode 100644 index 0000000..7b0057f --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/bulma/sass/utilities/mixins.sass @@ -0,0 +1,268 @@ +@import "derived-variables" + +=clearfix + &::after + clear: both + content: " " + display: table + +=center($width, $height: 0) + position: absolute + @if $height != 0 + left: calc(50% - (#{$width} / 2)) + top: calc(50% - (#{$height} / 2)) + @else + left: calc(50% - (#{$width} / 2)) + top: calc(50% - (#{$width} / 2)) + +=fa($size, $dimensions) + display: inline-block + font-size: $size + height: $dimensions + line-height: $dimensions + text-align: center + vertical-align: top + width: $dimensions + +=hamburger($dimensions) + cursor: pointer + display: block + height: $dimensions + position: relative + width: $dimensions + span + background-color: currentColor + display: block + height: 1px + left: calc(50% - 8px) + position: absolute + transform-origin: center + transition-duration: $speed + transition-property: background-color, opacity, transform + transition-timing-function: $easing + width: 16px + &:nth-child(1) + top: calc(50% - 6px) + &:nth-child(2) + top: calc(50% - 1px) + &:nth-child(3) + top: calc(50% + 4px) + &:hover + background-color: bulmaRgba(black, 0.05) + // Modifers + &.is-active + span + &:nth-child(1) + transform: translateY(5px) rotate(45deg) + &:nth-child(2) + opacity: 0 + &:nth-child(3) + transform: translateY(-5px) rotate(-45deg) + +=overflow-touch + -webkit-overflow-scrolling: touch + +=placeholder + $placeholders: ':-moz' ':-webkit-input' '-moz' '-ms-input' + @each $placeholder in $placeholders + &:#{$placeholder}-placeholder + @content + +// Responsiveness + +=from($device) + @media screen and (min-width: $device) + @content + +=until($device) + @media screen and (max-width: $device - 1px) + @content + +=mobile + @media screen and (max-width: $tablet - 1px) + @content + +=tablet + @media screen and (min-width: $tablet), print + @content + +=tablet-only + @media screen and (min-width: $tablet) and (max-width: $desktop - 1px) + @content + +=touch + @media screen and (max-width: $desktop - 1px) + @content + +=desktop + @media screen and (min-width: $desktop) + @content + +=desktop-only + @if $widescreen-enabled + @media screen and (min-width: $desktop) and (max-width: $widescreen - 1px) + @content + +=until-widescreen + @if $widescreen-enabled + @media screen and (max-width: $widescreen - 1px) + @content + +=widescreen + @if $widescreen-enabled + @media screen and (min-width: $widescreen) + @content + +=widescreen-only + @if $widescreen-enabled and $fullhd-enabled + @media screen and (min-width: $widescreen) and (max-width: $fullhd - 1px) + @content + +=until-fullhd + @if $fullhd-enabled + @media screen and (max-width: $fullhd - 1px) + @content + +=fullhd + @if $fullhd-enabled + @media screen and (min-width: $fullhd) + @content + +=ltr + @if not $rtl + @content + +=rtl + @if $rtl + @content + +=ltr-property($property, $spacing, $right: true) + $normal: if($right, "right", "left") + $opposite: if($right, "left", "right") + @if $rtl + #{$property}-#{$opposite}: $spacing + @else + #{$property}-#{$normal}: $spacing + +=ltr-position($spacing, $right: true) + $normal: if($right, "right", "left") + $opposite: if($right, "left", "right") + @if $rtl + #{$opposite}: $spacing + @else + #{$normal}: $spacing + +// Placeholders + +=unselectable + -webkit-touch-callout: none + -webkit-user-select: none + -moz-user-select: none + -ms-user-select: none + user-select: none + +=arrow($color: transparent) + border: 3px solid $color + border-radius: 2px + border-right: 0 + border-top: 0 + content: " " + display: block + height: 0.625em + margin-top: -0.4375em + pointer-events: none + position: absolute + top: 50% + transform: rotate(-45deg) + transform-origin: center + width: 0.625em + +=block($spacing: $block-spacing) + &:not(:last-child) + margin-bottom: $spacing + +=delete + +unselectable + -moz-appearance: none + -webkit-appearance: none + background-color: bulmaRgba($scheme-invert, 0.2) + border: none + border-radius: $radius-rounded + cursor: pointer + pointer-events: auto + display: inline-block + flex-grow: 0 + flex-shrink: 0 + font-size: 0 + height: 20px + max-height: 20px + max-width: 20px + min-height: 20px + min-width: 20px + outline: none + position: relative + vertical-align: top + width: 20px + &::before, + &::after + background-color: $scheme-main + content: "" + display: block + left: 50% + position: absolute + top: 50% + transform: translateX(-50%) translateY(-50%) rotate(45deg) + transform-origin: center center + &::before + height: 2px + width: 50% + &::after + height: 50% + width: 2px + &:hover, + &:focus + background-color: bulmaRgba($scheme-invert, 0.3) + &:active + background-color: bulmaRgba($scheme-invert, 0.4) + // Sizes + &.is-small + height: 16px + max-height: 16px + max-width: 16px + min-height: 16px + min-width: 16px + width: 16px + &.is-medium + height: 24px + max-height: 24px + max-width: 24px + min-height: 24px + min-width: 24px + width: 24px + &.is-large + height: 32px + max-height: 32px + max-width: 32px + min-height: 32px + min-width: 32px + width: 32px + +=loader + animation: spinAround 500ms infinite linear + border: 2px solid $grey-lighter + border-radius: $radius-rounded + border-right-color: transparent + border-top-color: transparent + content: "" + display: block + height: 1em + position: relative + width: 1em + +=overlay($offset: 0) + bottom: $offset + left: $offset + position: absolute + right: $offset + top: $offset + diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/material-content.scss b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/material-content.scss new file mode 100644 index 0000000..bb16a1b --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/material-content.scss @@ -0,0 +1,479 @@ +//// +/// Copyright (c) 2016-2021 Martin Donath +/// +/// Permission is hereby granted, free of charge, to any person obtaining a +/// copy of this software and associated documentation files (the "Software"), +/// to deal in the Software without restriction, including without limitation +/// the rights to use, copy, modify, merge, publish, distribute, sublicense, +/// and/or sell copies of the Software, and to permit persons to whom the +/// Software is furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +/// DEALINGS +//// + +/// Thank you to Martin Donath. This file is adapted from +/// https://github.com/squidfunk/mkdocs-material/blob/31aab182b756913000ffade0e2219c75cf54b67a/src/assets/stylesheets/main/_typeset.scss + + + +// [print]: We'll use a smaller `font-size` for printing, so code examples +// don't break too early, and `16px` looks too big anyway. +@media print { + font-size: px2rem(13.6px); +} + +// Default spacing +ul, +ol, +dl, +figure, +p, +pre { + margin: 1em 0; +} + +// Headline on level 1 +h1 { + margin: 0 0 px2em(40px, 32px); + color: $scheme-invert-bis; + font-weight: 700; + line-height: 1.3; + letter-spacing: -0.01em; + font-size: 175%; +} + +// Headline on level 2 +h2 { + margin: px2em(40px, 25px) 0 px2em(16px, 25px); + font-weight: 600; + font-size: px2em(25px); + line-height: 1.4; + letter-spacing: -0.01em; +} + +// Headline on level 3 +h3 { + margin: px2em(32px, 20px) 0 px2em(16px, 20px); + font-weight: 500; + font-size: px2em(20px); + line-height: 1.5; + letter-spacing: -0.01em; +} + +// Headline on level 3 following level 2 +h2 + h3 { + margin-top: px2em(16px, 20px); +} + +// Headline on level 4 +h4 { + margin: px2em(16px) 0; + font-weight: 700; + letter-spacing: -0.01em; +} + +// Headline on level 5-6 +h5, +h6 { + margin: px2em(16px, 12.8px) 0; + color: $scheme-invert-bis; + font-weight: 700; + font-size: px2em(12.8px); + letter-spacing: -0.01em; +} + +// Headline on level 5 +h5 { + text-transform: uppercase; +} + +// Horizontal separator +hr { + display: flow-root; + margin: 1.5em 0; + border-bottom: px2rem(1px) solid $scheme-invert; +} + +// Text link +a { + color: $link; + overflow-wrap: break-word; + + // Also enable color transition on pseudo elements + &, + &::before { + transition: color 125ms; + } + + // Text link on focus/hover + &:focus{ + color: $link-focus; + } + + &:hover { + color: $link-hover; + } + + // Text link on keyboard focus + &.focus-visible { + outline-color: $link-focus; + outline-offset: px2rem(4px); + } +} + +// Code block +code, +pre, +kbd { + color: $scheme-invert; + direction: ltr; + + // [print]: Wrap text and hide scollbars + @media print { + white-space: pre-wrap; + } +} + +// Inline code block +code { + padding: 0 px2em(4px, 13.6px); + font-size: px2em(13.6px); + overflow-wrap: break-word; + background-color: $code-background; + border-radius: px2rem(2px); + box-decoration-break: clone; + + // Hide outline for pointer devices + &:not(.focus-visible) { + outline: none; + -webkit-tap-highlight-color: transparent; + } +} + +// Code block in headline +h1 code, +h2 code, +h3 code, +h4 code, +h5 code, +h6 code { + // margin: initial; + // padding: initial; + background-color: transparent; + box-shadow: none; +} + +// Ensure link color in code blocks +a code { + color: currentColor; +} + +// Unformatted content +pre { + position: relative; + display: flow-root; + line-height: 1.4; + + // Code block + > code { + display: block; + margin: 0; + padding: px2em(10.5px, 13.6px) px2em(16px, 13.6px); + overflow: auto; + word-break: normal; + box-shadow: none; + box-decoration-break: slice; + touch-action: auto; + scrollbar-width: thin; + scrollbar-color: $scheme-invert-ter transparent; + + // Code block on hover + &:hover { + scrollbar-color: $accent transparent; + } + + // Webkit scrollbar + &::-webkit-scrollbar { + width: px2rem(4px); + height: px2rem(4px); + } + + // Webkit scrollbar thumb + &::-webkit-scrollbar-thumb { + background-color: $scheme-invert-ter; + + // Webkit scrollbar thumb on hover + &:hover { + background-color: $accent; + } + } + } +} + +// [mobile -]: Align with body copy +@media screen and (max-width: $tablet - 1px) { + + // Unformatted text + > pre { + // margin: 1em px2rem(-16px); + + // Code block + code { + border-radius: 0; + } + } +} + +// Keyboard key +kbd { + display: inline-block; + padding: 0 px2em(8px, 12px); + color: $scheme-invert; + font-size: px2em(12px); + vertical-align: text-top; + overflow-wrap: break-word; + background-color: $scheme-main-ter; + border-radius: px2rem(2px); + box-shadow: + 0 px2rem(2px) 0 px2rem(1px) $border, + 0 px2rem(2px) 0 $border, + 0 px2rem(-2px) px2rem(4px) $border-light inset; +} + +// Text highlighting marker +mark { + color: inherit; + overflow-wrap: break-word; + background-color: $yellow; + box-decoration-break: clone; +} + +// Abbreviation +abbr { + text-decoration: none; + border-bottom: px2rem(1px) dotted $scheme-invert-bis; + cursor: help; + + // Show tooltip for touch devices + @media (hover: none) { + position: relative; + + // Tooltip + &[title]:focus::after, + &[title]:hover::after { + @include z-depth(2); + + position: absolute; + left: 0; + display: inline-block; + width: auto; + min-width: max-content; + max-width: 80%; + margin-top: 2em; + padding: px2rem(4px) px2rem(6px); + color: $body-background-color; + font-size: px2rem(14px); + background-color: $scheme-invert; + border-radius: px2rem(2px); + content: attr(title); + } + } +} + +// Small text +small { + opacity: 0.75; +} + +// Superscript and subscript +sup, +sub { + margin-left: px2em(1px, 12.8px); + + // Adjust for right-to-left languages + [dir="rtl"] & { + margin-right: px2em(1px, 12.8px); + margin-left: initial; + } +} + +// Blockquotes, possibly nested +blockquote { + display: flow-root; + padding-left: px2rem(12px); + color: $grey-dark; + // border-left: px2rem(4px) solid $grey; + + // Adjust for right-to-left languages + [dir="rtl"] & { + padding-right: px2rem(12px); + padding-left: initial; + border-right: px2rem(4px) solid $grey; + border-left: initial; + } +} + +// No border for block quotes inside a list, +// these are probably sub items +li > blockquote { + border-left: none; + + // Adjust for right-to-left languages + [dir="rtl"] & { + border-right: none; + } +} + +// No border for blockquotes that *are* a list... +blockquote + +// Unordered list +ul { + list-style-type: disc; +} + +// Unordered and ordered list +ul, +ol { + display: flow-root; + margin-left: px2em(10px); + padding: 0; + + // Adjust for right-to-left languages + [dir="rtl"] & { + margin-right: px2em(10px); + margin-left: initial; + } + + // Nested ordered list + ol { + list-style-type: lower-alpha; + + // Triply nested ordered list + ol { + list-style-type: lower-roman; + } + } + + // List element + li { + margin-bottom: 0.5em; + margin-left: px2em(20px); + + // Adjust for right-to-left languages + [dir="rtl"] & { + margin-right: px2em(20px); + margin-left: initial; + } + + // Adjust spacing + p, + blockquote { + margin: 0.5em 0; + } + + // Adjust spacing on last child + &:last-child { + margin-bottom: 0; + } + + // Nested list + ul, + ol { + margin: 0.5em 0 0.5em px2em(10px); + + // Adjust for right-to-left languages + [dir="rtl"] & { + margin-right: px2em(10px); + margin-left: initial; + } + } + } +} + +// Definition list +dd { + margin: 1em 0 1.5em px2em(30px); + + @media screen and (max-width: $tablet) { + margin-left: px2em(10px); + } + + // Adjust for right-to-left languages + [dir="rtl"] & { + margin-right: px2em(30px); + margin-left: initial; + + @media screen and (max-width: $tablet) { + margin-right: px2em(10px); + } + } +} +dl:not([class]), dl.simple { + dt { + font-weight: 200; + } +} + + +// Image or icon +img, +svg { + max-width: 100%; + height: auto; + + // Adjust spacing when left-aligned + &[align="left"] { + margin: 1em; + margin-left: 0; + } + + // Adjust spacing when right-aligned + &[align="right"] { + margin: 1em; + margin-right: 0; + } + + // Adjust spacing when sole children + &[align]:only-child { + margin-top: 0; + } +} + +// Figure +figure { + display: flow-root; + width: fit-content; + max-width: 100%; + margin: 0 auto; + text-align: center; + + // Figure images + img { + display: block; + margin: 0 auto; + } +} + +// Figure caption +figcaption { + margin: 1em auto 2em; + text-align: justify; + font-size: 90%; + hyphens: auto; + width: 80%; +} + +// Limit width to container +iframe { + max-width: 100%; +} diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/mdanalysis-sphinx.scss b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/mdanalysis-sphinx.scss new file mode 100644 index 0000000..341a75a --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/mdanalysis-sphinx.scss @@ -0,0 +1,90 @@ +.wy-nav-content-wrap { + background: #fcfcfc; +} + +.wy-nav-top { + background: mobile_navbar_background(); +} + +.wy-side-nav-search { + background-color: $sidebar-logo-background; + + > a { + color: $readthedocs-dark-gray; + } + + > div.version { + color: $mdanalysis-gray; + } + + input[type="text"] { + border-color: $mdanalysis-gray; + } +} + +.wy-menu { + overflow-wrap: break-word; + white-space: inherit; + + .caption-text { + color: $mdanalysis-orange; + } + + a:hover, a:hover:not(.is-active) code { + color: $mdanalysis-orange; + } +} + +code { + white-space: inherit; +} + + +.rst-content { + + .guilabel { + background: $mdanalysis-orange-light; + border: 1px solid $mdanalysis-gray; + } + + code.literal { + color: $mdanalysis-code-orange; + background-color: $mdanalysis-white; + + + } + + dt { + code.literal { + font-weight: 700; + } + } +} + + +.wy-table-responsive { + table { + td { + white-space: inherit; + } + } +} + +// fix for dataTables +// https://github.com/readthedocs/sphinx_rtd_theme/issues/1287#issuecomment-1094920765 + +.dataTables_wrapper.no-footer .wy-table-responsive { + overflow: unset; +} + +// fix header whitespace, there's a lot of it +div[role=navigation] > .wy-breadcrumbs { + margin: 0; + + .breadcrumb-item { + margin-top: 0; + margin-bottom: 0; + padding-top: 0; + padding-bottom: 0; + } +} \ No newline at end of file diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/site.sass b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/site.sass new file mode 100644 index 0000000..c19051c --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/site.sass @@ -0,0 +1,406 @@ +@charset "utf-8" + + + +@font-face + font-family: 'PT Sans', Helvetica, Arial, 'sans-serif' + + +@import "bulma/sass/utilities/functions.sass" +@import "utilities/_convert" +@import "utilities/_z-depth" + + +@import "css/theme.css" +$mdanalysis-orange: #1192e8 +$mdanalysis-gray: #808080 +$mdanalysis-white: #FFFFFF +$mdanalysis-black: #000000 +$mdanalysis-orange-light: #82cfff +$mdanalysis-code-orange: #4589ff +$readthedocs-dark-gray: #343131 +$readthedocs-light-gray: #e6e6e6 +$mdanalysis-gray-light: #e3e3e3 +$mdanalysis-yellow: #e7cb00 +$mdanalysis-blue: #007ee7 +$mdanalysis-green: #01a901 +$mdanalysis-orange-red: #009d9a +$mdanalysis-red-light: #FFEEED + +$danger: $mdanalysis-orange-red + +$primary: $mdanalysis-orange +$accent: color_accent() +$text: rgba(0,0,0,.87) +$green: $mdanalysis-green +$blue: $mdanalysis-blue +$yellow: $mdanalysis-yellow +$orange: $mdanalysis-orange + +$mobile-navbar-background: mobile_navbar_background() +$sidebar-logo-background: sidebar_logo_background() + +$link: $primary +$link-hover: $accent +$link-active: $accent +$link-focus: $accent +$link-visited: $accent +$code: $text +$code-background: #f8f8f8 +$pre-background: $code-background +$pre: $code +$code-link-background-hover: findColorInvert($link-hover) +$code-padding: 0.25em +$code-size: 1.0em +$code-lang-ident-padding: 0.18rem +$pre-padding: 0.75em +$pre-font-size: 0.825em +$pre-code-font-size: $code-size +$menu-item-active-background-color: $link-active +$menu-item-active-color: findColorInvert($link-active) +$menu-item-hover-color: $link-hover +$background: #FFFFFF +$body-background-color: $background +$menu-item-hover-background-color: transparent + +$footer-background-color: $background + +$accent-invert: findColorInvert($accent) +$accent-light: lighten($accent, 30) +$accent-dark: findDarkColor($accent) + +$footer-color: findColorInvert($footer-background-color) + +$family-sans-serif: 'PT Sans', Helvetica, Arial, 'sans-serif' +$family-monospace: Menlo, Monaco, 'Courier New', monospace + +$navbar-height: 4rem +$below-navbar-spacing: 0.5rem +$mobile-content-margin-y: 2vw + +$admonition-margin: 1.25rem + + +// 42.5rem is about 80 characters +$para-width: 42.5rem + +$code-widescreen-width: $para-width +$code-fullhd-width: $para-width +$api-widescreen-width: 52.5vw +$api-fullhd-width: 46.2rem +$expanded-table-widescreen-width: 66vw +$expanded-table-fullhd-width: 58rem + +@import "bulma/sass/utilities/_all.sass" +@import "bulma/sass/base/_all.sass" +@import "bulma/sass/grid/columns.sass" +@import "bulma/sass/components/breadcrumb.sass" +@import "bulma/sass/components/level.sass" +@import "bulma/sass/components/navbar.sass" +@import "bulma/sass/components/menu.sass" +@import "bulma/sass/components/tabs.sass" +@import "bulma/sass/elements/icon.sass" +@import "bulma/sass/elements/image.sass" +@import "bulma/sass/form/_all.sass" +@import "bulma/sass/helpers/_all.sass" +@import "bulma/sass/layout/hero.sass" + +$breadcrumb-item-color-light: findColorInvert($breadcrumb-item-color) +$breadcrumb-item-hover-color-light: $accent-light +$breadcrumb-item-active-color-light: $accent-light +$breadcrumb-item-separator-color-light: findColorInvert($breadcrumb-item-separator-color) + +=hide-scrollbar + -ms-overflow-style: none /* IE and Edge */ + scrollbar-width: none /* Firefox */ + &::-webkit-scrollbar + display: none + +// Offset scrolling by the height of the fixed header +html + scroll-padding-top: $navbar-height + $below-navbar-spacing + + +@import "sphinx-api.scss" +.rst-content + @import "material-content.scss" + @import "sphinx-content.scss" + @import "admonitions.sass" + font-size: px2rem(16px) + line-height: 1.6 + color-adjust: exact + @media screen and (max-width: $tablet - 1px) + width: 100vw - 2 * $mobile-content-margin-y + margin-left: $mobile-content-margin-y + margin-right: $mobile-content-margin-y + @media screen and (min-width: $tablet) and (max-width: $desktop - 1px) + margin-left: $mobile-content-margin-y + @media screen and (min-width: $desktop) + max-width: $para-width + margin: auto + + +header, .navbar.is-primary.has-shadow + box-shadow: 0 2px 3px 0 $primary + +.navbar.is-fixed-bottom, .navbar.is-fixed-top + height: $navbar-height + +.navbar.is-fixed-bottom, .navbar.is-fixed-top + .navbar-item img + max-height: $navbar-height - 1rem + + +.burger.is-light + color: $light + + +$drawer-width: 20rem +$drawer-transition-time: 0.5s + +@media screen and (max-width: $tablet - 1px) + .burger + position: fixed + top: 0 + left: 90vw + z-index: 10 + width: 10vw + + span:nth-child(4) + opacity: 0% + transition: opacity $drawer-transition-time + background-color: black + position: fixed + left: 0 + top: 0 + width: 100vw + height: 100vh + z-index: 11 + pointer-events: none + + #drawer-toggle:checked + /* show navbar-menu on phones and tablets */ + ~ #drawer + transform: translate($drawer-width, 0) + /* make navbar-burger become cross on screen less than 1024px */ + + .burger + span:nth-child(1) + transform: translateY(5px) rotate(45deg) + span:nth-child(2) + opacity: 0 + span:nth-child(3) + transform: translateY(-5px) rotate(-45deg) + span:nth-child(4) + opacity: 50% + pointer-events: auto + + #drawer + left: -$drawer-width + transition: transform $drawer-transition-time + width: $drawer-width + max-width: 90vw + top: 0 + height: 100vh + background-color: $background + position: fixed + display: block + z-index: 12 + .ff-globaltoc + position: unset + + header + overflow-wrap: break-word + +.has-text-light .breadcrumb + a + code + color: $breadcrumb-item-color-light + background-color: transparent + color: $breadcrumb-item-color-light + &:hover + color: $breadcrumb-item-hover-color-light + li + &.is-active + a + color: $breadcrumb-item-active-color-light + & + li::before + color: $breadcrumb-item-separator-color-light + +// Style to have this element cover any siblings +.clip-siblings + background: $background + position: relative + +.ff-localtoc, .ff-globaltoc + position: sticky + padding: $below-navbar-spacing + overflow-y: auto + // Don't know why this is necessary, probably because of drawer shenanigans? + @media screen and (max-width: $tablet) + position: fixed + top: $navbar-height + // We can put visible scrollbars on the sidebars, at the + // cost of some unusual behaviour on wierd screen sizes + // where the navbar is not 10vh + $sidebar-scrollbars: false + @if $sidebar-scrollbars + top: $navbar-height + $below-navbar-spacing + max-height: 90vh + @else + top: 0 + padding-top: $navbar-height + $below-navbar-spacing + margin-top: -$navbar-height + max-height: 100vh + +hide-scrollbar +.menu + overflow-wrap: break-word + code + background-color: transparent + color: unset + +body + min-height: 100vh + display: flex + flex-direction: column + font-family: 'PT Sans', Helvetica, Arial, 'sans-serif' + +header + z-index: 1 + background-color: $primary + + .nav-title + padding-left: 0.5rem + align-items: center + display: inline-flex + + .navbar.is-primary .navbar-brand > a.navbar-item:hover + background-color: bulmaDarken($primary, 5%) + + .nav-tabs + a + color: white + padding-top: 0.5rem + padding-bottom: 0.5rem + a:hover + color: $accent + + .is-hidden-tablet.nav-title + max-width: 90vw + + .navbar > .navbar-end + flex: none + margin-left: auto + margin-top: auto + margin-bottom: auto + + .nav-search + input + transition: width 0.2s, background-color 0.2s + $search-animation-cutoff: $widescreen + @media screen and (max-width: $search-animation-cutoff - 1px) + .control + position: relative + height: $input-height + input + background-color: unset + width: $input-height + position: absolute + right: 0 + &:hover, &:focus, &:active + width: 15rem + max-width: 15rem + &:hover + background-color: darken($primary, 10) + color: $white + &::placeholder + color: $input-icon-color + &:focus, &:active + background-color: $white + color: darken($primary, 10) + &::placeholder + color: $input-placeholder-color + &.has-icons-right + padding-right: 0 + &.has-icons-left + padding-left: 0 + @media screen and (min-width: $search-animation-cutoff) + input + background-color: darken($primary, 10) + color: $white + &::placeholder + color: $input-icon-color + &:hover, &:focus, &:active + background-color: $white + color: darken($primary, 10) + &::placeholder + color: $input-placeholder-color + +main + padding-top: 1rem +footer + margin-top: auto + overflow-wrap: break-word + nav + margin-bottom: 3rem !important + .fineprint + font-size: 0.8em + font-weight: 100 + a + color: $footer-color + font-weight: 500 + a:hover + color: $link-hover + .copyright + font-weight: 400 + margin-bottom: 1rem + .footer-content + max-width: $fullhd + margin-left: auto + margin-right: auto + .socials + @media screen and (min-width: $tablet) + margin-top: auto + text-align: right + .icon + border: solid 1px + border-radius: 50% +.ff-localtoc + a + color: $menu-item-color + display: block + &:hover + color: $link-hover + + > ul + padding-left: 0.5rem + ul + padding-top: 0.2rem + padding-left: 1rem + font-size: 0.9em + li + padding-bottom: 0.2rem + &:last-child + padding-bottom: 0 + +@media screen and (min-width: $fullhd - 1px) + main + max-width: $fullhd + 100px + width: 100% + margin-left: auto + margin-right: auto +@media screen and (max-width: $fullhd) + .menu-list li ul + padding-left: 0 + +a:hover:not(.is-active) + code, pre + color: $link-hover + +.navbar-burger-spacer + width: $navbar-height + display: inline-block + +main > .columns + max-width: 100vw + +@import "mdanalysis-sphinx.scss" diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/sphinx-api.scss b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/sphinx-api.scss new file mode 100644 index 0000000..87089e4 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/sphinx-api.scss @@ -0,0 +1,154 @@ +// The Numpydoc API layout +$api-name-color: $primary; + +$api-property-color: darken($mdanalysis-code-orange, 10); +$api-path-color: $grey; +$api-bg-color: $mdanalysis-orange-light; // rgba($mdanalysis-orange, 0.1); +$api-param-symbol-color: $mdanalysis-orange; +$api-param-name-color: $readthedocs-dark-gray; +$api-param-value-color: $grey-dark; +$api-type-color: $grey-dark; +$api-source-link-color: $mdanalysis-orange; +$api-header-font-size: 0.9rem; +$api-header-padding: 0.5 * $api-header-font-size; +$api-arguments-indent: 2 * $api-header-font-size; + +// Break headings wherever, if necessary +h1, h2, h3, h4, h5, h6 { + overflow-wrap: break-word; +} + +// Docs button in source on right +.viewcode-back { + float: right; + color: $api-source-link-color; +} + +// Override ReadTheDocs +// workaround necessary while html4 and 5 are supported +%py-obj-dl { + padding-bottom: 0.5em; + @include z-depth(2); // shadow + + .property { + display: inherit; + padding-right: 0px; + max-width: 100%; + } + + > dt { + // background: $mdanalysis-orange-light; + border-top: 3px solid $mdanalysis-code-orange; + color: $readthedocs-dark-gray; + + display: inherit; + line-height: 1.4; + + font-family: $family-monospace; + font-size: $api-header-font-size; + // padding: $api-header-font-size; + background-color: $api-bg-color; + border-radius: 4px; + // Allow words to break anywhere, if necessary + overflow-wrap: break-word; + // Position relative so we can absolutely position source link + position: relative; + &:target { + &::before { + background-color: $body-background-color; + } + } + + padding-left: $api-header-padding; + padding-right: 2.5 * ($api-header-padding + $api-arguments-indent); + + > .property { + display: unset; + padding-right: 0px; + max-width: 100%; + } + + // links + .viewcode-link { + position: absolute; + top: $api-header-padding; + right: $api-arguments-indent; + color: $mdanalysis-gray; + + .pre:hover { + color: $api-source-link-color; + } + } + + .headerlink { + position: absolute; + top: $api-header-padding; + right: $api-header-padding; + color: $api-name-color; + opacity: 1; + margin-top: -0.1rem; + + } + + } + + >dd { + margin: 1em; + &:empty { + padding-bottom: 0 !important; + } + + >.field-list { + // Headings + >dt { + font-weight: bold; + } + + // Content + >dd { + >ul.simple { + margin-left: 0; + } + >dl>dt, >ul.simple:first-child>li>p:first-child, >p:first-child { + // Name of the parameter or return value + >strong { + font-family: $family-monospace; + color: $api-param-name-color; + font-weight: normal; + } + // Type of the parameter, or type of a named return value + >.classifier { + font-family: $family-monospace; + color: $api-type-color; + overflow-wrap: break-word; + } + >a.reference>em { + font-family: $family-monospace; + font-style: normal; + } + } + >dl>dt>strong::after { + content: ": "; + } + } + } + } +} + + +html.writer-html4 { + .rst-content { + dl:not(.docutils) { + @extend %py-obj-dl; + } + } +} + + +html.writer-html5 { + .rst-content { + dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) { + @extend %py-obj-dl; + } + } +} diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/sphinx-content.scss b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/sphinx-content.scss new file mode 100644 index 0000000..01550d6 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/sphinx-content.scss @@ -0,0 +1,515 @@ +// Thanks to Jeremy Maitin-Shepard. File sourced from +// https://github.com/jbms/sphinx-material/blob/b3667d67eee0a42a627c97a5a81a736c99dadb61/src/assets/stylesheets/main/_sphinx.scss + +// Additional styles expected by sphinx. + +// alignment of text and inline objects inside block objects +.align-left { + text-align: left; +} + +.align-right { + text-align: right; +} + +.align-center { + clear: both; + text-align: center; +} + +.align-top { + vertical-align: top; +} + +.align-middle { + vertical-align: middle; +} + +.align-bottom { + vertical-align: bottom; +} + +// Figures, Images, and Tables +.figure.align-left, +figure.align-left, +img.align-left, +object.align-left, +table.align-left { + margin-right: auto; +} + +.figure.align-center, +figure.align-center, +img.align-center, +object.align-center, +table.align-center, +table.align-default { + margin-right: auto; + margin-left: auto; +} + +.figure.align-right, +figure.align-right, +img.align-right, +object.align-right, +table.align-right { + margin-left: auto; +} + +.figure.align-center, +.figure.align-right, +figure.align-center, +figure.align-right, +img.align-center, +img.align-right, +object.align-center, +object.align-right { + display: block; +} + +// reset inner alignment in figures and tables +.figure.align-left, +.figure.align-right, +figure.align-left, +figure.align-right, +table.align-left, +table.align-center, +table.align-right { + text-align: inherit; +} + +.rubric { + font-weight: bold; +} + +// And now my own rules +/// Code with line numbers in sphinx<4 +table.highlighttable { + td.linenos { + @include unselectable; + padding-left: 0; + padding-right: 0; + .linenodiv pre { + padding-right: 0; + // Hide line numbers on mobile + @media screen and (max-width: $tablet - 1px) { + display: none; + } + } + + td.code { + margin-left: 0; + padding-left: 0; + padding-right: 0; + .highlight pre { + overflow-x: auto; + // Hide line numbers on mobile + @media screen and (max-width: $tablet - 1px) { + width: 100vw - 2 * $mobile-content-margin-y; + } + } + } + } +} + + +// Code blocks +.highlight { + background-color: $code-background; + border-radius: 4px; + @include z-depth(2); + // Unselectable prompts and line numbers + .gp, .linenos { + @include unselectable; + } + // Scrollbar and margins on the .highlight, not the inner pre + overflow-x: auto; + margin: 1em 0; + pre { + overflow-x: unset; + margin: unset; + } + /// Code with line numbers in sphinx>=4 + span.linenos { + margin-right: 0.5rem; + margin-left: -0.5rem; + color: #666666; + // Hide line numbers on mobile + @media screen and (max-width: $tablet - 1px) { + display: none; + } + } +} + +// Give ourselves some more room on top-level code blocks and big screens +section, .section { + > .notranslate > .highlight { + @media screen and (min-width: $widescreen) and (max-width: $fullhd - 1) { + margin-left: calc(-0.5 * (#{$code-widescreen-width} - #{$para-width})); + width: $code-widescreen-width; + } + @media screen and (min-width: $fullhd) { + margin-left: -0.5 * ($code-fullhd-width - $para-width); + width: $code-fullhd-width; + } + &::before { + @media screen and (min-width: $widescreen) and (max-width: $fullhd - 1) { + right: calc($code-lang-ident-padding - 0.5 * (#{$code-widescreen-width} - #{$para-width})); + } + @media screen and (min-width: $fullhd) { + right: calc($code-lang-ident-padding - 0.5 * (#{$code-fullhd-width} - #{$para-width})); + } + } + } +} + + +.wy-table-responsive.autosummary { + table { + table-layout:fixed; + width: 100%; + colgroup { + col:first-child { + width: 30% !important; + } + col:last-child { + width: 70% !important; + } + } + td:first-child { + overflow-wrap: break-word; + a, code { + overflow-wrap: break-word; + &::after { + content: "​" + } + } + } + } + overflow-x: hidden; +} + +.wy-table-responsive:not(.autosummary) { + // Allow large, scrollable tables to be expanded + &.expanded { + @include z-depth(2); + @media screen and (min-width: $widescreen) and (max-width: $fullhd - 1) { + margin-left: calc(-0.5 * (#{$expanded-table-widescreen-width} - #{$para-width})); + width: $expanded-table-widescreen-width; + max-width: $expanded-table-widescreen-width; + table { + min-width: $expanded-table-widescreen-width; + } + } + @media screen and (min-width: $fullhd) { + margin-left: -0.5 * ($expanded-table-fullhd-width - $para-width); + width: $expanded-table-fullhd-width; + max-width: $expanded-table-fullhd-width; + table { + min-width: $expanded-table-fullhd-width; + } + } + } + table { + font-size: 85%; + // Table row in the body + tbody { + tr { + transition: background-color 125ms; + + // Table row on hover + &:hover { + background-color: rgba(0, 0, 0, 0.035); + } + } + } + } +} + +// Header links +.headerlink { + font-size: 1em; + margin-left: 0.5em; + color: $grey-light; + + @media screen and (min-width: $tablet) { + display: inline-block; + transform: translateY(.25rem); + transition: transform .25s 0.2s,color .25s,opacity .125s 0.2s; + opacity: 0; + } +} +*:hover > .headerlink { + transition: transform .25s,color .25s,opacity .125s; + -webkit-transform: translate(0); + transform: translate(0); + opacity: 1; +} + +// Format captions +.toctree-wrapper .caption { + @extend h2; +} + +// Don't let Sphinx try to be clever about what header level the index heading is +#index h3 { + @extend h2; +} + +@if hyphenate() { + p:not(.admonition-title), ul.simple, ol.simple { + text-align: justify; + hyphens: auto; + > *:not(p:not(.admonition-title), ul.simple, ol.simple) { + hyphens: none; + text-align: unset; + } + } +} + +// // Use Bulma's tables +// table { +// @extend .table; +// } + +// Citations +dl.citation { + // Label for the reference/citation. Block element + > dt.label { + + } + > dd { + margin-top: 0; + :first-child { + margin-top: 0; + } + } +} + + +// Unset Bulma .file class in .content +.file { + align-items: unset; + display: unset; + justify-content: unset; + position: unset; +} + +// Add brackets to references that ask for it +a.brackets { + &::before { + content: "["; + } + &::after { + content: "]"; + } +} + + +// Make output from python consoles unselectable +.highlight-pycon span.go { + @include unselectable; +} + +// Add language identifiers to code blocks +@mixin language-identifier($langname) { + position: relative; + .highlight::before { + @include unselectable; + content: $langname; + color: #696969; + font-size: 80%; + font-family: $family-monospace; + font-variant: small-caps; + position: absolute; + z-index: 10; + right: $code-lang-ident-padding; + top: $code-lang-ident-padding; + line-height: 0.8; + } +} + +.highlight-python, .highlight-py, .highlight-python3, .highlight-py3, .highlight-pycon { + @include language-identifier("Python"); +} + +.highlight-sh, .highlight-shell-session, .highlight-shell { + @include language-identifier("Shell"); +} + +.highlight-bash { + @include language-identifier("BASH"); +} + +.highlight-yaml, .highlight-yml { + @include language-identifier("YAML"); +} + +.highlight-toml { + @include language-identifier("TOML"); +} + +.highlight-json { + @include language-identifier("JSON"); +} + +.highlight-html { + @include language-identifier("HTML"); +} + +.highlight-xml { + @include language-identifier("XML"); +} + +.highlight-javascript, .highlight-js { + @include language-identifier("JavaScript"); +} + +.highlight-jinja { + @include language-identifier("Jinja"); +} + +.highlight-c { + @include language-identifier("C"); +} + +.highlight-cxx, .highlight-cpp, .highlight-c\+\+ { + @include language-identifier("C++"); +} + +.highlight-rs, .highlight-rust { + @include language-identifier("Rust"); +} + +.highlight-julia { + @include language-identifier("Julia"); +} + +.highlight-r { + @include language-identifier("R"); +} + +.highlight-restructuredtext, .highlight-rst, .highlight-rest { + @include language-identifier("reStructuredText"); +} + +.highlight-md, .highlight-markdown { + @include language-identifier("Markdown"); +} + +.highlight-tex { + @include language-identifier("TeX"); +} + +.highlight-latex { + @include language-identifier("LaTeX"); +} + +// Nbsphinx notebooks +// !important: Override built in stylesheet + +.nbinput, .nboutput { + // Hide the prompt + >.prompt { + display: None; + } + >.output_area, >.input_area { + border: None !important; + @include z-depth(1); + } + .highlight { + width: 100%; + } +} + +.nbinput { + // Stdin cell with attached output + &:not(.nblast)>.input_area { + border-radius: 4px 0 0 0 !important; + } + // Stdin cell without attached output + &.nblast>.input_area { + border-radius: 4px 0 0 4px !important; + } + // Stdin cell + >.input_area { + border-left: medium $mdanalysis-gray solid !important; + pre { + padding: 1.25rem 1.5rem !important; + } + } +} + +.nboutput { + // Final output cell + &.nblast>.output_area { + border-radius: 0 0 0 4px !important; + } + // Stderr cell + >.stderr.output_area { + border-left: medium $grey-light solid !important; + background: #fee !important; + } + // Stdout cell + >:not(.stderr).output_area { + border-left: medium $grey-light solid !important; + background: $body-background-color !important; + } +} + +// MyST-nb notebooks + +.cell.container { + @include z-depth(2); + border-radius: 4px 2px 2px 4px; + >.cell_input { + border: none; + border-left: 4px green solid; + &:last-child { + border-radius: 4px 0 0 4px; + } + &:not(:last-child) { + border-radius: 4px 0 0 0; + } + } + .highlight { + border: None; + border-radius: 0; + box-shadow: None; + } + >.cell_output { + @include z-depth(2); + border-left: 4px gray solid; + &:last-child { + border-radius: 0 0 0 4px; + } + margin-top: -1em; // Not sure why this is needed + padding-left: 0; + >.output, >img { + margin-top: 0; + &.stderr { + background: #fee; + .highlight, pre { + background: None; + } + } + &:not(.stderr) { + background: $body-background-color; + .highlight, pre { + background: None; + } + } + &.traceback { + border: None; + } + pre { + padding: 5px; + white-space: pre-wrap; + word-break: break-all; + } + } + } + + .highlight { + border: none; + } +} diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/utilities/_convert.scss b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/utilities/_convert.scss new file mode 100644 index 0000000..993067b --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/utilities/_convert.scss @@ -0,0 +1,82 @@ +//// +/// Copyright (c) 2016-2021 Martin Donath +/// +/// Permission is hereby granted, free of charge, to any person obtaining a +/// copy of this software and associated documentation files (the "Software"), +/// to deal in the Software without restriction, including without limitation +/// the rights to use, copy, modify, merge, publish, distribute, sublicense, +/// and/or sell copies of the Software, and to permit persons to whom the +/// Software is furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +/// DEALINGS +//// + +/// Thank you to Martin Donath. This file was sourced from: +/// https://github.com/squidfunk/mkdocs-material/blob/31aab182b756913000ffade0e2219c75cf54b67a/src/assets/stylesheets/utilities/_convert.scss + +@use "sass:math"; + +// ---------------------------------------------------------------------------- +// Helpers +// ---------------------------------------------------------------------------- + +/// +/// Strip units from a number +/// +@function strip-units($number) { + @return ($number / ($number * 0 + 1)); +} + +/// +/// Convert color in HEX to HSL +/// +/// Note, that we need to strip the `deg` units from the `hue` value, as they +/// were added in Color Level 4, which not all browsers support. +/// +@function hex2hsl($color) { + @return + round(strip-units(hue($color))), + round(saturation($color)), + round(lightness($color)); +} + +// ---------------------------------------------------------------------------- + +/// +/// Convert font size in px to em +/// +@function px2em($size, $base: $body-size) { + @if unit($size) == px { + @if unit($base) == px { + @return ($size / $base) * 1em; + } @else { + @error "Invalid base: #{$base} - unit must be 'px'"; + } + } @else { + @error "Invalid size: #{$size} - unit must be 'px'"; + } +} + +/// +/// Convert font size in px to rem +/// +@function px2rem($size, $base: $body-size) { + @if unit($size) == px { + @if unit($base) == px { + @return ($size / $base) * 1rem; + } @else { + @error "Invalid base: #{$base} - unit must be 'px'"; + } + } @else { + @error "Invalid size: #{$size} - unit must be 'px'"; + } +} diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/utilities/_z-depth.scss b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/utilities/_z-depth.scss new file mode 100644 index 0000000..ac3b137 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/sass/utilities/_z-depth.scss @@ -0,0 +1,146 @@ +/// Thank you to Denis Malinochkin. This file was sourced from +/// https://github.com/mrmlnc/material-shadows/blob/d167e3aeb529857e01980a935395947b5c297948/material-shadows.scss + +// +// Name: Material Shadows +// Description: Mixins for Material Design Shadows. +// Version: 3.0.1 +// +// Author: Denis Malinochkin +// Git: https://github.com/mrmlnc/material-shadows +// +// twitter: @mrmlnc +// +// ------------------------------------ + +// The MIT License (MIT) +// +// Copyright (c) Denis Malinochkin +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + +// Mixins +// ------------------------------------ + +@mixin z-depth-transition() { + transition: box-shadow .28s cubic-bezier(.4, 0, .2, 1); +} + +@mixin z-depth-focus() { + box-shadow: 0 0 8px rgba(0, 0, 0, .18), 0 8px 16px rgba(0, 0, 0, .36); +} + +@mixin z-depth-0dp($color) { + box-shadow: none; +} + +@mixin z-depth-1dp($color) { + box-shadow: 0 2px 2px 0 rgba($color, .35 * alpha($color)), + 0 2px 2px 0 rgba($color, .3 * alpha($color)), + 0 3px 1px -2px rgba($color, .5 * alpha($color)); +} + +@mixin z-depth-2dp($color) { + box-shadow: 0 2px 2px 0 rgba($color, .35 * alpha($color)), + 0 1px 5px 0 rgba($color, .3 * alpha($color)), + 0 3px 1px -2px rgba($color, .5 * alpha($color)); +} + +@mixin z-depth-3dp($color) { + box-shadow: 0 3px 4px 0 rgba($color, .35 * alpha($color)), + 0 1px 8px 0 rgba($color, .3 * alpha($color)), + 0 3px 3px -2px rgba($color, 1 * alpha($color)); +} + +@mixin z-depth-4dp($color) { + box-shadow: 0 4px 5px 0 rgba($color, .35 * alpha($color)), + 0 1px 10px 0 rgba($color, .3 * alpha($color)), + 0 2px 4px -1px rgba($color, 1 * alpha($color)); +} + +@mixin z-depth-6dp($color) { + box-shadow: 0 6px 10px 0 rgba($color, .35 * alpha($color)), + 0 1px 18px 0 rgba($color, .3 * alpha($color)), + 0 3px 5px -1px rgba($color, 1 * alpha($color)); +} + +@mixin z-depth-8dp($color) { + box-shadow: 0 8px 10px 1px rgba($color, .35 * alpha($color)), + 0 3px 14px 2px rgba($color, .3 * alpha($color)), + 0 5px 5px -3px rgba($color, 1 * alpha($color)); +} + +@mixin z-depth-16dp($color) { + box-shadow: 0 16px 24px 2px rgba($color, .35 * alpha($color)), + 0 6px 30px 5px rgba($color, .3 * alpha($color)), + 0 8px 10px -5px rgba($color, 1 * alpha($color)); +} + +@mixin z-depth-24dp($color) { + box-shadow: 0 9px 46px 8px rgba($color, .35 * alpha($color)), + 0 24px 38px 3px rgba($color, .3 * alpha($color)), + 0 11px 15px -7px rgba($color, 1 * alpha($color)); +} + +@mixin z-depth($dp: 2, $color: rgba(black, .4)) { + @if $dp == 0 { + @include z-depth-0dp($color); + } @else if $dp == 1 { + @include z-depth-1dp($color); + } @else if $dp == 2 { + @include z-depth-2dp($color); + } @else if $dp == 3 { + @include z-depth-3dp($color); + } @else if $dp == 4 { + @include z-depth-4dp($color); + } @else if $dp == 6 { + @include z-depth-6dp($color); + } @else if $dp == 8 { + @include z-depth-8dp($color); + } @else if $dp == 16 { + @include z-depth-16dp($color); + } @else if $dp == 24 { + @include z-depth-24dp($color); + } +} + + +// Class generator +// ------------------------------------ + +@mixin z-depth-classes($transition: false, $focus: false) { + @if $transition == true { + &-transition { + @include z-depth-transition(); + } + } + + @if $focus == true { + &-focus { + @include z-depth-focus(); + } + } + + // The available values for the shadow depth + @each $depth in 0, 2, 3, 4, 6, 8, 16, 24 { + &-#{$depth}dp { + @include z-depth($depth); + } + } +} diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/static/js/versions.js b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/static/js/versions.js new file mode 100644 index 0000000..9715c5d --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/static/js/versions.js @@ -0,0 +1,22 @@ +"use strict"; + +// get all of the releases from versions.json, and use these to populate the +// dropdown menu of different releases +$(document).ready(function () { + // Define versions_json_url in versions.html through a template variable + $.getJSON(versions_json_url) + .done(function (data) { + $.each(data.sort(function (a, b) { + return a.version > b.version + }), function (i, item) { + $("
").append( + $("").text(item.display).attr('href', item.url) + ).appendTo("#versionselector"); + }); + }) + .fail(function (d, textStatus, error) { + console.error("getJSON failed, status: " + textStatus + ", error: " + error); + }); +}); + +console.log("Loading versions from " + versions_json_url); diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/static/logo/mda_favicon.ico b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/static/logo/mda_favicon.ico new file mode 100644 index 0000000..b6b30c4 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/static/logo/mda_favicon.ico @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/static/logo/mda_logo.png b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/static/logo/mda_logo.png new file mode 100644 index 0000000..ff59908 Binary files /dev/null and b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/static/logo/mda_logo.png differ diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/static/logo/placeholder_favicon.svg b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/static/logo/placeholder_favicon.svg new file mode 100644 index 0000000..b6b30c4 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/static/logo/placeholder_favicon.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/static/logo/placeholder_logo.png b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/static/logo/placeholder_logo.png new file mode 100644 index 0000000..77e9056 Binary files /dev/null and b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/static/logo/placeholder_logo.png differ diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/static/logo/polyconstruct_logo.png b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/static/logo/polyconstruct_logo.png new file mode 100644 index 0000000..ff59908 Binary files /dev/null and b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/static/logo/polyconstruct_logo.png differ diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/theme.conf b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/theme.conf new file mode 100644 index 0000000..9d8e2cb --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/theme.conf @@ -0,0 +1,22 @@ +[theme] +inherit = sphinx_rtd_theme +stylesheet = site.css + +[options] +base_url = +color_accent = mdanalysis-code-orange +sidebar_logo_background = white +mobile_navbar_background = dark-gray +logo_only = True +display_version = True +prev_next_buttons_location = bottom +style_external_links = False +collapse_navigation = True +sticky_navigation = True +navigation_depth = 4 +includehidden = True +titles_only = False +mda_official = False +repo_name = +repo_url = +extra_nav_links = \ No newline at end of file diff --git a/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/versions.html b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/versions.html new file mode 100644 index 0000000..cb4fd8e --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/polyconstruct_sphinx_theme/versions.html @@ -0,0 +1,19 @@ + + +
+ + + {{ release }} + + + +
+
+
Other Versions
+
+ +
+
\ No newline at end of file diff --git a/docs/source/polyconstruct-sphinx-theme/pyproject.toml b/docs/source/polyconstruct-sphinx-theme/pyproject.toml new file mode 100644 index 0000000..6c8fa46 --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/pyproject.toml @@ -0,0 +1,89 @@ +[build-system] +requires = [ + "setuptools >= 40.9.0", + "versioningit", +] +build-backend = "setuptools.build_meta" + +[project] +name = "polyconstruct_sphinx_theme" +description = "PolyConstruct Sphinx documentation theme - developed from MDAnalysis official Sphinx theme" +license = {file = "LICENSE" } +authors = [ + {name = "Luna Morrow", email = "uqlmorro@uq.edu.au"}, +] +maintainers = [ + {name = "Luna Morrow", email = "uqlmorro@uq.edu.au"}, +] +classifiers = [ + "Development Status :: 5 - Production/Stable", + "License :: OSI Approved :: MIT License", + "Environment :: Console", + "Environment :: Web Environment", + "Intended Audience :: Developers", + "Operating System :: OS Independent", + "Topic :: Documentation", + "Topic :: Software Development :: Documentation", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", +] +readme = {file = "README.md", content-type = "text/markdown"} +requires-python = ">=3.9" +dependencies = [ + "sphinx_rtd_theme>=1.3", + "sphinx>=6.2.1", + "beautifulsoup4", + "python-slugify[unidecode]", + "css_html_js_minify", + "lxml", + "libsass", +] +dynamic = [ + "version", +] + +[project.urls] +source = "https://github.com/lunamorrow/polyconstruct-sphinx-theme" + +[project.entry-points."sphinx.html_themes"] +polyconstruct_sphinx_theme = "polyconstruct_sphinx_theme" + +[tool.setuptools] +zip-safe = false +include-package-data = true + +[tool.setuptools.packages.find] +namespaces = true +include=["polyconstruct_sphinx_theme"] + +[tool.setuptools.package-data] +polyconstruct_sphinx_theme = [ + "theme.conf", + "*.html", + "static/*/*.*", + "sass/*.*", + "sass/*/*.*", + "sass/bulma/sass/*/*.*", +] + +[tool.versioningit] +default-version = "1" + +[tool.versioningit.vcs] +method = "git" +# the below line expects tags to look like '1.0.2'. +# if prefixing with a v, e.g. 'v1.0.2', change it to ["v*"] +match = ["v*"] + +[tool.versioningit.tag2version] +rmprefix = "v" + +[tool.versioningit.format] +distance = "{base_version}+{distance}.{vcs}{rev}" +dirty = "{base_version}+{distance}.{vcs}{rev}.dirty" +distance-dirty = "{base_version}+{distance}.{vcs}{rev}.dirty" diff --git a/docs/source/polyconstruct-sphinx-theme/setup.py b/docs/source/polyconstruct-sphinx-theme/setup.py new file mode 100644 index 0000000..61cdc5a --- /dev/null +++ b/docs/source/polyconstruct-sphinx-theme/setup.py @@ -0,0 +1,100 @@ +# -*- coding: utf-8 -*- + +import re +from setuptools import setup +from pathlib import Path +import shutil +import warnings + + +def dynamic_author_list(): + """Generate __authors__ from AUTHORS + This function generates authors.py that contains the list of the + authors from the AUTHORS file. This avoids having that list maintained in + several places. Note that AUTHORS is sorted chronologically while we want + __authors__ in authors.py to be sorted alphabetically. + The authors are written in AUTHORS as bullet points under the + "Chronological list of authors" title. + """ + authors = [] + current_dir = Path(__file__).parent.resolve() + author_file = current_dir / "AUTHORS.md" + + with open(author_file, "r") as f: + lines = [x.strip() for x in f.readlines()] + + pattern = r"^- ([\w '.]+) @[\w_-]+$" + for line in lines: + match = re.match(pattern, line) + if match: + authors.append(match.group(1)) + + authors.sort(key=lambda name: name.split()[-1]) + authors.remove("Lily Wang") + prior_authors = [ + "Matthew Harrigan", + "Robert T. McGibbon", + "Christian Schwantes", + "Martin K. Scherer", + "Joshua A. Mitchell", + "Simon Boothroyd", + ] + for name in prior_authors: + authors.remove(name) + + authors = ["Lily Wang"] + authors + + # Write the authors.py file. + out_path = current_dir / "polyconstruct_sphinx_theme" / "authors.py" + author_lines = "\n".join([f' u"{name}",' for name in authors]) + template = f"""\ +#-*- coding:utf-8 -*- +# This file is generated from the AUTHORS file during the installation process. +# Do not edit it as your changes will be overwritten. +__authors__ = [ +{author_lines} +] +""" + + with out_path.open("w") as f: + f.write(template) + + +def copy_mda_assets(): + static_dir = Path('.') / 'polyconstruct_sphinx_theme' / 'static' + + # outdir for logos and icons + static_logos = static_dir / 'logo' + + # main logo to appear in nav bar + mda_logo_base_file = 'polyconstruct_logo.png' + mda_logo = static_dir / 'logo' / mda_logo_base_file + + mda_favicon = static_dir / 'logo' / 'placeholder_favicon.svg' + + if not mda_logo.exists(): + raise FileNotFoundError("Could not find the MDAnalysis logo. " + "Check that the branding submodule is " + "initialized.") + + if not mda_favicon.exists(): + raise FileNotFoundError("Could not find the MDAnalysis icon. " + "Check that the branding submodule is " + "initialized.") + + if not static_dir.exists(): + raise FileNotFoundError("Could not find the theme static directory.") + + shutil.copy(mda_logo, static_logos / 'mda_logo.png') + shutil.copy(mda_favicon, static_logos / 'mda_favicon.ico') + + +if __name__ == '__main__': + try: + dynamic_author_list() + except (OSError, IOError): + warnings.warn('Cannot write the list of authors.') + + copy_mda_assets() + setup() + diff --git a/docs/source/polytop.Angles.rst b/docs/source/polytop.Angles.rst new file mode 100644 index 0000000..dffd8de --- /dev/null +++ b/docs/source/polytop.Angles.rst @@ -0,0 +1,18 @@ +Angles +----------------------- + +.. automodule:: polytop.Angles + :members: + :undoc-members: + :show-inheritance: + :no-index: + + + + + + + + + + diff --git a/docs/source/polytop.Atoms.rst b/docs/source/polytop.Atoms.rst new file mode 100644 index 0000000..5e1c518 --- /dev/null +++ b/docs/source/polytop.Atoms.rst @@ -0,0 +1,16 @@ +Atoms +------------------- + +.. automodule:: polytop.Atoms + :members: + :undoc-members: + :show-inheritance: + :no-index: + + + + + + + + diff --git a/docs/source/polytop.Bonds.rst b/docs/source/polytop.Bonds.rst new file mode 100644 index 0000000..514f557 --- /dev/null +++ b/docs/source/polytop.Bonds.rst @@ -0,0 +1,16 @@ +Bonds +------------------- + +.. automodule:: polytop.Bonds + :members: + :undoc-members: + :show-inheritance: + :no-index: + + + + + + + + diff --git a/docs/source/polytop.Dihedrals.rst b/docs/source/polytop.Dihedrals.rst new file mode 100644 index 0000000..bb0ad6e --- /dev/null +++ b/docs/source/polytop.Dihedrals.rst @@ -0,0 +1,16 @@ +Dihedrals +------------------- + +.. automodule:: polytop.Dihedrals + :members: + :undoc-members: + :show-inheritance: + :no-index: + + + + + + + + diff --git a/docs/source/polytop.Exclusions.rst b/docs/source/polytop.Exclusions.rst new file mode 100644 index 0000000..2435120 --- /dev/null +++ b/docs/source/polytop.Exclusions.rst @@ -0,0 +1,16 @@ +Exclusions +------------------- + +.. automodule:: polytop.Exclusions + :members: + :undoc-members: + :show-inheritance: + :no-index: + + + + + + + + diff --git a/docs/source/polytop.Gromacs.rst b/docs/source/polytop.Gromacs.rst new file mode 100644 index 0000000..cc23f4b --- /dev/null +++ b/docs/source/polytop.Gromacs.rst @@ -0,0 +1,12 @@ +Gromacs +------------------- + +.. automodule:: polytop.Gromacs + :members: + :undoc-members: + :show-inheritance: + :no-index: + + + + \ No newline at end of file diff --git a/docs/source/polytop.Junction.rst b/docs/source/polytop.Junction.rst new file mode 100644 index 0000000..50dddde --- /dev/null +++ b/docs/source/polytop.Junction.rst @@ -0,0 +1,12 @@ +Junction +------------------- + +.. automodule:: polytop.Junction + :members: + :undoc-members: + :show-inheritance: + :no-index: + + + + \ No newline at end of file diff --git a/docs/source/polytop.Molecule_type.rst b/docs/source/polytop.Molecule_type.rst new file mode 100644 index 0000000..18c0691 --- /dev/null +++ b/docs/source/polytop.Molecule_type.rst @@ -0,0 +1,16 @@ +Molecule_type +------------------------ + +.. automodule:: polytop.Molecule_type + :members: + :undoc-members: + :show-inheritance: + :no-index: + + + + + + + + diff --git a/docs/source/polytop.Monomer.rst b/docs/source/polytop.Monomer.rst new file mode 100644 index 0000000..df24bdd --- /dev/null +++ b/docs/source/polytop.Monomer.rst @@ -0,0 +1,8 @@ +Monomer +------------------- + +.. automodule:: polytop.Monomer + :members: + :undoc-members: + :show-inheritance: + :no-index: \ No newline at end of file diff --git a/docs/source/polytop.Pairs.rst b/docs/source/polytop.Pairs.rst new file mode 100644 index 0000000..26ef211 --- /dev/null +++ b/docs/source/polytop.Pairs.rst @@ -0,0 +1,8 @@ +Pairs +------------------- + +.. automodule:: polytop.Pairs + :members: + :undoc-members: + :show-inheritance: + :no-index: \ No newline at end of file diff --git a/docs/source/polytop.Polymer.rst b/docs/source/polytop.Polymer.rst new file mode 100644 index 0000000..cd9fe87 --- /dev/null +++ b/docs/source/polytop.Polymer.rst @@ -0,0 +1,8 @@ +Polymer +------------------- + +.. automodule:: polytop.Polymer + :members: + :undoc-members: + :show-inheritance: + :no-index: \ No newline at end of file diff --git a/docs/source/polytop.Topology.rst b/docs/source/polytop.Topology.rst new file mode 100644 index 0000000..8319fc2 --- /dev/null +++ b/docs/source/polytop.Topology.rst @@ -0,0 +1,8 @@ +Topology +------------------- + +.. automodule:: polytop.Topology + :members: + :undoc-members: + :show-inheritance: + :no-index: \ No newline at end of file diff --git a/docs/source/polytop.Visualize.rst b/docs/source/polytop.Visualize.rst new file mode 100644 index 0000000..fb56477 --- /dev/null +++ b/docs/source/polytop.Visualize.rst @@ -0,0 +1,8 @@ +Visualize +----------------------- + +.. automodule:: polytop.Visualize + :members: + :undoc-members: + :show-inheritance: + :no-index: \ No newline at end of file diff --git a/docs/source/polytop.rst b/docs/source/polytop.rst index ad75b4d..8b780c3 100644 --- a/docs/source/polytop.rst +++ b/docs/source/polytop.rst @@ -1,144 +1,26 @@ -polytop package +PolyTop ================ Classes ---------- -polytop.Angles ------------------------ +.. toctree:: + :titlesonly: -.. automodule:: polytop.Angles - :members: - :undoc-members: - :show-inheritance: - -polytop.Atoms -------------------- - -.. automodule:: polytop.Atoms - :members: - :undoc-members: - :show-inheritance: - -polytop.Bonds -------------------- - -.. automodule:: polytop.Bonds - :members: - :undoc-members: - :show-inheritance: - -polytop.Dihedrals -------------------- - -.. automodule:: polytop.Dihedrals - :members: - :undoc-members: - :show-inheritance: - -polytop.Exclusions -------------------- - -.. automodule:: polytop.Exclusions - :members: - :undoc-members: - :show-inheritance: - -polytop.Gromacs -------------------- - -.. automodule:: polytop.Gromacs - :members: - :undoc-members: - :show-inheritance: - -polytop.ITP -------------------- - -.. automodule:: polytop.ITP - :members: - :undoc-members: - :show-inheritance: - -polytop.Junction -------------------- - -.. automodule:: polytop.Junction - :members: - :undoc-members: - :show-inheritance: - -polytop.Molecule_type -------------------- - -.. automodule:: polytop.Molecule_type - :members: - :undoc-members: - :show-inheritance: - -polytop.Molecule -------------------- + polytop.Angles + polytop.Atoms + polytop.Bonds + polytop.Dihedrals + polytop.Exclusions + polytop.Gromacs + polytop.Junction + polytop.Molecule_type + polytop.Monomer + polytop.Pairs + polytop.Polymer + polytop.Topology + polytop.Visualize -.. automodule:: polytop.Molecule - :members: - :undoc-members: - :show-inheritance: - -polytop.Monomer -------------------- - -.. automodule:: polytop.Monomer - :members: - :undoc-members: - :show-inheritance: - -polytop.Pairs -------------------- - -.. automodule:: polytop.Pairs - :members: - :undoc-members: - :show-inheritance: - -polytop.Polymer -------------------- - -.. automodule:: polytop.Polymer - :members: - :undoc-members: - :show-inheritance: - -polytop.Polymerization_type -------------------- - -.. automodule:: polytop.Polymerization_type - :members: - :undoc-members: - :show-inheritance: - -polytop.Topology -------------------- - -.. automodule:: polytop.Topology - :members: - :undoc-members: - :show-inheritance: - -polytop.Vizualize ------------------------ - -.. automodule:: polytop.Vizualize - :members: - :undoc-members: - :show-inheritance: - -polytop.polytop\_automatic ------------------------------------ - -.. automodule:: polytop.polytop_automatic - :members: - :undoc-members: - :show-inheritance: Module contents --------------- @@ -147,3 +29,4 @@ Module contents :members: :undoc-members: :show-inheritance: + :no-index: diff --git a/paper_worked_examples.ipynb b/paper_worked_examples.ipynb index 3673c93..ea7af58 100644 --- a/paper_worked_examples.ipynb +++ b/paper_worked_examples.ipynb @@ -1,5 +1,47 @@ { "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Construction of a simple linear homopolymer of PEI" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# Import required classes from PolyTop\n", + "from polytop.polytop import Topology, Junction, Monomer, Polymer, Visualize\n", + "\n", + "# Load in monomer Topology from ITP file\n", + "top = Topology.from_ITP(\"data_paper_examples/pei.itp\")\n", + "\n", + "# Create a Junction to join 'to' and another to join 'from'.\n", + "# Provide the bonding atom and the leaving atom, in that order, for the\n", + "# Junction - they must have a bond between them.\n", + "to_j = Junction(top.get_atom(\"C51\"), top.get_atom(\"C62\"), name = \"to\")\n", + "from_j = Junction(top.get_atom(\"N7\"), top.get_atom(\"C6\"), name = \"from\")\n", + "\n", + "# Create a Monomer from the Topology and a list of the Junctions\n", + "monomer = Monomer(top, [to_j, from_j])\n", + "\n", + "# Start the Polymer with one Monomer\n", + "polymer = Polymer(monomer)\n", + "\n", + "# Extend the Polymer to the desired length (in this case 20)\n", + "for i in range(19):\n", + " polymer.extend(monomer, from_junction_name=\"from\", to_junction_name=\"to\")\n", + "\n", + "# Save the polymer to a file and visualise the structure with RDKit for an easy visual structure check\n", + "polymer.topology.title = \"pei polymer\" # renames the ITP header and image\n", + "polymer.save_to_file('data_paper_examples/pei_linear_polymer.json') # text dump\n", + "polymer.topology.to_ITP('data_paper_examples/pei_linear_polymer.itp')\n", + "Visualize.polymer(polymer,infer_bond_order=False).draw2D('data_paper_examples/pei_linear_polymer.png',(400,300))" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -9,7 +51,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 1, "metadata": {}, "outputs": [ { @@ -322,7 +364,7 @@ ], "metadata": { "kernelspec": { - "display_name": "polytop-env", + "display_name": "polyconstruct-env", "language": "python", "name": "python3" }, diff --git a/polyconf/polyconf/Polymer.py b/polyconf/polyconf/Polymer.py index 33f16b9..c012b0a 100644 --- a/polyconf/polyconf/Polymer.py +++ b/polyconf/polyconf/Polymer.py @@ -92,6 +92,18 @@ def renamer(self, resid, namein, nameout='X'): self.polymer.select_atoms(f"resid {resid} and name {namein} and index {x}").atoms.names=[nameout+str(i)] + def newresid(self): + """ + Returns maximum resid in the polymer plus 1, thus the next available + resid number an incoming monomer can be assigned. + + :return: the polymer's current highest resid plus one. + :rtype: int + """ + n = max(self.polymer.residues.resids) + 1 + return n + + def maxresid(self): """ Returns maximum resid in the polymer @@ -150,9 +162,9 @@ def extend(self, monomer, n, nn, names, joins, ortho=[1,1,1], Further notes: * n and nn enable branching by specifying from and to connections between monomers and beta is analogous to segments - * extend a polymer u by a monomer u_, by fitting the backbone atoms (P2, Q2) from the new monomer to (P1,Q1) from the existing residue n, + * extend a polymer 'u' by a monomer 'u\_', by fitting the backbone atoms (P2, Q2) from the new monomer to (P1,Q1) from the existing residue n, then joins the monomer nn to the existing universe with a bond between each pair of atoms in joins - + ATOM NOMENCLATURE: * P1 and Q1 are atoms in monomer n * P2 and Q2 are dummy atoms in monomer nn, which correspond to the atoms P1 and Q1 diff --git a/polyconf/polyconf/polyconf_automatic.py b/polyconf/polyconf/polyconf_automatic.py index 1f48de7..9c16e3e 100644 --- a/polyconf/polyconf/polyconf_automatic.py +++ b/polyconf/polyconf/polyconf_automatic.py @@ -33,7 +33,64 @@ # fill = after polymer is extended based on count or frac, gencomp checks if the desired length is required # if the polymer has not reached the desired length, extends by choosing randomly from monomers where fill = True + def main(): + """ + A module for automatic, simultaneous building of united-atom, linear polymer + structures and parameters is accessible from the command line. The user + specifies the monomer chemistry, polymer length, and the number of structures + to create. This module is suitable for rapid creation of linear homopolymers, + or heteropolymers with random monomer ordering. A CSV of a specific format + (see below) must be made and supplied to the automated linear polymer + builder after the ‘--monomers’ argument. + + This CSV must have a column for each: ‘pdb path’, ‘itp path’, ‘position’, + ‘resname’, ‘fill’ and at least one of ‘count’ or ‘frac’. + + .. list-table:: Example csv + :widths: 25 25 25 25 25 25 + :header-rows: 1 + + * - resname + - count + - fill + - pdb path + - itp path + - position + * - PEII + - 1 + - 0 + - /path/to/PEII-monomer.pdb + - /path/to/PEII-monomer.itp + - initial + * - PEI_M + - 100 + - 1 + - /path/to/PEI_M-monomer.pdb + - /path/to/PEI_M-monomer.itp + - middle + * - PEIT + - 1 + - 0 + - /path/to/PEIT-monomer.pdb + - /path/to/PEIT-monomer.itp + - terminal + + A general and a specific command line example are both provided below: + + .. code-block:: + + polyconf-automatic --name desired-polymer-filename --nconfs 10 --count + --length 50 --monomers path/to/monomers.csv --shuffles 20 + --rotate bonded-atoms-to-shuffle --junctions real-atoms-to-join + --joiners corresponding-dummy-atoms + + .. code-block:: + + polyconf-automatic --count --length 10 --monomers monomers.csv + --name peipolymer --junctions N7 C51 --joiners C6 C62 --rotate C61 C5 + + """ print("\nWARNING") print("This automatic linear, united-atom polymer builder is newly developed and may not " "construct polymer topologies and coordinates as expected, please " diff --git a/polyconf_examples/build_PEI_linear.py b/polyconf_examples/build_PEI_linear.py index 963d3de..82cf2ba 100644 --- a/polyconf_examples/build_PEI_linear.py +++ b/polyconf_examples/build_PEI_linear.py @@ -1,6 +1,8 @@ #!/usr/bin/env python -from polyconf.polyconf import Monomer, Polymer, PDB +from polyconf.Monomer import Monomer +from polyconf.Polymer import Polymer +from polyconf.PDB import PDB ############################################################################### diff --git a/polyconf_examples/build_PMMA.py b/polyconf_examples/build_PMMA.py index e0bb3e0..f4efd86 100644 --- a/polyconf_examples/build_PMMA.py +++ b/polyconf_examples/build_PMMA.py @@ -1,6 +1,8 @@ #!/usr/bin/env python -from polyconf.polyconf import Monomer, Polymer, PDB +from polyconf.Monomer import Monomer +from polyconf.Polymer import Polymer +from polyconf.PDB import PDB import random ############################################################################### diff --git a/polytop/polytop/Angles.py b/polytop/polytop/Angles.py index c820180..f206e5e 100644 --- a/polytop/polytop/Angles.py +++ b/polytop/polytop/Angles.py @@ -61,18 +61,7 @@ def __init__(self, atom_a: Atom, atom_b: Atom, atom_c: Atom, self.dihedrals = set() @classmethod - def from_line(cls, line: str, atoms) -> Angle: - """ - Class method to construct Angle from the line of an ITP file and a - list of all Atoms present in the topology. - - :param line: the ITP file line - :type line: str - :param atoms: list of all Atoms in the Topology - :type atoms: List[Atom] - :return: the new Angle - :rtype: Angle - """ + def from_line(cls, line: str, atoms): parts = line.split() atom_a = atoms[int(parts[0]) - 1] atom_b = atoms[int(parts[1]) - 1] @@ -83,39 +72,13 @@ def from_line(cls, line: str, atoms) -> Angle: return cls(atom_a, atom_b, atom_c, angle_type, angle_value, force_constant) @staticmethod - def find_bonds(atom_a: Atom, atom_b: Atom, atom_c: Atom) -> tuple[Bond, Bond]: - """ - Class method to find two bonds present in this angle, between - A-B and B-C Atoms. - - :param atom_a: The first atom involved in the angle. - :type atom_a: Atom - :param atom_b: The central atom in the angle. - :type atom_b: Atom - :param atom_c: The third atom involved in the angle. - :type atom_c: Atom - :return: a tuple containing the A-B and B-C atom bonds in that order - :rtype: tuple[Bond, Bond] - """ + def find_bonds(atom_a: Atom, atom_b: Atom, atom_c: Atom): bond_ab = Bond.from_atoms(atom_a, atom_b) bond_bc = Bond.from_atoms(atom_b, atom_c) return bond_ab, bond_bc @staticmethod - def from_atoms(atom_a: Atom, atom_b: Atom, atom_c: Atom) -> Angle: - """ - Class method to construct Angle from three Atoms. There must be a bond - from atom_a to atom_b, and from atom_b to atom_c. - - :param atom_a: The first atom involved in the angle. - :type atom_a: Atom - :param atom_b: The central atom in the angle. - :type atom_b: Atom - :param atom_c: The third atom involved in the angle. - :type atom_c: Atom - :return: the new Angle - :rtype: Angle - """ + def from_atoms(atom_a: Atom, atom_b: Atom, atom_c: Atom): bond_a, bond_b = Angle.find_bonds(atom_a, atom_b, atom_c) if bond_a is None or bond_b is None: return None @@ -193,22 +156,7 @@ def __str__(self): def __repr__(self) -> str: return f"Angle({self.atom_a.atom_id}, {self.atom_b.atom_id}, {self.atom_c.atom_id})" - def to_dict(self) -> dict: - """ - Convert this Angle to a dictionary representation. - - The structure of the dictionary is as below: - {'atom_a': self.atom_a.atom_id, - 'atom_b': self.atom_b.atom_id, - 'atom_c': self.atom_c.atom_id, - 'angle_type': self.angle_type, - 'angle_value': self.angle_value, - 'force_constant': self.force_constant} - - :return: a dictionary containing the id's of its Atoms and other - attributes of this Angle. - :rtype: dict - """ + def to_dict(self): data = { 'atom_a': self.atom_a.atom_id, 'atom_b': self.atom_b.atom_id, diff --git a/polytop/polytop/Atoms.py b/polytop/polytop/Atoms.py index f6357b7..d763744 100644 --- a/polytop/polytop/Atoms.py +++ b/polytop/polytop/Atoms.py @@ -1,3 +1,4 @@ +from __future__ import annotations import re from typing import Any, List, Optional import warnings @@ -243,7 +244,7 @@ def remove(self): while self.exclusions: self.exclusions.pop().remove() - def bond_neighbours(self) -> set["Atom"]: + def bond_neighbours(self) -> set[Atom]: """ List all the atoms that this atom bonds with. @@ -324,7 +325,7 @@ def to_dict(self) -> dict: "y": self.y, "z": self.z} * Note that the self.formerly attribute will only be included with a - "formerly" key if the attribute is not None. + "formerly" key if the attribute is not None. :return: a dictionary containing the attributes of this Atom. :rtype: dict @@ -368,7 +369,7 @@ def from_dict(cls, data) -> "Atom": "y": self.y, "z": self.z} * Note that the "formerly" kew will only be present if it's value - is not None. + is not None. :param data: dictionary containing data to make an Atom, generate with 'to_dict()'. diff --git a/polytop/polytop/Bonds.py b/polytop/polytop/Bonds.py index 9d0ac63..b6f665d 100644 --- a/polytop/polytop/Bonds.py +++ b/polytop/polytop/Bonds.py @@ -2,9 +2,6 @@ from typing import Dict, List, Union -class Atom: - ... - class Bond: """ Represents a bond between two atoms in a molecular system. @@ -25,8 +22,8 @@ class Bond: """ def __init__( self, - atom_a: Atom, - atom_b: Atom, + atom_a: "Atom", + atom_b: "Atom", bond_type: int, bond_length: float, force_constant: float, @@ -86,7 +83,7 @@ def from_line(cls, line: str, atoms: List["Atom"]) -> Bond: return cls(atom_a, atom_b, bond_type, bond_length, force_constant) @staticmethod - def from_atoms(atom_a: Atom, atom_b: Atom) -> Bond: + def from_atoms(atom_a: "Atom", atom_b: "Atom") -> Bond: """ Class method to find and return Bond from between two Atoms. @@ -118,26 +115,26 @@ def from_atoms(atom_a: Atom, atom_b: Atom) -> Bond: None, ) - def contains_atom(self, atom: Atom) -> bool: + def contains_atom(self, atom: "Atom") -> bool: """ Check if this Bond contains a given atom. :param atom: the Atom you wish to check if it is in this Bond or not :type atom: Atom - :return: True if the Bond contains the given Atom, or False if not. + :return: True if the Bond contains the given "Atom", or False if not. :rtype: bool """ return atom in [self.atom_a, self.atom_b] - def clone_bond_changing(self, from_atom: Atom, to_atom: Atom) -> Bond: + def clone_bond_changing(self, from_atom: "Atom", to_atom: "Atom") -> Bond: """ Clone the bond, changing the atom that is being replaced. Used during the polymer.extend() algorithm to copy and modify bonds where a new Monomer is joined to the Polymer. - :param from_atom: the outgoing Atom, to be replaced + :param from_atom: the outgoing "Atom", to be replaced :type from_atom: Atom - :param to_atom: the incoming Atom, will replace the position of the + :param to_atom: the incoming "Atom", will replace the position of the outgoing Atom in this Bond :type to_atom: Atom :raises ValueError: if 'from_atom' is not in the Bond @@ -152,7 +149,7 @@ def clone_bond_changing(self, from_atom: Atom, to_atom: Atom) -> Bond: raise ValueError(f"Atom {from_atom} is not in bond {self}") return new_bond - def other_atom(self, atom: Atom)-> Atom: + def other_atom(self, atom: "Atom")-> Atom: """ Check if the given Atom is in this Angle and return a list of the other atoms present in this Angle (i.e. discluding 'atom'). @@ -171,7 +168,7 @@ def other_atom(self, atom: Atom)-> Atom: else: raise ValueError(f"Atom {atom} is not in bond {self}") - def LHS(self) -> set[Atom]: + def LHS(self) -> set["Atom"]: """ List of all atoms in the left-hand side of the bond. @@ -179,7 +176,7 @@ def LHS(self) -> set[Atom]: :rtype: set[Atom] """ LHS_atoms = set() - def traverse(atom: Atom): + def traverse(atom: "Atom"): if atom != self.atom_b: LHS_atoms.add(atom) neighbours = atom.bond_neighbours() @@ -190,7 +187,7 @@ def traverse(atom: Atom): traverse(self.atom_a) return LHS_atoms - def RHS(self) -> set[Atom]: + def RHS(self) -> set["Atom"]: """ List of all atoms in the right-hand side of the bond. @@ -198,7 +195,7 @@ def RHS(self) -> set[Atom]: :rtype: set[Atom] """ RHS_atoms = set() - def traverse(atom: Atom): + def traverse(atom: "Atom"): if atom != self.atom_a: RHS_atoms.add(atom) neighbours = atom.bond_neighbours() @@ -261,7 +258,7 @@ def to_dict(self) -> dict: } @classmethod - def from_dict(cls, data: Dict[str, Union[int, float]], atoms: List[Atom]) -> Bond: + def from_dict(cls, data: Dict[str, Union[int, float]], atoms: List["Atom"]) -> Bond: """ Create a new Bond from a dictionary, such as that created with Bond.to_dict(). Will retrieve an existing Bond if diff --git a/polytop/polytop/Dihedrals.py b/polytop/polytop/Dihedrals.py index 9b9cc80..933587a 100644 --- a/polytop/polytop/Dihedrals.py +++ b/polytop/polytop/Dihedrals.py @@ -6,10 +6,6 @@ from .Angles import Angle - -class Atom: - ... - class Dihedral_type(IntEnum): """ Enum to track Dihedral types including proper (1) and improper (2). @@ -23,9 +19,10 @@ class Dihedral_type(IntEnum): def is_rotational_constraint(self) -> bool: """ Proper dihedral: constrains torsional rotation around the BC bond - A -◟B - / - C◝- D + + | A -◟B | + | / | + | C◝- D | :return: True if this Dihedral is proper, and False if not. :rtype: bool @@ -37,9 +34,10 @@ def is_planar_constraint(self) -> bool: # """ Improper dihedral: constrains orientation of D WRT the CAB plane. In other words, the two angles are B-A-C and B-A-D - B - | - C -◜A◝ - D + + | B | + | | | + | C -◜A◝ - D | :return: True if this Dihedral is improper, and False if not. :rtype: bool @@ -71,10 +69,10 @@ class Dihedral: """ def __init__( self, - atom_a: Atom, - atom_b: Atom, - atom_c: Atom, - atom_d: Atom, + atom_a: "Atom", + atom_b: "Atom", + atom_c: "Atom", + atom_d: "Atom", dihedral_type: Dihedral_type, phase_angle: float, force_constant: float, @@ -176,10 +174,10 @@ def from_line(cls, line: str, atoms) -> Dihedral: @staticmethod def find_angles( - atom_a: Atom, - atom_b: Atom, - atom_c: Atom, - atom_d: Atom, + atom_a: "Atom", + atom_b: "Atom", + atom_c: "Atom", + atom_d: "Atom", ) -> tuple[Angle|None, Angle|None]: """ Class method to find Angles present in this Dihedral. @@ -220,18 +218,18 @@ def find_angles( return angle_bac, angle_bad return None, None - def contains_atom(self, atom: Atom) -> bool: + def contains_atom(self, atom: "Atom") -> bool: """ Check if this Dihedral contains a given Atom. :param atom: the Atom you wish to check if it is in this Dihedral or not :type atom: Atom - :return: True if the Dihedral contains the given Atom, or False if not + :return: True if the Dihedral contains the given "Atom", or False if not :rtype: bool """ return atom in [self.atom_a, self.atom_b, self.atom_c, self.atom_d] - def other_atoms(self, atom: Atom) -> List[Atom]: + def other_atoms(self, atom: "Atom") -> List["Atom"]: """ Check if the given Atom is in this Dihedral and return a list of the other atoms present in this Dihedral (i.e. discluding 'atom'). @@ -261,10 +259,10 @@ def remove(self): @staticmethod def from_atoms( - atom_a: Atom, - atom_b: Atom, - atom_c: Atom, - atom_d: Atom, + atom_a: "Atom", + atom_b: "Atom", + atom_c: "Atom", + atom_d: "Atom", ) -> Dihedral: """ Class method to construct Dihedral from four Atoms. There must be at @@ -289,15 +287,15 @@ def from_atoms( common_dihedrals = angle_a.dihedrals & angle_b.dihedrals return next(iter(common_dihedrals), None) - def clone_dihedral_changing(self, from_atom: Atom, to_atom: Atom) -> Dihedral: + def clone_dihedral_changing(self, from_atom: "Atom", to_atom: "Atom") -> Dihedral: """ Clone the dihedral, changing the atom that is being replaced. Used during the polymer.extend() algorithm to copy and modify angles where a new Monomer is joined to the Polymer. - :param from_atom: the outgoing Atom, to be replaced + :param from_atom: the outgoing "Atom", to be replaced :type from_atom: Atom - :param to_atom: the incoming Atom, will replace the position of the + :param to_atom: the incoming "Atom", will replace the position of the outgoing Atom in this Dihedral :type to_atom: Atom :raises ValueError: if 'from_atom' is not in the Dihedral @@ -355,7 +353,7 @@ def to_dict(self) -> dict: } @classmethod - def from_dict(cls, data: Dict[str, Union[int, float]], atoms: List[Atom]) -> Dihedral: + def from_dict(cls, data: Dict[str, Union[int, float]], atoms: List["Atom"]) -> Dihedral: """ Create a new Dihedral from a dictionary (such as that created with Dihedral.to_dict()) and list of Atoms. Will retrieve an existing diff --git a/polytop/polytop/Exclusions.py b/polytop/polytop/Exclusions.py index 60aa300..1788938 100644 --- a/polytop/polytop/Exclusions.py +++ b/polytop/polytop/Exclusions.py @@ -2,11 +2,6 @@ from typing import Dict, List, Union - -class Atom: - ... - - class Exclusion: """ Represents non-bonded interactions between two atoms in a molecular system. @@ -16,7 +11,7 @@ class Exclusion: :param atom_b: The second atom involved in the exclusion. :type atom_b: Atom """ - def __init__(self, atom_a: Atom, atom_b: Atom): + def __init__(self, atom_a: "Atom", atom_b: "Atom"): """ Represents exclusions (i.e. non-bonded interactions) between two atoms in a molecular system. @@ -32,7 +27,7 @@ def __init__(self, atom_a: Atom, atom_b: Atom): atom_b.exclusions.add(self) @classmethod - def from_line(cls, line: str, atoms: List[Atom], indexes=[0, 1]) -> Exclusion: + def from_line(cls, line: str, atoms: List["Atom"], indexes=[0, 1]) -> Exclusion: """ Class method to construct Exclusion from the line of an ITP file and a list of all Atom's present in the topology. @@ -40,7 +35,7 @@ def from_line(cls, line: str, atoms: List[Atom], indexes=[0, 1]) -> Exclusion: :param line: the ITP file line :type line: str :param atoms: list of all Atoms in the Topology - :type atoms: List[Atom] + :type atoms: List["Atom"] :param indexes: optional tuple of values to index into elements of the line, defaults to [0, 1] :type indexes: list, optional @@ -85,7 +80,7 @@ def to_dict(self) -> dict: } @classmethod - def from_dict(cls, data: Dict[str, Union[int, float]], atoms: List[Atom]) -> Exclusion: + def from_dict(cls, data: Dict[str, Union[int, float]], atoms: List["Atom"]) -> Exclusion: """ Create a new Exclusion from a dictionary (such as that created with Exclusion.to_dict()) and list of Atoms. @@ -100,7 +95,7 @@ def from_dict(cls, data: Dict[str, Union[int, float]], atoms: List[Atom]) -> Exc :param atoms: list of Atoms. The list may contain more than 2 atoms, as long as the id's of the two atoms specified in the data dict are present. - :type atoms: List[Atom] + :type atoms: List["Atom"] :return: a new Exclusion :rtype: Exclusion """ diff --git a/polytop/polytop/Gromacs.py b/polytop/polytop/Gromacs.py index fb6ffa3..92999cb 100644 --- a/polytop/polytop/Gromacs.py +++ b/polytop/polytop/Gromacs.py @@ -1,5 +1,6 @@ import subprocess from pathlib import Path +from typing import List class Gromacs: """ @@ -26,7 +27,7 @@ def __init__(self, data_dir: Path, output_dir: Path): self.data_dir = data_dir self.output_dir = output_dir - def run(self, gromacs_commands: list[str], output_file_name: str): + def run(self, gromacs_commands: list, output_file_name: str): # gromacs_commands type = list[str] docker_commands = [ "docker", "run", @@ -50,12 +51,18 @@ def run(self, gromacs_commands: list[str], output_file_name: str): def run_simulation(self, mdp_file: str, gro_file: str, top_file: str, tpr_file: str, block: bool = True): """ Runs a GROMACS simulation using the given mdp, gro, and top files. - Args: - mdp_file (str): the name of the parameter file - gro_file (str): the name of the molecular structure file - top_file (str): the name of the topology file - tpr_file (str): the name of the portable binary run input file - block (bool): if True, then wait until the simulation has finished, otherwise run in the background + + :param mdp_file: the name of the parameter file + :type mdp_file: str + :param gro_file: the name of the molecular structure file + :type gro_file: str + :param top_file: the name of the topology file + :type top_file: str + :param tpr_file: the name of the portable binary run input file + :type tpr_file: str + :param block: if True, then wait until the simulation has finished, + otherwise run in the background, defaults to True + :type block: bool, optional """ gromacs_commands = ["gmx", "grompp", "-f", f"/data/{mdp_file}", "-c", f"/data/{gro_file}", "-p", f"/data/{top_file}", "-o", f"/output/{tpr_file}"] docker_commands = [ diff --git a/polytop/polytop/Junction.py b/polytop/polytop/Junction.py index 9a5d775..0199e2c 100644 --- a/polytop/polytop/Junction.py +++ b/polytop/polytop/Junction.py @@ -1,6 +1,9 @@ from __future__ import annotations from typing import List +from .Atoms import Atom +from .Bonds import Bond + class Junction: """ Junctions are the polymerization sites of a monomer topology. They are @@ -20,8 +23,6 @@ class Junction: :raises ValueError: if a Junction cannot be determined from the two provided atoms (i.e. if they are not bonded). """ - from .Atoms import Atom - from .Bonds import Bond #TODO: make name enforcably not optional def __init__(self, monomer_atom: Atom, residue_atom: Atom, name: str = None): @@ -63,7 +64,7 @@ def named(self, newname: str) -> "Junction": Depreciation warning: * This function will be depreciated shortly in favour of enforced - setting the name attribute of a Junction when it is created. + setting the name attribute of a Junction when it is created. Instead of: junction = Junction(atomA, atomB).named("name") Use: junction = Junction(atomA, atomB, name="name") @@ -111,7 +112,6 @@ def from_dict(cls, data: dict, atoms: List[Atom]): :rtype: Junction """ name = data["name"] - from .Atoms import Atom monomer_atom_name = data["monomer_atom"] monomer_atom = next(atom for atom in atoms if atom.atom_name == monomer_atom_name) residue_atom_name = data["residue_atom"] @@ -210,7 +210,6 @@ def to_dict(self) -> list[dict]: """ return [junction.to_dict() for junction in self] - from .Atoms import Atom @classmethod def from_dict(cls, data: list, atoms: List[Atom]) -> "Junctions": """ diff --git a/polytop/polytop/Molecule.py b/polytop/polytop/Molecule.py index 4671de6..0aa9bba 100644 --- a/polytop/polytop/Molecule.py +++ b/polytop/polytop/Molecule.py @@ -16,7 +16,6 @@ def fromITP(cls, arg): raise NotImplemented("fromITP only accepts ITP or str(filename) as arguments") @fromITP.register - @classmethod def _(cls, ITPObject: ITP): newMolecule = cls() newMolecule.atoms = ITPObject.atoms @@ -25,7 +24,6 @@ def _(cls, ITPObject: ITP): return newMolecule @fromITP.register - @classmethod def _(cls, filename: str): ITP_file = ITP() ITP_file.load(filename) diff --git a/polytop/polytop/Monomer.py b/polytop/polytop/Monomer.py index 9fe196e..bfc9b93 100644 --- a/polytop/polytop/Monomer.py +++ b/polytop/polytop/Monomer.py @@ -4,7 +4,7 @@ from typing import Tuple, Union, List from .Junction import Junction, Junctions - +from .Polymer import Polymer from .Bonds import Bond from .Topology import Topology @@ -37,8 +37,6 @@ def __init__(self, topology: Topology, junctions: Union[Junctions, List[Junction junctions_obj.add(junction) self.junctions = junctions_obj - from .Polymer import Polymer - @classmethod def from_Polymer(cls, polymer: Polymer) -> Monomer: """ diff --git a/polytop/polytop/Pairs.py b/polytop/polytop/Pairs.py index 11a2cab..6c2b832 100644 --- a/polytop/polytop/Pairs.py +++ b/polytop/polytop/Pairs.py @@ -2,9 +2,6 @@ from typing import Dict, List, Union -class Atom: - ... - class Pair: """ Represents interactions between a pair of atoms in a molecular system not @@ -17,7 +14,7 @@ class Pair: :param pair_type: The type of the pair (e.g., 1-4 interactions). :type pair_type: int """ - def __init__(self, atom_a: Atom, atom_b: Atom, pair_type: int): + def __init__(self, atom_a: "Atom", atom_b: "Atom", pair_type: int): """ Represents interactions between a pair of atoms in a molecular system not reflected by bonds. @@ -36,7 +33,7 @@ def __init__(self, atom_a: Atom, atom_b: Atom, pair_type: int): atom_b.pairs.add(self) @classmethod - def from_line(cls, line: str, atoms: List[Atom]) -> Pair: + def from_line(cls, line: str, atoms: List["Atom"]) -> Pair: """ Class method to construct Pair from the line of an ITP file. @@ -54,7 +51,7 @@ def from_line(cls, line: str, atoms: List[Atom]) -> Pair: return cls(atom_a, atom_b, pair_type) @staticmethod - def from_atoms(atom_a: Atom, atom_b: Atom) -> Pair: + def from_atoms(atom_a: "Atom", atom_b: "Atom") -> Pair: """ Class method to construct Pair from two Atoms. @@ -112,7 +109,7 @@ def to_dict(self) -> dict: } @classmethod - def from_dict(cls, data: Dict[str, Union[int, float]], atoms: List[Atom]) -> Pair: + def from_dict(cls, data: Dict[str, Union[int, float]], atoms: List["Atom"]) -> Pair: """ Create a new Pair from a dictionary (such as that created with Pair.to_dict()) and list of Atoms. diff --git a/polytop/polytop/polytop_automatic.py b/polytop/polytop/polytop_automatic.py index 85ba067..775cf5a 100644 --- a/polytop/polytop/polytop_automatic.py +++ b/polytop/polytop/polytop_automatic.py @@ -17,9 +17,6 @@ class Automatic: - """ - doctrings go brr - """ def __init__(self, orderedList, itp_monomers, numMonomers, monomerList, junctions, dummies) -> None: self.directions = orderedList self.sizeOfPolymer = numMonomers diff --git a/tests/test_angles.py b/tests/test_angles.py index 1a72751..89bacd8 100644 --- a/tests/test_angles.py +++ b/tests/test_angles.py @@ -1,8 +1,8 @@ import json from pathlib import Path -from polytop.Angles import Angle -from polytop.Atoms import Atom -from polytop.Bonds import Bond +from polytop.polytop.Angles import Angle +from polytop.polytop.Atoms import Atom +from polytop.polytop.Bonds import Bond def test_angle_creation()->None: diff --git a/tests/test_atoms.py b/tests/test_atoms.py index fb905ba..67f003c 100644 --- a/tests/test_atoms.py +++ b/tests/test_atoms.py @@ -1,7 +1,7 @@ import json from pathlib import Path -from polytop.Atoms import Atom -from polytop.Topology import Topology +from polytop.polytop.Atoms import Atom +from polytop.polytop.Topology import Topology def test_atom_creation(): diff --git a/tests/test_bonds.py b/tests/test_bonds.py index 6268f8f..7aa9ce8 100644 --- a/tests/test_bonds.py +++ b/tests/test_bonds.py @@ -2,9 +2,9 @@ from pathlib import Path import pytest -from polytop.Atoms import Atom -from polytop.Bonds import Bond -from polytop.Topology import Topology +from polytop.polytop.Atoms import Atom +from polytop.polytop.Bonds import Bond +from polytop.polytop.Topology import Topology def test_bond_creation()->None: diff --git a/tests/test_dihedrals.py b/tests/test_dihedrals.py index 27d4f33..c9263f6 100644 --- a/tests/test_dihedrals.py +++ b/tests/test_dihedrals.py @@ -1,10 +1,10 @@ import json from pathlib import Path -from polytop.Angles import Angle -from polytop.Atoms import Atom -from polytop.Dihedrals import Dihedral, Dihedral_type -from polytop.Bonds import Bond -from polytop.Topology import Topology +from polytop.polytop.Angles import Angle +from polytop.polytop.Atoms import Atom +from polytop.polytop.Dihedrals import Dihedral, Dihedral_type +from polytop.polytop.Bonds import Bond +from polytop.polytop.Topology import Topology def test_proper_dihedral_creation()->None: diff --git a/tests/test_gromacs.py b/tests/test_gromacs.py index 8fd4829..076b18e 100644 --- a/tests/test_gromacs.py +++ b/tests/test_gromacs.py @@ -1,6 +1,6 @@ from pathlib import Path from polytop import * -from polytop.Gromacs import Gromacs +from polytop.polytop.Gromacs import Gromacs import subprocess import os diff --git a/tests/test_junctions.py b/tests/test_junctions.py index 1696b3a..7959501 100644 --- a/tests/test_junctions.py +++ b/tests/test_junctions.py @@ -1,8 +1,8 @@ import json from pathlib import Path -from polytop.Monomer import Monomer -from polytop.Topology import Topology -from polytop.Junction import Junction, Junctions +from polytop.polytop.Monomer import Monomer +from polytop.polytop.Topology import Topology +from polytop.polytop.Junction import Junction, Junctions def test_junctions(data_dir: Path): diff --git a/tests/test_moleculetype.py b/tests/test_moleculetype.py index edaa849..bd0a5aa 100644 --- a/tests/test_moleculetype.py +++ b/tests/test_moleculetype.py @@ -1,6 +1,6 @@ import json from pathlib import Path -from polytop.Molecule_type import MoleculeType +from polytop.polytop.Molecule_type import MoleculeType def test_serialization(output_dir: Path): moltype = MoleculeType("ARG", 3) diff --git a/tests/test_monomer.py b/tests/test_monomer.py index a2f9206..7159b5d 100644 --- a/tests/test_monomer.py +++ b/tests/test_monomer.py @@ -1,8 +1,8 @@ import json from pathlib import Path -from polytop.Monomer import Monomer -from polytop.Topology import Topology -from polytop.Junction import Junction, Junctions +from polytop.polytop.Monomer import Monomer +from polytop.polytop.Topology import Topology +from polytop.polytop.Junction import Junction, Junctions def test_monomer_ARG(data_dir: Path ): diff --git a/tests/test_polymer.py b/tests/test_polymer.py index 4b918a5..f59de57 100644 --- a/tests/test_polymer.py +++ b/tests/test_polymer.py @@ -3,11 +3,11 @@ import random import pytest -from polytop.Junction import Junction -from polytop.Monomer import Monomer -from polytop.Visualize import Visualize -from polytop.Polymer import Polymer -from polytop.Topology import Topology +from polytop.polytop.Junction import Junction +from polytop.polytop.Monomer import Monomer +from polytop.polytop.Visualize import Visualize +from polytop.polytop.Polymer import Polymer +from polytop.polytop.Topology import Topology diff --git a/tests/test_polymerization_type.py b/tests/test_polymerization_type.py index 37c636f..9c1e3d8 100644 --- a/tests/test_polymerization_type.py +++ b/tests/test_polymerization_type.py @@ -1,7 +1,7 @@ import json -from polytop.Monomer import Monomer -from polytop.Topology import Topology -from polytop.Polymerization_type import PolymerizationType +from polytop.polytop.Monomer import Monomer +from polytop.polytop.Topology import Topology +from polytop.polytop.Polymerization_type import PolymerizationType def test_PolymerJunction(): junction_type = PolymerizationType("carboxylic","amino") diff --git a/tests/test_topology.py b/tests/test_topology.py index 5a2a4c2..4906e41 100644 --- a/tests/test_topology.py +++ b/tests/test_topology.py @@ -1,10 +1,10 @@ import json from pathlib import Path from polytop import * -from polytop.Atoms import Atom -from polytop.Bonds import Bond -from polytop.Topology import Topology -from polytop.Visualize import Visualize +from polytop.polytop.Atoms import Atom +from polytop.polytop.Bonds import Bond +from polytop.polytop.Topology import Topology +from polytop.polytop.Visualize import Visualize import pytest def test_invalid_file(data_dir: Path): @@ -129,7 +129,7 @@ def test_topology_auto_rename_atoms(data_dir: Path, output_dir: Path): assert arg_max_atom_index["N"] == 4 assert arg_max_atom_index["O"] == 2 - +@pytest.mark.xfail(reason="New method of separating atoms into unique charge groups and renumbering them before saving to ITP is breaking this test.") def test_reverse_topology(data_dir: Path, output_dir: Path): glu = Topology.from_ITP(data_dir/"glutamine.itp") reverse_glu = glu.reverse() @@ -142,7 +142,7 @@ def same_properties(atom_a,atom_b)-> bool: return False if glu_atom.residue_id != rev_glu_atom.residue_id: return False - # assert arg_atoms[i].charge_group_num == rev_arg_atom.charge_group_num # it is not dependent on order but grouping + # assert glu_atoms[i].charge_group_num == rev_glu_atom.charge_group_num # it is not dependent on order but grouping # TODO: fix partial charges after reverse, which are currently failing if glu_atom.partial_charge != rev_glu_atom.partial_charge: return False diff --git a/tests/test_visualize.py b/tests/test_visualize.py index f7b247a..8286d8d 100644 --- a/tests/test_visualize.py +++ b/tests/test_visualize.py @@ -1,10 +1,10 @@ from pathlib import Path import pytest -from polytop.Junction import Junction, Junctions -from polytop.Monomer import Monomer -from polytop.Topology import Topology -from polytop.Visualize import Visualize +from polytop.polytop.Junction import Junction, Junctions +from polytop.polytop.Monomer import Monomer +from polytop.polytop.Topology import Topology +from polytop.polytop.Visualize import Visualize import os import py3Dmol @@ -30,7 +30,7 @@ def test_2D_monomer(data_dir: Path, output_dir: Path): # assert image was created assert os.path.exists(image_path) -@pytest.mark.xfail(reason="Visualize can not infer hydrogen atom types from 'HC' atoms in the glucose topology file.") +# @pytest.mark.xfail(reason="Visualize can not infer hydrogen atom types from 'HC' atoms in the glucose topology file.") def test_visualize_GLU(data_dir: Path, output_dir: Path): glu = Topology.from_ITP(data_dir/"glucose.itp")