reflex 0.4.9a2__tar.gz → 0.5.0a1__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 (526) hide show
  1. {reflex-0.4.9a2 → reflex-0.5.0a1}/PKG-INFO +16 -4
  2. {reflex-0.4.9a2 → reflex-0.5.0a1}/README.md +13 -2
  3. {reflex-0.4.9a2 → reflex-0.5.0a1}/pyproject.toml +9 -12
  4. reflex-0.5.0a1/reflex/.templates/apps/blank/code/blank.py +39 -0
  5. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/apps/demo/code/pages/datatable.py +4 -4
  6. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/apps/demo/code/pages/forms.py +2 -2
  7. reflex-0.5.0a1/reflex/.templates/web/utils/helpers/debounce.js +17 -0
  8. reflex-0.5.0a1/reflex/.templates/web/utils/helpers/throttle.js +22 -0
  9. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/web/utils/state.js +21 -3
  10. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/__init__.py +6 -1
  11. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/__init__.pyi +4 -1
  12. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/app.py +157 -140
  13. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/app_module_for_backend.py +1 -1
  14. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/base.py +13 -15
  15. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/compiler/compiler.py +10 -1
  16. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/compiler/utils.py +3 -30
  17. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/__init__.py +1 -0
  18. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/datadisplay/list.py +1 -3
  19. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/datadisplay/list.pyi +3 -3
  20. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/disclosure/accordion.py +1 -1
  21. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/forms/pininput.pyi +1 -1
  22. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/media/icon.py +2 -2
  23. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/component.py +279 -32
  24. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/core/__init__.py +2 -2
  25. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/core/cond.py +1 -10
  26. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/core/debounce.py +5 -2
  27. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/core/debounce.pyi +4 -2
  28. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/core/foreach.py +1 -16
  29. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/core/html.py +6 -0
  30. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/core/match.py +2 -17
  31. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/core/upload.py +42 -1
  32. reflex-0.5.0a1/reflex/components/core/upload.pyi +419 -0
  33. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/datadisplay/code.py +7 -3
  34. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/datadisplay/code.pyi +3 -1
  35. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/el/elements/forms.py +1 -1
  36. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/el/elements/forms.pyi +1 -1
  37. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/lucide/icon.py +5 -13
  38. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/lucide/icon.pyi +0 -1
  39. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/markdown/markdown.py +5 -23
  40. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/markdown/markdown.pyi +1 -4
  41. reflex-0.5.0a1/reflex/components/radix/primitives/accordion.py +486 -0
  42. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/primitives/accordion.pyi +369 -28
  43. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/primitives/form.py +33 -29
  44. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/primitives/form.pyi +7 -2
  45. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/primitives/progress.py +17 -9
  46. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/primitives/progress.pyi +2 -0
  47. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/primitives/slider.py +30 -18
  48. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/primitives/slider.pyi +4 -0
  49. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/base.py +8 -1
  50. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/base.pyi +79 -1
  51. reflex-0.5.0a1/reflex/components/radix/themes/color_mode.py +153 -0
  52. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/color_mode.pyi +26 -185
  53. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/__init__.py +17 -0
  54. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/badge.py +2 -1
  55. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/badge.pyi +3 -1
  56. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/button.py +3 -1
  57. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/button.pyi +4 -1
  58. reflex-0.5.0a1/reflex/components/radix/themes/components/checkbox_cards.py +48 -0
  59. reflex-0.5.0a1/reflex/components/radix/themes/components/checkbox_cards.pyi +264 -0
  60. reflex-0.5.0a1/reflex/components/radix/themes/components/checkbox_group.py +42 -0
  61. reflex-0.5.0a1/reflex/components/radix/themes/components/checkbox_group.pyi +253 -0
  62. reflex-0.5.0a1/reflex/components/radix/themes/components/data_list.py +63 -0
  63. reflex-0.5.0a1/reflex/components/radix/themes/components/data_list.pyi +426 -0
  64. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/icon_button.py +20 -17
  65. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/icon_button.pyi +5 -1
  66. reflex-0.5.0a1/reflex/components/radix/themes/components/progress.py +55 -0
  67. reflex-0.5.0a1/reflex/components/radix/themes/components/progress.pyi +180 -0
  68. reflex-0.5.0a1/reflex/components/radix/themes/components/radio.py +31 -0
  69. reflex-0.5.0a1/reflex/components/radix/themes/components/radio.pyi +169 -0
  70. reflex-0.5.0a1/reflex/components/radix/themes/components/radio_cards.py +48 -0
  71. reflex-0.5.0a1/reflex/components/radix/themes/components/radio_cards.pyi +264 -0
  72. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/radio_group.py +2 -4
  73. reflex-0.5.0a1/reflex/components/radix/themes/components/segmented_control.py +48 -0
  74. reflex-0.5.0a1/reflex/components/radix/themes/components/segmented_control.pyi +262 -0
  75. reflex-0.5.0a1/reflex/components/radix/themes/components/skeleton.py +32 -0
  76. reflex-0.5.0a1/reflex/components/radix/themes/components/skeleton.pyi +106 -0
  77. reflex-0.5.0a1/reflex/components/radix/themes/components/spinner.py +26 -0
  78. reflex-0.5.0a1/reflex/components/radix/themes/components/spinner.pyi +101 -0
  79. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/tabs.py +26 -1
  80. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/tabs.pyi +69 -9
  81. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/text_field.py +101 -71
  82. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/text_field.pyi +81 -499
  83. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/layout/base.py +2 -2
  84. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/layout/base.pyi +4 -4
  85. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/layout/center.py +8 -3
  86. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/layout/center.pyi +2 -1
  87. reflex-0.5.0a1/reflex/components/radix/themes/layout/container.py +51 -0
  88. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/layout/container.pyi +9 -30
  89. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/layout/list.py +10 -5
  90. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/layout/list.pyi +5 -21
  91. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/layout/spacer.py +8 -3
  92. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/layout/spacer.pyi +2 -1
  93. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/layout/stack.py +7 -1
  94. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/layout/stack.pyi +3 -3
  95. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/typography/link.py +10 -2
  96. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/typography/link.pyi +5 -4
  97. reflex-0.5.0a1/reflex/components/sonner/__init__.py +3 -0
  98. reflex-0.5.0a1/reflex/components/sonner/toast.py +267 -0
  99. reflex-0.5.0a1/reflex/components/sonner/toast.pyi +205 -0
  100. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/tags/iter_tag.py +9 -6
  101. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/config.py +30 -54
  102. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/constants/__init__.py +0 -2
  103. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/constants/base.py +0 -5
  104. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/constants/colors.py +2 -0
  105. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/constants/installer.py +5 -1
  106. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/constants/route.py +4 -0
  107. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/custom_components/custom_components.py +22 -1
  108. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/event.py +75 -30
  109. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/experimental/__init__.py +5 -0
  110. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/experimental/layout.py +24 -6
  111. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/model.py +2 -1
  112. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/page.py +7 -4
  113. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/reflex.py +8 -3
  114. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/route.py +39 -0
  115. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/state.py +128 -131
  116. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/style.py +20 -1
  117. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/testing.py +10 -6
  118. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/utils/console.py +3 -1
  119. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/utils/exec.py +20 -7
  120. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/utils/format.py +1 -1
  121. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/utils/imports.py +3 -1
  122. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/utils/prerequisites.py +141 -20
  123. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/utils/processes.py +21 -1
  124. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/utils/pyi_generator.py +95 -5
  125. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/utils/serializers.py +1 -1
  126. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/utils/telemetry.py +26 -4
  127. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/utils/types.py +62 -18
  128. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/vars.py +11 -5
  129. reflex-0.4.9a2/reflex/.templates/apps/blank/code/blank.py +0 -36
  130. reflex-0.4.9a2/reflex/app.pyi +0 -149
  131. reflex-0.4.9a2/reflex/components/core/upload.pyi +0 -221
  132. reflex-0.4.9a2/reflex/components/radix/primitives/accordion.py +0 -665
  133. reflex-0.4.9a2/reflex/components/radix/themes/color_mode.py +0 -109
  134. reflex-0.4.9a2/reflex/components/radix/themes/layout/container.py +0 -23
  135. {reflex-0.4.9a2 → reflex-0.5.0a1}/LICENSE +0 -0
  136. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/apps/blank/assets/favicon.ico +0 -0
  137. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/apps/blank/code/__init__.py +0 -0
  138. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/apps/demo/.gitignore +0 -0
  139. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/apps/demo/assets/favicon.ico +0 -0
  140. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/apps/demo/assets/github.svg +0 -0
  141. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/apps/demo/assets/icon.svg +0 -0
  142. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/apps/demo/assets/logo.svg +0 -0
  143. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/apps/demo/assets/paneleft.svg +0 -0
  144. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/apps/demo/code/__init__.py +0 -0
  145. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/apps/demo/code/demo.py +0 -0
  146. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/apps/demo/code/pages/__init__.py +0 -0
  147. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/apps/demo/code/pages/chatapp.py +0 -0
  148. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/apps/demo/code/pages/graphing.py +0 -0
  149. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/apps/demo/code/pages/home.py +0 -0
  150. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/apps/demo/code/sidebar.py +0 -0
  151. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/apps/demo/code/state.py +0 -0
  152. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/apps/demo/code/states/form_state.py +0 -0
  153. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/apps/demo/code/states/pie_state.py +0 -0
  154. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/apps/demo/code/styles.py +0 -0
  155. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/apps/demo/code/webui/__init__.py +0 -0
  156. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/apps/demo/code/webui/components/__init__.py +0 -0
  157. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/apps/demo/code/webui/components/chat.py +0 -0
  158. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/apps/demo/code/webui/components/loading_icon.py +0 -0
  159. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/apps/demo/code/webui/components/modal.py +0 -0
  160. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/apps/demo/code/webui/components/navbar.py +0 -0
  161. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/apps/demo/code/webui/components/sidebar.py +0 -0
  162. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/apps/demo/code/webui/state.py +0 -0
  163. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/apps/demo/code/webui/styles.py +0 -0
  164. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/jinja/app/rxconfig.py.jinja2 +0 -0
  165. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/jinja/custom_components/README.md.jinja2 +0 -0
  166. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/jinja/custom_components/__init__.py.jinja2 +0 -0
  167. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/jinja/custom_components/demo_app.py.jinja2 +0 -0
  168. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/jinja/custom_components/pyproject.toml.jinja2 +0 -0
  169. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/jinja/custom_components/src.py.jinja2 +0 -0
  170. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/jinja/web/package.json.jinja2 +0 -0
  171. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/jinja/web/pages/_app.js.jinja2 +0 -0
  172. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/jinja/web/pages/_document.js.jinja2 +0 -0
  173. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/jinja/web/pages/base_page.js.jinja2 +0 -0
  174. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/jinja/web/pages/component.js.jinja2 +0 -0
  175. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/jinja/web/pages/custom_component.js.jinja2 +0 -0
  176. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/jinja/web/pages/index.js.jinja2 +0 -0
  177. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/jinja/web/pages/stateful_component.js.jinja2 +0 -0
  178. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/jinja/web/pages/stateful_components.js.jinja2 +0 -0
  179. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/jinja/web/pages/utils.js.jinja2 +0 -0
  180. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/jinja/web/styles/styles.css.jinja2 +0 -0
  181. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/jinja/web/tailwind.config.js.jinja2 +0 -0
  182. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/jinja/web/utils/context.js.jinja2 +0 -0
  183. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/jinja/web/utils/theme.js.jinja2 +0 -0
  184. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/web/.gitignore +0 -0
  185. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/web/components/reflex/chakra_color_mode_provider.js +0 -0
  186. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js +0 -0
  187. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/web/jsconfig.json +0 -0
  188. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/web/next.config.js +0 -0
  189. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/web/postcss.config.js +0 -0
  190. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/web/styles/tailwind.css +0 -0
  191. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/web/utils/client_side_routing.js +0 -0
  192. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/web/utils/helpers/dataeditor.js +0 -0
  193. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/.templates/web/utils/helpers/range.js +0 -0
  194. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/__main__.py +0 -0
  195. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/admin.py +0 -0
  196. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/compiler/__init__.py +0 -0
  197. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/compiler/templates.py +0 -0
  198. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/base/__init__.py +0 -0
  199. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/base/app_wrap.py +0 -0
  200. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/base/app_wrap.pyi +0 -0
  201. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/base/bare.py +0 -0
  202. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/base/body.py +0 -0
  203. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/base/body.pyi +0 -0
  204. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/base/document.py +0 -0
  205. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/base/document.pyi +0 -0
  206. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/base/fragment.py +0 -0
  207. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/base/fragment.pyi +0 -0
  208. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/base/head.py +0 -0
  209. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/base/head.pyi +0 -0
  210. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/base/link.py +0 -0
  211. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/base/link.pyi +0 -0
  212. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/base/meta.py +0 -0
  213. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/base/meta.pyi +0 -0
  214. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/base/script.py +0 -0
  215. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/base/script.pyi +0 -0
  216. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/__init__.py +0 -0
  217. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/base.py +0 -0
  218. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/base.pyi +0 -0
  219. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/datadisplay/__init__.py +0 -0
  220. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/datadisplay/badge.py +0 -0
  221. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/datadisplay/badge.pyi +0 -0
  222. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/datadisplay/code.py +0 -0
  223. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/datadisplay/code.pyi +0 -0
  224. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/datadisplay/divider.py +0 -0
  225. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/datadisplay/divider.pyi +0 -0
  226. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/datadisplay/keyboard_key.py +0 -0
  227. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/datadisplay/keyboard_key.pyi +0 -0
  228. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/datadisplay/stat.py +0 -0
  229. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/datadisplay/stat.pyi +0 -0
  230. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/datadisplay/table.py +0 -0
  231. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/datadisplay/table.pyi +0 -0
  232. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/datadisplay/tag.py +0 -0
  233. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/datadisplay/tag.pyi +0 -0
  234. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/disclosure/__init__.py +0 -0
  235. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/disclosure/accordion.pyi +0 -0
  236. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/disclosure/tabs.py +0 -0
  237. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/disclosure/tabs.pyi +0 -0
  238. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/disclosure/transition.py +0 -0
  239. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/disclosure/transition.pyi +0 -0
  240. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/disclosure/visuallyhidden.py +0 -0
  241. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/disclosure/visuallyhidden.pyi +0 -0
  242. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/feedback/__init__.py +0 -0
  243. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/feedback/alert.py +0 -0
  244. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/feedback/alert.pyi +0 -0
  245. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/feedback/circularprogress.py +0 -0
  246. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/feedback/circularprogress.pyi +0 -0
  247. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/feedback/progress.py +0 -0
  248. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/feedback/progress.pyi +0 -0
  249. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/feedback/skeleton.py +0 -0
  250. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/feedback/skeleton.pyi +0 -0
  251. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/feedback/spinner.py +0 -0
  252. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/feedback/spinner.pyi +0 -0
  253. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/forms/__init__.py +0 -0
  254. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/forms/button.py +0 -0
  255. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/forms/button.pyi +0 -0
  256. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/forms/checkbox.py +0 -0
  257. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/forms/checkbox.pyi +0 -0
  258. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/forms/colormodeswitch.py +0 -0
  259. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/forms/colormodeswitch.pyi +0 -0
  260. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/forms/date_picker.py +0 -0
  261. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/forms/date_picker.pyi +0 -0
  262. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/forms/date_time_picker.py +0 -0
  263. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/forms/date_time_picker.pyi +0 -0
  264. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/forms/editable.py +0 -0
  265. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/forms/editable.pyi +0 -0
  266. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/forms/email.py +0 -0
  267. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/forms/email.pyi +0 -0
  268. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/forms/form.py +0 -0
  269. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/forms/form.pyi +0 -0
  270. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/forms/iconbutton.py +0 -0
  271. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/forms/iconbutton.pyi +0 -0
  272. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/forms/input.py +0 -0
  273. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/forms/input.pyi +0 -0
  274. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/forms/multiselect.py +0 -0
  275. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/forms/numberinput.py +0 -0
  276. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/forms/numberinput.pyi +0 -0
  277. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/forms/password.py +0 -0
  278. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/forms/password.pyi +0 -0
  279. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/forms/pininput.py +0 -0
  280. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/forms/radio.py +0 -0
  281. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/forms/radio.pyi +0 -0
  282. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/forms/rangeslider.py +0 -0
  283. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/forms/rangeslider.pyi +0 -0
  284. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/forms/select.py +0 -0
  285. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/forms/select.pyi +0 -0
  286. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/forms/slider.py +0 -0
  287. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/forms/slider.pyi +0 -0
  288. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/forms/switch.py +0 -0
  289. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/forms/switch.pyi +0 -0
  290. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/forms/textarea.py +0 -0
  291. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/forms/textarea.pyi +0 -0
  292. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/forms/time_picker.py +0 -0
  293. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/forms/time_picker.pyi +0 -0
  294. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/layout/__init__.py +0 -0
  295. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/layout/aspect_ratio.py +0 -0
  296. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/layout/aspect_ratio.pyi +0 -0
  297. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/layout/box.py +0 -0
  298. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/layout/box.pyi +0 -0
  299. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/layout/card.py +0 -0
  300. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/layout/card.pyi +0 -0
  301. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/layout/center.py +0 -0
  302. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/layout/center.pyi +0 -0
  303. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/layout/container.py +0 -0
  304. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/layout/container.pyi +0 -0
  305. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/layout/flex.py +0 -0
  306. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/layout/flex.pyi +0 -0
  307. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/layout/grid.py +0 -0
  308. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/layout/grid.pyi +0 -0
  309. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/layout/spacer.py +0 -0
  310. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/layout/spacer.pyi +0 -0
  311. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/layout/stack.py +0 -0
  312. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/layout/stack.pyi +0 -0
  313. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/layout/wrap.py +0 -0
  314. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/layout/wrap.pyi +0 -0
  315. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/media/__init__.py +0 -0
  316. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/media/avatar.py +0 -0
  317. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/media/avatar.pyi +0 -0
  318. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/media/icon.pyi +0 -0
  319. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/media/image.py +0 -0
  320. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/media/image.pyi +0 -0
  321. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/navigation/__init__.py +0 -0
  322. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/navigation/breadcrumb.py +0 -0
  323. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/navigation/breadcrumb.pyi +0 -0
  324. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/navigation/link.py +0 -0
  325. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/navigation/link.pyi +0 -0
  326. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/navigation/linkoverlay.py +0 -0
  327. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/navigation/linkoverlay.pyi +0 -0
  328. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/navigation/stepper.py +0 -0
  329. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/navigation/stepper.pyi +0 -0
  330. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/overlay/__init__.py +0 -0
  331. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/overlay/alertdialog.py +0 -0
  332. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/overlay/alertdialog.pyi +0 -0
  333. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/overlay/drawer.py +0 -0
  334. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/overlay/drawer.pyi +0 -0
  335. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/overlay/menu.py +0 -0
  336. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/overlay/menu.pyi +0 -0
  337. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/overlay/modal.py +0 -0
  338. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/overlay/modal.pyi +0 -0
  339. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/overlay/popover.py +0 -0
  340. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/overlay/popover.pyi +0 -0
  341. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/overlay/tooltip.py +0 -0
  342. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/overlay/tooltip.pyi +0 -0
  343. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/typography/__init__.py +0 -0
  344. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/typography/heading.py +0 -0
  345. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/typography/heading.pyi +0 -0
  346. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/typography/highlight.py +0 -0
  347. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/typography/highlight.pyi +0 -0
  348. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/typography/span.py +0 -0
  349. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/typography/span.pyi +0 -0
  350. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/typography/text.py +0 -0
  351. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/chakra/typography/text.pyi +0 -0
  352. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/core/banner.py +0 -0
  353. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/core/banner.pyi +0 -0
  354. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/core/client_side_routing.py +0 -0
  355. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/core/client_side_routing.pyi +0 -0
  356. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/core/colors.py +0 -0
  357. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/core/html.pyi +0 -0
  358. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/core/layout/__init__.py +0 -0
  359. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/core/responsive.py +0 -0
  360. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/datadisplay/__init__.py +0 -0
  361. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/datadisplay/dataeditor.py +0 -0
  362. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/datadisplay/dataeditor.pyi +0 -0
  363. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/datadisplay/logo.py +0 -0
  364. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/el/__init__.py +0 -0
  365. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/el/constants/__init__.py +0 -0
  366. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/el/constants/html.py +0 -0
  367. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/el/constants/react.py +0 -0
  368. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/el/constants/reflex.py +0 -0
  369. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/el/element.py +0 -0
  370. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/el/element.pyi +0 -0
  371. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/el/elements/__init__.py +0 -0
  372. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/el/elements/base.py +0 -0
  373. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/el/elements/base.pyi +0 -0
  374. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/el/elements/inline.py +0 -0
  375. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/el/elements/inline.pyi +0 -0
  376. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/el/elements/media.py +0 -0
  377. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/el/elements/media.pyi +0 -0
  378. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/el/elements/metadata.py +0 -0
  379. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/el/elements/metadata.pyi +0 -0
  380. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/el/elements/other.py +0 -0
  381. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/el/elements/other.pyi +0 -0
  382. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/el/elements/scripts.py +0 -0
  383. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/el/elements/scripts.pyi +0 -0
  384. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/el/elements/sectioning.py +0 -0
  385. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/el/elements/sectioning.pyi +0 -0
  386. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/el/elements/tables.py +0 -0
  387. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/el/elements/tables.pyi +0 -0
  388. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/el/elements/typography.py +0 -0
  389. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/el/elements/typography.pyi +0 -0
  390. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/gridjs/__init__.py +0 -0
  391. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/gridjs/datatable.py +0 -0
  392. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/gridjs/datatable.pyi +0 -0
  393. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/literals.py +0 -0
  394. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/lucide/__init__.py +0 -0
  395. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/markdown/__init__.py +0 -0
  396. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/media/__init__.py +0 -0
  397. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/media/icon.py +0 -0
  398. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/moment/__init__.py +0 -0
  399. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/moment/moment.py +0 -0
  400. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/moment/moment.pyi +0 -0
  401. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/next/__init__.py +0 -0
  402. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/next/base.py +0 -0
  403. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/next/base.pyi +0 -0
  404. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/next/image.py +0 -0
  405. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/next/image.pyi +0 -0
  406. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/next/link.py +0 -0
  407. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/next/link.pyi +0 -0
  408. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/next/video.py +0 -0
  409. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/next/video.pyi +0 -0
  410. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/plotly/__init__.py +0 -0
  411. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/plotly/plotly.py +0 -0
  412. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/plotly/plotly.pyi +0 -0
  413. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/__init__.py +0 -0
  414. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/primitives/__init__.py +0 -0
  415. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/primitives/base.py +0 -0
  416. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/primitives/base.pyi +0 -0
  417. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/primitives/drawer.py +0 -0
  418. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/primitives/drawer.pyi +0 -0
  419. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/__init__.py +0 -0
  420. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/alert_dialog.py +0 -0
  421. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/alert_dialog.pyi +0 -0
  422. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/aspect_ratio.py +0 -0
  423. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/aspect_ratio.pyi +0 -0
  424. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/avatar.py +0 -0
  425. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/avatar.pyi +0 -0
  426. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/callout.py +0 -0
  427. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/callout.pyi +0 -0
  428. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/card.py +0 -0
  429. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/card.pyi +0 -0
  430. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/checkbox.py +0 -0
  431. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/checkbox.pyi +0 -0
  432. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/context_menu.py +0 -0
  433. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/context_menu.pyi +0 -0
  434. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/dialog.py +0 -0
  435. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/dialog.pyi +0 -0
  436. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/dropdown_menu.py +0 -0
  437. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/dropdown_menu.pyi +0 -0
  438. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/hover_card.py +0 -0
  439. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/hover_card.pyi +0 -0
  440. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/inset.py +0 -0
  441. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/inset.pyi +0 -0
  442. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/popover.py +0 -0
  443. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/popover.pyi +0 -0
  444. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/radio_group.pyi +0 -0
  445. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/scroll_area.py +0 -0
  446. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/scroll_area.pyi +0 -0
  447. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/select.py +0 -0
  448. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/select.pyi +0 -0
  449. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/separator.py +0 -0
  450. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/separator.pyi +0 -0
  451. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/slider.py +0 -0
  452. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/slider.pyi +0 -0
  453. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/switch.py +0 -0
  454. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/switch.pyi +0 -0
  455. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/table.py +0 -0
  456. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/table.pyi +0 -0
  457. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/text_area.py +0 -0
  458. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/text_area.pyi +0 -0
  459. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/tooltip.py +0 -0
  460. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/components/tooltip.pyi +0 -0
  461. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/layout/__init__.py +0 -0
  462. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/layout/box.py +0 -0
  463. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/layout/box.pyi +0 -0
  464. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/layout/flex.py +0 -0
  465. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/layout/flex.pyi +0 -0
  466. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/layout/grid.py +0 -0
  467. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/layout/grid.pyi +0 -0
  468. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/layout/section.py +0 -0
  469. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/layout/section.pyi +0 -0
  470. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/typography/__init__.py +0 -0
  471. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/typography/base.py +0 -0
  472. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/typography/blockquote.py +0 -0
  473. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/typography/blockquote.pyi +0 -0
  474. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/typography/code.py +0 -0
  475. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/typography/code.pyi +0 -0
  476. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/typography/heading.py +0 -0
  477. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/typography/heading.pyi +0 -0
  478. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/typography/text.py +0 -0
  479. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/radix/themes/typography/text.pyi +0 -0
  480. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/react_player/__init__.py +0 -0
  481. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/react_player/audio.py +0 -0
  482. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/react_player/audio.pyi +0 -0
  483. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/react_player/react_player.py +0 -0
  484. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/react_player/react_player.pyi +0 -0
  485. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/react_player/video.py +0 -0
  486. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/react_player/video.pyi +0 -0
  487. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/recharts/__init__.py +0 -0
  488. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/recharts/cartesian.py +0 -0
  489. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/recharts/cartesian.pyi +0 -0
  490. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/recharts/charts.py +0 -0
  491. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/recharts/charts.pyi +0 -0
  492. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/recharts/general.py +0 -0
  493. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/recharts/general.pyi +0 -0
  494. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/recharts/polar.py +0 -0
  495. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/recharts/polar.pyi +0 -0
  496. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/recharts/recharts.py +0 -0
  497. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/recharts/recharts.pyi +0 -0
  498. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/suneditor/__init__.py +0 -0
  499. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/suneditor/editor.py +0 -0
  500. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/suneditor/editor.pyi +0 -0
  501. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/tags/__init__.py +0 -0
  502. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/tags/cond_tag.py +0 -0
  503. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/tags/match_tag.py +0 -0
  504. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/tags/tag.py +0 -0
  505. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/components/tags/tagless.py +0 -0
  506. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/config.pyi +0 -0
  507. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/constants/base.pyi +0 -0
  508. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/constants/compiler.py +0 -0
  509. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/constants/config.py +0 -0
  510. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/constants/custom_components.py +0 -0
  511. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/constants/event.py +0 -0
  512. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/constants/style.py +0 -0
  513. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/custom_components/__init__.py +0 -0
  514. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/experimental/hooks.py +0 -0
  515. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/experimental/misc.py +0 -0
  516. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/middleware/__init__.py +0 -0
  517. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/middleware/hydrate_middleware.py +0 -0
  518. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/middleware/middleware.py +0 -0
  519. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/utils/__init__.py +0 -0
  520. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/utils/build.py +0 -0
  521. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/utils/compat.py +0 -0
  522. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/utils/exceptions.py +0 -0
  523. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/utils/export.py +0 -0
  524. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/utils/path_ops.py +0 -0
  525. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/utils/watch.py +0 -0
  526. {reflex-0.4.9a2 → reflex-0.5.0a1}/reflex/vars.pyi +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: reflex
