reflex 0.3.2__tar.gz → 0.3.3a1__tar.gz

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.

Potentially problematic release.


This version of reflex might be problematic. Click here for more details.

Files changed (362) hide show
  1. {reflex-0.3.2 → reflex-0.3.3a1}/PKG-INFO +3 -2
  2. {reflex-0.3.2 → reflex-0.3.3a1}/pyproject.toml +8 -3
  3. reflex-0.3.3a1/reflex/.templates/jinja/web/pages/custom_component.js.jinja2 +27 -0
  4. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/web/next.config.js +1 -0
  5. reflex-0.3.3a1/reflex/.templates/web/utils/helpers/range.js +43 -0
  6. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/web/utils/state.js +10 -6
  7. reflex-0.3.3a1/reflex/__init__.py +319 -0
  8. reflex-0.3.3a1/reflex/__init__.pyi +477 -0
  9. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/compiler/compiler.py +3 -0
  10. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/__init__.py +138 -138
  11. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/component.py +29 -22
  12. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/datadisplay/__init__.py +3 -1
  13. reflex-0.3.3a1/reflex/components/datadisplay/code.py +499 -0
  14. reflex-0.3.3a1/reflex/components/datadisplay/code.pyi +1190 -0
  15. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/button.py +3 -0
  16. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/checkbox.py +3 -0
  17. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/form.py +90 -27
  18. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/input.py +3 -0
  19. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/numberinput.py +3 -0
  20. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/pininput.py +77 -21
  21. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/radio.py +3 -0
  22. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/rangeslider.py +3 -0
  23. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/select.py +3 -0
  24. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/slider.py +3 -0
  25. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/switch.py +3 -0
  26. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/textarea.py +3 -0
  27. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/libs/chakra.py +2 -0
  28. reflex-0.3.3a1/reflex/components/libs/chakra.pyi +427 -0
  29. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/tags/tag.py +3 -2
  30. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/typography/markdown.py +10 -0
  31. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/constants/installer.py +4 -4
  32. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/event.py +4 -0
  33. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/page.py +3 -4
  34. reflex-0.3.3a1/reflex/page.pyi +17 -0
  35. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/reflex.py +3 -0
  36. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/state.py +31 -12
  37. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/testing.py +1 -1
  38. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/utils/build.py +24 -19
  39. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/utils/console.py +5 -1
  40. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/utils/format.py +26 -9
  41. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/utils/prerequisites.py +27 -28
  42. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/utils/processes.py +5 -4
  43. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/vars.py +80 -12
  44. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/vars.pyi +7 -0
  45. reflex-0.3.2/reflex/.templates/jinja/web/pages/custom_component.js.jinja2 +0 -10
  46. reflex-0.3.2/reflex/.templates/web/styles/code/prism.js +0 -1015
  47. reflex-0.3.2/reflex/__init__.py +0 -47
  48. reflex-0.3.2/reflex/components/datadisplay/code.py +0 -125
  49. reflex-0.3.2/reflex/components/datadisplay/code.pyi +0 -54
  50. reflex-0.3.2/reflex/components/libs/chakra.pyi +0 -128
  51. {reflex-0.3.2 → reflex-0.3.3a1}/LICENSE +0 -0
  52. {reflex-0.3.2 → reflex-0.3.3a1}/README.md +0 -0
  53. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/blank/assets/favicon.ico +0 -0
  54. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/blank/code/__init__.py +0 -0
  55. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/blank/code/blank.py +0 -0
  56. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/demo/.gitignore +0 -0
  57. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/demo/assets/favicon.ico +0 -0
  58. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/demo/assets/github.svg +0 -0
  59. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/demo/assets/icon.svg +0 -0
  60. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/demo/assets/logo.svg +0 -0
  61. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/demo/assets/paneleft.svg +0 -0
  62. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/demo/code/__init__.py +0 -0
  63. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/demo/code/demo.py +0 -0
  64. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/demo/code/pages/__init__.py +0 -0
  65. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/demo/code/pages/chatapp.py +0 -0
  66. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/demo/code/pages/datatable.py +0 -0
  67. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/demo/code/pages/forms.py +0 -0
  68. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/demo/code/pages/graphing.py +0 -0
  69. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/demo/code/pages/home.py +0 -0
  70. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/demo/code/sidebar.py +0 -0
  71. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/demo/code/state.py +0 -0
  72. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/demo/code/states/form_state.py +0 -0
  73. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/demo/code/states/pie_state.py +0 -0
  74. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/demo/code/styles.py +0 -0
  75. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/demo/code/webui/__init__.py +0 -0
  76. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/demo/code/webui/components/__init__.py +0 -0
  77. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/demo/code/webui/components/chat.py +0 -0
  78. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/demo/code/webui/components/loading_icon.py +0 -0
  79. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/demo/code/webui/components/modal.py +0 -0
  80. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/demo/code/webui/components/navbar.py +0 -0
  81. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/demo/code/webui/components/sidebar.py +0 -0
  82. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/demo/code/webui/state.py +0 -0
  83. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/demo/code/webui/styles.py +0 -0
  84. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/sidebar/README.md +0 -0
  85. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/sidebar/assets/favicon.ico +0 -0
  86. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/sidebar/assets/github.svg +0 -0
  87. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/sidebar/assets/icon.svg +0 -0
  88. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/sidebar/assets/logo.svg +0 -0
  89. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/sidebar/assets/paneleft.svg +0 -0
  90. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/sidebar/code/__init__.py +0 -0
  91. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/sidebar/code/components/__init__.py +0 -0
  92. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/sidebar/code/components/sidebar.py +0 -0
  93. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/sidebar/code/pages/__init__.py +0 -0
  94. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/sidebar/code/pages/dashboard.py +0 -0
  95. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/sidebar/code/pages/index.py +0 -0
  96. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/sidebar/code/pages/settings.py +0 -0
  97. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/sidebar/code/sidebar.py +0 -0
  98. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/sidebar/code/state.py +0 -0
  99. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/sidebar/code/styles.py +0 -0
  100. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/sidebar/code/templates/__init__.py +0 -0
  101. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/apps/sidebar/code/templates/template.py +0 -0
  102. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/jinja/app/rxconfig.py.jinja2 +0 -0
  103. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/jinja/web/package.json.jinja2 +0 -0
  104. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/jinja/web/pages/_app.js.jinja2 +0 -0
  105. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/jinja/web/pages/_document.js.jinja2 +0 -0
  106. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/jinja/web/pages/base_page.js.jinja2 +0 -0
  107. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/jinja/web/pages/component.js.jinja2 +0 -0
  108. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/jinja/web/pages/index.js.jinja2 +0 -0
  109. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/jinja/web/pages/utils.js.jinja2 +0 -0
  110. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/jinja/web/styles/styles.css.jinja2 +0 -0
  111. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/jinja/web/tailwind.config.js.jinja2 +0 -0
  112. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/jinja/web/utils/context.js.jinja2 +0 -0
  113. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/jinja/web/utils/theme.js.jinja2 +0 -0
  114. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/web/.gitignore +0 -0
  115. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/web/components/reflex/chakra_color_mode_provider.js +0 -0
  116. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js +0 -0
  117. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/web/jsconfig.json +0 -0
  118. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/web/postcss.config.js +0 -0
  119. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/web/styles/tailwind.css +0 -0
  120. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/web/utils/client_side_routing.js +0 -0
  121. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/.templates/web/utils/helpers/dataeditor.js +0 -0
  122. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/__main__.py +0 -0
  123. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/admin.py +0 -0
  124. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/app.py +0 -0
  125. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/app.pyi +0 -0
  126. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/base.py +0 -0
  127. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/compiler/__init__.py +0 -0
  128. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/compiler/templates.py +0 -0
  129. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/compiler/utils.py +0 -0
  130. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/base/__init__.py +0 -0
  131. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/base/app_wrap.py +0 -0
  132. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/base/app_wrap.pyi +0 -0
  133. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/base/bare.py +0 -0
  134. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/base/body.py +0 -0
  135. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/base/body.pyi +0 -0
  136. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/base/document.py +0 -0
  137. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/base/document.pyi +0 -0
  138. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/base/head.py +0 -0
  139. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/base/head.pyi +0 -0
  140. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/base/link.py +0 -0
  141. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/base/link.pyi +0 -0
  142. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/base/meta.py +0 -0
  143. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/base/meta.pyi +0 -0
  144. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/base/script.py +0 -0
  145. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/base/script.pyi +0 -0
  146. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/datadisplay/badge.py +0 -0
  147. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/datadisplay/badge.pyi +0 -0
  148. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/datadisplay/dataeditor.py +0 -0
  149. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/datadisplay/dataeditor.pyi +0 -0
  150. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/datadisplay/datatable.py +0 -0
  151. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/datadisplay/datatable.pyi +0 -0
  152. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/datadisplay/divider.py +0 -0
  153. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/datadisplay/divider.pyi +0 -0
  154. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/datadisplay/keyboard_key.py +0 -0
  155. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/datadisplay/keyboard_key.pyi +0 -0
  156. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/datadisplay/list.py +0 -0
  157. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/datadisplay/list.pyi +0 -0
  158. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/datadisplay/moment.py +0 -0
  159. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/datadisplay/stat.py +0 -0
  160. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/datadisplay/stat.pyi +0 -0
  161. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/datadisplay/table.py +0 -0
  162. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/datadisplay/table.pyi +0 -0
  163. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/datadisplay/tag.py +0 -0
  164. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/datadisplay/tag.pyi +0 -0
  165. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/disclosure/__init__.py +0 -0
  166. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/disclosure/accordion.py +0 -0
  167. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/disclosure/accordion.pyi +0 -0
  168. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/disclosure/tabs.py +0 -0
  169. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/disclosure/tabs.pyi +0 -0
  170. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/disclosure/transition.py +0 -0
  171. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/disclosure/transition.pyi +0 -0
  172. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/disclosure/visuallyhidden.py +0 -0
  173. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/disclosure/visuallyhidden.pyi +0 -0
  174. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/feedback/__init__.py +0 -0
  175. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/feedback/alert.py +0 -0
  176. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/feedback/alert.pyi +0 -0
  177. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/feedback/circularprogress.py +0 -0
  178. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/feedback/circularprogress.pyi +0 -0
  179. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/feedback/progress.py +0 -0
  180. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/feedback/progress.pyi +0 -0
  181. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/feedback/skeleton.py +0 -0
  182. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/feedback/skeleton.pyi +0 -0
  183. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/feedback/spinner.py +0 -0
  184. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/feedback/spinner.pyi +0 -0
  185. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/__init__.py +0 -0
  186. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/button.pyi +0 -0
  187. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/checkbox.pyi +0 -0
  188. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/colormodeswitch.py +0 -0
  189. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/colormodeswitch.pyi +0 -0
  190. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/date_picker.py +0 -0
  191. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/date_picker.pyi +0 -0
  192. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/date_time_picker.py +0 -0
  193. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/date_time_picker.pyi +0 -0
  194. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/debounce.py +0 -0
  195. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/debounce.pyi +0 -0
  196. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/editable.py +0 -0
  197. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/editable.pyi +0 -0
  198. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/editor.py +0 -0
  199. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/editor.pyi +0 -0
  200. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/email.py +0 -0
  201. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/email.pyi +0 -0
  202. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/form.pyi +0 -0
  203. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/iconbutton.py +0 -0
  204. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/iconbutton.pyi +0 -0
  205. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/input.pyi +0 -0
  206. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/multiselect.py +0 -0
  207. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/numberinput.pyi +0 -0
  208. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/password.py +0 -0
  209. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/password.pyi +0 -0
  210. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/pininput.pyi +0 -0
  211. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/radio.pyi +0 -0
  212. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/rangeslider.pyi +0 -0
  213. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/select.pyi +0 -0
  214. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/slider.pyi +0 -0
  215. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/switch.pyi +0 -0
  216. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/textarea.pyi +0 -0
  217. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/upload.py +0 -0
  218. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/forms/upload.pyi +0 -0
  219. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/graphing/__init__.py +0 -0
  220. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/graphing/plotly.py +0 -0
  221. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/graphing/plotly.pyi +0 -0
  222. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/graphing/recharts/__init__.py +0 -0
  223. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/graphing/recharts/cartesian.py +0 -0
  224. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/graphing/recharts/cartesian.pyi +0 -0
  225. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/graphing/recharts/charts.py +0 -0
  226. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/graphing/recharts/charts.pyi +0 -0
  227. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/graphing/recharts/general.py +0 -0
  228. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/graphing/recharts/general.pyi +0 -0
  229. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/graphing/recharts/polar.py +0 -0
  230. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/graphing/recharts/polar.pyi +0 -0
  231. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/graphing/recharts/recharts.py +0 -0
  232. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/graphing/recharts/recharts.pyi +0 -0
  233. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/layout/__init__.py +0 -0
  234. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/layout/aspect_ratio.py +0 -0
  235. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/layout/aspect_ratio.pyi +0 -0
  236. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/layout/box.py +0 -0
  237. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/layout/box.pyi +0 -0
  238. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/layout/card.py +0 -0
  239. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/layout/card.pyi +0 -0
  240. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/layout/center.py +0 -0
  241. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/layout/center.pyi +0 -0
  242. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/layout/cond.py +0 -0
  243. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/layout/container.py +0 -0
  244. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/layout/container.pyi +0 -0
  245. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/layout/flex.py +0 -0
  246. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/layout/flex.pyi +0 -0
  247. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/layout/foreach.py +0 -0
  248. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/layout/fragment.py +0 -0
  249. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/layout/fragment.pyi +0 -0
  250. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/layout/grid.py +0 -0
  251. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/layout/grid.pyi +0 -0
  252. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/layout/html.py +0 -0
  253. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/layout/html.pyi +0 -0
  254. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/layout/responsive.py +0 -0
  255. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/layout/spacer.py +0 -0
  256. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/layout/spacer.pyi +0 -0
  257. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/layout/stack.py +0 -0
  258. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/layout/stack.pyi +0 -0
  259. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/layout/wrap.py +0 -0
  260. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/layout/wrap.pyi +0 -0
  261. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/libs/__init__.py +0 -0
  262. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/libs/react_player.py +0 -0
  263. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/libs/react_player.pyi +0 -0
  264. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/literals.py +0 -0
  265. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/media/__init__.py +0 -0
  266. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/media/audio.py +0 -0
  267. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/media/audio.pyi +0 -0
  268. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/media/avatar.py +0 -0
  269. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/media/avatar.pyi +0 -0
  270. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/media/icon.py +0 -0
  271. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/media/icon.pyi +0 -0
  272. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/media/image.py +0 -0
  273. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/media/image.pyi +0 -0
  274. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/media/video.py +0 -0
  275. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/media/video.pyi +0 -0
  276. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/navigation/__init__.py +0 -0
  277. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/navigation/breadcrumb.py +0 -0
  278. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/navigation/breadcrumb.pyi +0 -0
  279. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/navigation/client_side_routing.py +0 -0
  280. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/navigation/client_side_routing.pyi +0 -0
  281. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/navigation/link.py +0 -0
  282. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/navigation/link.pyi +0 -0
  283. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/navigation/linkoverlay.py +0 -0
  284. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/navigation/linkoverlay.pyi +0 -0
  285. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/navigation/nextlink.py +0 -0
  286. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/navigation/nextlink.pyi +0 -0
  287. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/navigation/stepper.py +0 -0
  288. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/navigation/stepper.pyi +0 -0
  289. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/overlay/__init__.py +0 -0
  290. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/overlay/alertdialog.py +0 -0
  291. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/overlay/alertdialog.pyi +0 -0
  292. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/overlay/banner.py +0 -0
  293. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/overlay/banner.pyi +0 -0
  294. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/overlay/drawer.py +0 -0
  295. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/overlay/drawer.pyi +0 -0
  296. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/overlay/menu.py +0 -0
  297. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/overlay/menu.pyi +0 -0
  298. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/overlay/modal.py +0 -0
  299. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/overlay/modal.pyi +0 -0
  300. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/overlay/popover.py +0 -0
  301. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/overlay/popover.pyi +0 -0
  302. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/overlay/tooltip.py +0 -0
  303. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/overlay/tooltip.pyi +0 -0
  304. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/radix/__init__.py +0 -0
  305. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/radix/themes/__init__.py +0 -0
  306. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/radix/themes/base.py +0 -0
  307. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/radix/themes/base.pyi +0 -0
  308. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/radix/themes/components.py +0 -0
  309. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/radix/themes/components.pyi +0 -0
  310. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/radix/themes/layout.py +0 -0
  311. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/radix/themes/layout.pyi +0 -0
  312. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/radix/themes/typography.py +0 -0
  313. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/radix/themes/typography.pyi +0 -0
  314. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/tags/__init__.py +0 -0
  315. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/tags/cond_tag.py +0 -0
  316. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/tags/iter_tag.py +0 -0
  317. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/tags/tagless.py +0 -0
  318. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/typography/__init__.py +0 -0
  319. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/typography/heading.py +0 -0
  320. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/typography/heading.pyi +0 -0
  321. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/typography/highlight.py +0 -0
  322. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/typography/highlight.pyi +0 -0
  323. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/typography/markdown.pyi +0 -0
  324. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/typography/span.py +0 -0
  325. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/typography/span.pyi +0 -0
  326. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/typography/text.py +0 -0
  327. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/components/typography/text.pyi +0 -0
  328. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/config.py +0 -0
  329. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/config.pyi +0 -0
  330. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/constants/__init__.py +0 -0
  331. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/constants/base.py +0 -0
  332. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/constants/compiler.py +0 -0
  333. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/constants/config.py +0 -0
  334. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/constants/event.py +0 -0
  335. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/constants/hosting.py +0 -0
  336. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/constants/route.py +0 -0
  337. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/constants/style.py +0 -0
  338. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/el/__init__.py +0 -0
  339. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/el/constants/__init__.py +0 -0
  340. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/el/constants/html.py +0 -0
  341. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/el/constants/react.py +0 -0
  342. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/el/constants/reflex.py +0 -0
  343. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/el/element.py +0 -0
  344. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/el/elements/__init__.py +0 -0
  345. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/el/precompile.py +0 -0
  346. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/middleware/__init__.py +0 -0
  347. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/middleware/hydrate_middleware.py +0 -0
  348. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/middleware/middleware.py +0 -0
  349. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/model.py +0 -0
  350. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/route.py +0 -0
  351. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/style.py +0 -0
  352. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/utils/__init__.py +0 -0
  353. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/utils/dependency.py +0 -0
  354. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/utils/exceptions.py +0 -0
  355. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/utils/exec.py +0 -0
  356. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/utils/hosting.py +0 -0
  357. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/utils/imports.py +0 -0
  358. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/utils/path_ops.py +0 -0
  359. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/utils/serializers.py +0 -0
  360. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/utils/telemetry.py +0 -0
  361. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/utils/types.py +0 -0
  362. {reflex-0.3.2 → reflex-0.3.3a1}/reflex/utils/watch.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: reflex
