@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,35 +4,40 @@
4
4
  */
5
5
 
6
6
  // Imports.
7
- import { Elements, VDivElement, VDiv } from "../elements/module.js";
7
+ import { Elements, VElementBaseSignature, VElement, VDivElement, VDiv, VElementTagMap } from "../elements/module.js";
8
8
  import { AnchorHStackElement } from "./stack";
9
9
  import { RingLoader, RingLoaderElement } from "./loaders"
10
+ import { AnyElement } from "./any_element.js";
10
11
 
11
- export class myClass extends AnchorHStackElement {
12
- constructor() { super(); }
13
- }
12
+ // export class myClass extends AnchorHStackElement {
13
+ // constructor() { super(); }
14
+ // }
14
15
 
15
16
  // Loader button.
16
17
  /**
17
18
  * @warning: you should not use function "LoaderButton.loader.hide() / LoaderButton.loader.show()" use "LoaderButton.hide_loader() / LoaderButton.show_loader()" instead.
18
19
  * @warning: This class is still experimental and may be subject to future change.
19
20
  */
20
- @Elements.register
21
- export class LoaderButtonElement extends AnchorHStackElement {
22
- static default_style = {
23
- "margin": "0px",
24
- "padding": "12.5px 10px 12.5px 10px",
25
- "border-radius": "25px",
26
- "cursor": "pointer",
27
- "background": "black",
28
- "color": "inherit",
29
- "font-size": "16px",
30
- "user-select": "none",
31
- "text-decoration": "none",
32
- // Custom.
33
- "--loader-width": "20px",
34
- "--loader-height": "20px",
35
- }
21
+ @Elements.create({
22
+ name: "LoaderButtonElement",
23
+ default_style: {
24
+ "margin": "0px",
25
+ "padding": "12.5px 10px 12.5px 10px",
26
+ "border-radius": "25px",
27
+ "cursor": "pointer",
28
+ "background": "black",
29
+ "color": "inherit",
30
+ "font-size": "16px",
31
+ "user-select": "none",
32
+ "text-decoration": "none",
33
+ // Custom.
34
+ "--loader-width": "20px",
35
+ "--loader-height": "20px",
36
+ }
37
+ })
38
+ export class LoaderButtonElement extends (AnchorHStackElement as any as VElementBaseSignature) {
39
+
40
+ // Attributes.
36
41
  public nodes: {
37
42
  text: VDivElement;
38
43
  loader: RingLoaderElement;
@@ -62,7 +67,7 @@ export class LoaderButtonElement extends AnchorHStackElement {
62
67
 
63
68
  // Initialize base classes.
64
69
  super();
65
- this._init_derived({
70
+ this._init({
66
71
  derived: LoaderButtonElement,
67
72
  });
68
73
 
@@ -186,7 +191,3 @@ export const NullLoaderButton = Elements.create_null(LoaderButtonElement);
186
191
  declare module './any_element.d.ts' { interface AnyElementMap { LoaderButtonElement: LoaderButtonElement }}
187
192
 
188
193
 
189
- const x = new LoaderButtonElement();
190
- x.style.color = "you";
191
-
192
-
@@ -4,7 +4,7 @@
4
4
  */
5
5
 
6
6
  // Imports.
7
- import { Elements, VElementTagMap } from "../elements/module.js"
7
+ import { Elements, VElementBaseSignature, VElement, VElementTagMap } from "../elements/module.js"
8
8
 
9
9
  // RingLoader.
10
10
  // - The width and height must be in pixels.
@@ -15,17 +15,18 @@ import { Elements, VElementTagMap } from "../elements/module.js"
15
15
  * @desc:
16
16
  * The ring loader element.
17
17
  */
18
- @Elements.register
18
+ @Elements.create({
19
+ name: "RingLoaderElement",
20
+ default_style: {
21
+ "width": "80px",
22
+ "height": "80px",
23
+ "--child-background": "black",
24
+ "--border-width-factor": "1",
25
+ "display": "inline-block",
26
+ "position": "relative",
27
+ },
28
+ })
19
29
  export class RingLoaderElement extends VElementTagMap.div {
20
-
21
- static default_style = {
22
- "width": "80px",
23
- "height": "80px",
24
- "--child-background": "black",
25
- "--border-width-factor": "1",
26
- "display": "inline-block",
27
- "position": "relative",
28
- }
29
30
 
30
31
  // Constructor.
31
32
  constructor() {
@@ -4,9 +4,9 @@
4
4
  */
5
5
 
6
6
  // Imports.
7
- import { Elements } from "../elements/module.js"
8
- import { Mutex, MutexType } from "../modules/mutex"
9
- import { HStack, HStackElement, VStack, VStackElement } from "./stack"
7
+ import { Elements, VElementBaseSignature, VElement, AppendType } from "../elements/module.js"
8
+ import { Mutex } from "../modules/mutex"
9
+ import { FrameElement, HStack, HStackElement, VStack, VStackElement } from "./stack"
10
10
  import { Text, TextElement } from "./text"
11
11
  import { Title, TitleElement } from "./title"
12
12
  import { LoaderButtonElement, LoaderButton } from "./loader_button"
@@ -14,15 +14,17 @@ import { ImageMask, ImageMaskElement } from "./image"
14
14
 
15
15
 
16
16
  // Macros.
17
- export type OnYesNoPopup = ((element: PopupElement) => Promise<any> | void)
17
+ export type OnYesNoPopup = ((element: YesNoPopupElement) => Promise<any> | void)
18
18
 
19
19
  // RingLoader.
20
20
  // - The width and height must be in pixels.
21
- @Elements.register
22
- export class PopupElement extends VStackElement {
23
-
21
+ @Elements.create({
22
+ name: "YesNoPopupElement",
23
+ })
24
+ export class YesNoPopupElement extends (VStackElement as any as VElementBaseSignature) {
25
+
24
26
  // Attributes.
25
- public p_mutex: MutexType;
27
+ public p_mutex: Mutex;
26
28
  public p_auto_hide: boolean;
27
29
  public p_auto_remove: boolean;
28
30
  public p_animation_duration: number;
@@ -78,10 +80,12 @@ export class PopupElement extends VStackElement {
78
80
 
79
81
  // Initialize base class.
80
82
  super();
81
- this._init_derived({ derived: PopupElement })
83
+ this._init({
84
+ derived: YesNoPopupElement,
85
+ })
82
86
 
83
87
  // Mutex.
84
- this.p_mutex = Mutex();
88
+ this.p_mutex = new Mutex();
85
89
 
86
90
  // Args.
87
91
  this.p_auto_hide = auto_hide;
@@ -231,7 +235,7 @@ export class PopupElement extends VStackElement {
231
235
 
232
236
  // Set default since it inherits HStackElement.
233
237
  set_default(): this {
234
- return super.set_default(PopupElement);
238
+ return super.set_default(YesNoPopupElement);
235
239
  }
236
240
 
237
241
  // Await the previous popup.
@@ -365,6 +369,156 @@ export class PopupElement extends VStackElement {
365
369
  document.body.addEventListener("keydown", this.p_escape_handler); // for some reason on_key_down on main element is not catched.
366
370
  }
367
371
  }
368
- export const Popup = Elements.wrapper(PopupElement);
369
- export const NullPopup = Elements.create_null(PopupElement);
370
- declare module './any_element.d.ts' { interface AnyElementMap { PopupElement: PopupElement }}
372
+ export const YesNoPopup = Elements.wrapper(YesNoPopupElement);
373
+ export const NullYesNoPopup = Elements.create_null(YesNoPopupElement);
374
+ declare module './any_element.d.ts' { interface AnyElementMap { YesNoPopupElement: YesNoPopupElement }}
375
+
376
+ // /** Custom popup */
377
+ // @Elements.create({
378
+ // name: "CustomPopupElement",
379
+ // })
380
+ // export class CustomPopupElement extends (VStackElement as any as VElementBaseSignature) {
381
+
382
+ // public content: FrameElement;
383
+ // public close:
384
+
385
+ // close_border(...args) {
386
+ // this.close.border(...args);
387
+ // return this;
388
+ // }
389
+
390
+ // constructor(...children: AppendType[]) {
391
+
392
+ // // Initialize base class.
393
+ // super();
394
+ // this._init({
395
+ // derived: CustomPopupElement,
396
+ // })
397
+ // const close_handler = (event) => {
398
+ // if (event.key === "Escape") {
399
+ // popup.close();
400
+ // }
401
+ // }
402
+ // this.append(
403
+ // this.content = UI.Widget(...children)
404
+ // .background(Theme.bg_1)
405
+ // .max_width(400)
406
+ // .parent(this),
407
+ // Frame(
408
+ // close = ImageMask("/static/icons/close.webp")
409
+ // .frame(10, 10)
410
+ // .flex(0)
411
+ // .transition_mask("background 300ms ease-in-out")
412
+ // .color(Theme.bg),
413
+ // )
414
+ // .background(Theme.auto_darken_lighten("fg", 0.5))
415
+ // .border_radius("50%")
416
+ // .border(1, Theme.div_bg)
417
+ // .frame(30, 30)
418
+ // .center().center_vertical()
419
+ // .position(25, 25, null, null)
420
+ // .on_click(() => popup.close())
421
+ // .hover_transitions([
422
+ // { target: "this", selected: Theme.auto_darken_lighten("fg", 0.6), unselected: Theme.auto_darken_lighten("fg", 0.5), methods: ["background"] },
423
+ // { target: close, selected: Theme.bg_hover, unselected: Theme.bg, methods: ["color"] },
424
+ // // { target: "this", selected: Theme.fg, unselected: Theme.fg_2, methods: ["color"] },
425
+ // // { target: "this", selected: Theme.fg, unselected: Theme.fg_2, methods: ["color"] },
426
+ // ])
427
+ // )
428
+ // .position(0, 0, 0, 0)
429
+ // .center()
430
+ // .center_vertical()
431
+ // .background("#00000008")
432
+ // .padding(25)
433
+ // .background_blur(5)
434
+ // .transition("opacity 300ms ease-in-out")
435
+ // .on_click((e, event) => {
436
+ // if (event.target === content || content.is_nested_child(event.target)) {
437
+ // return;
438
+ // }
439
+ // e.close()
440
+ // })
441
+
442
+
443
+ // }
444
+
445
+ // // Set width on content instead of parent.
446
+ // width(): string | number;
447
+ // width(value: string | number, check_attribute?: boolean): this;
448
+ // width(value?: string | number, check_attribute: boolean = true): this | number | string {
449
+ // if (this._e === undefined) {
450
+ // return super.width(value as any, check_attribute);
451
+ // }
452
+ // if (value == null) {
453
+ // return this._e.width.toString();
454
+ // }
455
+ // // Assign percentage values to the root.
456
+ // if (typeof value === "string" && value.includes("%")) {
457
+ // super.width(value as any, false);
458
+ // } else {
459
+ // this._e.style.width = this.pad_numeric(value, "px");
460
+ // this._e.width = value as any;
461
+ // }
462
+ // return this;
463
+ // }
464
+ // min_width(): string | number
465
+ // min_width(value: string | number): this;
466
+ // min_width(value?: string | number): this | string | number {
467
+ // if (this._e === undefined) {
468
+ // return super.min_width(value as any);
469
+ // }
470
+ // if (value == null) {
471
+ // return this._e.style.minWidth;
472
+ // }
473
+ // // Assign percentage values to the root.
474
+ // if (typeof value === "string" && value.includes("%")) {
475
+ // super.min_width(value as any);
476
+ // } else {
477
+ // this._e.style.minWidth = this.pad_numeric(value, "px");
478
+ // }
479
+ // return this;
480
+ // }
481
+ // max_width(): string | number
482
+ // max_width(value: string | number): this;
483
+ // max_width(value?: string | number): this | string | number {
484
+ // if (this._e === undefined) {
485
+ // return super.max_width(value as any);
486
+ // }
487
+ // if (value == null) {
488
+ // return this._e.style.maxWidth;
489
+ // }
490
+ // // Assign percentage values to the root.
491
+ // if (typeof value === "string" && value.includes("%")) {
492
+ // super.max_width(value as any);
493
+ // } else {
494
+ // this._e.style.maxWidth = this.pad_numeric(value, "px");
495
+ // }
496
+ // return this;
497
+ // }
498
+
499
+ // max_width(value: number) {
500
+ // content.max_width(value);
501
+ // return this;
502
+ // }
503
+
504
+ // open() {
505
+ // document.body.addEventListener("keydown", close_handler);
506
+ // UI.view.append(this);
507
+ // this.opacity(0)
508
+ // this.show();
509
+ // this.getBoundingClientRect();
510
+ // this.opacity(1);
511
+ // return this;
512
+ // }
513
+ // close() {
514
+ // document.body.removeEventListener("keydown", close_handler);
515
+ // this.opacity(0)
516
+ // setTimeout(() => this.remove(), 300)
517
+ // return this;
518
+ // }
519
+
520
+ // }
521
+ // }
522
+ // export const CustomPopup = Elements.wrapper(CustomPopupElement);
523
+ // export const NullCustomPopup = Elements.create_null(CustomPopupElement);
524
+ // declare module './any_element.d.ts' { interface AnyElementMap { CustomPopupElement: CustomPopupElement } }
@@ -4,16 +4,18 @@
4
4
  */
5
5
 
6
6
  // Imports.
7
- import { Elements, VElement, VElementTagMap } from "../elements/module.js"
7
+ import { Elements, VElementBaseSignature, VElement, VElementTagMap, AppendType } from "../elements/module.js"
8
8
 
9
9
  // Divider.
10
- @Elements.register
10
+ @Elements.create({
11
+ name: "PseudoElement",
12
+ })
11
13
  export class PseudoElement extends VElementTagMap.div {
12
14
 
13
15
  // Attributes.
14
16
  public added_to_elements: { node: VElement, type: string }[] = [];
15
17
 
16
- constructor(...children: any[]) {
18
+ constructor(...children: AppendType[]) {
17
19
  super({ derived: PseudoElement, });
18
20
 
19
21
  // Append.