maidraw 0.7.0 → 0.7.1

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 (214) hide show
  1. package/assets/themes/maimai/chart/common/prism/jp/background.png +0 -0
  2. package/assets/themes/maimai/chart/common/versionless/logo/cn/200.png +0 -0
  3. package/assets/themes/maimai/chart/common/versionless/logo/cn/210.png +0 -0
  4. package/assets/themes/maimai/chart/common/versionless/logo/cn/220.png +0 -0
  5. package/assets/themes/maimai/chart/common/versionless/logo/cn/230.png +0 -0
  6. package/assets/themes/maimai/chart/common/versionless/logo/cn/240.png +0 -0
  7. package/assets/themes/maimai/chart/common/versionless/logo/intl/210.png +0 -0
  8. package/assets/themes/maimai/chart/common/versionless/logo/intl/215.png +0 -0
  9. package/assets/themes/maimai/chart/common/versionless/logo/jp/100.png +0 -0
  10. package/assets/themes/maimai/chart/common/versionless/logo/jp/110.png +0 -0
  11. package/assets/themes/maimai/chart/common/versionless/logo/jp/120.png +0 -0
  12. package/assets/themes/maimai/chart/common/versionless/logo/jp/130.png +0 -0
  13. package/assets/themes/maimai/chart/common/versionless/logo/jp/140.png +0 -0
  14. package/assets/themes/maimai/chart/common/versionless/logo/jp/150.png +0 -0
  15. package/assets/themes/maimai/chart/common/versionless/logo/jp/160.png +0 -0
  16. package/assets/themes/maimai/chart/common/versionless/logo/jp/170.png +0 -0
  17. package/assets/themes/maimai/chart/common/versionless/logo/jp/180.png +0 -0
  18. package/assets/themes/maimai/chart/common/versionless/logo/jp/185.png +0 -0
  19. package/assets/themes/maimai/chart/common/versionless/logo/jp/190.png +0 -0
  20. package/assets/themes/maimai/chart/common/versionless/logo/jp/195.png +0 -0
  21. package/assets/themes/maimai/chart/common/versionless/logo/jp/199.png +0 -0
  22. package/assets/themes/maimai/chart/common/versionless/logo/jp/200.png +0 -0
  23. package/assets/themes/maimai/chart/common/versionless/logo/jp/205.png +0 -0
  24. package/assets/themes/maimai/chart/common/versionless/logo/jp/210.png +0 -0
  25. package/assets/themes/maimai/chart/common/versionless/logo/jp/215.png +0 -0
  26. package/assets/themes/maimai/chart/common/versionless/logo/jp/220.png +0 -0
  27. package/assets/themes/maimai/chart/common/versionless/logo/jp/225.png +0 -0
  28. package/assets/themes/maimai/chart/common/versionless/logo/jp/230.png +0 -0
  29. package/assets/themes/maimai/chart/common/versionless/logo/jp/235.png +0 -0
  30. package/assets/themes/maimai/chart/common/versionless/logo/jp/240.png +0 -0
  31. package/assets/themes/maimai/chart/common/versionless/logo/jp/245.png +0 -0
  32. package/assets/themes/maimai/chart/common/versionless/logo/jp/250.png +0 -0
  33. package/assets/themes/maimai/chart/common/versionless/logo/jp/255.png +0 -0
  34. package/assets/themes/maimai/chart/jp/prism/manifest.json +167 -0
  35. package/dist/chu/bests/best50.d.ts +0 -2
  36. package/dist/chu/bests/best50.js +14 -61
  37. package/dist/chu/bests/best50.js.map +1 -1
  38. package/dist/chu/bests/type.d.ts +1 -1
  39. package/dist/geki/bests/best50.d.ts +0 -2
  40. package/dist/geki/bests/best50.js +14 -61
  41. package/dist/geki/bests/best50.js.map +1 -1
  42. package/dist/geki/bests/type.d.ts +1 -1
  43. package/dist/geki/chart/database.js +0 -1
  44. package/dist/geki/chart/database.js.map +1 -1
  45. package/dist/lib/util.d.ts +32 -0
  46. package/dist/lib/util.js +119 -0
  47. package/dist/lib/util.js.map +1 -0
  48. package/dist/mai/best50/index.d.ts +231 -38
  49. package/dist/mai/best50/index.js +115 -161
  50. package/dist/mai/best50/index.js.map +1 -1
  51. package/dist/mai/chart/index.d.ts +224 -0
  52. package/dist/mai/chart/index.js +1152 -1
  53. package/dist/mai/chart/index.js.map +1 -1
  54. package/dist/mai/{best50/lib → lib}/divingFish/index.d.ts +14 -6
  55. package/dist/mai/{best50/lib → lib}/divingFish/index.js +38 -27
  56. package/dist/mai/lib/divingFish/index.js.map +1 -0
  57. package/dist/mai/{best50/lib → lib}/index.d.ts +12 -4
  58. package/dist/mai/{best50/lib → lib}/index.js +2 -2
  59. package/dist/mai/lib/index.js.map +1 -0
  60. package/dist/mai/{best50/lib → lib}/kamaiTachi/index.d.ts +37 -29
  61. package/dist/mai/{best50/lib → lib}/kamaiTachi/index.js +74 -21
  62. package/dist/mai/lib/kamaiTachi/index.js.map +1 -0
  63. package/dist/mai/{best50/lib → lib}/lxns/index.d.ts +14 -6
  64. package/dist/mai/{best50/lib → lib}/lxns/index.js +37 -27
  65. package/dist/mai/lib/lxns/index.js.map +1 -0
  66. package/dist/mai/type.d.ts +0 -51
  67. package/dist/mai/type.js +1 -35
  68. package/dist/mai/type.js.map +1 -1
  69. package/package.json +5 -2
  70. package/dist/mai/best50/lib/divingFish/index.js.map +0 -1
  71. package/dist/mai/best50/lib/index.js.map +0 -1
  72. package/dist/mai/best50/lib/kamaiTachi/index.js.map +0 -1
  73. package/dist/mai/best50/lib/lxns/index.js.map +0 -1
  74. package/dist/mai/best50/type.d.ts +0 -145
  75. package/dist/mai/best50/type.js +0 -3
  76. package/dist/mai/best50/type.js.map +0 -1
  77. /package/assets/themes/maimai/{cn → best50/cn}/2024Landscape/manifest.json +0 -0
  78. /package/assets/themes/maimai/{cn → best50/cn}/2024Portrait/manifest.json +0 -0
  79. /package/assets/themes/maimai/{common → best50/common}/buddies/achievement/a.png +0 -0
  80. /package/assets/themes/maimai/{common → best50/common}/buddies/achievement/aa.png +0 -0
  81. /package/assets/themes/maimai/{common → best50/common}/buddies/achievement/aaa.png +0 -0
  82. /package/assets/themes/maimai/{common → best50/common}/buddies/achievement/b.png +0 -0
  83. /package/assets/themes/maimai/{common → best50/common}/buddies/achievement/bb.png +0 -0
  84. /package/assets/themes/maimai/{common → best50/common}/buddies/achievement/bbb.png +0 -0
  85. /package/assets/themes/maimai/{common → best50/common}/buddies/achievement/c.png +0 -0
  86. /package/assets/themes/maimai/{common → best50/common}/buddies/achievement/d.png +0 -0
  87. /package/assets/themes/maimai/{common → best50/common}/buddies/achievement/s.png +0 -0
  88. /package/assets/themes/maimai/{common → best50/common}/buddies/achievement/sp.png +0 -0
  89. /package/assets/themes/maimai/{common → best50/common}/buddies/achievement/ss.png +0 -0
  90. /package/assets/themes/maimai/{common → best50/common}/buddies/achievement/ssp.png +0 -0
  91. /package/assets/themes/maimai/{common → best50/common}/buddies/achievement/sss.png +0 -0
  92. /package/assets/themes/maimai/{common → best50/common}/buddies/achievement/sssp.png +0 -0
  93. /package/assets/themes/maimai/{common → best50/common}/buddies/cn/logo.png +0 -0
  94. /package/assets/themes/maimai/{common → best50/common}/buddies/jp/background.png +0 -0
  95. /package/assets/themes/maimai/{common → best50/common}/buddies/jp/chara.png +0 -0
  96. /package/assets/themes/maimai/{common → best50/common}/buddies/jp/laundry.png +0 -0
  97. /package/assets/themes/maimai/{common → best50/common}/buddies/jp/logo.png +0 -0
  98. /package/assets/themes/maimai/{common → best50/common}/buddies/plus/chara.png +0 -0
  99. /package/assets/themes/maimai/{common → best50/common}/buddies/plus/laundry.png +0 -0
  100. /package/assets/themes/maimai/{common → best50/common}/buddies/plus/logo.png +0 -0
  101. /package/assets/themes/maimai/{common → best50/common}/finale/achievement/a.png +0 -0
  102. /package/assets/themes/maimai/{common → best50/common}/finale/achievement/aa.png +0 -0
  103. /package/assets/themes/maimai/{common → best50/common}/finale/achievement/aaa.png +0 -0
  104. /package/assets/themes/maimai/{common → best50/common}/finale/achievement/b.png +0 -0
  105. /package/assets/themes/maimai/{common → best50/common}/finale/achievement/c.png +0 -0
  106. /package/assets/themes/maimai/{common → best50/common}/finale/achievement/d.png +0 -0
  107. /package/assets/themes/maimai/{common → best50/common}/finale/achievement/e.png +0 -0
  108. /package/assets/themes/maimai/{common → best50/common}/finale/achievement/f.png +0 -0
  109. /package/assets/themes/maimai/{common → best50/common}/finale/achievement/s.png +0 -0
  110. /package/assets/themes/maimai/{common → best50/common}/finale/achievement/sp.png +0 -0
  111. /package/assets/themes/maimai/{common → best50/common}/finale/achievement/ss.png +0 -0
  112. /package/assets/themes/maimai/{common → best50/common}/finale/achievement/ssp.png +0 -0
  113. /package/assets/themes/maimai/{common → best50/common}/finale/achievement/sss.png +0 -0
  114. /package/assets/themes/maimai/{common → best50/common}/finale/achievement/sssp.png +0 -0
  115. /package/assets/themes/maimai/{common → best50/common}/finale/background.png +0 -0
  116. /package/assets/themes/maimai/{common → best50/common}/finale/background2.png +0 -0
  117. /package/assets/themes/maimai/{common → best50/common}/finale/logo.png +0 -0
  118. /package/assets/themes/maimai/{common → best50/common}/finale/milestone/ap.png +0 -0
  119. /package/assets/themes/maimai/{common → best50/common}/finale/milestone/app.png +0 -0
  120. /package/assets/themes/maimai/{common → best50/common}/finale/milestone/fc.png +0 -0
  121. /package/assets/themes/maimai/{common → best50/common}/finale/milestone/fcp.png +0 -0
  122. /package/assets/themes/maimai/{common → best50/common}/finale/milestone/fdx.png +0 -0
  123. /package/assets/themes/maimai/{common → best50/common}/finale/milestone/fdxp.png +0 -0
  124. /package/assets/themes/maimai/{common → best50/common}/finale/milestone/fsp.png +0 -0
  125. /package/assets/themes/maimai/{common → best50/common}/finale/milestone/sync.png +0 -0
  126. /package/assets/themes/maimai/{common → best50/common}/prism/achievement/a.png +0 -0
  127. /package/assets/themes/maimai/{common → best50/common}/prism/achievement/aa.png +0 -0
  128. /package/assets/themes/maimai/{common → best50/common}/prism/achievement/aaa.png +0 -0
  129. /package/assets/themes/maimai/{common → best50/common}/prism/achievement/b.png +0 -0
  130. /package/assets/themes/maimai/{common → best50/common}/prism/achievement/bb.png +0 -0
  131. /package/assets/themes/maimai/{common → best50/common}/prism/achievement/bbb.png +0 -0
  132. /package/assets/themes/maimai/{common → best50/common}/prism/achievement/c.png +0 -0
  133. /package/assets/themes/maimai/{common → best50/common}/prism/achievement/d.png +0 -0
  134. /package/assets/themes/maimai/{common → best50/common}/prism/achievement/s.png +0 -0
  135. /package/assets/themes/maimai/{common → best50/common}/prism/achievement/sp.png +0 -0
  136. /package/assets/themes/maimai/{common → best50/common}/prism/achievement/ss.png +0 -0
  137. /package/assets/themes/maimai/{common → best50/common}/prism/achievement/ssp.png +0 -0
  138. /package/assets/themes/maimai/{common → best50/common}/prism/achievement/sss.png +0 -0
  139. /package/assets/themes/maimai/{common → best50/common}/prism/achievement/sssp.png +0 -0
  140. /package/assets/themes/maimai/{common → best50/common}/prism/jp/background.png +0 -0
  141. /package/assets/themes/maimai/{common → best50/common}/prism/jp/chara.png +0 -0
  142. /package/assets/themes/maimai/{common → best50/common}/prism/jp/laundry.png +0 -0
  143. /package/assets/themes/maimai/{common → best50/common}/prism/jp/logo.png +0 -0
  144. /package/assets/themes/maimai/{common → best50/common}/prism/plus/chara.png +0 -0
  145. /package/assets/themes/maimai/{common → best50/common}/prism/plus/laundry.png +0 -0
  146. /package/assets/themes/maimai/{common → best50/common}/prism/plus/logo.png +0 -0
  147. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/cn/blue.png +0 -0
  148. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/cn/bronze.png +0 -0
  149. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/cn/gold.png +0 -0
  150. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/cn/green.png +0 -0
  151. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/cn/platinum.png +0 -0
  152. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/cn/purple.png +0 -0
  153. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/cn/rainbow.png +0 -0
  154. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/cn/red.png +0 -0
  155. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/cn/silver.png +0 -0
  156. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/cn/white.png +0 -0
  157. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/cn/yellow.png +0 -0
  158. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/jp/blue.png +0 -0
  159. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/jp/bronze.png +0 -0
  160. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/jp/gold.png +0 -0
  161. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/jp/green.png +0 -0
  162. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/jp/platinum.png +0 -0
  163. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/jp/purple.png +0 -0
  164. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/jp/rainbow.png +0 -0
  165. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/jp/red.png +0 -0
  166. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/jp/silver.png +0 -0
  167. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/jp/white.png +0 -0
  168. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/jp/yellow.png +0 -0
  169. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/numberMap.png +0 -0
  170. /package/assets/themes/maimai/{common → best50/common}/versionless/icon.png +0 -0
  171. /package/assets/themes/maimai/{common → best50/common}/versionless/milestone/ap.png +0 -0
  172. /package/assets/themes/maimai/{common → best50/common}/versionless/milestone/app.png +0 -0
  173. /package/assets/themes/maimai/{common → best50/common}/versionless/milestone/fc.png +0 -0
  174. /package/assets/themes/maimai/{common → best50/common}/versionless/milestone/fcp.png +0 -0
  175. /package/assets/themes/maimai/{common → best50/common}/versionless/milestone/fdx.png +0 -0
  176. /package/assets/themes/maimai/{common → best50/common}/versionless/milestone/fdxp.png +0 -0
  177. /package/assets/themes/maimai/{common → best50/common}/versionless/milestone/fs.png +0 -0
  178. /package/assets/themes/maimai/{common → best50/common}/versionless/milestone/fsp.png +0 -0
  179. /package/assets/themes/maimai/{common → best50/common}/versionless/milestone/none.png +0 -0
  180. /package/assets/themes/maimai/{common → best50/common}/versionless/milestone/sync.png +0 -0
  181. /package/assets/themes/maimai/{common → best50/common}/versionless/mode/cn/dx.png +0 -0
  182. /package/assets/themes/maimai/{common → best50/common}/versionless/mode/cn/standard.png +0 -0
  183. /package/assets/themes/maimai/{common → best50/common}/versionless/mode/jp/dx.png +0 -0
  184. /package/assets/themes/maimai/{common → best50/common}/versionless/mode/jp/standard.png +0 -0
  185. /package/assets/themes/maimai/{common → best50/common}/versionless/nameplate.png +0 -0
  186. /package/assets/themes/maimai/{common → best50/common}/versionless/void.png +0 -0
  187. /package/assets/themes/maimai/{jp → best50/jp}/buddiesLandscape/manifest.json +0 -0
  188. /package/assets/themes/maimai/{jp → best50/jp}/buddiesPlusLandscape/manifest.json +0 -0
  189. /package/assets/themes/maimai/{jp → best50/jp}/buddiesPlusPortrait/manifest.json +0 -0
  190. /package/assets/themes/maimai/{jp → best50/jp}/buddiesPortrait/manifest.json +0 -0
  191. /package/assets/themes/maimai/{jp → best50/jp}/finaleLandscape/manifest.json +0 -0
  192. /package/assets/themes/maimai/{jp → best50/jp}/finalePortrait/manifest.json +0 -0
  193. /package/assets/themes/maimai/{jp → best50/jp}/prismLandscape/manifest.json +0 -0
  194. /package/assets/themes/maimai/{jp → best50/jp}/prismPlusLandscape/manifest.json +0 -0
  195. /package/assets/themes/maimai/{jp → best50/jp}/prismPlusPortrait/manifest.json +0 -0
  196. /package/assets/themes/maimai/{jp → best50/jp}/prismPortrait/manifest.json +0 -0
  197. /package/assets/themes/maimai/{salt → best50/salt}/2026landscape/image/achievement/a.png +0 -0
  198. /package/assets/themes/maimai/{salt → best50/salt}/2026landscape/image/achievement/aa.png +0 -0
  199. /package/assets/themes/maimai/{salt → best50/salt}/2026landscape/image/achievement/aaa.png +0 -0
  200. /package/assets/themes/maimai/{salt → best50/salt}/2026landscape/image/achievement/b.png +0 -0
  201. /package/assets/themes/maimai/{salt → best50/salt}/2026landscape/image/achievement/bb.png +0 -0
  202. /package/assets/themes/maimai/{salt → best50/salt}/2026landscape/image/achievement/bbb.png +0 -0
  203. /package/assets/themes/maimai/{salt → best50/salt}/2026landscape/image/achievement/c.png +0 -0
  204. /package/assets/themes/maimai/{salt → best50/salt}/2026landscape/image/achievement/d.png +0 -0
  205. /package/assets/themes/maimai/{salt → best50/salt}/2026landscape/image/achievement/s.png +0 -0
  206. /package/assets/themes/maimai/{salt → best50/salt}/2026landscape/image/achievement/sp.png +0 -0
  207. /package/assets/themes/maimai/{salt → best50/salt}/2026landscape/image/achievement/ss.png +0 -0
  208. /package/assets/themes/maimai/{salt → best50/salt}/2026landscape/image/achievement/ssp.png +0 -0
  209. /package/assets/themes/maimai/{salt → best50/salt}/2026landscape/image/achievement/sss.png +0 -0
  210. /package/assets/themes/maimai/{salt → best50/salt}/2026landscape/image/achievement/sssp.png +0 -0
  211. /package/assets/themes/maimai/{salt → best50/salt}/2026landscape/image/background.png +0 -0
  212. /package/assets/themes/maimai/{salt → best50/salt}/2026landscape/image/chara.png +0 -0
  213. /package/assets/themes/maimai/{salt → best50/salt}/2026landscape/image/logo.png +0 -0
  214. /package/assets/themes/maimai/{salt → best50/salt}/2026landscape/manifest.json +0 -0
