@mat3ra/esse 2025.4.26-0 → 2025.5.16-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/.eslintrc.json +3 -9
  2. package/.prettierrc +2 -1
  3. package/dist/js/esse/JSONSchemasGenerator.js +10 -2
  4. package/dist/js/esse/utils.js +6 -0
  5. package/dist/js/example/apse/materials/builders/slab/pymatgen/parameters.json +6 -0
  6. package/dist/js/example/material/builders/base/selector_parameters.json +3 -0
  7. package/dist/js/example/material/builders/single_material/two_dimensional/slab/selector_parameters.json +6 -0
  8. package/dist/js/example/material/reusable/repetitions.json +5 -0
  9. package/dist/js/example/material/reusable/slab/miller_indices.json +5 -0
  10. package/dist/js/example/material/reusable/slab/number_of_layers.json +1 -0
  11. package/dist/js/example/material/reusable/slab/termination.json +4 -0
  12. package/dist/js/example/material/reusable/slab/vacuum.json +1 -0
  13. package/dist/js/example/material/reusable/supercell_matrix_2d.json +10 -0
  14. package/dist/js/example/material/reusable/supercell_matrix_3d.json +17 -0
  15. package/dist/js/example/materials_category/single_material/two_dimensional/slab/configuration.json +150 -0
  16. package/dist/js/schema/apse/materials/builders/slab/pymatgen/parameters.json +33 -0
  17. package/dist/js/schema/core/abstract/coordinate_2d.json +11 -0
  18. package/dist/js/schema/material/builders/base/selector_parameters.json +15 -0
  19. package/dist/js/schema/material/builders/single_material/two_dimensional/slab/builder_parameters.json +33 -0
  20. package/dist/js/schema/material/builders/single_material/two_dimensional/slab/selector_parameters.json +31 -0
  21. package/dist/js/schema/material/reusable/repetitions.json +18 -0
  22. package/dist/js/schema/material/reusable/slab/enums.json +11 -0
  23. package/dist/js/schema/material/reusable/slab/miller_indices.json +17 -0
  24. package/dist/js/schema/material/reusable/slab/number_of_layers.json +9 -0
  25. package/dist/js/schema/material/reusable/slab/termination.json +23 -0
  26. package/dist/js/schema/material/reusable/slab/vacuum.json +9 -0
  27. package/dist/js/schema/material/reusable/supercell_matrix_2d.json +27 -0
  28. package/dist/js/schema/material/reusable/supercell_matrix_3d.json +34 -0
  29. package/dist/js/schema/materials_category/single_material/two_dimensional/slab/configuration.json +709 -0
  30. package/dist/js/schemas.json +1 -1
  31. package/dist/js/types.d.ts +433 -0
  32. package/example/apse/materials/builders/slab/pymatgen/parameters.json +6 -0
  33. package/example/material/builders/base/selector_parameters.json +3 -0
  34. package/example/material/builders/single_material/two_dimensional/slab/selector_parameters.json +6 -0
  35. package/example/material/reusable/repetitions.json +1 -0
  36. package/example/material/reusable/slab/miller_indices.json +5 -0
  37. package/example/material/reusable/slab/number_of_layers.json +1 -0
  38. package/example/material/reusable/slab/termination.json +4 -0
  39. package/example/material/reusable/slab/vacuum.json +1 -0
  40. package/example/material/reusable/supercell_matrix_2d.json +10 -0
  41. package/example/material/reusable/supercell_matrix_3d.json +5 -0
  42. package/example/materials_category/single_material/two_dimensional/slab/configuration.json +25 -0
  43. package/package.json +10 -4
  44. package/schema/apse/materials/builders/slab/pymatgen/parameters.json +33 -0
  45. package/schema/core/abstract/coordinate_2d.json +11 -0
  46. package/schema/material/builders/base/selector_parameters.json +15 -0
  47. package/schema/material/builders/single_material/two_dimensional/slab/builder_parameters.json +12 -0
  48. package/schema/material/builders/single_material/two_dimensional/slab/selector_parameters.json +12 -0
  49. package/schema/material/reusable/repetitions.json +18 -0
  50. package/schema/material/reusable/slab/enums.json +11 -0
  51. package/schema/material/reusable/slab/miller_indices.json +17 -0
  52. package/schema/material/reusable/slab/number_of_layers.json +9 -0
  53. package/schema/material/reusable/slab/termination.json +23 -0
  54. package/schema/material/reusable/slab/vacuum.json +9 -0
  55. package/schema/material/reusable/supercell_matrix_2d.json +27 -0
  56. package/schema/material/reusable/supercell_matrix_3d.json +34 -0
  57. package/schema/materials_category/single_material/two_dimensional/slab/configuration.json +42 -0
  58. package/src/js/esse/JSONSchemasGenerator.ts +11 -1
  59. package/src/js/esse/utils.ts +8 -2
