reflex 0.3.7a1__tar.gz → 0.3.8__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 (509) hide show
  1. {reflex-0.3.7a1 → reflex-0.3.8}/PKG-INFO +8 -2
  2. {reflex-0.3.7a1 → reflex-0.3.8}/README.md +6 -1
  3. {reflex-0.3.7a1 → reflex-0.3.8}/pyproject.toml +2 -1
  4. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/blank/code/blank.py +0 -1
  5. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/demo/code/demo.py +0 -1
  6. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/sidebar/code/sidebar.py +6 -2
  7. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/jinja/web/pages/_app.js.jinja2 +4 -1
  8. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/jinja/web/pages/base_page.js.jinja2 +4 -1
  9. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/jinja/web/pages/utils.js.jinja2 +24 -0
  10. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/jinja/web/tailwind.config.js.jinja2 +4 -1
  11. reflex-0.3.8/reflex/.templates/web/utils/helpers/dataeditor.js +69 -0
  12. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/__init__.py +4 -2
  13. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/__init__.pyi +6 -2
  14. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/app.py +43 -9
  15. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/app.pyi +2 -1
  16. reflex-0.3.8/reflex/app_module_for_backend.py +13 -0
  17. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/compiler/compiler.py +19 -0
  18. reflex-0.3.8/reflex/components/__init__.py +16 -0
  19. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/base/__init__.py +5 -1
  20. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/base/app_wrap.py +1 -1
  21. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/base/app_wrap.pyi +1 -1
  22. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/base/document.py +0 -8
  23. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/base/document.pyi +0 -80
  24. {reflex-0.3.7a1/reflex/components/layout → reflex-0.3.8/reflex/components/base}/fragment.pyi +1 -1
  25. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/__init__.py +3 -36
  26. reflex-0.3.7a1/reflex/components/libs/chakra.pyi → reflex-0.3.8/reflex/components/chakra/base.pyi +1 -1
  27. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/datadisplay/__init__.py +0 -3
  28. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/datadisplay/badge.py +1 -1
  29. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/datadisplay/badge.pyi +2 -2
  30. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/datadisplay/code.py +5 -5
  31. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/datadisplay/code.pyi +5 -5
  32. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/datadisplay/divider.py +4 -2
  33. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/datadisplay/divider.pyi +5 -3
  34. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/datadisplay/keyboard_key.py +1 -1
  35. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/datadisplay/keyboard_key.pyi +2 -2
  36. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/datadisplay/list.py +3 -3
  37. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/datadisplay/list.pyi +4 -4
  38. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/datadisplay/stat.py +1 -1
  39. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/datadisplay/stat.pyi +2 -2
  40. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/datadisplay/table.py +2 -2
  41. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/datadisplay/table.pyi +3 -3
  42. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/datadisplay/tag.py +2 -2
  43. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/datadisplay/tag.pyi +3 -3
  44. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/disclosure/accordion.py +1 -1
  45. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/disclosure/accordion.pyi +2 -2
  46. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/disclosure/tabs.py +2 -2
  47. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/disclosure/tabs.pyi +3 -3
  48. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/disclosure/transition.py +1 -1
  49. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/disclosure/transition.pyi +2 -2
  50. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/disclosure/visuallyhidden.py +1 -1
  51. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/disclosure/visuallyhidden.pyi +2 -2
  52. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/feedback/alert.py +2 -2
  53. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/feedback/alert.pyi +2 -6
  54. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/feedback/circularprogress.py +1 -1
  55. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/feedback/circularprogress.pyi +2 -2
  56. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/feedback/progress.py +1 -1
  57. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/feedback/progress.pyi +2 -2
  58. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/feedback/skeleton.py +1 -1
  59. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/feedback/skeleton.pyi +2 -2
  60. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/feedback/spinner.py +1 -1
  61. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/feedback/spinner.pyi +2 -2
  62. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/forms/__init__.py +2 -11
  63. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/forms/button.py +3 -1
  64. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/forms/button.pyi +2 -2
  65. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/forms/checkbox.py +1 -1
  66. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/forms/checkbox.pyi +2 -6
  67. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/forms/colormodeswitch.py +10 -2
  68. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/forms/colormodeswitch.pyi +83 -3
  69. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/forms/date_picker.py +1 -1
  70. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/forms/date_picker.pyi +2 -2
  71. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/forms/date_time_picker.py +1 -1
  72. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/forms/date_time_picker.pyi +2 -2
  73. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/forms/editable.py +1 -1
  74. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/forms/editable.pyi +2 -2
  75. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/forms/email.py +1 -1
  76. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/forms/email.pyi +2 -2
  77. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/forms/form.py +1 -1
  78. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/forms/form.pyi +2 -2
  79. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/forms/iconbutton.py +1 -1
  80. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/forms/iconbutton.pyi +2 -2
  81. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/forms/input.py +5 -4
  82. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/forms/input.pyi +59 -5
  83. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/forms/numberinput.py +6 -2
  84. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/forms/numberinput.pyi +10 -2
  85. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/forms/password.py +1 -1
  86. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/forms/password.pyi +2 -2
  87. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/forms/pininput.py +1 -1
  88. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/forms/pininput.pyi +2 -2
  89. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/forms/radio.py +3 -3
  90. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/forms/radio.pyi +4 -4
  91. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/forms/rangeslider.py +1 -1
  92. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/forms/rangeslider.pyi +2 -2
  93. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/forms/select.py +3 -3
  94. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/forms/select.pyi +4 -4
  95. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/forms/slider.py +4 -3
  96. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/forms/slider.pyi +5 -4
  97. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/forms/switch.py +1 -1
  98. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/forms/switch.pyi +2 -2
  99. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/forms/textarea.py +2 -2
  100. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/forms/textarea.pyi +3 -3
  101. reflex-0.3.8/reflex/components/chakra/forms/time_picker.py +11 -0
  102. reflex-0.3.8/reflex/components/chakra/forms/time_picker.pyi +129 -0
  103. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/layout/__init__.py +1 -20
  104. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/layout/aspect_ratio.py +1 -1
  105. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/layout/aspect_ratio.pyi +2 -2
  106. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/layout/box.py +1 -1
  107. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/layout/box.pyi +2 -2
  108. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/layout/card.py +2 -2
  109. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/layout/card.pyi +3 -3
  110. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/layout/center.py +1 -1
  111. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/layout/center.pyi +2 -2
  112. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/layout/container.py +1 -1
  113. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/layout/container.pyi +2 -2
  114. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/layout/flex.py +1 -1
  115. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/layout/flex.pyi +2 -2
  116. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/layout/grid.py +1 -1
  117. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/layout/grid.pyi +2 -2
  118. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/layout/html.py +1 -1
  119. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/layout/html.pyi +2 -2
  120. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/layout/spacer.py +1 -1
  121. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/layout/spacer.pyi +2 -2
  122. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/layout/stack.py +1 -1
  123. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/layout/stack.pyi +2 -2
  124. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/layout/wrap.py +1 -1
  125. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/layout/wrap.pyi +2 -2
  126. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/media/__init__.py +1 -2
  127. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/media/avatar.py +1 -1
  128. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/media/avatar.pyi +2 -2
  129. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/media/icon.py +2 -2
  130. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/media/icon.pyi +2 -2
  131. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/chakra/media/image.py +1 -1
  132. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/chakra/media/image.pyi +1 -1
  133. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/navigation/__init__.py +0 -1
  134. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/navigation/breadcrumb.py +3 -3
  135. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/navigation/breadcrumb.pyi +4 -4
  136. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/navigation/link.py +2 -2
  137. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/navigation/link.pyi +3 -3
  138. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/navigation/linkoverlay.py +1 -1
  139. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/navigation/linkoverlay.pyi +2 -2
  140. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/navigation/stepper.py +1 -1
  141. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/navigation/stepper.pyi +2 -2
  142. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/overlay/__init__.py +0 -1
  143. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/overlay/alertdialog.py +2 -2
  144. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/overlay/alertdialog.pyi +3 -3
  145. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/overlay/drawer.py +3 -3
  146. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/overlay/drawer.pyi +4 -4
  147. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/overlay/menu.py +4 -6
  148. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/overlay/menu.pyi +4 -4
  149. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/overlay/modal.py +2 -2
  150. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/overlay/modal.pyi +3 -3
  151. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/overlay/popover.py +2 -2
  152. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/overlay/popover.pyi +3 -3
  153. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/overlay/tooltip.py +1 -1
  154. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/overlay/tooltip.pyi +2 -2
  155. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/typography/__init__.py +0 -1
  156. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/typography/heading.py +1 -1
  157. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/typography/heading.pyi +2 -2
  158. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/typography/highlight.py +1 -1
  159. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/typography/highlight.pyi +2 -2
  160. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/typography/span.py +1 -1
  161. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/typography/span.pyi +2 -2
  162. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/typography/text.py +1 -1
  163. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/typography/text.pyi +2 -2
  164. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/component.py +7 -8
  165. reflex-0.3.8/reflex/components/core/__init__.py +22 -0
  166. {reflex-0.3.7a1/reflex/components/overlay → reflex-0.3.8/reflex/components/core}/banner.py +4 -3
  167. {reflex-0.3.7a1/reflex/components/overlay → reflex-0.3.8/reflex/components/core}/banner.pyi +5 -4
  168. {reflex-0.3.7a1/reflex/components/navigation → reflex-0.3.8/reflex/components/core}/client_side_routing.py +1 -1
  169. {reflex-0.3.7a1/reflex/components/navigation → reflex-0.3.8/reflex/components/core}/client_side_routing.pyi +2 -2
  170. {reflex-0.3.7a1/reflex/components/layout → reflex-0.3.8/reflex/components/core}/cond.py +1 -1
  171. {reflex-0.3.7a1/reflex/components/forms → reflex-0.3.8/reflex/components/core}/debounce.py +1 -1
  172. {reflex-0.3.7a1/reflex/components/forms → reflex-0.3.8/reflex/components/core}/debounce.pyi +2 -2
  173. {reflex-0.3.7a1/reflex/components/layout → reflex-0.3.8/reflex/components/core}/foreach.py +18 -2
  174. reflex-0.3.8/reflex/components/core/match.py +257 -0
  175. {reflex-0.3.7a1/reflex/components/layout → reflex-0.3.8/reflex/components/core}/responsive.py +1 -1
  176. {reflex-0.3.7a1/reflex/components/forms → reflex-0.3.8/reflex/components/core}/upload.py +2 -2
  177. {reflex-0.3.7a1/reflex/components/forms → reflex-0.3.8/reflex/components/core}/upload.pyi +3 -3
  178. reflex-0.3.8/reflex/components/datadisplay/__init__.py +6 -0
  179. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/el/elements/inline.py +4 -0
  180. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/el/elements/inline.pyi +3 -0
  181. reflex-0.3.8/reflex/components/gridjs/__init__.py +5 -0
  182. {reflex-0.3.7a1/reflex/components/datadisplay → reflex-0.3.8/reflex/components/gridjs}/datatable.pyi +1 -1
  183. reflex-0.3.8/reflex/components/literals.py +32 -0
  184. reflex-0.3.8/reflex/components/markdown/__init__.py +5 -0
  185. {reflex-0.3.7a1/reflex/components/typography → reflex-0.3.8/reflex/components/markdown}/markdown.py +16 -6
  186. {reflex-0.3.7a1/reflex/components/typography → reflex-0.3.8/reflex/components/markdown}/markdown.pyi +10 -5
  187. reflex-0.3.8/reflex/components/media/__init__.py +1 -0
  188. reflex-0.3.8/reflex/components/media/icon.py +2 -0
  189. reflex-0.3.8/reflex/components/moment/__init__.py +5 -0
  190. {reflex-0.3.7a1/reflex/components/datadisplay → reflex-0.3.8/reflex/components/moment}/moment.pyi +1 -1
  191. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/next/__init__.py +2 -0
  192. reflex-0.3.7a1/reflex/components/navigation/nextlink.pyi → reflex-0.3.8/reflex/components/next/link.pyi +1 -1
  193. reflex-0.3.8/reflex/components/plotly/__init__.py +5 -0
  194. {reflex-0.3.7a1/reflex/components/graphing → reflex-0.3.8/reflex/components/plotly}/plotly.pyi +1 -1
  195. reflex-0.3.8/reflex/components/radix/primitives/__init__.py +14 -0
  196. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/primitives/accordion.py +33 -68
  197. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/primitives/accordion.pyi +6 -89
  198. reflex-0.3.8/reflex/components/radix/primitives/base.py +27 -0
  199. reflex-0.3.8/reflex/components/radix/primitives/base.pyi +95 -0
  200. reflex-0.3.8/reflex/components/radix/primitives/form.py +267 -0
  201. reflex-0.3.8/reflex/components/radix/primitives/form.pyi +740 -0
  202. reflex-0.3.8/reflex/components/radix/primitives/progress.py +84 -0
  203. reflex-0.3.8/reflex/components/radix/primitives/progress.pyi +268 -0
  204. reflex-0.3.8/reflex/components/radix/primitives/slider.py +179 -0
  205. reflex-0.3.8/reflex/components/radix/primitives/slider.pyi +452 -0
  206. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/base.py +43 -31
  207. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/base.pyi +223 -29
  208. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/__init__.py +18 -3
  209. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/alertdialog.py +27 -6
  210. reflex-0.3.8/reflex/components/radix/themes/components/alertdialog.pyi +1444 -0
  211. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/aspectratio.py +1 -1
  212. reflex-0.3.8/reflex/components/radix/themes/components/aspectratio.pyi +209 -0
  213. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/avatar.py +0 -3
  214. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/avatar.pyi +13 -13
  215. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/badge.py +1 -4
  216. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/badge.pyi +11 -11
  217. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/button.py +1 -1
  218. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/button.pyi +15 -11
  219. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/callout.pyi +144 -12
  220. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/card.py +1 -1
  221. reflex-0.3.8/reflex/components/radix/themes/components/card.pyi +281 -0
  222. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/checkbox.pyi +14 -12
  223. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/contextmenu.pyi +402 -8
  224. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/dialog.py +6 -0
  225. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/dialog.pyi +518 -0
  226. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/dropdownmenu.pyi +337 -8
  227. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/hovercard.pyi +195 -0
  228. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/iconbutton.pyi +14 -12
  229. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/icons.py +2 -2
  230. reflex-0.3.8/reflex/components/radix/themes/components/inset.pyi +295 -0
  231. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/popover.pyi +260 -0
  232. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/radiogroup.py +1 -1
  233. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/radiogroup.pyi +78 -9
  234. reflex-0.3.7a1/reflex/components/radix/themes/typography/link.pyi → reflex-0.3.8/reflex/components/radix/themes/components/scrollarea.pyi +33 -41
  235. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/select.pyi +342 -13
  236. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/separator.pyi +7 -5
  237. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/slider.py +4 -4
  238. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/slider.pyi +17 -13
  239. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/switch.pyi +20 -18
  240. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/table.py +1 -1
  241. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/table.pyi +458 -1
  242. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/tabs.py +4 -4
  243. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/tabs.pyi +263 -3
  244. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/textarea.py +1 -1
  245. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/textarea.pyi +1 -1
  246. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/textfield.py +1 -1
  247. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/textfield.pyi +18 -14
  248. reflex-0.3.8/reflex/components/radix/themes/components/tooltip.py +15 -0
  249. reflex-0.3.8/reflex/components/radix/themes/components/tooltip.pyi +205 -0
  250. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/layout/base.pyi +65 -0
  251. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/layout/box.pyi +65 -0
  252. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/layout/container.pyi +65 -0
  253. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/layout/flex.pyi +65 -0
  254. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/layout/grid.pyi +65 -0
  255. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/layout/section.pyi +65 -0
  256. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/typography/blockquote.pyi +16 -14
  257. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/typography/code.pyi +22 -20
  258. reflex-0.3.8/reflex/components/radix/themes/typography/em.pyi +264 -0
  259. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/typography/heading.pyi +30 -28
  260. reflex-0.3.8/reflex/components/radix/themes/typography/kbd.pyi +273 -0
  261. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/typography/link.py +2 -1
  262. reflex-0.3.8/reflex/components/radix/themes/typography/link.pyi +331 -0
  263. reflex-0.3.8/reflex/components/radix/themes/typography/quote.pyi +266 -0
  264. reflex-0.3.8/reflex/components/radix/themes/typography/strong.pyi +264 -0
  265. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/typography/text.pyi +30 -28
  266. reflex-0.3.8/reflex/components/react_player/__init__.py +7 -0
  267. reflex-0.3.8/reflex/components/react_player/audio.py +8 -0
  268. {reflex-0.3.7a1/reflex/components/media → reflex-0.3.8/reflex/components/react_player}/audio.pyi +3 -3
  269. {reflex-0.3.7a1/reflex/components/libs → reflex-0.3.8/reflex/components/react_player}/react_player.py +1 -1
  270. {reflex-0.3.7a1/reflex/components/libs → reflex-0.3.8/reflex/components/react_player}/react_player.pyi +3 -3
  271. reflex-0.3.8/reflex/components/react_player/video.py +8 -0
  272. {reflex-0.3.7a1/reflex/components/media → reflex-0.3.8/reflex/components/react_player}/video.pyi +3 -3
  273. {reflex-0.3.7a1/reflex/components/graphing → reflex-0.3.8/reflex/components}/recharts/cartesian.pyi +1 -1
  274. {reflex-0.3.7a1/reflex/components/graphing → reflex-0.3.8/reflex/components}/recharts/charts.py +1 -1
  275. {reflex-0.3.7a1/reflex/components/graphing → reflex-0.3.8/reflex/components}/recharts/charts.pyi +2 -2
  276. {reflex-0.3.7a1/reflex/components/graphing → reflex-0.3.8/reflex/components}/recharts/general.pyi +1 -1
  277. {reflex-0.3.7a1/reflex/components/graphing → reflex-0.3.8/reflex/components}/recharts/polar.pyi +1 -1
  278. {reflex-0.3.7a1/reflex/components/graphing → reflex-0.3.8/reflex/components}/recharts/recharts.pyi +1 -1
  279. reflex-0.3.8/reflex/components/suneditor/__init__.py +5 -0
  280. {reflex-0.3.7a1/reflex/components/forms → reflex-0.3.8/reflex/components/suneditor}/editor.pyi +1 -1
  281. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/tags/__init__.py +1 -0
  282. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/tags/iter_tag.py +3 -3
  283. reflex-0.3.8/reflex/components/tags/match_tag.py +19 -0
  284. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/constants/base.py +2 -0
  285. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/constants/config.py +1 -1
  286. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/constants/installer.py +1 -0
  287. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/constants/style.py +1 -1
  288. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/event.py +1 -1
  289. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/reflex.py +14 -12
  290. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/state.py +14 -0
  291. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/style.py +1 -1
  292. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/testing.py +59 -9
  293. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/utils/build.py +7 -1
  294. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/utils/exceptions.py +6 -0
  295. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/utils/exec.py +2 -2
  296. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/utils/export.py +1 -1
  297. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/utils/format.py +41 -4
  298. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/utils/prerequisites.py +56 -11
  299. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/utils/processes.py +8 -1
  300. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/utils/types.py +2 -2
  301. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/vars.py +25 -1
  302. reflex-0.3.7a1/reflex/.templates/web/utils/helpers/dataeditor.js +0 -67
  303. reflex-0.3.7a1/reflex/components/chakra/__init__.py +0 -23
  304. reflex-0.3.7a1/reflex/components/graphing/__init__.py +0 -5
  305. reflex-0.3.7a1/reflex/components/libs/__init__.py +0 -31
  306. reflex-0.3.7a1/reflex/components/literals.py +0 -5
  307. reflex-0.3.7a1/reflex/components/media/audio.py +0 -8
  308. reflex-0.3.7a1/reflex/components/media/image.pyi +0 -123
  309. reflex-0.3.7a1/reflex/components/media/video.py +0 -8
  310. reflex-0.3.7a1/reflex/components/radix/primitives/__init__.py +0 -3
  311. reflex-0.3.7a1/reflex/components/radix/themes/components/alertdialog.pyi +0 -733
  312. reflex-0.3.7a1/reflex/components/radix/themes/components/aspectratio.pyi +0 -144
  313. reflex-0.3.7a1/reflex/components/radix/themes/components/card.pyi +0 -214
  314. reflex-0.3.7a1/reflex/components/radix/themes/components/inset.pyi +0 -230
  315. reflex-0.3.7a1/reflex/components/radix/themes/components/scrollarea.pyi +0 -165
  316. reflex-0.3.7a1/reflex/components/radix/themes/typography/em.pyi +0 -199
  317. reflex-0.3.7a1/reflex/components/radix/themes/typography/kbd.pyi +0 -208
  318. reflex-0.3.7a1/reflex/components/radix/themes/typography/quote.pyi +0 -200
  319. reflex-0.3.7a1/reflex/components/radix/themes/typography/strong.pyi +0 -199
  320. {reflex-0.3.7a1 → reflex-0.3.8}/LICENSE +0 -0
  321. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/blank/assets/favicon.ico +0 -0
  322. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/blank/code/__init__.py +0 -0
  323. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/demo/.gitignore +0 -0
  324. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/demo/assets/favicon.ico +0 -0
  325. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/demo/assets/github.svg +0 -0
  326. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/demo/assets/icon.svg +0 -0
  327. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/demo/assets/logo.svg +0 -0
  328. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/demo/assets/paneleft.svg +0 -0
  329. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/demo/code/__init__.py +0 -0
  330. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/demo/code/pages/__init__.py +0 -0
  331. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/demo/code/pages/chatapp.py +0 -0
  332. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/demo/code/pages/datatable.py +0 -0
  333. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/demo/code/pages/forms.py +0 -0
  334. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/demo/code/pages/graphing.py +0 -0
  335. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/demo/code/pages/home.py +0 -0
  336. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/demo/code/sidebar.py +0 -0
  337. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/demo/code/state.py +0 -0
  338. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/demo/code/states/form_state.py +0 -0
  339. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/demo/code/states/pie_state.py +0 -0
  340. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/demo/code/styles.py +0 -0
  341. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/demo/code/webui/__init__.py +0 -0
  342. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/demo/code/webui/components/__init__.py +0 -0
  343. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/demo/code/webui/components/chat.py +0 -0
  344. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/demo/code/webui/components/loading_icon.py +0 -0
  345. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/demo/code/webui/components/modal.py +0 -0
  346. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/demo/code/webui/components/navbar.py +0 -0
  347. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/demo/code/webui/components/sidebar.py +0 -0
  348. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/demo/code/webui/state.py +0 -0
  349. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/demo/code/webui/styles.py +0 -0
  350. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/sidebar/README.md +0 -0
  351. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/sidebar/assets/favicon.ico +0 -0
  352. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/sidebar/assets/github.svg +0 -0
  353. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/sidebar/assets/icon.svg +0 -0
  354. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/sidebar/assets/logo.svg +0 -0
  355. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/sidebar/assets/paneleft.svg +0 -0
  356. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/sidebar/code/__init__.py +0 -0
  357. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/sidebar/code/components/__init__.py +0 -0
  358. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/sidebar/code/components/sidebar.py +0 -0
  359. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/sidebar/code/pages/__init__.py +0 -0
  360. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/sidebar/code/pages/dashboard.py +0 -0
  361. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/sidebar/code/pages/index.py +0 -0
  362. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/sidebar/code/pages/settings.py +0 -0
  363. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/sidebar/code/styles.py +0 -0
  364. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/sidebar/code/templates/__init__.py +0 -0
  365. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/apps/sidebar/code/templates/template.py +0 -0
  366. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/jinja/app/rxconfig.py.jinja2 +0 -0
  367. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/jinja/web/package.json.jinja2 +0 -0
  368. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/jinja/web/pages/_document.js.jinja2 +0 -0
  369. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/jinja/web/pages/component.js.jinja2 +0 -0
  370. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/jinja/web/pages/custom_component.js.jinja2 +0 -0
  371. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/jinja/web/pages/index.js.jinja2 +0 -0
  372. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/jinja/web/pages/stateful_component.js.jinja2 +0 -0
  373. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/jinja/web/pages/stateful_components.js.jinja2 +0 -0
  374. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/jinja/web/styles/styles.css.jinja2 +0 -0
  375. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/jinja/web/utils/context.js.jinja2 +0 -0
  376. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/jinja/web/utils/theme.js.jinja2 +0 -0
  377. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/web/.gitignore +0 -0
  378. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/web/components/reflex/chakra_color_mode_provider.js +0 -0
  379. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js +0 -0
  380. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/web/jsconfig.json +0 -0
  381. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/web/next.config.js +0 -0
  382. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/web/postcss.config.js +0 -0
  383. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/web/styles/tailwind.css +0 -0
  384. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/web/utils/client_side_routing.js +0 -0
  385. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/web/utils/helpers/range.js +0 -0
  386. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/.templates/web/utils/state.js +0 -0
  387. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/__main__.py +0 -0
  388. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/admin.py +0 -0
  389. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/base.py +0 -0
  390. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/compiler/__init__.py +0 -0
  391. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/compiler/templates.py +0 -0
  392. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/compiler/utils.py +0 -0
  393. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/base/bare.py +0 -0
  394. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/base/body.py +0 -0
  395. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/base/body.pyi +0 -0
  396. {reflex-0.3.7a1/reflex/components/layout → reflex-0.3.8/reflex/components/base}/fragment.py +0 -0
  397. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/base/head.py +0 -0
  398. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/base/head.pyi +0 -0
  399. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/base/link.py +0 -0
  400. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/base/link.pyi +0 -0
  401. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/base/meta.py +0 -0
  402. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/base/meta.pyi +0 -0
  403. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/base/script.py +0 -0
  404. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/base/script.pyi +0 -0
  405. /reflex-0.3.7a1/reflex/components/libs/chakra.py → /reflex-0.3.8/reflex/components/chakra/base.py +0 -0
  406. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/disclosure/__init__.py +0 -0
  407. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/feedback/__init__.py +0 -0
  408. {reflex-0.3.7a1/reflex/components → reflex-0.3.8/reflex/components/chakra}/forms/multiselect.py +0 -0
  409. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/datadisplay/dataeditor.py +0 -0
  410. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/datadisplay/dataeditor.pyi +0 -0
  411. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/el/__init__.py +0 -0
  412. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/el/constants/__init__.py +0 -0
  413. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/el/constants/html.py +0 -0
  414. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/el/constants/react.py +0 -0
  415. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/el/constants/reflex.py +0 -0
  416. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/el/element.py +0 -0
  417. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/el/element.pyi +0 -0
  418. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/el/elements/__init__.py +0 -0
  419. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/el/elements/base.py +0 -0
  420. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/el/elements/base.pyi +0 -0
  421. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/el/elements/forms.py +0 -0
  422. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/el/elements/forms.pyi +0 -0
  423. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/el/elements/media.py +0 -0
  424. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/el/elements/media.pyi +0 -0
  425. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/el/elements/metadata.py +0 -0
  426. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/el/elements/metadata.pyi +0 -0
  427. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/el/elements/other.py +0 -0
  428. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/el/elements/other.pyi +0 -0
  429. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/el/elements/scripts.py +0 -0
  430. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/el/elements/scripts.pyi +0 -0
  431. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/el/elements/sectioning.py +0 -0
  432. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/el/elements/sectioning.pyi +0 -0
  433. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/el/elements/tables.py +0 -0
  434. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/el/elements/tables.pyi +0 -0
  435. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/el/elements/typography.py +0 -0
  436. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/el/elements/typography.pyi +0 -0
  437. {reflex-0.3.7a1/reflex/components/datadisplay → reflex-0.3.8/reflex/components/gridjs}/datatable.py +0 -0
  438. {reflex-0.3.7a1/reflex/components/datadisplay → reflex-0.3.8/reflex/components/moment}/moment.py +0 -0
  439. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/next/base.py +0 -0
  440. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/next/base.pyi +0 -0
  441. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/next/image.py +0 -0
  442. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/next/image.pyi +0 -0
  443. /reflex-0.3.7a1/reflex/components/navigation/nextlink.py → /reflex-0.3.8/reflex/components/next/link.py +0 -0
  444. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/next/video.py +0 -0
  445. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/next/video.pyi +0 -0
  446. {reflex-0.3.7a1/reflex/components/graphing → reflex-0.3.8/reflex/components/plotly}/plotly.py +0 -0
  447. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/__init__.py +0 -0
  448. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/__init__.py +0 -0
  449. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/callout.py +0 -0
  450. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/checkbox.py +0 -0
  451. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/contextmenu.py +0 -0
  452. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/dropdownmenu.py +0 -0
  453. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/hovercard.py +0 -0
  454. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/iconbutton.py +0 -0
  455. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/icons.pyi +0 -0
  456. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/inset.py +0 -0
  457. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/popover.py +0 -0
  458. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/scrollarea.py +0 -0
  459. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/select.py +0 -0
  460. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/separator.py +0 -0
  461. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/components/switch.py +0 -0
  462. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/layout/__init__.py +0 -0
  463. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/layout/base.py +0 -0
  464. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/layout/box.py +0 -0
  465. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/layout/container.py +0 -0
  466. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/layout/flex.py +0 -0
  467. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/layout/grid.py +0 -0
  468. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/layout/section.py +0 -0
  469. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/typography/__init__.py +0 -0
  470. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/typography/base.py +0 -0
  471. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/typography/blockquote.py +0 -0
  472. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/typography/code.py +0 -0
  473. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/typography/em.py +0 -0
  474. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/typography/heading.py +0 -0
  475. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/typography/kbd.py +0 -0
  476. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/typography/quote.py +0 -0
  477. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/typography/strong.py +0 -0
  478. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/typography/text.py +0 -0
  479. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/radix/themes/typography.py +0 -0
  480. {reflex-0.3.7a1/reflex/components/graphing → reflex-0.3.8/reflex/components}/recharts/__init__.py +0 -0
  481. {reflex-0.3.7a1/reflex/components/graphing → reflex-0.3.8/reflex/components}/recharts/cartesian.py +0 -0
  482. {reflex-0.3.7a1/reflex/components/graphing → reflex-0.3.8/reflex/components}/recharts/general.py +0 -0
  483. {reflex-0.3.7a1/reflex/components/graphing → reflex-0.3.8/reflex/components}/recharts/polar.py +0 -0
  484. {reflex-0.3.7a1/reflex/components/graphing → reflex-0.3.8/reflex/components}/recharts/recharts.py +0 -0
  485. {reflex-0.3.7a1/reflex/components/forms → reflex-0.3.8/reflex/components/suneditor}/editor.py +0 -0
  486. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/tags/cond_tag.py +0 -0
  487. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/tags/tag.py +0 -0
  488. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/components/tags/tagless.py +0 -0
  489. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/config.py +0 -0
  490. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/config.pyi +0 -0
  491. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/constants/__init__.py +0 -0
  492. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/constants/compiler.py +0 -0
  493. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/constants/event.py +0 -0
  494. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/constants/route.py +0 -0
  495. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/middleware/__init__.py +0 -0
  496. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/middleware/hydrate_middleware.py +0 -0
  497. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/middleware/middleware.py +0 -0
  498. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/model.py +0 -0
  499. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/page.py +0 -0
  500. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/page.pyi +0 -0
  501. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/route.py +0 -0
  502. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/utils/__init__.py +0 -0
  503. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/utils/console.py +0 -0
  504. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/utils/imports.py +0 -0
  505. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/utils/path_ops.py +0 -0
  506. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/utils/serializers.py +0 -0
  507. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/utils/telemetry.py +0 -0
  508. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/utils/watch.py +0 -0
  509. {reflex-0.3.7a1 → reflex-0.3.8}/reflex/vars.pyi +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: reflex