@@ -1,4 +1,228 @@
1
1
  import * as database from "./database";
2
+ import ScoreTrackerAdapter from "../lib";
3
+ import { Best50 } from "../best50";
4
+ export declare class Chart {
5
+ private static readonly DEFAULT_THEME;
6
+ private static primaryTheme;
7
+ private static get assetsPath();
8
+ private static themes;
9
+ static hasTheme(name: string): boolean;
10
+ private static validateManifest;
11
+ static loadTheme(path: string): boolean;
12
+ private static getTheme;
13
+ private static getThemeFile;
14
+ private static drawImageModule;
15
+ private static drawChartGridCard;
16
+ private static drawDetailInfoModule;
17
+ private static drawChartGridModule;
18
+ private static drawProfileModule;
19
+ private static drawTextModule;
20
+ static draw(name: string, rating: number, chartId: number, scores: (Best50.IScore | null)[], options?: {
21
+ scale?: number;
22
+ theme?: string;
23
+ profilePicture?: Buffer;
24
+ }): Promise<Buffer | null>;
25
+ static drawWithScoreSource(source: ScoreTrackerAdapter, username: string, chartId: number, options?: {
26
+ scale?: number;
27
+ theme?: string;
28
+ profilePicture?: Buffer | null;
29
+ }): Promise<Buffer | null>;
30
+ private static getRatingNumber;
31
+ }
2
32
  export declare namespace Chart {
3
33
  export import Database = database.Database;
34
+ interface ITheme {
35
+ manifest: IThemeManifest;
36
+ path: string;
37
+ }
38
+ interface IThemeManifest {
39
+ displayName: string;
40
+ name: string;
41
+ width: number;
42
+ height: number;
43
+ sprites: IThemeSprites;
44
+ elements: IThemeElements[];
45
+ }
46
+ interface IThemeSprites {
47
+ achievement: {
48
+ d: string;
49
+ c: string;
50
+ b: string;
51
+ bb: string;
52
+ bbb: string;
53
+ a: string;
54
+ aa: string;
55
+ aaa: string;
56
+ s: string;
57
+ sp: string;
58
+ ss: string;
59
+ ssp: string;
60
+ sss: string;
61
+ sssp: string;
62
+ };
63
+ mode: {
64
+ standard: string;
65
+ dx: string;
66
+ };
67
+ milestone: {
68
+ ap: string;
69
+ app: string;
70
+ fc: string;
71
+ fcp: string;
72
+ fdx: string;
73
+ fdxp: string;
74
+ fs: string;
75
+ fsp: string;
76
+ sync: string;
77
+ none: string;
78
+ };
79
+ dxRating: {
80
+ white: string;
81
+ blue: string;
82
+ green: string;
83
+ yellow: string;
84
+ red: string;
85
+ purple: string;
86
+ bronze: string;
87
+ silver: string;
88
+ gold: string;
89
+ platinum: string;
90
+ rainbow: string;
91
+ };
92
+ dxRatingNumberMap: string;
93
+ profile: {
94
+ icon: string;
95
+ nameplate: string;
96
+ };
97
+ versions: {
98
+ OLD: {
99
+ 0: string;
100
+ 10: string;
101
+ 20: string;
102
+ 30: string;
103
+ 40: string;
104
+ 50: string;
105
+ 60: string;
106
+ 70: string;
107
+ 80: string;
108
+ 85: string;
109
+ 90: string;
110
+ 95: string;
111
+ 99: string;
112
+ };
113
+ DX: {
114
+ 0: string;
115
+ 5: string;
116
+ 10: string;
117
+ 15: string;
118
+ 20: string;
119
+ 25: string;
120
+ 30: string;
121
+ 35: string;
122
+ 40: string;
123
+ 45: string;
124
+ 50: string;
125
+ 55: string;
126
+ };
127
+ EX: {
128
+ 10: string;
129
+ 15: string;
130
+ };
131
+ CN: {
132
+ 0: string;
133
+ 10: string;
134
+ 20: string;
135
+ 30: string;
136
+ 40: string;
137
+ };
138
+ };
139
+ }
140
+ type IThemeElements = IThemeProfileElement | IThemeChartGridElement | IThemeImageElement | IThemeTextElement | IThemeDetailInfoElement;
141
+ interface IThemeElement {
142
+ type: string;
143
+ x: number;
144
+ y: number;
145
+ }
146
+ interface IThemeProfileElement extends IThemeElement {
147
+ type: "profile";
148
+ height: number;
149
+ }
150
+ interface IThemeChartGridElement extends IThemeElement {
151
+ type: "chart-grid";
152
+ width: number;
153
+ height: number;
154
+ margin: number;
155
+ gap: number;
156
+ bubble: {
157
+ margin: number;
158
+ color: {
159
+ basic: string;
160
+ advanced: string;
161
+ expert: string;
162
+ master: string;
163
+ remaster: string;
164
+ utage: string;
165
+ };
166
+ };
167
+ color: {
168
+ card: string;
169
+ };
170
+ }
171
+ interface IThemeDetailInfoElement extends IThemeElement {
172
+ type: "detail-info";
173
+ width: number;
174
+ height: number;
175
+ margin: number;
176
+ color: {
177
+ card: string;
178
+ };
179
+ font?: string;
180
+ }
181
+ interface IThemeImageElement extends IThemeElement {
182
+ type: "image";
183
+ width: number;
184
+ height: number;
185
+ /**
186
+ * Relative path from the manifest file to the element file.
187
+ */
188
+ path: string;
189
+ }
190
+ interface IThemeTextElement extends IThemeElement {
191
+ type: "text";
192
+ size: number;
193
+ content: string;
194
+ /**
195
+ * If width is provied and the text is too long, it will be cut off.
196
+ */
197
+ width?: number;
198
+ /**
199
+ * If height is provied and the text is too big, it will be cut off.
200
+ */
201
+ height?: number;
202
+ /**
203
+ * If true, instead of cutting off the text, it will change to a new line.
204
+ * Height restrictions will still apply.
205
+ */
206
+ linebreak?: boolean;
207
+ /**
208
+ * Text alignment.
209
+ * Defaults to left.
210
+ */
211
+ align?: "left" | "center" | "right";
212
+ /**
213
+ * Text color.
214
+ * Defaults to white (#FFFFFF).
215
+ */
216
+ color?: string;
217
+ /**
218
+ * Text border color.
219
+ * Defaults a darker variant of `color`.
220
+ */
221
+ borderColor?: string;
222
+ /**
223
+ * Text font. Please make sure the font is available in the environment.
224
+ * Defaults to a preconfigured font macro. Check source code for more info.
225
+ */
226
+ font?: string;
227
+ }
4
228
  }