@vandenberghinc/volt 1.1.26 → 1.1.28

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 (502) hide show
  1. package/backend/dist/cjs/{blacklist.d.ts → backend/src/blacklist.d.ts} +5 -3
  2. package/backend/dist/cjs/{blacklist.js → backend/src/blacklist.js} +8 -5
  3. package/backend/dist/cjs/{cli.js → backend/src/cli.js} +29 -47
  4. package/backend/dist/cjs/backend/src/database/collection.d.ts +1543 -0
  5. package/backend/dist/cjs/backend/src/database/collection.js +3042 -0
  6. package/backend/dist/cjs/backend/src/database/database.d.ts +66 -0
  7. package/backend/dist/cjs/{database → backend/src/database}/database.js +48 -43
  8. package/backend/dist/cjs/backend/src/database/filters/filters.d.ts +6 -0
  9. package/backend/dist/cjs/backend/src/database/filters/filters.js +15 -0
  10. package/backend/dist/cjs/backend/src/database/filters/strict_filter.d.ts +223 -0
  11. package/backend/dist/cjs/backend/src/database/filters/strict_filter.js +15 -0
  12. package/backend/dist/cjs/backend/src/database/filters/strict_filter_test.js +443 -0
  13. package/backend/dist/cjs/backend/src/database/filters/strict_filter_test_v0.js +15 -0
  14. package/backend/dist/cjs/backend/src/database/filters/strict_filter_v0.d.ts +50 -0
  15. package/backend/dist/cjs/backend/src/database/filters/strict_filter_v0.js +15 -0
  16. package/backend/dist/cjs/backend/src/database/filters/strict_filter_v1.d.ts +76 -0
  17. package/backend/dist/cjs/backend/src/database/filters/strict_filter_v1.js +15 -0
  18. package/backend/dist/cjs/backend/src/database/filters/strict_filter_v2.d.ts +75 -0
  19. package/backend/dist/cjs/backend/src/database/filters/strict_filter_v2.js +15 -0
  20. package/backend/dist/cjs/backend/src/database/filters/strict_filter_v3.d.ts +219 -0
  21. package/backend/dist/cjs/backend/src/database/filters/strict_filter_v3.js +15 -0
  22. package/backend/dist/cjs/backend/src/database/filters/strict_update_filter.d.ts +165 -0
  23. package/backend/dist/cjs/backend/src/database/filters/strict_update_filter.js +15 -0
  24. package/backend/dist/cjs/backend/src/database/filters/strict_update_filter_test.d.ts +5 -0
  25. package/backend/dist/cjs/backend/src/database/filters/strict_update_filter_test.js +355 -0
  26. package/backend/dist/cjs/backend/src/database/flatten.d.ts +75 -0
  27. package/backend/dist/cjs/{logger.js → backend/src/database/flatten.js} +18 -7
  28. package/backend/dist/cjs/backend/src/database/flatten_test.js +175 -0
  29. package/backend/dist/cjs/backend/src/database/quota/quota.d.ts +461 -0
  30. package/backend/dist/cjs/backend/src/database/quota/quota.js +1014 -0
  31. package/backend/dist/cjs/backend/src/database/quota/quota_v1.d.ts +534 -0
  32. package/backend/dist/cjs/backend/src/database/quota/quota_v1.js +1087 -0
  33. package/backend/dist/cjs/backend/src/database/quota/safe_int.d.ts +293 -0
  34. package/backend/dist/cjs/backend/src/database/quota/safe_int.js +573 -0
  35. package/backend/dist/{esm → cjs/backend/src}/endpoint.d.ts +69 -46
  36. package/backend/dist/cjs/{endpoint.js → backend/src/endpoint.js} +87 -101
  37. package/backend/dist/cjs/backend/src/errors/index.d.ts +7 -0
  38. package/backend/dist/cjs/backend/src/errors/index.js +25 -0
  39. package/backend/dist/{esm/utils.d.ts → cjs/backend/src/errors/internal_external.d.ts} +14 -22
  40. package/backend/dist/cjs/backend/src/errors/internal_external.js +85 -0
  41. package/backend/dist/cjs/backend/src/errors/invalid_usage_error.d.ts +38 -0
  42. package/backend/dist/cjs/{mutex.js → backend/src/errors/invalid_usage_error.js} +20 -37
  43. package/backend/dist/cjs/backend/src/errors/system_error.d.ts +230 -0
  44. package/backend/dist/cjs/backend/src/errors/system_error.js +393 -0
  45. package/backend/dist/cjs/backend/src/events.d.ts +54 -0
  46. package/backend/dist/cjs/backend/src/events.js +15 -0
  47. package/backend/dist/cjs/{frontend.js → backend/src/frontend.js} +1 -1
  48. package/backend/dist/cjs/{image_endpoint.d.ts → backend/src/image_endpoint.d.ts} +16 -1
  49. package/backend/dist/cjs/{image_endpoint.js → backend/src/image_endpoint.js} +3 -5
  50. package/backend/dist/cjs/backend/src/logger.d.ts +5 -0
  51. package/backend/dist/cjs/backend/src/logger.js +15 -0
  52. package/backend/dist/cjs/backend/src/meta.d.ts +64 -0
  53. package/backend/dist/cjs/{meta.js → backend/src/meta.js} +9 -12
  54. package/backend/dist/cjs/backend/src/payments/paddle.d.ts +326 -0
  55. package/backend/dist/cjs/{payments → backend/src/payments}/paddle.js +377 -327
  56. package/backend/dist/cjs/backend/src/plugins/browser.d.ts +1 -0
  57. package/backend/dist/cjs/backend/src/plugins/browser.js +15 -0
  58. package/backend/dist/cjs/backend/src/plugins/mail/mail.d.ts +248 -0
  59. package/backend/dist/cjs/backend/src/plugins/mail/mail.js +379 -0
  60. package/backend/dist/{esm → cjs/backend/src}/plugins/mail/ui.d.ts +23 -0
  61. package/backend/dist/cjs/backend/src/plugins/pdf.d.ts +1 -0
  62. package/backend/dist/cjs/backend/src/rate_limit.d.ts +145 -0
  63. package/backend/dist/cjs/backend/src/rate_limit.js +549 -0
  64. package/backend/dist/cjs/{route.d.ts → backend/src/route.d.ts} +3 -10
  65. package/backend/dist/cjs/{route.js → backend/src/route.js} +23 -21
  66. package/backend/dist/cjs/backend/src/server.d.ts +485 -0
  67. package/backend/dist/cjs/{server.js → backend/src/server.js} +688 -873
  68. package/backend/dist/cjs/backend/src/splash_screen.d.ts +80 -0
  69. package/backend/dist/cjs/{splash_screen.js → backend/src/splash_screen.js} +24 -3
  70. package/backend/dist/cjs/backend/src/status.d.ts +74 -0
  71. package/backend/dist/cjs/{status.js → backend/src/status.js} +64 -64
  72. package/backend/dist/cjs/backend/src/stream.d.ts +376 -0
  73. package/backend/dist/cjs/{stream.js → backend/src/stream.js} +299 -276
  74. package/backend/dist/cjs/backend/src/users.d.ts +807 -0
  75. package/backend/dist/cjs/backend/src/users.js +1971 -0
  76. package/backend/dist/cjs/backend/src/utils.d.ts +16 -0
  77. package/backend/dist/cjs/{utils.js → backend/src/utils.js} +14 -77
  78. package/backend/dist/{esm → cjs/backend/src}/view.d.ts +33 -11
  79. package/backend/dist/cjs/backend/src/view.js +508 -0
  80. package/backend/dist/{esm → cjs/backend/src}/volt.d.ts +10 -1
  81. package/backend/dist/cjs/{volt.js → backend/src/volt.js} +8 -5
  82. package/backend/dist/cjs/frontend/src/modules/request.d.ts +70 -0
  83. package/backend/dist/cjs/frontend/src/modules/request.js +99 -0
  84. package/backend/dist/esm/{blacklist.d.ts → backend/src/blacklist.d.ts} +5 -3
  85. package/backend/dist/esm/{blacklist.js → backend/src/blacklist.js} +9 -6
  86. package/backend/dist/esm/{cli.js → backend/src/cli.js} +43 -60
  87. package/backend/dist/esm/backend/src/database/collection.d.ts +1543 -0
  88. package/backend/dist/esm/backend/src/database/collection.js +3510 -0
  89. package/backend/dist/esm/backend/src/database/database.d.ts +66 -0
  90. package/backend/dist/esm/{database → backend/src/database}/database.js +62 -103
  91. package/backend/dist/esm/backend/src/database/document.d.ts +1 -0
  92. package/backend/dist/esm/backend/src/database/document.js +558 -0
  93. package/backend/dist/esm/backend/src/database/filters/filters.d.ts +6 -0
  94. package/backend/dist/esm/backend/src/database/filters/filters.js +1 -0
  95. package/backend/dist/esm/backend/src/database/filters/strict_filter.d.ts +223 -0
  96. package/backend/dist/esm/backend/src/database/filters/strict_filter.js +3 -0
  97. package/backend/dist/esm/backend/src/database/filters/strict_filter_test.d.ts +1 -0
  98. package/backend/dist/esm/backend/src/database/filters/strict_filter_test.js +505 -0
  99. package/backend/dist/esm/backend/src/database/filters/strict_filter_test_v0.d.ts +1 -0
  100. package/backend/dist/esm/backend/src/database/filters/strict_filter_test_v0.js +712 -0
  101. package/backend/dist/esm/backend/src/database/filters/strict_filter_v0.d.ts +50 -0
  102. package/backend/dist/esm/backend/src/database/filters/strict_filter_v0.js +5 -0
  103. package/backend/dist/esm/backend/src/database/filters/strict_filter_v1.d.ts +76 -0
  104. package/backend/dist/esm/backend/src/database/filters/strict_filter_v1.js +44 -0
  105. package/backend/dist/esm/backend/src/database/filters/strict_filter_v2.d.ts +75 -0
  106. package/backend/dist/esm/backend/src/database/filters/strict_filter_v2.js +5 -0
  107. package/backend/dist/esm/backend/src/database/filters/strict_filter_v3.d.ts +219 -0
  108. package/backend/dist/esm/backend/src/database/filters/strict_filter_v3.js +1 -0
  109. package/backend/dist/esm/backend/src/database/filters/strict_update_filter.d.ts +165 -0
  110. package/backend/dist/esm/backend/src/database/filters/strict_update_filter.js +5 -0
  111. package/backend/dist/esm/backend/src/database/filters/strict_update_filter_test.d.ts +5 -0
  112. package/backend/dist/esm/backend/src/database/filters/strict_update_filter_test.js +405 -0
  113. package/backend/dist/esm/backend/src/database/flatten.d.ts +75 -0
  114. package/backend/dist/esm/backend/src/database/flatten.js +22 -0
  115. package/backend/dist/esm/backend/src/database/flatten_test.d.ts +1 -0
  116. package/backend/dist/esm/backend/src/database/flatten_test.js +174 -0
  117. package/backend/dist/esm/backend/src/database/quota/quota.d.ts +461 -0
  118. package/backend/dist/esm/backend/src/database/quota/quota.js +1118 -0
  119. package/backend/dist/esm/backend/src/database/quota/quota_v1.d.ts +534 -0
  120. package/backend/dist/esm/backend/src/database/quota/quota_v1.js +1242 -0
  121. package/backend/dist/esm/backend/src/database/quota/safe_int.d.ts +293 -0
  122. package/backend/dist/esm/backend/src/database/quota/safe_int.js +602 -0
  123. package/backend/dist/{cjs → esm/backend/src}/endpoint.d.ts +69 -46
  124. package/backend/dist/esm/{endpoint.js → backend/src/endpoint.js} +136 -127
  125. package/backend/dist/esm/backend/src/errors/index.d.ts +7 -0
  126. package/backend/dist/esm/backend/src/errors/index.js +7 -0
  127. package/backend/dist/{cjs/utils.d.ts → esm/backend/src/errors/internal_external.d.ts} +14 -22
  128. package/backend/dist/esm/backend/src/errors/internal_external.js +70 -0
  129. package/backend/dist/esm/backend/src/errors/invalid_usage_error.d.ts +38 -0
  130. package/backend/dist/esm/backend/src/errors/invalid_usage_error.js +30 -0
  131. package/backend/dist/esm/backend/src/errors/system_error.d.ts +230 -0
  132. package/backend/dist/esm/backend/src/errors/system_error.js +402 -0
  133. package/backend/dist/esm/backend/src/events.d.ts +54 -0
  134. package/backend/dist/esm/backend/src/events.js +5 -0
  135. package/backend/dist/esm/{frontend.js → backend/src/frontend.js} +1 -1
  136. package/backend/dist/esm/{image_endpoint.d.ts → backend/src/image_endpoint.d.ts} +16 -1
  137. package/backend/dist/esm/{image_endpoint.js → backend/src/image_endpoint.js} +16 -20
  138. package/backend/dist/esm/backend/src/logger.d.ts +5 -0
  139. package/backend/dist/esm/backend/src/logger.js +8 -0
  140. package/backend/dist/esm/backend/src/meta.d.ts +64 -0
  141. package/backend/dist/esm/{meta.js → backend/src/meta.js} +15 -54
  142. package/backend/dist/esm/backend/src/payments/paddle.d.ts +326 -0
  143. package/backend/dist/esm/{payments → backend/src/payments}/paddle.js +417 -452
  144. package/backend/dist/esm/backend/src/plugins/browser.d.ts +1 -0
  145. package/backend/dist/esm/backend/src/plugins/browser.js +170 -0
  146. package/backend/dist/esm/backend/src/plugins/mail/mail.d.ts +248 -0
  147. package/backend/dist/esm/backend/src/plugins/mail/mail.js +389 -0
  148. package/backend/dist/{cjs → esm/backend/src}/plugins/mail/ui.d.ts +23 -0
  149. package/backend/dist/esm/{plugins → backend/src/plugins}/mail/ui.js +3 -6
  150. package/backend/dist/esm/backend/src/plugins/pdf.d.ts +1 -0
  151. package/backend/dist/esm/{plugins → backend/src/plugins}/pdf.js +3 -3
  152. package/backend/dist/esm/backend/src/rate_limit.d.ts +145 -0
  153. package/backend/dist/esm/backend/src/rate_limit.js +667 -0
  154. package/backend/dist/esm/{route.d.ts → backend/src/route.d.ts} +3 -10
  155. package/backend/dist/esm/{route.js → backend/src/route.js} +26 -21
  156. package/backend/dist/esm/backend/src/server.d.ts +485 -0
  157. package/backend/dist/esm/{server.js → backend/src/server.js} +891 -1441
  158. package/backend/dist/esm/backend/src/splash_screen.d.ts +80 -0
  159. package/backend/dist/esm/{splash_screen.js → backend/src/splash_screen.js} +42 -55
  160. package/backend/dist/esm/backend/src/status.d.ts +74 -0
  161. package/backend/dist/esm/backend/src/status.js +199 -0
  162. package/backend/dist/esm/backend/src/stream.d.ts +376 -0
  163. package/backend/dist/esm/{stream.js → backend/src/stream.js} +327 -292
  164. package/backend/dist/esm/backend/src/users.d.ts +809 -0
  165. package/backend/dist/esm/backend/src/users.js +2140 -0
  166. package/backend/dist/esm/backend/src/utils.d.ts +16 -0
  167. package/backend/dist/esm/{utils.js → backend/src/utils.js} +20 -81
  168. package/backend/dist/{cjs → esm/backend/src}/view.d.ts +33 -11
  169. package/backend/dist/esm/{view.js → backend/src/view.js} +266 -86
  170. package/backend/dist/{cjs → esm/backend/src}/volt.d.ts +10 -1
  171. package/backend/dist/esm/{volt.js → backend/src/volt.js} +7 -4
  172. package/backend/dist/esm/frontend/src/modules/request.d.ts +70 -0
  173. package/backend/dist/esm/frontend/src/modules/request.js +117 -0
  174. package/frontend/dist/backend/src/database/collection.d.ts +1543 -0
  175. package/frontend/dist/backend/src/database/collection.js +3510 -0
  176. package/frontend/dist/backend/src/database/database.d.ts +66 -0
  177. package/frontend/dist/backend/src/database/database.js +196 -0
  178. package/frontend/dist/backend/src/database/filters/filters.d.ts +6 -0
  179. package/frontend/dist/backend/src/database/filters/filters.js +1 -0
  180. package/frontend/dist/backend/src/database/filters/strict_filter.d.ts +223 -0
  181. package/frontend/dist/backend/src/database/filters/strict_filter.js +3 -0
  182. package/frontend/dist/backend/src/database/filters/strict_update_filter.d.ts +165 -0
  183. package/frontend/dist/backend/src/database/filters/strict_update_filter.js +5 -0
  184. package/frontend/dist/backend/src/database/flatten.d.ts +75 -0
  185. package/frontend/dist/backend/src/database/flatten.js +22 -0
  186. package/frontend/dist/backend/src/endpoint.d.ts +204 -0
  187. package/frontend/dist/backend/src/endpoint.js +570 -0
  188. package/frontend/dist/backend/src/errors/index.d.ts +7 -0
  189. package/frontend/dist/backend/src/errors/index.js +7 -0
  190. package/frontend/dist/backend/src/errors/internal_external.d.ts +38 -0
  191. package/frontend/dist/backend/src/errors/internal_external.js +70 -0
  192. package/frontend/dist/backend/src/errors/invalid_usage_error.d.ts +38 -0
  193. package/frontend/dist/backend/src/errors/invalid_usage_error.js +30 -0
  194. package/frontend/dist/backend/src/errors/system_error.d.ts +230 -0
  195. package/frontend/dist/backend/src/errors/system_error.js +402 -0
  196. package/frontend/dist/backend/src/events.d.ts +54 -0
  197. package/frontend/dist/backend/src/events.js +5 -0
  198. package/frontend/dist/backend/src/frontend.d.ts +11 -0
  199. package/frontend/dist/backend/src/frontend.js +12 -0
  200. package/frontend/dist/backend/src/image_endpoint.d.ts +39 -0
  201. package/frontend/dist/backend/src/image_endpoint.js +202 -0
  202. package/frontend/dist/backend/src/meta.d.ts +64 -0
  203. package/frontend/dist/backend/src/meta.js +110 -0
  204. package/frontend/dist/backend/src/payments/paddle.d.ts +326 -0
  205. package/frontend/dist/backend/src/payments/paddle.js +2256 -0
  206. package/frontend/dist/backend/src/plugins/mail/mail.d.ts +248 -0
  207. package/frontend/dist/backend/src/plugins/mail/mail.js +389 -0
  208. package/{backend/dist/esm/plugins/mail.d.ts → frontend/dist/backend/src/plugins/mail/ui.d.ts} +23 -0
  209. package/{backend/dist/esm/plugins/mail.js → frontend/dist/backend/src/plugins/mail/ui.js} +3 -6
  210. package/frontend/dist/backend/src/rate_limit.d.ts +145 -0
  211. package/frontend/dist/backend/src/rate_limit.js +673 -0
  212. package/frontend/dist/backend/src/route.d.ts +35 -0
  213. package/frontend/dist/backend/src/route.js +212 -0
  214. package/frontend/dist/backend/src/server.d.ts +485 -0
  215. package/frontend/dist/backend/src/server.js +2670 -0
  216. package/frontend/dist/backend/src/splash_screen.d.ts +80 -0
  217. package/frontend/dist/backend/src/splash_screen.js +135 -0
  218. package/frontend/dist/backend/src/status.d.ts +74 -0
  219. package/frontend/dist/backend/src/status.js +199 -0
  220. package/frontend/dist/backend/src/stream.d.ts +376 -0
  221. package/frontend/dist/backend/src/stream.js +1007 -0
  222. package/frontend/dist/backend/src/users.d.ts +807 -0
  223. package/frontend/dist/backend/src/users.js +2118 -0
  224. package/frontend/dist/backend/src/utils.d.ts +16 -0
  225. package/frontend/dist/backend/src/utils.js +241 -0
  226. package/frontend/dist/backend/src/view.d.ts +162 -0
  227. package/frontend/dist/backend/src/view.js +720 -0
  228. package/frontend/dist/frontend/src/elements/base.d.ts +4414 -0
  229. package/frontend/dist/{elements → frontend/src/elements}/base.js +3624 -260
  230. package/frontend/dist/frontend/src/elements/module.d.ts +95 -0
  231. package/frontend/dist/{elements → frontend/src/elements}/module.js +53 -52
  232. package/frontend/dist/frontend/src/elements/types.d.ts +52 -0
  233. package/frontend/dist/frontend/src/elements/types.js +5 -0
  234. package/frontend/dist/frontend/src/modules/attachment.d.ts +126 -0
  235. package/frontend/dist/frontend/src/modules/attachment.js +306 -0
  236. package/frontend/dist/frontend/src/modules/auth.d.ts +44 -0
  237. package/frontend/dist/frontend/src/modules/auth.js +80 -0
  238. package/frontend/dist/{modules → frontend/src/modules}/color.js +2 -2
  239. package/frontend/dist/frontend/src/modules/compression.d.ts +39 -0
  240. package/frontend/dist/frontend/src/modules/compression.js +102 -0
  241. package/frontend/dist/frontend/src/modules/cookies.d.ts +44 -0
  242. package/frontend/dist/frontend/src/modules/cookies.js +143 -0
  243. package/frontend/dist/frontend/src/modules/events.d.ts +31 -0
  244. package/frontend/dist/frontend/src/modules/events.js +74 -0
  245. package/frontend/dist/frontend/src/modules/google.d.ts +23 -0
  246. package/frontend/dist/frontend/src/modules/google.js +52 -0
  247. package/frontend/dist/frontend/src/modules/meta.d.ts +14 -0
  248. package/frontend/dist/{modules → frontend/src/modules}/meta.js +9 -7
  249. package/frontend/dist/{modules → frontend/src/modules}/paddle.d.ts +37 -134
  250. package/frontend/dist/{modules → frontend/src/modules}/paddle.js +620 -568
  251. package/frontend/dist/frontend/src/modules/request.d.ts +70 -0
  252. package/frontend/dist/frontend/src/modules/request.js +117 -0
  253. package/frontend/dist/frontend/src/modules/settings.d.ts +3 -0
  254. package/frontend/dist/frontend/src/modules/settings.js +5 -0
  255. package/frontend/dist/frontend/src/modules/statics.d.ts +21 -0
  256. package/frontend/dist/{modules → frontend/src/modules}/statics.js +15 -18
  257. package/frontend/dist/frontend/src/modules/support.d.ts +30 -0
  258. package/frontend/dist/frontend/src/modules/support.js +53 -0
  259. package/frontend/dist/{modules → frontend/src/modules}/theme.d.ts +67 -0
  260. package/frontend/dist/{modules → frontend/src/modules}/theme.js +68 -38
  261. package/frontend/dist/frontend/src/modules/themes.d.ts +12 -0
  262. package/frontend/dist/frontend/src/modules/themes.js +22 -0
  263. package/frontend/dist/frontend/src/modules/user.d.ts +164 -0
  264. package/frontend/dist/frontend/src/modules/user.js +268 -0
  265. package/frontend/dist/frontend/src/modules/utils.d.ts +176 -0
  266. package/frontend/dist/frontend/src/modules/utils.js +569 -0
  267. package/frontend/dist/frontend/src/types/gradient.d.ts +29 -0
  268. package/frontend/dist/{types → frontend/src/types}/gradient.js +14 -18
  269. package/frontend/dist/frontend/src/ui/border_button.d.ts +94 -0
  270. package/frontend/dist/{ui → frontend/src/ui}/border_button.js +7 -13
  271. package/frontend/dist/frontend/src/ui/button.d.ts +28 -0
  272. package/frontend/dist/{ui → frontend/src/ui}/button.js +21 -12
  273. package/frontend/dist/frontend/src/ui/canvas.d.ts +138 -0
  274. package/frontend/dist/{ui → frontend/src/ui}/canvas.js +88 -55
  275. package/frontend/dist/frontend/src/ui/checkbox.d.ts +74 -0
  276. package/frontend/dist/{ui → frontend/src/ui}/checkbox.js +80 -41
  277. package/frontend/dist/{ui → frontend/src/ui}/code.d.ts +73 -6
  278. package/frontend/dist/{ui → frontend/src/ui}/code.js +55 -52
  279. package/frontend/dist/{ui → frontend/src/ui}/context_menu.d.ts +4 -0
  280. package/frontend/dist/{ui → frontend/src/ui}/context_menu.js +12 -17
  281. package/frontend/dist/{ui → frontend/src/ui}/css.d.ts +4 -0
  282. package/frontend/dist/{ui → frontend/src/ui}/css.js +3 -3
  283. package/frontend/dist/{ui → frontend/src/ui}/divider.d.ts +4 -0
  284. package/frontend/dist/{ui → frontend/src/ui}/divider.js +3 -3
  285. package/frontend/dist/{ui → frontend/src/ui}/dropdown.d.ts +57 -2
  286. package/frontend/dist/{ui → frontend/src/ui}/dropdown.js +87 -94
  287. package/frontend/dist/{ui → frontend/src/ui}/for_each.d.ts +4 -0
  288. package/frontend/dist/{ui → frontend/src/ui}/for_each.js +3 -3
  289. package/frontend/dist/{ui → frontend/src/ui}/form.d.ts +6 -2
  290. package/frontend/dist/{ui → frontend/src/ui}/form.js +10 -7
  291. package/frontend/dist/frontend/src/ui/frame_modes.d.ts +37 -0
  292. package/frontend/dist/{ui → frontend/src/ui}/frame_modes.js +16 -22
  293. package/frontend/dist/{ui → frontend/src/ui}/google_map.d.ts +4 -0
  294. package/frontend/dist/{ui → frontend/src/ui}/google_map.js +4 -4
  295. package/frontend/dist/{ui → frontend/src/ui}/gradient.d.ts +4 -0
  296. package/frontend/dist/{ui → frontend/src/ui}/gradient.js +3 -3
  297. package/frontend/dist/{ui → frontend/src/ui}/image.d.ts +4 -0
  298. package/frontend/dist/{ui → frontend/src/ui}/image.js +5 -5
  299. package/frontend/dist/frontend/src/ui/input.d.ts +392 -0
  300. package/frontend/dist/{ui → frontend/src/ui}/input.js +346 -360
  301. package/frontend/dist/{ui → frontend/src/ui}/link.d.ts +4 -0
  302. package/frontend/dist/{ui → frontend/src/ui}/link.js +3 -3
  303. package/frontend/dist/{ui → frontend/src/ui}/list.d.ts +4 -0
  304. package/frontend/dist/{ui → frontend/src/ui}/list.js +12 -6
  305. package/frontend/dist/frontend/src/ui/loader_button.d.ts +80 -0
  306. package/frontend/dist/{ui → frontend/src/ui}/loader_button.js +35 -47
  307. package/frontend/dist/frontend/src/ui/loaders.d.ts +57 -0
  308. package/frontend/dist/{ui → frontend/src/ui}/loaders.js +11 -11
  309. package/frontend/dist/{ui → frontend/src/ui}/popup.d.ts +11 -6
  310. package/frontend/dist/{ui → frontend/src/ui}/popup.js +32 -18
  311. package/frontend/dist/frontend/src/ui/pseudo.d.ts +44 -0
  312. package/frontend/dist/{ui → frontend/src/ui}/pseudo.js +84 -8
  313. package/frontend/dist/{ui → frontend/src/ui}/scroller.d.ts +14 -2
  314. package/frontend/dist/{ui → frontend/src/ui}/scroller.js +37 -43
  315. package/frontend/dist/{ui → frontend/src/ui}/slider.d.ts +5 -1
  316. package/frontend/dist/{ui → frontend/src/ui}/slider.js +4 -4
  317. package/frontend/dist/{ui → frontend/src/ui}/spacer.d.ts +4 -0
  318. package/frontend/dist/{ui → frontend/src/ui}/spacer.js +3 -3
  319. package/frontend/dist/{ui → frontend/src/ui}/span.d.ts +4 -0
  320. package/frontend/dist/{ui → frontend/src/ui}/span.js +3 -3
  321. package/frontend/dist/{ui → frontend/src/ui}/stack.d.ts +4 -0
  322. package/frontend/dist/{ui → frontend/src/ui}/stack.js +3 -9
  323. package/frontend/dist/frontend/src/ui/steps.d.ts +131 -0
  324. package/frontend/dist/{ui → frontend/src/ui}/steps.js +30 -45
  325. package/frontend/dist/{ui → frontend/src/ui}/style.d.ts +4 -0
  326. package/frontend/dist/{ui → frontend/src/ui}/style.js +3 -3
  327. package/frontend/dist/{ui → frontend/src/ui}/switch.d.ts +5 -1
  328. package/frontend/dist/{ui → frontend/src/ui}/switch.js +4 -4
  329. package/frontend/dist/{ui → frontend/src/ui}/table.d.ts +4 -0
  330. package/frontend/dist/{ui → frontend/src/ui}/table.js +6 -6
  331. package/frontend/dist/{ui → frontend/src/ui}/tabs.d.ts +45 -3
  332. package/frontend/dist/{ui → frontend/src/ui}/tabs.js +65 -40
  333. package/frontend/dist/{ui → frontend/src/ui}/text.d.ts +4 -0
  334. package/frontend/dist/{ui → frontend/src/ui}/text.js +3 -3
  335. package/frontend/dist/frontend/src/ui/title.d.ts +91 -0
  336. package/frontend/dist/frontend/src/ui/title.js +272 -0
  337. package/frontend/dist/{ui → frontend/src/ui}/view.d.ts +4 -0
  338. package/frontend/dist/{ui → frontend/src/ui}/view.js +3 -3
  339. package/frontend/dist/{volt.d.ts → frontend/src/volt.d.ts} +3 -0
  340. package/frontend/dist/{volt.js → frontend/src/volt.js} +4 -0
  341. package/frontend/tools/bundle_d_ts.js +71 -0
  342. package/frontend/tools/convert_to_jsdoc_input.txt +9452 -0
  343. package/frontend/tools/convert_to_jsdoc_output.txt +7626 -0
  344. package/frontend/tools/convert_to_jsdoc_tmp.js +345 -0
  345. package/package.json +11 -12
  346. package/backend/dist/cjs/database/collection.d.ts +0 -160
  347. package/backend/dist/cjs/database/collection.js +0 -842
  348. package/backend/dist/cjs/database/database.d.ts +0 -121
  349. package/backend/dist/cjs/database/document.d.ts +0 -131
  350. package/backend/dist/cjs/database/document.js +0 -224
  351. package/backend/dist/cjs/database.d.ts +0 -502
  352. package/backend/dist/cjs/database.js +0 -2248
  353. package/backend/dist/cjs/logger.d.ts +0 -3
  354. package/backend/dist/cjs/meta.d.ts +0 -50
  355. package/backend/dist/cjs/mutex.d.ts +0 -24
  356. package/backend/dist/cjs/payments/paddle.d.ts +0 -160
  357. package/backend/dist/cjs/plugins/browser.d.ts +0 -36
  358. package/backend/dist/cjs/plugins/browser.js +0 -198
  359. package/backend/dist/cjs/plugins/css.d.ts +0 -11
  360. package/backend/dist/cjs/plugins/css.js +0 -80
  361. package/backend/dist/cjs/plugins/mail.d.ts +0 -277
  362. package/backend/dist/cjs/plugins/mail.js +0 -1370
  363. package/backend/dist/cjs/plugins/ts/compiler.d.ts +0 -139
  364. package/backend/dist/cjs/plugins/ts/compiler.js +0 -750
  365. package/backend/dist/cjs/plugins/ts/preprocessing.d.ts +0 -14
  366. package/backend/dist/cjs/plugins/ts/preprocessing.js +0 -440
  367. package/backend/dist/cjs/rate_limit.d.ts +0 -63
  368. package/backend/dist/cjs/rate_limit.js +0 -348
  369. package/backend/dist/cjs/request.deprc.d.ts +0 -48
  370. package/backend/dist/cjs/request.deprc.js +0 -572
  371. package/backend/dist/cjs/response.deprc.d.ts +0 -55
  372. package/backend/dist/cjs/response.deprc.js +0 -275
  373. package/backend/dist/cjs/server.d.ts +0 -342
  374. package/backend/dist/cjs/splash_screen.d.ts +0 -35
  375. package/backend/dist/cjs/status.d.ts +0 -61
  376. package/backend/dist/cjs/stream.d.ts +0 -79
  377. package/backend/dist/cjs/users.d.ts +0 -111
  378. package/backend/dist/cjs/users.js +0 -1817
  379. package/backend/dist/cjs/view.js +0 -352
  380. package/backend/dist/cjs/vinc.dev.d.ts +0 -3
  381. package/backend/dist/cjs/vinc.dev.js +0 -7
  382. package/backend/dist/css/adyen.css +0 -92
  383. package/backend/dist/css/volt.css +0 -70
  384. package/backend/dist/esm/database/collection.d.ts +0 -160
  385. package/backend/dist/esm/database/collection.js +0 -1328
  386. package/backend/dist/esm/database/database.d.ts +0 -121
  387. package/backend/dist/esm/database/document.d.ts +0 -131
  388. package/backend/dist/esm/database/document.js +0 -247
  389. package/backend/dist/esm/database.d.ts +0 -502
  390. package/backend/dist/esm/database.js +0 -2423
  391. package/backend/dist/esm/file_watcher.js +0 -329
  392. package/backend/dist/esm/logger.d.ts +0 -3
  393. package/backend/dist/esm/logger.js +0 -11
  394. package/backend/dist/esm/meta.d.ts +0 -50
  395. package/backend/dist/esm/mutex.d.ts +0 -24
  396. package/backend/dist/esm/mutex.js +0 -48
  397. package/backend/dist/esm/payments/paddle.d.ts +0 -160
  398. package/backend/dist/esm/plugins/browser.d.ts +0 -36
  399. package/backend/dist/esm/plugins/browser.js +0 -176
  400. package/backend/dist/esm/plugins/css.d.ts +0 -11
  401. package/backend/dist/esm/plugins/css.js +0 -90
  402. package/backend/dist/esm/plugins/ts/compiler.d.ts +0 -139
  403. package/backend/dist/esm/plugins/ts/compiler.js +0 -1194
  404. package/backend/dist/esm/plugins/ts/preprocessing.d.ts +0 -14
  405. package/backend/dist/esm/plugins/ts/preprocessing.js +0 -726
  406. package/backend/dist/esm/rate_limit.d.ts +0 -63
  407. package/backend/dist/esm/rate_limit.js +0 -417
  408. package/backend/dist/esm/request.deprc.d.ts +0 -48
  409. package/backend/dist/esm/request.deprc.js +0 -572
  410. package/backend/dist/esm/response.deprc.d.ts +0 -55
  411. package/backend/dist/esm/response.deprc.js +0 -275
  412. package/backend/dist/esm/server.d.ts +0 -342
  413. package/backend/dist/esm/splash_screen.d.ts +0 -35
  414. package/backend/dist/esm/status.d.ts +0 -61
  415. package/backend/dist/esm/status.js +0 -197
  416. package/backend/dist/esm/stream.d.ts +0 -79
  417. package/backend/dist/esm/users.d.ts +0 -111
  418. package/backend/dist/esm/users.js +0 -1935
  419. package/backend/dist/esm/vinc.dev.d.ts +0 -3
  420. package/backend/dist/esm/vinc.dev.js +0 -7
  421. package/frontend/dist/elements/base.d.ts +0 -9889
  422. package/frontend/dist/elements/module.d.ts +0 -30
  423. package/frontend/dist/modules/array.d.ts +0 -94
  424. package/frontend/dist/modules/array.js +0 -634
  425. package/frontend/dist/modules/auth.d.ts +0 -46
  426. package/frontend/dist/modules/auth.js +0 -139
  427. package/frontend/dist/modules/colors.d.ts +0 -1
  428. package/frontend/dist/modules/colors.js +0 -417
  429. package/frontend/dist/modules/compression.d.ts +0 -6
  430. package/frontend/dist/modules/compression.js +0 -999
  431. package/frontend/dist/modules/cookies.d.ts +0 -18
  432. package/frontend/dist/modules/cookies.js +0 -167
  433. package/frontend/dist/modules/date.d.ts +0 -142
  434. package/frontend/dist/modules/date.js +0 -493
  435. package/frontend/dist/modules/events.d.ts +0 -8
  436. package/frontend/dist/modules/events.js +0 -91
  437. package/frontend/dist/modules/google.d.ts +0 -11
  438. package/frontend/dist/modules/google.js +0 -54
  439. package/frontend/dist/modules/meta.d.ts +0 -10
  440. package/frontend/dist/modules/mutex.d.ts +0 -7
  441. package/frontend/dist/modules/mutex.js +0 -51
  442. package/frontend/dist/modules/number.d.ts +0 -16
  443. package/frontend/dist/modules/number.js +0 -23
  444. package/frontend/dist/modules/object.d.ts +0 -52
  445. package/frontend/dist/modules/object.js +0 -383
  446. package/frontend/dist/modules/scheme.d.ts +0 -227
  447. package/frontend/dist/modules/scheme.js +0 -531
  448. package/frontend/dist/modules/settings.d.ts +0 -3
  449. package/frontend/dist/modules/settings.js +0 -4
  450. package/frontend/dist/modules/statics.d.ts +0 -5
  451. package/frontend/dist/modules/string.d.ts +0 -124
  452. package/frontend/dist/modules/string.js +0 -745
  453. package/frontend/dist/modules/support.d.ts +0 -19
  454. package/frontend/dist/modules/support.js +0 -103
  455. package/frontend/dist/modules/themes.d.ts +0 -8
  456. package/frontend/dist/modules/themes.js +0 -18
  457. package/frontend/dist/modules/user.d.ts +0 -59
  458. package/frontend/dist/modules/user.js +0 -280
  459. package/frontend/dist/modules/utils.d.ts +0 -87
  460. package/frontend/dist/modules/utils.js +0 -923
  461. package/frontend/dist/types/gradient.d.ts +0 -12
  462. package/frontend/dist/ui/border_button.d.ts +0 -152
  463. package/frontend/dist/ui/button.d.ts +0 -21
  464. package/frontend/dist/ui/canvas.d.ts +0 -56
  465. package/frontend/dist/ui/checkbox.d.ts +0 -52
  466. package/frontend/dist/ui/frame_modes.d.ts +0 -25
  467. package/frontend/dist/ui/input.d.ts +0 -241
  468. package/frontend/dist/ui/loader_button.d.ts +0 -93
  469. package/frontend/dist/ui/loaders.d.ts +0 -57
  470. package/frontend/dist/ui/pseudo.d.ts +0 -16
  471. package/frontend/dist/ui/steps.d.ts +0 -59
  472. package/frontend/dist/ui/title.d.ts +0 -21
  473. package/frontend/dist/ui/title.js +0 -121
  474. package/frontend/examples/dashboard/dashboard.ts +0 -776
  475. /package/backend/dist/cjs/{cli.d.ts → backend/src/cli.d.ts} +0 -0
  476. /package/backend/dist/cjs/{file_watcher.d.ts → backend/src/database/document.d.ts} +0 -0
  477. /package/backend/dist/cjs/{file_watcher.js → backend/src/database/document.js} +0 -0
  478. /package/backend/dist/cjs/{plugins/pdf.d.ts → backend/src/database/filters/strict_filter_test.d.ts} +0 -0
  479. /package/backend/dist/{esm/file_watcher.d.ts → cjs/backend/src/database/filters/strict_filter_test_v0.d.ts} +0 -0
  480. /package/backend/dist/{esm/plugins/pdf.d.ts → cjs/backend/src/database/flatten_test.d.ts} +0 -0
  481. /package/backend/dist/cjs/{frontend.d.ts → backend/src/frontend.d.ts} +0 -0
  482. /package/backend/dist/cjs/{plugins → backend/src/plugins}/communication.d.ts +0 -0
  483. /package/backend/dist/cjs/{plugins → backend/src/plugins}/communication.js +0 -0
  484. /package/backend/dist/cjs/{plugins → backend/src/plugins}/mail/ui.js +0 -0
  485. /package/backend/dist/cjs/{plugins → backend/src/plugins}/pdf.js +0 -0
  486. /package/backend/dist/cjs/{plugins → backend/src/plugins}/thread_monitor.d.ts +0 -0
  487. /package/backend/dist/cjs/{plugins → backend/src/plugins}/thread_monitor.js +0 -0
  488. /package/backend/dist/cjs/{vinc.d.ts → backend/src/vinc.d.ts} +0 -0
  489. /package/backend/dist/cjs/{vinc.js → backend/src/vinc.js} +0 -0
  490. /package/backend/dist/esm/{cli.d.ts → backend/src/cli.d.ts} +0 -0
  491. /package/backend/dist/esm/{frontend.d.ts → backend/src/frontend.d.ts} +0 -0
  492. /package/backend/dist/esm/{plugins → backend/src/plugins}/communication.d.ts +0 -0
  493. /package/backend/dist/esm/{plugins → backend/src/plugins}/communication.js +0 -0
  494. /package/backend/dist/esm/{plugins → backend/src/plugins}/thread_monitor.d.ts +0 -0
  495. /package/backend/dist/esm/{plugins → backend/src/plugins}/thread_monitor.js +0 -0
  496. /package/backend/dist/esm/{vinc.d.ts → backend/src/vinc.d.ts} +0 -0
  497. /package/backend/dist/esm/{vinc.js → backend/src/vinc.js} +0 -0
  498. /package/frontend/dist/{elements → frontend/src/elements}/register_element.d.ts +0 -0
  499. /package/frontend/dist/{elements → frontend/src/elements}/register_element.js +0 -0
  500. /package/frontend/dist/{modules → frontend/src/modules}/color.d.ts +0 -0
  501. /package/frontend/dist/{ui → frontend/src/ui}/ui.d.ts +0 -0
  502. /package/frontend/dist/{ui → frontend/src/ui}/ui.js +0 -0