3
- Version: 0.3.7a1
3
+ Version: 0.3.8
4
4
  Summary: Web apps in pure Python.
5
5
  Home-page: https://reflex.dev
6
6
  License: Apache-2.0
@@ -16,6 +16,7 @@ Classifier: Programming Language :: Python :: 3.9
16
16
  Classifier: Programming Language :: Python :: 3.10
17
17
  Classifier: Programming Language :: Python :: 3.11
18
18
  Requires-Dist: alembic (>=1.11.1,<2.0.0)
19
+ Requires-Dist: charset-normalizer (>=3.3.2,<4.0.0)
19
20
  Requires-Dist: cloudpickle (>=2.2.1,<3.0.0)
20
21
  Requires-Dist: distro (>=1.8.0,<2.0.0) ; sys_platform == "linux"
21
22
  Requires-Dist: fastapi (>=0.96.0,<0.97.0)
@@ -171,7 +172,6 @@ def index():
171
172
  # Add state and page to the app.
172
173
  app = rx.App()
173
174
  app.add_page(index, title="reflex:DALL·E")
174
- app.compile()
175
175
  ```
176
176
 
177
177
  ## Let's break this down.
@@ -282,6 +282,12 @@ We welcome contributions of any size! Below are some good ways to get started in
282
282
 
283
283
  We are actively looking for contributors, no matter your skill level or experience. To contribute check out [CONTIBUTING.md](https://github.com/reflex-dev/reflex/blob/main/CONTRIBUTING.md)
284
284
 
285
+
286
+ ## All Thanks To Our Contributors:
287
+ <a href="https://github.com/reflex-dev/reflex/graphs/contributors">
288
+ <img src="https://contrib.rocks/image?repo=reflex-dev/reflex" />
289
+ </a>
290
+
285
291
  ## License
286
292
 
287
293
  Reflex is open-source and licensed under the [Apache License 2.0](LICENSE).
@@ -123,7 +123,6 @@ def index():
123
123
  # Add state and page to the app.
124
124
  app = rx.App()
125
125
  app.add_page(index, title="reflex:DALL·E")
126
- app.compile()
127
126
  ```
