@vandenberghinc/volt 1.1.4 → 1.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (290) hide show
  1. package/backend/dist/cjs/database.d.ts +41 -68
  2. package/backend/dist/cjs/database.js +136 -78
  3. package/backend/dist/cjs/endpoint.d.ts +23 -9
  4. package/backend/dist/cjs/endpoint.js +98 -21
  5. package/backend/dist/cjs/file_watcher.js +2 -2
  6. package/backend/dist/cjs/frontend.d.ts +0 -2
  7. package/backend/dist/cjs/frontend.js +9 -9
  8. package/backend/dist/cjs/image_endpoint.d.ts +3 -1
  9. package/backend/dist/cjs/image_endpoint.js +2 -1
  10. package/backend/dist/cjs/payments/paddle.js +10 -2
  11. package/backend/dist/cjs/plugins/css.d.ts +6 -5
  12. package/backend/dist/cjs/plugins/css.js +32 -7
  13. package/backend/dist/cjs/plugins/ts/compiler.d.ts +6 -1
  14. package/backend/dist/cjs/plugins/ts/compiler.js +26 -2
  15. package/backend/dist/cjs/plugins/ts/preprocessing.js +5 -3
  16. package/backend/dist/cjs/server.d.ts +7 -13
  17. package/backend/dist/cjs/server.js +184 -303
  18. package/backend/dist/cjs/status.d.ts +1 -0
  19. package/backend/dist/cjs/status.js +2 -1
  20. package/backend/dist/cjs/stream.d.ts +5 -3
  21. package/backend/dist/cjs/stream.js +13 -4
  22. package/backend/dist/cjs/users.d.ts +1 -1
  23. package/backend/dist/cjs/users.js +87 -72
  24. package/backend/dist/cjs/utils.d.ts +17 -9
  25. package/backend/dist/cjs/utils.js +22 -64
  26. package/backend/dist/cjs/view.d.ts +2 -2
  27. package/backend/dist/cjs/view.js +38 -40
  28. package/backend/dist/cjs/volt.d.ts +3 -2
  29. package/backend/dist/cjs/volt.js +2 -2
  30. package/backend/dist/css/volt.css +5 -0
  31. package/backend/dist/esm/database.d.ts +41 -68
  32. package/backend/dist/esm/database.js +137 -79
  33. package/backend/dist/esm/endpoint.d.ts +23 -9
  34. package/backend/dist/esm/endpoint.js +99 -22
  35. package/backend/dist/esm/file_watcher.js +2 -2
  36. package/backend/dist/esm/frontend.d.ts +0 -2
  37. package/backend/dist/esm/frontend.js +9 -9
  38. package/backend/dist/esm/image_endpoint.d.ts +3 -1
  39. package/backend/dist/esm/image_endpoint.js +2 -1
  40. package/backend/dist/esm/payments/paddle.js +11 -3
  41. package/backend/dist/esm/plugins/css.d.ts +6 -5
  42. package/backend/dist/esm/plugins/css.js +32 -6
  43. package/backend/dist/esm/plugins/ts/compiler.d.ts +6 -1
  44. package/backend/dist/esm/plugins/ts/compiler.js +26 -2
  45. package/backend/dist/esm/plugins/ts/preprocessing.js +5 -3
  46. package/backend/dist/esm/server.d.ts +7 -13
  47. package/backend/dist/esm/server.js +182 -301
  48. package/backend/dist/esm/status.d.ts +1 -0
  49. package/backend/dist/esm/status.js +1 -0
  50. package/backend/dist/esm/stream.d.ts +5 -3
  51. package/backend/dist/esm/stream.js +13 -4
  52. package/backend/dist/esm/users.d.ts +1 -1
  53. package/backend/dist/esm/users.js +87 -72
  54. package/backend/dist/esm/utils.d.ts +17 -9
  55. package/backend/dist/esm/utils.js +21 -62
  56. package/backend/dist/esm/view.d.ts +2 -2
  57. package/backend/dist/esm/view.js +38 -40
  58. package/backend/dist/esm/volt.d.ts +3 -2
  59. package/backend/dist/esm/volt.js +2 -1
  60. package/backend/dist/esm-dev/blacklist.js +1 -1
  61. package/backend/dist/esm-dev/cli.js +2 -2
  62. package/backend/dist/esm-dev/database.d.ts +41 -68
  63. package/backend/dist/esm-dev/database.js +138 -80
  64. package/backend/dist/esm-dev/endpoint.d.ts +23 -9
  65. package/backend/dist/esm-dev/endpoint.js +100 -23
  66. package/backend/dist/esm-dev/file_watcher.js +3 -3
  67. package/backend/dist/esm-dev/frontend.d.ts +0 -2
  68. package/backend/dist/esm-dev/frontend.js +9 -9
  69. package/backend/dist/esm-dev/image_endpoint.d.ts +3 -1
  70. package/backend/dist/esm-dev/image_endpoint.js +2 -1
  71. package/backend/dist/esm-dev/logger.js +1 -1
  72. package/backend/dist/esm-dev/payments/paddle.js +12 -4
  73. package/backend/dist/esm-dev/plugins/css.d.ts +6 -5
  74. package/backend/dist/esm-dev/plugins/css.js +33 -7
  75. package/backend/dist/esm-dev/plugins/ts/compiler.d.ts +6 -1
  76. package/backend/dist/esm-dev/plugins/ts/compiler.js +27 -3
  77. package/backend/dist/esm-dev/plugins/ts/preprocessing.js +7 -5
  78. package/backend/dist/esm-dev/rate_limit.js +1 -1
  79. package/backend/dist/esm-dev/server.d.ts +7 -13
  80. package/backend/dist/esm-dev/server.js +184 -303
  81. package/backend/dist/esm-dev/status.d.ts +1 -0
  82. package/backend/dist/esm-dev/status.js +1 -0
  83. package/backend/dist/esm-dev/stream.d.ts +5 -3
  84. package/backend/dist/esm-dev/stream.js +13 -4
  85. package/backend/dist/esm-dev/users.d.ts +1 -1
  86. package/backend/dist/esm-dev/users.js +88 -73
  87. package/backend/dist/esm-dev/utils.d.ts +17 -9
  88. package/backend/dist/esm-dev/utils.js +22 -63
  89. package/backend/dist/esm-dev/view.d.ts +2 -2
  90. package/backend/dist/esm-dev/view.js +39 -41
  91. package/backend/dist/esm-dev/volt.d.ts +3 -2
  92. package/backend/dist/esm-dev/volt.js +2 -1
  93. package/backend/src/database.ts +173 -155
  94. package/backend/src/endpoint.ts +123 -31
  95. package/backend/src/file_watcher.ts +2 -2
  96. package/backend/src/frontend.ts +9 -8
  97. package/backend/src/image_endpoint.ts +4 -0
  98. package/backend/src/payments/paddle.ts +11 -3
  99. package/backend/src/plugins/css.ts +36 -8
  100. package/backend/src/plugins/ts/compiler.ts +37 -1
  101. package/backend/src/plugins/ts/preprocessing.ts +5 -3
  102. package/backend/src/server.ts +167 -306
  103. package/backend/src/status.ts +1 -0
  104. package/backend/src/stream.ts +28 -8
  105. package/backend/src/users.ts +87 -72
  106. package/backend/src/utils.ts +58 -25
  107. package/backend/src/view.ts +30 -28
  108. package/backend/src/{volt.js → volt.ts} +2 -1
  109. package/backend/tsconfig.cjs.json +3 -3
  110. package/backend/tsconfig.esm.json +3 -3
  111. package/frontend/dist/elements/base.d.ts +414 -432
  112. package/frontend/dist/elements/base.js +566 -329
  113. package/frontend/dist/elements/module.d.ts +26 -12
  114. package/frontend/dist/elements/module.js +69 -32
  115. package/frontend/dist/elements/register_element.d.ts +3 -0
  116. package/frontend/dist/elements/register_element.js +22 -0
  117. package/frontend/dist/modules/auth.d.ts +1 -0
  118. package/frontend/dist/modules/auth.js +6 -5
  119. package/frontend/dist/modules/color.d.ts +159 -0
  120. package/frontend/dist/modules/color.js +315 -0
  121. package/frontend/dist/modules/colors.d.ts +1 -26
  122. package/frontend/dist/modules/colors.js +417 -340
  123. package/frontend/dist/modules/cookies.d.ts +1 -0
  124. package/frontend/dist/modules/cookies.js +1 -0
  125. package/frontend/dist/modules/events.d.ts +1 -0
  126. package/frontend/dist/modules/events.js +1 -0
  127. package/frontend/dist/modules/google.d.ts +1 -0
  128. package/frontend/dist/modules/google.js +1 -0
  129. package/frontend/dist/modules/meta.d.ts +1 -0
  130. package/frontend/dist/modules/meta.js +1 -0
  131. package/frontend/dist/modules/mutex.d.ts +1 -2
  132. package/frontend/dist/modules/mutex.js +3 -4
  133. package/frontend/dist/modules/paddle.d.ts +1 -0
  134. package/frontend/dist/modules/paddle.js +14 -13
  135. package/frontend/dist/modules/scheme.d.ts +1 -0
  136. package/frontend/dist/modules/scheme.js +5 -3
  137. package/frontend/dist/modules/statics.d.ts +1 -0
  138. package/frontend/dist/modules/statics.js +1 -0
  139. package/frontend/dist/modules/support.d.ts +1 -0
  140. package/frontend/dist/modules/support.js +3 -2
  141. package/frontend/dist/modules/theme.d.ts +56 -0
  142. package/frontend/dist/{ui → modules}/theme.js +186 -75
  143. package/frontend/dist/modules/themes.d.ts +1 -1
  144. package/frontend/dist/modules/themes.js +1 -0
  145. package/frontend/dist/modules/user.d.ts +1 -0
  146. package/frontend/dist/modules/user.js +11 -10
  147. package/frontend/dist/modules/utils.d.ts +23 -2
  148. package/frontend/dist/modules/utils.js +93 -1
  149. package/frontend/dist/types/gradient.js +4 -0
  150. package/frontend/dist/ui/border_button.d.ts +0 -25
  151. package/frontend/dist/ui/border_button.js +50 -51
  152. package/frontend/dist/ui/button.d.ts +0 -21
  153. package/frontend/dist/ui/button.js +41 -46
  154. package/frontend/dist/ui/canvas.js +15 -15
  155. package/frontend/dist/ui/checkbox.d.ts +3 -17
  156. package/frontend/dist/ui/checkbox.js +36 -30
  157. package/frontend/dist/ui/code.d.ts +15 -82
  158. package/frontend/dist/ui/code.js +150 -125
  159. package/frontend/dist/ui/color.d.ts +0 -1
  160. package/frontend/dist/ui/color.js +1 -1
  161. package/frontend/dist/ui/context_menu.d.ts +4 -2
  162. package/frontend/dist/ui/context_menu.js +16 -17
  163. package/frontend/dist/ui/css.js +2 -0
  164. package/frontend/dist/ui/divider.d.ts +0 -7
  165. package/frontend/dist/ui/divider.js +21 -25
  166. package/frontend/dist/ui/dropdown.d.ts +13 -7
  167. package/frontend/dist/ui/dropdown.js +65 -30
  168. package/frontend/dist/ui/for_each.d.ts +0 -5
  169. package/frontend/dist/ui/for_each.js +17 -22
  170. package/frontend/dist/ui/form.d.ts +17 -12
  171. package/frontend/dist/ui/form.js +21 -18
  172. package/frontend/dist/ui/frame_modes.d.ts +9 -12
  173. package/frontend/dist/ui/frame_modes.js +8 -10
  174. package/frontend/dist/ui/google_map.d.ts +0 -11
  175. package/frontend/dist/ui/google_map.js +23 -28
  176. package/frontend/dist/ui/gradient.d.ts +0 -5
  177. package/frontend/dist/ui/gradient.js +17 -22
  178. package/frontend/dist/ui/image.d.ts +27 -58
  179. package/frontend/dist/ui/image.js +99 -93
  180. package/frontend/dist/ui/input.d.ts +20 -97
  181. package/frontend/dist/ui/input.js +192 -170
  182. package/frontend/dist/ui/link.d.ts +0 -18
  183. package/frontend/dist/ui/link.js +42 -48
  184. package/frontend/dist/ui/list.js +36 -37
  185. package/frontend/dist/ui/loader_button.d.ts +4 -19
  186. package/frontend/dist/ui/loader_button.js +35 -37
  187. package/frontend/dist/ui/loaders.d.ts +0 -8
  188. package/frontend/dist/ui/loaders.js +20 -25
  189. package/frontend/dist/ui/popup.d.ts +11 -8
  190. package/frontend/dist/ui/popup.js +183 -24
  191. package/frontend/dist/ui/pseudo.d.ts +3 -3
  192. package/frontend/dist/ui/pseudo.js +14 -17
  193. package/frontend/dist/ui/scroller.d.ts +10 -48
  194. package/frontend/dist/ui/scroller.js +306 -300
  195. package/frontend/dist/ui/slider.d.ts +9 -3
  196. package/frontend/dist/ui/slider.js +31 -17
  197. package/frontend/dist/ui/spacer.d.ts +0 -9
  198. package/frontend/dist/ui/spacer.js +21 -26
  199. package/frontend/dist/ui/span.js +13 -15
  200. package/frontend/dist/ui/stack.d.ts +14 -75
  201. package/frontend/dist/ui/stack.js +166 -169
  202. package/frontend/dist/ui/steps.d.ts +10 -23
  203. package/frontend/dist/ui/steps.js +47 -34
  204. package/frontend/dist/ui/style.d.ts +4 -3
  205. package/frontend/dist/ui/style.js +13 -18
  206. package/frontend/dist/ui/switch.d.ts +10 -4
  207. package/frontend/dist/ui/switch.js +24 -16
  208. package/frontend/dist/ui/table.d.ts +0 -23
  209. package/frontend/dist/ui/table.js +113 -119
  210. package/frontend/dist/ui/tabs.d.ts +3 -19
  211. package/frontend/dist/ui/tabs.js +35 -29
  212. package/frontend/dist/ui/text.d.ts +0 -8
  213. package/frontend/dist/ui/text.js +20 -25
  214. package/frontend/dist/ui/title.d.ts +0 -15
  215. package/frontend/dist/ui/title.js +39 -45
  216. package/frontend/dist/ui/ui.d.ts +0 -2
  217. package/frontend/dist/ui/ui.js +0 -2
  218. package/frontend/dist/ui/view.d.ts +3 -17
  219. package/frontend/dist/ui/view.js +27 -32
  220. package/frontend/dist/volt.d.ts +2 -1
  221. package/frontend/dist/volt.js +3 -1
  222. package/frontend/examples/dashboard/dashboard.ts +774 -0
  223. package/frontend/examples/theme/theme.ts +58 -0
  224. package/frontend/src/css/volt.css +5 -0
  225. package/frontend/src/elements/base.ts +767 -545
  226. package/frontend/src/elements/module.ts +90 -29
  227. package/frontend/src/elements/register_element.ts +24 -0
  228. package/frontend/src/modules/auth.ts +7 -6
  229. package/frontend/src/modules/color.ts +348 -0
  230. package/frontend/src/modules/colors.ts +468 -449
  231. package/frontend/src/modules/cookies.ts +1 -0
  232. package/frontend/src/modules/events.ts +1 -0
  233. package/frontend/src/modules/google.ts +1 -0
  234. package/frontend/src/modules/meta.ts +2 -1
  235. package/frontend/src/modules/mutex.ts +2 -4
  236. package/frontend/src/modules/paddle.ts +21 -20
  237. package/frontend/src/modules/scheme.ts +5 -4
  238. package/frontend/src/modules/statics.ts +2 -1
  239. package/frontend/src/modules/support.ts +3 -2
  240. package/frontend/src/modules/theme.ts +413 -0
  241. package/frontend/src/modules/themes.ts +2 -1
  242. package/frontend/src/modules/user.ts +12 -11
  243. package/frontend/src/modules/utils.ts +125 -2
  244. package/frontend/src/ui/border_button.ts +41 -37
  245. package/frontend/src/ui/button.ts +33 -32
  246. package/frontend/src/ui/canvas.ts +5 -2
  247. package/frontend/src/ui/checkbox.ts +21 -22
  248. package/frontend/src/ui/code.ts +92 -86
  249. package/frontend/src/ui/context_menu.ts +7 -5
  250. package/frontend/src/ui/css.ts +1 -1
  251. package/frontend/src/ui/divider.ts +15 -10
  252. package/frontend/src/ui/dropdown.ts +38 -21
  253. package/frontend/src/ui/for_each.ts +9 -8
  254. package/frontend/src/ui/form.ts +26 -21
  255. package/frontend/src/ui/frame_modes.ts +13 -17
  256. package/frontend/src/ui/google_map.ts +15 -13
  257. package/frontend/src/ui/gradient.ts +9 -8
  258. package/frontend/src/ui/image.ts +108 -86
  259. package/frontend/src/ui/input.ts +145 -144
  260. package/frontend/src/ui/link.ts +25 -23
  261. package/frontend/src/ui/list.ts +12 -6
  262. package/frontend/src/ui/loader_button.ts +26 -25
  263. package/frontend/src/ui/loaders.ts +12 -11
  264. package/frontend/src/ui/popup.ts +168 -14
  265. package/frontend/src/ui/pseudo.ts +5 -3
  266. package/frontend/src/ui/scroller.ts +303 -294
  267. package/frontend/src/ui/slider.ts +15 -10
  268. package/frontend/src/ui/spacer.ts +14 -11
  269. package/frontend/src/ui/span.ts +6 -2
  270. package/frontend/src/ui/stack.ts +196 -183
  271. package/frontend/src/ui/steps.ts +38 -22
  272. package/frontend/src/ui/style.ts +7 -4
  273. package/frontend/src/ui/switch.ts +16 -11
  274. package/frontend/src/ui/table.ts +42 -34
  275. package/frontend/src/ui/tabs.ts +20 -19
  276. package/frontend/src/ui/text.ts +12 -11
  277. package/frontend/src/ui/title.ts +22 -20
  278. package/frontend/src/ui/ui.ts +0 -2
  279. package/frontend/src/ui/view.ts +20 -19
  280. package/frontend/src/volt.ts +3 -1
  281. package/frontend/{compile.js → tools/compile.old.js} +2 -2
  282. package/frontend/tools/embed_scripts.js +69 -0
  283. package/frontend/tsconfig.json +26 -0
  284. package/package.json +7 -6
  285. package/frontend/dist/ui/theme.d.ts +0 -25
  286. package/frontend/exports.json +0 -1340
  287. package/frontend/src/modules/date.js +0 -535
  288. package/frontend/src/ui/color.ts +0 -117
  289. package/frontend/src/ui/theme.ts +0 -279
  290. /package/backend/src/{vinc.dev.js → vinc.dev.ts} +0 -0
