@vandenberghinc/volt 1.1.5 → 1.1.7

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