@vandenberghinc/volt 1.1.2

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 (451) hide show
  1. package/.vrepo +28 -0
  2. package/.vscode/tasks.json +87 -0
  3. package/README.md +67 -0
  4. package/backend/dist/cjs/blacklist.d.ts +10 -0
  5. package/backend/dist/cjs/blacklist.js +53 -0
  6. package/backend/dist/cjs/cli.d.ts +2 -0
  7. package/backend/dist/cjs/cli.js +263 -0
  8. package/backend/dist/cjs/database.d.ts +364 -0
  9. package/backend/dist/cjs/database.js +1962 -0
  10. package/backend/dist/cjs/endpoint.d.ts +57 -0
  11. package/backend/dist/cjs/endpoint.js +425 -0
  12. package/backend/dist/cjs/file_watcher.d.ts +44 -0
  13. package/backend/dist/cjs/file_watcher.js +348 -0
  14. package/backend/dist/cjs/frontend.d.ts +13 -0
  15. package/backend/dist/cjs/frontend.js +30 -0
  16. package/backend/dist/cjs/image_endpoint.d.ts +24 -0
  17. package/backend/dist/cjs/image_endpoint.js +210 -0
  18. package/backend/dist/cjs/logger.d.ts +5 -0
  19. package/backend/dist/cjs/logger.js +16 -0
  20. package/backend/dist/cjs/meta.d.ts +50 -0
  21. package/backend/dist/cjs/meta.js +153 -0
  22. package/backend/dist/cjs/mutex.d.ts +24 -0
  23. package/backend/dist/cjs/mutex.js +52 -0
  24. package/backend/dist/cjs/package.json +1 -0
  25. package/backend/dist/cjs/payments/paddle.d.ts +161 -0
  26. package/backend/dist/cjs/payments/paddle.js +2301 -0
  27. package/backend/dist/cjs/plugins/browser.d.ts +36 -0
  28. package/backend/dist/cjs/plugins/browser.js +183 -0
  29. package/backend/dist/cjs/plugins/communication.d.ts +70 -0
  30. package/backend/dist/cjs/plugins/communication.js +177 -0
  31. package/backend/dist/cjs/plugins/css.d.ts +10 -0
  32. package/backend/dist/cjs/plugins/css.js +71 -0
  33. package/backend/dist/cjs/plugins/mail.d.ts +277 -0
  34. package/backend/dist/cjs/plugins/mail.js +1419 -0
  35. package/backend/dist/cjs/plugins/pdf.d.ts +757 -0
  36. package/backend/dist/cjs/plugins/pdf.js +1694 -0
  37. package/backend/dist/cjs/plugins/thread_monitor.d.ts +18 -0
  38. package/backend/dist/cjs/plugins/thread_monitor.js +127 -0
  39. package/backend/dist/cjs/plugins/ts/compiler.d.ts +132 -0
  40. package/backend/dist/cjs/plugins/ts/compiler.js +944 -0
  41. package/backend/dist/cjs/plugins/ts/preprocessing.d.ts +14 -0
  42. package/backend/dist/cjs/plugins/ts/preprocessing.js +762 -0
  43. package/backend/dist/cjs/rate_limit.d.ts +65 -0
  44. package/backend/dist/cjs/rate_limit.js +463 -0
  45. package/backend/dist/cjs/request.deprc.d.ts +48 -0
  46. package/backend/dist/cjs/request.deprc.js +572 -0
  47. package/backend/dist/cjs/response.deprc.d.ts +55 -0
  48. package/backend/dist/cjs/response.deprc.js +275 -0
  49. package/backend/dist/cjs/server.d.ts +311 -0
  50. package/backend/dist/cjs/server.js +3475 -0
  51. package/backend/dist/cjs/splash_screen.d.ts +35 -0
  52. package/backend/dist/cjs/splash_screen.js +152 -0
  53. package/backend/dist/cjs/status.d.ts +60 -0
  54. package/backend/dist/cjs/status.js +199 -0
  55. package/backend/dist/cjs/stream.d.ts +75 -0
  56. package/backend/dist/cjs/stream.js +954 -0
  57. package/backend/dist/cjs/users.d.ts +111 -0
  58. package/backend/dist/cjs/users.js +1945 -0
  59. package/backend/dist/cjs/utils.d.ts +27 -0
  60. package/backend/dist/cjs/utils.js +329 -0
  61. package/backend/dist/cjs/view.d.ts +52 -0
  62. package/backend/dist/cjs/view.js +568 -0
  63. package/backend/dist/cjs/vinc.d.ts +2 -0
  64. package/backend/dist/cjs/vinc.dev.d.ts +2 -0
  65. package/backend/dist/cjs/vinc.dev.js +42 -0
  66. package/backend/dist/cjs/vinc.js +42 -0
  67. package/backend/dist/cjs/volt.d.ts +15 -0
  68. package/backend/dist/cjs/volt.js +64 -0
  69. package/backend/dist/css/adyen.css +92 -0
  70. package/backend/dist/css/volt.css +65 -0
  71. package/backend/dist/esm/blacklist.d.ts +10 -0
  72. package/backend/dist/esm/blacklist.js +49 -0
  73. package/backend/dist/esm/cli.d.ts +2 -0
  74. package/backend/dist/esm/cli.js +228 -0
  75. package/backend/dist/esm/database.d.ts +364 -0
  76. package/backend/dist/esm/database.js +1957 -0
  77. package/backend/dist/esm/endpoint.d.ts +57 -0
  78. package/backend/dist/esm/endpoint.js +421 -0
  79. package/backend/dist/esm/file_watcher.d.ts +44 -0
  80. package/backend/dist/esm/file_watcher.js +313 -0
  81. package/backend/dist/esm/frontend.d.ts +13 -0
  82. package/backend/dist/esm/frontend.js +27 -0
  83. package/backend/dist/esm/image_endpoint.d.ts +24 -0
  84. package/backend/dist/esm/image_endpoint.js +206 -0
  85. package/backend/dist/esm/logger.d.ts +5 -0
  86. package/backend/dist/esm/logger.js +13 -0
  87. package/backend/dist/esm/meta.d.ts +50 -0
  88. package/backend/dist/esm/meta.js +149 -0
  89. package/backend/dist/esm/mutex.d.ts +24 -0
  90. package/backend/dist/esm/mutex.js +48 -0
  91. package/backend/dist/esm/payments/paddle.d.ts +161 -0
  92. package/backend/dist/esm/payments/paddle.js +2261 -0
  93. package/backend/dist/esm/plugins/browser.d.ts +36 -0
  94. package/backend/dist/esm/plugins/browser.js +176 -0
  95. package/backend/dist/esm/plugins/communication.d.ts +70 -0
  96. package/backend/dist/esm/plugins/communication.js +169 -0
  97. package/backend/dist/esm/plugins/css.d.ts +10 -0
  98. package/backend/dist/esm/plugins/css.js +64 -0
  99. package/backend/dist/esm/plugins/mail.d.ts +277 -0
  100. package/backend/dist/esm/plugins/mail.js +1403 -0
  101. package/backend/dist/esm/plugins/pdf.d.ts +757 -0
  102. package/backend/dist/esm/plugins/pdf.js +1694 -0
  103. package/backend/dist/esm/plugins/thread_monitor.d.ts +18 -0
  104. package/backend/dist/esm/plugins/thread_monitor.js +120 -0
  105. package/backend/dist/esm/plugins/ts/compiler.d.ts +132 -0
  106. package/backend/dist/esm/plugins/ts/compiler.js +907 -0
  107. package/backend/dist/esm/plugins/ts/preprocessing.d.ts +14 -0
  108. package/backend/dist/esm/plugins/ts/preprocessing.js +724 -0
  109. package/backend/dist/esm/rate_limit.d.ts +65 -0
  110. package/backend/dist/esm/rate_limit.js +425 -0
  111. package/backend/dist/esm/request.deprc.d.ts +48 -0
  112. package/backend/dist/esm/request.deprc.js +572 -0
  113. package/backend/dist/esm/response.deprc.d.ts +55 -0
  114. package/backend/dist/esm/response.deprc.js +275 -0
  115. package/backend/dist/esm/server.d.ts +311 -0
  116. package/backend/dist/esm/server.js +3435 -0
  117. package/backend/dist/esm/splash_screen.d.ts +35 -0
  118. package/backend/dist/esm/splash_screen.js +148 -0
  119. package/backend/dist/esm/status.d.ts +60 -0
  120. package/backend/dist/esm/status.js +196 -0
  121. package/backend/dist/esm/stream.d.ts +75 -0
  122. package/backend/dist/esm/stream.js +947 -0
  123. package/backend/dist/esm/users.d.ts +111 -0
  124. package/backend/dist/esm/users.js +1908 -0
  125. package/backend/dist/esm/utils.d.ts +27 -0
  126. package/backend/dist/esm/utils.js +324 -0
  127. package/backend/dist/esm/view.d.ts +52 -0
  128. package/backend/dist/esm/view.js +561 -0
  129. package/backend/dist/esm/vinc.d.ts +2 -0
  130. package/backend/dist/esm/vinc.dev.d.ts +2 -0
  131. package/backend/dist/esm/vinc.dev.js +6 -0
  132. package/backend/dist/esm/vinc.js +6 -0
  133. package/backend/dist/esm/volt.d.ts +15 -0
  134. package/backend/dist/esm/volt.js +23 -0
  135. package/backend/dist/esm-dev/blacklist.d.ts +10 -0
  136. package/backend/dist/esm-dev/blacklist.js +49 -0
  137. package/backend/dist/esm-dev/cli.d.ts +2 -0
  138. package/backend/dist/esm-dev/cli.js +228 -0
  139. package/backend/dist/esm-dev/database.d.ts +364 -0
  140. package/backend/dist/esm-dev/database.js +1957 -0
  141. package/backend/dist/esm-dev/endpoint.d.ts +57 -0
  142. package/backend/dist/esm-dev/endpoint.js +421 -0
  143. package/backend/dist/esm-dev/file_watcher.d.ts +44 -0
  144. package/backend/dist/esm-dev/file_watcher.js +313 -0
  145. package/backend/dist/esm-dev/frontend.d.ts +13 -0
  146. package/backend/dist/esm-dev/frontend.js +27 -0
  147. package/backend/dist/esm-dev/image_endpoint.d.ts +24 -0
  148. package/backend/dist/esm-dev/image_endpoint.js +206 -0
  149. package/backend/dist/esm-dev/logger.d.ts +5 -0
  150. package/backend/dist/esm-dev/logger.js +13 -0
  151. package/backend/dist/esm-dev/meta.d.ts +50 -0
  152. package/backend/dist/esm-dev/meta.js +149 -0
  153. package/backend/dist/esm-dev/mutex.d.ts +24 -0
  154. package/backend/dist/esm-dev/mutex.js +48 -0
  155. package/backend/dist/esm-dev/payments/paddle.d.ts +161 -0
  156. package/backend/dist/esm-dev/payments/paddle.js +2261 -0
  157. package/backend/dist/esm-dev/plugins/browser.d.ts +36 -0
  158. package/backend/dist/esm-dev/plugins/browser.js +176 -0
  159. package/backend/dist/esm-dev/plugins/communication.d.ts +70 -0
  160. package/backend/dist/esm-dev/plugins/communication.js +169 -0
  161. package/backend/dist/esm-dev/plugins/css.d.ts +10 -0
  162. package/backend/dist/esm-dev/plugins/css.js +64 -0
  163. package/backend/dist/esm-dev/plugins/mail.d.ts +277 -0
  164. package/backend/dist/esm-dev/plugins/mail.js +1403 -0
  165. package/backend/dist/esm-dev/plugins/pdf.d.ts +757 -0
  166. package/backend/dist/esm-dev/plugins/pdf.js +1694 -0
  167. package/backend/dist/esm-dev/plugins/thread_monitor.d.ts +18 -0
  168. package/backend/dist/esm-dev/plugins/thread_monitor.js +120 -0
  169. package/backend/dist/esm-dev/plugins/ts/compiler.d.ts +132 -0
  170. package/backend/dist/esm-dev/plugins/ts/compiler.js +907 -0
  171. package/backend/dist/esm-dev/plugins/ts/preprocessing.d.ts +14 -0
  172. package/backend/dist/esm-dev/plugins/ts/preprocessing.js +724 -0
  173. package/backend/dist/esm-dev/rate_limit.d.ts +65 -0
  174. package/backend/dist/esm-dev/rate_limit.js +425 -0
  175. package/backend/dist/esm-dev/request.deprc.d.ts +48 -0
  176. package/backend/dist/esm-dev/request.deprc.js +572 -0
  177. package/backend/dist/esm-dev/response.deprc.d.ts +55 -0
  178. package/backend/dist/esm-dev/response.deprc.js +275 -0
  179. package/backend/dist/esm-dev/server.d.ts +311 -0
  180. package/backend/dist/esm-dev/server.js +3435 -0
  181. package/backend/dist/esm-dev/splash_screen.d.ts +35 -0
  182. package/backend/dist/esm-dev/splash_screen.js +148 -0
  183. package/backend/dist/esm-dev/status.d.ts +60 -0
  184. package/backend/dist/esm-dev/status.js +196 -0
  185. package/backend/dist/esm-dev/stream.d.ts +75 -0
  186. package/backend/dist/esm-dev/stream.js +947 -0
  187. package/backend/dist/esm-dev/users.d.ts +111 -0
  188. package/backend/dist/esm-dev/users.js +1908 -0
  189. package/backend/dist/esm-dev/utils.d.ts +27 -0
  190. package/backend/dist/esm-dev/utils.js +324 -0
  191. package/backend/dist/esm-dev/view.d.ts +52 -0
  192. package/backend/dist/esm-dev/view.js +561 -0
  193. package/backend/dist/esm-dev/vinc.d.ts +2 -0
  194. package/backend/dist/esm-dev/vinc.dev.d.ts +2 -0
  195. package/backend/dist/esm-dev/vinc.dev.js +6 -0
  196. package/backend/dist/esm-dev/vinc.js +6 -0
  197. package/backend/dist/esm-dev/volt.d.ts +15 -0
  198. package/backend/dist/esm-dev/volt.js +23 -0
  199. package/backend/src/blacklist.ts +69 -0
  200. package/backend/src/cli.js +245 -0
  201. package/backend/src/database.ts +2241 -0
  202. package/backend/src/endpoint.ts +494 -0
  203. package/backend/src/file_watcher.ts +359 -0
  204. package/backend/src/frontend.ts +35 -0
  205. package/backend/src/globals.d.ts +8 -0
  206. package/backend/src/image_endpoint.ts +258 -0
  207. package/backend/src/logger.ts +18 -0
  208. package/backend/src/meta.ts +202 -0
  209. package/backend/src/mutex.ts +51 -0
  210. package/backend/src/payments/paddle.ts +2659 -0
  211. package/backend/src/plugins/browser.ts +188 -0
  212. package/backend/src/plugins/communication.ts +204 -0
  213. package/backend/src/plugins/css.ts +84 -0
  214. package/backend/src/plugins/fonts/Menlo-Bold.ttf +0 -0
  215. package/backend/src/plugins/fonts/Menlo-Regular.ttf +0 -0
  216. package/backend/src/plugins/mail.ts +1720 -0
  217. package/backend/src/plugins/pdf.js +1932 -0
  218. package/backend/src/plugins/thread_monitor.ts +164 -0
  219. package/backend/src/plugins/ts/compiler.ts +1242 -0
  220. package/backend/src/plugins/ts/preprocessing.ts +812 -0
  221. package/backend/src/rate_limit.ts +503 -0
  222. package/backend/src/request.deprc.js +626 -0
  223. package/backend/src/response.deprc.js +354 -0
  224. package/backend/src/server.ts +4149 -0
  225. package/backend/src/splash_screen.ts +192 -0
  226. package/backend/src/status.ts +199 -0
  227. package/backend/src/stream.ts +1070 -0
  228. package/backend/src/users.ts +2077 -0
  229. package/backend/src/utils.ts +359 -0
  230. package/backend/src/view.ts +655 -0
  231. package/backend/src/vinc.dev.js +6 -0
  232. package/backend/src/vinc.ts +6 -0
  233. package/backend/src/volt.js +25 -0
  234. package/backend/tsconfig.cjs.json +29 -0
  235. package/backend/tsconfig.esm.dev.json +34 -0
  236. package/backend/tsconfig.esm.json +30 -0
  237. package/backend/tsconfig.json +2 -0
  238. package/frontend/compile.js +436 -0
  239. package/frontend/dist/elements/base.d.ts +9891 -0
  240. package/frontend/dist/elements/base.js +8818 -0
  241. package/frontend/dist/elements/module.d.ts +16 -0
  242. package/frontend/dist/elements/module.js +178 -0
  243. package/frontend/dist/modules/array.d.ts +37 -0
  244. package/frontend/dist/modules/array.js +284 -0
  245. package/frontend/dist/modules/auth.d.ts +45 -0
  246. package/frontend/dist/modules/auth.js +138 -0
  247. package/frontend/dist/modules/colors.d.ts +26 -0
  248. package/frontend/dist/modules/colors.js +340 -0
  249. package/frontend/dist/modules/compression.d.ts +6 -0
  250. package/frontend/dist/modules/compression.js +999 -0
  251. package/frontend/dist/modules/cookies.d.ts +17 -0
  252. package/frontend/dist/modules/cookies.js +166 -0
  253. package/frontend/dist/modules/date.d.ts +142 -0
  254. package/frontend/dist/modules/date.js +493 -0
  255. package/frontend/dist/modules/events.d.ts +7 -0
  256. package/frontend/dist/modules/events.js +90 -0
  257. package/frontend/dist/modules/google.d.ts +10 -0
  258. package/frontend/dist/modules/google.js +53 -0
  259. package/frontend/dist/modules/meta.d.ts +9 -0
  260. package/frontend/dist/modules/meta.js +45 -0
  261. package/frontend/dist/modules/mutex.d.ts +8 -0
  262. package/frontend/dist/modules/mutex.js +52 -0
  263. package/frontend/dist/modules/number.d.ts +12 -0
  264. package/frontend/dist/modules/number.js +8 -0
  265. package/frontend/dist/modules/object.d.ts +50 -0
  266. package/frontend/dist/modules/object.js +147 -0
  267. package/frontend/dist/modules/paddle.d.ts +1403 -0
  268. package/frontend/dist/modules/paddle.js +2641 -0
  269. package/frontend/dist/modules/scheme.d.ts +207 -0
  270. package/frontend/dist/modules/scheme.js +649 -0
  271. package/frontend/dist/modules/settings.d.ts +3 -0
  272. package/frontend/dist/modules/settings.js +4 -0
  273. package/frontend/dist/modules/statics.d.ts +4 -0
  274. package/frontend/dist/modules/statics.js +45 -0
  275. package/frontend/dist/modules/string.d.ts +163 -0
  276. package/frontend/dist/modules/string.js +291 -0
  277. package/frontend/dist/modules/support.d.ts +18 -0
  278. package/frontend/dist/modules/support.js +102 -0
  279. package/frontend/dist/modules/themes.d.ts +8 -0
  280. package/frontend/dist/modules/themes.js +17 -0
  281. package/frontend/dist/modules/user.d.ts +58 -0
  282. package/frontend/dist/modules/user.js +279 -0
  283. package/frontend/dist/modules/utils.d.ts +58 -0
  284. package/frontend/dist/modules/utils.js +1159 -0
  285. package/frontend/dist/types/gradient.d.ts +12 -0
  286. package/frontend/dist/types/gradient.js +79 -0
  287. package/frontend/dist/ui/border_button.d.ts +177 -0
  288. package/frontend/dist/ui/border_button.js +235 -0
  289. package/frontend/dist/ui/button.d.ts +42 -0
  290. package/frontend/dist/ui/button.js +114 -0
  291. package/frontend/dist/ui/canvas.d.ts +56 -0
  292. package/frontend/dist/ui/canvas.js +411 -0
  293. package/frontend/dist/ui/checkbox.d.ts +72 -0
  294. package/frontend/dist/ui/checkbox.js +277 -0
  295. package/frontend/dist/ui/code.d.ts +232 -0
  296. package/frontend/dist/ui/code.js +977 -0
  297. package/frontend/dist/ui/color.d.ts +1 -0
  298. package/frontend/dist/ui/color.js +110 -0
  299. package/frontend/dist/ui/context_menu.d.ts +30 -0
  300. package/frontend/dist/ui/context_menu.js +211 -0
  301. package/frontend/dist/ui/css.d.ts +10 -0
  302. package/frontend/dist/ui/css.js +44 -0
  303. package/frontend/dist/ui/divider.d.ts +18 -0
  304. package/frontend/dist/ui/divider.js +82 -0
  305. package/frontend/dist/ui/dropdown.d.ts +115 -0
  306. package/frontend/dist/ui/dropdown.js +446 -0
  307. package/frontend/dist/ui/for_each.d.ts +38 -0
  308. package/frontend/dist/ui/for_each.js +97 -0
  309. package/frontend/dist/ui/form.d.ts +25 -0
  310. package/frontend/dist/ui/form.js +227 -0
  311. package/frontend/dist/ui/frame_modes.d.ts +28 -0
  312. package/frontend/dist/ui/frame_modes.js +116 -0
  313. package/frontend/dist/ui/google_map.d.ts +31 -0
  314. package/frontend/dist/ui/google_map.js +111 -0
  315. package/frontend/dist/ui/gradient.d.ts +24 -0
  316. package/frontend/dist/ui/gradient.js +115 -0
  317. package/frontend/dist/ui/image.d.ts +138 -0
  318. package/frontend/dist/ui/image.js +570 -0
  319. package/frontend/dist/ui/input.d.ts +316 -0
  320. package/frontend/dist/ui/input.js +1187 -0
  321. package/frontend/dist/ui/link.d.ts +39 -0
  322. package/frontend/dist/ui/link.js +146 -0
  323. package/frontend/dist/ui/list.d.ts +33 -0
  324. package/frontend/dist/ui/list.js +161 -0
  325. package/frontend/dist/ui/loader_button.d.ts +108 -0
  326. package/frontend/dist/ui/loader_button.js +207 -0
  327. package/frontend/dist/ui/loaders.d.ts +60 -0
  328. package/frontend/dist/ui/loaders.js +150 -0
  329. package/frontend/dist/ui/popup.d.ts +84 -0
  330. package/frontend/dist/ui/popup.js +331 -0
  331. package/frontend/dist/ui/pseudo.d.ts +16 -0
  332. package/frontend/dist/ui/pseudo.js +81 -0
  333. package/frontend/dist/ui/scroller.d.ts +131 -0
  334. package/frontend/dist/ui/scroller.js +1251 -0
  335. package/frontend/dist/ui/slider.d.ts +35 -0
  336. package/frontend/dist/ui/slider.js +203 -0
  337. package/frontend/dist/ui/spacer.d.ts +20 -0
  338. package/frontend/dist/ui/spacer.js +83 -0
  339. package/frontend/dist/ui/span.d.ts +11 -0
  340. package/frontend/dist/ui/span.js +75 -0
  341. package/frontend/dist/ui/stack.d.ts +123 -0
  342. package/frontend/dist/ui/stack.js +344 -0
  343. package/frontend/dist/ui/steps.d.ts +72 -0
  344. package/frontend/dist/ui/steps.js +306 -0
  345. package/frontend/dist/ui/style.d.ts +12 -0
  346. package/frontend/dist/ui/style.js +78 -0
  347. package/frontend/dist/ui/switch.d.ts +44 -0
  348. package/frontend/dist/ui/switch.js +280 -0
  349. package/frontend/dist/ui/table.d.ts +118 -0
  350. package/frontend/dist/ui/table.js +411 -0
  351. package/frontend/dist/ui/tabs.d.ts +85 -0
  352. package/frontend/dist/ui/tabs.js +392 -0
  353. package/frontend/dist/ui/text.d.ts +19 -0
  354. package/frontend/dist/ui/text.js +88 -0
  355. package/frontend/dist/ui/theme.d.ts +25 -0
  356. package/frontend/dist/ui/theme.js +237 -0
  357. package/frontend/dist/ui/title.d.ts +36 -0
  358. package/frontend/dist/ui/title.js +127 -0
  359. package/frontend/dist/ui/ui.d.ts +38 -0
  360. package/frontend/dist/ui/ui.js +41 -0
  361. package/frontend/dist/ui/view.d.ts +25 -0
  362. package/frontend/dist/ui/view.js +93 -0
  363. package/frontend/dist/volt.d.ts +22 -0
  364. package/frontend/dist/volt.js +27 -0
  365. package/frontend/exports.json +1340 -0
  366. package/frontend/src/css/adyen.css +92 -0
  367. package/frontend/src/css/volt.css +65 -0
  368. package/frontend/src/elements/base.ts +16790 -0
  369. package/frontend/src/elements/module.ts +184 -0
  370. package/frontend/src/elements/types.d.ts +155 -0
  371. package/frontend/src/modules/array.ts +366 -0
  372. package/frontend/src/modules/auth.ts +188 -0
  373. package/frontend/src/modules/colors.ts +449 -0
  374. package/frontend/src/modules/compression.ts +67 -0
  375. package/frontend/src/modules/cookies.ts +182 -0
  376. package/frontend/src/modules/date.js +535 -0
  377. package/frontend/src/modules/date.ts +583 -0
  378. package/frontend/src/modules/events.ts +96 -0
  379. package/frontend/src/modules/google.ts +60 -0
  380. package/frontend/src/modules/meta.ts +59 -0
  381. package/frontend/src/modules/mutex.ts +59 -0
  382. package/frontend/src/modules/number.ts +20 -0
  383. package/frontend/src/modules/object.ts +212 -0
  384. package/frontend/src/modules/paddle.ts +2990 -0
  385. package/frontend/src/modules/scheme.ts +740 -0
  386. package/frontend/src/modules/settings.ts +5 -0
  387. package/frontend/src/modules/statics.ts +47 -0
  388. package/frontend/src/modules/string.ts +500 -0
  389. package/frontend/src/modules/support.ts +118 -0
  390. package/frontend/src/modules/themes.ts +24 -0
  391. package/frontend/src/modules/user.ts +321 -0
  392. package/frontend/src/modules/utils.ts +1260 -0
  393. package/frontend/src/static/admin/admin.png +0 -0
  394. package/frontend/src/static/admin/password.webp +0 -0
  395. package/frontend/src/static/icons/copy.webp +0 -0
  396. package/frontend/src/static/payments/arrow.long.webp +0 -0
  397. package/frontend/src/static/payments/arrow.long2.webp +0 -0
  398. package/frontend/src/static/payments/cancelled.webp +0 -0
  399. package/frontend/src/static/payments/check.sign.webp +0 -0
  400. package/frontend/src/static/payments/check.webp +0 -0
  401. package/frontend/src/static/payments/close.webp +0 -0
  402. package/frontend/src/static/payments/error.webp +0 -0
  403. package/frontend/src/static/payments/exclamation.webp +0 -0
  404. package/frontend/src/static/payments/minus.webp +0 -0
  405. package/frontend/src/static/payments/party.webp +0 -0
  406. package/frontend/src/static/payments/plus.webp +0 -0
  407. package/frontend/src/static/payments/shopping_cart.webp +0 -0
  408. package/frontend/src/static/payments/trash.webp +0 -0
  409. package/frontend/src/types/global.d.ts +4 -0
  410. package/frontend/src/types/gradient.ts +87 -0
  411. package/frontend/src/ui/any_element.d.ts +5 -0
  412. package/frontend/src/ui/border_button.ts +320 -0
  413. package/frontend/src/ui/button.ts +62 -0
  414. package/frontend/src/ui/canvas.ts +431 -0
  415. package/frontend/src/ui/checkbox.ts +284 -0
  416. package/frontend/src/ui/code.ts +1049 -0
  417. package/frontend/src/ui/color.ts +117 -0
  418. package/frontend/src/ui/context_menu.ts +194 -0
  419. package/frontend/src/ui/css.ts +57 -0
  420. package/frontend/src/ui/divider.ts +28 -0
  421. package/frontend/src/ui/dropdown.ts +503 -0
  422. package/frontend/src/ui/for_each.ts +71 -0
  423. package/frontend/src/ui/form.ts +208 -0
  424. package/frontend/src/ui/frame_modes.ts +140 -0
  425. package/frontend/src/ui/google_map.ts +70 -0
  426. package/frontend/src/ui/gradient.ts +73 -0
  427. package/frontend/src/ui/image.ts +587 -0
  428. package/frontend/src/ui/input.ts +1284 -0
  429. package/frontend/src/ui/link.ts +77 -0
  430. package/frontend/src/ui/list.ts +88 -0
  431. package/frontend/src/ui/loader_button.ts +192 -0
  432. package/frontend/src/ui/loaders.ts +126 -0
  433. package/frontend/src/ui/popup.ts +370 -0
  434. package/frontend/src/ui/pseudo.ts +33 -0
  435. package/frontend/src/ui/scroller.ts +1324 -0
  436. package/frontend/src/ui/slider.ts +215 -0
  437. package/frontend/src/ui/spacer.ts +29 -0
  438. package/frontend/src/ui/span.ts +23 -0
  439. package/frontend/src/ui/stack.ts +238 -0
  440. package/frontend/src/ui/steps.ts +334 -0
  441. package/frontend/src/ui/style.ts +26 -0
  442. package/frontend/src/ui/switch.ts +286 -0
  443. package/frontend/src/ui/table.ts +323 -0
  444. package/frontend/src/ui/tabs.ts +441 -0
  445. package/frontend/src/ui/text.ts +38 -0
  446. package/frontend/src/ui/theme.ts +279 -0
  447. package/frontend/src/ui/title.ts +64 -0
  448. package/frontend/src/ui/ui.ts +47 -0
  449. package/frontend/src/ui/view.ts +44 -0
  450. package/frontend/src/volt.ts +31 -0
  451. package/package.json +58 -0