3
- Version: 0.3.2
3
+ Version: 0.3.3a1
4
4
  Summary: Web apps in pure Python.
5
5
  Home-page: https://reflex.dev
6
6
  License: Apache-2.0
@@ -36,7 +36,8 @@ Requires-Dist: sqlmodel (>=0.0.8,<0.0.9)
36
36
  Requires-Dist: starlette-admin (>=0.9.0,<0.10.0)
37
37
  Requires-Dist: tabulate (>=0.9.0,<0.10.0)
38
38
  Requires-Dist: typer (>=0.4.2,<1)
39
- Requires-Dist: uvicorn (>=0.20.0,<0.21.0)
39
+ Requires-Dist: uvicorn (>=0.20.0,<0.21.0) ; python_version < "3.12"
40
+ Requires-Dist: uvicorn (>=0.24.0,<0.25.0) ; python_version >= "3.12"
40
41
  Requires-Dist: watchdog (>=2.3.1,<3.0.0)
41
42
  Requires-Dist: watchfiles (>=0.19.0,<0.20.0)
42
43
  Requires-Dist: websockets (>=10.4,<11.0)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "reflex"
3
- version = "0.3.2"
3
+ version = "0.3.3a1"
4
4
  description = "Web apps in pure Python."
5
5
  license = "Apache-2.0"
