@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
@@ -14,6 +14,9 @@ import { Themes } from "../modules/themes.js"
14
14
  import { GradientType } from "../types/gradient.js"
15
15
  import { Statics } from "../modules/statics.js"
16
16
 
17
+ import type { AnyElement } from "../ui/any_element.js"
18
+ import { register_element } from "./register_element.js";
19
+
17
20
  // Vars.
18
21
  const elements_with_width_attribute = [ // elements that use the "width" etc attribute instead of the "style.width".
19
22
  'canvas',
@@ -25,25 +28,32 @@ const elements_with_width_attribute = [ // elements that use the "width" etc att
25
28
  'video',
26
29
  ];
27
30
 
28
-
29
-
30
31
  // ------------------------------------------------------------------------------------------------
31
32
  // The base VElement.
32
33
 
33
34
  // The VElement user defined extensions.
34
35
  declare global {
35
36
  export interface VElementExtensions {}
37
+ // export type none = null | undefined;
36
38
  }
37
39
 
38
40
  // VElement options.
39
- interface VBaseElementOptions {
41
+ interface BaseVElementInitOptions {
40
42
  derived: any,
41
- name?: string,
43
+ // name: string, // replaced with assigning element_name on each element. @warning required since class names are renamed on bundled file so class.name cant be used.
42
44
  // tag: string,
43
45
  default_style?: Record<string, any>;
44
46
  default_attributes?: Record<string, any>;
45
47
  default_events?: Record<string, any>;
46
48
  }
49
+ interface DerivedVElementInitOptions {
50
+ derived?: any,
51
+ name?: string,
52
+ // tag?: string,
53
+ default_style?: Record<string, any>;
54
+ default_attributes?: Record<string, any>;
55
+ default_events?: Record<string, any>;
56
+ }
47
57
 
48
58
  // Get/Set methods.
49
59
  const element_checked_descriptor = Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, 'checked');// instead of getAttribute("checked")
@@ -54,9 +64,16 @@ const element_src_descriptor = Object.getOwnPropertyDescriptor(HTMLImageElement.
54
64
  const element_id_descriptor = Object.getOwnPropertyDescriptor(Element.prototype, 'id');// instead of getAttribute("id")
55
65
  const element_value_descriptor = Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, 'value');
56
66
 
57
- // @ts-ignore
58
- // export interface VBaseElementInterface extends HTMLElement, HTMLCanvasElement, HTMLFormElement, HTMLInputElement, HTMLImageElement, VElementExtensions {}
59
- // export interface VBaseElementInterface {}
67
+ // Types.
68
+ export type AppendType = null | undefined | string | Node | VElement | Function | AppendType[];
69
+ export type ElementCallback<This> = (element: This) => any;
70
+ export type ElementEvent<This> = (element: This, event: Event) => any;
71
+ export type ElementMouseEvent<This> = (element: This, event: MouseEvent) => any;
72
+ export type ElementDragEvent<This> = (element: This, event: MouseEvent) => any;
73
+ export type ElementKeyboardEvent<This> = (element: This, event: KeyboardEvent) => any;
74
+ export type ThemeUpdateCallback<This> = (element: This) => any;
75
+ export type OnAppearCallback<This> = (element: This, options: { scroll_direction: string }) => any;
76
+ export type undefstrnr = null | undefined | string | number;
60
77
 
61
78
  // Base element.
62
79
  // @note: this.tagName can not be used since they have different values on safari and other browsers.
@@ -69,14 +86,6 @@ const element_value_descriptor = Object.getOwnPropertyDescriptor(HTMLInputElemen
69
86
  // export class VElement extends (HTMLElement as {new(): VBaseElementInterface, prototype: VBaseElementInterface}) {
70
87
  export abstract class VElement extends HTMLElement {
71
88
 
72
- // Macros
73
- #macro ElementCallback ((element: this) => any)
74
- #macro ElementEvent ((element: this, event: Event) => any)
75
- #macro ElementMouseEvent ((element: this, event: MouseEvent) => any)
76
- #macro ElementDragEvent ((element: this, event: MouseEvent) => any)
77
- #macro ElementKeyboardEvent ((element: this, event: KeyboardEvent) => any)
78
- #macro ThemeUpdateCallback ((element: this) => any)
79
-
80
89
  // ---------------------------------------------------------
81
90
  // Attributes.
82
91
  // @warning do not use default values since they will be put inside the constructor, which should remain empty, define them in _init_velement() instead.
@@ -89,8 +98,8 @@ export abstract class VElement extends HTMLElement {
89
98
  static default_events: Record<string, any> = {};
90
99
 
91
100
  public rendered!: boolean;
92
- public element_type!: string;
93
- public base_element_type!: string;
101
+ public element_name!: string;
102
+ public base_element_name!: string;
94
103
  public remove_focus!: HTMLElement["blur"];
95
104
  public _v_children!: any[];
96
105
 
@@ -109,17 +118,17 @@ export abstract class VElement extends HTMLElement {
109
118
  public _on_resize_rule_evals!: Record<string, any>;
110
119
  public _observing_on_resize!: boolean;
111
120
  public _observing_on_render!: boolean;
112
- public _on_resize_callbacks!: ElementCallback[];
113
- public _on_render_callbacks!: ElementCallback[];
114
- public _on_theme_updates!: ThemeUpdateCallback[];
115
- public _on_mouse_leave_callback!: ElementMouseEvent;
116
- public _on_mouse_enter_callback!: ElementMouseEvent;
121
+ public _on_resize_callbacks!: ElementCallback<this>[];
122
+ public _on_render_callbacks!: ElementCallback<this>[];
123
+ public _on_theme_updates!: ThemeUpdateCallback<this>[];
124
+ public _on_mouse_leave_callback!: ElementMouseEvent<this>;
125
+ public _on_mouse_enter_callback!: ElementMouseEvent<this>;
117
126
  public _on_shortcut_time!: number;
118
127
  public _on_shortcut_key!: string;
119
128
  public _on_shortcut_keycode!: number;
120
129
  public _on_keypress_set!: boolean;
121
- public _on_enter_callback?: ElementKeyboardEvent;
122
- public _on_escape_callback?: ElementKeyboardEvent;
130
+ public _on_enter_callback?: ElementKeyboardEvent<this>;
131
+ public _on_escape_callback?: ElementKeyboardEvent<this>;
123
132
  public _on_appear_callbacks!: Record<string, any>[];
124
133
  // public _context_menu?: ContextMenuElement;
125
134
  public _media_queries!: {
@@ -144,15 +153,19 @@ export abstract class VElement extends HTMLElement {
144
153
  // @warning do not use the constructor to define any member props, use _init_velement() instead.
145
154
  super();
146
155
  }
147
- // @warning this method should only be used by the direct types declared in this file e.g. VSpanElement.
148
- _init_velement(args: VBaseElementOptions) {
156
+ /**
157
+ * @warning This method should only be used by the direct types declared in this file e.g. VSpanElement.
158
+ * @note This method is always called in the constructor of the base elements defined in VElementTagMap.
159
+ */
160
+ protected _init_sys_velement(args: BaseVElementInitOptions) {
149
161
 
150
162
  // Errs.
151
- if (name == null && !args.derived.name.endsWith("Element")) {
152
- throw new Error("Attribute 'args.name' should be defined when the derived class name does not end with 'Element'.")
153
- } else if (args.name == null) {
154
- args.name = args.derived.name.slice(0, -7);
163
+ if (!args.derived || !args.derived.element_name) {
164
+ throw new Error("Static element attribute 'args.derived.element_name' should always be defined, create static attribute \"element_name: string\" and assign the name of the class to this attribute.")
155
165
  }
166
+ // if (!args.name) {
167
+ // throw new Error("Attribute 'args.name' should always be defined.")
168
+ // }
156
169
 
157
170
  // Attributes.
158
171
  this._is_connected = false;
@@ -161,8 +174,8 @@ export abstract class VElement extends HTMLElement {
161
174
  this.__is_velement = true;
162
175
 
163
176
  this.rendered = false;
164
- this.element_type = args.name!;
165
- this.base_element_type = args.name!;
177
+ this.element_name = args.derived.element_name;
178
+ this.base_element_name = args.derived.element_name;
166
179
  this.remove_focus = super.blur;
167
180
  this._v_children = [];
168
181
 
@@ -242,18 +255,26 @@ export abstract class VElement extends HTMLElement {
242
255
  }
243
256
  }
244
257
  }
245
- // @note: this function is for classes derived from StackElement for example, so for classes that are not directly derived from the types defined in this file, e.g. VSpanElement.
246
- _init_derived(args: VBaseElementOptions) {
258
+ /**
259
+ * @warning Any VElement (a derived class of VElementTagMap) must call this method in its constructor.
260
+ */
261
+ protected _init(args: BaseVElementInitOptions) {
247
262
 
248
263
  // Set name.
249
- if (args.name == null && !args.derived.name.endsWith("Element")) {
250
- throw new Error("Attribute 'args.name' should be defined when the derived class name does not end with 'Element'.")
251
- } else if (args.name == null) {
252
- args.name = args.derived.name.slice(0, -7);
264
+ if (!args.derived || !args.derived.element_name) {
265
+ throw new Error("Static element attribute 'args.derived.element_name' should always be defined, create static attribute \"element_name: string\" and assign the name of the class to this attribute.")
253
266
  }
267
+ // if (!args.name) {
268
+ // throw new Error("Attribute 'args.name' should always be defined.")
269
+ // }
270
+ // if (args.name == null && !args.derived.name.endsWith("Element")) {
271
+ // throw new Error("Attribute 'args.name' should be defined when the derived class name does not end with 'Element'.")
272
+ // } else if (args.name == null) {
273
+ // args.name = args.derived.name.slice(0, -7);
274
+ // }
254
275
 
255
276
  // Set type/name, keep base type the same.
256
- this.element_type = args.name!;
277
+ this.element_name = args.derived.element_name;
257
278
 
258
279
  // Constructed by html code.
259
280
  if (this.hasAttribute !== undefined && this.hasAttribute("created_by_html")) {
@@ -330,7 +351,7 @@ export abstract class VElement extends HTMLElement {
330
351
  // @ts-ignore
331
352
  const clone = new this.constructor();
332
353
 
333
- if (clone.element_type !== undefined) {
354
+ if (clone.element_name != null) {
334
355
  clone.inner_html("");
335
356
  }
336
357
 
@@ -368,7 +389,7 @@ export abstract class VElement extends HTMLElement {
368
389
  if (clone_children && this.childNodes != undefined) {
369
390
  for (let i = 0; i < this.childNodes.length; i++) {
370
391
  const child = this.childNodes[i];
371
- if (isVElement(child) && child.element_type !== undefined) {
392
+ if (isVElement(child) && child.element_name != null) {
372
393
  clone.appendChild((child as any).clone());
373
394
  } else {
374
395
  clone.appendChild(child.cloneNode(true));
@@ -439,19 +460,20 @@ export abstract class VElement extends HTMLElement {
439
460
  * @return:
440
461
  * @description Returns the modified filter string or null if the input filter was null.
441
462
  */
442
- edit_filter_wrapper(filter: string | null, type: string, to: string | null = null): string {
463
+ edit_filter_wrapper(filter: string | null, type: string, to: undefstrnr = undefined): string {
464
+ const to_str: string = (typeof to === "number") ? to.toString() : (to ?? "");
443
465
  if (filter == null) {
444
- return to ?? "";
466
+ return to_str;
445
467
  }
446
468
  const pattern = new RegExp(`${type}\\([^)]*\\)\\s*`, "g");
447
- if (pattern.test(filter)) {
469
+ if (pattern.test(filter!)) {
448
470
  if (to == null) {
449
471
  return pattern[1];
450
472
  } else {
451
- return filter.replace(pattern, to);
473
+ return filter!.replace(pattern, to_str);
452
474
  }
453
475
  } else if (to != null) {
454
- return `${filter} ${to}`;
476
+ return `${filter} ${to_str}`;
455
477
  }
456
478
  return filter;
457
479
  }
@@ -520,7 +542,7 @@ export abstract class VElement extends HTMLElement {
520
542
  * @return:
521
543
  * @descr: Returns the instance of the element for chaining.
522
544
  */
523
- append(...children: any[]): this {
545
+ append(...children: AppendType[]): this {
524
546
  for (let i = 0; i < children.length; i++) {
525
547
  let child = children[i];
526
548
  if (child != null) {
@@ -531,11 +553,9 @@ export abstract class VElement extends HTMLElement {
531
553
  }
532
554
 
533
555
  // VWeb element.
534
- else if (isVElement(child) && child.element_type != null) {
556
+ else if (isVElement(child) && child.element_name != null) {
535
557
  if (
536
- child.element_type == "ForEach" ||
537
- child.element_type == "If" ||
538
- child.element_type == "IfDeviceWith"
558
+ child.element_name == "ForEachElement"
539
559
  ) {
540
560
  child.append_children_to(this, this._on_append_callback);
541
561
  } else {
@@ -591,7 +611,7 @@ export abstract class VElement extends HTMLElement {
591
611
  * @return:
592
612
  * @description Returns the instance of the ZStack element for chaining.
593
613
  */
594
- zstack_append(...children: any[]): this {
614
+ zstack_append(...children: AppendType[]): this {
595
615
  for (let i = 0; i < children.length; i++) {
596
616
  let child = children[i];
597
617
  if (child != null) {
@@ -602,12 +622,10 @@ export abstract class VElement extends HTMLElement {
602
622
  }
603
623
 
604
624
  // VWeb element.
605
- else if (isVElement(child) && child.element_type != null) {
625
+ else if (isVElement(child) && child.element_name != null) {
606
626
  child.style.gridArea = "1 / 1 / 2 / 2";
607
627
  if (
608
- child.element_type == "ForEach" ||
609
- child.element_type == "If" ||
610
- child.element_type == "IfDeviceWith"
628
+ child.element_name == "ForEachElement"
611
629
  ) {
612
630
  child.append_children_to(this, this._on_append_callback);
613
631
  } else {
@@ -628,7 +646,7 @@ export abstract class VElement extends HTMLElement {
628
646
  }
629
647
 
630
648
  // Node element.
631
- else if (child instanceof Node || child instanceof HTMLElement) {
649
+ else if ((child instanceof Node) || (child as any) instanceof HTMLElement) {
632
650
  if (child instanceof HTMLElement) {
633
651
  child.style.gridArea = "1 / 1 / 2 / 2";
634
652
  }
@@ -690,7 +708,7 @@ export abstract class VElement extends HTMLElement {
690
708
  * @description Returns the instance of the element for chaining.
691
709
  */
692
710
  append_children_to(parent: any, on_append_callback?: Function): this {
693
- if (isVElement(parent) && this.base_element_type === "VirtualScroller") {
711
+ if (isVElement(parent) && this.base_element_name === "VirtualScrollerElement") {
694
712
  for (let i = 0; i < parent.children.length; i++) {
695
713
  parent._v_children.push(parent.children[i]);
696
714
  }
@@ -722,7 +740,7 @@ export abstract class VElement extends HTMLElement {
722
740
  * @description Returns the instance of the element for chaining.
723
741
  */
724
742
  remove_child(child: any): this {
725
- if (isVElement(child) && child.element_type != null) {
743
+ if (isVElement(child) && child.element_name != null) {
726
744
  this.removeChild(child as any);
727
745
  } else if (child instanceof Node) {
728
746
  this.removeChild(child as any);
@@ -849,6 +867,9 @@ export abstract class VElement extends HTMLElement {
849
867
  return this;
850
868
  }
851
869
 
870
+ /** Simple wrapper for .width("fit-content") */
871
+ fit_content(): this { return this.width("fit-content"); }
872
+
852
873
  /**
853
874
  * @docs:
854
875
  * @title: Fixed Width
@@ -1194,6 +1215,54 @@ export abstract class VElement extends HTMLElement {
1194
1215
  return response;
1195
1216
  }
1196
1217
 
1218
+ // Sync height from another node.
1219
+ sync_height_from(node: AnyElement, process?: (height: number) => number): this {
1220
+ if ((node as any)._sync_height_info === undefined) {
1221
+ (node as any)._sync_height_info = {
1222
+ sync_to: [this],
1223
+ on_resize(e: VElement) {
1224
+ for (const to_node of (node as any)._sync_height_info.sync_to) {
1225
+ to_node.height(process === undefined ? node.clientHeight : process(node.clientHeight))
1226
+ }
1227
+ },
1228
+ };
1229
+ node.on_resize((node as any)._sync_height_info.on_resize)
1230
+ } else {
1231
+ (node as any)._sync_height_info.sync_to.push(this);
1232
+ }
1233
+ return this;
1234
+ }
1235
+ sync_height_to(node: AnyElement | AnyElement[], process?: (height: number) => number): this {
1236
+ if (Array.isArray(node)) {
1237
+ for (const n of node) {
1238
+ this.sync_height_to(n, process);
1239
+ }
1240
+ return this;
1241
+ }
1242
+ if ((this as any)._sync_height_info === undefined) {
1243
+ (this as any)._sync_height_info = {
1244
+ sync_to: [node],
1245
+ on_resize: (e: VElement) => {
1246
+ for (const to_node of (this as any)._sync_height_info.sync_to) {
1247
+ to_node.height(process === undefined ? this.clientHeight : process(this.clientHeight))
1248
+ }
1249
+ },
1250
+ };
1251
+ this.on_resize((this as any)._sync_height_info.on_resize)
1252
+ } else {
1253
+ (this as any)._sync_height_info.sync_to.push(this);
1254
+ }
1255
+ return this;
1256
+ }
1257
+
1258
+ /**
1259
+ * Set a square frame width and height.
1260
+ */
1261
+ square(size: string | number): this {
1262
+ this.flex(0).fixed_frame(size, size);
1263
+ return this;
1264
+ }
1265
+
1197
1266
  /**
1198
1267
  * @docs:
1199
1268
  * @title: Padding
@@ -1613,7 +1682,7 @@ export abstract class VElement extends HTMLElement {
1613
1682
  hide_dividers = false,
1614
1683
  } = options;
1615
1684
 
1616
- if (this.element_type !== "HStack" && this.element_type !== "AnchorHStack") {
1685
+ if (this.element_name !== "HStackElement" && this.element_name !== "AnchorHStackElement") {
1617
1686
  throw Error("This function is only supported for element \"HStackElement\".");
1618
1687
  }
1619
1688
 
@@ -1666,7 +1735,7 @@ export abstract class VElement extends HTMLElement {
1666
1735
  const is_last_non_divider = (child: any) => {
1667
1736
  if (child.nextElementSibling == null) {
1668
1737
  return true;
1669
- } else if (child.nextElementSibling.element_type !== "Divider") {
1738
+ } else if (child.nextElementSibling.element_name !== "DividerElement") {
1670
1739
  return false;
1671
1740
  } else {
1672
1741
  return is_last_non_divider(child.nextElementSibling);
@@ -1676,7 +1745,7 @@ export abstract class VElement extends HTMLElement {
1676
1745
  // Iterate children.
1677
1746
  this.iterate((child: any) => {
1678
1747
  // Divider element.
1679
- if (child.element_type === "Divider") {
1748
+ if (child.element_name === "DividerElement") {
1680
1749
  if (col_children.length > 0 && hide_dividers) {
1681
1750
  child.hide();
1682
1751
  } else {
@@ -1818,24 +1887,24 @@ export abstract class VElement extends HTMLElement {
1818
1887
  align(value: string): this;
1819
1888
  // @ts-ignore
1820
1889
  align(value?: string): string | this {
1821
- switch (this.base_element_type) {
1822
- case "HStack":
1823
- case "AnchorHStack":
1824
- case "ZStack":
1890
+ switch (this.base_element_name) {
1891
+ case "HStackElement":
1892
+ case "AnchorHStackElement":
1893
+ case "ZStackElement":
1825
1894
  if (value == null) { return this.style.justifyContent; }
1826
1895
  if (value === "default") { value = ""; }
1827
1896
  if (this.style.justifyContent !== value) {
1828
1897
  this.style.justifyContent = value ?? "";
1829
1898
  }
1830
1899
  return this;
1831
- case "Frame":
1900
+ case "FrameElement":
1832
1901
  this.style.display = "flex";
1833
1902
  this.style.flexDirection = "column";
1834
1903
  // fallthrough.
1835
- case "VStack":
1836
- case "AnchorVStack":
1837
- case "Scroller":
1838
- case "View":
1904
+ case "VStackElement":
1905
+ case "AnchorVStackElement":
1906
+ case "ScrollerElement":
1907
+ case "ViewElement":
1839
1908
  if (value == null) { return this.style.alignItems; }
1840
1909
  if (value === "default") { value = "normal"; }
1841
1910
  if (this.style.alignItems !== value) {
@@ -1899,31 +1968,31 @@ export abstract class VElement extends HTMLElement {
1899
1968
  align_vertical(): string;
1900
1969
  align_vertical(value: string): this;
1901
1970
  align_vertical(value?: string): string | this {
1902
- switch (this.base_element_type) {
1903
- case "HStack":
1904
- case "AnchorHStack":
1905
- case "ZStack":
1971
+ switch (this.base_element_name) {
1972
+ case "HStackElement":
1973
+ case "AnchorHStackElement":
1974
+ case "ZStackElement":
1906
1975
  if (value == null) { return this.style.alignItems; }
1907
1976
  if (value === "default") { value = "normal"; }
1908
1977
  if (value !== this.style.alignItems) {
1909
1978
  this.style.alignItems = value ?? "";
1910
1979
  }
1911
1980
  return this;
1912
- case "Frame":
1981
+ case "FrameElement":
1913
1982
  this.style.display = "flex";
1914
1983
  this.style.flexDirection = "column";
1915
1984
  // fallthrough.
1916
- case "VStack":
1917
- case "AnchorVStack":
1918
- case "Scroller":
1919
- case "View":
1985
+ case "VStackElement":
1986
+ case "AnchorVStackElement":
1987
+ case "ScrollerElement":
1988
+ case "ViewElement":
1920
1989
  if (value == null) { return this.style.justifyContent; }
1921
1990
  if (value === "default") { value = ""; }
1922
1991
  if (value !== this.style.justifyContent) {
1923
1992
  this.style.justifyContent = value ?? "";
1924
1993
  }
1925
1994
  return this;
1926
- case "Text":
1995
+ case "TextElement":
1927
1996
  if (value == null) { return this.style.alignItems; }
1928
1997
  if (this.style.display == null || !this.style.display.includes("flex")) {
1929
1998
  this.display("flex");
@@ -2406,8 +2475,8 @@ export abstract class VElement extends HTMLElement {
2406
2475
  opacity(): string | number;
2407
2476
  opacity(value: string | number): this;
2408
2477
  opacity(value?: string | number): this | string | number {
2409
- switch (this.base_element_type) {
2410
- case "Style":
2478
+ switch (this.base_element_name) {
2479
+ case "StyleElement":
2411
2480
  if (value == null) {
2412
2481
  return this._try_parse_float(this.filter(this.edit_filter_wrapper(this.style.filter, "opacity", value)), 1);
2413
2482
  } else {
@@ -2884,7 +2953,7 @@ export abstract class VElement extends HTMLElement {
2884
2953
  }
2885
2954
 
2886
2955
  // When the object is a style object it does not seem to work correctly.
2887
- else if (this.element_type === "Style") {
2956
+ else if (this.element_name === "StyleElement") {
2888
2957
  dict[property] = value;
2889
2958
  }
2890
2959
  }
@@ -3099,6 +3168,73 @@ export abstract class VElement extends HTMLElement {
3099
3168
  }
3100
3169
  }
3101
3170
 
3171
+ /**
3172
+ * Apply on hover transitions.
3173
+ * @note This function also automatically sets the `transition` property for the target element. However, only when the transition attribute hasnt been set yet.
3174
+ * @param target The target node of which to apply
3175
+ * @param methods The methods to call and pass the `selected` value as arg to.
3176
+ * @param selected The selected hover argument value of the selected `methods`.
3177
+ * @param unselected The default non hover argument value of the selected `methods`.
3178
+ * @param methods The methods to call and pass the `selected` value as arg to.
3179
+ */
3180
+ hover_transitions(items: {
3181
+ target: "this" | "self" | AnyElement,
3182
+ selected: string,
3183
+ unselected: string,
3184
+ methods: string[]
3185
+ duration?: number,
3186
+ easing?: string,
3187
+ }[]): this {
3188
+
3189
+ // Set transitions.
3190
+ for (let item of items) {
3191
+ if (item.target === "this" || item.target === "self") {
3192
+ item.target = this;
3193
+ }
3194
+ if (!(item.target as AnyElement).transition()) {
3195
+ let transition = "";
3196
+ let transition_mask = false;
3197
+ for (let m = 0; m < item.methods.length; m++) {
3198
+ let css_name = item.methods[m].replaceAll("_", "-");
3199
+ if (item.target.element_name.includes("ImageMask")) {
3200
+ if (css_name === "color") {
3201
+ // revert image mask css call to background color.
3202
+ css_name = "background";
3203
+ }
3204
+ transition_mask = true;
3205
+ }
3206
+ transition += `${css_name} ${item.duration || 300}ms ${item.easing || "ease-in-out"}${m < item.methods.length - 1 ? ", " : ""}`;
3207
+ };
3208
+ if (transition_mask) {
3209
+ (item.target as any).transition_mask(transition);
3210
+ } else {
3211
+ (item.target as AnyElement).transition(transition);
3212
+ }
3213
+ }
3214
+ }
3215
+
3216
+ // Set hover.
3217
+ this.on_mouse_over(() => {
3218
+ if (!this._is_button_disabled) {
3219
+ for (let item of items) {
3220
+ for (const method of item.methods) {
3221
+ item.target[method](item.selected);
3222
+ };
3223
+ }
3224
+ }
3225
+ });
3226
+ this.on_mouse_out(() => {
3227
+ if (!this._is_button_disabled) {
3228
+ for (let item of items) {
3229
+ for (const method of item.methods) {
3230
+ item.target[method](item.unselected);
3231
+ };
3232
+ }
3233
+ }
3234
+ })
3235
+ return this;
3236
+ }
3237
+
3102
3238
  /**
3103
3239
  * @docs:
3104
3240
  * @title: Text Width
@@ -3142,8 +3278,8 @@ export abstract class VElement extends HTMLElement {
3142
3278
  */
3143
3279
  media(
3144
3280
  media_query: string,
3145
- true_handler?: ElementCallback,
3146
- false_handler?: ElementCallback
3281
+ true_handler?: ElementCallback<this>,
3282
+ false_handler?: ElementCallback<this>
3147
3283
  ): this {
3148
3284
  // Edit query.
3149
3285
  if (media_query.first() !== "(") {
@@ -3885,7 +4021,7 @@ export abstract class VElement extends HTMLElement {
3885
4021
  * @return:
3886
4022
  * @description Returns the instance of the element for chaining.
3887
4023
  */
3888
- timeout(delay: number, callback: ElementCallback, options?: { id?: string; debounce?: boolean } | null): this {
4024
+ timeout(delay: number, callback: ElementCallback<this>, options?: { id?: string; debounce?: boolean } | null): this {
3889
4025
  if (options != null && options.id != null) {
3890
4026
  if (options.debounce === true) {
3891
4027
  clearTimeout(this._timeouts[options.id]);
@@ -3915,6 +4051,7 @@ export abstract class VElement extends HTMLElement {
3915
4051
  return this;
3916
4052
  }
3917
4053
 
4054
+ private _disabled_cursor?: string;
3918
4055
  /**
3919
4056
  * @docs:
3920
4057
  * @title: Disable Button
@@ -3923,6 +4060,8 @@ export abstract class VElement extends HTMLElement {
3923
4060
  * @description Returns the instance of the element for chaining.
3924
4061
  */
3925
4062
  disable(): this {
4063
+ this._disabled_cursor = this.style.cursor;
4064
+ this.style.cursor = "not-allowed";
3926
4065
  this._is_button_disabled = true;
3927
4066
  return this;
3928
4067
  }
@@ -3935,6 +4074,9 @@ export abstract class VElement extends HTMLElement {
3935
4074
  * @description Returns the instance of the element for chaining.
3936
4075
  */
3937
4076
  enable(): this {
4077
+ if (this._disabled_cursor) {
4078
+ this.style.cursor = this._disabled_cursor;
4079
+ }
3938
4080
  this._is_button_disabled = false;
3939
4081
  return this;
3940
4082
  }
@@ -3989,7 +4131,7 @@ export abstract class VElement extends HTMLElement {
3989
4131
  }
3990
4132
  };
3991
4133
  // deprecated, buttons now use <button>
3992
- // if (this.element_type === "Button" || this.element_type === "LoaderButton" || this.element_type === "BorderButton") {
4134
+ // if (this.element_name === "ButtonElement" || this.element_name === "LoaderButtonElement" || this.element_name === "BorderButtonElement") {
3993
4135
  // this.attr("rel", "noopener noreferrer"); // for seo.
3994
4136
  // }
3995
4137
  return this;
@@ -4191,9 +4333,6 @@ export abstract class VElement extends HTMLElement {
4191
4333
  return this;
4192
4334
  }
4193
4335
 
4194
- // On appear callback.
4195
- #macro OnAppearCallback ((element: T, options: { scroll_direction: string }) => any)
4196
-
4197
4336
  /**
4198
4337
  * @docs:
4199
4338
  * @title: On Appear
@@ -4211,11 +4350,11 @@ export abstract class VElement extends HTMLElement {
4211
4350
  * @return:
4212
4351
  * @description Returns the instance of the element for chaining.
4213
4352
  */
4214
- on_appear<T = this>(callback: OnAppearCallback): this;
4215
- on_appear<T = this>(options: { callback: OnAppearCallback; repeat?: boolean, threshold?: number | null }): this;
4353
+ on_appear<T = this>(callback: OnAppearCallback<T>): this;
4354
+ on_appear<T = this>(options: { callback: OnAppearCallback<T>; repeat?: boolean, threshold?: number | null }): this;
4216
4355
  on_appear<T = this>(callback_or_opts?:
4217
- OnAppearCallback |
4218
- { callback: OnAppearCallback, repeat?: boolean; threshold?: number | null }
4356
+ OnAppearCallback<T> |
4357
+ { callback: OnAppearCallback<T>, repeat?: boolean; threshold?: number | null }
4219
4358
  ): this {
4220
4359
  let callback = callback_or_opts, repeat = false, threshold: number | null = null;
4221
4360
  if (typeof callback_or_opts === "object") {
@@ -4420,9 +4559,9 @@ export abstract class VElement extends HTMLElement {
4420
4559
  * @return:
4421
4560
  * @description Returns the instance of the element for chaining.
4422
4561
  */
4423
- on_enter(): undefined | ElementKeyboardEvent;
4424
- on_enter(callback: ElementKeyboardEvent): this;
4425
- on_enter(callback?: ElementKeyboardEvent): this | undefined | ElementKeyboardEvent {
4562
+ on_enter(): undefined | ElementKeyboardEvent<this>;
4563
+ on_enter(callback: ElementKeyboardEvent<this>): this;
4564
+ on_enter(callback?: ElementKeyboardEvent<this>): this | undefined | ElementKeyboardEvent<this> {
4426
4565
  if (callback == null) {
4427
4566
  return this._on_enter_callback;
4428
4567
  }
@@ -4451,9 +4590,9 @@ export abstract class VElement extends HTMLElement {
4451
4590
  * @return:
4452
4591
  * @description Returns the instance of the element for chaining.
4453
4592
  */
4454
- on_escape(): undefined | ElementKeyboardEvent;
4455
- on_escape(callback: ElementKeyboardEvent): this;
4456
- on_escape(callback?: ElementKeyboardEvent): this | undefined | ElementKeyboardEvent {
4593
+ on_escape(): undefined | ElementKeyboardEvent<this>;
4594
+ on_escape(callback: ElementKeyboardEvent<this>): this;
4595
+ on_escape(callback?: ElementKeyboardEvent<this>): this | undefined | ElementKeyboardEvent<this> {
4457
4596
  if (callback == null) {
4458
4597
  return this._on_escape_callback;
4459
4598
  }
@@ -4483,9 +4622,9 @@ export abstract class VElement extends HTMLElement {
4483
4622
  * @description Returns the instance of the element for chaining when a callback is provided, or the array of existing callbacks if null is passed.
4484
4623
  * @funcs: 2
4485
4624
  */
4486
- on_theme_update(): ThemeUpdateCallback[];
4487
- on_theme_update(callback: ThemeUpdateCallback): this;
4488
- on_theme_update(callback?: ThemeUpdateCallback): ThemeUpdateCallback[] | this {
4625
+ on_theme_update(): ThemeUpdateCallback<this>[];
4626
+ on_theme_update(callback: ThemeUpdateCallback<this>): this;
4627
+ on_theme_update(callback?: ThemeUpdateCallback<this>): ThemeUpdateCallback<this>[] | this {
4489
4628
  if (callback == null) {
4490
4629
  return this._on_theme_updates;
4491
4630
  }
@@ -4515,7 +4654,7 @@ export abstract class VElement extends HTMLElement {
4515
4654
  * @return:
4516
4655
  * @description Returns the instance of the element for chaining.
4517
4656
  */
4518
- remove_on_theme_update(callback: ThemeUpdateCallback): this {
4657
+ remove_on_theme_update(callback: ThemeUpdateCallback<this>): this {
4519
4658
  this._on_theme_updates = this._on_theme_updates.drop(callback);
4520
4659
  return this;
4521
4660
  }
@@ -4543,9 +4682,9 @@ export abstract class VElement extends HTMLElement {
4543
4682
  * @description When a callback is provided, returns the instance of the element for chaining. If no callback is provided, returns the array of current callbacks.
4544
4683
  * @funcs: 2
4545
4684
  */
4546
- on_render(): (ElementCallback)[];
4547
- on_render(callback: ElementCallback): this;
4548
- on_render(callback?: ElementCallback): (ElementCallback)[] | this {
4685
+ on_render(): (ElementCallback<this>)[];
4686
+ on_render(callback: ElementCallback<this>): this;
4687
+ on_render(callback?: ElementCallback<this>): (ElementCallback<this>)[] | this {
4549
4688
  if (callback == null) {
4550
4689
  return this._on_render_callbacks;
4551
4690
  }
@@ -4567,7 +4706,7 @@ export abstract class VElement extends HTMLElement {
4567
4706
  * @return:
4568
4707
  * @description Returns the instance of the element for chaining.
4569
4708
  */
4570
- remove_on_render(callback: ElementCallback): this {
4709
+ remove_on_render(callback: ElementCallback<this>): this {
4571
4710
  this._on_render_callbacks = this._on_render_callbacks.drop(callback);
4572
4711
  if (this._on_render_callbacks.length === 0) {
4573
4712
  Utils.on_render_observer.unobserve(this as any);
@@ -4655,9 +4794,9 @@ export abstract class VElement extends HTMLElement {
4655
4794
  * @descr: When a callback is provided, returns the instance for chaining. Otherwise, returns the list of existing resize callbacks.
4656
4795
  * @funcs: 2
4657
4796
  */
4658
- on_resize(): (ElementCallback)[];
4659
- on_resize(callback: ElementCallback): this;
4660
- on_resize(callback?: ElementCallback): (ElementCallback)[] | this {
4797
+ on_resize(): (ElementCallback<this>)[];
4798
+ on_resize(callback: ElementCallback<this>): this;
4799
+ on_resize(callback?: ElementCallback<this>): (ElementCallback<this>)[] | this {
4661
4800
  if (callback == null) {
4662
4801
  return this._on_resize_callbacks;
4663
4802
  }
@@ -4679,7 +4818,7 @@ export abstract class VElement extends HTMLElement {
4679
4818
  * @return:
4680
4819
  * @description Returns the instance of the element for chaining.
4681
4820
  */
4682
- remove_on_resize(callback: ElementCallback): this {
4821
+ remove_on_resize(callback: ElementCallback<this>): this {
4683
4822
  this._on_resize_callbacks = this._on_resize_callbacks.drop(callback);
4684
4823
  if (this._on_resize_callbacks.length === 0) {
4685
4824
  Utils.on_resize_observer.unobserve(this as any);
@@ -4724,8 +4863,8 @@ export abstract class VElement extends HTMLElement {
4724
4863
  */
4725
4864
  on_resize_rule(
4726
4865
  evaluation: (element: this) => boolean,
4727
- on_true?: ElementCallback,
4728
- on_false?: ElementCallback,
4866
+ on_true?: ElementCallback<this>,
4867
+ on_false?: ElementCallback<this>,
4729
4868
  ): this {
4730
4869
  const eval_index = this._on_resize_rule_evals.length;
4731
4870
  this._on_resize_rule_evals[eval_index] = null;
@@ -4930,7 +5069,7 @@ export abstract class VElement extends HTMLElement {
4930
5069
  // return this.oncontextmenu ?? undefined;
4931
5070
  // }
4932
5071
  // }
4933
- // if (callback instanceof ContextMenuElement || (callback as any).element_type === "ContextMenu") {
5072
+ // if (callback instanceof ContextMenuElement || (callback as any).element_name === "ContextMenuElement") {
4934
5073
  // this._context_menu = callback as ContextMenuElement;
4935
5074
  // const _this_ = this;
4936
5075
  // this.oncontextmenu = (event) => {
@@ -4964,9 +5103,9 @@ export abstract class VElement extends HTMLElement {
4964
5103
  * @descr: When a callback is provided, returns the instance of the element for chaining. If no callback is provided, returns the current callback.
4965
5104
  * @funcs: 2
4966
5105
  */
4967
- on_mouse_enter(): ElementMouseEvent;
4968
- on_mouse_enter(callback: ElementMouseEvent): this;
4969
- on_mouse_enter(callback?: ElementMouseEvent): this | ElementMouseEvent {
5106
+ on_mouse_enter(): ElementMouseEvent<this>;
5107
+ on_mouse_enter(callback: ElementMouseEvent<this>): this;
5108
+ on_mouse_enter(callback?: ElementMouseEvent<this>): this | ElementMouseEvent<this> {
4970
5109
  if (callback == null) { return this._on_mouse_enter_callback; }
4971
5110
  this._on_mouse_enter_callback = callback;
4972
5111
  const e = this;
@@ -4985,9 +5124,9 @@ export abstract class VElement extends HTMLElement {
4985
5124
  * @description When an argument is passed this function returns the instance of the element for chaining. Otherwise, it returns the currently set callback function.
4986
5125
  * @funcs: 2
4987
5126
  */
4988
- on_mouse_leave(): ElementMouseEvent;
4989
- on_mouse_leave(callback: ElementMouseEvent): this;
4990
- on_mouse_leave(callback?: ElementMouseEvent): this | ElementMouseEvent {
5127
+ on_mouse_leave(): ElementMouseEvent<this>;
5128
+ on_mouse_leave(callback: ElementMouseEvent<this>): this;
5129
+ on_mouse_leave(callback?: ElementMouseEvent<this>): this | ElementMouseEvent<this> {
4991
5130
  if (callback == null) { return this._on_mouse_leave_callback; }
4992
5131
  this._on_mouse_leave_callback = callback;
4993
5132
  const e = this;
@@ -5008,7 +5147,7 @@ export abstract class VElement extends HTMLElement {
5008
5147
  * @return:
5009
5148
  * @description Returns the instance of the element for chaining.
5010
5149
  */
5011
- on_mouse_over_out(mouse_over: ElementMouseEvent, mouse_out: ElementMouseEvent): this {
5150
+ on_mouse_over_out(mouse_over: ElementMouseEvent<this>, mouse_out: ElementMouseEvent<this>): this {
5012
5151
  this.on_mouse_over(mouse_over);
5013
5152
  this.on_mouse_out(mouse_out);
5014
5153
  return this;
@@ -5679,7 +5818,7 @@ export abstract class VElement extends HTMLElement {
5679
5818
  * @return:
5680
5819
  * @description Returns the instance of the element for chaining.
5681
5820
  */
5682
- exec(callback: ElementCallback): this {
5821
+ exec(callback: ElementCallback<this>): this {
5683
5822
  callback(this);
5684
5823
  return this;
5685
5824
  }
@@ -14252,8 +14391,8 @@ export abstract class VElement extends HTMLElement {
14252
14391
  * @funcs: 2
14253
14392
  */
14254
14393
  // on_page_show(): Function | undefined;
14255
- // on_page_show(callback: ElementEvent): this;
14256
- // on_page_show(callback?: ElementEvent): this | Function | undefined {
14394
+ // on_page_show(callback: ElementEvent<this>): this;
14395
+ // on_page_show(callback?: ElementEvent<this>): this | Function | undefined {
14257
14396
  // if (callback == null) { return this.onpageshow; }
14258
14397
  // const e = this;
14259
14398
  // this.onpageshow = (t) => callback(e, t);
@@ -14320,8 +14459,8 @@ export abstract class VElement extends HTMLElement {
14320
14459
  * @funcs: 2
14321
14460
  */
14322
14461
  on_blur(): Function | undefined;
14323
- on_blur(callback: ElementEvent): this;
14324
- on_blur(callback?: ElementEvent): this | Function | undefined {
14462
+ on_blur(callback: ElementEvent<this>): this;
14463
+ on_blur(callback?: ElementEvent<this>): this | Function | undefined {
14325
14464
  if (callback == null) { return this.onblur ?? undefined; }
14326
14465
  const e = this;
14327
14466
  this.onblur = (t) => callback(e, t);
@@ -14340,8 +14479,8 @@ export abstract class VElement extends HTMLElement {
14340
14479
  * @funcs: 2
14341
14480
  */
14342
14481
  on_change(): Function | undefined;
14343
- on_change(callback: ElementEvent): this;
14344
- on_change(callback?: ElementEvent): this | Function | undefined {
14482
+ on_change(callback: ElementEvent<this>): this;
14483
+ on_change(callback?: ElementEvent<this>): this | Function | undefined {
14345
14484
  if (callback == null) { return this.onchange ?? undefined; }
14346
14485
  const e = this;
14347
14486
  this.onchange = (t) => callback(e, t);
@@ -14361,8 +14500,8 @@ export abstract class VElement extends HTMLElement {
14361
14500
  * @funcs: 2
14362
14501
  */
14363
14502
  on_focus(): Function | undefined;
14364
- on_focus(callback: ElementEvent): this;
14365
- on_focus(callback?: ElementEvent): this | Function | undefined {
14503
+ on_focus(callback: ElementEvent<this>): this;
14504
+ on_focus(callback?: ElementEvent<this>): this | Function | undefined {
14366
14505
  if (callback == null) { return this.onfocus ?? undefined; }
14367
14506
  const e = this;
14368
14507
  this.onfocus = (t) => callback(e, t);
@@ -14383,9 +14522,9 @@ export abstract class VElement extends HTMLElement {
14383
14522
  * @description Returns the `VElement` object for chaining, or the attribute's value if the parameter is `null`.
14384
14523
  * @funcs: 2
14385
14524
  */
14386
- on_input(): ElementEvent | undefined;
14387
- on_input(callback: ElementEvent): this;
14388
- on_input(callback?: ElementEvent): this | ElementEvent | undefined {
14525
+ on_input(): ElementEvent<this> | undefined;
14526
+ on_input(callback: ElementEvent<this>): this;
14527
+ on_input(callback?: ElementEvent<this>): this | ElementEvent<this> | undefined {
14389
14528
  if (callback == null) { return (this.oninput as any) ?? undefined; }
14390
14529
  const e = this;
14391
14530
  this.oninput = (t) => callback(e, t);
@@ -14404,8 +14543,8 @@ export abstract class VElement extends HTMLElement {
14404
14543
  * @funcs: 2
14405
14544
  */
14406
14545
  on_before_input(): Function | undefined;
14407
- on_before_input(callback: ElementEvent): this;
14408
- on_before_input(callback?: ElementEvent): this | Function | undefined {
14546
+ on_before_input(callback: ElementEvent<this>): this;
14547
+ on_before_input(callback?: ElementEvent<this>): this | Function | undefined {
14409
14548
  if (callback == null) { return (this.onbeforeinput as any) ?? undefined; }
14410
14549
  const e = this;
14411
14550
  this.onbeforeinput = (t) => callback(e, t);
@@ -14425,8 +14564,8 @@ export abstract class VElement extends HTMLElement {
14425
14564
  * @funcs: 2
14426
14565
  */
14427
14566
  on_invalid(): Function | undefined;
14428
- on_invalid(callback: ElementEvent): this;
14429
- on_invalid(callback?: ElementEvent): this | Function | undefined {
14567
+ on_invalid(callback: ElementEvent<this>): this;
14568
+ on_invalid(callback?: ElementEvent<this>): this | Function | undefined {
14430
14569
  if (callback == null) { return this.oninvalid ?? undefined; }
14431
14570
  const e = this;
14432
14571
  this.oninvalid = (t) => callback(e, t);
@@ -14446,8 +14585,8 @@ export abstract class VElement extends HTMLElement {
14446
14585
  * @funcs: 2
14447
14586
  */
14448
14587
  on_reset(): Function | undefined;
14449
- on_reset(callback: ElementEvent): this;
14450
- on_reset(callback?: ElementEvent): this | Function | undefined {
14588
+ on_reset(callback: ElementEvent<this>): this;
14589
+ on_reset(callback?: ElementEvent<this>): this | Function | undefined {
14451
14590
  if (callback == null) { return this.onreset ?? undefined; }
14452
14591
  const e = this;
14453
14592
  this.onreset = (t) => callback(e, t);
@@ -14469,8 +14608,8 @@ export abstract class VElement extends HTMLElement {
14469
14608
  * @funcs: 2
14470
14609
  */
14471
14610
  on_select(): Function | undefined;
14472
- on_select(callback: ElementEvent): this;
14473
- on_select(callback?: ElementEvent): this | Function | undefined {
14611
+ on_select(callback: ElementEvent<this>): this;
14612
+ on_select(callback?: ElementEvent<this>): this | Function | undefined {
14474
14613
  if (callback == null) { return this.onselect ?? undefined; }
14475
14614
  const e = this;
14476
14615
  this.onselect = (t) => callback(e, t);
@@ -14490,8 +14629,8 @@ export abstract class VElement extends HTMLElement {
14490
14629
  * @funcs: 2
14491
14630
  */
14492
14631
  on_submit(): Function | undefined;
14493
- on_submit(callback: ElementEvent): this;
14494
- on_submit(callback?: ElementEvent): this | Function | undefined {
14632
+ on_submit(callback: ElementEvent<this>): this;
14633
+ on_submit(callback?: ElementEvent<this>): this | Function | undefined {
14495
14634
  if (callback == null) { return this.onsubmit ?? undefined; }
14496
14635
  const e = this;
14497
14636
  this.onsubmit = (t) => callback(e, t);
@@ -14512,8 +14651,8 @@ export abstract class VElement extends HTMLElement {
14512
14651
  * @funcs: 2
14513
14652
  */
14514
14653
  on_key_down(): Function | undefined;
14515
- on_key_down(callback: ElementKeyboardEvent): this;
14516
- on_key_down(callback?: ElementKeyboardEvent): this | Function | undefined {
14654
+ on_key_down(callback: ElementKeyboardEvent<this>): this;
14655
+ on_key_down(callback?: ElementKeyboardEvent<this>): this | Function | undefined {
14517
14656
  if (callback == null) { return this.onkeydown ?? undefined; }
14518
14657
  const e = this;
14519
14658
  this.onkeydown = (t) => callback(e, t);
@@ -14533,8 +14672,8 @@ export abstract class VElement extends HTMLElement {
14533
14672
  * @funcs: 2
14534
14673
  */
14535
14674
  on_key_press(): Function | undefined;
14536
- on_key_press(callback: ElementKeyboardEvent): this;
14537
- on_key_press(callback?: ElementKeyboardEvent): this | Function | undefined {
14675
+ on_key_press(callback: ElementKeyboardEvent<this>): this;
14676
+ on_key_press(callback?: ElementKeyboardEvent<this>): this | Function | undefined {
14538
14677
  if (callback == null) { return this.onkeypress ?? undefined; }
14539
14678
  const e = this;
14540
14679
  this.onkeypress = (t) => callback(e, t);
@@ -14556,8 +14695,8 @@ export abstract class VElement extends HTMLElement {
14556
14695
  * @funcs: 2
14557
14696
  */
14558
14697
  on_key_up(): Function | undefined;
14559
- on_key_up(callback: ElementKeyboardEvent): this;
14560
- on_key_up(callback?: ElementKeyboardEvent): this | Function | undefined {
14698
+ on_key_up(callback: ElementKeyboardEvent<this>): this;
14699
+ on_key_up(callback?: ElementKeyboardEvent<this>): this | Function | undefined {
14561
14700
  if (callback == null) { return this.onkeyup ?? undefined; }
14562
14701
  const e = this;
14563
14702
  this.onkeyup = (t) => callback(e, t);
@@ -14578,8 +14717,8 @@ export abstract class VElement extends HTMLElement {
14578
14717
  * @funcs: 2
14579
14718
  */
14580
14719
  on_dbl_click(): Function | undefined;
14581
- on_dbl_click(callback: ElementMouseEvent): this;
14582
- on_dbl_click(callback?: ElementMouseEvent): this | Function | undefined {
14720
+ on_dbl_click(callback: ElementMouseEvent<this>): this;
14721
+ on_dbl_click(callback?: ElementMouseEvent<this>): this | Function | undefined {
14583
14722
  if (callback == null) { return this.ondblclick ?? undefined; }
14584
14723
  const e = this;
14585
14724
  this.ondblclick = (t) => callback(e, t);
@@ -14599,8 +14738,8 @@ export abstract class VElement extends HTMLElement {
14599
14738
  * @funcs: 2
14600
14739
  */
14601
14740
  on_mouse_down(): Function | undefined;
14602
- on_mouse_down(callback: ElementMouseEvent): this;
14603
- on_mouse_down(callback?: ElementMouseEvent): this | Function | undefined {
14741
+ on_mouse_down(callback: ElementMouseEvent<this>): this;
14742
+ on_mouse_down(callback?: ElementMouseEvent<this>): this | Function | undefined {
14604
14743
  if (callback == null) { return this.onmousedown ?? undefined; }
14605
14744
  const e = this;
14606
14745
  this.onmousedown = (t) => callback(e, t);
@@ -14620,8 +14759,8 @@ export abstract class VElement extends HTMLElement {
14620
14759
  * @funcs: 2
14621
14760
  */
14622
14761
  on_mouse_move(): Function | undefined;
14623
- on_mouse_move(callback: ElementMouseEvent): this;
14624
- on_mouse_move(callback?: ElementMouseEvent): this | Function | undefined {
14762
+ on_mouse_move(callback: ElementMouseEvent<this>): this;
14763
+ on_mouse_move(callback?: ElementMouseEvent<this>): this | Function | undefined {
14625
14764
  if (callback == null) { return this.onmousemove ?? undefined; }
14626
14765
  const e = this;
14627
14766
  this.onmousemove = (t) => callback(e, t);
@@ -14642,11 +14781,15 @@ export abstract class VElement extends HTMLElement {
14642
14781
  * @funcs: 2
14643
14782
  */
14644
14783
  on_mouse_out(): Function | undefined;
14645
- on_mouse_out(callback: ElementMouseEvent): this;
14646
- on_mouse_out(callback?: ElementMouseEvent): this | Function | undefined {
14784
+ on_mouse_out(callback: ElementMouseEvent<this>): this;
14785
+ on_mouse_out(callback?: ElementMouseEvent<this>): this | Function | undefined {
14647
14786
  if (callback == null) { return this.onmouseout ?? undefined; }
14648
14787
  const e = this;
14649
- this.onmouseout = (t) => callback(e, t);
14788
+ this.onmouseout = (t) => {
14789
+ if (!this._is_button_disabled) {
14790
+ callback(e, t)
14791
+ }
14792
+ };
14650
14793
  return this;
14651
14794
  }
14652
14795
 
@@ -14662,11 +14805,15 @@ export abstract class VElement extends HTMLElement {
14662
14805
  * @funcs: 2
14663
14806
  */
14664
14807
  on_mouse_over(): Function | undefined;
14665
- on_mouse_over(callback: ElementMouseEvent): this;
14666
- on_mouse_over(callback?: ElementMouseEvent): this | Function | undefined {
14808
+ on_mouse_over(callback: ElementMouseEvent<this>): this;
14809
+ on_mouse_over(callback?: ElementMouseEvent<this>): this | Function | undefined {
14667
14810
  if (callback == null) { return this.onmouseover ?? undefined; }
14668
14811
  const e = this;
14669
- this.onmouseover = (t) => callback(e, t);
14812
+ this.onmouseover = (t) => {
14813
+ if (!this._is_button_disabled) {
14814
+ callback(e, t)
14815
+ }
14816
+ };
14670
14817
  return this;
14671
14818
  }
14672
14819
 
@@ -14683,8 +14830,8 @@ export abstract class VElement extends HTMLElement {
14683
14830
  * @funcs: 2
14684
14831
  */
14685
14832
  on_mouse_up(): Function | undefined;
14686
- on_mouse_up(callback: ElementMouseEvent): this;
14687
- on_mouse_up(callback?: ElementMouseEvent): this | Function | undefined {
14833
+ on_mouse_up(callback: ElementMouseEvent<this>): this;
14834
+ on_mouse_up(callback?: ElementMouseEvent<this>): this | Function | undefined {
14688
14835
  if (callback == null) { return this.onmouseup ?? undefined; }
14689
14836
  const e = this;
14690
14837
  this.onmouseup = (t) => callback(e, t);
@@ -14728,8 +14875,8 @@ export abstract class VElement extends HTMLElement {
14728
14875
  * @funcs: 2
14729
14876
  */
14730
14877
  on_drag(): Function | undefined;
14731
- on_drag(callback: ElementDragEvent): this;
14732
- on_drag(callback?: ElementDragEvent): this | Function | undefined {
14878
+ on_drag(callback: ElementDragEvent<this>): this;
14879
+ on_drag(callback?: ElementDragEvent<this>): this | Function | undefined {
14733
14880
  if (callback == null) { return this.ondrag ?? undefined; }
14734
14881
  const e = this;
14735
14882
  this.ondrag = (t) => callback(e, t);
@@ -14749,8 +14896,8 @@ export abstract class VElement extends HTMLElement {
14749
14896
  * @funcs: 2
14750
14897
  */
14751
14898
  on_drag_end(): Function | undefined;
14752
- on_drag_end(callback: ElementDragEvent): this;
14753
- on_drag_end(callback?: ElementDragEvent): this | Function | undefined {
14899
+ on_drag_end(callback: ElementDragEvent<this>): this;
14900
+ on_drag_end(callback?: ElementDragEvent<this>): this | Function | undefined {
14754
14901
  if (callback == null) { return this.ondragend ?? undefined; }
14755
14902
  const e = this;
14756
14903
  this.ondragend = (t) => callback(e, t);
@@ -14775,8 +14922,8 @@ export abstract class VElement extends HTMLElement {
14775
14922
  * @funcs: 2
14776
14923
  */
14777
14924
  on_drag_enter(): Function | undefined;
14778
- on_drag_enter(callback: ElementDragEvent): this;
14779
- on_drag_enter(callback?: ElementDragEvent): this | Function | undefined{
14925
+ on_drag_enter(callback: ElementDragEvent<this>): this;
14926
+ on_drag_enter(callback?: ElementDragEvent<this>): this | Function | undefined{
14780
14927
  if (callback == null) { return this.ondragenter ?? undefined; }
14781
14928
  const e = this;
14782
14929
  this.ondragenter = (t) => callback(e, t);
@@ -14801,8 +14948,8 @@ export abstract class VElement extends HTMLElement {
14801
14948
  * @funcs: 2
14802
14949
  */
14803
14950
  on_drag_leave(): Function | undefined;
14804
- on_drag_leave(callback: ElementDragEvent): this;
14805
- on_drag_leave(callback?: ElementDragEvent): this | Function | undefined {
14951
+ on_drag_leave(callback: ElementDragEvent<this>): this;
14952
+ on_drag_leave(callback?: ElementDragEvent<this>): this | Function | undefined {
14806
14953
  if (callback == null) { return this.ondragleave ?? undefined; }
14807
14954
  const e = this;
14808
14955
  this.ondragleave = (t) => callback(e, t);
@@ -14823,8 +14970,8 @@ export abstract class VElement extends HTMLElement {
14823
14970
  * @funcs: 2
14824
14971
  */
14825
14972
  on_drag_over(): Function | undefined;
14826
- on_drag_over(callback: ElementDragEvent): this;
14827
- on_drag_over(callback?: ElementDragEvent): this | Function | undefined{
14973
+ on_drag_over(callback: ElementDragEvent<this>): this;
14974
+ on_drag_over(callback?: ElementDragEvent<this>): this | Function | undefined{
14828
14975
  if (callback == null) { return this.ondragover ?? undefined; }
14829
14976
  const e = this;
14830
14977
  this.ondragover = (t) => callback(e, t);
@@ -14845,8 +14992,8 @@ export abstract class VElement extends HTMLElement {
14845
14992
  * @funcs: 2
14846
14993
  */
14847
14994
  on_drag_start(): Function | undefined;
14848
- on_drag_start(callback: ElementDragEvent): this;
14849
- on_drag_start(callback?: ElementDragEvent): this | Function | undefined{
14995
+ on_drag_start(callback: ElementDragEvent<this>): this;
14996
+ on_drag_start(callback?: ElementDragEvent<this>): this | Function | undefined{
14850
14997
  if (callback == null) { return this.ondragstart ?? undefined; }
14851
14998
  const e = this;
14852
14999
  this.ondragstart = (t) => callback(e, t);
@@ -14865,8 +15012,8 @@ export abstract class VElement extends HTMLElement {
14865
15012
  * @funcs: 2
14866
15013
  */
14867
15014
  on_drop(): Function | undefined;
14868
- on_drop(callback: ElementEvent): this;
14869
- on_drop(callback?: ElementEvent): this | Function | undefined {
15015
+ on_drop(callback: ElementEvent<this>): this;
15016
+ on_drop(callback?: ElementEvent<this>): this | Function | undefined {
14870
15017
  if (callback == null) { return this.ondrop ?? undefined; }
14871
15018
  const e = this;
14872
15019
  this.ondrop = (t) => callback(e, t);
@@ -14894,8 +15041,8 @@ export abstract class VElement extends HTMLElement {
14894
15041
  * @description Returns the `VElement` object. Unless parameter `value` is `null`, then the attribute's value is returned.
14895
15042
  */
14896
15043
  on_copy(): Function | undefined;
14897
- on_copy(callback: ElementEvent): this;
14898
- on_copy(callback?: ElementEvent): this | Function | undefined {
15044
+ on_copy(callback: ElementEvent<this>): this;
15045
+ on_copy(callback?: ElementEvent<this>): this | Function | undefined {
14899
15046
  if (callback == null) { return this.oncopy ?? undefined; }
14900
15047
  const e = this;
14901
15048
  this.oncopy = (t) => callback(e, t);
@@ -14915,8 +15062,8 @@ export abstract class VElement extends HTMLElement {
14915
15062
  * @funcs: 2
14916
15063
  */
14917
15064
  on_cut(): Function | undefined;
14918
- on_cut(callback: ElementEvent): this;
14919
- on_cut(callback?: ElementEvent): undefined | Function | this {
15065
+ on_cut(callback: ElementEvent<this>): this;
15066
+ on_cut(callback?: ElementEvent<this>): undefined | Function | this {
14920
15067
  if (callback == null) { return this.oncut ?? undefined; }
14921
15068
  const e = this;
14922
15069
  this.oncut = (t) => callback(e, t);
@@ -14936,8 +15083,8 @@ export abstract class VElement extends HTMLElement {
14936
15083
  * @funcs: 2
14937
15084
  */
14938
15085
  on_paste(): Function | undefined;
14939
- on_paste(callback: ElementEvent): this;
14940
- on_paste(callback?: ElementEvent): undefined | Function | this {
15086
+ on_paste(callback: ElementEvent<this>): this;
15087
+ on_paste(callback?: ElementEvent<this>): undefined | Function | this {
14941
15088
  if (callback == null) { return this.onpaste ?? undefined; }
14942
15089
  const e = this;
14943
15090
  this.onpaste = (t) => callback(e, t);
@@ -14958,8 +15105,8 @@ export abstract class VElement extends HTMLElement {
14958
15105
  * @funcs: 2
14959
15106
  */
14960
15107
  on_abort(): Function | undefined;
14961
- on_abort(callback: ElementEvent): this;
14962
- on_abort(callback?: ElementEvent): undefined | Function | this {
15108
+ on_abort(callback: ElementEvent<this>): this;
15109
+ on_abort(callback?: ElementEvent<this>): undefined | Function | this {
14963
15110
  if (callback == null) { return this.onabort ?? undefined; }
14964
15111
  const e = this;
14965
15112
  this.onabort = (t) => callback(e, t);
@@ -14980,8 +15127,8 @@ export abstract class VElement extends HTMLElement {
14980
15127
  * @funcs: 2
14981
15128
  */
14982
15129
  on_canplay(): Function | undefined;
14983
- on_canplay(callback: ElementEvent): this;
14984
- on_canplay(callback?: ElementEvent): undefined | Function | this {
15130
+ on_canplay(callback: ElementEvent<this>): this;
15131
+ on_canplay(callback?: ElementEvent<this>): undefined | Function | this {
14985
15132
  if (callback == null) { return this.oncanplay ?? undefined; }
14986
15133
  const e = this;
14987
15134
  this.oncanplay = (t) => callback(e, t);
@@ -15001,8 +15148,8 @@ export abstract class VElement extends HTMLElement {
15001
15148
  * @funcs: 2
15002
15149
  */
15003
15150
  on_canplay_through(): Function | undefined;
15004
- on_canplay_through(callback: ElementEvent): this;
15005
- on_canplay_through(callback?: ElementEvent): undefined | Function | this {
15151
+ on_canplay_through(callback: ElementEvent<this>): this;
15152
+ on_canplay_through(callback?: ElementEvent<this>): undefined | Function | this {
15006
15153
  if (callback == null) { return this.oncanplaythrough ?? undefined; }
15007
15154
  const e = this;
15008
15155
  this.oncanplaythrough = (t) => callback(e, t);
@@ -15024,8 +15171,8 @@ export abstract class VElement extends HTMLElement {
15024
15171
  * @funcs: 2
15025
15172
  */
15026
15173
  on_cue_change(): Function | undefined;
15027
- on_cue_change(callback: ElementEvent): this;
15028
- on_cue_change(callback?: ElementEvent): undefined | Function | this {
15174
+ on_cue_change(callback: ElementEvent<this>): this;
15175
+ on_cue_change(callback?: ElementEvent<this>): undefined | Function | this {
15029
15176
  if (callback == null) { return this.oncuechange ?? undefined; }
15030
15177
  const e = this;
15031
15178
  this.oncuechange = (t) => callback(e, t);
@@ -15045,8 +15192,8 @@ export abstract class VElement extends HTMLElement {
15045
15192
  * @funcs: 2
15046
15193
  */
15047
15194
  on_duration_change(): Function | undefined;
15048
- on_duration_change(callback: ElementEvent): this;
15049
- on_duration_change(callback?: ElementEvent): undefined | Function | this {
15195
+ on_duration_change(callback: ElementEvent<this>): this;
15196
+ on_duration_change(callback?: ElementEvent<this>): undefined | Function | this {
15050
15197
  if (callback == null) { return this.ondurationchange ?? undefined; }
15051
15198
  const e = this;
15052
15199
  this.ondurationchange = (t) => callback(e, t);
@@ -15066,8 +15213,8 @@ export abstract class VElement extends HTMLElement {
15066
15213
  * @funcs: 2
15067
15214
  */
15068
15215
  on_emptied(): Function | undefined;
15069
- on_emptied(callback: ElementEvent): this;
15070
- on_emptied(callback?: ElementEvent): undefined | Function | this {
15216
+ on_emptied(callback: ElementEvent<this>): this;
15217
+ on_emptied(callback?: ElementEvent<this>): undefined | Function | this {
15071
15218
  if (callback == null) { return this.onemptied ?? undefined; }
15072
15219
  const e = this;
15073
15220
  this.onemptied = (t) => callback(e, t);
@@ -15088,8 +15235,8 @@ export abstract class VElement extends HTMLElement {
15088
15235
  * @funcs: 2
15089
15236
  */
15090
15237
  on_ended(): Function | undefined;
15091
- on_ended(callback: ElementEvent): this;
15092
- on_ended(callback?: ElementEvent): undefined | Function | this {
15238
+ on_ended(callback: ElementEvent<this>): this;
15239
+ on_ended(callback?: ElementEvent<this>): undefined | Function | this {
15093
15240
  if (callback == null) { return this.onended ?? undefined; }
15094
15241
  const e = this;
15095
15242
  this.onended = (t) => callback(e, t);
@@ -15130,8 +15277,8 @@ export abstract class VElement extends HTMLElement {
15130
15277
  * @funcs: 2
15131
15278
  */
15132
15279
  on_loaded_data(): Function | undefined;
15133
- on_loaded_data(callback: ElementEvent): this;
15134
- on_loaded_data(callback?: ElementEvent): undefined | Function | this {
15280
+ on_loaded_data(callback: ElementEvent<this>): this;
15281
+ on_loaded_data(callback?: ElementEvent<this>): undefined | Function | this {
15135
15282
  if (callback == null) { return this.onloadeddata ?? undefined; }
15136
15283
  const e = this;
15137
15284
  this.onloadeddata = (t) => callback(e, t);
@@ -15152,8 +15299,8 @@ export abstract class VElement extends HTMLElement {
15152
15299
  * @funcs: 2
15153
15300
  */
15154
15301
  on_loaded_metadata(): Function | undefined;
15155
- on_loaded_metadata(callback: ElementEvent): this;
15156
- on_loaded_metadata(callback?: ElementEvent): undefined | Function | this {
15302
+ on_loaded_metadata(callback: ElementEvent<this>): this;
15303
+ on_loaded_metadata(callback?: ElementEvent<this>): undefined | Function | this {
15157
15304
  if (callback == null) { return this.onloadedmetadata ?? undefined; }
15158
15305
  const e = this;
15159
15306
  this.onloadedmetadata = (t) => callback(e, t);
@@ -15178,8 +15325,8 @@ export abstract class VElement extends HTMLElement {
15178
15325
  * @funcs: 2
15179
15326
  */
15180
15327
  on_load_start(): Function | undefined;
15181
- on_load_start(callback: ElementEvent): this;
15182
- on_load_start(callback?: ElementEvent): undefined | Function | this {
15328
+ on_load_start(callback: ElementEvent<this>): this;
15329
+ on_load_start(callback?: ElementEvent<this>): undefined | Function | this {
15183
15330
  if (callback == null) { return this.onloadstart ?? undefined; }
15184
15331
  const e = this;
15185
15332
  this.onloadstart = (t) => callback(e, t);
@@ -15198,8 +15345,8 @@ export abstract class VElement extends HTMLElement {
15198
15345
  * @funcs: 2
15199
15346
  */
15200
15347
  on_pause(): Function | undefined;
15201
- on_pause(callback: ElementEvent): this;
15202
- on_pause(callback?: ElementEvent): undefined | Function | this {
15348
+ on_pause(callback: ElementEvent<this>): this;
15349
+ on_pause(callback?: ElementEvent<this>): undefined | Function | this {
15203
15350
  if (callback == null) { return this.onpause ?? undefined; }
15204
15351
  const e = this;
15205
15352
  this.onpause = (t) => callback(e, t);
@@ -15219,8 +15366,8 @@ export abstract class VElement extends HTMLElement {
15219
15366
  * @funcs: 2
15220
15367
  */
15221
15368
  on_play(): Function | undefined;
15222
- on_play(callback: ElementEvent): this;
15223
- on_play(callback?: ElementEvent): undefined | Function | this {
15369
+ on_play(callback: ElementEvent<this>): this;
15370
+ on_play(callback?: ElementEvent<this>): undefined | Function | this {
15224
15371
  if (callback == null) { return this.onplay ?? undefined; }
15225
15372
  const e = this;
15226
15373
  this.onplay = (t) => callback(e, t);
@@ -15261,8 +15408,8 @@ export abstract class VElement extends HTMLElement {
15261
15408
  * @funcs: 2
15262
15409
  */
15263
15410
  on_progress(): Function | undefined;
15264
- on_progress(callback: ElementEvent): this;
15265
- on_progress(callback?: ElementEvent): this | Function | undefined {
15411
+ on_progress(callback: ElementEvent<this>): this;
15412
+ on_progress(callback?: ElementEvent<this>): this | Function | undefined {
15266
15413
  if (callback == null) { return this.onprogress ?? undefined; }
15267
15414
  const e = this;
15268
15415
  this.onprogress = (t) => callback(e, t);
@@ -15282,8 +15429,8 @@ export abstract class VElement extends HTMLElement {
15282
15429
  * @funcs: 2
15283
15430
  */
15284
15431
  on_rate_change(): Function | undefined;
15285
- on_rate_change(callback: ElementEvent): this;
15286
- on_rate_change(callback?: ElementEvent): undefined | this | Function {
15432
+ on_rate_change(callback: ElementEvent<this>): this;
15433
+ on_rate_change(callback?: ElementEvent<this>): undefined | this | Function {
15287
15434
  if (callback == null) { return this.onratechange ?? undefined; }
15288
15435
  const e = this;
15289
15436
  this.onratechange = (t) => callback(e, t);
@@ -15345,8 +15492,8 @@ export abstract class VElement extends HTMLElement {
15345
15492
  * @funcs: 2
15346
15493
  */
15347
15494
  on_stalled(): Function | undefined;
15348
- on_stalled(callback: ElementEvent): this;
15349
- on_stalled(callback?: ElementEvent): this | Function | undefined {
15495
+ on_stalled(callback: ElementEvent<this>): this;
15496
+ on_stalled(callback?: ElementEvent<this>): this | Function | undefined {
15350
15497
  if (callback == null) { return this.onstalled ?? undefined; }
15351
15498
  const e = this;
15352
15499
  this.onstalled = (t) => callback(e, t);
@@ -15385,8 +15532,8 @@ export abstract class VElement extends HTMLElement {
15385
15532
  * @funcs: 2
15386
15533
  */
15387
15534
  on_time_update(): Function | undefined;
15388
- on_time_update(callback: ElementEvent): this;
15389
- on_time_update(callback?: ElementEvent): this | Function | undefined {
15535
+ on_time_update(callback: ElementEvent<this>): this;
15536
+ on_time_update(callback?: ElementEvent<this>): this | Function | undefined {
15390
15537
  if (callback == null) { return this.ontimeupdate ?? undefined; }
15391
15538
  const e = this;
15392
15539
  this.ontimeupdate = (t) => callback(e, t);
@@ -15406,8 +15553,8 @@ export abstract class VElement extends HTMLElement {
15406
15553
  * @funcs: 2
15407
15554
  */
15408
15555
  on_volume_change(): Function | undefined;
15409
- on_volume_change(callback: ElementEvent): this;
15410
- on_volume_change(callback?: ElementEvent): this | Function | undefined {
15556
+ on_volume_change(callback: ElementEvent<this>): this;
15557
+ on_volume_change(callback?: ElementEvent<this>): this | Function | undefined {
15411
15558
  if (callback == null) { return this.onvolumechange ?? undefined; }
15412
15559
  const e = this;
15413
15560
  this.onvolumechange = (t) => callback(e, t);
@@ -15448,8 +15595,8 @@ export abstract class VElement extends HTMLElement {
15448
15595
  * @funcs: 2
15449
15596
  */
15450
15597
  on_toggle() : Function | undefined;
15451
- on_toggle(callback: ElementEvent): this;
15452
- on_toggle(callback?: ElementEvent): this | Function | undefined {
15598
+ on_toggle(callback: ElementEvent<this>): this;
15599
+ on_toggle(callback?: ElementEvent<this>): this | Function | undefined {
15453
15600
  if (callback == null) { return this.ontoggle ?? undefined; }
15454
15601
  const e = this;
15455
15602
  this.ontoggle = (t) => callback(e, t);
@@ -15531,57 +15678,11 @@ export function extend<T extends Record<string, ((this: VElement & ThisType<VEle
15531
15678
  Object.assign(instance.prototype, extension);
15532
15679
  });
15533
15680
  };
15534
- // type ExtendFunction =
15535
- // ((this: VElement, ...args: any[]) => any) |
15536
- // ((this: VElement, ...args: any[]) => VElement) |
15537
- // any
15538
- // export function extend<T extends Record<string, ExtendFunction>>(extension: T) {
15539
- // Object.assign(VElement.prototype, extension);
15540
- // mixed_classes.forEach(instance => {
15541
- // Object.assign(instance.prototype, extension);
15542
- // });
15543
- // };
15544
- // export function extend<T extends VElement>(extension: T) {
15545
- // Object.assign(VElement.prototype, extension);
15546
- // mixed_classes.forEach(instance => {
15547
- // Object.assign(instance.prototype, extension);
15548
- // });
15549
- // };
15550
- // export function extend<T extends Record<keyof T, (this: ThisType<VElement>, ...args: any[]) => any>>(extension: T) {
15551
- // Object.assign(VElement.prototype, extension);
15552
- // mixed_classes.forEach(instance => {
15553
- // Object.assign(instance.prototype, extension);
15554
- // });
15555
- // };
15556
- // export function extend<T extends Record<keyof T, (this: ThisType<VElement>, ...args: any[]) => ThisType<VElement>>>(extension: T) {
15557
- // Object.assign(VElement.prototype, extension);
15558
- // mixed_classes.forEach(instance => {
15559
- // Object.assign(instance.prototype, extension);
15560
- // });
15561
- // };
15562
- // export function extend<T extends Record<keyof T, (this: VElement & ThisType<VElement>, ...args: any[]) => any>>(extension: T) {
15563
- // Object.assign(VElement.prototype, extension);
15564
- // mixed_classes.forEach(instance => {
15565
- // Object.assign(instance.prototype, extension);
15566
- // });
15567
- // };
15568
-
15569
- // Register element.
15570
- function register_type(type: any, tag?: null | string): void {
15571
- (type as any)._is_registered = true;
15572
- // customElements.define(type.name, type, { extends: tag ?? (type as any).element_tag });
15573
- if (tag === null) {
15574
- customElements.define("v-" + type.name.toLowerCase(), type);
15575
- } else {
15576
- customElements.define("v-" + type.name.toLowerCase(), type, { extends: tag ?? (type as any).element_tag });
15577
- }
15578
- }
15579
- // register_type(VElement);
15580
15681
 
15581
15682
  // Post process velement.
15582
- function postprocess(type: any, tag?: null | string): void {
15683
+ function postprocess(type: any): void {
15583
15684
  mixin(type);
15584
- register_type(type, tag);
15685
+ register_element(type);
15585
15686
  }
15586
15687
 
15587
15688
  // Create a constructor wrapper.
@@ -15607,60 +15708,56 @@ export function create_null<T extends new (...args: any[]) => any>(target_class:
15607
15708
  // These types must be defined as v2 in order to extend all base html elements properly and still keep VElement as common base class without using dynamic classes.
15608
15709
  // v1 used a dynamic class which caused a lot of typescript issues regarding extended type & method hierarchy.
15609
15710
 
15610
- interface DerivedConstructorOptions {
15611
- derived?: any,
15612
- name?: string,
15613
- // tag?: string,
15614
- default_style?: Record<string, any>;
15615
- default_attributes?: Record<string, any>;
15616
- default_events?: Record<string, any>;
15617
- }
15618
-
15619
- interface DerivedInitOptions {
15620
- derived: any,
15621
- name?: string,
15622
- // tag?: string,
15623
- default_style?: Record<string, any>;
15624
- default_attributes?: Record<string, any>;
15625
- default_events?: Record<string, any>;
15711
+ // The signature types used to cast `class X extends (VStackElement as VElementBaseSignature)`.
15712
+ // 1. Done to add the extensions to the classes so the class types can be used and still include the extensions instead of `ReturnType<typeof volt.Text>` because that already had the extensions.
15713
+ // 2. Done because sometimes when extending a class typescript doesnt infer and detec the original VElement methods, this cast also fixes that.
15714
+ export type VElementBaseSignature = {
15715
+ new(...args: any[]): VElement & VElementExtensions;
15716
+ element_tag: string;
15717
+ default_style: Record<string, any>;
15718
+ default_attributes: Record<string, any>;
15719
+ default_events: Record<string, any>;
15626
15720
  }
15721
+ type VElementBaseSignature2 = VElementBaseSignature;
15627
15722
 
15628
- type _SafeVBaseElement = typeof VElement & typeof HTMLElement & {
15629
- new(): VElement & HTMLElement & VElementExtensions,
15630
- prototype: VElement & HTMLElement & VElementExtensions,
15631
- }
15723
+ // type _SafeVBaseElement = typeof VElement & typeof HTMLElement & {
15724
+ // new(): VElement & HTMLElement & VElementExtensions,
15725
+ // prototype: VElement & HTMLElement & VElementExtensions,
15726
+ // }
15632
15727
 
15633
15728
  // ---
15634
15729
  // generated by dev/automate_types.js:
15635
15730
 
15636
15731
  // Base class VHTMLElement derived from HTMLElement.
15637
15732
  // @ts-ignore
15638
- export class VHTMLElement extends (HTMLElement as unknown as _SafeVBaseElement) {
15639
- constructor(args: DerivedConstructorOptions = {}) {
15733
+ export class VHTMLElement extends (HTMLElement as unknown as VElementBaseSignature2) {
15734
+ static element_name = "VHTMLElement";
15735
+ constructor(args: DerivedVElementInitOptions = {}) {
15640
15736
  super();
15641
15737
  args.derived ??= VHTMLElement;
15642
- this._init_velement(args as VBaseElementOptions);
15738
+ this._init_sys_velement(args as BaseVElementInitOptions);
15643
15739
  }
15644
15740
  }
15645
15741
  // @ts-ignore
15646
- export interface VHTMLElement extends HTMLElement, VBaseElement, VElementExtensions {};
15647
- postprocess(VHTMLElement, null);
15742
+ // export interface VHTMLElement extends HTMLElement, VElement, VElementExtensions {};
15743
+ postprocess(VHTMLElement);
15648
15744
  export const VHTML = wrapper(VHTMLElement);
15649
15745
  export const NullVHTML = create_null(VHTMLElement);
15650
15746
  declare module '../ui/any_element.d.ts' { interface AnyElementMap { VHTMLElement: VHTMLElement }}
15651
15747
 
15652
15748
  // Base class VAnchorElement derived from HTMLAnchorElement.
15653
15749
  // @ts-ignore
15654
- export class VAnchorElement extends (HTMLAnchorElement as unknown as _SafeVBaseElement) {
15750
+ export class VAnchorElement extends (HTMLAnchorElement as unknown as VElementBaseSignature2) {
15751
+ static element_name = "VAnchorElement";
15655
15752
  static element_tag = "a";
15656
- constructor(args: DerivedConstructorOptions = {}) {
15753
+ constructor(args: DerivedVElementInitOptions = {}) {
15657
15754
  super();
15658
15755
  args.derived ??= VAnchorElement;
15659
- this._init_velement(args as VBaseElementOptions);
15756
+ this._init_sys_velement(args as BaseVElementInitOptions);
15660
15757
  }
15661
15758
  }
15662
15759
  // @ts-ignore
15663
- export interface VAnchorElement extends HTMLAnchorElement, VBaseElement, VElementExtensions {};
15760
+ // export interface VAnchorElement extends HTMLAnchorElement, VElement, VElementExtensions {};
15664
15761
  postprocess(VAnchorElement);
15665
15762
  export const VAnchor = wrapper(VAnchorElement);
15666
15763
  export const NullVAnchor = create_null(VAnchorElement);
@@ -15668,16 +15765,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VAnchorEleme
15668
15765
 
15669
15766
  // Base class VAreaElement derived from HTMLAreaElement.
15670
15767
  // @ts-ignore
15671
- export class VAreaElement extends (HTMLAreaElement as unknown as _SafeVBaseElement) {
15768
+ export class VAreaElement extends (HTMLAreaElement as unknown as VElementBaseSignature2) {
15769
+ static element_name = "VAreaElement";
15672
15770
  static element_tag = "area";
15673
- constructor(args: DerivedConstructorOptions = {}) {
15771
+ constructor(args: DerivedVElementInitOptions = {}) {
15674
15772
  super();
15675
15773
  args.derived ??= VAreaElement;
15676
- this._init_velement(args as VBaseElementOptions);
15774
+ this._init_sys_velement(args as BaseVElementInitOptions);
15677
15775
  }
15678
15776
  }
15679
15777
  // @ts-ignore
15680
- export interface VAreaElement extends HTMLAreaElement, VBaseElement, VElementExtensions {};
15778
+ // export interface VAreaElement extends HTMLAreaElement, VElement, VElementExtensions {};
15681
15779
  postprocess(VAreaElement);
15682
15780
  export const VArea = wrapper(VAreaElement);
15683
15781
  export const NullVArea = create_null(VAreaElement);
@@ -15685,16 +15783,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VAreaElement
15685
15783
 
15686
15784
  // Base class VAudioElement derived from HTMLAudioElement.
15687
15785
  // @ts-ignore
15688
- export class VAudioElement extends (HTMLAudioElement as unknown as _SafeVBaseElement) {
15786
+ export class VAudioElement extends (HTMLAudioElement as unknown as VElementBaseSignature2) {
15787
+ static element_name = "VAudioElement";
15689
15788
  static element_tag = "audio";
15690
- constructor(args: DerivedConstructorOptions = {}) {
15789
+ constructor(args: DerivedVElementInitOptions = {}) {
15691
15790
  super();
15692
15791
  args.derived ??= VAudioElement;
15693
- this._init_velement(args as VBaseElementOptions);
15792
+ this._init_sys_velement(args as BaseVElementInitOptions);
15694
15793
  }
15695
15794
  }
15696
15795
  // @ts-ignore
15697
- export interface VAudioElement extends HTMLAudioElement, VBaseElement, VElementExtensions {};
15796
+ // export interface VAudioElement extends HTMLAudioElement, VElement, VElementExtensions {};
15698
15797
  postprocess(VAudioElement);
15699
15798
  export const VAudio = wrapper(VAudioElement);
15700
15799
  export const NullVAudio = create_null(VAudioElement);
@@ -15702,16 +15801,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VAudioElemen
15702
15801
 
15703
15802
  // Base class VBlockQuoteElement derived from HTMLQuoteElement.
15704
15803
  // @ts-ignore
15705
- export class VBlockQuoteElement extends (HTMLQuoteElement as unknown as _SafeVBaseElement) {
15804
+ export class VBlockQuoteElement extends (HTMLQuoteElement as unknown as VElementBaseSignature2) {
15805
+ static element_name = "VBlockQuoteElement";
15706
15806
  static element_tag = "blockquote";
15707
- constructor(args: DerivedConstructorOptions = {}) {
15807
+ constructor(args: DerivedVElementInitOptions = {}) {
15708
15808
  super();
15709
15809
  args.derived ??= VBlockQuoteElement;
15710
- this._init_velement(args as VBaseElementOptions);
15810
+ this._init_sys_velement(args as BaseVElementInitOptions);
15711
15811
  }
15712
15812
  }
15713
15813
  // @ts-ignore
15714
- export interface VBlockQuoteElement extends HTMLQuoteElement, VBaseElement, VElementExtensions {};
15814
+ // export interface VBlockQuoteElement extends HTMLQuoteElement, VElement, VElementExtensions {};
15715
15815
  postprocess(VBlockQuoteElement);
15716
15816
  export const VBlockQuote = wrapper(VBlockQuoteElement);
15717
15817
  export const NullVBlockQuote = create_null(VBlockQuoteElement);
@@ -15719,16 +15819,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VBlockQuoteE
15719
15819
 
15720
15820
  // Base class VBodyElement derived from HTMLBodyElement.
15721
15821
  // @ts-ignore
15722
- export class VBodyElement extends (HTMLBodyElement as unknown as _SafeVBaseElement) {
15822
+ export class VBodyElement extends (HTMLBodyElement as unknown as VElementBaseSignature2) {
15823
+ static element_name = "VBodyElement";
15723
15824
  static element_tag = "body";
15724
- constructor(args: DerivedConstructorOptions = {}) {
15825
+ constructor(args: DerivedVElementInitOptions = {}) {
15725
15826
  super();
15726
15827
  args.derived ??= VBodyElement;
15727
- this._init_velement(args as VBaseElementOptions);
15828
+ this._init_sys_velement(args as BaseVElementInitOptions);
15728
15829
  }
15729
15830
  }
15730
15831
  // @ts-ignore
15731
- export interface VBodyElement extends HTMLBodyElement, VBaseElement, VElementExtensions {};
15832
+ // export interface VBodyElement extends HTMLBodyElement, VElement, VElementExtensions {};
15732
15833
  postprocess(VBodyElement);
15733
15834
  export const VBody = wrapper(VBodyElement);
15734
15835
  export const NullVBody = create_null(VBodyElement);
@@ -15736,16 +15837,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VBodyElement
15736
15837
 
15737
15838
  // Base class VBRElement derived from HTMLBRElement.
15738
15839
  // @ts-ignore
15739
- export class VBRElement extends (HTMLBRElement as unknown as _SafeVBaseElement) {
15840
+ export class VBRElement extends (HTMLBRElement as unknown as VElementBaseSignature2) {
15841
+ static element_name = "VBRElement";
15740
15842
  static element_tag = "br";
15741
- constructor(args: DerivedConstructorOptions = {}) {
15843
+ constructor(args: DerivedVElementInitOptions = {}) {
15742
15844
  super();
15743
15845
  args.derived ??= VBRElement;
15744
- this._init_velement(args as VBaseElementOptions);
15846
+ this._init_sys_velement(args as BaseVElementInitOptions);
15745
15847
  }
15746
15848
  }
15747
15849
  // @ts-ignore
15748
- export interface VBRElement extends HTMLBRElement, VBaseElement, VElementExtensions {};
15850
+ // export interface VBRElement extends HTMLBRElement, VElement, VElementExtensions {};
15749
15851
  postprocess(VBRElement);
15750
15852
  export const VBR = wrapper(VBRElement);
15751
15853
  export const NullVBR = create_null(VBRElement);
@@ -15753,16 +15855,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VBRElement:
15753
15855
 
15754
15856
  // Base class VButtonElement derived from HTMLButtonElement.
15755
15857
  // @ts-ignore
15756
- export class VButtonElement extends (HTMLButtonElement as unknown as _SafeVBaseElement) {
15858
+ export class VButtonElement extends (HTMLButtonElement as unknown as VElementBaseSignature2) {
15859
+ static element_name = "VButtonElement";
15757
15860
  static element_tag = "button";
15758
- constructor(args: DerivedConstructorOptions = {}) {
15861
+ constructor(args: DerivedVElementInitOptions = {}) {
15759
15862
  super();
15760
15863
  args.derived ??= VButtonElement;
15761
- this._init_velement(args as VBaseElementOptions);
15864
+ this._init_sys_velement(args as BaseVElementInitOptions);
15762
15865
  }
15763
15866
  }
15764
15867
  // @ts-ignore
15765
- export interface VButtonElement extends HTMLButtonElement, VBaseElement, VElementExtensions {};
15868
+ // export interface VButtonElement extends HTMLButtonElement, VElement, VElementExtensions {};
15766
15869
  postprocess(VButtonElement);
15767
15870
  export const VButton = wrapper(VButtonElement);
15768
15871
  export const NullVButton = create_null(VButtonElement);
@@ -15770,16 +15873,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VButtonEleme
15770
15873
 
15771
15874
  // Base class VCanvasElement derived from HTMLCanvasElement.
15772
15875
  // @ts-ignore
15773
- export class VCanvasElement extends (HTMLCanvasElement as unknown as _SafeVBaseElement) {
15876
+ export class VCanvasElement extends (HTMLCanvasElement as unknown as VElementBaseSignature2) {
15877
+ static element_name = "VCanvasElement";
15774
15878
  static element_tag = "canvas";
15775
- constructor(args: DerivedConstructorOptions = {}) {
15879
+ constructor(args: DerivedVElementInitOptions = {}) {
15776
15880
  super();
15777
15881
  args.derived ??= VCanvasElement;
15778
- this._init_velement(args as VBaseElementOptions);
15882
+ this._init_sys_velement(args as BaseVElementInitOptions);
15779
15883
  }
15780
15884
  }
15781
15885
  // @ts-ignore
15782
- export interface VCanvasElement extends HTMLCanvasElement, VBaseElement, VElementExtensions {};
15886
+ // export interface VCanvasElement extends HTMLCanvasElement, VElement, VElementExtensions {};
15783
15887
  postprocess(VCanvasElement);
15784
15888
  export const VCanvas = wrapper(VCanvasElement);
15785
15889
  export const NullVCanvas = create_null(VCanvasElement);
@@ -15787,16 +15891,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VCanvasEleme
15787
15891
 
15788
15892
  // Base class VTableCaptionElement derived from HTMLTableCaptionElement.
15789
15893
  // @ts-ignore
15790
- export class VTableCaptionElement extends (HTMLTableCaptionElement as unknown as _SafeVBaseElement) {
15894
+ export class VTableCaptionElement extends (HTMLTableCaptionElement as unknown as VElementBaseSignature2) {
15895
+ static element_name = "VTableCaptionElement";
15791
15896
  static element_tag = "caption";
15792
- constructor(args: DerivedConstructorOptions = {}) {
15897
+ constructor(args: DerivedVElementInitOptions = {}) {
15793
15898
  super();
15794
15899
  args.derived ??= VTableCaptionElement;
15795
- this._init_velement(args as VBaseElementOptions);
15900
+ this._init_sys_velement(args as BaseVElementInitOptions);
15796
15901
  }
15797
15902
  }
15798
15903
  // @ts-ignore
15799
- export interface VTableCaptionElement extends HTMLTableCaptionElement, VBaseElement, VElementExtensions {};
15904
+ // export interface VTableCaptionElement extends HTMLTableCaptionElement, VElement, VElementExtensions {};
15800
15905
  postprocess(VTableCaptionElement);
15801
15906
  export const VTableCaption = wrapper(VTableCaptionElement);
15802
15907
  export const NullVTableCaption = create_null(VTableCaptionElement);
@@ -15804,16 +15909,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VTableCaptio
15804
15909
 
15805
15910
  // Base class VTableColElement derived from HTMLTableColElement.
15806
15911
  // @ts-ignore
15807
- export class VTableColElement extends (HTMLTableColElement as unknown as _SafeVBaseElement) {
15912
+ export class VTableColElement extends (HTMLTableColElement as unknown as VElementBaseSignature2) {
15913
+ static element_name = "VTableColElement";
15808
15914
  static element_tag = "col";
15809
- constructor(args: DerivedConstructorOptions = {}) {
15915
+ constructor(args: DerivedVElementInitOptions = {}) {
15810
15916
  super();
15811
15917
  args.derived ??= VTableColElement;
15812
- this._init_velement(args as VBaseElementOptions);
15918
+ this._init_sys_velement(args as BaseVElementInitOptions);
15813
15919
  }
15814
15920
  }
15815
15921
  // @ts-ignore
15816
- export interface VTableColElement extends HTMLTableColElement, VBaseElement, VElementExtensions {};
15922
+ // export interface VTableColElement extends HTMLTableColElement, VElement, VElementExtensions {};
15817
15923
  postprocess(VTableColElement);
15818
15924
  export const VTableCol = wrapper(VTableColElement);
15819
15925
  export const NullVTableCol = create_null(VTableColElement);
@@ -15821,16 +15927,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VTableColEle
15821
15927
 
15822
15928
  // Base class VDataElement derived from HTMLDataElement.
15823
15929
  // @ts-ignore
15824
- export class VDataElement extends (HTMLDataElement as unknown as _SafeVBaseElement) {
15930
+ export class VDataElement extends (HTMLDataElement as unknown as VElementBaseSignature2) {
15931
+ static element_name = "VDataElement";
15825
15932
  static element_tag = "data";
15826
- constructor(args: DerivedConstructorOptions = {}) {
15933
+ constructor(args: DerivedVElementInitOptions = {}) {
15827
15934
  super();
15828
15935
  args.derived ??= VDataElement;
15829
- this._init_velement(args as VBaseElementOptions);
15936
+ this._init_sys_velement(args as BaseVElementInitOptions);
15830
15937
  }
15831
15938
  }
15832
15939
  // @ts-ignore
15833
- export interface VDataElement extends HTMLDataElement, VBaseElement, VElementExtensions {};
15940
+ // export interface VDataElement extends HTMLDataElement, VElement, VElementExtensions {};
15834
15941
  postprocess(VDataElement);
15835
15942
  export const VData = wrapper(VDataElement);
15836
15943
  export const NullVData = create_null(VDataElement);
@@ -15838,16 +15945,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VDataElement
15838
15945
 
15839
15946
  // Base class VDataListElement derived from HTMLDataListElement.
15840
15947
  // @ts-ignore
15841
- export class VDataListElement extends (HTMLDataListElement as unknown as _SafeVBaseElement) {
15948
+ export class VDataListElement extends (HTMLDataListElement as unknown as VElementBaseSignature2) {
15949
+ static element_name = "VDataListElement";
15842
15950
  static element_tag = "datalist";
15843
- constructor(args: DerivedConstructorOptions = {}) {
15951
+ constructor(args: DerivedVElementInitOptions = {}) {
15844
15952
  super();
15845
15953
  args.derived ??= VDataListElement;
15846
- this._init_velement(args as VBaseElementOptions);
15954
+ this._init_sys_velement(args as BaseVElementInitOptions);
15847
15955
  }
15848
15956
  }
15849
15957
  // @ts-ignore
15850
- export interface VDataListElement extends HTMLDataListElement, VBaseElement, VElementExtensions {};
15958
+ // export interface VDataListElement extends HTMLDataListElement, VElement, VElementExtensions {};
15851
15959
  postprocess(VDataListElement);
15852
15960
  export const VDataList = wrapper(VDataListElement);
15853
15961
  export const NullVDataList = create_null(VDataListElement);
@@ -15855,16 +15963,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VDataListEle
15855
15963
 
15856
15964
  // Base class VDListElement derived from HTMLDListElement.
15857
15965
  // @ts-ignore
15858
- export class VDListElement extends (HTMLDListElement as unknown as _SafeVBaseElement) {
15966
+ export class VDListElement extends (HTMLDListElement as unknown as VElementBaseSignature2) {
15967
+ static element_name = "VDListElement";
15859
15968
  static element_tag = "dl";
15860
- constructor(args: DerivedConstructorOptions = {}) {
15969
+ constructor(args: DerivedVElementInitOptions = {}) {
15861
15970
  super();
15862
15971
  args.derived ??= VDListElement;
15863
- this._init_velement(args as VBaseElementOptions);
15972
+ this._init_sys_velement(args as BaseVElementInitOptions);
15864
15973
  }
15865
15974
  }
15866
15975
  // @ts-ignore
15867
- export interface VDListElement extends HTMLDListElement, VBaseElement, VElementExtensions {};
15976
+ // export interface VDListElement extends HTMLDListElement, VElement, VElementExtensions {};
15868
15977
  postprocess(VDListElement);
15869
15978
  export const VDList = wrapper(VDListElement);
15870
15979
  export const NullVDList = create_null(VDListElement);
@@ -15872,16 +15981,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VDListElemen
15872
15981
 
15873
15982
  // Base class VDirectoryElement derived from HTMLDirectoryElement.
15874
15983
  // @ts-ignore
15875
- export class VDirectoryElement extends (HTMLDirectoryElement as unknown as _SafeVBaseElement) {
15984
+ export class VDirectoryElement extends (HTMLDirectoryElement as unknown as VElementBaseSignature2) {
15985
+ static element_name = "VDirectoryElement";
15876
15986
  static element_tag = "dir";
15877
- constructor(args: DerivedConstructorOptions = {}) {
15987
+ constructor(args: DerivedVElementInitOptions = {}) {
15878
15988
  super();
15879
15989
  args.derived ??= VDirectoryElement;
15880
- this._init_velement(args as VBaseElementOptions);
15990
+ this._init_sys_velement(args as BaseVElementInitOptions);
15881
15991
  }
15882
15992
  }
15883
15993
  // @ts-ignore
15884
- export interface VDirectoryElement extends HTMLDirectoryElement, VBaseElement, VElementExtensions {};
15994
+ // export interface VDirectoryElement extends HTMLDirectoryElement, VElement, VElementExtensions {};
15885
15995
  postprocess(VDirectoryElement);
15886
15996
  export const VDirectory = wrapper(VDirectoryElement);
15887
15997
  export const NullVDirectory = create_null(VDirectoryElement);
@@ -15889,16 +15999,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VDirectoryEl
15889
15999
 
15890
16000
  // Base class VDivElement derived from HTMLDivElement.
15891
16001
  // @ts-ignore
15892
- export class VDivElement extends (HTMLDivElement as unknown as _SafeVBaseElement) {
16002
+ export class VDivElement extends (HTMLDivElement as unknown as VElementBaseSignature2) {
16003
+ static element_name = "VDivElement";
15893
16004
  static element_tag = "div";
15894
- constructor(args: DerivedConstructorOptions = {}) {
16005
+ constructor(args: DerivedVElementInitOptions = {}) {
15895
16006
  super();
15896
16007
  args.derived ??= VDivElement;
15897
- this._init_velement(args as VBaseElementOptions);
16008
+ this._init_sys_velement(args as BaseVElementInitOptions);
15898
16009
  }
15899
16010
  }
15900
16011
  // @ts-ignore
15901
- export interface VDivElement extends HTMLDivElement, VBaseElement, VElementExtensions {};
16012
+ // export interface VDivElement extends HTMLDivElement, VElement, VElementExtensions {};
15902
16013
  postprocess(VDivElement);
15903
16014
  export const VDiv = wrapper(VDivElement);
15904
16015
  export const NullVDiv = create_null(VDivElement);
@@ -15906,16 +16017,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VDivElement:
15906
16017
 
15907
16018
  // Base class VEmbedElement derived from HTMLEmbedElement.
15908
16019
  // @ts-ignore
15909
- export class VEmbedElement extends (HTMLEmbedElement as unknown as _SafeVBaseElement) {
16020
+ export class VEmbedElement extends (HTMLEmbedElement as unknown as VElementBaseSignature2) {
16021
+ static element_name = "VEmbedElement";
15910
16022
  static element_tag = "embed";
15911
- constructor(args: DerivedConstructorOptions = {}) {
16023
+ constructor(args: DerivedVElementInitOptions = {}) {
15912
16024
  super();
15913
16025
  args.derived ??= VEmbedElement;
15914
- this._init_velement(args as VBaseElementOptions);
16026
+ this._init_sys_velement(args as BaseVElementInitOptions);
15915
16027
  }
15916
16028
  }
15917
16029
  // @ts-ignore
15918
- export interface VEmbedElement extends HTMLEmbedElement, VBaseElement, VElementExtensions {};
16030
+ // export interface VEmbedElement extends HTMLEmbedElement, VElement, VElementExtensions {};
15919
16031
  postprocess(VEmbedElement);
15920
16032
  export const VEmbed = wrapper(VEmbedElement);
15921
16033
  export const NullVEmbed = create_null(VEmbedElement);
@@ -15923,16 +16035,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VEmbedElemen
15923
16035
 
15924
16036
  // Base class VFieldSetElement derived from HTMLFieldSetElement.
15925
16037
  // @ts-ignore
15926
- export class VFieldSetElement extends (HTMLFieldSetElement as unknown as _SafeVBaseElement) {
16038
+ export class VFieldSetElement extends (HTMLFieldSetElement as unknown as VElementBaseSignature2) {
16039
+ static element_name = "VFieldSetElement";
15927
16040
  static element_tag = "fieldset";
15928
- constructor(args: DerivedConstructorOptions = {}) {
16041
+ constructor(args: DerivedVElementInitOptions = {}) {
15929
16042
  super();
15930
16043
  args.derived ??= VFieldSetElement;
15931
- this._init_velement(args as VBaseElementOptions);
16044
+ this._init_sys_velement(args as BaseVElementInitOptions);
15932
16045
  }
15933
16046
  }
15934
16047
  // @ts-ignore
15935
- export interface VFieldSetElement extends HTMLFieldSetElement, VBaseElement, VElementExtensions {};
16048
+ // export interface VFieldSetElement extends HTMLFieldSetElement, VElement, VElementExtensions {};
15936
16049
  postprocess(VFieldSetElement);
15937
16050
  export const VFieldSet = wrapper(VFieldSetElement);
15938
16051
  export const NullVFieldSet = create_null(VFieldSetElement);
@@ -15940,16 +16053,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VFieldSetEle
15940
16053
 
15941
16054
  // Base class VFormElement derived from HTMLFormElement.
15942
16055
  // @ts-ignore
15943
- export class VFormElement extends (HTMLFormElement as unknown as _SafeVBaseElement) {
16056
+ export class VFormElement extends (HTMLFormElement as unknown as VElementBaseSignature2) {
16057
+ static element_name = "VFormElement";
15944
16058
  static element_tag = "form";
15945
- constructor(args: DerivedConstructorOptions = {}) {
16059
+ constructor(args: DerivedVElementInitOptions = {}) {
15946
16060
  super();
15947
16061
  args.derived ??= VFormElement;
15948
- this._init_velement(args as VBaseElementOptions);
16062
+ this._init_sys_velement(args as BaseVElementInitOptions);
15949
16063
  }
15950
16064
  }
15951
16065
  // @ts-ignore
15952
- export interface VFormElement extends HTMLFormElement, VBaseElement, VElementExtensions {};
16066
+ // export interface VFormElement extends HTMLFormElement, VElement, VElementExtensions {};
15953
16067
  postprocess(VFormElement);
15954
16068
  export const VForm = wrapper(VFormElement);
15955
16069
  export const NullVForm = create_null(VFormElement);
@@ -15957,16 +16071,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VFormElement
15957
16071
 
15958
16072
  // Base class VHeadingElement derived from HTMLHeadingElement.
15959
16073
  // @ts-ignore
15960
- export class VHeadingElement extends (HTMLHeadingElement as unknown as _SafeVBaseElement) {
16074
+ export class VHeadingElement extends (HTMLHeadingElement as unknown as VElementBaseSignature2) {
16075
+ static element_name = "VHeadingElement";
15961
16076
  static element_tag = "h1";
15962
- constructor(args: DerivedConstructorOptions = {}) {
16077
+ constructor(args: DerivedVElementInitOptions = {}) {
15963
16078
  super();
15964
16079
  args.derived ??= VHeadingElement;
15965
- this._init_velement(args as VBaseElementOptions);
16080
+ this._init_sys_velement(args as BaseVElementInitOptions);
15966
16081
  }
15967
16082
  }
15968
16083
  // @ts-ignore
15969
- export interface VHeadingElement extends HTMLHeadingElement, VBaseElement, VElementExtensions {};
16084
+ // export interface VHeadingElement extends HTMLHeadingElement, VElement, VElementExtensions {};
15970
16085
  postprocess(VHeadingElement);
15971
16086
  export const VHeading = wrapper(VHeadingElement);
15972
16087
  export const NullVHeading = create_null(VHeadingElement);
@@ -15974,16 +16089,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VHeadingElem
15974
16089
 
15975
16090
  // Base class VHeadElement derived from HTMLHeadElement.
15976
16091
  // @ts-ignore
15977
- export class VHeadElement extends (HTMLHeadElement as unknown as _SafeVBaseElement) {
16092
+ export class VHeadElement extends (HTMLHeadElement as unknown as VElementBaseSignature2) {
16093
+ static element_name = "VHeadElement";
15978
16094
  static element_tag = "head";
15979
- constructor(args: DerivedConstructorOptions = {}) {
16095
+ constructor(args: DerivedVElementInitOptions = {}) {
15980
16096
  super();
15981
16097
  args.derived ??= VHeadElement;
15982
- this._init_velement(args as VBaseElementOptions);
16098
+ this._init_sys_velement(args as BaseVElementInitOptions);
15983
16099
  }
15984
16100
  }
15985
16101
  // @ts-ignore
15986
- export interface VHeadElement extends HTMLHeadElement, VBaseElement, VElementExtensions {};
16102
+ // export interface VHeadElement extends HTMLHeadElement, VElement, VElementExtensions {};
15987
16103
  postprocess(VHeadElement);
15988
16104
  export const VHead = wrapper(VHeadElement);
15989
16105
  export const NullVHead = create_null(VHeadElement);
@@ -15991,16 +16107,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VHeadElement
15991
16107
 
15992
16108
  // Base class VHRElement derived from HTMLHRElement.
15993
16109
  // @ts-ignore
15994
- export class VHRElement extends (HTMLHRElement as unknown as _SafeVBaseElement) {
16110
+ export class VHRElement extends (HTMLHRElement as unknown as VElementBaseSignature2) {
16111
+ static element_name = "VHRElement";
15995
16112
  static element_tag = "hr";
15996
- constructor(args: DerivedConstructorOptions = {}) {
16113
+ constructor(args: DerivedVElementInitOptions = {}) {
15997
16114
  super();
15998
16115
  args.derived ??= VHRElement;
15999
- this._init_velement(args as VBaseElementOptions);
16116
+ this._init_sys_velement(args as BaseVElementInitOptions);
16000
16117
  }
16001
16118
  }
16002
16119
  // @ts-ignore
16003
- export interface VHRElement extends HTMLHRElement, VBaseElement, VElementExtensions {};
16120
+ // export interface VHRElement extends HTMLHRElement, VElement, VElementExtensions {};
16004
16121
  postprocess(VHRElement);
16005
16122
  export const VHR = wrapper(VHRElement);
16006
16123
  export const NullVHR = create_null(VHRElement);
@@ -16008,16 +16125,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VHRElement:
16008
16125
 
16009
16126
  // Base class VImageElement derived from HTMLImageElement.
16010
16127
  // @ts-ignore
16011
- export class VImageElement extends (HTMLImageElement as unknown as _SafeVBaseElement) {
16128
+ export class VImageElement extends (HTMLImageElement as unknown as VElementBaseSignature2) {
16129
+ static element_name = "VImageElement";
16012
16130
  static element_tag = "img";
16013
- constructor(args: DerivedConstructorOptions = {}) {
16131
+ constructor(args: DerivedVElementInitOptions = {}) {
16014
16132
  super();
16015
16133
  args.derived ??= VImageElement;
16016
- this._init_velement(args as VBaseElementOptions);
16134
+ this._init_sys_velement(args as BaseVElementInitOptions);
16017
16135
  }
16018
16136
  }
16019
16137
  // @ts-ignore
16020
- export interface VImageElement extends HTMLImageElement, VBaseElement, VElementExtensions {};
16138
+ // export interface VImageElement extends HTMLImageElement, VElement, VElementExtensions {};
16021
16139
  postprocess(VImageElement);
16022
16140
  export const VImage = wrapper(VImageElement);
16023
16141
  export const NullVImage = create_null(VImageElement);
@@ -16025,16 +16143,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VImageElemen
16025
16143
 
16026
16144
  // Base class VInputElement derived from HTMLInputElement.
16027
16145
  // @ts-ignore
16028
- export class VInputElement extends (HTMLInputElement as unknown as _SafeVBaseElement) {
16146
+ export class VInputElement extends (HTMLInputElement as unknown as VElementBaseSignature2) {
16147
+ static element_name = "VInputElement";
16029
16148
  static element_tag = "input";
16030
- constructor(args: DerivedConstructorOptions = {}) {
16149
+ constructor(args: DerivedVElementInitOptions = {}) {
16031
16150
  super();
16032
16151
  args.derived ??= VInputElement;
16033
- this._init_velement(args as VBaseElementOptions);
16152
+ this._init_sys_velement(args as BaseVElementInitOptions);
16034
16153
  }
16035
16154
  }
16036
16155
  // @ts-ignore
16037
- export interface VInputElement extends HTMLInputElement, VBaseElement, VElementExtensions {};
16156
+ // export interface VInputElement extends HTMLInputElement, VElement, VElementExtensions {};
16038
16157
  postprocess(VInputElement);
16039
16158
  export const VInput = wrapper(VInputElement);
16040
16159
  export const NullVInput = create_null(VInputElement);
@@ -16042,16 +16161,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VInputElemen
16042
16161
 
16043
16162
  // Base class VModElement derived from HTMLModElement.
16044
16163
  // @ts-ignore
16045
- export class VModElement extends (HTMLModElement as unknown as _SafeVBaseElement) {
16164
+ export class VModElement extends (HTMLModElement as unknown as VElementBaseSignature2) {
16165
+ static element_name = "VModElement";
16046
16166
  static element_tag = "ins";
16047
- constructor(args: DerivedConstructorOptions = {}) {
16167
+ constructor(args: DerivedVElementInitOptions = {}) {
16048
16168
  super();
16049
16169
  args.derived ??= VModElement;
16050
- this._init_velement(args as VBaseElementOptions);
16170
+ this._init_sys_velement(args as BaseVElementInitOptions);
16051
16171
  }
16052
16172
  }
16053
16173
  // @ts-ignore
16054
- export interface VModElement extends HTMLModElement, VBaseElement, VElementExtensions {};
16174
+ // export interface VModElement extends HTMLModElement, VElement, VElementExtensions {};
16055
16175
  postprocess(VModElement);
16056
16176
  export const VMod = wrapper(VModElement);
16057
16177
  export const NullVMod = create_null(VModElement);
@@ -16059,16 +16179,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VModElement:
16059
16179
 
16060
16180
  // Base class VLabelElement derived from HTMLLabelElement.
16061
16181
  // @ts-ignore
16062
- export class VLabelElement extends (HTMLLabelElement as unknown as _SafeVBaseElement) {
16182
+ export class VLabelElement extends (HTMLLabelElement as unknown as VElementBaseSignature2) {
16183
+ static element_name = "VLabelElement";
16063
16184
  static element_tag = "label";
16064
- constructor(args: DerivedConstructorOptions = {}) {
16185
+ constructor(args: DerivedVElementInitOptions = {}) {
16065
16186
  super();
16066
16187
  args.derived ??= VLabelElement;
16067
- this._init_velement(args as VBaseElementOptions);
16188
+ this._init_sys_velement(args as BaseVElementInitOptions);
16068
16189
  }
16069
16190
  }
16070
16191
  // @ts-ignore
16071
- export interface VLabelElement extends HTMLLabelElement, VBaseElement, VElementExtensions {};
16192
+ // export interface VLabelElement extends HTMLLabelElement, VElement, VElementExtensions {};
16072
16193
  postprocess(VLabelElement);
16073
16194
  export const VLabel = wrapper(VLabelElement);
16074
16195
  export const NullVLabel = create_null(VLabelElement);
@@ -16076,16 +16197,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VLabelElemen
16076
16197
 
16077
16198
  // Base class VLegendElement derived from HTMLLegendElement.
16078
16199
  // @ts-ignore
16079
- export class VLegendElement extends (HTMLLegendElement as unknown as _SafeVBaseElement) {
16200
+ export class VLegendElement extends (HTMLLegendElement as unknown as VElementBaseSignature2) {
16201
+ static element_name = "VLegendElement";
16080
16202
  static element_tag = "legend";
16081
- constructor(args: DerivedConstructorOptions = {}) {
16203
+ constructor(args: DerivedVElementInitOptions = {}) {
16082
16204
  super();
16083
16205
  args.derived ??= VLegendElement;
16084
- this._init_velement(args as VBaseElementOptions);
16206
+ this._init_sys_velement(args as BaseVElementInitOptions);
16085
16207
  }
16086
16208
  }
16087
16209
  // @ts-ignore
16088
- export interface VLegendElement extends HTMLLegendElement, VBaseElement, VElementExtensions {};
16210
+ // export interface VLegendElement extends HTMLLegendElement, VElement, VElementExtensions {};
16089
16211
  postprocess(VLegendElement);
16090
16212
  export const VLegend = wrapper(VLegendElement);
16091
16213
  export const NullVLegend = create_null(VLegendElement);
@@ -16093,16 +16215,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VLegendEleme
16093
16215
 
16094
16216
  // Base class VLIElement derived from HTMLLIElement.
16095
16217
  // @ts-ignore
16096
- export class VLIElement extends (HTMLLIElement as unknown as _SafeVBaseElement) {
16218
+ export class VLIElement extends (HTMLLIElement as unknown as VElementBaseSignature2) {
16219
+ static element_name = "VLIElement";
16097
16220
  static element_tag = "li";
16098
- constructor(args: DerivedConstructorOptions = {}) {
16221
+ constructor(args: DerivedVElementInitOptions = {}) {
16099
16222
  super();
16100
16223
  args.derived ??= VLIElement;
16101
- this._init_velement(args as VBaseElementOptions);
16224
+ this._init_sys_velement(args as BaseVElementInitOptions);
16102
16225
  }
16103
16226
  }
16104
16227
  // @ts-ignore
16105
- export interface VLIElement extends HTMLLIElement, VBaseElement, VElementExtensions {};
16228
+ // export interface VLIElement extends HTMLLIElement, VElement, VElementExtensions {};
16106
16229
  postprocess(VLIElement);
16107
16230
  export const VLI = wrapper(VLIElement);
16108
16231
  export const NullVLI = create_null(VLIElement);
@@ -16110,16 +16233,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VLIElement:
16110
16233
 
16111
16234
  // Base class VLinkElement derived from HTMLLinkElement.
16112
16235
  // @ts-ignore
16113
- export class VLinkElement extends (HTMLLinkElement as unknown as _SafeVBaseElement) {
16236
+ export class VLinkElement extends (HTMLLinkElement as unknown as VElementBaseSignature2) {
16237
+ static element_name = "VLinkElement";
16114
16238
  static element_tag = "link";
16115
- constructor(args: DerivedConstructorOptions = {}) {
16239
+ constructor(args: DerivedVElementInitOptions = {}) {
16116
16240
  super();
16117
16241
  args.derived ??= VLinkElement;
16118
- this._init_velement(args as VBaseElementOptions);
16242
+ this._init_sys_velement(args as BaseVElementInitOptions);
16119
16243
  }
16120
16244
  }
16121
16245
  // @ts-ignore
16122
- export interface VLinkElement extends HTMLLinkElement, VBaseElement, VElementExtensions {};
16246
+ // export interface VLinkElement extends HTMLLinkElement, VElement, VElementExtensions {};
16123
16247
  postprocess(VLinkElement);
16124
16248
  export const VLink = wrapper(VLinkElement);
16125
16249
  export const NullVLink = create_null(VLinkElement);
@@ -16127,16 +16251,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VLinkElement
16127
16251
 
16128
16252
  // Base class VMapElement derived from HTMLMapElement.
16129
16253
  // @ts-ignore
16130
- export class VMapElement extends (HTMLMapElement as unknown as _SafeVBaseElement) {
16254
+ export class VMapElement extends (HTMLMapElement as unknown as VElementBaseSignature2) {
16255
+ static element_name = "VMapElement";
16131
16256
  static element_tag = "map";
16132
- constructor(args: DerivedConstructorOptions = {}) {
16257
+ constructor(args: DerivedVElementInitOptions = {}) {
16133
16258
  super();
16134
16259
  args.derived ??= VMapElement;
16135
- this._init_velement(args as VBaseElementOptions);
16260
+ this._init_sys_velement(args as BaseVElementInitOptions);
16136
16261
  }
16137
16262
  }
16138
16263
  // @ts-ignore
16139
- export interface VMapElement extends HTMLMapElement, VBaseElement, VElementExtensions {};
16264
+ // export interface VMapElement extends HTMLMapElement, VElement, VElementExtensions {};
16140
16265
  postprocess(VMapElement);
16141
16266
  export const VMap = wrapper(VMapElement);
16142
16267
  export const NullVMap = create_null(VMapElement);
@@ -16144,16 +16269,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VMapElement:
16144
16269
 
16145
16270
  // Base class VMetaElement derived from HTMLMetaElement.
16146
16271
  // @ts-ignore
16147
- export class VMetaElement extends (HTMLMetaElement as unknown as _SafeVBaseElement) {
16272
+ export class VMetaElement extends (HTMLMetaElement as unknown as VElementBaseSignature2) {
16273
+ static element_name = "VMetaElement";
16148
16274
  static element_tag = "meta";
16149
- constructor(args: DerivedConstructorOptions = {}) {
16275
+ constructor(args: DerivedVElementInitOptions = {}) {
16150
16276
  super();
16151
16277
  args.derived ??= VMetaElement;
16152
- this._init_velement(args as VBaseElementOptions);
16278
+ this._init_sys_velement(args as BaseVElementInitOptions);
16153
16279
  }
16154
16280
  }
16155
16281
  // @ts-ignore
16156
- export interface VMetaElement extends HTMLMetaElement, VBaseElement, VElementExtensions {};
16282
+ // export interface VMetaElement extends HTMLMetaElement, VElement, VElementExtensions {};
16157
16283
  postprocess(VMetaElement);
16158
16284
  export const VMeta = wrapper(VMetaElement);
16159
16285
  export const NullVMeta = create_null(VMetaElement);
@@ -16161,16 +16287,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VMetaElement
16161
16287
 
16162
16288
  // Base class VMeterElement derived from HTMLMeterElement.
16163
16289
  // @ts-ignore
16164
- export class VMeterElement extends (HTMLMeterElement as unknown as _SafeVBaseElement) {
16290
+ export class VMeterElement extends (HTMLMeterElement as unknown as VElementBaseSignature2) {
16291
+ static element_name = "VMeterElement";
16165
16292
  static element_tag = "meter";
16166
- constructor(args: DerivedConstructorOptions = {}) {
16293
+ constructor(args: DerivedVElementInitOptions = {}) {
16167
16294
  super();
16168
16295
  args.derived ??= VMeterElement;
16169
- this._init_velement(args as VBaseElementOptions);
16296
+ this._init_sys_velement(args as BaseVElementInitOptions);
16170
16297
  }
16171
16298
  }
16172
16299
  // @ts-ignore
16173
- export interface VMeterElement extends HTMLMeterElement, VBaseElement, VElementExtensions {};
16300
+ // export interface VMeterElement extends HTMLMeterElement, VElement, VElementExtensions {};
16174
16301
  postprocess(VMeterElement);
16175
16302
  export const VMeter = wrapper(VMeterElement);
16176
16303
  export const NullVMeter = create_null(VMeterElement);
@@ -16178,16 +16305,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VMeterElemen
16178
16305
 
16179
16306
  // Base class VObjectElement derived from HTMLObjectElement.
16180
16307
  // @ts-ignore
16181
- export class VObjectElement extends (HTMLObjectElement as unknown as _SafeVBaseElement) {
16308
+ export class VObjectElement extends (HTMLObjectElement as unknown as VElementBaseSignature2) {
16309
+ static element_name = "VObjectElement";
16182
16310
  static element_tag = "object";
16183
- constructor(args: DerivedConstructorOptions = {}) {
16311
+ constructor(args: DerivedVElementInitOptions = {}) {
16184
16312
  super();
16185
16313
  args.derived ??= VObjectElement;
16186
- this._init_velement(args as VBaseElementOptions);
16314
+ this._init_sys_velement(args as BaseVElementInitOptions);
16187
16315
  }
16188
16316
  }
16189
16317
  // @ts-ignore
16190
- export interface VObjectElement extends HTMLObjectElement, VBaseElement, VElementExtensions {};
16318
+ // export interface VObjectElement extends HTMLObjectElement, VElement, VElementExtensions {};
16191
16319
  postprocess(VObjectElement);
16192
16320
  export const VObject = wrapper(VObjectElement);
16193
16321
  export const NullVObject = create_null(VObjectElement);
@@ -16195,16 +16323,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VObjectEleme
16195
16323
 
16196
16324
  // Base class VOListElement derived from HTMLOListElement.
16197
16325
  // @ts-ignore
16198
- export class VOListElement extends (HTMLOListElement as unknown as _SafeVBaseElement) {
16326
+ export class VOListElement extends (HTMLOListElement as unknown as VElementBaseSignature2) {
16327
+ static element_name = "VOListElement";
16199
16328
  static element_tag = "ol";
16200
- constructor(args: DerivedConstructorOptions = {}) {
16329
+ constructor(args: DerivedVElementInitOptions = {}) {
16201
16330
  super();
16202
16331
  args.derived ??= VOListElement;
16203
- this._init_velement(args as VBaseElementOptions);
16332
+ this._init_sys_velement(args as BaseVElementInitOptions);
16204
16333
  }
16205
16334
  }
16206
16335
  // @ts-ignore
16207
- export interface VOListElement extends HTMLOListElement, VBaseElement, VElementExtensions {};
16336
+ // export interface VOListElement extends HTMLOListElement, VElement, VElementExtensions {};
16208
16337
  postprocess(VOListElement);
16209
16338
  export const VOList = wrapper(VOListElement);
16210
16339
  export const NullVOList = create_null(VOListElement);
@@ -16212,16 +16341,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VOListElemen
16212
16341
 
16213
16342
  // Base class VOptGroupElement derived from HTMLOptGroupElement.
16214
16343
  // @ts-ignore
16215
- export class VOptGroupElement extends (HTMLOptGroupElement as unknown as _SafeVBaseElement) {
16344
+ export class VOptGroupElement extends (HTMLOptGroupElement as unknown as VElementBaseSignature2) {
16345
+ static element_name = "VOptGroupElement";
16216
16346
  static element_tag = "optgroup";
16217
- constructor(args: DerivedConstructorOptions = {}) {
16347
+ constructor(args: DerivedVElementInitOptions = {}) {
16218
16348
  super();
16219
16349
  args.derived ??= VOptGroupElement;
16220
- this._init_velement(args as VBaseElementOptions);
16350
+ this._init_sys_velement(args as BaseVElementInitOptions);
16221
16351
  }
16222
16352
  }
16223
16353
  // @ts-ignore
16224
- export interface VOptGroupElement extends HTMLOptGroupElement, VBaseElement, VElementExtensions {};
16354
+ // export interface VOptGroupElement extends HTMLOptGroupElement, VElement, VElementExtensions {};
16225
16355
  postprocess(VOptGroupElement);
16226
16356
  export const VOptGroup = wrapper(VOptGroupElement);
16227
16357
  export const NullVOptGroup = create_null(VOptGroupElement);
@@ -16229,16 +16359,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VOptGroupEle
16229
16359
 
16230
16360
  // Base class VOptionElement derived from HTMLOptionElement.
16231
16361
  // @ts-ignore
16232
- export class VOptionElement extends (HTMLOptionElement as unknown as _SafeVBaseElement) {
16362
+ export class VOptionElement extends (HTMLOptionElement as unknown as VElementBaseSignature2) {
16363
+ static element_name = "VOptionElement";
16233
16364
  static element_tag = "option";
16234
- constructor(args: DerivedConstructorOptions = {}) {
16365
+ constructor(args: DerivedVElementInitOptions = {}) {
16235
16366
  super();
16236
16367
  args.derived ??= VOptionElement;
16237
- this._init_velement(args as VBaseElementOptions);
16368
+ this._init_sys_velement(args as BaseVElementInitOptions);
16238
16369
  }
16239
16370
  }
16240
16371
  // @ts-ignore
16241
- export interface VOptionElement extends HTMLOptionElement, VBaseElement, VElementExtensions {};
16372
+ // export interface VOptionElement extends HTMLOptionElement, VElement, VElementExtensions {};
16242
16373
  postprocess(VOptionElement);
16243
16374
  export const VOption = wrapper(VOptionElement);
16244
16375
  export const NullVOption = create_null(VOptionElement);
@@ -16246,16 +16377,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VOptionEleme
16246
16377
 
16247
16378
  // Base class VOutputElement derived from HTMLOutputElement.
16248
16379
  // @ts-ignore
16249
- export class VOutputElement extends (HTMLOutputElement as unknown as _SafeVBaseElement) {
16380
+ export class VOutputElement extends (HTMLOutputElement as unknown as VElementBaseSignature2) {
16381
+ static element_name = "VOutputElement";
16250
16382
  static element_tag = "output";
16251
- constructor(args: DerivedConstructorOptions = {}) {
16383
+ constructor(args: DerivedVElementInitOptions = {}) {
16252
16384
  super();
16253
16385
  args.derived ??= VOutputElement;
16254
- this._init_velement(args as VBaseElementOptions);
16386
+ this._init_sys_velement(args as BaseVElementInitOptions);
16255
16387
  }
16256
16388
  }
16257
16389
  // @ts-ignore
16258
- export interface VOutputElement extends HTMLOutputElement, VBaseElement, VElementExtensions {};
16390
+ // export interface VOutputElement extends HTMLOutputElement, VElement, VElementExtensions {};
16259
16391
  postprocess(VOutputElement);
16260
16392
  export const VOutput = wrapper(VOutputElement);
16261
16393
  export const NullVOutput = create_null(VOutputElement);
@@ -16263,16 +16395,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VOutputEleme
16263
16395
 
16264
16396
  // Base class VParagraphElement derived from HTMLParagraphElement.
16265
16397
  // @ts-ignore
16266
- export class VParagraphElement extends (HTMLParagraphElement as unknown as _SafeVBaseElement) {
16398
+ export class VParagraphElement extends (HTMLParagraphElement as unknown as VElementBaseSignature2) {
16399
+ static element_name = "VParagraphElement";
16267
16400
  static element_tag = "p";
16268
- constructor(args: DerivedConstructorOptions = {}) {
16401
+ constructor(args: DerivedVElementInitOptions = {}) {
16269
16402
  super();
16270
16403
  args.derived ??= VParagraphElement;
16271
- this._init_velement(args as VBaseElementOptions);
16404
+ this._init_sys_velement(args as BaseVElementInitOptions);
16272
16405
  }
16273
16406
  }
16274
16407
  // @ts-ignore
16275
- export interface VParagraphElement extends HTMLParagraphElement, VBaseElement, VElementExtensions {};
16408
+ // export interface VParagraphElement extends HTMLParagraphElement, VElement, VElementExtensions {};
16276
16409
  postprocess(VParagraphElement);
16277
16410
  export const VParagraph = wrapper(VParagraphElement);
16278
16411
  export const NullVParagraph = create_null(VParagraphElement);
@@ -16280,16 +16413,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VParagraphEl
16280
16413
 
16281
16414
  // Base class VParamElement derived from HTMLParamElement.
16282
16415
  // @ts-ignore
16283
- export class VParamElement extends (HTMLParamElement as unknown as _SafeVBaseElement) {
16416
+ export class VParamElement extends (HTMLParamElement as unknown as VElementBaseSignature2) {
16417
+ static element_name = "VParamElement";
16284
16418
  static element_tag = "param";
16285
- constructor(args: DerivedConstructorOptions = {}) {
16419
+ constructor(args: DerivedVElementInitOptions = {}) {
16286
16420
  super();
16287
16421
  args.derived ??= VParamElement;
16288
- this._init_velement(args as VBaseElementOptions);
16422
+ this._init_sys_velement(args as BaseVElementInitOptions);
16289
16423
  }
16290
16424
  }
16291
16425
  // @ts-ignore
16292
- export interface VParamElement extends HTMLParamElement, VBaseElement, VElementExtensions {};
16426
+ // export interface VParamElement extends HTMLParamElement, VElement, VElementExtensions {};
16293
16427
  postprocess(VParamElement);
16294
16428
  export const VParam = wrapper(VParamElement);
16295
16429
  export const NullVParam = create_null(VParamElement);
@@ -16297,16 +16431,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VParamElemen
16297
16431
 
16298
16432
  // Base class VPictureElement derived from HTMLPictureElement.
16299
16433
  // @ts-ignore
16300
- export class VPictureElement extends (HTMLPictureElement as unknown as _SafeVBaseElement) {
16434
+ export class VPictureElement extends (HTMLPictureElement as unknown as VElementBaseSignature2) {
16435
+ static element_name = "VPictureElement";
16301
16436
  static element_tag = "picture";
16302
- constructor(args: DerivedConstructorOptions = {}) {
16437
+ constructor(args: DerivedVElementInitOptions = {}) {
16303
16438
  super();
16304
16439
  args.derived ??= VPictureElement;
16305
- this._init_velement(args as VBaseElementOptions);
16440
+ this._init_sys_velement(args as BaseVElementInitOptions);
16306
16441
  }
16307
16442
  }
16308
16443
  // @ts-ignore
16309
- export interface VPictureElement extends HTMLPictureElement, VBaseElement, VElementExtensions {};
16444
+ // export interface VPictureElement extends HTMLPictureElement, VElement, VElementExtensions {};
16310
16445
  postprocess(VPictureElement);
16311
16446
  export const VPicture = wrapper(VPictureElement);
16312
16447
  export const NullVPicture = create_null(VPictureElement);
@@ -16314,16 +16449,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VPictureElem
16314
16449
 
16315
16450
  // Base class VPreElement derived from HTMLPreElement.
16316
16451
  // @ts-ignore
16317
- export class VPreElement extends (HTMLPreElement as unknown as _SafeVBaseElement) {
16452
+ export class VPreElement extends (HTMLPreElement as unknown as VElementBaseSignature2) {
16453
+ static element_name = "VPreElement";
16318
16454
  static element_tag = "pre";
16319
- constructor(args: DerivedConstructorOptions = {}) {
16455
+ constructor(args: DerivedVElementInitOptions = {}) {
16320
16456
  super();
16321
16457
  args.derived ??= VPreElement;
16322
- this._init_velement(args as VBaseElementOptions);
16458
+ this._init_sys_velement(args as BaseVElementInitOptions);
16323
16459
  }
16324
16460
  }
16325
16461
  // @ts-ignore
16326
- export interface VPreElement extends HTMLPreElement, VBaseElement, VElementExtensions {};
16462
+ // export interface VPreElement extends HTMLPreElement, VElement, VElementExtensions {};
16327
16463
  postprocess(VPreElement);
16328
16464
  export const VPre = wrapper(VPreElement);
16329
16465
  export const NullVPre = create_null(VPreElement);
@@ -16331,16 +16467,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VPreElement:
16331
16467
 
16332
16468
  // Base class VProgressElement derived from HTMLProgressElement.
16333
16469
  // @ts-ignore
16334
- export class VProgressElement extends (HTMLProgressElement as unknown as _SafeVBaseElement) {
16470
+ export class VProgressElement extends (HTMLProgressElement as unknown as VElementBaseSignature2) {
16471
+ static element_name = "VProgressElement";
16335
16472
  static element_tag = "progress";
16336
- constructor(args: DerivedConstructorOptions = {}) {
16473
+ constructor(args: DerivedVElementInitOptions = {}) {
16337
16474
  super();
16338
16475
  args.derived ??= VProgressElement;
16339
- this._init_velement(args as VBaseElementOptions);
16476
+ this._init_sys_velement(args as BaseVElementInitOptions);
16340
16477
  }
16341
16478
  }
16342
16479
  // @ts-ignore
16343
- export interface VProgressElement extends HTMLProgressElement, VBaseElement, VElementExtensions {};
16480
+ // export interface VProgressElement extends HTMLProgressElement, VElement, VElementExtensions {};
16344
16481
  postprocess(VProgressElement);
16345
16482
  export const VProgress = wrapper(VProgressElement);
16346
16483
  export const NullVProgress = create_null(VProgressElement);
@@ -16348,16 +16485,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VProgressEle
16348
16485
 
16349
16486
  // Base class VScriptElement derived from HTMLScriptElement.
16350
16487
  // @ts-ignore
16351
- export class VScriptElement extends (HTMLScriptElement as unknown as _SafeVBaseElement) {
16488
+ export class VScriptElement extends (HTMLScriptElement as unknown as VElementBaseSignature2) {
16489
+ static element_name = "VScriptElement";
16352
16490
  static element_tag = "script";
16353
- constructor(args: DerivedConstructorOptions = {}) {
16491
+ constructor(args: DerivedVElementInitOptions = {}) {
16354
16492
  super();
16355
16493
  args.derived ??= VScriptElement;
16356
- this._init_velement(args as VBaseElementOptions);
16494
+ this._init_sys_velement(args as BaseVElementInitOptions);
16357
16495
  }
16358
16496
  }
16359
16497
  // @ts-ignore
16360
- export interface VScriptElement extends HTMLScriptElement, VBaseElement, VElementExtensions {};
16498
+ // export interface VScriptElement extends HTMLScriptElement, VElement, VElementExtensions {};
16361
16499
  postprocess(VScriptElement);
16362
16500
  export const VScript = wrapper(VScriptElement);
16363
16501
  export const NullVScript = create_null(VScriptElement);
@@ -16365,16 +16503,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VScriptEleme
16365
16503
 
16366
16504
  // Base class VSelectElement derived from HTMLSelectElement.
16367
16505
  // @ts-ignore
16368
- export class VSelectElement extends (HTMLSelectElement as unknown as _SafeVBaseElement) {
16506
+ export class VSelectElement extends (HTMLSelectElement as unknown as VElementBaseSignature2) {
16507
+ static element_name = "VSelectElement";
16369
16508
  static element_tag = "select";
16370
- constructor(args: DerivedConstructorOptions = {}) {
16509
+ constructor(args: DerivedVElementInitOptions = {}) {
16371
16510
  super();
16372
16511
  args.derived ??= VSelectElement;
16373
- this._init_velement(args as VBaseElementOptions);
16512
+ this._init_sys_velement(args as BaseVElementInitOptions);
16374
16513
  }
16375
16514
  }
16376
16515
  // @ts-ignore
16377
- export interface VSelectElement extends HTMLSelectElement, VBaseElement, VElementExtensions {};
16516
+ // export interface VSelectElement extends HTMLSelectElement, VElement, VElementExtensions {};
16378
16517
  postprocess(VSelectElement);
16379
16518
  export const VSelect = wrapper(VSelectElement);
16380
16519
  export const NullVSelect = create_null(VSelectElement);
@@ -16382,16 +16521,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VSelectEleme
16382
16521
 
16383
16522
  // Base class VSlotElement derived from HTMLSlotElement.
16384
16523
  // @ts-ignore
16385
- export class VSlotElement extends (HTMLSlotElement as unknown as _SafeVBaseElement) {
16524
+ export class VSlotElement extends (HTMLSlotElement as unknown as VElementBaseSignature2) {
16525
+ static element_name = "VSlotElement";
16386
16526
  static element_tag = "slot";
16387
- constructor(args: DerivedConstructorOptions = {}) {
16527
+ constructor(args: DerivedVElementInitOptions = {}) {
16388
16528
  super();
16389
16529
  args.derived ??= VSlotElement;
16390
- this._init_velement(args as VBaseElementOptions);
16530
+ this._init_sys_velement(args as BaseVElementInitOptions);
16391
16531
  }
16392
16532
  }
16393
16533
  // @ts-ignore
16394
- export interface VSlotElement extends HTMLSlotElement, VBaseElement, VElementExtensions {};
16534
+ // export interface VSlotElement extends HTMLSlotElement, VElement, VElementExtensions {};
16395
16535
  postprocess(VSlotElement);
16396
16536
  export const VSlot = wrapper(VSlotElement);
16397
16537
  export const NullVSlot = create_null(VSlotElement);
@@ -16399,16 +16539,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VSlotElement
16399
16539
 
16400
16540
  // Base class VSourceElement derived from HTMLSourceElement.
16401
16541
  // @ts-ignore
16402
- export class VSourceElement extends (HTMLSourceElement as unknown as _SafeVBaseElement) {
16542
+ export class VSourceElement extends (HTMLSourceElement as unknown as VElementBaseSignature2) {
16543
+ static element_name = "VSourceElement";
16403
16544
  static element_tag = "source";
16404
- constructor(args: DerivedConstructorOptions = {}) {
16545
+ constructor(args: DerivedVElementInitOptions = {}) {
16405
16546
  super();
16406
16547
  args.derived ??= VSourceElement;
16407
- this._init_velement(args as VBaseElementOptions);
16548
+ this._init_sys_velement(args as BaseVElementInitOptions);
16408
16549
  }
16409
16550
  }
16410
16551
  // @ts-ignore
16411
- export interface VSourceElement extends HTMLSourceElement, VBaseElement, VElementExtensions {};
16552
+ // export interface VSourceElement extends HTMLSourceElement, VElement, VElementExtensions {};
16412
16553
  postprocess(VSourceElement);
16413
16554
  export const VSource = wrapper(VSourceElement);
16414
16555
  export const NullVSource = create_null(VSourceElement);
@@ -16416,16 +16557,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VSourceEleme
16416
16557
 
16417
16558
  // Base class VSpanElement derived from HTMLSpanElement.
16418
16559
  // @ts-ignore
16419
- export class VSpanElement extends (HTMLSpanElement as unknown as _SafeVBaseElement) {
16560
+ export class VSpanElement extends (HTMLSpanElement as unknown as VElementBaseSignature2) {
16561
+ static element_name = "VSpanElement";
16420
16562
  static element_tag = "span";
16421
- constructor(args: DerivedConstructorOptions = {}) {
16563
+ constructor(args: DerivedVElementInitOptions = {}) {
16422
16564
  super();
16423
16565
  args.derived ??= VSpanElement;
16424
- this._init_velement(args as VBaseElementOptions);
16566
+ this._init_sys_velement(args as BaseVElementInitOptions);
16425
16567
  }
16426
16568
  }
16427
16569
  // @ts-ignore
16428
- export interface VSpanElement extends HTMLSpanElement, VBaseElement, VElementExtensions {};
16570
+ // export interface VSpanElement extends HTMLSpanElement, VElement, VElementExtensions {};
16429
16571
  postprocess(VSpanElement);
16430
16572
  export const VSpan = wrapper(VSpanElement);
16431
16573
  export const NullVSpan = create_null(VSpanElement);
@@ -16433,16 +16575,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VSpanElement
16433
16575
 
16434
16576
  // Base class VTableElement derived from HTMLTableElement.
16435
16577
  // @ts-ignore
16436
- export class VTableElement extends (HTMLTableElement as unknown as _SafeVBaseElement) {
16578
+ export class VTableElement extends (HTMLTableElement as unknown as VElementBaseSignature2) {
16579
+ static element_name = "VTableElement";
16437
16580
  static element_tag = "table";
16438
- constructor(args: DerivedConstructorOptions = {}) {
16581
+ constructor(args: DerivedVElementInitOptions = {}) {
16439
16582
  super();
16440
16583
  args.derived ??= VTableElement;
16441
- this._init_velement(args as VBaseElementOptions);
16584
+ this._init_sys_velement(args as BaseVElementInitOptions);
16442
16585
  }
16443
16586
  }
16444
16587
  // @ts-ignore
16445
- export interface VTableElement extends HTMLTableElement, VBaseElement, VElementExtensions {};
16588
+ // export interface VTableElement extends HTMLTableElement, VElement, VElementExtensions {};
16446
16589
  postprocess(VTableElement);
16447
16590
  export const VTable = wrapper(VTableElement);
16448
16591
  export const NullVTable = create_null(VTableElement);
@@ -16450,16 +16593,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VTableElemen
16450
16593
 
16451
16594
  // Base class VTHeadElement derived from HTMLTableSectionElement.
16452
16595
  // @ts-ignore
16453
- export class VTHeadElement extends (HTMLTableSectionElement as unknown as _SafeVBaseElement) {
16596
+ export class VTHeadElement extends (HTMLTableSectionElement as unknown as VElementBaseSignature2) {
16597
+ static element_name = "VTHeadElement";
16454
16598
  static element_tag = "thead";
16455
- constructor(args: DerivedConstructorOptions = {}) {
16599
+ constructor(args: DerivedVElementInitOptions = {}) {
16456
16600
  super();
16457
16601
  args.derived ??= VTHeadElement;
16458
- this._init_velement(args as VBaseElementOptions);
16602
+ this._init_sys_velement(args as BaseVElementInitOptions);
16459
16603
  }
16460
16604
  }
16461
16605
  // @ts-ignore
16462
- export interface VTHeadElement extends HTMLTableSectionElement, VBaseElement, VElementExtensions {};
16606
+ // export interface VTHeadElement extends HTMLTableSectionElement, VElement, VElementExtensions {};
16463
16607
  postprocess(VTHeadElement);
16464
16608
  export const VTHead = wrapper(VTHeadElement);
16465
16609
  export const NullVTHead = create_null(VTHeadElement);
@@ -16467,16 +16611,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VTHeadElemen
16467
16611
 
16468
16612
  // Base class VTBodyElement derived from HTMLTableSectionElement.
16469
16613
  // @ts-ignore
16470
- export class VTBodyElement extends (HTMLTableSectionElement as unknown as _SafeVBaseElement) {
16614
+ export class VTBodyElement extends (HTMLTableSectionElement as unknown as VElementBaseSignature2) {
16615
+ static element_name = "VTBodyElement";
16471
16616
  static element_tag = "tbody";
16472
- constructor(args: DerivedConstructorOptions = {}) {
16617
+ constructor(args: DerivedVElementInitOptions = {}) {
16473
16618
  super();
16474
16619
  args.derived ??= VTBodyElement;
16475
- this._init_velement(args as VBaseElementOptions);
16620
+ this._init_sys_velement(args as BaseVElementInitOptions);
16476
16621
  }
16477
16622
  }
16478
16623
  // @ts-ignore
16479
- export interface VTBodyElement extends HTMLTableSectionElement, VBaseElement, VElementExtensions {};
16624
+ // export interface VTBodyElement extends HTMLTableSectionElement, VElement, VElementExtensions {};
16480
16625
  postprocess(VTBodyElement);
16481
16626
  export const VTBody = wrapper(VTBodyElement);
16482
16627
  export const NullVTBody = create_null(VTBodyElement);
@@ -16484,16 +16629,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VTBodyElemen
16484
16629
 
16485
16630
  // Base class VTFootElement derived from HTMLTableSectionElement.
16486
16631
  // @ts-ignore
16487
- export class VTFootElement extends (HTMLTableSectionElement as unknown as _SafeVBaseElement) {
16632
+ export class VTFootElement extends (HTMLTableSectionElement as unknown as VElementBaseSignature2) {
16633
+ static element_name = "VTFootElement";
16488
16634
  static element_tag = "tfoot";
16489
- constructor(args: DerivedConstructorOptions = {}) {
16635
+ constructor(args: DerivedVElementInitOptions = {}) {
16490
16636
  super();
16491
16637
  args.derived ??= VTFootElement;
16492
- this._init_velement(args as VBaseElementOptions);
16638
+ this._init_sys_velement(args as BaseVElementInitOptions);
16493
16639
  }
16494
16640
  }
16495
16641
  // @ts-ignore
16496
- export interface VTFootElement extends HTMLTableSectionElement, VBaseElement, VElementExtensions {};
16642
+ // export interface VTFootElement extends HTMLTableSectionElement, VElement, VElementExtensions {};
16497
16643
  postprocess(VTFootElement);
16498
16644
  export const VTFoot = wrapper(VTFootElement);
16499
16645
  export const NullVTFoot = create_null(VTFootElement);
@@ -16501,16 +16647,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VTFootElemen
16501
16647
 
16502
16648
  // Base class VTHElement derived from HTMLTableCellElement.
16503
16649
  // @ts-ignore
16504
- export class VTHElement extends (HTMLTableCellElement as unknown as _SafeVBaseElement) {
16650
+ export class VTHElement extends (HTMLTableCellElement as unknown as VElementBaseSignature2) {
16651
+ static element_name = "VTHElement";
16505
16652
  static element_tag = "th";
16506
- constructor(args: DerivedConstructorOptions = {}) {
16653
+ constructor(args: DerivedVElementInitOptions = {}) {
16507
16654
  super();
16508
16655
  args.derived ??= VTHElement;
16509
- this._init_velement(args as VBaseElementOptions);
16656
+ this._init_sys_velement(args as BaseVElementInitOptions);
16510
16657
  }
16511
16658
  }
16512
16659
  // @ts-ignore
16513
- export interface VTHElement extends HTMLTableCellElement, VBaseElement, VElementExtensions {};
16660
+ // export interface VTHElement extends HTMLTableCellElement, VElement, VElementExtensions {};
16514
16661
  postprocess(VTHElement);
16515
16662
  export const VTH = wrapper(VTHElement);
16516
16663
  export const NullVTH = create_null(VTHElement);
@@ -16518,16 +16665,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VTHElement:
16518
16665
 
16519
16666
  // Base class VTDElement derived from HTMLTableCellElement.
16520
16667
  // @ts-ignore
16521
- export class VTDElement extends (HTMLTableCellElement as unknown as _SafeVBaseElement) {
16668
+ export class VTDElement extends (HTMLTableCellElement as unknown as VElementBaseSignature2) {
16669
+ static element_name = "VTDElement";
16522
16670
  static element_tag = "td";
16523
- constructor(args: DerivedConstructorOptions = {}) {
16671
+ constructor(args: DerivedVElementInitOptions = {}) {
16524
16672
  super();
16525
16673
  args.derived ??= VTDElement;
16526
- this._init_velement(args as VBaseElementOptions);
16674
+ this._init_sys_velement(args as BaseVElementInitOptions);
16527
16675
  }
16528
16676
  }
16529
16677
  // @ts-ignore
16530
- export interface VTDElement extends HTMLTableCellElement, VBaseElement, VElementExtensions {};
16678
+ // export interface VTDElement extends HTMLTableCellElement, VElement, VElementExtensions {};
16531
16679
  postprocess(VTDElement);
16532
16680
  export const VTD = wrapper(VTDElement);
16533
16681
  export const NullVTD = create_null(VTDElement);
@@ -16535,16 +16683,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VTDElement:
16535
16683
 
16536
16684
  // Base class VTemplateElement derived from HTMLTemplateElement.
16537
16685
  // @ts-ignore
16538
- export class VTemplateElement extends (HTMLTemplateElement as unknown as _SafeVBaseElement) {
16686
+ export class VTemplateElement extends (HTMLTemplateElement as unknown as VElementBaseSignature2) {
16687
+ static element_name = "VTemplateElement";
16539
16688
  static element_tag = "template";
16540
- constructor(args: DerivedConstructorOptions = {}) {
16689
+ constructor(args: DerivedVElementInitOptions = {}) {
16541
16690
  super();
16542
16691
  args.derived ??= VTemplateElement;
16543
- this._init_velement(args as VBaseElementOptions);
16692
+ this._init_sys_velement(args as BaseVElementInitOptions);
16544
16693
  }
16545
16694
  }
16546
16695
  // @ts-ignore
16547
- export interface VTemplateElement extends HTMLTemplateElement, VBaseElement, VElementExtensions {};
16696
+ // export interface VTemplateElement extends HTMLTemplateElement, VElement, VElementExtensions {};
16548
16697
  postprocess(VTemplateElement);
16549
16698
  export const VTemplate = wrapper(VTemplateElement);
16550
16699
  export const NullVTemplate = create_null(VTemplateElement);
@@ -16552,16 +16701,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VTemplateEle
16552
16701
 
16553
16702
  // Base class VTextAreaElement derived from HTMLTextAreaElement.
16554
16703
  // @ts-ignore
16555
- export class VTextAreaElement extends (HTMLTextAreaElement as unknown as _SafeVBaseElement) {
16704
+ export class VTextAreaElement extends (HTMLTextAreaElement as unknown as VElementBaseSignature2) {
16705
+ static element_name = "VTextAreaElement";
16556
16706
  static element_tag = "textarea";
16557
- constructor(args: DerivedConstructorOptions = {}) {
16707
+ constructor(args: DerivedVElementInitOptions = {}) {
16558
16708
  super();
16559
16709
  args.derived ??= VTextAreaElement;
16560
- this._init_velement(args as VBaseElementOptions);
16710
+ this._init_sys_velement(args as BaseVElementInitOptions);
16561
16711
  }
16562
16712
  }
16563
16713
  // @ts-ignore
16564
- export interface VTextAreaElement extends HTMLTextAreaElement, VBaseElement, VElementExtensions {};
16714
+ // export interface VTextAreaElement extends HTMLTextAreaElement, VElement, VElementExtensions {};
16565
16715
  postprocess(VTextAreaElement);
16566
16716
  export const VTextArea = wrapper(VTextAreaElement);
16567
16717
  export const NullVTextArea = create_null(VTextAreaElement);
@@ -16569,16 +16719,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VTextAreaEle
16569
16719
 
16570
16720
  // Base class VTimeElement derived from HTMLTimeElement.
16571
16721
  // @ts-ignore
16572
- export class VTimeElement extends (HTMLTimeElement as unknown as _SafeVBaseElement) {
16722
+ export class VTimeElement extends (HTMLTimeElement as unknown as VElementBaseSignature2) {
16723
+ static element_name = "VTimeElement";
16573
16724
  static element_tag = "time";
16574
- constructor(args: DerivedConstructorOptions = {}) {
16725
+ constructor(args: DerivedVElementInitOptions = {}) {
16575
16726
  super();
16576
16727
  args.derived ??= VTimeElement;
16577
- this._init_velement(args as VBaseElementOptions);
16728
+ this._init_sys_velement(args as BaseVElementInitOptions);
16578
16729
  }
16579
16730
  }
16580
16731
  // @ts-ignore
16581
- export interface VTimeElement extends HTMLTimeElement, VBaseElement, VElementExtensions {};
16732
+ // export interface VTimeElement extends HTMLTimeElement, VElement, VElementExtensions {};
16582
16733
  postprocess(VTimeElement);
16583
16734
  export const VTime = wrapper(VTimeElement);
16584
16735
  export const NullVTime = create_null(VTimeElement);
@@ -16586,16 +16737,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VTimeElement
16586
16737
 
16587
16738
  // Base class VTitleElement derived from HTMLTitleElement.
16588
16739
  // @ts-ignore
16589
- export class VTitleElement extends (HTMLTitleElement as unknown as _SafeVBaseElement) {
16740
+ export class VTitleElement extends (HTMLTitleElement as unknown as VElementBaseSignature2) {
16741
+ static element_name = "VTitleElement";
16590
16742
  static element_tag = "title";
16591
- constructor(args: DerivedConstructorOptions = {}) {
16743
+ constructor(args: DerivedVElementInitOptions = {}) {
16592
16744
  super();
16593
16745
  args.derived ??= VTitleElement;
16594
- this._init_velement(args as VBaseElementOptions);
16746
+ this._init_sys_velement(args as BaseVElementInitOptions);
16595
16747
  }
16596
16748
  }
16597
16749
  // @ts-ignore
16598
- export interface VTitleElement extends HTMLTitleElement, VBaseElement, VElementExtensions {};
16750
+ // export interface VTitleElement extends HTMLTitleElement, VElement, VElementExtensions {};
16599
16751
  postprocess(VTitleElement);
16600
16752
  export const VTitle = wrapper(VTitleElement);
16601
16753
  export const NullVTitle = create_null(VTitleElement);
@@ -16603,16 +16755,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VTitleElemen
16603
16755
 
16604
16756
  // Base class VTableRowElement derived from HTMLTableRowElement.
16605
16757
  // @ts-ignore
16606
- export class VTableRowElement extends (HTMLTableRowElement as unknown as _SafeVBaseElement) {
16758
+ export class VTableRowElement extends (HTMLTableRowElement as unknown as VElementBaseSignature2) {
16759
+ static element_name = "VTableRowElement";
16607
16760
  static element_tag = "tr";
16608
- constructor(args: DerivedConstructorOptions = {}) {
16761
+ constructor(args: DerivedVElementInitOptions = {}) {
16609
16762
  super();
16610
16763
  args.derived ??= VTableRowElement;
16611
- this._init_velement(args as VBaseElementOptions);
16764
+ this._init_sys_velement(args as BaseVElementInitOptions);
16612
16765
  }
16613
16766
  }
16614
16767
  // @ts-ignore
16615
- export interface VTableRowElement extends HTMLTableRowElement, VBaseElement, VElementExtensions {};
16768
+ // export interface VTableRowElement extends HTMLTableRowElement, VElement, VElementExtensions {};
16616
16769
  postprocess(VTableRowElement);
16617
16770
  export const VTableRow = wrapper(VTableRowElement);
16618
16771
  export const NullVTableRow = create_null(VTableRowElement);
@@ -16620,16 +16773,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VTableRowEle
16620
16773
 
16621
16774
  // Base class VTrackElement derived from HTMLTrackElement.
16622
16775
  // @ts-ignore
16623
- export class VTrackElement extends (HTMLTrackElement as unknown as _SafeVBaseElement) {
16776
+ export class VTrackElement extends (HTMLTrackElement as unknown as VElementBaseSignature2) {
16777
+ static element_name = "VTrackElement";
16624
16778
  static element_tag = "track";
16625
- constructor(args: DerivedConstructorOptions = {}) {
16779
+ constructor(args: DerivedVElementInitOptions = {}) {
16626
16780
  super();
16627
16781
  args.derived ??= VTrackElement;
16628
- this._init_velement(args as VBaseElementOptions);
16782
+ this._init_sys_velement(args as BaseVElementInitOptions);
16629
16783
  }
16630
16784
  }
16631
16785
  // @ts-ignore
16632
- export interface VTrackElement extends HTMLTrackElement, VBaseElement, VElementExtensions {};
16786
+ // export interface VTrackElement extends HTMLTrackElement, VElement, VElementExtensions {};
16633
16787
  postprocess(VTrackElement);
16634
16788
  export const VTrack = wrapper(VTrackElement);
16635
16789
  export const NullVTrack = create_null(VTrackElement);
@@ -16637,16 +16791,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VTrackElemen
16637
16791
 
16638
16792
  // Base class VUListElement derived from HTMLUListElement.
16639
16793
  // @ts-ignore
16640
- export class VUListElement extends (HTMLUListElement as unknown as _SafeVBaseElement) {
16794
+ export class VUListElement extends (HTMLUListElement as unknown as VElementBaseSignature2) {
16795
+ static element_name = "VUListElement";
16641
16796
  static element_tag = "ul";
16642
- constructor(args: DerivedConstructorOptions = {}) {
16797
+ constructor(args: DerivedVElementInitOptions = {}) {
16643
16798
  super();
16644
16799
  args.derived ??= VUListElement;
16645
- this._init_velement(args as VBaseElementOptions);
16800
+ this._init_sys_velement(args as BaseVElementInitOptions);
16646
16801
  }
16647
16802
  }
16648
16803
  // @ts-ignore
16649
- export interface VUListElement extends HTMLUListElement, VBaseElement, VElementExtensions {};
16804
+ // export interface VUListElement extends HTMLUListElement, VElement, VElementExtensions {};
16650
16805
  postprocess(VUListElement);
16651
16806
  export const VUList = wrapper(VUListElement);
16652
16807
  export const NullVUList = create_null(VUListElement);
@@ -16654,16 +16809,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VUListElemen
16654
16809
 
16655
16810
  // Base class VIFrameElement derived from HTMLIFrameElement.
16656
16811
  // @ts-ignore
16657
- export class VIFrameElement extends (HTMLIFrameElement as unknown as _SafeVBaseElement) {
16812
+ export class VIFrameElement extends (HTMLIFrameElement as unknown as VElementBaseSignature2) {
16813
+ static element_name = "VIFrameElement";
16658
16814
  static element_tag = "iframe";
16659
- constructor(args: DerivedConstructorOptions = {}) {
16815
+ constructor(args: DerivedVElementInitOptions = {}) {
16660
16816
  super();
16661
16817
  args.derived ??= VIFrameElement;
16662
- this._init_velement(args as VBaseElementOptions);
16818
+ this._init_sys_velement(args as BaseVElementInitOptions);
16663
16819
  }
16664
16820
  }
16665
16821
  // @ts-ignore
16666
- export interface VIFrameElement extends HTMLIFrameElement, VBaseElement, VElementExtensions {};
16822
+ // export interface VIFrameElement extends HTMLIFrameElement, VElement, VElementExtensions {};
16667
16823
  postprocess(VIFrameElement);
16668
16824
  export const VIFrame = wrapper(VIFrameElement);
16669
16825
  export const NullVIFrame = create_null(VIFrameElement);
@@ -16671,16 +16827,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VIFrameEleme
16671
16827
 
16672
16828
  // Base class VCodeElement derived from HTMLElement.
16673
16829
  // @ts-ignore
16674
- export class VCodeElement extends (HTMLElement as unknown as _SafeVBaseElement) {
16830
+ export class VCodeElement extends (HTMLElement as unknown as VElementBaseSignature2) {
16831
+ static element_name = "VCodeElement";
16675
16832
  static element_tag = "code";
16676
- constructor(args: DerivedConstructorOptions = {}) {
16833
+ constructor(args: DerivedVElementInitOptions = {}) {
16677
16834
  super();
16678
16835
  args.derived ??= VCodeElement;
16679
- this._init_velement(args as VBaseElementOptions);
16836
+ this._init_sys_velement(args as BaseVElementInitOptions);
16680
16837
  }
16681
16838
  }
16682
16839
  // @ts-ignore
16683
- export interface VCodeElement extends HTMLElement, VBaseElement, VElementExtensions {};
16840
+ // export interface VCodeElement extends HTMLElement, VElement, VElementExtensions {};
16684
16841
  postprocess(VCodeElement);
16685
16842
  export const VCode = wrapper(VCodeElement);
16686
16843
  export const NullVCode = create_null(VCodeElement);
@@ -16688,16 +16845,17 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VCodeElement
16688
16845
 
16689
16846
  // Base class VSectionElement derived from HTMLElement.
16690
16847
  // @ts-ignore
16691
- export class VSectionElement extends (HTMLElement as unknown as _SafeVBaseElement) {
16848
+ export class VSectionElement extends (HTMLElement as unknown as VElementBaseSignature2) {
16849
+ static element_name = "VSectionElement";
16692
16850
  static element_tag = "section";
16693
- constructor(args: DerivedConstructorOptions = {}) {
16851
+ constructor(args: DerivedVElementInitOptions = {}) {
16694
16852
  super();
16695
16853
  args.derived ??= VSectionElement;
16696
- this._init_velement(args as VBaseElementOptions);
16854
+ this._init_sys_velement(args as BaseVElementInitOptions);
16697
16855
  }
16698
16856
  }
16699
16857
  // @ts-ignore
16700
- export interface VSectionElement extends HTMLElement, VBaseElement, VElementExtensions {};
16858
+ // export interface VSectionElement extends HTMLElement, VElement, VElementExtensions {};
16701
16859
  postprocess(VSectionElement);
16702
16860
  export const VSection = wrapper(VSectionElement);
16703
16861
  export const NullVSection = create_null(VSectionElement);
@@ -16705,7 +16863,7 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VSectionElem
16705
16863
 
16706
16864
  // Base class VDefaultElement derived from HTMLElement.
16707
16865
  // @ts-ignore
16708
- // export class VDefaultElement extends (HTMLElement as unknown as _SafeVBaseElement) {
16866
+ // export class VDefaultElement extends (HTMLElement as unknown as VElementBaseSignature2) {
16709
16867
  // static element_tag = "default";
16710
16868
  // constructor(args: DerivedConstructorOptions = {}) {
16711
16869
  // super();
@@ -16714,12 +16872,77 @@ declare module '../ui/any_element.d.ts' { interface AnyElementMap { VSectionElem
16714
16872
  // }
16715
16873
  // }
16716
16874
  // // @ts-ignore
16717
- // export interface VDefaultElement extends HTMLElement, VBaseElement, VElementExtensions {};
16875
+ // // export interface VDefaultElement extends HTMLElement, VElement, VElementExtensions {};
16718
16876
  // postprocess(VDefaultElement);
16719
16877
  // export const VDefault = wrapper(VDefaultElement);
16720
16878
  // export const NullVDefault = create_null(VDefaultElement);
16721
16879
  // declare module '../ui/any_element.d.ts' { interface AnyElementMap { VDefaultElement: VDefaultElement }}
16722
16880
 
16881
+ // All base elements.
16882
+ export type VBaseElements =
16883
+ VHTMLElement |
16884
+ VAnchorElement |
16885
+ VAreaElement |
16886
+ VAudioElement |
16887
+ VBlockQuoteElement |
16888
+ VBodyElement |
16889
+ VBRElement |
16890
+ VButtonElement |
16891
+ VCanvasElement |
16892
+ VTableCaptionElement |
16893
+ VTableColElement |
16894
+ VDataElement |
16895
+ VDataListElement |
16896
+ VDListElement |
16897
+ VDirectoryElement |
16898
+ VDivElement |
16899
+ VEmbedElement |
16900
+ VFieldSetElement |
16901
+ VFormElement |
16902
+ VHeadingElement |
16903
+ VHeadElement |
16904
+ VHRElement |
16905
+ VImageElement |
16906
+ VInputElement |
16907
+ VModElement |
16908
+ VLabelElement |
16909
+ VLegendElement |
16910
+ VLIElement |
16911
+ VLinkElement |
16912
+ VMapElement |
16913
+ VMetaElement |
16914
+ VMeterElement |
16915
+ VObjectElement |
16916
+ VOListElement |
16917
+ VOptGroupElement |
16918
+ VOptionElement |
16919
+ VOutputElement |
16920
+ VParagraphElement |
16921
+ VParamElement |
16922
+ VPictureElement |
16923
+ VPreElement |
16924
+ VProgressElement |
16925
+ VScriptElement |
16926
+ VSelectElement |
16927
+ VSlotElement |
16928
+ VSourceElement |
16929
+ VSpanElement |
16930
+ VTableElement |
16931
+ VTHeadElement |
16932
+ VTBodyElement |
16933
+ VTFootElement |
16934
+ VTHElement |
16935
+ VTDElement |
16936
+ VTemplateElement |
16937
+ VTextAreaElement |
16938
+ VTimeElement |
16939
+ VTitleElement |
16940
+ VTableRowElement |
16941
+ VTrackElement |
16942
+ VUListElement |
16943
+ VIFrameElement |
16944
+ VCodeElement |
16945
+ VSectionElement;
16723
16946
 
16724
16947
  // The VElement map per html tag.
16725
16948
  export const VElementTagMap = {
@@ -16786,5 +17009,4 @@ export const VElementTagMap = {
16786
17009
  iframe: VIFrameElement,
16787
17010
  code: VCodeElement,
16788
17011
  section: VSectionElement,
16789
- // default: VDefaultElement,
16790
17012
  } as const;