@@ -1545,6 +1545,28 @@ export interface PwxMainSchema {
1545
1545
  })[];
1546
1546
  };
1547
1547
  }
1548
+ /** Schema dist/js/schema/apse/materials/builders/slab/pymatgen/parameters.json */
1549
+ /**
1550
+ * Parameters for the Pymatgen slab generator. https://github.com/materialsproject/pymatgen/blob/585bb673c4aa222669c4b0d72ffeec3dbf092630/pymatgen/core/surface.py#L1187
1551
+ */
1552
+ export interface PymatgenSlabGeneratorParametersSchema {
1553
+ /**
1554
+ * Minimum size of the vacuum in layers or angstroms
1555
+ */
1556
+ min_vacuum_size?: number;
1557
+ /**
1558
+ * Whether to cleave in unit planes
1559
+ */
1560
+ in_unit_planes?: boolean;
1561
+ /**
1562
+ * Whether to reorient the lattice
1563
+ */
1564
+ reorient_lattice?: boolean;
1565
+ /**
1566
+ * Whether to symmetrize the slab
1567
+ */
1568
+ symmetrize?: boolean;
1569
+ }
1548
1570
  /** Schema dist/js/schema/core/abstract/2d_data.json */
1549
1571
  export interface DimensionDataSchema {
1550
1572
  /**
@@ -1600,6 +1622,12 @@ export interface DimensionalGridSchema {
1600
1622
  */
1601
1623
  shifts: [number, number, number];
1602
1624
  }
1625
+ /** Schema dist/js/schema/core/abstract/coordinate_2d.json */
1626
+ /**
1627
+ * @minItems 2
1628
+ * @maxItems 2
1629
+ */
1630
+ export type Coordinate2DSchema = [number, number];
1603
1631
  /** Schema dist/js/schema/core/abstract/coordinate_3d.json */
1604
1632
  /**
1605
1633
  * @minItems 3
@@ -6125,6 +6153,57 @@ export interface JobSchema {
6125
6153
  isDefault?: boolean;
6126
6154
  metadata?: {};
6127
6155
  }
6156
+ /** Schema dist/js/schema/material/builders/base/selector_parameters.json */
6157
+ /**
6158
+ * Base parameters for all builder selectors
6159
+ */
6160
+ export interface BaseSelectorParametersSchema {
6161
+ /**
6162
+ * Default index for the selector
6163
+ */
6164
+ default_index?: number;
6165
+ }
6166
+ /** Schema dist/js/schema/material/builders/single_material/two_dimensional/slab/builder_parameters.json */
6167
+ /**
6168
+ * Parameters for the slab builder
6169
+ */
6170
+ export interface SlabBuilderParametersSchema {
6171
+ /**
6172
+ * Minimum size of the vacuum in layers or angstroms
6173
+ */
6174
+ min_vacuum_size?: number;
6175
+ /**
6176
+ * Whether to cleave in unit planes
6177
+ */
6178
+ in_unit_planes?: boolean;
6179
+ /**
6180
+ * Whether to reorient the lattice
6181
+ */
6182
+ reorient_lattice?: boolean;
6183
+ /**
6184
+ * Whether to symmetrize the slab
6185
+ */
6186
+ symmetrize?: boolean;
6187
+ }
6188
+ /** Schema dist/js/schema/material/builders/single_material/two_dimensional/slab/selector_parameters.json */
6189
+ /**
6190
+ * Parameters for slab selection
6191
+ */
6192
+ export interface SlabSelectorParametersSchema {
6193
+ /**
6194
+ * Defines a specific termination of a slab
6195
+ */
6196
+ termination?: {
6197
+ /**
6198
+ * Chemical elements at the termination
6199
+ */
6200
+ chemical_elements: string;
6201
+ /**
6202
+ * Space group symmetry designation for the termination
6203
+ */
6204
+ space_group_symmetry_label: string;
6205
+ };
6206
+ }
6128
6207
  /** Schema dist/js/schema/material/consistency_check.json */