6
6
  authors = [
@@ -40,7 +40,10 @@ redis = "^4.3.5"
40
40
  rich = "^13.0.0"
41
41
  sqlmodel = "^0.0.8"
42
42
  typer = ">=0.4.2,<1"
43
- uvicorn = "^0.20.0"
43
+ uvicorn = [
44
+ {version = "^0.24.0", python = ">=3.12"},
45
+ {version = "^0.20.0", python = "<3.12"},
46
+ ]
44
47
  watchdog = "^2.3.1"
45
48
  watchfiles = "^0.19.0"
46
49
  websockets = "^10.4"
@@ -68,7 +71,8 @@ pytest-cov = "^4.0.0"
68
71
  black = "^22.10.0"
69
72
  ruff = "^0.0.244"
70
73
  pandas = [
71
- {version = "^1.5.3", python = ">=3.8,<4.0"},
74
+ {version = "^2.1.1", python = ">=3.9,<3.13"},
75
+ {version = "^1.5.3", python = ">=3.8,<3.9"},
72
76
  ]
73
77
  pillow = [
74
78
  {version = "^10.0.0", python = ">=3.8,<4.0"}
@@ -78,6 +82,7 @@ asynctest = "^0.13.0"
78
82
  pre-commit = {version = "^3.2.1", python = ">=3.8,<4.0"}
79
83
  selenium = "^4.11.0"
80
84
  types-tabulate = "^0.9.0.3"
85
+ pytest-benchmark = "^4.0.0"
81
86
 
82
87
  [tool.poetry.scripts]
83
88
  reflex = "reflex.reflex:cli"
@@ -0,0 +1,27 @@
1
+ {% extends "web/pages/base_page.js.jinja2" %}
2
+
3
+ {% block export %}
4
+ {% for component in components %}
5
+
6
+ export const {{component.name}} = memo(({ {{-component.props|join(", ")-}} }) => {
7
+ {% if component.name == "CodeBlock" and "language" in component.props %}
8
+ if (language) {
9
+ (async () => {
10
+ try {
11
+ const module = await import(`react-syntax-highlighter/dist/cjs/languages/prism/${language}`);
12
+ SyntaxHighlighter.registerLanguage(language, module.default);
13
+ } catch (error) {
14
+ console.error(`Error importing language module for ${language}:`, error);
15
+ }
16
+ })();
17
+
18
+
19
+ }
20
+ {% endif %}
21
+ return(
22
+ {{utils.render(component.render)}}
23
+ )
24
+
25
+ })
26
+ {% endfor %}
27
+ {% endblock %}
@@ -3,4 +3,5 @@ module.exports = {
3
3
  compress: true,
4
4
  reactStrictMode: true,
5
5
  trailingSlash: true,
6
+ output: "",
6
7
  };
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Simulate the python range() builtin function.
3
+ * inspired by https://dev.to/guyariely/using-python-range-in-javascript-337p
4
+ *
5
+ * If needed outside of an iterator context, use `Array.from(range(10))` or
6
+ * spread syntax `[...range(10)]` to get an array.
7
+ *
8
+ * @param {number} start: the start or end of the range.
9
+ * @param {number} stop: the end of the range.
10
+ * @param {number} step: the step of the range.
11
+ * @returns {object} an object with a Symbol.iterator method over the range
12
+ */
13
+ export default function range(start, stop, step) {
14
+ return {
15
+ [Symbol.iterator]() {
16
+ if (stop === undefined) {
17
+ stop = start;
18
+ start = 0;
19
+ }
20
+ if (step === undefined) {
21
+ step = 1;
22
+ }
23
+
24
+ let i = start - step;
25
+
26
+ return {
27
+ next() {
28
+ i += step;
29
+ if ((step > 0 && i < stop) || (step < 0 && i > stop)) {
30
+ return {
31
+ value: i,
32
+ done: false,
33
+ };
34
+ }
35
+ return {
36
+ value: undefined,
37
+ done: true,
38
+ };
39
+ },
40
+ };
41
+ },
42
+ };
43
+ }
@@ -12,6 +12,9 @@ import { initialEvents } from "utils/context.js"
12
12
  const EVENTURL = env.EVENT
13
13
  const UPLOADURL = env.UPLOAD
14
14
 
15
+ // These hostnames indicate that the backend and frontend are reachable via the same domain.
16
+ const SAME_DOMAIN_HOSTNAMES = ["localhost", "0.0.0.0", "::", "0:0:0:0:0:0:0:0"]
17
+
15
18
  // Global variable to hold the token.
16
19
  let token;
17
20
 
@@ -74,12 +77,13 @@ export const getToken = () => {
74
77
  export const getEventURL = () => {
75
78
  // Get backend URL object from the endpoint.
76
79
  const endpoint = new URL(EVENTURL);
77
- if (endpoint.hostname === "localhost") {
78
- // If the backend URL references localhost, and the frontend is not on localhost,
79
- // then use the frontend host.
80
+ if (SAME_DOMAIN_HOSTNAMES.includes(endpoint.hostname)) {
81
+ // Use the frontend domain to access the backend
80
82
  const frontend_hostname = window.location.hostname;
81
- if (frontend_hostname !== "localhost") {
82
- endpoint.hostname = frontend_hostname;
83
+ endpoint.hostname = frontend_hostname;
84
+ if (window.location.protocol === "https:" && endpoint.protocol === "ws:") {
85
+ endpoint.protocol = "wss:";
86
+ endpoint.port = ""; // Assume websocket is on https port via load balancer.
83
87
  }
84
88
  }
85
89
  return endpoint
@@ -569,7 +573,7 @@ export const getRefValues = (refs) => {
569
573
  return;
570
574
  }
571
575
  // getAttribute is used by RangeSlider because it doesn't assign value
572
- return refs.map((ref) => ref.current.value || ref.current.getAttribute("aria-valuenow"));
576
+ return refs.map((ref) => ref.current ? ref.current.value || ref.current.getAttribute("aria-valuenow") : null);
573
577
  }
574
578
 
575
579
  /**
@@ -0,0 +1,319 @@
1
+ """Import all classes and functions the end user will need to make an app.
2
+
3
+ Anything imported here will be available in the default Reflex import as `rx.*`.
4
+ To signal to typecheckers that something should be reexported,
5
+ we use the Flask "import name as name" syntax.
6
+ """
7
+ import importlib
8
+ from typing import Type
9
+
10
+ from reflex.page import page as page
11
+ from reflex.utils.format import to_snake_case
12
+
13
+ _ALL_COMPONENTS = [
14
+ "Accordion",
15
+ "AccordionButton",
16
+ "AccordionIcon",
17
+ "AccordionItem",
18
+ "AccordionPanel",
19
+ "Alert",
20
+ "AlertDescription",
21
+ "AlertDialog",
22
+ "AlertDialogBody",
23
+ "AlertDialogContent",
24
+ "AlertDialogFooter",
25
+ "AlertDialogHeader",
26
+ "AlertDialogOverlay",
27
+ "AlertIcon",
28
+ "AlertTitle",
29
+ "AspectRatio",
30
+ "Audio",
31
+ "Avatar",
32
+ "AvatarBadge",
33
+ "AvatarGroup",
34
+ "Badge",
35
+ "Box",
36
+ "Breadcrumb",
37
+ "BreadcrumbItem",
38
+ "BreadcrumbLink",
39
+ "BreadcrumbSeparator",
40
+ "Button",
41
+ "ButtonGroup",
42
+ "Card",
43
+ "CardBody",
44
+ "CardFooter",
45
+ "CardHeader",
46
+ "Center",
47
+ "Checkbox",
48
+ "CheckboxGroup",
49
+ "CircularProgress",
50
+ "CircularProgressLabel",
51
+ "Circle",
52
+ "Code",
53
+ "CodeBlock",
54
+ "Collapse",
55
+ "ColorModeButton",
56
+ "ColorModeIcon",
57
+ "ColorModeSwitch",
58
+ "Component",
59
+ "Cond",
60
+ "ConnectionBanner",
61
+ "ConnectionModal",
62
+ "Container",
63
+ "DataTable",
64
+ "DataEditor",
65
+ "DebounceInput",
66
+ "Divider",
67
+ "Drawer",
68
+ "DrawerBody",
69
+ "DrawerCloseButton",
70
+ "DrawerContent",
71
+ "DrawerFooter",
72
+ "DrawerHeader",
73
+ "DrawerOverlay",
74
+ "Editable",
75
+ "EditableInput",
76
+ "EditablePreview",
77
+ "EditableTextarea",
78
+ "Editor",
79
+ "Email",
80
+ "Fade",
81
+ "Flex",
82
+ "Foreach",
83
+ "Form",
84
+ "FormControl",
85
+ "FormErrorMessage",
86
+ "FormHelperText",
87
+ "FormLabel",
88
+ "Fragment",
89
+ "Grid",
90
+ "GridItem",
91
+ "Heading",
92
+ "Highlight",
93
+ "Hstack",
94
+ "Html",
95
+ "Icon",
96
+ "IconButton",
97
+ "Image",
98
+ "Input",
99
+ "InputGroup",
100
+ "InputLeftAddon",
101
+ "InputLeftElement",
102
+ "InputRightAddon",
103
+ "InputRightElement",
104
+ "Kbd",
105
+ "Link",
106
+ "LinkBox",
107
+ "LinkOverlay",
108
+ "List",
109
+ "ListItem",
110
+ "Markdown",
111
+ "Menu",
112
+ "MenuButton",
113
+ "MenuDivider",
114
+ "MenuGroup",
115
+ "MenuItem",
116
+ "MenuItemOption",
117
+ "MenuList",
118
+ "MenuOptionGroup",
119
+ "Modal",
120
+ "ModalBody",
121
+ "ModalCloseButton",
122
+ "ModalContent",
123
+ "ModalFooter",
124
+ "ModalHeader",
125
+ "ModalOverlay",
126
+ "Moment",
127
+ "MultiSelect",
128
+ "MultiSelectOption",
129
+ "NextLink",
130
+ "NumberDecrementStepper",
131
+ "NumberIncrementStepper",
132
+ "NumberInput",
133
+ "NumberInputField",
134
+ "NumberInputStepper",
135
+ "Option",
136
+ "OrderedList",
137
+ "Password",
138
+ "PinInput",
139
+ "PinInputField",
140
+ "Plotly",
141
+ "Popover",
142
+ "PopoverAnchor",
143
+ "PopoverArrow",
144
+ "PopoverBody",
145
+ "PopoverCloseButton",
146
+ "PopoverContent",
147
+ "PopoverFooter",
148
+ "PopoverHeader",
149
+ "PopoverTrigger",
150
+ "Progress",
151
+ "Radio",
152
+ "RadioGroup",
153
+ "RangeSlider",
154
+ "RangeSliderFilledTrack",
155
+ "RangeSliderThumb",
156
+ "RangeSliderTrack",
157
+ "ResponsiveGrid",
158
+ "ScaleFade",
159
+ "Script",
160
+ "Select",
161
+ "Skeleton",
162
+ "SkeletonCircle",
163
+ "SkeletonText",
164
+ "Slide",
165
+ "SlideFade",
166
+ "Slider",
167
+ "SliderFilledTrack",
168
+ "SliderMark",
169
+ "SliderThumb",
170
+ "SliderTrack",
171
+ "Spacer",
172
+ "Span",
173
+ "Spinner",
174
+ "Square",
175
+ "Stack",
176
+ "Stat",
177
+ "StatArrow",
178
+ "StatGroup",
179
+ "StatHelpText",
180
+ "StatLabel",
181
+ "StatArrow",
182
+ "StatGroup",
183
+ "StatHelpText",
184
+ "StatLabel",
185
+ "StatNumber",
186
+ "Step",
187
+ "StepDescription",
188
+ "StepIcon",
189
+ "StepIndicator",
190
+ "StepNumber",
191
+ "StepSeparator",
192
+ "StepStatus",
193
+ "StepTitle",
194
+ "Stepper",
195
+ "Switch",
196
+ "Tab",
197
+ "TabList",
198
+ "TabPanel",
199
+ "TabPanels",
200
+ "Table",
201
+ "TableCaption",
202
+ "TableContainer",
203
+ "Tabs",
204
+ "Tag",
205
+ "TagCloseButton",
206
+ "TagLabel",
207
+ "TagLeftIcon",
208
+ "TagRightIcon",
209
+ "Tbody",
210
+ "Td",
211
+ "Text",
212
+ "TextArea",
213
+ "Tfoot",
214
+ "Th",
215
+ "Thead",
216
+ "Tooltip",
217
+ "Tr",
218
+ "UnorderedList",
219
+ "Upload",
220
+ "Video",
221
+ "VisuallyHidden",
222
+ "Vstack",
223
+ "Wrap",
224
+ "WrapItem",
225
+ ]
226
+
227
+ _ALL_COMPONENTS += [to_snake_case(component) for component in _ALL_COMPONENTS]
228
+ _ALL_COMPONENTS += [
229
+ "components",
230
+ "desktop_only",
231
+ "mobile_only",
232
+ "tablet_only",
233
+ "mobile_and_tablet",
234
+ "tablet_and_desktop",
235
+ "selected_files",
236
+ "clear_selected_files",
237
+ "EditorOptions",
238
+ ]
239
+
240
+ _MAPPING = {
241
+ "reflex.admin": ["admin", "AdminDash"],
242
+ "reflex.app": ["app", "App", "UploadFile"],
243
+ "reflex.base": ["base", "Base"],
244
+ "reflex.compiler": ["compiler"],
245
+ "reflex.compiler.utils": ["get_asset_path"],
246
+ "reflex.components": _ALL_COMPONENTS,
247
+ "reflex.components.component": ["memo"],
248
+ "reflex.components.graphing": ["recharts"],
249
+ "reflex.config": ["config", "Config", "DBConfig"],
250
+ "reflex.constants": ["constants", "Env"],
251
+ "reflex.el": ["el"],
252
+ "reflex.event": [
253
+ "event",
254
+ "EventChain",
255
+ "background",
256
+ "call_script",
257
+ "clear_local_storage",
258
+ "console_log",
259
+ "download",
260
+ "prevent_default",
261
+ "redirect",
262
+ "remove_cookie",
263
+ "remove_local_storage",
264
+ "set_clipboard",
265
+ "set_focus",
266
+ "set_value",
267
+ "stop_propagation",
268
+ "upload_files",
269
+ "window_alert",
270
+ ],
271
+ "reflex.middleware": ["middleware", "Middleware"],
272
+ "reflex.model": ["model", "session", "Model"],
273
+ "reflex.page": ["page"],
274
+ "reflex.route": ["route"],
275
+ "reflex.state": ["state", "var", "Cookie", "LocalStorage", "State"],
276
+ "reflex.style": ["style", "color_mode", "toggle_color_mode"],
277
+ "reflex.testing": ["testing"],
278
+ "reflex.utils": ["utils"],
279
+ "reflex.vars": ["vars", "cached_var", "Var"],
280
+ }
281
+ _MAPPING = {value: key for key, values in _MAPPING.items() for value in values}
282
+
283
+
284
+ def _removeprefix(text, prefix):
285
+ return text[text.startswith(prefix) and len(prefix) :]
286
+
287
+
288
+ __all__ = [_removeprefix(mod, "reflex.") for mod in _MAPPING]
289
+
290
+
291
+ def __getattr__(name: str) -> Type:
292
+ """Lazy load all modules.
293
+
294
+ Args:
295
+ name: name of the module to load.
296
+
297
+ Returns:
298
+ The module or the attribute of the module.
299
+
300
+ Raises:
301
+ AttributeError: If the module or the attribute does not exist.
302
+ """
303
+ try:
304
+ # Check for import of a module that is not in the mapping.
305
+ if name not in _MAPPING:
306
+ # If the name does not start with reflex, add it.
307
+ if not name.startswith("reflex") and name != "__all__":
308
+ name = f"reflex.{name}"
309
+ return importlib.import_module(name)
310
+
311
+ # Import the module.
312
+ module = importlib.import_module(_MAPPING[name])
313
+
314
+ # Get the attribute from the module if the name is not the module itself.
315
+ return (
316
+ getattr(module, name) if name != _MAPPING[name].rsplit(".")[-1] else module
317
+ )
318
+ except ModuleNotFoundError:
319
+ raise AttributeError(f"module 'reflex' has no attribute {name}") from None