128
127
 
129
128
  ## Let's break this down.
@@ -234,6 +233,12 @@ We welcome contributions of any size! Below are some good ways to get started in
234
233
 
235
234
  We are actively looking for contributors, no matter your skill level or experience. To contribute check out [CONTIBUTING.md](https://github.com/reflex-dev/reflex/blob/main/CONTRIBUTING.md)
236
235
 
236
+
237
+ ## All Thanks To Our Contributors:
238
+ <a href="https://github.com/reflex-dev/reflex/graphs/contributors">
239
+ <img src="https://contrib.rocks/image?repo=reflex-dev/reflex" />
240
+ </a>
241
+
237
242
  ## License
238
243
 
239
244
  Reflex is open-source and licensed under the [Apache License 2.0](LICENSE).
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "reflex"
3
- version = "0.3.7a1"
3
+ version = "0.3.8"
4
4
  description = "Web apps in pure Python."
5
5
  license = "Apache-2.0"
6
6
  authors = [
@@ -58,6 +58,7 @@ wrapt = [
58
58
  packaging = "^23.1"
59
59
  pipdeptree = "^2.13.0"
60
60
  reflex-hosting-cli = ">=0.1.2"
61
+ charset-normalizer = "^3.3.2"
61
62
 
62
63
  [tool.poetry.group.dev.dependencies]
63
64
  pytest = "^7.1.2"
@@ -42,4 +42,3 @@ def index() -> rx.Component:
42
42
  # Add state and page to the app.
43
43
  app = rx.App()
44
44
  app.add_page(index)
45
- app.compile()
@@ -120,4 +120,3 @@ def chatapp() -> rx.Component:
120
120
 
121
121
  # Add state and page to the app.
122
122
  app = rx.App(style=base_style)
123
- app.compile()
@@ -7,6 +7,10 @@ from code.pages import *
7
7
 
8
8
  import reflex as rx
9
9
 
10
- # Create the app and compile it.
10
+
11
+ class State(rx.State):
12
+ """Define empty state to allow access to rx.State.router."""
13
+
14
+
15
+ # Create the app.
11
16
  app = rx.App(style=styles.base_style)
12
- app.compile()
@@ -1,9 +1,12 @@
1
1
  {% extends "web/pages/base_page.js.jinja2" %}
2
2
 
3
+ {% block early_imports %}
4
+ import '/styles/styles.css'
5
+ {% endblock %}
6
+
3
7
  {% block declaration %}
4
8
  import { EventLoopProvider, StateProvider } from "/utils/context.js";
5
9
  import { ThemeProvider } from 'next-themes'
6
- import '/styles/styles.css'
7
10
 
8
11
 
9
12
  {% for custom_code in custom_codes %}
@@ -1,8 +1,11 @@
1
1
  {% import 'web/pages/utils.js.jinja2' as utils %}
2
-
3
2
  /** @jsxImportSource @emotion/react */
4
3
 
4
+ {% block early_imports %}
5
+ {% endblock %}
6
+
5
7
  {%- block imports_libs %}
8
+
6
9
  {% for module in imports%}
7
10
  {{- utils.get_import(module) }}
8
11
  {% endfor %}
@@ -8,6 +8,8 @@
8
8
  {{- component }}
9
9
  {%- elif "iterable" in component %}
10
10
  {{- render_iterable_tag(component) }}
11
+ {%- elif component.name == "match"%}
12
+ {{- render_match_tag(component) }}
11
13
  {%- elif "cond" in component %}
12
14
  {{- render_condition_tag(component) }}
13
15
  {%- elif component.children|length %}
@@ -77,6 +79,28 @@
77
79
  {% if props|length %} {{ props|join(" ") }}{% endif %}
78
80
  {% endmacro %}
79
81
 
82
+ {# Rendering Match component. #}
83
+ {# Args: #}
84
+ {# component: component dictionary #}
85
+ {% macro render_match_tag(component) %}
86
+ {
87
+ (() => {
88
+ switch (JSON.stringify({{ component.cond._var_full_name }})) {
89
+ {% for case in component.match_cases %}
90
+ {% for condition in case[:-1] %}
91
+ case JSON.stringify({{ condition._var_name_unwrapped }}):
92
+ {% endfor %}
93
+ return {{ case[-1] }};
94
+ break;
95
+ {% endfor %}
96
+ default:
97
+ return {{ component.default }};
98
+ break;
99
+ }
100
+ })()
101
+ }
102
+ {%- endmacro %}
103
+
80
104
 
81
105
  {# Rendering content with args. #}
82
106
  {# Args: #}
@@ -12,6 +12,9 @@ module.exports = {
12
12
  {% for preset in presets %}
13
13
  require({{preset|json_dumps}})
14
14
  {% endfor %}
15
- ]
15
+ ],
16
+ {% endif %}
17
+ {% if darkMode is defined %}
18
+ darkMode: {{darkMode|json_dumps}},
16
19
  {% endif %}
17
20
  };
@@ -0,0 +1,69 @@
1
+ import { GridCellKind } from "@glideapps/glide-data-grid";
2
+
3
+ export function getDEColumn(columns, col) {
4
+ let c = columns[col];
5
+ c.pos = col;
6
+ return c;
7
+ }
8
+
9
+ export function getDERow(data, row) {
10
+ return data[row];
11
+ }
12
+
13
+ export function locateCell(row, column) {
14
+ if (Array.isArray(row)) {
15
+ return row[column.pos];
16
+ } else {
17
+ return row[column.id];
18
+ }
19
+ }
20
+
21
+ export function formatCell(value, column) {
22
+ const editable = column.editable ?? true;
23
+ switch (column.type) {
24
+ case "int":
25
+ case "float":
26
+ return {
27
+ kind: GridCellKind.Number,
28
+ data: value,
29
+ displayData: value + "",
30
+ readonly: !editable,
31
+ allowOverlay: editable,
32
+ };
33
+ case "datetime":
34
+ // value = moment format?
35
+ case "str":
36
+ return {
37
+ kind: GridCellKind.Text,
38
+ data: value,
39
+ displayData: value,
40
+ readonly: !editable,
41
+ allowOverlay: editable,
42
+ };
43
+ case "bool":
44
+ return {
45
+ kind: GridCellKind.Boolean,
46
+ data: value,
47
+ readonly: !editable,
48
+ };
49
+ default:
50
+ console.log(
51
+ "Warning: column.type is undefined for column.title=" + column.title
52
+ );
53
+ return {
54
+ kind: GridCellKind.Text,
55
+ data: value,
56
+ displayData: column.type,
57
+ };
58
+ }
59
+ }
60
+
61
+ export function formatDataEditorCells(col, row, columns, data) {
62
+ if (row < data.length && col < columns.length) {
63
+ const column = getDEColumn(columns, col);
64
+ const rowData = getDERow(data, row);
65
+ const cellData = locateCell(rowData, column);
66
+ return formatCell(cellData, column);
67
+ }
68
+ return { kind: GridCellKind.Loading };
69
+ }
@@ -114,6 +114,7 @@ _ALL_COMPONENTS = [
114
114
  "List",
115
115
  "ListItem",
116
116
  "Markdown",
117
+ "Match",
117
118
  "Menu",
118
119
  "MenuButton",
119
120
  "MenuDivider",
@@ -215,6 +216,7 @@ _ALL_COMPONENTS = [
215
216
  "Tfoot",
216
217
  "Th",
217
218
  "Thead",
219
+ "TimePicker",
218
220
  "Tooltip",
219
221
  "Tr",
220
222
  "UnorderedList",
@@ -251,8 +253,8 @@ _MAPPING = {
251
253
  "reflex.compiler.utils": ["get_asset_path"],
252
254
  "reflex.components": _ALL_COMPONENTS + ["chakra", "next"],
253
255
  "reflex.components.component": ["memo"],
254
- "reflex.components.graphing": ["recharts"],
255
- "reflex.components.datadisplay.moment": ["MomentDelta"],
256
+ "reflex.components.recharts": ["recharts"],
257
+ "reflex.components.moment.moment": ["MomentDelta"],
256
258
  "reflex.config": ["config", "Config", "DBConfig"],
257
259
  "reflex.constants": ["constants", "Env"],
258
260
  "reflex.components.el": ["el"],
@@ -107,6 +107,7 @@ from reflex.components import LinkOverlay as LinkOverlay
107
107
  from reflex.components import List as List
108
108
  from reflex.components import ListItem as ListItem
109
109
  from reflex.components import Markdown as Markdown
110
+ from reflex.components import Match as Match
110
111
  from reflex.components import Menu as Menu
111
112
  from reflex.components import MenuButton as MenuButton
112
113
  from reflex.components import MenuDivider as MenuDivider
@@ -208,6 +209,7 @@ from reflex.components import TextArea as TextArea
208
209
  from reflex.components import Tfoot as Tfoot
209
210
  from reflex.components import Th as Th
210
211
  from reflex.components import Thead as Thead
212
+ from reflex.components import TimePicker as TimePicker
211
213
  from reflex.components import Tooltip as Tooltip
212
214
  from reflex.components import Tr as Tr
213
215
  from reflex.components import UnorderedList as UnorderedList
@@ -317,6 +319,7 @@ from reflex.components import link_overlay as link_overlay
317
319
  from reflex.components import list as list
318
320
  from reflex.components import list_item as list_item
319
321
  from reflex.components import markdown as markdown
322
+ from reflex.components import match as match
320
323
  from reflex.components import menu as menu
321
324
  from reflex.components import menu_button as menu_button
322
325
  from reflex.components import menu_divider as menu_divider
@@ -418,6 +421,7 @@ from reflex.components import text_area as text_area
418
421
  from reflex.components import tfoot as tfoot
419
422
  from reflex.components import th as th
420
423
  from reflex.components import thead as thead
424
+ from reflex.components import time_picker as time_picker
421
425
  from reflex.components import tooltip as tooltip
422
426
  from reflex.components import tr as tr
423
427
  from reflex.components import unordered_list as unordered_list
@@ -443,8 +447,8 @@ from reflex.components import NoSSRComponent as NoSSRComponent
443
447
  from reflex.components import chakra as chakra
444
448
  from reflex.components import next as next
445
449
  from reflex.components.component import memo as memo
446
- from reflex.components.graphing import recharts as recharts
447
- from reflex.components.datadisplay.moment import MomentDelta as MomentDelta
450
+ from reflex.components import recharts as recharts
451
+ from reflex.components.moment.moment import MomentDelta as MomentDelta
448
452
  from reflex import config as config
449
453
  from reflex.config import Config as Config
450
454
  from reflex.config import DBConfig as DBConfig
@@ -37,12 +37,13 @@ from reflex.compiler import compiler
37
37
  from reflex.compiler import utils as compiler_utils
38
38
  from reflex.components import connection_modal
39
39
  from reflex.components.base.app_wrap import AppWrap
40
+ from reflex.components.base.fragment import Fragment
40
41
  from reflex.components.component import Component, ComponentStyle
41
- from reflex.components.layout.fragment import Fragment
42
- from reflex.components.navigation.client_side_routing import (
42
+ from reflex.components.core.client_side_routing import (
43
43
  Default404Page,
44
44
  wait_for_client_redirect,
45
45
  )
46
+ from reflex.components.radix import themes
46
47
  from reflex.config import get_config
47
48
  from reflex.event import Event, EventHandler, EventSpec
48
49
  from reflex.middleware import HydrateMiddleware, Middleware
@@ -62,8 +63,9 @@ from reflex.state import (
62
63
  State,
63
64
  StateManager,
64
65
  StateUpdate,
66
+ code_uses_state_contexts,
65
67
  )
66
- from reflex.utils import console, format, prerequisites, types
68
+ from reflex.utils import console, exceptions, format, prerequisites, types
67
69
  from reflex.utils.imports import ImportVar
68
70
 
69
71
  # Define custom types.
@@ -131,7 +133,7 @@ class App(Base):
131
133
  background_tasks: Set[asyncio.Task] = set()
132
134
 
133
135
  # The radix theme for the entire app
134
- theme: Optional[Component] = None
136
+ theme: Optional[Component] = themes.theme(accent_color="blue")
135
137
 
136
138
  def __init__(self, *args, **kwargs):
137
139
  """Initialize the app.
@@ -168,7 +170,8 @@ class App(Base):
168
170
  deprecation_version="0.3.5",
169
171
  removal_version="0.4.0",
170
172
  )
171
- self.state = State
173
+ if len(State.class_subclasses) > 0:
174
+ self.state = State
172
175
  # Get the config
173
176
  config = get_config()
174
177
 
@@ -343,9 +346,12 @@ class App(Base):
343
346
 
344
347
  Raises:
345
348
  TypeError: When an invalid component function is passed.
349
+ exceptions.MatchTypeError: If the return types of match cases in rx.match are different.
346
350
  """
347
351
  try:
348
352
  return component if isinstance(component, Component) else component()
353
+ except exceptions.MatchTypeError:
354
+ raise
349
355
  except TypeError as e:
350
356
  message = str(e)
351
357
  if "BaseVar" in message or "ComputedVar" in message:
@@ -619,7 +625,24 @@ class App(Base):
619
625
  return True
620
626
 
621
627
  def compile(self):
622
- """Compile the app and output it to the pages folder."""
628
+ """compile_() is the new function for performing compilation.
629
+ Reflex framework will call it automatically as needed.
630
+ """
631
+ console.deprecate(
632
+ feature_name="app.compile()",
633
+ reason="Explicit calls to app.compile() are not needed."
634
+ " Method will be removed in 0.4.0",
635
+ deprecation_version="0.3.8",
636
+ removal_version="0.4.0",
637
+ )
638
+ return
639
+
640
+ def compile_(self):
641
+ """Compile the app and output it to the pages folder.
642
+
643
+ Raises:
644
+ RuntimeError: When any page uses state, but no rx.State subclass is defined.
645
+ """
623
646
  # add the pages before the compile check so App know onload methods
624
647
  for render, kwargs in DECORATED_PAGES:
625
648
  self.add_page(render, **kwargs)
@@ -667,8 +690,7 @@ class App(Base):
667
690
  # Merge the component style with the app style.
668
691
  component.add_style(self.style)
669
692
 
670
- if self.theme is not None:
671
- component.apply_theme(self.theme)
693
+ component.apply_theme(self.theme)
672
694
 
673
695
  # Add component.get_imports() to all_imports.
674
696
  all_imports.update(component.get_imports())
@@ -685,6 +707,16 @@ class App(Base):
685
707
  stateful_components_code,
686
708
  page_components,
687
709
  ) = compiler.compile_stateful_components(self.pages.values())
710
+
711
+ # Catch "static" apps (that do not define a rx.State subclass) which are trying to access rx.State.
712
+ if (
713
+ code_uses_state_contexts(stateful_components_code)
714
+ and self.state is None
715
+ ):
716
+ raise RuntimeError(
717
+ "To access rx.State in frontend components, at least one "
718
+ "subclass of rx.State must be defined in the app."
719
+ )
688
720
  compile_results.append((stateful_components_path, stateful_components_code))
689
721
 
690
722
  result_futures = []
@@ -736,7 +768,9 @@ class App(Base):
736
768
  config.tailwind["content"] = config.tailwind.get(
737
769
  "content", constants.Tailwind.CONTENT
738
770
  )
739
- submit_work(compiler.compile_tailwind, config.tailwind)
771
+ submit_work(compiler.compile_tailwind, config.tailwind)
772
+ else:
773
+ submit_work(compiler.remove_tailwind_from_postcss)
740
774
 
741
775
  # Get imports from AppWrap components.
742
776
  all_imports.update(app_root.get_imports())
@@ -12,7 +12,7 @@ from reflex.components.component import (
12
12
  Component as Component,
13
13
  ComponentStyle as ComponentStyle,
14
14
  )
15
- from reflex.components.layout.fragment import Fragment as Fragment
15
+ from reflex.components.base.fragment import Fragment as Fragment
16
16
  from reflex.config import get_config as get_config
17
17
  from reflex.event import (
18
18
  Event as Event,
@@ -120,6 +120,7 @@ class App(Base):
120
120
  def setup_admin_dash(self) -> None: ...
121
121
  def get_frontend_packages(self, imports: Dict[str, str]): ...
122
122
  def compile(self) -> None: ...
123
+ def compile_(self) -> None: ...
123
124
  def modify_state(self, token: str) -> AsyncContextManager[State]: ...
124
125
  def _process_background(
125
126
  self, state: State, event: Event
@@ -0,0 +1,13 @@
1
+ """Shims the real reflex app module for running backend server (uvicorn or gunicorn).
2
+ Only the app attribute is explicitly exposed.
3
+ """
4
+ from reflex import constants
5
+ from reflex.utils.prerequisites import get_compiled_app
6
+
7
+ if "app" != constants.CompileVars.APP:
8
+ raise AssertionError("unexpected variable name for 'app'")
9
+ app = getattr(get_compiled_app(), constants.CompileVars.APP)
10
+
11
+ # ensure only "app" is exposed.
12
+ del get_compiled_app
13
+ del constants
@@ -432,6 +432,25 @@ def compile_tailwind(
432
432
  return output_path, code
433
433
 
434
434
 
435
+ def remove_tailwind_from_postcss() -> tuple[str, str]:
436
+ """If tailwind is not to be used, remove it from postcss.config.js.
437
+
438
+ Returns:
439
+ The path and code of the compiled postcss.config.js.
440
+ """
441
+ # Get the path for the output file.
442
+ output_path = constants.Dirs.POSTCSS_JS
443
+
444
+ code = [
445
+ line
446
+ for line in Path(output_path).read_text().splitlines(keepends=True)
447
+ if "tailwindcss: " not in line
448
+ ]
449
+
450
+ # Compile the config.
451
+ return output_path, "".join(code)
452
+
453
+
435
454
  def purge_web_pages_dir():
436
455
  """Empty out .web directory."""
437
456
  utils.empty_dir(constants.Dirs.WEB_PAGES, keep_files=["_app.js"])
@@ -0,0 +1,16 @@
1
+ """Import all the components."""
2
+ from __future__ import annotations
3
+
4
+ from .base import Fragment, Script, fragment, script
5
+ from .chakra import *
6
+ from .component import Component
7
+ from .component import NoSSRComponent as NoSSRComponent
8
+ from .core import *
9
+ from .datadisplay import *
10
+ from .gridjs import *
11
+ from .markdown import *
12
+ from .moment import *
13
+ from .next import NextLink, next_link
14
+ from .plotly import *
15
+ from .react_player import *
16
+ from .suneditor import *
@@ -1,8 +1,12 @@
1
1
  """Base components."""
2
2
 
3
3
  from .body import Body
4
- from .document import ColorModeScript, DocumentHead, Html, Main, NextScript
4
+ from .document import DocumentHead, Html, Main, NextScript
5
+ from .fragment import Fragment
5
6
  from .head import Head
6
7
  from .link import RawLink, ScriptTag
7
8
  from .meta import Description, Image, Meta, Title
8
9
  from .script import Script
10
+
11
+ fragment = Fragment.create
12
+ script = Script.create
@@ -1,6 +1,6 @@
1
1
  """Top-level component that wraps the entire app."""
2
+ from reflex.components.base.fragment import Fragment
2
3
  from reflex.components.component import Component
3
- from reflex.components.layout.fragment import Fragment
4
4
  from reflex.vars import Var
5
5
 
6
6
 
@@ -7,8 +7,8 @@ from typing import Any, Dict, Literal, Optional, Union, overload
7
7
  from reflex.vars import Var, BaseVar, ComputedVar
8
8
  from reflex.event import EventChain, EventHandler, EventSpec
9
9
  from reflex.style import Style
10
+ from reflex.components.base.fragment import Fragment
10
11
  from reflex.components.component import Component
11
- from reflex.components.layout.fragment import Fragment
12
12
  from reflex.vars import Var
13
13
 
14
14
  class AppWrap(Fragment):
@@ -1,7 +1,6 @@
1
1
  """Document components."""
2
2
 
3
3
  from reflex.components.component import Component
4
- from reflex.components.libs.chakra import ChakraComponent
5
4
 
6
5
 
7
6
  class NextDocumentLib(Component):
@@ -32,10 +31,3 @@ class NextScript(NextDocumentLib):
32
31
  """The document main scripts."""
33
32
 
34
33
  tag = "NextScript"
35
-
36
-
37
- class ColorModeScript(ChakraComponent):
38
- """Chakra color mode script."""
39
-
40
- tag = "ColorModeScript"
41
- initialColorMode = "light"
@@ -8,7 +8,6 @@ from reflex.vars import Var, BaseVar, ComputedVar
8
8
  from reflex.event import EventChain, EventHandler, EventSpec
9
9
  from reflex.style import Style
10
10
  from reflex.components.component import Component
11
- from reflex.components.libs.chakra import ChakraComponent
12
11
 
13
12
  class NextDocumentLib(Component):
14
13
  @overload
@@ -404,82 +403,3 @@ class NextScript(NextDocumentLib):
404
403
  TypeError: If an invalid child is passed.
405
404
  """
406
405
  ...
407
-
408
- class ColorModeScript(ChakraComponent):
409
- @overload
410
- @classmethod
411
- def create( # type: ignore
412
- cls,
413
- *children,
414
- style: Optional[Style] = None,
415
- key: Optional[Any] = None,
416
- id: Optional[Any] = None,
417
- class_name: Optional[Any] = None,
418
- autofocus: Optional[bool] = None,
419
- custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
420
- on_blur: Optional[
421
- Union[EventHandler, EventSpec, list, function, BaseVar]
422
- ] = None,
423
- on_click: Optional[
424
- Union[EventHandler, EventSpec, list, function, BaseVar]
425
- ] = None,
426
- on_context_menu: Optional[
427
- Union[EventHandler, EventSpec, list, function, BaseVar]
428
- ] = None,
429
- on_double_click: Optional[
430
- Union[EventHandler, EventSpec, list, function, BaseVar]
431
- ] = None,
432
- on_focus: Optional[
433
- Union[EventHandler, EventSpec, list, function, BaseVar]
434
- ] = None,
435
- on_mount: Optional[
436
- Union[EventHandler, EventSpec, list, function, BaseVar]
437
- ] = None,
438
- on_mouse_down: Optional[
439
- Union[EventHandler, EventSpec, list, function, BaseVar]
440
- ] = None,
441
- on_mouse_enter: Optional[
442
- Union[EventHandler, EventSpec, list, function, BaseVar]
443
- ] = None,
444
- on_mouse_leave: Optional[
445
- Union[EventHandler, EventSpec, list, function, BaseVar]
446
- ] = None,
447
- on_mouse_move: Optional[
448
- Union[EventHandler, EventSpec, list, function, BaseVar]
449
- ] = None,
450
- on_mouse_out: Optional[
451
- Union[EventHandler, EventSpec, list, function, BaseVar]
452
- ] = None,
453
- on_mouse_over: Optional[
454
- Union[EventHandler, EventSpec, list, function, BaseVar]
455
- ] = None,
456
- on_mouse_up: Optional[
457
- Union[EventHandler, EventSpec, list, function, BaseVar]
458
- ] = None,
459
- on_scroll: Optional[
460
- Union[EventHandler, EventSpec, list, function, BaseVar]
461
- ] = None,
462
- on_unmount: Optional[
463
- Union[EventHandler, EventSpec, list, function, BaseVar]
464
- ] = None,
465
- **props
466
- ) -> "ColorModeScript":
467
- """Create the component.
468
-
469
- Args:
470
- *children: The children of the component.
471
- style: The style of the component.
472
- key: A unique key for the component.
473
- id: The id for the component.
474
- class_name: The class name for the component.
475
- autofocus: Whether the component should take the focus once the page is loaded
476
- custom_attrs: custom attribute
477
- **props: The props of the component.
478
-
479
- Returns:
480
- The component.
481
-
482
- Raises:
483
- TypeError: If an invalid child is passed.
484
- """
485
- ...
@@ -1,4 +1,4 @@
1
- """Stub file for reflex/components/layout/fragment.py"""
1
+ """Stub file for reflex/components/base/fragment.py"""
2
2
  # ------------------- DO NOT EDIT ----------------------
3
3
  # This file was generated by `scripts/pyi_generator.py`!
4
4
  # ------------------------------------------------------