6129
6208
  /**
6130
6209
  * The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.
@@ -6151,6 +6230,64 @@ export interface MaterialConsistencyCheckSchema {
6151
6230
  export interface MaterialConventionalSchema {
6152
6231
  conventional?: {};
6153
6232
  }
6233
+ /** Schema dist/js/schema/material/reusable/repetitions.json */
6234
+ /**
6235
+ * Number of unit cells to repeat in each direction for a crystal structure.
6236
+ *
6237
+ * @minItems 3
6238
+ * @maxItems 3
6239
+ */
6240
+ export type CrystalRepetitionsSchema = [number, number, number];
6241
+ /** Schema dist/js/schema/material/reusable/slab/enums.json */
6242
+ export type SurfaceTypesEnum = "top" | "bottom" | "both";
6243
+ /** Schema dist/js/schema/material/reusable/slab/miller_indices.json */
6244
+ /**
6245
+ * Miller indices for crystallographic plane designation
6246
+ *
6247
+ * @minItems 3
6248
+ * @maxItems 3
6249
+ */
6250
+ export type MillerIndicesSchema = [number, number, number];
6251
+ /** Schema dist/js/schema/material/reusable/slab/number_of_layers.json */
6252
+ /**
6253
+ * Number of atomic layers in a structural component
6254
+ */
6255
+ export type NumberOfLayersSchema = number;
6256
+ /** Schema dist/js/schema/material/reusable/slab/termination.json */
6257
+ /**
6258
+ * Defines a specific termination of a slab
6259
+ */
6260
+ export interface TerminationSchema {
6261
+ /**
6262
+ * Chemical elements at the termination
6263
+ */
6264
+ chemical_elements: string;
6265
+ /**
6266
+ * Space group symmetry designation for the termination
6267
+ */
6268
+ space_group_symmetry_label: string;
6269
+ }
6270
+ /** Schema dist/js/schema/material/reusable/slab/vacuum.json */
6271
+ /**
6272
+ * Vacuum thickness in Angstroms
6273
+ */
6274
+ export type VacuumSchema = number;
6275
+ /** Schema dist/js/schema/material/reusable/supercell_matrix_2d.json */
6276
+ /**
6277
+ * Supercell matrix for xy plane transformations
6278
+ *
6279
+ * @minItems 2
6280
+ * @maxItems 2
6281
+ */
6282
+ export type SupercellMatrix2DSchema = [[number, number], [number, number]];
6283
+ /** Schema dist/js/schema/material/reusable/supercell_matrix_3d.json */
6284
+ /**
6285
+ * 3x3 matrix of integers for transforming a unit cell into a supercell
6286
+ *
6287
+ * @minItems 3
6288
+ * @maxItems 3
6289
+ */
6290
+ export type SupercellMatrix3DSchema = [[number, number, number], [number, number, number], [number, number, number]];
6154
6291
  /** Schema dist/js/schema/material.json */