3
- Version: 0.4.9a2
3
+ Version: 0.5.0a1
4
4
  Summary: Web apps in pure Python.
5
5
  Home-page: https://reflex.dev
6
6
  License: Apache-2.0
@@ -15,13 +15,14 @@ Classifier: Programming Language :: Python :: 3.8
15
15
  Classifier: Programming Language :: Python :: 3.9
16
16
  Classifier: Programming Language :: Python :: 3.10
17
17
  Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
18
19
  Requires-Dist: alembic (>=1.11.1,<2.0)
19
20
  Requires-Dist: build (>=1.0.3,<2.0)
20
21
  Requires-Dist: charset-normalizer (>=3.3.2,<4.0)
21
22
  Requires-Dist: dill (>=0.3.8,<0.4)
22
23
  Requires-Dist: distro (>=1.8.0,<2.0) ; sys_platform == "linux"
23
24
  Requires-Dist: fastapi (>=0.96.0,<1.0)
24
- Requires-Dist: gunicorn (>=20.1.0,<22.0)
25
+ Requires-Dist: gunicorn (>=20.1.0,<23.0)
25
26
  Requires-Dist: httpx (>=0.25.1,<1.0)
26
27
  Requires-Dist: jinja2 (>=3.1.2,<4.0)
27
28
  Requires-Dist: packaging (>=23.1,<25.0)