@@ -4,12 +4,13 @@
4
4
  */
5
5
 
6
6
  // Imports.
7
- import { Elements } from "../elements/module.js"
7
+ import { Elements, VElementBaseSignature, VElement } from "../elements/module.js"
8
8
  import { Utils } from "../modules/utils.js"
9
9
  import { VStack, VStackElement, AnchorVStack, AnchorVStackElement, HStack, HStackElement, AnchorHStack, AnchorHStackElement } from "./stack"
10
10
  import { ForEach } from "./for_each"
11
11
  import { ImageMask, ImageMaskElement } from "./image"
12
12
  import { Text } from "./text"
13
+ import { AnyElement } from "./any_element.js"
13
14
 
14
15
  type DropdownCallback = (element: DropdownElement) => void;
15
16
 
@@ -95,11 +96,16 @@ type DropdownCallback = (element: DropdownElement) => void;
95
96
  @type: boolean
96
97
  @default: false
97
98
  */
98
- @Elements.register
99
- export class DropdownElement extends VStackElement {
99
+ @Elements.create({
100
+ name: "DropdownElement",
101
+ })
102
+ export class DropdownElement extends (VStackElement as any as VElementBaseSignature) {
103
+
104
+ // Static attributes.
105
+ static element_name = "DropdownElement";
100
106
 
101
107
  // @ts-expect-error
102
- public target: HTMLElement;
108
+ public target: AnyElement | HTMLElement;
103
109
  // @ts-expect-error
104
110
  public animate: boolean;
105
111
  // @ts-expect-error
@@ -151,7 +157,7 @@ export class DropdownElement extends VStackElement {
151
157
  y_offset = undefined,
152
158
  content = undefined,
153
159
  }: {
154
- target: HTMLElement,
160
+ target: AnyElement | HTMLElement,
155
161
  animate?: boolean,
156
162
  duration?: number,
157
163
  side?: string,
@@ -174,12 +180,13 @@ export class DropdownElement extends VStackElement {
174
180
  on_click?: Function,
175
181
  on_click_redirect?: string,
176
182
  anchor?: boolean,
177
- },
183
+ ellipsis_overflow?: boolean;
184
+ }[],
178
185
  }) {
179
186
 
180
187
  // Base.
181
188
  super();
182
- this._init_derived({
189
+ this._init({
183
190
  derived: DropdownElement,
184
191
  })
185
192
 
@@ -243,7 +250,12 @@ export class DropdownElement extends VStackElement {
243
250
  .color("white")
244
251
  .font_size("inherit")
245
252
  .wrap(false)
246
- // .ellipsis_overflow(true)
253
+ .margin(0)
254
+ .exec(e => {
255
+ if (item.ellipsis_overflow) {
256
+ e.ellipsis_overflow(item.ellipsis_overflow);
257
+ }
258
+ })
247
259
  )
248
260
  .text_decoration("none")
249
261
  .border("none")
@@ -320,24 +332,29 @@ export class DropdownElement extends VStackElement {
320
332
 
321
333
  // Show.
322
334
  clearTimeout(this.animation_timeout);
335
+
323
336
  this.transition("");
324
337
  this._get_frame();
338
+ this.hide();
325
339
  this.max_width(this._frame_min_width)
326
340
  this.max_height(this._frame_min_height)
327
341
  this.opacity(0)
328
- this.transition(this.animate ? `opacity ${this.duration * 0.8}ms ease-in, max-height ${this.duration}ms ease-in-out, max-width ${this.duration}ms ease-in-out` : "")
329
- this.show().getBoundingClientRect();
330
- const rect = this.target.getBoundingClientRect();
331
- this
332
- .position(
333
- rect.top + this.y_offset + (this.below_target ? rect.height : 0),
334
- this.side !== "left" ? (window.innerWidth - rect.right - this.x_offset) : undefined,
335
- undefined,
336
- this.side === "left" ? (rect.left + this.x_offset) : undefined
337
- )
338
- .opacity(1)
339
- .max_width(this._frame_max_width)
340
- .max_height(this._frame_max_height)
342
+ this.transition(this.animate ? `opacity ${this.duration * 0.8}ms ease-in, max-height ${this.duration}ms ease-in-out, max-width ${this.duration}ms ease-in-out` : "").getBoundingClientRect()
343
+ this.show()
344
+ const rect = this.target.getBoundingClientRect();
345
+ this.position(
346
+ rect.top + this.y_offset + (this.below_target ? rect.height : 0),
347
+ this.side !== "left" ? (window.innerWidth - rect.right - this.x_offset) : undefined,
348
+ undefined,
349
+ this.side === "left" ? (rect.left + this.x_offset) : undefined
350
+ )
351
+ this.getBoundingClientRect();
352
+ setTimeout(() => {
353
+ this
354
+ .opacity(1)
355
+ .max_width(this._frame_max_width)
356
+ .max_height(this._frame_max_height)
357
+ }, 25)
341
358
 
342
359
  // Close handler.
343
360
  if (this.close_handler == null) {
@@ -4,7 +4,7 @@
4
4
  */
5
5
 
6
6
  // Imports.
7
- import { Elements, VElementTagMap } from "../elements/module.js"
7
+ import { Elements, VElementBaseSignature, VElement, VElementTagMap } from "../elements/module.js"
8
8
 
9
9
  // Marcros.
10
10
  type ArrayCallback = ((item: any, index: number, is_last: boolean) => any);
@@ -16,15 +16,16 @@ type ObjectCallback2 = ((value: any, key: string) => any);
16
16
  type ObjectCallback3 = ((value: any) => any);
17
17
 
18
18
  // ForEach.
19
- @Elements.register
19
+ @Elements.create({
20
+ name: "ForEachElement",
21
+ default_style: {
22
+ "border": "none",
23
+ "outline": "none",
24
+ "background": "transparent",
25
+ },
26
+ })
20
27
  export class ForEachElement extends VElementTagMap.section {
21
28
 
22
- static default_style = {
23
- "border": "none",
24
- "outline": "none",
25
- "background": "transparent",
26
- };
27
-
28
29
  // Constructor.
29
30
  constructor(items: Array<any>, func: ArrayCallback);
30
31
  constructor(items: Array<any>, func: ArrayCallback1);
@@ -4,30 +4,35 @@
4
4
  */
5
5
 
6
6
  // Imports.
7
- import { Elements, VElement, isVElement } from "../elements/module.js"
7
+ import { Elements, VElementBaseSignature, VElement, isVElement, AppendType } from "../elements/module.js"
8
+ import { AnyElement } from "./any_element.js"
9
+ import { CheckBoxElement } from "./checkbox.js"
10
+ import { ExtendedInputElement, ExtendedSelectElement, InputElement } from "./input.js"
8
11
  import { VStack, VStackElement } from "./stack"
9
12
 
10
- // Extended input.
11
- @Elements.register
12
- export class FormElement extends VStackElement {
13
+ // Macros.
14
+ export type OnSubmit<This> = (element: This, data: Record<string, any>) => any;
15
+ export type OnSubmitError<This> = (element: This, error: Error) => any;
13
16
 
14
- // Macros.
15
- #macro OnSubmit ((element: FormElement, data: Record<string, any>) => any)
16
- #macro OnSubmitError ((element: FormElement, error: Error) => any)
17
+ // Extended input.
18
+ @Elements.create({
19
+ name: "FormElement",
20
+ })
21
+ export class FormElement extends (VStackElement as any as VElementBaseSignature) {
17
22
 
18
23
  // Attributes.
19
24
  public _button?: VElement;
20
- public fields: Record<string, any>;
21
- public _on_submit?: OnSubmit;
22
- public _on_submit_error?: OnSubmitError;
25
+ public fields: Record<string, ExtendedInputElement | ExtendedSelectElement | CheckBoxElement>;
26
+ public _on_submit?: OnSubmit<this>;
27
+ public _on_submit_error?: OnSubmitError<this>;
23
28
  public _on_append_callback: (child: any) => void;
24
29
 
25
30
  // Constructor.
26
- constructor(...children: any[]) {
31
+ constructor(...children: AppendType[]) {
27
32
 
28
33
  // Initialize super.
29
34
  super();
30
- this._init_derived({
35
+ this._init({
31
36
  derived: FormElement,
32
37
  })
33
38
 
@@ -40,10 +45,10 @@ export class FormElement extends VStackElement {
40
45
  this._on_append_callback = (child: any) => {
41
46
 
42
47
  // Initialize field.
43
- if (child.element_type === "ExtendedInput" || child.element_type === "ExtendedSelect" || child.element_type === "CheckBox") {
48
+ if (child.element_name === "ExtendedInputElement" || child.element_name === "ExtendedSelectElement" || child.element_name === "CheckBoxElement") {
44
49
  const id = child.id();
45
50
  if (id != null && id !== "") {
46
- _this.fields[id] = child;
51
+ _this.fields[id] = child as any;
47
52
  child.on_input(() => {
48
53
  if (child.missing() === true) {
49
54
  child.missing(false);
@@ -54,7 +59,7 @@ export class FormElement extends VStackElement {
54
59
  }
55
60
 
56
61
  // Initialize button.
57
- else if (/*_this._button === undefined &&*/ (child.element_type === "Button" || child.element_type === "LoaderButton") && child.on_click() == null) { // && child.attr("submit_button") != "false"
62
+ else if (/*_this._button === undefined &&*/ (child.element_name === "ButtonElement" || child.element_name === "LoaderButtonElement") && child.on_click() == null) { // && child.attr("submit_button") != "false"
58
63
  if (_this._button !== undefined) {
59
64
  _this._button.on_click(() => {})
60
65
  }
@@ -184,20 +189,20 @@ export class FormElement extends VStackElement {
184
189
 
185
190
  // Set the on submit callback, the params for the callback are `(element, data) => {}`.
186
191
  // @ts-expect-error
187
- on_submit() : undefined | OnSubmit
192
+ on_submit() : undefined | OnSubmit<this>
188
193
  // @ts-expect-error
189
- on_submit(callback: OnSubmit) : this;
194
+ on_submit(callback: OnSubmit<this>) : this;
190
195
  // @ts-expect-error
191
- on_submit(callback?: OnSubmit) : this | undefined | OnSubmit {
196
+ on_submit(callback?: OnSubmit<this>) : this | undefined | OnSubmit<this> {
192
197
  if (callback == null) { return this._on_submit; }
193
198
  this._on_submit = callback;
194
199
  return this;
195
200
  }
196
201
 
197
202
  // Set the on submit error callback, the params for the callback are `(element, error) => {}`.
198
- on_submit_error() : undefined | OnSubmitError
199
- on_submit_error(callback: OnSubmitError) : this;
200
- on_submit_error(callback?: OnSubmitError) : this | undefined | OnSubmitError {
203
+ on_submit_error() : undefined | OnSubmitError<this>
204
+ on_submit_error(callback: OnSubmitError<this>) : this;
205
+ on_submit_error(callback?: OnSubmitError<this>) : this | undefined | OnSubmitError<this> {
201
206
  if (callback == null) { return this._on_submit_error; }
202
207
  this._on_submit_error = callback;
203
208
  return this;
@@ -4,18 +4,16 @@
4
4
  */
5
5
 
6
6
  // Imports.
7
- import { Elements } from "../elements/module.js"
7
+ import { Elements, VElementBaseSignature, VElement, AppendType, VBaseElements } from "../elements/module.js"
8
8
 
9
9
  // Nodes type.
10
- export class FrameNodesType extends Array {
11
- constructor(...children: any[]) {
10
+ export class FrameNodes extends Array<VElement> {
11
+ constructor(...children: VElement[]) {
12
12
  super(...children)
13
13
  }
14
14
  }
15
- export const FrameNodes = Elements.wrapper(FrameNodesType);
16
- export const NullFrameNodes = Elements.create_null(FrameNodesType);
17
15
 
18
- type OnSet = (mode: string, nodes: FrameNodesType) => any
16
+ type OnSet = (mode: string, nodes: FrameNodes) => any
19
17
 
20
18
  // Frame mode used to switch easily between frames.
21
19
  /* @docs:
@@ -27,10 +25,10 @@ type OnSet = (mode: string, nodes: FrameNodesType) => any
27
25
 
28
26
  Afterwards the mode can be set using `MyMode.set("my_mode")`.
29
27
  */
30
- export class FrameModesType {
28
+ export class FrameModes {
31
29
 
32
30
  // Attributes.
33
- public modes: Record<string, FrameNodesType> = {};
31
+ public modes: Record<string, FrameNodes> = {};
34
32
  public active?: string;
35
33
  public _on_set?: OnSet;
36
34
 
@@ -40,17 +38,17 @@ export class FrameModesType {
40
38
  if (this.active == null) {
41
39
  this.active = mode;
42
40
  }
43
- this.modes[mode] = FrameNodes();
41
+ this.modes[mode] = new FrameNodes();
44
42
  }
45
43
  }
46
44
 
47
45
  // Get.
48
- get(mode: string) : FrameNodesType {
46
+ get(mode: string) : FrameNodes {
49
47
  const nodes = this.modes[mode];
50
48
  if (nodes === undefined) {
51
49
  throw new Error(`Requested mode "${mode}" does not exist.`);
52
50
  }
53
- return nodes as FrameNodesType;
51
+ return nodes as FrameNodes;
54
52
  }
55
53
 
56
54
  // Set mode.
@@ -90,14 +88,12 @@ export class FrameModesType {
90
88
  return this;
91
89
  }
92
90
  }
93
- export const FrameModes = Elements.wrapper(FrameModesType);
94
- export const NullFrameModes = Elements.create_null(FrameModesType);
95
91
 
96
92
  // Extend VElement.
97
93
  declare global {
98
94
  interface VElementExtensions {
99
- frame_mode(frame_mode: FrameNodesType): this;
100
- frame_mode(frame_modes: FrameModesType, mode_name: string): this;
95
+ frame_mode(frame_mode: FrameNodes): this;
96
+ frame_mode(frame_modes: FrameModes, mode_name: string): this;
101
97
  }
102
98
  }
103
99
  Elements.extend({
@@ -112,10 +108,10 @@ Elements.extend({
112
108
  * @return:
113
109
  * @description Returns the instance of the element for chaining.
114
110
  */
115
- frame_mode(this, ...args) {
111
+ frame_mode(this: VElement, ...args) {
116
112
  if (args.length === 1) {
117
113
  args[0].push(this);
118
- } else if (args.length === 2 && args[0] instanceof FrameModesType) {
114
+ } else if (args.length === 2 && args[0] instanceof FrameModes) {
119
115
  const frames_mode = args[0];
120
116
  const mode_name = args[1];
121
117
  if (mode_name !== frames_mode.active) {
@@ -4,25 +4,27 @@
4
4
  */
5
5
 
6
6
  // Imports.
7
- import { Elements, VElementTagMap } from "../elements/module.js"
7
+ import { Elements, VElementBaseSignature, VElement, VElementTagMap } from "../elements/module.js"
8
8
  import { Utils } from "../modules/utils.js"
9
9
  import { Google } from "../modules/google"
10
10
 
11
11
  // GoogleMap.
12
- @Elements.register
12
+ @Elements.create({
13
+ name: "GoogleMapElement",
14
+ default_style: {
15
+ "border": "0",
16
+ },
17
+ default_attributes: {
18
+ "width": "100%",
19
+ "height": "100%",
20
+ "frameborder": "0",
21
+ "style": "border:0",
22
+ "referrerpolicy": "no-referrer-when-downgrade",
23
+ "allowfullscreen": "true",
24
+ },
25
+ })
13
26
  export class GoogleMapElement extends VElementTagMap.iframe {
14
27
 
15
- static default_style = {
16
- "border": "0",
17
- };
18
- static default_attributes = {
19
- "width": "100%",
20
- "height": "100%",
21
- "frameborder": "0",
22
- "style": "border:0",
23
- "referrerpolicy": "no-referrer-when-downgrade",
24
- "allowfullscreen": "true",
25
- };
26
28
 
27
29
  // Constructor.
28
30
  constructor({
@@ -4,7 +4,7 @@
4
4
  */
5
5
 
6
6
  // Imports.
7
- import { Elements, VElementTagMap } from "../elements/module.js"
7
+ import { Elements, VElementBaseSignature, VElement, VElementTagMap } from "../elements/module.js"
8
8
  import { Utils } from "../modules/utils.js"
9
9
  import { GradientType } from "../types/gradient.js"
10
10
 
@@ -13,15 +13,16 @@ export const Gradient = Elements.wrapper(GradientType);
13
13
  export const NullGradient = Elements.create_null(GradientType);
14
14
 
15
15
  // Gradient border.
16
- @Elements.register
16
+ @Elements.create({
17
+ name: "GradientBorderElement",
18
+ default_style: {
19
+ "--child-border-width": "1px",
20
+ "--child-border-radius": "10px",
21
+ "--child-border-color": "black",
22
+ },
23
+ })
17
24
  export class GradientBorderElement extends VElementTagMap.div {
18
25
 
19
- static default_style = {
20
- "--child-border-width": "1px",
21
- "--child-border-radius": "10px",
22
- "--child-border-color": "black",
23
- };
24
-
25
26
  // Constructor.
26
27
  constructor() {
27
28