6155
6292
  export interface MaterialSchema {
6156
6293
  /**
@@ -6408,6 +6545,302 @@ export interface MaterialSchema {
6408
6545
  isDefault?: boolean;
6409
6546
  metadata?: {};
6410
6547
  }
6548
+ /** Schema dist/js/schema/materials_category/single_material/two_dimensional/slab/configuration.json */
6549
+ /**
6550
+ * Configuration for creating a slab from a bulk material
6551
+ */
6552
+ export interface SlabConfigurationSchema {
6553
+ bulk?: {
6554
+ /**
6555
+ * reduced chemical formula
6556
+ */
6557
+ formula?: string;
6558
+ /**
6559
+ * chemical formula based on the number of atoms of each element in the supercell
6560
+ */
6561
+ unitCellFormula?: string;
6562
+ basis: {
6563
+ /**
6564
+ * atomic elements schema
6565
+ */
6566
+ elements: {
6567
+ /**
6568
+ * value of this entry
6569
+ */
6570
+ value: string;
6571
+ /**
6572
+ * integer id of this entry
6573
+ */
6574
+ id: number;
6575
+ }[];
6576
+ /**
6577
+ * atomic coordinates schema
6578
+ */
6579
+ coordinates: {
6580
+ /**
6581
+ * value of this entry
6582
+ *
6583
+ * @minItems 3
6584
+ * @maxItems 3
6585
+ */
6586
+ value: [number, number, number];
6587
+ /**
6588
+ * integer id of this entry
6589
+ */
6590
+ id: number;
6591
+ }[];
6592
+ units?: "crystal" | "cartesian";
6593
+ /**
6594
+ * atomic labels schema
6595
+ */
6596
+ labels?: {
6597
+ /**
6598
+ * value of this entry
6599
+ */
6600
+ value: (number | string | number) | number;
6601
+ /**
6602
+ * integer id of this entry
6603
+ */
6604
+ id: number;
6605
+ }[];
6606
+ };
6607
+ lattice: {
6608
+ /**
6609
+ * length of the first lattice vector
6610
+ */
6611
+ a: number;
6612
+ /**
6613
+ * length of the second lattice vector
6614
+ */
6615
+ b: number;
6616
+ /**
6617
+ * length of the third lattice vector
6618
+ */
6619
+ c: number;
6620
+ /**
6621
+ * angle between first and second lattice vector
6622
+ */
6623
+ alpha: number;
6624
+ /**
6625
+ * angle between second and third lattice vector
6626
+ */
6627
+ beta: number;
6628
+ /**
6629
+ * angle between first and third lattice vector
6630
+ */
6631
+ gamma: number;
6632
+ vectors?: {
6633
+ /**
6634
+ * @minItems 3
6635
+ * @maxItems 3
6636
+ */
6637
+ a: [number, number, number];
6638
+ /**
6639
+ * @minItems 3
6640
+ * @maxItems 3
6641
+ */
6642
+ b: [number, number, number];
6643
+ /**
6644
+ * @minItems 3
6645
+ * @maxItems 3
6646
+ */
6647
+ c: [number, number, number];
6648
+ /**
6649
+ * lattice parameter for fractional coordinates
6650
+ */
6651
+ alat?: number;
6652
+ units?: "angstrom" | "bohr";
6653
+ };
6654
+ type?: "CUB" | "BCC" | "FCC" | "TET" | "MCL" | "ORC" | "ORCC" | "ORCF" | "ORCI" | "HEX" | "BCT" | "TRI" | "MCLC" | "RHL";
6655
+ units?: {
6656
+ length?: "angstrom" | "bohr";
6657
+ angle?: "degree" | "radian";
6658
+ };
6659
+ };
6660
+ derivedProperties?: ({
6661
+ name?: "volume";
6662
+ units?: "angstrom^3";
6663
+ value: number;
6664
+ } | {
6665
+ name?: "density";
6666
+ units?: "g/cm^3";
6667
+ value: number;
6668
+ } | {
6669
+ /**
6670
+ * point group symbol in Schoenflies notation
6671
+ */
6672
+ pointGroupSymbol?: string;
6673
+ /**
6674
+ * space group symbol in Hermann–Mauguin notation
6675
+ */
6676
+ spaceGroupSymbol?: string;
6677
+ /**
6678
+ * tolerance used for symmetry calculation
6679
+ */
6680
+ tolerance?: {
6681
+ units?: "angstrom";
6682
+ value: number;
6683
+ };
6684
+ name?: "symmetry";
6685
+ } | {
6686
+ name?: "elemental_ratio";
6687
+ value: number;
6688
+ /**
6689
+ * the element this ratio is for
6690
+ */
6691
+ element?: string;
6692
+ } | {
6693
+ name?: "p-norm";
6694
+ /**
6695
+ * degree of the dimensionality of the norm
6696
+ */
6697
+ degree?: number;
6698
+ value: number;
6699
+ } | {
6700
+ name?: "inchi";
6701
+ value: string;
6702
+ } | {
6703
+ name?: "inchi_key";
6704
+ value: string;
6705
+ })[];
6706
+ /**
6707
+ * information about a database source
6708
+ */
6709
+ external?: {
6710
+ /**
6711
+ * ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32
6712
+ */
6713
+ id: string | number;
6714
+ /**
6715
+ * Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.
6716
+ */
6717
+ source: string;
6718
+ /**
6719
+ * Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).
6720
+ */
6721
+ origin: boolean;
6722
+ /**
6723
+ * Original response from external source.
6724
+ */
6725
+ data?: {};
6726
+ /**
6727
+ * Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506
6728
+ */
6729
+ doi?: string;
6730
+ /**
6731
+ * The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers
6732
+ */
6733
+ url?: string;
6734
+ };
6735
+ /**
6736
+ * file source with the information inside
6737
+ */
6738
+ src?: {
6739
+ /**
6740
+ * file extension
6741
+ */
6742
+ extension?: string;
6743
+ /**
6744
+ * file name without extension
6745
+ */
6746
+ filename: string;
6747
+ /**
6748
+ * file content as raw text
6749
+ */
6750
+ text: string;
6751
+ /**
6752
+ * MD5 hash based on file content
6753
+ */
6754
+ hash: string;
6755
+ };
6756
+ /**
6757
+ * Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).
6758
+ */
6759
+ scaledHash?: string;
6760
+ /**
6761
+ * Corresponding ICSD id of the material
6762
+ */
6763
+ icsdId?: number;
6764
+ /**
6765
+ * Whether to work in the finite molecular picture (usually with atomic orbital basis)
6766
+ */
6767
+ isNonPeriodic?: boolean;
6768
+ consistencyChecks?: {
6769
+ /**
6770
+ * Name of the consistency check that is performed, which is listed in an enum.
6771
+ */
6772
+ name: "default" | "atomsTooClose" | "atomsOverlap";
6773
+ /**
6774
+ * Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'
6775
+ */
6776
+ key: string;
6777
+ /**
6778
+ * Severity level of the problem, which is used in UI to differentiate.
6779
+ */
6780
+ severity: "info" | "warning" | "error";
6781
+ /**
6782
+ * Message generated by the consistency check describing the problem.
6783
+ */
6784
+ message: string;
6785
+ }[];
6786
+ /**
6787
+ * entity identity
6788
+ */
6789
+ _id?: string;
6790
+ /**
6791
+ * entity slug
6792
+ */
6793
+ slug?: string;
6794
+ systemName?: string;
6795
+ /**
6796
+ * entity's schema version. Used to distinct between different schemas.
6797
+ */
6798
+ schemaVersion?: string;
6799
+ /**
6800
+ * entity name
6801
+ */
6802
+ name?: string;
6803
+ /**
6804
+ * Identifies that entity is defaultable
6805
+ */
6806
+ isDefault?: boolean;
6807
+ metadata?: {};
6808
+ };
6809
+ /**
6810
+ * Miller indices for crystallographic plane designation
6811
+ *
6812
+ * @minItems 3
6813
+ * @maxItems 3
6814
+ */
6815
+ miller_indices?: [number, number, number];
6816
+ /**
6817
+ * Number of atomic layers in a structural component
6818
+ */
6819
+ number_of_layers?: number;
6820
+ /**
6821
+ * Vacuum thickness in Angstroms
6822
+ */
6823
+ vacuum?: number;
6824
+ /**
6825
+ * Supercell matrix for xy plane transformations
6826
+ *
6827
+ * @minItems 2
6828
+ * @maxItems 2
6829
+ */
6830
+ xy_supercell_matrix?: [[number, number], [number, number]];
6831
+ /**
6832
+ * Whether to use conventional cell
6833
+ */
6834
+ use_conventional_cell?: boolean;
6835
+ /**
6836
+ * Whether to make z-axis orthogonal
6837
+ */
6838
+ use_orthogonal_z?: boolean;
6839
+ /**
6840
+ * Whether to make the slab primitive
6841
+ */
6842
+ make_primitive?: boolean;
6843
+ }
6411
6844
  /** Schema dist/js/schema/method/categorized_method.json */
6412
6845
  export interface CategorizedMethod {
6413
6846
  units: {
@@ -0,0 +1,6 @@
1
+ {
2
+ "min_vacuum_size": 1,
3
+ "in_unit_planes": true,
4
+ "reorient_lattice": true,
5
+ "symmetrize": false
6
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "default_index": 0
3
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "termination": {
3
+ "chemical_elements": "C",
4
+ "space_group_symmetry_label": "P6/mmm"
5
+ }
6
+ }
@@ -0,0 +1 @@
1
+ [1, 2, 3]
@@ -0,0 +1,4 @@
1
+ {
2
+ "chemical_elements": "Si",
3
+ "space_group_symmetry_label": "P4/mmm_2"
4
+ }
@@ -0,0 +1,10 @@
1
+ [
2
+ [
3
+ 2,
4
+ 0
5
+ ],
6
+ [
7
+ 0,
8
+ 2
9
+ ]
10
+ ]
@@ -0,0 +1,5 @@
1
+ [
2
+ [1, 0, 0],
3
+ [0, 2, 0],
4
+ [0, 0, 3]
5
+ ]
@@ -0,0 +1,25 @@
1
+ {
2
+ "bulk": {
3
+ "...": "include(../../../../material.json)"
4
+ },
5
+ "miller_indices": [
6
+ 0,
7
+ 0,
8
+ 1
9
+ ],
10
+ "number_of_layers": 3,
11
+ "vacuum": 15.0,
12
+ "xy_supercell_matrix": [
13
+ [
14
+ 1,
15
+ 0
16
+ ],
17
+ [
18
+ 0,
19
+ 1
20
+ ]
21
+ ],
22
+ "use_conventional_cell": true,
23
+ "use_orthogonal_z": true,
24
+ "make_primitive": true
25
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mat3ra/esse",
3
- "version": "2025.4.26-0",
3
+ "version": "2025.5.16-0",
4
4
  "description": "Mat3ra's Excellent Source of Schemas and Examples (ESSE) for Digital Materials R&D",
5
5
  "scripts": {
6
6
  "transpile": "tsc -p tsconfig-transpile.json",
@@ -27,7 +27,7 @@
27
27
  },
28
28
  "homepage": "https://github.com/Exabyte-io/esse",
29
29
  "devDependencies": {
30
- "@exabyte-io/eslint-config": "^2025.1.15-0",
30
+ "@exabyte-io/eslint-config": "2025.5.13-0",
31
31
  "@mat3ra/tsconfig": "^2024.6.3-0",
32
32
  "@typescript-eslint/eslint-plugin": "^5.62.0",
33
33
  "@typescript-eslint/parser": "^5.62.0",
@@ -40,6 +40,7 @@
40
40
  "eslint-import-resolver-node": "^0.3.9",
41
41
  "eslint-plugin-import": "^2.31.0",
42
42
  "eslint-plugin-jsdoc": "^50.6.9",
43
+ "eslint-plugin-jsonc": "^2.20.0",
43
44
  "eslint-plugin-jsx-a11y": "^6.10.2",
44
45
  "eslint-plugin-mui-path-imports": "0.0.15",
45
46
  "eslint-plugin-prettier": "^4.2.1",
@@ -83,8 +84,13 @@
83
84
  "node": ">=14.0.0"
84
85
  },
85
86
  "lint-staged": {
86
- "*.js,!dist/**/*": "eslint --cache --fix",
87
- "*.{js,css},!dist/**/*": "prettier --write"
87
+ "src/**/*.js": [
88
+ "eslint --cache --fix",
89
+ "prettier --write"
90
+ ],
91
+ "src/**/*.css": "prettier --write",
92
+ "schemas/**/*.json": "eslint --cache --fix --no-ignore",
93
+ "example/**/*.json": "eslint --cache --fix --no-ignore"
88
94
  },
89
95
  "exports": {
90
96
  "./dist/js/schema/*.json": "./dist/js/schema/*.json",
@@ -0,0 +1,33 @@
1
+ {
2
+ "$id": "apse/materials/builders/slab/pymatgen/parameters",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "Pymatgen Slab Generator Parameters Schema",
5
+ "description": "Parameters for the Pymatgen slab generator. https://github.com/materialsproject/pymatgen/blob/585bb673c4aa222669c4b0d72ffeec3dbf092630/pymatgen/core/surface.py#L1187",
6
+ "type": "object",
7
+ "properties": {
8
+ "min_vacuum_size": {
9
+ "description": "Minimum size of the vacuum in layers or angstroms",
10
+ "type": [
11
+ "integer",
12
+ "number"
13
+ ],
14
+ "minimum": 0,
15
+ "default": 1
16
+ },
17
+ "in_unit_planes": {
18
+ "description": "Whether to cleave in unit planes",
19
+ "type": "boolean",
20
+ "default": true
21
+ },
22
+ "reorient_lattice": {
23
+ "description": "Whether to reorient the lattice",
24
+ "type": "boolean",
25
+ "default": true
26
+ },
27
+ "symmetrize": {
28
+ "description": "Whether to symmetrize the slab",
29
+ "type": "boolean",
30
+ "default": true
31
+ }
32
+ }
33
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "$id": "core/abstract/coordinate-2d",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "coordinate 2d schema",
5
+ "type": "array",
6
+ "items": {
7
+ "type": "number"
8
+ },
9
+ "minItems": 2,
10
+ "maxItems": 2
11
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "$id": "material/builders/base/selector-parameters",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "Base Selector Parameters Schema",
5
+ "description": "Base parameters for all builder selectors",
6
+ "type": "object",
7
+ "properties": {
8
+ "default_index": {
9
+ "description": "Default index for the selector",
10
+ "type": "integer",
11
+ "minimum": 0,
12
+ "default": 0
13
+ }
14
+ }
15
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "$id": "material/builders/single-material/two-dimensional/slab/builder-parameters",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "Slab Builder Parameters Schema",
5
+ "description": "Parameters for the slab builder",
6
+ "type": "object",
7
+ "allOf": [
8
+ {
9
+ "$ref": "../../../../../apse/materials/builders/slab/pymatgen/parameters.json"
10
+ }
11
+ ]
12
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "$id": "material/builders/single-material/two-dimensional/slab/selector-parameters",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "Slab Selector Parameters Schema",
5
+ "description": "Parameters for slab selection",
6
+ "type": "object",
7
+ "properties": {
8
+ "termination": {
9
+ "$ref": "../../../../../material/reusable/slab/termination.json"
10
+ }
11
+ }
12
+ }