@vandenberghinc/volt 1.1.4 → 1.1.6

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 (290) hide show
  1. package/backend/dist/cjs/database.d.ts +41 -68
  2. package/backend/dist/cjs/database.js +136 -78
  3. package/backend/dist/cjs/endpoint.d.ts +23 -9
  4. package/backend/dist/cjs/endpoint.js +98 -21
  5. package/backend/dist/cjs/file_watcher.js +2 -2
  6. package/backend/dist/cjs/frontend.d.ts +0 -2
  7. package/backend/dist/cjs/frontend.js +9 -9
  8. package/backend/dist/cjs/image_endpoint.d.ts +3 -1
  9. package/backend/dist/cjs/image_endpoint.js +2 -1
  10. package/backend/dist/cjs/payments/paddle.js +10 -2
  11. package/backend/dist/cjs/plugins/css.d.ts +6 -5
  12. package/backend/dist/cjs/plugins/css.js +32 -7
  13. package/backend/dist/cjs/plugins/ts/compiler.d.ts +6 -1
  14. package/backend/dist/cjs/plugins/ts/compiler.js +26 -2
  15. package/backend/dist/cjs/plugins/ts/preprocessing.js +5 -3
  16. package/backend/dist/cjs/server.d.ts +7 -13
  17. package/backend/dist/cjs/server.js +184 -303
  18. package/backend/dist/cjs/status.d.ts +1 -0
  19. package/backend/dist/cjs/status.js +2 -1
  20. package/backend/dist/cjs/stream.d.ts +5 -3
  21. package/backend/dist/cjs/stream.js +13 -4
  22. package/backend/dist/cjs/users.d.ts +1 -1
  23. package/backend/dist/cjs/users.js +87 -72
  24. package/backend/dist/cjs/utils.d.ts +17 -9
  25. package/backend/dist/cjs/utils.js +22 -64
  26. package/backend/dist/cjs/view.d.ts +2 -2
  27. package/backend/dist/cjs/view.js +38 -40
  28. package/backend/dist/cjs/volt.d.ts +3 -2
  29. package/backend/dist/cjs/volt.js +2 -2
  30. package/backend/dist/css/volt.css +5 -0
  31. package/backend/dist/esm/database.d.ts +41 -68
  32. package/backend/dist/esm/database.js +137 -79
  33. package/backend/dist/esm/endpoint.d.ts +23 -9
  34. package/backend/dist/esm/endpoint.js +99 -22
  35. package/backend/dist/esm/file_watcher.js +2 -2
  36. package/backend/dist/esm/frontend.d.ts +0 -2
  37. package/backend/dist/esm/frontend.js +9 -9
  38. package/backend/dist/esm/image_endpoint.d.ts +3 -1
  39. package/backend/dist/esm/image_endpoint.js +2 -1
  40. package/backend/dist/esm/payments/paddle.js +11 -3
  41. package/backend/dist/esm/plugins/css.d.ts +6 -5
  42. package/backend/dist/esm/plugins/css.js +32 -6
  43. package/backend/dist/esm/plugins/ts/compiler.d.ts +6 -1
  44. package/backend/dist/esm/plugins/ts/compiler.js +26 -2
  45. package/backend/dist/esm/plugins/ts/preprocessing.js +5 -3
  46. package/backend/dist/esm/server.d.ts +7 -13
  47. package/backend/dist/esm/server.js +182 -301
  48. package/backend/dist/esm/status.d.ts +1 -0
  49. package/backend/dist/esm/status.js +1 -0
  50. package/backend/dist/esm/stream.d.ts +5 -3
  51. package/backend/dist/esm/stream.js +13 -4
  52. package/backend/dist/esm/users.d.ts +1 -1
  53. package/backend/dist/esm/users.js +87 -72
  54. package/backend/dist/esm/utils.d.ts +17 -9
  55. package/backend/dist/esm/utils.js +21 -62
  56. package/backend/dist/esm/view.d.ts +2 -2
  57. package/backend/dist/esm/view.js +38 -40
  58. package/backend/dist/esm/volt.d.ts +3 -2
  59. package/backend/dist/esm/volt.js +2 -1
  60. package/backend/dist/esm-dev/blacklist.js +1 -1
  61. package/backend/dist/esm-dev/cli.js +2 -2
  62. package/backend/dist/esm-dev/database.d.ts +41 -68
  63. package/backend/dist/esm-dev/database.js +138 -80
  64. package/backend/dist/esm-dev/endpoint.d.ts +23 -9
  65. package/backend/dist/esm-dev/endpoint.js +100 -23
  66. package/backend/dist/esm-dev/file_watcher.js +3 -3
  67. package/backend/dist/esm-dev/frontend.d.ts +0 -2
  68. package/backend/dist/esm-dev/frontend.js +9 -9
  69. package/backend/dist/esm-dev/image_endpoint.d.ts +3 -1
  70. package/backend/dist/esm-dev/image_endpoint.js +2 -1
  71. package/backend/dist/esm-dev/logger.js +1 -1
  72. package/backend/dist/esm-dev/payments/paddle.js +12 -4
  73. package/backend/dist/esm-dev/plugins/css.d.ts +6 -5
  74. package/backend/dist/esm-dev/plugins/css.js +33 -7
  75. package/backend/dist/esm-dev/plugins/ts/compiler.d.ts +6 -1
  76. package/backend/dist/esm-dev/plugins/ts/compiler.js +27 -3
  77. package/backend/dist/esm-dev/plugins/ts/preprocessing.js +7 -5
  78. package/backend/dist/esm-dev/rate_limit.js +1 -1
  79. package/backend/dist/esm-dev/server.d.ts +7 -13
  80. package/backend/dist/esm-dev/server.js +184 -303
  81. package/backend/dist/esm-dev/status.d.ts +1 -0
  82. package/backend/dist/esm-dev/status.js +1 -0
  83. package/backend/dist/esm-dev/stream.d.ts +5 -3
  84. package/backend/dist/esm-dev/stream.js +13 -4
  85. package/backend/dist/esm-dev/users.d.ts +1 -1
  86. package/backend/dist/esm-dev/users.js +88 -73
  87. package/backend/dist/esm-dev/utils.d.ts +17 -9
  88. package/backend/dist/esm-dev/utils.js +22 -63
  89. package/backend/dist/esm-dev/view.d.ts +2 -2
  90. package/backend/dist/esm-dev/view.js +39 -41
  91. package/backend/dist/esm-dev/volt.d.ts +3 -2
  92. package/backend/dist/esm-dev/volt.js +2 -1
  93. package/backend/src/database.ts +173 -155
  94. package/backend/src/endpoint.ts +123 -31
  95. package/backend/src/file_watcher.ts +2 -2
  96. package/backend/src/frontend.ts +9 -8
  97. package/backend/src/image_endpoint.ts +4 -0
  98. package/backend/src/payments/paddle.ts +11 -3
  99. package/backend/src/plugins/css.ts +36 -8
  100. package/backend/src/plugins/ts/compiler.ts +37 -1
  101. package/backend/src/plugins/ts/preprocessing.ts +5 -3
  102. package/backend/src/server.ts +167 -306
  103. package/backend/src/status.ts +1 -0
  104. package/backend/src/stream.ts +28 -8
  105. package/backend/src/users.ts +87 -72
  106. package/backend/src/utils.ts +58 -25
  107. package/backend/src/view.ts +30 -28
  108. package/backend/src/{volt.js → volt.ts} +2 -1
  109. package/backend/tsconfig.cjs.json +3 -3
  110. package/backend/tsconfig.esm.json +3 -3
  111. package/frontend/dist/elements/base.d.ts +414 -432
  112. package/frontend/dist/elements/base.js +566 -329
  113. package/frontend/dist/elements/module.d.ts +26 -12
  114. package/frontend/dist/elements/module.js +69 -32
  115. package/frontend/dist/elements/register_element.d.ts +3 -0
  116. package/frontend/dist/elements/register_element.js +22 -0
  117. package/frontend/dist/modules/auth.d.ts +1 -0
  118. package/frontend/dist/modules/auth.js +6 -5
  119. package/frontend/dist/modules/color.d.ts +159 -0
  120. package/frontend/dist/modules/color.js +315 -0
  121. package/frontend/dist/modules/colors.d.ts +1 -26
  122. package/frontend/dist/modules/colors.js +417 -340
  123. package/frontend/dist/modules/cookies.d.ts +1 -0
  124. package/frontend/dist/modules/cookies.js +1 -0
  125. package/frontend/dist/modules/events.d.ts +1 -0
  126. package/frontend/dist/modules/events.js +1 -0
  127. package/frontend/dist/modules/google.d.ts +1 -0
  128. package/frontend/dist/modules/google.js +1 -0
  129. package/frontend/dist/modules/meta.d.ts +1 -0
  130. package/frontend/dist/modules/meta.js +1 -0
  131. package/frontend/dist/modules/mutex.d.ts +1 -2
  132. package/frontend/dist/modules/mutex.js +3 -4
  133. package/frontend/dist/modules/paddle.d.ts +1 -0
  134. package/frontend/dist/modules/paddle.js +14 -13
  135. package/frontend/dist/modules/scheme.d.ts +1 -0
  136. package/frontend/dist/modules/scheme.js +5 -3
  137. package/frontend/dist/modules/statics.d.ts +1 -0
  138. package/frontend/dist/modules/statics.js +1 -0
  139. package/frontend/dist/modules/support.d.ts +1 -0
  140. package/frontend/dist/modules/support.js +3 -2
  141. package/frontend/dist/modules/theme.d.ts +56 -0
  142. package/frontend/dist/{ui → modules}/theme.js +186 -75
  143. package/frontend/dist/modules/themes.d.ts +1 -1
  144. package/frontend/dist/modules/themes.js +1 -0
  145. package/frontend/dist/modules/user.d.ts +1 -0
  146. package/frontend/dist/modules/user.js +11 -10
  147. package/frontend/dist/modules/utils.d.ts +23 -2
  148. package/frontend/dist/modules/utils.js +93 -1
  149. package/frontend/dist/types/gradient.js +4 -0
  150. package/frontend/dist/ui/border_button.d.ts +0 -25
  151. package/frontend/dist/ui/border_button.js +50 -51
  152. package/frontend/dist/ui/button.d.ts +0 -21
  153. package/frontend/dist/ui/button.js +41 -46
  154. package/frontend/dist/ui/canvas.js +15 -15
  155. package/frontend/dist/ui/checkbox.d.ts +3 -17
  156. package/frontend/dist/ui/checkbox.js +36 -30
  157. package/frontend/dist/ui/code.d.ts +15 -82
  158. package/frontend/dist/ui/code.js +150 -125
  159. package/frontend/dist/ui/color.d.ts +0 -1
  160. package/frontend/dist/ui/color.js +1 -1
  161. package/frontend/dist/ui/context_menu.d.ts +4 -2
  162. package/frontend/dist/ui/context_menu.js +16 -17
  163. package/frontend/dist/ui/css.js +2 -0
  164. package/frontend/dist/ui/divider.d.ts +0 -7
  165. package/frontend/dist/ui/divider.js +21 -25
  166. package/frontend/dist/ui/dropdown.d.ts +13 -7
  167. package/frontend/dist/ui/dropdown.js +65 -30
  168. package/frontend/dist/ui/for_each.d.ts +0 -5
  169. package/frontend/dist/ui/for_each.js +17 -22
  170. package/frontend/dist/ui/form.d.ts +17 -12
  171. package/frontend/dist/ui/form.js +21 -18
  172. package/frontend/dist/ui/frame_modes.d.ts +9 -12
  173. package/frontend/dist/ui/frame_modes.js +8 -10
  174. package/frontend/dist/ui/google_map.d.ts +0 -11
  175. package/frontend/dist/ui/google_map.js +23 -28
  176. package/frontend/dist/ui/gradient.d.ts +0 -5
  177. package/frontend/dist/ui/gradient.js +17 -22
  178. package/frontend/dist/ui/image.d.ts +27 -58
  179. package/frontend/dist/ui/image.js +99 -93
  180. package/frontend/dist/ui/input.d.ts +20 -97
  181. package/frontend/dist/ui/input.js +192 -170
  182. package/frontend/dist/ui/link.d.ts +0 -18
  183. package/frontend/dist/ui/link.js +42 -48
  184. package/frontend/dist/ui/list.js +36 -37
  185. package/frontend/dist/ui/loader_button.d.ts +4 -19
  186. package/frontend/dist/ui/loader_button.js +35 -37
  187. package/frontend/dist/ui/loaders.d.ts +0 -8
  188. package/frontend/dist/ui/loaders.js +20 -25
  189. package/frontend/dist/ui/popup.d.ts +11 -8
  190. package/frontend/dist/ui/popup.js +183 -24
  191. package/frontend/dist/ui/pseudo.d.ts +3 -3
  192. package/frontend/dist/ui/pseudo.js +14 -17
  193. package/frontend/dist/ui/scroller.d.ts +10 -48
  194. package/frontend/dist/ui/scroller.js +306 -300
  195. package/frontend/dist/ui/slider.d.ts +9 -3
  196. package/frontend/dist/ui/slider.js +31 -17
  197. package/frontend/dist/ui/spacer.d.ts +0 -9
  198. package/frontend/dist/ui/spacer.js +21 -26
  199. package/frontend/dist/ui/span.js +13 -15
  200. package/frontend/dist/ui/stack.d.ts +14 -75
  201. package/frontend/dist/ui/stack.js +166 -169
  202. package/frontend/dist/ui/steps.d.ts +10 -23
  203. package/frontend/dist/ui/steps.js +47 -34
  204. package/frontend/dist/ui/style.d.ts +4 -3
  205. package/frontend/dist/ui/style.js +13 -18
  206. package/frontend/dist/ui/switch.d.ts +10 -4
  207. package/frontend/dist/ui/switch.js +24 -16
  208. package/frontend/dist/ui/table.d.ts +0 -23
  209. package/frontend/dist/ui/table.js +113 -119
  210. package/frontend/dist/ui/tabs.d.ts +3 -19
  211. package/frontend/dist/ui/tabs.js +35 -29
  212. package/frontend/dist/ui/text.d.ts +0 -8
  213. package/frontend/dist/ui/text.js +20 -25
  214. package/frontend/dist/ui/title.d.ts +0 -15
  215. package/frontend/dist/ui/title.js +39 -45
  216. package/frontend/dist/ui/ui.d.ts +0 -2
  217. package/frontend/dist/ui/ui.js +0 -2
  218. package/frontend/dist/ui/view.d.ts +3 -17
  219. package/frontend/dist/ui/view.js +27 -32
  220. package/frontend/dist/volt.d.ts +2 -1
  221. package/frontend/dist/volt.js +3 -1
  222. package/frontend/examples/dashboard/dashboard.ts +774 -0
  223. package/frontend/examples/theme/theme.ts +58 -0
  224. package/frontend/src/css/volt.css +5 -0
  225. package/frontend/src/elements/base.ts +767 -545
  226. package/frontend/src/elements/module.ts +90 -29
  227. package/frontend/src/elements/register_element.ts +24 -0
  228. package/frontend/src/modules/auth.ts +7 -6
  229. package/frontend/src/modules/color.ts +348 -0
  230. package/frontend/src/modules/colors.ts +468 -449
  231. package/frontend/src/modules/cookies.ts +1 -0
  232. package/frontend/src/modules/events.ts +1 -0
  233. package/frontend/src/modules/google.ts +1 -0
  234. package/frontend/src/modules/meta.ts +2 -1
  235. package/frontend/src/modules/mutex.ts +2 -4
  236. package/frontend/src/modules/paddle.ts +21 -20
  237. package/frontend/src/modules/scheme.ts +5 -4
  238. package/frontend/src/modules/statics.ts +2 -1
  239. package/frontend/src/modules/support.ts +3 -2
  240. package/frontend/src/modules/theme.ts +413 -0
  241. package/frontend/src/modules/themes.ts +2 -1
  242. package/frontend/src/modules/user.ts +12 -11
  243. package/frontend/src/modules/utils.ts +125 -2
  244. package/frontend/src/ui/border_button.ts +41 -37
  245. package/frontend/src/ui/button.ts +33 -32
  246. package/frontend/src/ui/canvas.ts +5 -2
  247. package/frontend/src/ui/checkbox.ts +21 -22
  248. package/frontend/src/ui/code.ts +92 -86
  249. package/frontend/src/ui/context_menu.ts +7 -5
  250. package/frontend/src/ui/css.ts +1 -1
  251. package/frontend/src/ui/divider.ts +15 -10
  252. package/frontend/src/ui/dropdown.ts +38 -21
  253. package/frontend/src/ui/for_each.ts +9 -8
  254. package/frontend/src/ui/form.ts +26 -21
  255. package/frontend/src/ui/frame_modes.ts +13 -17
  256. package/frontend/src/ui/google_map.ts +15 -13
  257. package/frontend/src/ui/gradient.ts +9 -8
  258. package/frontend/src/ui/image.ts +108 -86
  259. package/frontend/src/ui/input.ts +145 -144
  260. package/frontend/src/ui/link.ts +25 -23
  261. package/frontend/src/ui/list.ts +12 -6
  262. package/frontend/src/ui/loader_button.ts +26 -25
  263. package/frontend/src/ui/loaders.ts +12 -11
  264. package/frontend/src/ui/popup.ts +168 -14
  265. package/frontend/src/ui/pseudo.ts +5 -3
  266. package/frontend/src/ui/scroller.ts +303 -294
  267. package/frontend/src/ui/slider.ts +15 -10
  268. package/frontend/src/ui/spacer.ts +14 -11
  269. package/frontend/src/ui/span.ts +6 -2
  270. package/frontend/src/ui/stack.ts +196 -183
  271. package/frontend/src/ui/steps.ts +38 -22
  272. package/frontend/src/ui/style.ts +7 -4
  273. package/frontend/src/ui/switch.ts +16 -11
  274. package/frontend/src/ui/table.ts +42 -34
  275. package/frontend/src/ui/tabs.ts +20 -19
  276. package/frontend/src/ui/text.ts +12 -11
  277. package/frontend/src/ui/title.ts +22 -20
  278. package/frontend/src/ui/ui.ts +0 -2
  279. package/frontend/src/ui/view.ts +20 -19
  280. package/frontend/src/volt.ts +3 -1
  281. package/frontend/{compile.js → tools/compile.old.js} +2 -2
  282. package/frontend/tools/embed_scripts.js +69 -0
  283. package/frontend/tsconfig.json +26 -0
  284. package/package.json +7 -6
  285. package/frontend/dist/ui/theme.d.ts +0 -25
  286. package/frontend/exports.json +0 -1340
  287. package/frontend/src/modules/date.js +0 -535
  288. package/frontend/src/ui/color.ts +0 -117
  289. package/frontend/src/ui/theme.ts +0 -279
  290. /package/backend/src/{vinc.dev.js → vinc.dev.ts} +0 -0