@@ -1,776 +0,0 @@
1
- // @ts-nocheck
2
-
3
- // Imports.
4
- // import * as volt from "@vandenberghinc/volt/frontend"
5
- import { ResponseStatus, Theme, UI } from "../defaults.js";
6
-
7
- // Global variables.
8
- const endpoint = volt.Utils.endpoint();
9
-
10
- // ---------------------------------------------------------
11
- // Utils.
12
-
13
- // A side by side form container.
14
- const SideByFormContainer = (...children) => {
15
- return volt.HStack(
16
- ...children
17
- )
18
- .align_height()
19
- .width("100%")
20
- .overflow("hidden")
21
- .media(
22
- "width >= 900px",
23
- e => e.side_by_side({ columns: 2, vspacing: 0, hspacing: 65 }).margin_bottom(65),
24
- e => e.side_by_side({ columns: 1, vspacing: 50, hspacing: 0 }).margin_bottom(50)
25
- )
26
- }
27
-
28
- // Dashboard form.
29
- function FormWidget(
30
- {
31
- title = undefined,
32
- text = undefined,
33
- button = "Button",
34
- center_button = false,
35
- small_button = true,
36
- right_top_button = false,
37
- inputs = [],
38
- on_submit = (data, form) => { },
39
- spacer = false,
40
- }: {
41
- title?: string,
42
- text?: string,
43
- button?: string | boolean,
44
- center_button?: boolean,
45
- small_button?: boolean,
46
- right_top_button?: boolean,
47
- inputs?: any[],
48
- on_submit?: (data: any, form: volt.FormElement) => any,
49
- spacer?: boolean,
50
- }
51
- ) {
52
- return volt.Form(
53
-
54
- right_top_button
55
- ? [
56
- volt.HStack(
57
- UI.Title(title)
58
- .stretch(true)
59
- .margin(0)
60
- .wrap(true),
61
- UI.Button(button)
62
- .padding(5, 15)
63
- .margin_top(0)
64
- .font_size(15)
65
- )
66
- .center_vertical()
67
- .margin(0, 0, 12.5, 0)
68
- .wrap(false)
69
- ]
70
- : title == null ? null : (
71
- UI.Title(title)
72
- .width("fit-content")
73
- .margin(0, 0, 7.5, 0)
74
- ),
75
-
76
-
77
- // @ts-ignore-error
78
- text == null ? null : (
79
- UI.Text(text)
80
- .margin_bottom(inputs.length > 0 ? 20 : 0)
81
- ),
82
-
83
- volt.ForEach(inputs, (item) => UI.Input(item)),
84
-
85
- spacer ? volt.Spacer() : null,
86
-
87
- // Save.
88
- right_top_button ? null : (
89
- volt.VStack(
90
- button === false ? null : (
91
- UI.Button(button)
92
- .padding(small_button ? 7.5 : 10, small_button ? 25 : 40)
93
- .margin_top(inputs.length > 0 ? 15 : 25)
94
- )
95
- )
96
- .width("100%")
97
- .align(center_button ? (inputs.length > 0 ? "center" : "start") : "start")
98
- ),
99
- )
100
- .width("100%")
101
- .on_submit((e, data) => on_submit(data, e))
102
- .on_submit_error((_, error) => {
103
- ResponseStatus.error(error)
104
- })
105
- }
106
-
107
- // ---------------------------------------------------------
108
- // Pages.
109
-
110
- function AccountPage(): PageOptions {
111
- return {
112
- type: "item",
113
- title: "Account Settings",
114
- endpoint: "/dashboard/account",
115
- icon: "/static/icons/username.webp",
116
- content() {
117
- return volt.Frame(
118
- SideByFormContainer(
119
-
120
- // General info.
121
- FormWidget({
122
- title: "Profile",
123
- text: "Setup your account and edit your profile details.",
124
- button: "Update",
125
- inputs: [
126
- { label: "First name", placeholder: "John", id: "first_name", required: true, image: "/static/icons/username.red.webp", },
127
- { label: "Last name", placeholder: "Doe", id: "last_name", required: true, image: "/static/icons/username.red.webp", },
128
- { label: "Username", placeholder: "myusername", id: "username", required: true, image: "/static/icons/username.red.webp", },
129
- { label: "Email", placeholder: "my@email.com", id: "email", required: true, image: "/static/icons/mail.webp", },
130
- ],
131
- right_top_button: true,
132
- on_submit: async (data) => {
133
- const response = await volt.User.set(data)
134
- ResponseStatus.message(response.message);
135
- }
136
- }),
137
- // ThemeV2.Divider().margin(40, 0),
138
-
139
- // Password.
140
- FormWidget({
141
- title: "Password",
142
- text: "Change your account's password.",
143
- button: "Update",
144
- inputs: [
145
- { label: "Current password", placeholder: "Current password", id: "current_password", required: true, image: "/static/icons/password.webp", type: "password" },
146
- { label: "New Password", placeholder: "Password", id: "password", required: true, image: "/static/icons/password.webp", type: "password" },
147
- { label: "Verify new password", placeholder: "Verify password", id: "verify_password", required: true, image: "/static/icons/password.webp", type: "password" },
148
- ],
149
- right_top_button: true,
150
- on_submit: async (data, form) => {
151
- const response =
152
- volt.User.change_password(data)
153
- .then((response) => {
154
- ResponseStatus.message(response.message);
155
- })
156
- .catch(({ error, status, invalid_fields }) => {
157
- if (invalid_fields) {
158
- if (invalid_fields.current_password) {
159
- form.fields.current_password.missing(true, invalid_fields.current_password);
160
- }
161
- if (invalid_fields.password) {
162
- form.fields.password.missing(true, invalid_fields.password);
163
- }
164
- if (invalid_fields.verify_password) {
165
- form.fields.verify_password.missing(true, invalid_fields.verify_password);
166
- }
167
- }
168
- ResponseStatus.error(error);
169
- })
170
- },
171
- }),
172
- ),
173
- SideByFormContainer(
174
- volt.VStack(
175
- // No api key exists.
176
- FormWidget({
177
- title: "API key",
178
- text: "Currently you do not have an API key. Generate an API key to get API access.\nWhen generated the API key is only shown once. Make sure to store it correctly, since you have to regenerate the API key if you lose it.",
179
- button: "Generate",
180
- right_top_button: true,
181
- async on_submit() {
182
- const response = await volt.User.generate_api_key()
183
- if (response.error) {
184
- ResponseStatus.message(response.error);
185
- } else if (response.api_key) {
186
- volt.Elements.get("api_key").value(response.api_key);
187
- volt.Elements.get("api_key_not_generated").hide();
188
- volt.Elements.get("api_key_generated").show();
189
- ResponseStatus.message(response.message);
190
- }
191
- }
192
- })
193
- .id("api_key_not_generated"),
194
-
195
- // API key exists.
196
- FormWidget({
197
- title: "API key",
198
- text: "Your personal API key. An API key is only shown once.\nYou should revoke your old API key and generate an one when you have lost your API key.",
199
- button: "Revoke",
200
- inputs: [
201
- {
202
- label: "API key",
203
- placeholder: "**************************************************************",
204
- id: "api_key",
205
- readonly: true,
206
- type: volt.Input,
207
- image: "/static/icons/password.webp",
208
- }
209
- ],
210
- right_top_button: true,
211
- async on_submit(data) {
212
- const response = await volt.User.revoke_api_key()
213
- volt.Elements.get("api_key").value("");
214
- volt.Elements.get("api_key_not_generated").show();
215
- volt.Elements.get("api_key_generated").hide();
216
- ResponseStatus.message(response.message);
217
- }
218
- })
219
- .id("api_key_generated")
220
- .hide(),
221
- ),
222
-
223
-
224
- // Support PIN.
225
- FormWidget({
226
- title: "Support PIN",
227
- text: "Your account's support pin to verify any support tickets.",
228
- button: false,
229
- inputs: [
230
- { label: "Support PIN", placeholder: "Support PIN", id: "support_pin", required: false, readonly: true, image: "/static/icons/key.webp" },
231
- ],
232
- }),
233
- )
234
- )
235
- }
236
- }
237
- }
238
-
239
- // ---------------------------------------------------------
240
- // Build content tree mapped under Navigations module.
241
-
242
- interface PageOptions {
243
- type: "chapter" | "item",
244
- title: string,
245
- endpoint?: string, // only chapter type may omit this.
246
- icon: string,
247
- content?: () => void,
248
- }
249
-
250
- const Navigation: {
251
- selected_name: string,
252
- selected_index: number,
253
- items: {
254
- text: string,
255
- active: boolean,
256
- navigation_node?: { select(): void; },
257
- content: PageOptions[],
258
- on_select?: () => void,
259
- }[],
260
- select(index_or_name: string | number): void;
261
- } = {
262
- selected_name: undefined as any,
263
- selected_index: undefined as any,
264
- items: [
265
- {
266
- text: "Account",
267
- active: endpoint === "/dashboard" || endpoint.includes("/dashboard/account/"),
268
- content: [
269
- {
270
- type: "chapter",
271
- title: "Account",
272
- icon: "/static/icons/username.webp",
273
- content: () => { }
274
- },
275
- AccountPage(),
276
- {
277
- type: "item",
278
- title: "API",
279
- endpoint: "/dashboard/api",
280
- icon: "/static/icons/key.webp",
281
- content: () => { }
282
- },
283
-
284
- {
285
- type: "chapter",
286
- title: "Billing",
287
- icon: "/static/icons/pricing.webp",
288
- content: () => { }
289
- },
290
- {
291
- type: "item",
292
- title: "Subscriptions",
293
- endpoint: "/dashboard/billing",
294
- icon: "/static/icons/pricing.webp",
295
- content: () => { }
296
- },
297
- {
298
- type: "item",
299
- title: "Usage",
300
- endpoint: "/dashboard/usage",
301
- icon: "/static/icons/bar-chart.webp",
302
- content: () => { }
303
- },
304
-
305
- {
306
- type: "chapter",
307
- title: "Customer Service",
308
- icon: "/static/icons/username.webp",
309
- content: () => { }
310
- },
311
- {
312
- type: "item",
313
- title: "Contact",
314
- endpoint: "/dashboard/billing",
315
- icon: "/static/icons/help.webp",
316
- content: () => { }
317
- },
318
- {
319
- type: "item",
320
- title: "Feedback",
321
- endpoint: "/dashboard/usage",
322
- icon: "/static/icons/feedback.webp",
323
- content: () => { }
324
- },
325
-
326
- ],
327
- },
328
- {
329
- text: "Projects",
330
- active: endpoint.includes("/dashboard/project/") || endpoint.includes("/dashboard/projects/"),
331
- content: [
332
- {
333
- type: "chapter",
334
- title: "Settings",
335
- icon: "/static/icons/settings.webp",
336
- content: () => { }
337
- },
338
- {
339
- type: "item",
340
- title: "Roles & Permissions",
341
- endpoint: "/dashboard/project/permissions",
342
- icon: "/static/icons/key.webp",
343
- content: () => { }
344
- },
345
- {
346
- type: "item",
347
- title: "Git Integration",
348
- endpoint: "/dashboard/project/git",
349
- icon: "/static/icons/github.webp",
350
- content: () => { }
351
- },
352
- // ------------------------------------------
353
- {
354
- type: "chapter",
355
- title: "AI",
356
- icon: "/static/icons/sparkle.webp",
357
- content: () => { }
358
- },
359
- {
360
- type: "item",
361
- title: "MDX Pages",
362
- endpoint: "/dashboard/project/mdx",
363
- icon: "/static/icons/code.webp",
364
- content: () => { }
365
- },
366
- {
367
- type: "item",
368
- title: "Generated Pages",
369
- endpoint: "/dashboard/project/generate",
370
- icon: "/static/icons/docs.webp",
371
- content: () => { }
372
- },
373
- // ------------------------------------------
374
- {
375
- type: "chapter",
376
- title: "Insight",
377
- icon: "/static/icons/search.webp",
378
- content: () => { }
379
- },
380
- {
381
- type: "item",
382
- title: "Analytics",
383
- endpoint: "/dashboard/project/analytics",
384
- icon: "/static/icons/bar-chart.webp",
385
- content: () => { }
386
- },
387
- {
388
- type: "item",
389
- title: "User Feedback",
390
- endpoint: "/dashboard/project/feedback",
391
- icon: "/static/icons/feedback.webp",
392
- content: () => { }
393
- },
394
- ],
395
- on_select() {
396
- const node = volt.HStack(
397
- UI.SelectionPicker({
398
- value: "Select Project",
399
- title: "Select Project",
400
- items: [],
401
- })
402
- .border_radius(12.5)
403
- .width("initial")
404
- .letter_spacing(UI.letter_spacing_1)
405
- .flex(1),
406
- volt.ImageMask("/static/icons/plus.webp")
407
- .frame(25, 25)
408
- .padding(6.5)
409
- .margin_left(15)
410
- .flex_shrink(0)
411
- .color(Theme.fg_2)
412
- .border(1, Theme.div_bg)
413
- .border_radius("50%")
414
- .flex_shrink(0) // wrap items in hstack instead of shrinking.
415
- .transition("background 300ms ease-in-out")
416
- .transition_mask("background 300ms ease-in-out")
417
- .on_mouse_over_out(
418
- e => e.color(Theme.fg).background(Theme.auto_darken_lighten("bg", 0.05)),
419
- e => e.color(Theme.fg_2).background("transparent"),
420
- )
421
- )
422
- .center_vertical()
423
- .width("100%").overflow("hidden").wrap(false)
424
- .padding(7.5, 20, 20, 20)
425
- SideBar.content.insertBefore(node, SideBar.content.child(0))
426
- },
427
- },
428
- ],
429
- select(index: string | number) {
430
- if (typeof index === "string") {
431
- const name = index;
432
- for (let i = 0; i < this.items.length; i++) {
433
- if (this.items[i].text === name) {
434
- index = i;
435
- break;
436
- }
437
- }
438
- if (typeof index === "string") {
439
- throw new Error(`Navigation "${name}" does not exist.`)
440
- }
441
- }
442
-
443
- // Set attrs.
444
- if (index >= this.items.length) {
445
- throw new Error(`Invalid index ${index} max index is ${this.items.length - 1}`);
446
- }
447
- const item = this.items[index];
448
- this.selected_name = item.text;
449
- this.selected_index = index as number;
450
-
451
- // Select active node from nav bar.
452
- this.items[index]?.navigation_node?.select();
453
-
454
- // Render sidebar content of active nav.
455
- SideBar.render();
456
-
457
- // Call on select.
458
- if (typeof item.on_select === "function") {
459
- item.on_select();
460
- }
461
- },
462
- }
463
- if (endpoint === "/dashboard") {
464
- Navigation.selected_name = Navigation.items[0].text;
465
- Navigation.selected_index = 0;
466
- } else {
467
- for (let i = 0; i < Navigation.items.length; i++) {
468
- if (Navigation.items[i].content.find(item => endpoint === item.endpoint)){
469
- Navigation.selected_name = Navigation.items[i].text;
470
- Navigation.selected_index = i;
471
- break;
472
- }
473
- }
474
- }
475
- if (!Navigation.selected_name) {
476
- throw new Error("No navigation is selected with the current url.");
477
- }
478
-
479
- // ---------------------------------------------------------
480
- // Core elements.
481
-
482
- // TopBar.
483
- const TopBar = (() => {
484
- return volt.HStack(
485
- UI.ProjectIcon(20),
486
- volt.Spacer(),
487
- volt.ImageMask("/static/icons/username.webp")
488
- .color(Theme.fg)
489
- .frame(20,20)
490
- .margin_right(15),
491
- volt.Frame(
492
- UI.Text(volt.User.first_name())
493
- .color(Theme.fg)
494
- .font_size(13)
495
- .margin(0, 0, 0, 0),
496
- UI.Text(volt.User.email())
497
- .color(Theme.fg_1)
498
- .font_size(11)
499
- .margin(0),
500
- )
501
- .width("fit-content")
502
- .on_click(() => Navigation.select("Account"))
503
- )
504
- .center_vertical()
505
- .border_bottom(1, Theme.div_bg)
506
- .padding(12.5, 20)
507
- })()
508
-
509
- // Navigation bar (a second top bar below the first top bar).
510
- const NavigationBar = (() => {
511
- let selected_node;
512
- return volt.HStack(
513
-
514
- Navigation.items.map((item, index) => {
515
- let text, divider;
516
- const node = volt.VStack(
517
- text = UI.Text(item.text)
518
- .font_size(14)
519
- .line_height("2.2em")
520
- .font_weight(500)
521
- .margin(0, 7.5) // to make divider larger then text.
522
- .letter_spacing(UI.letter_spacing_2)
523
- .transition("color 300ms ease-in-out, font-weight 500ms ease-in-out"),
524
- divider = volt.Frame()
525
- .position(null, 0, 0, 0)
526
- .height(1.75)
527
- .border_radius(0.5)
528
- .transition("background 300ms ease-in-out")
529
- .background("transparent"),
530
- )
531
- .width("fit-content")
532
- .position("relative")
533
- .margin_right(10)
534
- .extend({
535
- hover(forced = false) {
536
- if (!forced && selected_node === node) return;
537
- text.color(Theme.fg);
538
- },
539
- unhover(forced = false) {
540
- if (!forced && selected_node === node) return;
541
- text.color(Theme.fg_2);
542
- },
543
- select() {
544
- if (selected_node === node) return;
545
- else if (selected_node) selected_node.unselect();
546
- selected_node = node;
547
- this.hover(true);
548
- text.font_weight(600);
549
- divider.background(Theme.fg);
550
- },
551
- unselect() {
552
- if (selected_node !== node) return;
553
- selected_node = undefined;
554
- this.unhover(true);
555
- text.font_weight(500);
556
- divider.background("transparent");
557
- },
558
- })
559
- .on_mouse_over_out(e => e.hover(), e => e.unhover())
560
- .on_click(() => index != null && Navigation.select(index))
561
- if (Navigation.selected_index === index) {
562
- node.select();
563
- }
564
- item.navigation_node = node;
565
- return node;
566
- }),
567
-
568
- volt.Spacer(),
569
- )
570
- .center_vertical()
571
- .border_bottom(1, Theme.div_bg)
572
- .padding(15, 20)
573
- })();
574
-
575
- // SideBar.
576
- const SideBar = (() => {
577
- let selected_node: any;
578
- return volt.Scroller()
579
- .flex("1 1 0") // for height
580
- .fixed_width(350)
581
- .border_right(1, Theme.div_bg)
582
- .content
583
- .padding(15, 0)
584
- .parent<volt.ScrollerElement>()
585
- .extend({
586
- render() {
587
- selected_node = undefined; // reset is required.
588
- const items = Navigation.items[Navigation.selected_index].content;
589
- console.log("Rendering sidebar...");
590
- console.log("Items:", items);
591
- this.remove_children()
592
- this.append(
593
- items.map((item, index) => {
594
- let image, text, divider;
595
- const node = volt.HStack(
596
- divider = item.type === "chapter" ? undefined : UI.Divider()
597
- .frame(1, "100%")
598
- .transition("background 300ms ease-in-out")
599
- .margin(0, 23, 0, 7.5),
600
- volt.HStack(
601
- image = volt.ImageMask(item.icon)
602
- .frame(15, 15)
603
- .transition_mask("background 300ms ease-in-out")
604
- .color(item.type === "chapter" ? Theme.fg : Theme.fg_1)
605
- .margin_right(15)
606
- .margin_bottom(4),
607
- text = volt.Text(item.title)
608
- .font_size(14)
609
- .line_height("1.6em")
610
- .font_weight(item.type === "chapter" ? 500 : 300)
611
- .transition("color 300ms ease-in-out, font-weight 300ms ease-in-out")
612
- .color(item.type === "chapter" ? Theme.fg : Theme.fg_1)
613
- .letter_spacing(UI.letter_spacing_1)
614
- .margin(0),
615
- )
616
- .wrap(false)
617
- .center_vertical()
618
- .padding(10, 0)
619
- )
620
- .padding(0, 20)
621
- .center_vertical()
622
- .transition("background 300ms ease-in-out")
623
- .on_click(() => {
624
- if (item.content) item.content();
625
- })
626
- .extend({
627
- hover(forced = false) {
628
- if (item.type === "chapter") { return; }
629
- else if (!forced && selected_node === node) return;
630
- image.color(Theme.fg);
631
- // text.font_weight(400)
632
- text.color(Theme.fg);
633
- this.background(Theme.auto_darken_lighten("bg", 0.025))
634
- if (divider) divider.background(Theme.auto_darken_lighten("bg", 0.5))
635
- },
636
- unhover(forced = false) {
637
- if (item.type === "chapter") { return; }
638
- else if (!forced && selected_node === node) return;
639
- image.color(Theme.fg_2);
640
- // text.font_weight(300)
641
- text.color(Theme.fg_2);
642
- this.background("transparent")
643
- if (divider) divider.background(Theme.div_bg)
644
- },
645
- select() {
646
- if (item.type === "chapter") { return; }
647
- else if (selected_node === node) return;
648
- else if (selected_node) selected_node.unselect();
649
- selected_node = node;
650
- this.hover(true);
651
- text.font_weight(400)
652
- if (divider) divider.background(Theme.fg_1)
653
- },
654
- unselect() {
655
- if (item.type === "chapter") { return; }
656
- else if (selected_node !== node) return;
657
- selected_node = undefined;
658
- this.unhover(true);
659
- text.font_weight(300)
660
- if (divider) divider.background(Theme.div_bg)
661
- },
662
- })
663
- .on_mouse_over_out(e => e.hover(), e => e.unhover())
664
- if (item.type === "chapter") {
665
- node.color("#ffffff")
666
- if (index > 0) {
667
- node.margin_top(15)
668
- }
669
- } else {
670
- if (endpoint === item.endpoint || (selected_node === undefined && endpoint === "/dashboard")) {
671
- node.select();
672
- } else {
673
- node.unselect();
674
- }
675
- }
676
- return node;
677
- })
678
- );
679
- return this;
680
- },
681
- })
682
- .render()
683
- })();
684
-
685
- // Actions.
686
- const Actions = (() => {
687
- return volt.VStack(
688
- [
689
- { text: "Documentation", icon: "/static/icons/book-0.webp", href: "/docs" }
690
- ].map((item) => {
691
- return volt.AnchorHStack<{ text: volt.TextElement, img: volt.ImageMaskElement, arrow: volt.ImageMaskElement }>(
692
- volt.ImageMask(item.icon)
693
- .assign_to_parent_as("img")
694
- .frame(15, 15)
695
- .transition_mask("background 300ms ease-in-out")
696
- .color(Theme.fg_1)
697
- .margin_right(15)
698
- .margin_bottom(2),
699
- UI.Text(item.text)
700
- .assign_to_parent_as("text")
701
- .font_size(14)
702
- .line_height("2.2em")
703
- .font_weight(500)
704
- .margin(0)
705
- .letter_spacing(UI.letter_spacing_2)
706
- .transition("color 300ms ease-in-out, font-weight 500ms ease-in-out"),
707
- volt.Spacer(),
708
- UI.FoldArrow()
709
- .rotate(0)
710
- .assign_to_parent_as("arrow")
711
- .color(Theme.fg_1)
712
- .margin_left(15),
713
- )
714
- .position("relative")
715
- .center_vertical()
716
- .wrap(false)
717
- .margin_right(10)
718
- .href(item.href)
719
- .on_mouse_over_out(
720
- e => {
721
- e.text.color(Theme.fg);
722
- e.img.color(Theme.fg);
723
- e.arrow.color(Theme.fg);
724
- },
725
- e => {
726
- e.text.color(Theme.fg_1);
727
- e.img.color(Theme.fg_1);
728
- e.arrow.color(Theme.fg_1);
729
- },
730
- )
731
- })
732
-
733
- )
734
- .flex(0)
735
- .padding(10, 20)
736
- .border_top(1, Theme.div_bg)
737
- .border_right(1, Theme.div_bg)
738
- })()
739
-
740
- // Content.
741
- const Content = (() => {
742
- return volt.Scroller(
743
-
744
- )
745
- .height("100%")
746
- .flex(1)
747
- .background(Theme.auto_darken_lighten("bg", 0.01))
748
- .content
749
- .padding(20)
750
- .parent<volt.ScrollerElement>()
751
- })
752
-
753
- // ---------------------------------------------------------
754
- // On load.
755
-
756
- volt.Utils.on_load(() => {
757
- return UI.View(
758
-
759
- // Topbar.
760
- TopBar,
761
-
762
- // Navigation bar.
763
- NavigationBar,
764
-
765
- // Main content.
766
- volt.HStack(
767
- volt.VStack(
768
- SideBar,
769
- Actions,
770
- )
771
- .frame("fit-content", "100%"),
772
- Content,
773
- )
774
- .flex("1 1 0")
775
- );
776
- });