@@ -0,0 +1,334 @@
1
+ /*
2
+ * Author: Daan van den Bergh
3
+ * Copyright: © 2022 - 2024 Daan van den Bergh.
4
+ */
5
+
6
+ // Imports.
7
+ import { Elements, isVElement } from "../elements/module.js"
8
+ import { VStack, VStackElement, HStack, HStackElement } from "./stack"
9
+ import { Divider, DividerElement } from "./divider"
10
+ import { Span } from "./span"
11
+ import { ForEach } from "./for_each"
12
+
13
+ interface ContentObject {
14
+ content: any[];
15
+ title?: string;
16
+ hstack?: boolean;
17
+ side_by_side_width?: number;
18
+ }
19
+
20
+ /* @docs:
21
+ @nav: Frontend
22
+ @chapter: Elements
23
+ @title: Steps
24
+ @descr: Steps element.
25
+ @param:
26
+ @name: content
27
+ @descr: The steps content. By default it should be an array with `Step` objects. However, when one of the items is an array, the `Step` object will automatically be initialized with the array as the `Step.content` attribute.
28
+ @type: Step[]
29
+ @attributes_type: Step
30
+ @attr:
31
+ @name: title
32
+ @descr: The step title.
33
+ @type: string
34
+ @attr:
35
+ @name: content / children
36
+ @descr: The step children.
37
+ @type: node[]
38
+ @attr:
39
+ @name: hstack
40
+ @descr: Flag to use a hstack instead of vstack as the children container.
41
+ @type: boolean
42
+ @default: false
43
+ @attr:
44
+ @name: side_by_side_width
45
+ @descr: The minimum pixels width of the content container (not the full screen) to show content side by side when `hstack` is enabled.
46
+ @type: number
47
+ @param:
48
+ @name: spacing
49
+ @descr: Spacing between the step content.
50
+ @type: string, number
51
+ @default: "1.25em"
52
+ */
53
+ @Elements.register
54
+ export class StepsElement extends VStackElement {
55
+
56
+ static default_style = {
57
+ ...VStackElement.default_style,
58
+ "--steps-tint": "gray",
59
+ "--steps-tint-opac": 1,
60
+ "--steps-step-bg": "gray",
61
+ "--steps-step-border": "gray",
62
+ "--steps-step-border-radius": "50%",
63
+ "--steps-div-bg": "gray",
64
+ };
65
+
66
+ public _tint: string;
67
+ public _tint_opac: number;
68
+ public _step_bg: string;
69
+ public _step_border: string;
70
+ public _step_border_radius: string;
71
+ public _div_bg: string;
72
+ public _step_nr_nodes: (VStackElement & { bg: VStackElement }) [] = [];
73
+ public _step_nodes: HStackElement[] = [];
74
+ public _div_nodes: DividerElement[] = [];
75
+ public _content_nodes: (HStackElement | VStackElement)[] = [];
76
+
77
+ // Constructor.
78
+ constructor({
79
+ content = [],
80
+ spacing = "1.25em",
81
+ }: {
82
+ content: any[] | any[][] | ContentObject[],
83
+ spacing?: string | number,
84
+ }) {
85
+
86
+ // Inherit.
87
+ super();
88
+ this._init_derived({
89
+ derived: StepsElement,
90
+ });
91
+
92
+ // Assign single array argument to content.
93
+ if (Array.isArray(arguments[0])) {
94
+ content = arguments[0];
95
+ }
96
+ for (let i = 0; i < content.length; i++) {
97
+ if (Array.isArray(content[i]) || isVElement(content[i])) {
98
+ content[i] = {
99
+ content: content[i],
100
+ } as ContentObject;
101
+ }
102
+ }
103
+
104
+ // Attributes.
105
+ this._tint = StepsElement.default_style["--steps-tint"];
106
+ this._tint_opac = parseFloat(StepsElement.default_style["--steps-tint-opac"] as any);
107
+ this._step_bg = StepsElement.default_style["--steps-step-bg"];
108
+ this._step_border = StepsElement.default_style["--steps-step-border"];
109
+ this._step_border_radius = StepsElement.default_style["--steps-step-border-radius"];
110
+ this._div_bg = StepsElement.default_style["--steps-div-bg"];
111
+
112
+ // Build.
113
+ this.append(ForEach(content, (item, index, is_last) => {
114
+
115
+ // Build divider.
116
+ const divider = is_last ? null : Divider()
117
+ .margin(0)
118
+ .font_size("0.7em") // for relative distances.
119
+ .position("2em", null, 0, "0.875em")
120
+ .frame(1.5, `calc(100% + ${spacing} - 0.6em)`)
121
+ .background(this._div_bg)
122
+ .z_index(0)
123
+ .exec(e => this._div_nodes.append(e))
124
+
125
+ // Build content.
126
+ const content = (item.hstack ? HStack() : VStack())
127
+ .z_index(1)
128
+ // .width(100%)
129
+ .stretch(true)
130
+ .overflow("hidden"); // required otherwise when inside Tabs will mess up.
131
+ if (typeof item.title === "string") {
132
+ content.append(
133
+ Span(item.title)
134
+ .color("inherit")
135
+ .display("block") // line wrap after.
136
+ .margin_bottom("0.5em")
137
+ .font_weight(500)
138
+ .line_height("1.6em"),
139
+ )
140
+ }
141
+ if (item.content) {
142
+ content.append(item.content);
143
+ } else if (item.children) {
144
+ content.append(item.children);
145
+ }
146
+ if (typeof item.side_by_side_width == "number") {
147
+ content.on_resize_rule(
148
+ () => content.clientWidth >= item.side_by_side_width,
149
+ () => content.flex_direction("row"),
150
+ () => content.flex_direction("column"),
151
+ )
152
+ }
153
+ this._content_nodes.append(content);
154
+
155
+ // Append.
156
+ let step_nr;
157
+ const element = HStack(
158
+ step_nr = VStack<{ bg: VStackElement }>(
159
+ VStack() // to support opacity on background only.
160
+ .assign_to_parent_as("bg")
161
+ .background(this._step_bg)
162
+ .transition("background 300ms ease-in-out")
163
+ .position(0, 0, 0, 0)
164
+ .z_index(0),
165
+ Span((index + 1).toString())
166
+ .z_index(1),
167
+ )
168
+ .position("relative")
169
+ .overflow("hidden")
170
+ .font_size("0.7em")
171
+ .flex_shrink(0)
172
+ .frame("1.8em", "1.8em")
173
+ .margin("0.2em", "1em", null, null)
174
+ // .border_radius(this._step_border_radius)
175
+ .border_radius(5)
176
+ .border(1, this._step_border)
177
+ .center()
178
+ .center_vertical()
179
+ .z_index(1)
180
+ .exec(e => this._step_nr_nodes.append(e)),
181
+ divider,
182
+ content,
183
+ )
184
+ .fixed_width(100%)
185
+ .margin_top(index > 0 ? spacing : 0)
186
+ .position("relative")
187
+ .exec(e => this._step_nodes.append(e))
188
+ .on_mouse_over(() => step_nr.bg.opacity(this._tint_opac).background(this._tint))
189
+ .on_mouse_out(() => step_nr.bg.opacity(1).background(this._step_bg))
190
+ return element;
191
+ }))
192
+ }
193
+
194
+ // Set default since it inherits another element.
195
+ set_default() : this {
196
+ return super.set_default(StepsElement);
197
+ }
198
+
199
+ // Get the styling attributes.
200
+ styles() : Record<string, string>;
201
+ styles(style_dict: Record<string, any>) : this;
202
+ styles(style_dict?: Record<string, any>) : this | Record<string, string> {
203
+ if (style_dict == null) {
204
+ let styles = super.styles();
205
+ styles["--steps-tint"] = this._tint;
206
+ styles["--steps-step-bg"] = this._step_bg;
207
+ styles["--steps-step-border"] = this._step_border;
208
+ styles["--steps-step-border-radius"] = this._step_border_radius;
209
+ styles["--steps-div-bg"] = this._div_bg;
210
+ return styles;
211
+ } else {
212
+ return super.styles(style_dict);
213
+ }
214
+ }
215
+
216
+ /* @docs:
217
+ @title: Set/Get tint
218
+ @description: Set or get the step number tint color.
219
+ */
220
+ tint() : string;
221
+ tint(value: string) : this;
222
+ tint(value?: string) : this | string {
223
+ if (value == null) { return this._tint; }
224
+ this._tint = value;
225
+ return this;
226
+ }
227
+
228
+ /* @docs:
229
+ @title: Set/Get tint opacity
230
+ @description: Set or get the step number tint opacity.
231
+ */
232
+ tint_opacity() : number;
233
+ tint_opacity(value: number) : this;
234
+ tint_opacity(value?: number) : this | number {
235
+ if (value == null) { return this._tint_opac; }
236
+ this._tint_opac = value;
237
+ return this;
238
+ }
239
+
240
+ /* @docs:
241
+ @title: Set/Get content overflow
242
+ @description: Set or get the step's content overflow.
243
+ */
244
+ content_overflow() : string;
245
+ content_overflow(value: string) : this;
246
+ content_overflow(value?: string) : this | string {
247
+ if (value == null) { return this._content_nodes[0].overflow(); }
248
+ this._content_nodes.iterate(node => {
249
+ node.overflow(value);
250
+ })
251
+ return this;
252
+ }
253
+
254
+ /* @docs:
255
+ @title: Set divider background
256
+ @description: Set the divider background between the steps.
257
+ */
258
+ divider_background() : string;
259
+ divider_background(value: string) : this;
260
+ divider_background(value?: string) : this | string {
261
+ if (value == null) { return this._div_bg; }
262
+ this._div_bg = value;
263
+ this._div_nodes.iterate(node => {
264
+ node.background(value);
265
+ })
266
+ return this;
267
+ }
268
+
269
+ /* @docs:
270
+ @title: Set step number background
271
+ @description: Set or get the step number background.
272
+ */
273
+ step_number_background() : string;
274
+ step_number_background(value: string) : this;
275
+ step_number_background(value?: string) : this | string {
276
+ if (value == null) { return this._step_bg; }
277
+ this._step_bg = value;
278
+ this._step_nr_nodes.iterate(node => {
279
+ node.bg.background(value);
280
+ })
281
+ return this;
282
+ }
283
+
284
+ /* @docs:
285
+ @title: Set step number border color
286
+ @description: Set or get the step number border color.
287
+ */
288
+ step_number_border_color() : string;
289
+ step_number_border_color(value: string) : this;
290
+ step_number_border_color(value?: string) : this | string {
291
+ if (value == null) { return this._step_border; }
292
+ this._step_border = value;
293
+ this._step_nr_nodes.iterate(node => {
294
+ node.border_color(value);
295
+ })
296
+ return this;
297
+ }
298
+
299
+ /* @docs:
300
+ @title: Set step number border radius
301
+ @description: Set or get the step number border radius.
302
+ */
303
+ step_number_border_radius() : string;
304
+ step_number_border_radius(value: string) : this;
305
+ step_number_border_radius(value?: string) : this | string {
306
+ if (value == null) { return this._step_border_radius; }
307
+ this._step_border_radius = value;
308
+ this._step_nr_nodes.iterate(node => {
309
+ node.border_radius(value);
310
+ })
311
+ return this;
312
+ }
313
+
314
+ /* @docs:
315
+ @title: Iterate step number nodes
316
+ @description: Iterate the step number nodes. When the callback returns any non null value the iteration will be stopped.
317
+ */
318
+ iterate_step_numbers(callback: (element: VStackElement) => void) {
319
+ this._step_nr_nodes.iterate(node => {callback(node)})
320
+ return this;
321
+ }
322
+
323
+ /* @docs:
324
+ @title: Iterate step nodes
325
+ @description: Iterate the step nodes. When the callback returns any non null value the iteration will be stopped.
326
+ */
327
+ iterate_steps(callback: (element: HStackElement) => void) {
328
+ this._step_nodes.iterate(node => {callback(node)})
329
+ return this;
330
+ }
331
+ }
332
+ export const Steps = Elements.wrapper(StepsElement);
333
+ export const NullSteps = Elements.create_null(StepsElement);
334
+ declare module './any_element.d.ts' { interface AnyElementMap { StepsElement: StepsElement }}
@@ -0,0 +1,26 @@
1
+ /*
2
+ * Author: Daan van den Bergh
3
+ * Copyright: © 2022 - 2024 Daan van den Bergh.
4
+ */
5
+
6
+ // Imports.
7
+ import { Elements, VHTMLElement } from "../elements/module.js"
8
+
9
+ // Span.
10
+ @Elements.register
11
+ export class StyleElement extends VHTMLElement {
12
+ static element_tag = "section";
13
+ constructor(style?: CSSStyleDeclaration) {
14
+
15
+ // Initialize base class.
16
+ super({ derived: StyleElement });
17
+
18
+ // Set style.
19
+ if (style != null) {
20
+ this.styles(style);
21
+ }
22
+ }
23
+ }
24
+ export const Style = Elements.wrapper(StyleElement);
25
+ export const NullStyle = Elements.create_null(StyleElement);
26
+ declare module './any_element.d.ts' { interface AnyElementMap { StyleElement: StyleElement }}
@@ -0,0 +1,286 @@
1
+ /*
2
+ * Author: Daan van den Bergh
3
+ * Copyright: © 2022 - 2024 Daan van den Bergh.
4
+ */
5
+
6
+ // Imports.
7
+ import { Elements } from "../elements/module.js"
8
+ import { VStack, VStackElement } from "./stack"
9
+
10
+ // Switch button.
11
+ @Elements.register
12
+ export class SwitchElement extends VStackElement {
13
+
14
+ // Macros.
15
+ #macro OnChangeCallback ((element: SwitchElement, enabled: boolean) => void)
16
+
17
+ // Attributes.
18
+ public on_change_handler: OnChangeCallback;
19
+ public _enabled: boolean;
20
+ public _enabled_color: string;
21
+ public _disabled_color: string
22
+ public enabled: boolean;
23
+ public slider: VStackElement;
24
+ public button: VStackElement;
25
+ public _value_timeout: any;
26
+
27
+ // Constructor.
28
+ constructor(enabled: boolean = false) {
29
+
30
+ // Initialize base class.
31
+ super();
32
+ this._init_derived({ derived: SwitchElement, });
33
+
34
+ // The slider background.
35
+ this.slider = VStack()
36
+ .background("white")
37
+ // .border(`1px solid ${SETTINGS.theme.lightest_widget_background}90`)
38
+ .frame(35, 12.5)
39
+ .border_radius(10)
40
+ .overflow("visible")
41
+ .box_shadow(`0px 0px 2px #00000030`)
42
+ .parent(this)
43
+
44
+ // The button.
45
+ this.button = VStack()
46
+ .border_radius("50%")
47
+ .frame(17.5, 17.5)
48
+ .background("gray")
49
+ .position("absolute")
50
+ .left(0)
51
+ .transition("left 0.15s ease-out")
52
+ .box_shadow(`0px 0px 2px #00000060`)
53
+ .on_click(() => this.toggle())
54
+ .parent(this)
55
+
56
+ // Append.
57
+ this.append(this.slider, this.button);
58
+
59
+ // Styling.
60
+ this.position("relative")
61
+ this.width(35)
62
+ this.flex_shrink(0)
63
+ this.center_vertical()
64
+
65
+ // On change handler.
66
+ this.on_change_handler = (a, b) => {};
67
+
68
+ // Attributes.
69
+ this._enabled = enabled;
70
+ this._enabled_color = "green";
71
+ this._disabled_color = "gray";
72
+
73
+ // Alias func.
74
+ // @ts-ignore
75
+ this.enabled = this.value;
76
+
77
+ // Set enabled value.
78
+ this.value(enabled, false);
79
+
80
+ // Set default theme update.
81
+ this.on_theme_update(() => {
82
+ this.value(this._enabled, false);
83
+ })
84
+ }
85
+
86
+ // Set default since it inherits an element.
87
+ set_default() : this {
88
+ return super.set_default(SwitchElement);
89
+ }
90
+
91
+ // Set width.
92
+ width() : number | string;
93
+ width(value: number | string) : this;
94
+ width(value?: number | string) : this | number | string {
95
+ if (value == null) {
96
+ return super.width();
97
+ }
98
+ super.width(value);
99
+ this.slider.width(value);
100
+ return this;
101
+ }
102
+ min_width() : number | string;
103
+ min_width(value: number | string) : this;
104
+ min_width(value?: number | string) : this | number | string {
105
+ if (value == null) {
106
+ return super.min_width();
107
+ }
108
+ super.min_width(value);
109
+ this.slider.min_width(value);
110
+ return this;
111
+ }
112
+ max_width() : number | string;
113
+ max_width(value: number | string) : this;
114
+ max_width(value?: number | string) : this | number | string {
115
+ if (value == null) {
116
+ return super.max_width();
117
+ }
118
+ super.max_width(value);
119
+ this.slider.max_width(value);
120
+ return this;
121
+ }
122
+
123
+ // Set width.
124
+ height() : number | string;
125
+ height(value: number | string) : this;
126
+ height(value?: number | string) : this | number | string {
127
+ if (value == null) {
128
+ return super.height();
129
+ }
130
+ super.height(value);
131
+ this.slider.height(typeof value === "string" ? "50%" : value / 2);
132
+ return this;
133
+ }
134
+ min_height() : number | string;
135
+ min_height(value: number | string) : this;
136
+ min_height(value?: number | string) : this | number | string {
137
+ if (value == null) {
138
+ return super.min_height();
139
+ }
140
+ super.min_height(value);
141
+ this.slider.min_height(typeof value === "string" ? "50%" : value / 2);
142
+ return this;
143
+ }
144
+ max_height() : number | string;
145
+ max_height(value: number | string) : this;
146
+ max_height(value?: number | string) : this | number | string {
147
+ if (value == null) {
148
+ return super.max_height();
149
+ }
150
+ super.max_height(value);
151
+ this.slider.max_height(typeof value === "string" ? "50%" : value / 2);
152
+ return this;
153
+ }
154
+
155
+ // Frame.
156
+ frame(width?: number | string, height?: number | string) : this {
157
+ if (width != null) {
158
+ this.width(width);
159
+ }
160
+ if (height != null) {
161
+ this.height(height);
162
+ }
163
+ return this;
164
+ }
165
+ min_frame(width?: number | string, height?: number | string) : this {
166
+ if (width != null) {
167
+ this.min_width(width);
168
+ }
169
+ if (height != null) {
170
+ this.min_height(height);
171
+ }
172
+ return this;
173
+ }
174
+ max_frame(width?: number | string, height?: number | string) : this {
175
+ if (width != null) {
176
+ this.max_width(width);
177
+ }
178
+ if (height != null) {
179
+ this.max_height(height);
180
+ }
181
+ return this;
182
+ }
183
+
184
+ // Get or set the enabled color.
185
+ enabled_color() : string
186
+ enabled_color(value: string) : this
187
+ enabled_color(value?: string) : this | string {
188
+ if (value == null) {
189
+ return this._enabled_color;
190
+ }
191
+ this._enabled_color = value;
192
+ return this;
193
+ }
194
+
195
+ // Get or set the disabled color.
196
+ disabled_color() : string
197
+ disabled_color(value: string) : this
198
+ disabled_color(value?: string) : this | string {
199
+ if (value == null) {
200
+ return this._disabled_color;
201
+ }
202
+ this._disabled_color = value;
203
+ return this;
204
+ }
205
+
206
+ // Toggle the value.
207
+ toggle() : this {
208
+ return this.value(!this._enabled);
209
+ }
210
+
211
+ // Get or set the enabled boolean value.
212
+ // @ts-ignore
213
+ value() : boolean;
214
+ // @ts-ignore
215
+ value(value: boolean, animate: boolean = true) : this;
216
+ // @ts-ignore
217
+ value(value?: boolean, animate: boolean = true) : this | boolean {
218
+ if (value == null) {
219
+ return this._enabled;
220
+ }
221
+ else if (value === true) {
222
+ this._enabled = value;
223
+ if (animate) {
224
+ clearTimeout(this._value_timeout);
225
+ this._value_timeout = setTimeout(() => this.button.background(this._enabled_color), 140);
226
+ } else {
227
+ this.button.background(this._enabled_color);
228
+ }
229
+ const slider_width = this.slider.getBoundingClientRect().width;
230
+ const button_width = this.button.getBoundingClientRect().width;
231
+ if (slider_width && button_width) {
232
+ this.button.style.left = `${slider_width - button_width}px`;
233
+ this.button.style.right = "auto";
234
+ } else {
235
+ this.button.style.left = "auto";
236
+ this.button.style.right = "0px";
237
+ }
238
+ this.on_change_handler(this, this._enabled);
239
+ }
240
+ else if (value === false) {
241
+ this._enabled = value;
242
+ if (animate) {
243
+ clearTimeout(this._value_timeout);
244
+ this._value_timeout = setTimeout(() => this.button.background(this._disabled_color), 140);
245
+ } else {
246
+ this.button.background(this._disabled_color);
247
+ }
248
+ const slider_width = this.slider.getBoundingClientRect().width;
249
+ const button_width = this.button.getBoundingClientRect().width;
250
+ if (slider_width && button_width) {
251
+ if (this.button.style.left === "auto") { // otherwise the transition does not show when it was initialized as true.
252
+ this.button.style.left = `${slider_width - button_width}px`;
253
+ setTimeout(() => {
254
+ this.button.style.right = "auto";
255
+ this.button.style.left = "0px";
256
+ }, 10)
257
+ } else {
258
+ this.button.style.right = "auto";
259
+ this.button.style.left = "0px";
260
+ }
261
+ } else {
262
+ this.button.style.left = "0px";
263
+ this.button.style.right = "auto";
264
+ }
265
+ this.on_change_handler(this, this._enabled);
266
+ }
267
+ return this;
268
+ }
269
+
270
+ // Set the on change handler.
271
+ // @ts-expect-error
272
+ on_change() : OnChangeCallback;
273
+ // @ts-expect-error
274
+ on_change(handler: OnChangeCallback) : this;
275
+ // @ts-expect-error
276
+ on_change(handler?: OnChangeCallback) : OnChangeCallback | this {
277
+ if (handler == null) {
278
+ return this.on_change_handler;
279
+ }
280
+ this.on_change_handler = handler;
281
+ return this;
282
+ }
283
+ }
284
+ export const Switch = Elements.wrapper(SwitchElement);
285
+ export const NullSwitch = Elements.create_null(SwitchElement);
286
+ declare module './any_element.d.ts' { interface AnyElementMap { SwitchElement: SwitchElement }}