@@ -4,51 +4,52 @@
4
4
  */
5
5
 
6
6
  // Imports.
7
- import { Elements, VAnchorElement, VDivElement, VDiv, VElementTagMap } from "../elements/module.js";
7
+ import { Elements, VElement, VElementBaseSignature, VAnchorElement, VDivElement, VDiv, VElementTagMap } from "../elements/module.js";
8
8
 
9
9
  // BorderButton.
10
10
  /**
11
11
  * Supports a gradient color for the border combined with border radius.
12
12
  * Warning: this class is still experimental and may be subject to future change.
13
13
  */
14
- @Elements.register
14
+ @Elements.create({
15
+ name: "BorderButtonElement",
16
+ default_style: {
17
+ "margin": "0px 0px 0px 0px",
18
+ "display": "inline-block",
19
+ "color": "inherit",
20
+ "text-align": "center",
21
+ "cursor": "pointer",
22
+ "position": "relative",
23
+ "z-index": "0",
24
+ "background": "none",
25
+ "user-select": "none",
26
+ "outline": "none",
27
+ "border": "none",
28
+ "text-decoration": "none",
29
+ // Custom.
30
+ "--child-color": "black",
31
+ "--child-background": "black",
32
+ "--child-border-width": "2px",
33
+ "--child-border-radius": "10px",
34
+ "--child-padding": "5px 10px 5px 10px",
35
+ },
36
+ default_events: {
37
+ "onmousedown": function (this: any): void {
38
+ this.style.filter = "brightness(80%)";
39
+ },
40
+ "onmouseover": function (this: any): void {
41
+ this.style.filter = "brightness(90%)";
42
+ },
43
+ "onmouseup": function (this: any): void {
44
+ this.style.filter = "brightness(100%)";
45
+ },
46
+ "onmouseout": function (this: any): void {
47
+ this.style.filter = "brightness(100%)";
48
+ },
49
+ },
50
+ })
15
51
  export class BorderButtonElement extends VElementTagMap.a {
16
52
 
17
- static default_style = {
18
- "margin": "0px 0px 0px 0px",
19
- "display": "inline-block",
20
- "color": "inherit",
21
- "text-align": "center",
22
- "cursor": "pointer",
23
- "position": "relative",
24
- "z-index": "0",
25
- "background": "none",
26
- "user-select": "none",
27
- "outline": "none",
28
- "border": "none",
29
- "text-decoration": "none",
30
- // Custom.
31
- "--child-color": "black",
32
- "--child-background": "black",
33
- "--child-border-width": "2px",
34
- "--child-border-radius": "10px",
35
- "--child-padding": "5px 10px 5px 10px",
36
- };
37
- static default_events = {
38
- "onmousedown": function (this: any): void {
39
- this.style.filter = "brightness(80%)";
40
- },
41
- "onmouseover": function (this: any): void {
42
- this.style.filter = "brightness(90%)";
43
- },
44
- "onmouseup": function (this: any): void {
45
- this.style.filter = "brightness(100%)";
46
- },
47
- "onmouseout": function (this: any): void {
48
- this.style.filter = "brightness(100%)";
49
- },
50
- };
51
-
52
53
  public nodes: {
53
54
  border: VDivElement;
54
55
  text: VDivElement;
@@ -311,6 +312,9 @@ export class BorderButtonElement extends VElementTagMap.a {
311
312
  transition_border_color(val: string): this;
312
313
  transition_border_color(val?: string): string | this {
313
314
  if (val == null) { return this.nodes.border.transition(); }
315
+ else if (/[0-9]/.test(val.charAt(0))) {
316
+ val = "border-color " + val;
317
+ }
314
318
  this.nodes.border.transition(typeof val !== "string" ? val : val.replace("border-color ", "background "));
315
319
  return this;
316
320
  }
@@ -4,42 +4,43 @@
4
4
  */
5
5
 
6
6
  // Imports.
7
- import { Elements, VElementTagMap } from "../elements/module.js";
7
+ import { Elements, VElementBaseSignature, VElement, VElementTagMap, VHTMLElement } from "../elements/module.js";
8
8
 
9
9
  // Button.
10
- @Elements.register
10
+ @Elements.create({
11
+ name: "ButtonElement",
12
+ default_style: {
13
+ "margin": "0px 0px 0px",
14
+ "padding": "5px 10px 5px 10px",
15
+ "outline": "none",
16
+ "border": "none",
17
+ "border-radius": "10px",
18
+ "cursor": "pointer",
19
+ "color": "inherit",
20
+ "text-align": "center",
21
+ "display": "grid",
22
+ "align-items": "center",
23
+ "white-space": "nowrap",
24
+ "user-select": "none",
25
+ "text-decoration": "none",
26
+ },
27
+ default_events: {
28
+ "onmousedown": function (this: any): void {
29
+ this.style.filter = "brightness(80%)";
30
+ },
31
+ "onmouseover": function (this: any): void {
32
+ this.style.filter = "brightness(90%)";
33
+ },
34
+ "onmouseup": function (this: any): void {
35
+ this.style.filter = "brightness(100%)";
36
+ },
37
+ "onmouseout": function (this: any): void {
38
+ this.style.filter = "brightness(100%)";
39
+ },
40
+ },
41
+ })
11
42
  export class ButtonElement extends VElementTagMap.a {
12
43
 
13
- static default_style = {
14
- "margin": "0px 0px 0px",
15
- "padding": "5px 10px 5px 10px",
16
- "outline": "none",
17
- "border": "none",
18
- "border-radius": "10px",
19
- "cursor": "pointer",
20
- "color": "inherit",
21
- "text-align": "center",
22
- "display": "grid",
23
- "align-items": "center",
24
- "white-space": "nowrap",
25
- "user-select": "none",
26
- "text-decoration": "none",
27
- };
28
- static default_events = {
29
- "onmousedown": function (this: any): void {
30
- this.style.filter = "brightness(80%)";
31
- },
32
- "onmouseover": function (this: any): void {
33
- this.style.filter = "brightness(90%)";
34
- },
35
- "onmouseup": function (this: any): void {
36
- this.style.filter = "brightness(100%)";
37
- },
38
- "onmouseout": function (this: any): void {
39
- this.style.filter = "brightness(100%)";
40
- },
41
- };
42
-
43
44
  /**
44
45
  * @docs:
45
46
  * @nav: Frontend
@@ -5,7 +5,7 @@
5
5
 
6
6
  // Imports.
7
7
  import { Utils } from "../modules/utils.js"
8
- import { Elements, VElementTagMap } from "../elements/module.js"
8
+ import { Elements, VElementBaseSignature, VElement, VElementTagMap } from "../elements/module.js"
9
9
  import { GradientType } from "../types/gradient.js"
10
10
 
11
11
  // Types.
@@ -23,9 +23,12 @@ type DotObject = {x: number, y: number, tension?: number};
23
23
  * @warning:
24
24
  * This class is still experimental and may be subject to future change.
25
25
  */
26
- @Elements.register
26
+ @Elements.create({
27
+ name: "CanvasElement",
28
+ })
27
29
  export class CanvasElement extends VElementTagMap.canvas {
28
30
 
31
+ // Attributes.
29
32
  public _e: any;
30
33
  public ctx_2d: any;
31
34
 
@@ -4,7 +4,7 @@
4
4
  */
5
5
 
6
6
  // Imports.
7
- import { Elements } from "../elements/module.js"
7
+ import { Elements, VElementBaseSignature, VElement } from "../elements/module.js"
8
8
  import { VStack, VStackElement, HStack, HStackElement } from "./stack"
9
9
  import { Text, TextElement } from "./text"
10
10
 
@@ -17,23 +17,22 @@ interface CircleExtension {
17
17
  }
18
18
 
19
19
  // Extended input.
20
- @Elements.register
21
- export class CheckBoxElement extends VStackElement {
22
-
23
- // Default styling.
24
- // static default_style = Object.assign({}, HStackElement.default_style, {
25
-
26
- static default_style = {
27
- ...VStackElement.default_style,
28
- "color": "inherit",
29
- "font-size": "16px",
30
- // Custom.
31
- "--circle-border-color": "gray",
32
- "--circle-inner-bg": "#FFFFFF",
33
- "--focus-color": "#8EB8EB",
34
- "--missing-color": "#E8454E",
35
- }
20
+ @Elements.create({
21
+ name: "CheckBoxElement",
22
+ default_style: {
23
+ ...VStackElement.default_style,
24
+ "color": "inherit",
25
+ "font-size": "16px",
26
+ // Custom.
27
+ "--circle-border-color": "gray",
28
+ "--circle-inner-bg": "#FFFFFF",
29
+ "--focus-color": "#8EB8EB",
30
+ "--missing-color": "#E8454E",
31
+ },
32
+ })
33
+ export class CheckBoxElement extends (VStackElement as any as VElementBaseSignature) {
36
34
 
35
+ // Attributes.
37
36
  public _border_color: string;
38
37
  public _inner_bg: string;
39
38
  public _focus_color: string;
@@ -60,7 +59,7 @@ export class CheckBoxElement extends VStackElement {
60
59
 
61
60
  // Initialize super.
62
61
  super();
63
- this._init_derived({
62
+ this._init({
64
63
  derived: CheckBoxElement,
65
64
  })
66
65
 
@@ -85,8 +84,8 @@ export class CheckBoxElement extends VStackElement {
85
84
  this.circle = VStack(
86
85
  VStack()
87
86
  .assign_to_parent_as("inner")
88
- .border_radius(50%)
89
- .frame(35%, 35%)
87
+ .border_radius("50%")
88
+ .frame("35%", "35%")
90
89
  .background(this._inner_bg)
91
90
  .flex_shrink(0)
92
91
  )
@@ -95,7 +94,7 @@ export class CheckBoxElement extends VStackElement {
95
94
  .border_width(1)
96
95
  .border_style("solid")
97
96
  .border_color(this._border_color)
98
- .border_radius(50%)
97
+ .border_radius("50%")
99
98
  .frame(15, 15)
100
99
  .margin(2.5, 10, 0, 0)
101
100
  .background("transparent")
@@ -137,7 +136,7 @@ export class CheckBoxElement extends VStackElement {
137
136
 
138
137
  // The content.
139
138
  this.content = HStack(this.circle, this.text)
140
- .width(100%)
139
+ .width("100%")
141
140
 
142
141
  // The error message.
143
142
  this.error = Text("Incomplete field")
@@ -7,7 +7,7 @@
7
7
 
8
8
  // Imports.
9
9
  import { Utils } from "../modules/utils.js"
10
- import { Elements, VElementTagMap, VHTMLElement, VPreElement, VSpanElement, VDiv, VDivElement } from "../elements/module.js"
10
+ import { Elements, VElementBaseSignature, VElement, VElementTagMap, VHTMLElement, VPreElement, VSpanElement, VDiv, VDivElement } from "../elements/module.js"
11
11
  import { Span } from "./span"
12
12
  import { VStack, VStackElement, HStack, HStackElement } from "./stack"
13
13
  import { ImageMaskElement, ImageMask } from "./image"
@@ -22,31 +22,33 @@ import * as vhighlight from "vhighlight"
22
22
  const language_codeblocks = [];
23
23
 
24
24
  // CodeBlock.
25
- @Elements.register
25
+ @Elements.create({
26
+ name: "CodeBlockElement",
27
+ default_style: {
28
+ "display": "flex",
29
+ "flex-direction": "column",
30
+ "margin": "0px 0px 0px 0px",
31
+ "padding": "15px 20px 15px 20px",
32
+ "text-align": "start",
33
+ "white-space": "pre",
34
+ "font-family": "'Menlo', 'Consolas', monospace",
35
+ "font-size": "13px",
36
+ "font-weight": "500",
37
+ "line-height": "18px",
38
+ "border-radius": "15px",
39
+ "color": "#FFFFFF",
40
+ "background": "#262F3D",
41
+ "overflow": "hidden", // only the content should scroll so the header remains fixed.
42
+ "width": "100%",
43
+ "min-width": "100%",
44
+ "--header-color": "inherit",
45
+ "--header-border": "#00000010",
46
+ "--header-background": "inherit",
47
+ "--selected-language-color": "inherit",
48
+ },
49
+ })
26
50
  export class CodeBlockElement extends VElementTagMap.code {
27
51
 
28
- static default_style = {
29
- "display": "flex",
30
- "flex-direction": "column",
31
- "margin": "0px 0px 0px 0px",
32
- "padding": "15px 20px 15px 20px",
33
- "text-align": "start",
34
- "white-space": "pre",
35
- "font-family": "'Menlo', 'Consolas', monospace",
36
- "font-size": "13px",
37
- "font-weight": "500",
38
- "line-height": "18px",
39
- "border-radius": "15px",
40
- "color": "#FFFFFF",
41
- "background": "#262F3D",
42
- "overflow": "hidden", // only the content should scroll so the header remains fixed.
43
- "width": "100%",
44
- "min-width": "100%",
45
- "--header-color": "inherit",
46
- "--header-border": "#00000010",
47
- "--header-background": "inherit",
48
- "--selected-language-color": "inherit",
49
- };
50
52
 
51
53
  // Attributes.
52
54
  public language?: string;
@@ -71,13 +73,13 @@ export class CodeBlockElement extends VElementTagMap.code {
71
73
  constructor(code_or_opts: string | {
72
74
  code: string,
73
75
  language?: string,
74
- line_numbers: boolean,
75
- line_divider: boolean,
76
- animate: boolean,
77
- delay: number,
76
+ line_numbers?: boolean,
77
+ line_divider?: boolean,
78
+ animate?: boolean,
79
+ delay?: number,
78
80
  duration?: number,
79
- already_highlighted: boolean,
80
- opts: Record<string, any>,
81
+ already_highlighted?: boolean,
82
+ opts?: Record<string, any>,
81
83
  } = {
82
84
  code: "", // the code data.
83
85
  language: undefined, // the language.
@@ -161,7 +163,7 @@ export class CodeBlockElement extends VElementTagMap.code {
161
163
  // The content.
162
164
  this.content = HStack(this.lines, this.lines_divider, this.pre)
163
165
  .parent(this)
164
- .padding(CodeBlockElement.default_style.padding)
166
+ // .padding(CodeBlockElement.default_style.padding)
165
167
  .flex_wrap("nowrap")
166
168
  .overflow("auto visible")
167
169
 
@@ -171,7 +173,8 @@ export class CodeBlockElement extends VElementTagMap.code {
171
173
  );
172
174
 
173
175
  // Set padding.
174
- this.padding(0)
176
+ // this.padding(0)
177
+ this.padding(CodeBlockElement.default_style.padding)
175
178
 
176
179
 
177
180
  }
@@ -261,25 +264,26 @@ export const NullCodeBlock = Elements.create_null(CodeBlockElement);
261
264
  declare module './any_element.d.ts' { interface AnyElementMap { CodeBlockElement: CodeBlockElement }}
262
265
 
263
266
  // CodePre.
264
- @Elements.register
267
+ @Elements.create({
268
+ name: "CodePreElement",
269
+ default_style: {
270
+ "margin": "0px 0px 0px 0px",
271
+ "padding": "15px 20px 15px 20px",
272
+ "text-align": "start",
273
+ "white-space": "pre",
274
+ "font-family": "'Menlo', 'Consolas', monospace",
275
+ "font-size": "13px",
276
+ "font-weight": "500",
277
+ "line-height": "16px",
278
+ "border-radius": "15px",
279
+ "color": "#FFFFFF",
280
+ "background": "#262F3D",
281
+ "tab-size": 4,
282
+ "overflow": "scroll visible",
283
+ },
284
+ })
265
285
  export class CodePreElement extends VElementTagMap.pre {
266
286
 
267
- static default_style = {
268
- "margin": "0px 0px 0px 0px",
269
- "padding": "15px 20px 15px 20px",
270
- "text-align": "start",
271
- "white-space": "pre",
272
- "font-family": "'Menlo', 'Consolas', monospace",
273
- "font-size": "13px",
274
- "font-weight": "500",
275
- "line-height": "16px",
276
- "border-radius": "15px",
277
- "color": "#FFFFFF",
278
- "background": "#262F3D",
279
- "tab-size": 4,
280
- "overflow": "scroll visible",
281
- }
282
-
283
287
  // Attributes.
284
288
  public code: string;
285
289
  public tokens: any = null;
@@ -587,19 +591,20 @@ declare module './any_element.d.ts' { interface AnyElementMap { CodePreElement:
587
591
  @type: string
588
592
  @descr: The code line content.
589
593
  */
590
- @Elements.register
594
+ @Elements.create({
595
+ name: "CodeLineElement",
596
+ default_style: {
597
+ "font-family": "\"Menlo\", \"Consolas\", monospace",
598
+ "font-size": "0.90em",
599
+ "font-style": "italic",
600
+ "background": "#000000",
601
+ "color": "#FFFFFF",
602
+ "border-radius": "10px",
603
+ "white-space": "pre",
604
+ "padding": "2.5px 7.5px 2.5px 7.5px",
605
+ }
606
+ })
591
607
  export class CodeLineElement extends VElementTagMap.span {
592
-
593
- static default_style = {
594
- "font-family": "\"Menlo\", \"Consolas\", monospace",
595
- "font-size": "0.90em",
596
- "font-style": "italic",
597
- "background": "#000000",
598
- "color": "#FFFFFF",
599
- "border-radius": "10px",
600
- "white-space": "pre",
601
- "padding": "2.5px 7.5px 2.5px 7.5px",
602
- };
603
608
 
604
609
  // Constructor.
605
610
  constructor(text?: string) {
@@ -680,23 +685,24 @@ interface HeaderExtension {
680
685
  @type: boolean
681
686
  @descr: Highlight the code content.
682
687
  */
683
- @Elements.register
684
- export class MultiLanguageCodeBlockElement extends VStackElement {
685
-
686
- static default_style = {
687
- ...VStackElement.default_style,
688
- "font-family": "'Menlo', 'Consolas', monospace",
689
- "background": "black",
690
- "color": "white",
691
- "box-shadow": "0px 0px 5px #00000005",
692
- "font-size": "13px",
693
- "line-height": "18px",
694
- "border-radius": "10px",
695
- "tab-size": 4,
696
- "--mlcb-tint": "white",
697
- "--mlcb-div-bg": "grey",
698
- "--mlcb-title-opac": 0.7,
699
- };
688
+ @Elements.create({
689
+ name: "MultiLanguageCodeBlockElement",
690
+ default_style: {
691
+ ...VStackElement.default_style,
692
+ "font-family": "'Menlo', 'Consolas', monospace",
693
+ "background": "black",
694
+ "color": "white",
695
+ "box-shadow": "0px 0px 5px #00000005",
696
+ "font-size": "13px",
697
+ "line-height": "18px",
698
+ "border-radius": "10px",
699
+ "tab-size": 4,
700
+ "--mlcb-tint": "white",
701
+ "--mlcb-div-bg": "grey",
702
+ "--mlcb-title-opac": 0.7,
703
+ },
704
+ })
705
+ export class MultiLanguageCodeBlockElement extends (VStackElement as any as VElementBaseSignature) {
700
706
 
701
707
  // Attributes.
702
708
  public _fg: string;
@@ -722,7 +728,7 @@ export class MultiLanguageCodeBlockElement extends VStackElement {
722
728
 
723
729
  // Inherit.
724
730
  super();
725
- this._init_derived({
731
+ this._init({
726
732
  derived: MultiLanguageCodeBlockElement,
727
733
  })
728
734
 
@@ -769,7 +775,7 @@ export class MultiLanguageCodeBlockElement extends VStackElement {
769
775
  .font_weight(500)
770
776
  .ellipsis_overflow(true),
771
777
  VStack()
772
- .width(100%)
778
+ .width("100%")
773
779
  .height(2)
774
780
  .border_radius(2)
775
781
  .transition("background 300ms ease-in-out")
@@ -782,7 +788,7 @@ export class MultiLanguageCodeBlockElement extends VStackElement {
782
788
  .padding(0, 2)
783
789
  .flex_shrink(0)
784
790
  .center_vertical()
785
- .height(100%)
791
+ .height("100%")
786
792
  .position("relative")
787
793
  .margin_right(20)
788
794
  .on_mouse_over(() => {
@@ -805,12 +811,12 @@ export class MultiLanguageCodeBlockElement extends VStackElement {
805
811
  }),
806
812
  )
807
813
  .parent(this)
808
- .height(100%)
814
+ .height("100%")
809
815
  .class("hide_scrollbar")
810
816
  .wrap(false)
811
817
  .overflow("visible")
812
818
  // .flex("1 1 0"),
813
- .width(100%),
819
+ .width("100%"),
814
820
 
815
821
  // Spacer.
816
822
  code.length > 1 ? null : Spacer(),
@@ -847,7 +853,7 @@ export class MultiLanguageCodeBlockElement extends VStackElement {
847
853
  }
848
854
  }),
849
855
  )
850
- .width(100%)
856
+ .width("100%")
851
857
  .overflow("hidden")
852
858
  .height(42.5)
853
859
  .padding(0, 15, 0, 15)
@@ -932,7 +938,7 @@ export class MultiLanguageCodeBlockElement extends VStackElement {
932
938
 
933
939
  // Add the code items.
934
940
  this.content = HStack() // keep as hstack, for some reason the right side of the pre's will have padding as well then.
935
- .width(100%)
941
+ .width("100%")
936
942
  .overflow("scroll")
937
943
  let index = 0;
938
944
  code.iterate((item) => {
@@ -965,7 +971,7 @@ export class MultiLanguageCodeBlockElement extends VStackElement {
965
971
  .display("block")
966
972
  .white_space("pre")
967
973
  .class("hide_scrollbar")
968
- .max_width(100%)
974
+ .max_width("100%")
969
975
  .border(1, this._div_bg)
970
976
  .position("relative")
971
977
  .append(
@@ -4,13 +4,15 @@
4
4
  */
5
5
 
6
6
  // Imports.
7
- import { Elements } from "../elements/module.js"
7
+ import { Elements, VElementBaseSignature, VElement } from "../elements/module.js"
8
8
  import { Button } from "./button"
9
9
  import { VStackElement, VStack } from "./stack"
10
10
 
11
11
  // Context Menu.
12
- @Elements.register
13
- export class ContextMenuElement extends VStackElement {
12
+ @Elements.create({
13
+ name: "ContextMenuElement",
14
+ })
15
+ export class ContextMenuElement extends (VStackElement as any as VElementBaseSignature) {
14
16
 
15
17
  // Attributes.
16
18
  public remove_child_callback: any;
@@ -26,7 +28,7 @@ export class ContextMenuElement extends VStackElement {
26
28
 
27
29
  // Initialize base classes.
28
30
  super();
29
- this._init_derived({
31
+ this._init({
30
32
  derived: ContextMenuElement,
31
33
  })
32
34
 
@@ -163,7 +165,7 @@ Elements.extend({
163
165
  return this.oncontextmenu ?? undefined;
164
166
  }
165
167
  }
166
- if (callback instanceof ContextMenuElement || (callback as any).element_type === "ContextMenu") {
168
+ if (callback instanceof ContextMenuElement || (callback as any).element_name === "ContextMenuElement") {
167
169
  this._context_menu = callback as ContextMenuElement;
168
170
  const _this_ = this;
169
171
  this.oncontextmenu = (event) => {
@@ -4,7 +4,7 @@
4
4
  */
5
5
 
6
6
  // Imports.
7
- import { Elements } from "../elements/module.js"
7
+ import { Elements, VElementBaseSignature, VElement } from "../elements/module.js"
8
8
 
9
9
  // Button.
10
10
  export class Stylesheet {
@@ -4,19 +4,24 @@
4
4
  */
5
5
 
6
6
  // Imports.
7
- import { Elements, VElementTagMap } from "../elements/module.js"
7
+ import { Elements, VElementBaseSignature, VElement, VHTMLElement, VElementTagMap } from "../elements/module.js"
8
8
 
9
9
  // Divider.
10
- @Elements.register
10
+ @Elements.create({
11
+ name: "DividerElement",
12
+ default_style: {
13
+ "margin": "0px",
14
+ "padding": "0px",
15
+ "width": "100%",
16
+ "height": "1px",
17
+ "min-height": "1px",
18
+ // "background": "black",
19
+ },
20
+ })
11
21
  export class DividerElement extends VElementTagMap.div {
12
- static default_style = {
13
- "margin": "0px",
14
- "padding": "0px",
15
- "width": "100%",
16
- "height": "1px",
17
- "min-height": "1px",
18
- // "background": "black",
19
- }
22
+
23
+
24
+ // Constructor.
20
25
  constructor() {
21
26
  super({
22
27
  derived: DividerElement,