@@ -71,7 +72,7 @@ Description-Content-Type: text/markdown
71
72
 
72
73
  ---
73
74
 
74
- [English](https://github.com/reflex-dev/reflex/blob/main/README.md) | [简体中文](https://github.com/reflex-dev/reflex/blob/main/docs/zh/zh_cn/README.md) | [繁體中文](https://github.com/reflex-dev/reflex/blob/main/docs/zh/zh_tw/README.md) | [Türkçe](https://github.com/reflex-dev/reflex/blob/main/docs/tr/README.md) | [हिंदी](https://github.com/reflex-dev/reflex/blob/main/docs/in/README.md) | [Português (Brasil)](https://github.com/reflex-dev/reflex/blob/main/docs/pt/pt_br/README.md) | [Italiano](https://github.com/reflex-dev/reflex/blob/main/docs/it/README.md) | [Español](https://github.com/reflex-dev/reflex/blob/main/docs/es/README.md) | [한국어](https://github.com/reflex-dev/reflex/blob/main/docs/kr/README.md)
75
+ [English](https://github.com/reflex-dev/reflex/blob/main/README.md) | [简体中文](https://github.com/reflex-dev/reflex/blob/main/docs/zh/zh_cn/README.md) | [繁體中文](https://github.com/reflex-dev/reflex/blob/main/docs/zh/zh_tw/README.md) | [Türkçe](https://github.com/reflex-dev/reflex/blob/main/docs/tr/README.md) | [हिंदी](https://github.com/reflex-dev/reflex/blob/main/docs/in/README.md) | [Português (Brasil)](https://github.com/reflex-dev/reflex/blob/main/docs/pt/pt_br/README.md) | [Italiano](https://github.com/reflex-dev/reflex/blob/main/docs/it/README.md) | [Español](https://github.com/reflex-dev/reflex/blob/main/docs/es/README.md) | [한국어](https://github.com/reflex-dev/reflex/blob/main/docs/kr/README.md) | [日本語](https://github.com/reflex-dev/reflex/blob/main/docs/ja/README.md)
75
76
 
76
77
  ---
77
78
 
@@ -133,6 +134,8 @@ Let's go over an example: creating an image generation UI around [DALL·E](https
133
134
 
134
135
  Here is the complete code to create this. This is all done in one Python file!
135
136
 
137
+
138
+
136
139
  ```python
137
140
  import reflex as rx
138
141
  import openai
@@ -161,6 +164,7 @@ class State(rx.State):
161
164
  self.image_url = response.data[0].url
162
165
  self.processing, self.complete = False, True
163
166
 
167
+
164
168
  def index():
165
169
  return rx.center(
166
170
  rx.vstack(
@@ -185,14 +189,22 @@ def index():
185
189
  height="100vh",
186
190
  )
187
191
 
188
-
189
192
  # Add state and page to the app.
190
193
  app = rx.App()
191
194
  app.add_page(index, title="Reflex:DALL-E")
192
195
  ```
193
196
 
197
+
198
+
199
+
200
+
194
201
  ## Let's break this down.
195
202
 
203
+ <div align="center">
204
+ <img src="docs/images/dalle_colored_code_example.png" alt="Explaining the differences between backend and frontend parts of the DALL-E app." width="900" />
205
+ </div>
206
+
207
+
196
208
  ### **Reflex UI**
197
209
 
198
210
  Let's start with the UI.
@@ -18,7 +18,7 @@
18
18
 
19
19
  ---
20
20
 
21
- [English](https://github.com/reflex-dev/reflex/blob/main/README.md) | [简体中文](https://github.com/reflex-dev/reflex/blob/main/docs/zh/zh_cn/README.md) | [繁體中文](https://github.com/reflex-dev/reflex/blob/main/docs/zh/zh_tw/README.md) | [Türkçe](https://github.com/reflex-dev/reflex/blob/main/docs/tr/README.md) | [हिंदी](https://github.com/reflex-dev/reflex/blob/main/docs/in/README.md) | [Português (Brasil)](https://github.com/reflex-dev/reflex/blob/main/docs/pt/pt_br/README.md) | [Italiano](https://github.com/reflex-dev/reflex/blob/main/docs/it/README.md) | [Español](https://github.com/reflex-dev/reflex/blob/main/docs/es/README.md) | [한국어](https://github.com/reflex-dev/reflex/blob/main/docs/kr/README.md)
21
+ [English](https://github.com/reflex-dev/reflex/blob/main/README.md) | [简体中文](https://github.com/reflex-dev/reflex/blob/main/docs/zh/zh_cn/README.md) | [繁體中文](https://github.com/reflex-dev/reflex/blob/main/docs/zh/zh_tw/README.md) | [Türkçe](https://github.com/reflex-dev/reflex/blob/main/docs/tr/README.md) | [हिंदी](https://github.com/reflex-dev/reflex/blob/main/docs/in/README.md) | [Português (Brasil)](https://github.com/reflex-dev/reflex/blob/main/docs/pt/pt_br/README.md) | [Italiano](https://github.com/reflex-dev/reflex/blob/main/docs/it/README.md) | [Español](https://github.com/reflex-dev/reflex/blob/main/docs/es/README.md) | [한국어](https://github.com/reflex-dev/reflex/blob/main/docs/kr/README.md) | [日本語](https://github.com/reflex-dev/reflex/blob/main/docs/ja/README.md)
22
22
 
23
23
  ---
24
24
 
@@ -80,6 +80,8 @@ Let's go over an example: creating an image generation UI around [DALL·E](https
80
80
 
81
81
  Here is the complete code to create this. This is all done in one Python file!
82
82
 
83
+
84
+
83
85
  ```python
84
86
  import reflex as rx
85
87
  import openai
@@ -108,6 +110,7 @@ class State(rx.State):
108
110
  self.image_url = response.data[0].url
109
111
  self.processing, self.complete = False, True
110
112
 
113
+
111
114
  def index():
112
115
  return rx.center(
113
116
  rx.vstack(
@@ -132,14 +135,22 @@ def index():
132
135
  height="100vh",
133
136
  )
134
137
 
135
-
136
138
  # Add state and page to the app.
137
139
  app = rx.App()
138
140
  app.add_page(index, title="Reflex:DALL-E")
139
141
  ```
140
142
 
143
+
144
+
145
+
146
+
141
147
  ## Let's break this down.
142
148
 
149
+ <div align="center">
150
+ <img src="docs/images/dalle_colored_code_example.png" alt="Explaining the differences between backend and frontend parts of the DALL-E app." width="900" />
151
+ </div>
152
+
153
+
143
154
  ### **Reflex UI**
144
155
 
145
156
  Let's start with the UI.
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "reflex"
3
- version = "0.4.9a2"
3
+ version = "0.5.0a1"
4
4
  description = "Web apps in pure Python."
5
5
  license = "Apache-2.0"
6
6
  authors = [
@@ -29,7 +29,7 @@ packages = [
29
29
  python = "^3.8"
30
30
  dill = ">=0.3.8,<0.4"
31
31
  fastapi = ">=0.96.0,<1.0"
32
- gunicorn = ">=20.1.0,<22.0"
32
+ gunicorn = ">=20.1.0,<23.0"
33
33
  jinja2 = ">=3.1.2,<4.0"
34
34
  psutil = ">=5.9.4,<6.0"
35
35
  pydantic = ">=1.10.2,<3.0"
@@ -73,7 +73,7 @@ toml = ">=0.10.2,<1.0"
73
73
  pytest-asyncio = ">=0.20.1,<0.22.0" # https://github.com/pytest-dev/pytest-asyncio/issues/706
74
74
  pytest-cov = ">=4.0.0,<5.0"
75
75
  black = "^22.10.0,<23.0"
76
- ruff = "^0.0.244,<0.1.0"
76
+ ruff = "0.1.0"
77
77
  pandas = [
78
78
  {version = ">=2.1.1,<3.0", python = ">=3.9,<3.13"},
79
79
  {version = ">=1.5.3,<2.0", python = ">=3.8,<3.9"},
@@ -97,16 +97,13 @@ build-backend = "poetry.core.masonry.api"
97
97
  [tool.pyright]
98
98
 
99
99
  [tool.ruff]
100
-
101
- select = ["B", "D", "E", "F", "I", "SIM", "W"]
102
-
103
- ignore = ["B008", "D203", "D205", "D213", "D401", "D406", "D407", "E501", "F403", "F405", "F541"]
104
-
100
+ exclude = ["*.pyi"]
105
101
  target-version = "py37"
106
-
107
- [tool.ruff.per-file-ignores]
108
-
102
+ lint.select = ["B", "D", "E", "F", "I", "SIM", "W"]
103
+ lint.ignore = ["B008", "D203", "D205", "D213", "D401", "D406", "D407", "E501", "F403", "F405", "F541"]
104
+ [tool.ruff.lint.per-file-ignores]
109
105
  "__init__.py" = ["F401"]
110
- "tests/*.py" = ["D100", "D103", "D104"]
106
+ "tests/*.py" = ["D100", "D103", "D104", "B018"]
111
107
  "reflex/.templates/*.py" = ["D100", "D103", "D104"]
112
108
  "*.pyi" = ["ALL"]
109
+ "*/blank.py" = ["I001"]
@@ -0,0 +1,39 @@
1
+ """Welcome to Reflex! This file outlines the steps to create a basic app."""
2
+
3
+ import reflex as rx
4
+
5
+ from rxconfig import config
6
+
7
+
8
+ class State(rx.State):
9
+ """The app state."""
10
+
11
+ ...
12
+
13
+
14
+ def index() -> rx.Component:
15
+ # Welcome Page (Index)
16
+ return rx.container(
17
+ rx.color_mode.button(position="top-right"),
18
+ rx.vstack(
19
+ rx.heading("Welcome to Reflex!", size="9"),
20
+ rx.text(
21
+ "Get started by editing ",
22
+ rx.code(f"{config.app_name}/{config.app_name}.py"),
23
+ size="5",
24
+ ),
25
+ rx.link(
26
+ rx.button("Check out our docs!"),
27
+ href="https://reflex.dev/docs/getting-started/introduction/",
28
+ is_external=True,
29
+ ),
30
+ spacing="5",
31
+ justify="center",
32
+ min_height="85vh",
33
+ ),
34
+ rx.logo(),
35
+ )
36
+
37
+
38
+ app = rx.App()
39
+ app.add_page(index)
@@ -201,10 +201,10 @@ state_show = """class DataTableState(State):
201
201
  data_show = """[
202
202
  ["1", "Harry James Potter", "31 July 1980", True, "Gryffindor", "11' Holly phoenix feather", "Stag", "Half-blood"],
203
203
  ["2", "Ronald Bilius Weasley", "1 March 1980", True,"Gryffindor", "12' Ash unicorn tail hair", "Jack Russell terrier", "Pure-blood"],
204
- ["3", "Hermione Jean Granger", "19 September, 1979", True, "Gryffindor", "10¾' vine wood dragon heartstring", "Otter", "Muggle-born"],
205
- ["4", "Albus Percival Wulfric Brian Dumbledore", "Late August 1881", True, "Gryffindor", "15' Elder Thestral tail hair core", "Phoenix", "Half-blood"],
206
- ["5", "Rubeus Hagrid", "6 December 1928", False, "Gryffindor", "16' Oak unknown core", "None", "Part-Human (Half-giant)"],
207
- ["6", "Fred Weasley", "1 April, 1978", True, "Gryffindor", "Unknown", "Unknown", "Pure-blood"],
204
+ ["3", "Hermione Jean Granger", "19 September, 1979", True, "Gryffindor", "10¾' vine wood dragon heartstring", "Otter", "Muggle-born"],
205
+ ["4", "Albus Percival Wulfric Brian Dumbledore", "Late August 1881", True, "Gryffindor", "15' Elder Thestral tail hair core", "Phoenix", "Half-blood"],
206
+ ["5", "Rubeus Hagrid", "6 December 1928", False, "Gryffindor", "16' Oak unknown core", "None", "Part-Human (Half-giant)"],
207
+ ["6", "Fred Weasley", "1 April, 1978", True, "Gryffindor", "Unknown", "Unknown", "Pure-blood"],
208
208
  ["7", "George Weasley", "1 April, 1978", True, "Gryffindor", "Unknown", "Unknown", "Pure-blood"],
209
209
  ]"""
210
210
 
@@ -18,8 +18,8 @@ forms_1_code = """rx.chakra.vstack(
18
18
  rx.chakra.checkbox("Checked", id="check"),
19
19
  rx.chakra.switch("Switched", id="switch"),
20
20
  ),
21
- rx.chakra.button("Submit",
22
- type_="submit",
21
+ rx.chakra.button("Submit",
22
+ type_="submit",
23
23
  bg="#ecfdf5",
24
24
  color="#047857",
25
25
  border_radius="lg",
@@ -0,0 +1,17 @@
1
+ const debounce_timeout_id = {};
2
+
3
+ /**
4
+ * Generic debounce helper
5
+ *
6
+ * @param {string} name - the name of the event to debounce
7
+ * @param {function} func - the function to call after debouncing
8
+ * @param {number} delay - the time in milliseconds to wait before calling the function
9
+ */
10
+ export default function debounce(name, func, delay) {
11
+ const key = `${name}__${delay}`;
12
+ clearTimeout(debounce_timeout_id[key]);
13
+ debounce_timeout_id[key] = setTimeout(() => {
14
+ func();
15
+ delete debounce_timeout_id[key];
16
+ }, delay);
17
+ }
@@ -0,0 +1,22 @@
1
+ const in_throttle = {};
2
+
3
+ /**
4
+ * Generic throttle helper
5
+ *
6
+ * @param {string} name - the name of the event to throttle
7
+ * @param {number} limit - time in milliseconds between events
8
+ * @returns true if the event is allowed to execute, false if it is throttled
9
+ */
10
+ export default function throttle(name, limit) {
11
+ const key = `${name}__${limit}`;
12
+ if (!in_throttle[key]) {
13
+ in_throttle[key] = true;
14
+
15
+ setTimeout(() => {
16
+ delete in_throttle[key];
17
+ }, limit);
18
+ // function was not throttled, so allow execution
19
+ return true;
20
+ }
21
+ return false;
22
+ }
@@ -12,6 +12,8 @@ import {
12
12
  onLoadInternalEvent,
13
13
  state_name,
14
14
  } from "utils/context.js";
15
+ import debounce from "/utils/helpers/debounce";
16
+ import throttle from "/utils/helpers/throttle";
15
17
 
16
18
  // Endpoint URLs.
17
19
  const EVENTURL = env.EVENT;
@@ -571,7 +573,23 @@ export const useEventLoop = (
571
573
  if (event_actions?.stopPropagation && _e?.stopPropagation) {
572
574
  _e.stopPropagation();
573
575
  }
574
- queueEvents(events, socket);
576
+ const combined_name = events.map((e) => e.name).join("+++");
577
+ if (event_actions?.throttle) {
578
+ // If throttle returns false, the events are not added to the queue.
579
+ if (!throttle(combined_name, event_actions.throttle)) {
580
+ return;
581
+ }
582
+ }
583
+ if (event_actions?.debounce) {
584
+ // If debounce is used, queue the events after some delay
585
+ debounce(
586
+ combined_name,
587
+ () => queueEvents(events, socket),
588
+ event_actions.debounce,
589
+ );
590
+ } else {
591
+ queueEvents(events, socket);
592
+ }
575
593
  };
576
594
 
577
595
  const sentHydrate = useRef(false); // Avoid double-hydrate due to React strict-mode
@@ -691,8 +709,8 @@ export const getRefValue = (ref) => {
691
709
  if (ref.current.type == "checkbox") {
692
710
  return ref.current.checked; // chakra
693
711
  } else if (
694
- ref.current.className?.includes("rt-CheckboxButton") ||
695
- ref.current.className?.includes("rt-SwitchButton")
712
+ ref.current.className?.includes("rt-CheckboxRoot") ||
713
+ ref.current.className?.includes("rt-SwitchRoot")
696
714
  ) {
697
715
  return ref.current.ariaChecked == "true"; // radix
698
716
  } else if (ref.current.className?.includes("rt-SliderRoot")) {
@@ -59,6 +59,7 @@ _ALL_COMPONENTS = [
59
59
  "code",
60
60
  "container",
61
61
  "context_menu",
62
+ "data_list",
62
63
  "dialog",
63
64
  "divider",
64
65
  "drawer",
@@ -79,8 +80,10 @@ _ALL_COMPONENTS = [
79
80
  "scroll_area",
80
81
  "section",
81
82
  "select",
83
+ "skeleton",
82
84
  "slider",
83
85
  "spacer",
86
+ "spinner",
84
87
  "stack",
85
88
  "switch",
86
89
  "table",
@@ -110,6 +113,8 @@ _ALL_COMPONENTS = [
110
113
  "ordered_list",
111
114
  "moment",
112
115
  "logo",
116
+ # Toast is in experimental namespace initially
117
+ # "toast",
113
118
  ]
114
119
 
115
120
  _MAPPING = {
@@ -118,7 +123,6 @@ _MAPPING = {
118
123
  "reflex.app": ["app", "App", "UploadFile"],
119
124
  "reflex.base": ["base", "Base"],
120
125
  "reflex.compiler": ["compiler"],
121
- "reflex.compiler.utils": ["get_asset_path"],
122
126
  "reflex.components": _ALL_COMPONENTS,
123
127
  "reflex.components.component": ["Component", "NoSSRComponent", "memo"],
124
128
  "reflex.components.chakra": ["chakra"],
@@ -166,6 +170,7 @@ _MAPPING = {
166
170
  "reflex.style": ["style", "toggle_color_mode"],
167
171
  "reflex.testing": ["testing"],
168
172
  "reflex.utils": ["utils"],
173
+ "reflex.utils.imports": ["ImportVar"],
169
174
  "reflex.vars": ["vars", "cached_var", "Var"],
170
175
  }
171
176
 
@@ -7,7 +7,6 @@ from reflex.app import UploadFile as UploadFile
7
7
  from reflex import base as base
8
8
  from reflex.base import Base as Base
9
9
  from reflex import compiler as compiler
10
- from reflex.compiler.utils import get_asset_path as get_asset_path
11
10
  from reflex.components import color as color
12
11
  from reflex.components import cond as cond
13
12
  from reflex.components import foreach as foreach
@@ -47,6 +46,7 @@ from reflex.components import checkbox as checkbox
47
46
  from reflex.components import code as code
48
47
  from reflex.components import container as container
49
48
  from reflex.components import context_menu as context_menu
49
+ from reflex.components import data_list as data_list
50
50
  from reflex.components import dialog as dialog
51
51
  from reflex.components import divider as divider
52
52
  from reflex.components import drawer as drawer
@@ -67,8 +67,10 @@ from reflex.components import radio as radio
67
67
  from reflex.components import scroll_area as scroll_area
68
68
  from reflex.components import section as section
69
69
  from reflex.components import select as select
70
+ from reflex.components import skeleton as skeleton
70
71
  from reflex.components import slider as slider
71
72
  from reflex.components import spacer as spacer
73
+ from reflex.components import spinner as spinner
72
74
  from reflex.components import stack as stack
73
75
  from reflex.components import switch as switch
74
76
  from reflex.components import table as table
@@ -149,6 +151,7 @@ from reflex import style as style
149
151
  from reflex.style import toggle_color_mode as toggle_color_mode
150
152
  from reflex import testing as testing
151
153
  from reflex import utils as utils
154
+ from reflex.utils.imports import ImportVar as ImportVar
152
155
  from reflex import vars as vars
153
156
  from reflex.vars import cached_var as cached_var
154
157
  from reflex.vars import Var as Var