reflex 0.5.0a1__tar.gz → 0.5.0a2__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 (521) hide show
  1. {reflex-0.5.0a1 → reflex-0.5.0a2}/PKG-INFO +1 -1
  2. {reflex-0.5.0a1 → reflex-0.5.0a2}/pyproject.toml +1 -1
  3. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/jinja/web/tailwind.config.js.jinja2 +12 -0
  4. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/component.py +1 -5
  5. reflex-0.5.0a2/reflex/components/core/foreach.py +130 -0
  6. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/primitives/accordion.py +128 -94
  7. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/primitives/accordion.pyi +25 -12
  8. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/primitives/form.py +1 -1
  9. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/style.py +5 -2
  10. reflex-0.5.0a1/reflex/components/core/foreach.py +0 -104
  11. {reflex-0.5.0a1 → reflex-0.5.0a2}/LICENSE +0 -0
  12. {reflex-0.5.0a1 → reflex-0.5.0a2}/README.md +0 -0
  13. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/apps/blank/assets/favicon.ico +0 -0
  14. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/apps/blank/code/__init__.py +0 -0
  15. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/apps/blank/code/blank.py +0 -0
  16. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/apps/demo/.gitignore +0 -0
  17. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/apps/demo/assets/favicon.ico +0 -0
  18. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/apps/demo/assets/github.svg +0 -0
  19. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/apps/demo/assets/icon.svg +0 -0
  20. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/apps/demo/assets/logo.svg +0 -0
  21. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/apps/demo/assets/paneleft.svg +0 -0
  22. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/apps/demo/code/__init__.py +0 -0
  23. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/apps/demo/code/demo.py +0 -0
  24. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/apps/demo/code/pages/__init__.py +0 -0
  25. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/apps/demo/code/pages/chatapp.py +0 -0
  26. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/apps/demo/code/pages/datatable.py +0 -0
  27. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/apps/demo/code/pages/forms.py +0 -0
  28. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/apps/demo/code/pages/graphing.py +0 -0
  29. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/apps/demo/code/pages/home.py +0 -0
  30. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/apps/demo/code/sidebar.py +0 -0
  31. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/apps/demo/code/state.py +0 -0
  32. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/apps/demo/code/states/form_state.py +0 -0
  33. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/apps/demo/code/states/pie_state.py +0 -0
  34. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/apps/demo/code/styles.py +0 -0
  35. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/apps/demo/code/webui/__init__.py +0 -0
  36. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/apps/demo/code/webui/components/__init__.py +0 -0
  37. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/apps/demo/code/webui/components/chat.py +0 -0
  38. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/apps/demo/code/webui/components/loading_icon.py +0 -0
  39. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/apps/demo/code/webui/components/modal.py +0 -0
  40. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/apps/demo/code/webui/components/navbar.py +0 -0
  41. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/apps/demo/code/webui/components/sidebar.py +0 -0
  42. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/apps/demo/code/webui/state.py +0 -0
  43. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/apps/demo/code/webui/styles.py +0 -0
  44. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/jinja/app/rxconfig.py.jinja2 +0 -0
  45. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/jinja/custom_components/README.md.jinja2 +0 -0
  46. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/jinja/custom_components/__init__.py.jinja2 +0 -0
  47. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/jinja/custom_components/demo_app.py.jinja2 +0 -0
  48. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/jinja/custom_components/pyproject.toml.jinja2 +0 -0
  49. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/jinja/custom_components/src.py.jinja2 +0 -0
  50. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/jinja/web/package.json.jinja2 +0 -0
  51. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/jinja/web/pages/_app.js.jinja2 +0 -0
  52. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/jinja/web/pages/_document.js.jinja2 +0 -0
  53. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/jinja/web/pages/base_page.js.jinja2 +0 -0
  54. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/jinja/web/pages/component.js.jinja2 +0 -0
  55. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/jinja/web/pages/custom_component.js.jinja2 +0 -0
  56. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/jinja/web/pages/index.js.jinja2 +0 -0
  57. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/jinja/web/pages/stateful_component.js.jinja2 +0 -0
  58. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/jinja/web/pages/stateful_components.js.jinja2 +0 -0
  59. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/jinja/web/pages/utils.js.jinja2 +0 -0
  60. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/jinja/web/styles/styles.css.jinja2 +0 -0
  61. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/jinja/web/utils/context.js.jinja2 +0 -0
  62. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/jinja/web/utils/theme.js.jinja2 +0 -0
  63. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/web/.gitignore +0 -0
  64. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/web/components/reflex/chakra_color_mode_provider.js +0 -0
  65. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js +0 -0
  66. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/web/jsconfig.json +0 -0
  67. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/web/next.config.js +0 -0
  68. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/web/postcss.config.js +0 -0
  69. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/web/styles/tailwind.css +0 -0
  70. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/web/utils/client_side_routing.js +0 -0
  71. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/web/utils/helpers/dataeditor.js +0 -0
  72. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/web/utils/helpers/debounce.js +0 -0
  73. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/web/utils/helpers/range.js +0 -0
  74. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/web/utils/helpers/throttle.js +0 -0
  75. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/.templates/web/utils/state.js +0 -0
  76. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/__init__.py +0 -0
  77. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/__init__.pyi +0 -0
  78. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/__main__.py +0 -0
  79. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/admin.py +0 -0
  80. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/app.py +0 -0
  81. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/app_module_for_backend.py +0 -0
  82. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/base.py +0 -0
  83. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/compiler/__init__.py +0 -0
  84. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/compiler/compiler.py +0 -0
  85. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/compiler/templates.py +0 -0
  86. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/compiler/utils.py +0 -0
  87. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/__init__.py +0 -0
  88. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/base/__init__.py +0 -0
  89. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/base/app_wrap.py +0 -0
  90. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/base/app_wrap.pyi +0 -0
  91. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/base/bare.py +0 -0
  92. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/base/body.py +0 -0
  93. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/base/body.pyi +0 -0
  94. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/base/document.py +0 -0
  95. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/base/document.pyi +0 -0
  96. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/base/fragment.py +0 -0
  97. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/base/fragment.pyi +0 -0
  98. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/base/head.py +0 -0
  99. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/base/head.pyi +0 -0
  100. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/base/link.py +0 -0
  101. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/base/link.pyi +0 -0
  102. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/base/meta.py +0 -0
  103. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/base/meta.pyi +0 -0
  104. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/base/script.py +0 -0
  105. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/base/script.pyi +0 -0
  106. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/__init__.py +0 -0
  107. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/base.py +0 -0
  108. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/base.pyi +0 -0
  109. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/datadisplay/__init__.py +0 -0
  110. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/datadisplay/badge.py +0 -0
  111. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/datadisplay/badge.pyi +0 -0
  112. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/datadisplay/code.py +0 -0
  113. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/datadisplay/code.pyi +0 -0
  114. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/datadisplay/divider.py +0 -0
  115. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/datadisplay/divider.pyi +0 -0
  116. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/datadisplay/keyboard_key.py +0 -0
  117. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/datadisplay/keyboard_key.pyi +0 -0
  118. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/datadisplay/list.py +0 -0
  119. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/datadisplay/list.pyi +0 -0
  120. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/datadisplay/stat.py +0 -0
  121. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/datadisplay/stat.pyi +0 -0
  122. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/datadisplay/table.py +0 -0
  123. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/datadisplay/table.pyi +0 -0
  124. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/datadisplay/tag.py +0 -0
  125. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/datadisplay/tag.pyi +0 -0
  126. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/disclosure/__init__.py +0 -0
  127. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/disclosure/accordion.py +0 -0
  128. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/disclosure/accordion.pyi +0 -0
  129. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/disclosure/tabs.py +0 -0
  130. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/disclosure/tabs.pyi +0 -0
  131. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/disclosure/transition.py +0 -0
  132. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/disclosure/transition.pyi +0 -0
  133. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/disclosure/visuallyhidden.py +0 -0
  134. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/disclosure/visuallyhidden.pyi +0 -0
  135. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/feedback/__init__.py +0 -0
  136. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/feedback/alert.py +0 -0
  137. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/feedback/alert.pyi +0 -0
  138. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/feedback/circularprogress.py +0 -0
  139. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/feedback/circularprogress.pyi +0 -0
  140. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/feedback/progress.py +0 -0
  141. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/feedback/progress.pyi +0 -0
  142. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/feedback/skeleton.py +0 -0
  143. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/feedback/skeleton.pyi +0 -0
  144. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/feedback/spinner.py +0 -0
  145. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/feedback/spinner.pyi +0 -0
  146. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/forms/__init__.py +0 -0
  147. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/forms/button.py +0 -0
  148. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/forms/button.pyi +0 -0
  149. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/forms/checkbox.py +0 -0
  150. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/forms/checkbox.pyi +0 -0
  151. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/forms/colormodeswitch.py +0 -0
  152. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/forms/colormodeswitch.pyi +0 -0
  153. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/forms/date_picker.py +0 -0
  154. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/forms/date_picker.pyi +0 -0
  155. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/forms/date_time_picker.py +0 -0
  156. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/forms/date_time_picker.pyi +0 -0
  157. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/forms/editable.py +0 -0
  158. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/forms/editable.pyi +0 -0
  159. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/forms/email.py +0 -0
  160. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/forms/email.pyi +0 -0
  161. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/forms/form.py +0 -0
  162. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/forms/form.pyi +0 -0
  163. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/forms/iconbutton.py +0 -0
  164. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/forms/iconbutton.pyi +0 -0
  165. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/forms/input.py +0 -0
  166. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/forms/input.pyi +0 -0
  167. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/forms/multiselect.py +0 -0
  168. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/forms/numberinput.py +0 -0
  169. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/forms/numberinput.pyi +0 -0
  170. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/forms/password.py +0 -0
  171. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/forms/password.pyi +0 -0
  172. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/forms/pininput.py +0 -0
  173. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/forms/pininput.pyi +0 -0
  174. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/forms/radio.py +0 -0
  175. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/forms/radio.pyi +0 -0
  176. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/forms/rangeslider.py +0 -0
  177. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/forms/rangeslider.pyi +0 -0
  178. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/forms/select.py +0 -0
  179. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/forms/select.pyi +0 -0
  180. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/forms/slider.py +0 -0
  181. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/forms/slider.pyi +0 -0
  182. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/forms/switch.py +0 -0
  183. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/forms/switch.pyi +0 -0
  184. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/forms/textarea.py +0 -0
  185. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/forms/textarea.pyi +0 -0
  186. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/forms/time_picker.py +0 -0
  187. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/forms/time_picker.pyi +0 -0
  188. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/layout/__init__.py +0 -0
  189. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/layout/aspect_ratio.py +0 -0
  190. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/layout/aspect_ratio.pyi +0 -0
  191. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/layout/box.py +0 -0
  192. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/layout/box.pyi +0 -0
  193. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/layout/card.py +0 -0
  194. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/layout/card.pyi +0 -0
  195. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/layout/center.py +0 -0
  196. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/layout/center.pyi +0 -0
  197. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/layout/container.py +0 -0
  198. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/layout/container.pyi +0 -0
  199. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/layout/flex.py +0 -0
  200. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/layout/flex.pyi +0 -0
  201. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/layout/grid.py +0 -0
  202. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/layout/grid.pyi +0 -0
  203. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/layout/spacer.py +0 -0
  204. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/layout/spacer.pyi +0 -0
  205. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/layout/stack.py +0 -0
  206. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/layout/stack.pyi +0 -0
  207. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/layout/wrap.py +0 -0
  208. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/layout/wrap.pyi +0 -0
  209. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/media/__init__.py +0 -0
  210. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/media/avatar.py +0 -0
  211. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/media/avatar.pyi +0 -0
  212. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/media/icon.py +0 -0
  213. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/media/icon.pyi +0 -0
  214. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/media/image.py +0 -0
  215. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/media/image.pyi +0 -0
  216. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/navigation/__init__.py +0 -0
  217. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/navigation/breadcrumb.py +0 -0
  218. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/navigation/breadcrumb.pyi +0 -0
  219. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/navigation/link.py +0 -0
  220. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/navigation/link.pyi +0 -0
  221. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/navigation/linkoverlay.py +0 -0
  222. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/navigation/linkoverlay.pyi +0 -0
  223. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/navigation/stepper.py +0 -0
  224. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/navigation/stepper.pyi +0 -0
  225. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/overlay/__init__.py +0 -0
  226. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/overlay/alertdialog.py +0 -0
  227. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/overlay/alertdialog.pyi +0 -0
  228. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/overlay/drawer.py +0 -0
  229. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/overlay/drawer.pyi +0 -0
  230. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/overlay/menu.py +0 -0
  231. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/overlay/menu.pyi +0 -0
  232. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/overlay/modal.py +0 -0
  233. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/overlay/modal.pyi +0 -0
  234. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/overlay/popover.py +0 -0
  235. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/overlay/popover.pyi +0 -0
  236. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/overlay/tooltip.py +0 -0
  237. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/overlay/tooltip.pyi +0 -0
  238. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/typography/__init__.py +0 -0
  239. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/typography/heading.py +0 -0
  240. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/typography/heading.pyi +0 -0
  241. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/typography/highlight.py +0 -0
  242. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/typography/highlight.pyi +0 -0
  243. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/typography/span.py +0 -0
  244. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/typography/span.pyi +0 -0
  245. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/typography/text.py +0 -0
  246. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/chakra/typography/text.pyi +0 -0
  247. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/core/__init__.py +0 -0
  248. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/core/banner.py +0 -0
  249. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/core/banner.pyi +0 -0
  250. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/core/client_side_routing.py +0 -0
  251. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/core/client_side_routing.pyi +0 -0
  252. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/core/colors.py +0 -0
  253. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/core/cond.py +0 -0
  254. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/core/debounce.py +0 -0
  255. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/core/debounce.pyi +0 -0
  256. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/core/html.py +0 -0
  257. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/core/html.pyi +0 -0
  258. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/core/layout/__init__.py +0 -0
  259. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/core/match.py +0 -0
  260. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/core/responsive.py +0 -0
  261. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/core/upload.py +0 -0
  262. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/core/upload.pyi +0 -0
  263. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/datadisplay/__init__.py +0 -0
  264. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/datadisplay/code.py +0 -0
  265. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/datadisplay/code.pyi +0 -0
  266. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/datadisplay/dataeditor.py +0 -0
  267. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/datadisplay/dataeditor.pyi +0 -0
  268. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/datadisplay/logo.py +0 -0
  269. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/el/__init__.py +0 -0
  270. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/el/constants/__init__.py +0 -0
  271. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/el/constants/html.py +0 -0
  272. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/el/constants/react.py +0 -0
  273. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/el/constants/reflex.py +0 -0
  274. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/el/element.py +0 -0
  275. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/el/element.pyi +0 -0
  276. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/el/elements/__init__.py +0 -0
  277. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/el/elements/base.py +0 -0
  278. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/el/elements/base.pyi +0 -0
  279. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/el/elements/forms.py +0 -0
  280. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/el/elements/forms.pyi +0 -0
  281. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/el/elements/inline.py +0 -0
  282. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/el/elements/inline.pyi +0 -0
  283. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/el/elements/media.py +0 -0
  284. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/el/elements/media.pyi +0 -0
  285. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/el/elements/metadata.py +0 -0
  286. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/el/elements/metadata.pyi +0 -0
  287. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/el/elements/other.py +0 -0
  288. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/el/elements/other.pyi +0 -0
  289. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/el/elements/scripts.py +0 -0
  290. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/el/elements/scripts.pyi +0 -0
  291. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/el/elements/sectioning.py +0 -0
  292. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/el/elements/sectioning.pyi +0 -0
  293. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/el/elements/tables.py +0 -0
  294. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/el/elements/tables.pyi +0 -0
  295. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/el/elements/typography.py +0 -0
  296. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/el/elements/typography.pyi +0 -0
  297. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/gridjs/__init__.py +0 -0
  298. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/gridjs/datatable.py +0 -0
  299. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/gridjs/datatable.pyi +0 -0
  300. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/literals.py +0 -0
  301. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/lucide/__init__.py +0 -0
  302. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/lucide/icon.py +0 -0
  303. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/lucide/icon.pyi +0 -0
  304. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/markdown/__init__.py +0 -0
  305. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/markdown/markdown.py +0 -0
  306. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/markdown/markdown.pyi +0 -0
  307. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/media/__init__.py +0 -0
  308. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/media/icon.py +0 -0
  309. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/moment/__init__.py +0 -0
  310. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/moment/moment.py +0 -0
  311. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/moment/moment.pyi +0 -0
  312. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/next/__init__.py +0 -0
  313. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/next/base.py +0 -0
  314. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/next/base.pyi +0 -0
  315. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/next/image.py +0 -0
  316. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/next/image.pyi +0 -0
  317. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/next/link.py +0 -0
  318. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/next/link.pyi +0 -0
  319. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/next/video.py +0 -0
  320. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/next/video.pyi +0 -0
  321. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/plotly/__init__.py +0 -0
  322. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/plotly/plotly.py +0 -0
  323. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/plotly/plotly.pyi +0 -0
  324. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/__init__.py +0 -0
  325. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/primitives/__init__.py +0 -0
  326. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/primitives/base.py +0 -0
  327. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/primitives/base.pyi +0 -0
  328. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/primitives/drawer.py +0 -0
  329. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/primitives/drawer.pyi +0 -0
  330. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/primitives/form.pyi +0 -0
  331. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/primitives/progress.py +0 -0
  332. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/primitives/progress.pyi +0 -0
  333. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/primitives/slider.py +0 -0
  334. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/primitives/slider.pyi +0 -0
  335. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/__init__.py +0 -0
  336. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/base.py +0 -0
  337. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/base.pyi +0 -0
  338. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/color_mode.py +0 -0
  339. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/color_mode.pyi +0 -0
  340. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/__init__.py +0 -0
  341. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/alert_dialog.py +0 -0
  342. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/alert_dialog.pyi +0 -0
  343. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/aspect_ratio.py +0 -0
  344. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/aspect_ratio.pyi +0 -0
  345. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/avatar.py +0 -0
  346. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/avatar.pyi +0 -0
  347. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/badge.py +0 -0
  348. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/badge.pyi +0 -0
  349. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/button.py +0 -0
  350. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/button.pyi +0 -0
  351. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/callout.py +0 -0
  352. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/callout.pyi +0 -0
  353. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/card.py +0 -0
  354. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/card.pyi +0 -0
  355. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/checkbox.py +0 -0
  356. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/checkbox.pyi +0 -0
  357. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/checkbox_cards.py +0 -0
  358. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/checkbox_cards.pyi +0 -0
  359. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/checkbox_group.py +0 -0
  360. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/checkbox_group.pyi +0 -0
  361. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/context_menu.py +0 -0
  362. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/context_menu.pyi +0 -0
  363. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/data_list.py +0 -0
  364. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/data_list.pyi +0 -0
  365. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/dialog.py +0 -0
  366. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/dialog.pyi +0 -0
  367. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/dropdown_menu.py +0 -0
  368. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/dropdown_menu.pyi +0 -0
  369. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/hover_card.py +0 -0
  370. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/hover_card.pyi +0 -0
  371. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/icon_button.py +0 -0
  372. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/icon_button.pyi +0 -0
  373. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/inset.py +0 -0
  374. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/inset.pyi +0 -0
  375. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/popover.py +0 -0
  376. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/popover.pyi +0 -0
  377. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/progress.py +0 -0
  378. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/progress.pyi +0 -0
  379. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/radio.py +0 -0
  380. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/radio.pyi +0 -0
  381. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/radio_cards.py +0 -0
  382. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/radio_cards.pyi +0 -0
  383. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/radio_group.py +0 -0
  384. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/radio_group.pyi +0 -0
  385. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/scroll_area.py +0 -0
  386. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/scroll_area.pyi +0 -0
  387. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/segmented_control.py +0 -0
  388. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/segmented_control.pyi +0 -0
  389. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/select.py +0 -0
  390. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/select.pyi +0 -0
  391. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/separator.py +0 -0
  392. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/separator.pyi +0 -0
  393. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/skeleton.py +0 -0
  394. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/skeleton.pyi +0 -0
  395. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/slider.py +0 -0
  396. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/slider.pyi +0 -0
  397. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/spinner.py +0 -0
  398. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/spinner.pyi +0 -0
  399. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/switch.py +0 -0
  400. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/switch.pyi +0 -0
  401. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/table.py +0 -0
  402. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/table.pyi +0 -0
  403. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/tabs.py +0 -0
  404. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/tabs.pyi +0 -0
  405. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/text_area.py +0 -0
  406. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/text_area.pyi +0 -0
  407. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/text_field.py +0 -0
  408. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/text_field.pyi +0 -0
  409. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/tooltip.py +0 -0
  410. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/components/tooltip.pyi +0 -0
  411. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/layout/__init__.py +0 -0
  412. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/layout/base.py +0 -0
  413. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/layout/base.pyi +0 -0
  414. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/layout/box.py +0 -0
  415. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/layout/box.pyi +0 -0
  416. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/layout/center.py +0 -0
  417. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/layout/center.pyi +0 -0
  418. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/layout/container.py +0 -0
  419. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/layout/container.pyi +0 -0
  420. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/layout/flex.py +0 -0
  421. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/layout/flex.pyi +0 -0
  422. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/layout/grid.py +0 -0
  423. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/layout/grid.pyi +0 -0
  424. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/layout/list.py +0 -0
  425. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/layout/list.pyi +0 -0
  426. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/layout/section.py +0 -0
  427. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/layout/section.pyi +0 -0
  428. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/layout/spacer.py +0 -0
  429. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/layout/spacer.pyi +0 -0
  430. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/layout/stack.py +0 -0
  431. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/layout/stack.pyi +0 -0
  432. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/typography/__init__.py +0 -0
  433. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/typography/base.py +0 -0
  434. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/typography/blockquote.py +0 -0
  435. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/typography/blockquote.pyi +0 -0
  436. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/typography/code.py +0 -0
  437. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/typography/code.pyi +0 -0
  438. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/typography/heading.py +0 -0
  439. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/typography/heading.pyi +0 -0
  440. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/typography/link.py +0 -0
  441. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/typography/link.pyi +0 -0
  442. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/typography/text.py +0 -0
  443. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/radix/themes/typography/text.pyi +0 -0
  444. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/react_player/__init__.py +0 -0
  445. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/react_player/audio.py +0 -0
  446. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/react_player/audio.pyi +0 -0
  447. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/react_player/react_player.py +0 -0
  448. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/react_player/react_player.pyi +0 -0
  449. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/react_player/video.py +0 -0
  450. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/react_player/video.pyi +0 -0
  451. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/recharts/__init__.py +0 -0
  452. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/recharts/cartesian.py +0 -0
  453. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/recharts/cartesian.pyi +0 -0
  454. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/recharts/charts.py +0 -0
  455. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/recharts/charts.pyi +0 -0
  456. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/recharts/general.py +0 -0
  457. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/recharts/general.pyi +0 -0
  458. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/recharts/polar.py +0 -0
  459. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/recharts/polar.pyi +0 -0
  460. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/recharts/recharts.py +0 -0
  461. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/recharts/recharts.pyi +0 -0
  462. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/sonner/__init__.py +0 -0
  463. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/sonner/toast.py +0 -0
  464. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/sonner/toast.pyi +0 -0
  465. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/suneditor/__init__.py +0 -0
  466. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/suneditor/editor.py +0 -0
  467. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/suneditor/editor.pyi +0 -0
  468. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/tags/__init__.py +0 -0
  469. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/tags/cond_tag.py +0 -0
  470. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/tags/iter_tag.py +0 -0
  471. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/tags/match_tag.py +0 -0
  472. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/tags/tag.py +0 -0
  473. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/components/tags/tagless.py +0 -0
  474. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/config.py +0 -0
  475. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/config.pyi +0 -0
  476. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/constants/__init__.py +0 -0
  477. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/constants/base.py +0 -0
  478. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/constants/base.pyi +0 -0
  479. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/constants/colors.py +0 -0
  480. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/constants/compiler.py +0 -0
  481. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/constants/config.py +0 -0
  482. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/constants/custom_components.py +0 -0
  483. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/constants/event.py +0 -0
  484. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/constants/installer.py +0 -0
  485. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/constants/route.py +0 -0
  486. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/constants/style.py +0 -0
  487. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/custom_components/__init__.py +0 -0
  488. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/custom_components/custom_components.py +0 -0
  489. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/event.py +0 -0
  490. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/experimental/__init__.py +0 -0
  491. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/experimental/hooks.py +0 -0
  492. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/experimental/layout.py +0 -0
  493. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/experimental/misc.py +0 -0
  494. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/middleware/__init__.py +0 -0
  495. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/middleware/hydrate_middleware.py +0 -0
  496. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/middleware/middleware.py +0 -0
  497. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/model.py +0 -0
  498. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/page.py +0 -0
  499. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/reflex.py +0 -0
  500. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/route.py +0 -0
  501. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/state.py +0 -0
  502. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/testing.py +0 -0
  503. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/utils/__init__.py +0 -0
  504. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/utils/build.py +0 -0
  505. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/utils/compat.py +0 -0
  506. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/utils/console.py +0 -0
  507. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/utils/exceptions.py +0 -0
  508. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/utils/exec.py +0 -0
  509. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/utils/export.py +0 -0
  510. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/utils/format.py +0 -0
  511. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/utils/imports.py +0 -0
  512. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/utils/path_ops.py +0 -0
  513. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/utils/prerequisites.py +0 -0
  514. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/utils/processes.py +0 -0
  515. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/utils/pyi_generator.py +0 -0
  516. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/utils/serializers.py +0 -0
  517. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/utils/telemetry.py +0 -0
  518. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/utils/types.py +0 -0
  519. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/utils/watch.py +0 -0
  520. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/vars.py +0 -0
  521. {reflex-0.5.0a1 → reflex-0.5.0a2}/reflex/vars.pyi +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: reflex
3
- Version: 0.5.0a1
3
+ Version: 0.5.0a2
4
4
  Summary: Web apps in pure Python.
5
5
  Home-page: https://reflex.dev
6
6
  License: Apache-2.0
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "reflex"
3
- version = "0.5.0a1"
3
+ version = "0.5.0a2"
4
4
  description = "Web apps in pure Python."
5
5
  license = "Apache-2.0"
6
6
  authors = [
@@ -17,4 +17,16 @@ module.exports = {
17
17
  {% if darkMode is defined %}
18
18
  darkMode: {{darkMode|json_dumps}},
19
19
  {% endif %}
20
+ {% if corePlugins is defined %}
21
+ corePlugins: {{corePlugins|json_dumps}},
22
+ {% endif %}
23
+ {% if important is defined %}
24
+ important: {{important|json_dumps}},
25
+ {% endif %}
26
+ {% if prefix is defined %}
27
+ prefix: {{prefix|json_dumps}},
28
+ {% endif %}
29
+ {% if separator is defined %}
30
+ separator: {{separator|json_dumps}},
31
+ {% endif %}
20
32
  };
@@ -781,7 +781,7 @@ class Component(BaseComponent, ABC):
781
781
 
782
782
  return cls(children=children, **props)
783
783
 
784
- def add_style(self) -> Style | None:
784
+ def add_style(self) -> dict[str, Any] | None:
785
785
  """Add style to the component.
786
786
 
787
787
  Downstream components can override this method to return a style dict
@@ -801,20 +801,16 @@ class Component(BaseComponent, ABC):
801
801
  The style to add.
802
802
  """
803
803
  styles = []
804
- vars = []
805
804
 
806
805
  # Walk the MRO to call all `add_style` methods.
807
806
  for base in self._iter_parent_classes_with_method("add_style"):
808
807
  s = base.add_style(self) # type: ignore
809
808
  if s is not None:
810
809
  styles.append(s)
811
- vars.append(s._var_data)
812
810
 
813
811
  _style = Style()
814
812
  for s in reversed(styles):
815
813
  _style.update(s)
816
-
817
- _style._var_data = VarData.merge(*vars)
818
814
  return _style
819
815
 
820
816
  def _get_component_style(self, styles: ComponentStyle) -> Style | None:
@@ -0,0 +1,130 @@
1
+ """Create a list of components from an iterable."""
2
+ from __future__ import annotations
3
+
4
+ import inspect
5
+ from typing import Any, Callable, Iterable
6
+
7
+ from reflex.components.base.fragment import Fragment
8
+ from reflex.components.component import Component
9
+ from reflex.components.tags import IterTag
10
+ from reflex.constants import MemoizationMode
11
+ from reflex.utils import console
12
+ from reflex.vars import Var
13
+
14
+
15
+ class ForeachVarError(TypeError):
16
+ """Raised when the iterable type is Any."""
17
+
18
+
19
+ class ForeachRenderError(TypeError):
20
+ """Raised when there is an error with the foreach render function."""
21
+
22
+
23
+ class Foreach(Component):
24
+ """A component that takes in an iterable and a render function and renders a list of components."""
25
+
26
+ _memoization_mode = MemoizationMode(recursive=False)
27
+
28
+ # The iterable to create components from.
29
+ iterable: Var[Iterable]
30
+
31
+ # A function from the render args to the component.
32
+ render_fn: Callable = Fragment.create
33
+
34
+ @classmethod
35
+ def create(
36
+ cls,
37
+ iterable: Var[Iterable] | Iterable,
38
+ render_fn: Callable,
39
+ **props,
40
+ ) -> Foreach:
41
+ """Create a foreach component.
42
+
43
+ Args:
44
+ iterable: The iterable to create components from.
45
+ render_fn: A function from the render args to the component.
46
+ **props: The attributes to pass to each child component (deprecated).
47
+
48
+ Returns:
49
+ The foreach component.
50
+
51
+ Raises:
52
+ ForeachVarError: If the iterable is of type Any.
53
+ """
54
+ if props:
55
+ console.deprecate(
56
+ feature_name="Passing props to rx.foreach",
57
+ reason="it does not have the intended effect and may be confusing",
58
+ deprecation_version="0.5.0",
59
+ removal_version="0.6.0",
60
+ )
61
+ iterable = Var.create_safe(iterable)
62
+ if iterable._var_type == Any:
63
+ raise ForeachVarError(
64
+ f"Could not foreach over var `{iterable._var_full_name}` of type Any. "
65
+ "(If you are trying to foreach over a state var, add a type annotation to the var). "
66
+ "See https://reflex.dev/docs/library/layout/foreach/"
67
+ )
68
+ component = cls(
69
+ iterable=iterable,
70
+ render_fn=render_fn,
71
+ )
72
+ # Keep a ref to a rendered component to determine correct imports/hooks/styles.
73
+ component.children = [component._render().render_component()]
74
+ return component
75
+
76
+ def _render(self) -> IterTag:
77
+ props = {}
78
+
79
+ render_sig = inspect.signature(self.render_fn)
80
+ params = list(render_sig.parameters.values())
81
+
82
+ # Validate the render function signature.
83
+ if len(params) == 0 or len(params) > 2:
84
+ raise ForeachRenderError(
85
+ "Expected 1 or 2 parameters in foreach render function, got "
86
+ f"{[p.name for p in params]}. See https://reflex.dev/docs/library/layout/foreach/"
87
+ )
88
+
89
+ if len(params) >= 1:
90
+ # Determine the arg var name based on the params accepted by render_fn.
91
+ props["arg_var_name"] = params[0].name
92
+
93
+ if len(params) == 2:
94
+ # Determine the index var name based on the params accepted by render_fn.
95
+ props["index_var_name"] = params[1].name
96
+ else:
97
+ # Otherwise, use a deterministic index, based on the render function bytecode.
98
+ code_hash = (
99
+ hash(self.render_fn.__code__)
100
+ .to_bytes(
101
+ length=8,
102
+ byteorder="big",
103
+ signed=True,
104
+ )
105
+ .hex()
106
+ )
107
+ props["index_var_name"] = f"index_{code_hash}"
108
+
109
+ return IterTag(
110
+ iterable=self.iterable,
111
+ render_fn=self.render_fn,
112
+ children=self.children,
113
+ **props,
114
+ )
115
+
116
+ def render(self):
117
+ """Render the component.
118
+
119
+ Returns:
120
+ The dictionary for template of component.
121
+ """
122
+ tag = self._render()
123
+
124
+ return dict(
125
+ tag,
126
+ iterable_state=tag.iterable._var_full_name,
127
+ arg_name=tag.arg_var_name,
128
+ arg_index=tag.get_index_var_arg(),
129
+ iterable_type=tag.iterable._var_type.mro()[0].__name__,
130
+ )
@@ -6,9 +6,10 @@ from typing import Any, Dict, List, Literal, Optional, Union
6
6
 
7
7
  from reflex.components.component import Component, ComponentNamespace
8
8
  from reflex.components.core.colors import color
9
+ from reflex.components.core.cond import cond
9
10
  from reflex.components.lucide.icon import Icon
10
11
  from reflex.components.radix.primitives.base import RadixPrimitiveComponent
11
- from reflex.components.radix.themes.base import LiteralAccentColor
12
+ from reflex.components.radix.themes.base import LiteralAccentColor, LiteralRadius
12
13
  from reflex.style import Style
13
14
  from reflex.utils import imports
14
15
  from reflex.vars import Var, get_uuid_string_var
@@ -19,6 +20,32 @@ LiteralAccordionOrientation = Literal["vertical", "horizontal"]
19
20
  LiteralAccordionVariant = Literal["classic", "soft", "surface", "outline", "ghost"]
20
21
 
21
22
  DEFAULT_ANIMATION_DURATION = 250
23
+ DEFAULT_ANIMATION_EASING = "cubic-bezier(0.87, 0, 0.13, 1)"
24
+
25
+
26
+ def _inherited_variant_selector(
27
+ variant: Var[LiteralAccordionVariant] | LiteralAccordionVariant,
28
+ *selectors: str,
29
+ ) -> str:
30
+ """Create a multi CSS selector for targeting variant against the given selectors.
31
+
32
+ Args:
33
+ variant: The variant to target.
34
+ selectors: The selectors to apply the variant to (default &)
35
+
36
+ Returns:
37
+ A CSS selector that is more specific on elements that directly set the variant.
38
+ """
39
+ if not selectors:
40
+ selectors = ("&",)
41
+ # Prefer the `data-variant` that is set directly on the selector,
42
+ # but also inherit the `data-variant` from any parent element.
43
+ return ", ".join(
44
+ [
45
+ f"{selector}[data-variant='{variant}'], *:where([data-variant='{variant}']) {selector}"
46
+ for selector in selectors
47
+ ]
48
+ )
22
49
 
23
50
 
24
51
  class AccordionComponent(RadixPrimitiveComponent):
@@ -30,14 +57,14 @@ class AccordionComponent(RadixPrimitiveComponent):
30
57
  color_scheme: Var[LiteralAccentColor]
31
58
 
32
59
  # The variant of the component.
33
- variant: Var[LiteralAccordionVariant] = Var.create_safe("classic")
60
+ variant: Var[LiteralAccordionVariant]
34
61
 
35
62
  def add_style(self) -> Style | None:
36
63
  """Add style to the component."""
37
64
  if self.color_scheme is not None:
38
65
  self.custom_attrs["data-accent-color"] = self.color_scheme
39
-
40
- self.custom_attrs["data-variant"] = self.variant
66
+ if self.variant is not None:
67
+ self.custom_attrs["data-variant"] = self.variant
41
68
 
42
69
  def _exclude_props(self) -> list[str]:
43
70
  return ["color_scheme", "variant"]
@@ -71,28 +98,27 @@ class AccordionRoot(AccordionComponent):
71
98
  # The orientation of the accordion.
72
99
  orientation: Var[LiteralAccordionOrientation]
73
100
 
74
- # The variant of the accordion.
75
- variant: Var[LiteralAccordionVariant] = Var.create_safe("classic")
101
+ # The radius of the accordion corners.
102
+ radius: Var[LiteralRadius]
76
103
 
77
- _valid_children: List[str] = ["AccordionItem"]
104
+ # The time in milliseconds to animate open and close
105
+ duration: Var[int] = Var.create_safe(DEFAULT_ANIMATION_DURATION)
78
106
 
79
- @classmethod
80
- def create(cls, *children, **props) -> Component:
81
- """Create the Accordion root component.
107
+ # The easing function to use for the animation.
108
+ easing: Var[str] = Var.create_safe(DEFAULT_ANIMATION_EASING)
82
109
 
83
- Args:
84
- *children: The children of the component.
85
- **props: The properties of the component.
110
+ # Whether to show divider lines between items.
111
+ show_dividers: Var[bool]
86
112
 
87
- Returns:
88
- The Accordion root Component.
89
- """
90
- for child in children:
91
- if isinstance(child, AccordionItem):
92
- child.color_scheme = props.get("color_scheme") # type: ignore
93
- child.variant = props.get("variant") # type: ignore
113
+ _valid_children: List[str] = ["AccordionItem"]
94
114
 
95
- return super().create(*children, **props)
115
+ def _exclude_props(self) -> list[str]:
116
+ return super()._exclude_props() + [
117
+ "radius",
118
+ "duration",
119
+ "easing",
120
+ "show_dividers",
121
+ ]
96
122
 
97
123
  def get_event_triggers(self) -> Dict[str, Any]:
98
124
  """Get the events triggers signatures for the component.
@@ -111,30 +137,42 @@ class AccordionRoot(AccordionComponent):
111
137
  Returns:
112
138
  The style of the component.
113
139
  """
114
- return Style(
115
- {
116
- "border_radius": "6px",
117
- "box_shadow": f"0 2px 10px {color('black', 1, alpha=True)}",
118
- "&[data-variant='classic']": {
119
- "background_color": color("accent", 9),
120
- "box_shadow": f"0 2px 10px {color('black', 4, alpha=True)}",
121
- },
122
- "&[data-variant='soft']": {
123
- "background_color": color("accent", 3),
124
- },
125
- "&[data-variant='outline']": {
126
- "border": f"1px solid {color('accent', 6)}",
127
- },
128
- "&[data-variant='surface']": {
129
- "border": f"1px solid {color('accent', 6)}",
130
- "background_color": color("accent", 3),
131
- },
132
- "&[data-variant='ghost']": {
133
- "background_color": "none",
134
- "box_shadow": "None",
135
- },
136
- }
137
- )
140
+ if self.radius is not None:
141
+ self.custom_attrs["data-radius"] = self.radius
142
+ if self.variant is None:
143
+ # The default variant is classic
144
+ self.custom_attrs["data-variant"] = "classic"
145
+
146
+ style = {
147
+ "border_radius": "var(--radius-4)",
148
+ "box_shadow": f"0 2px 10px {color('black', 1, alpha=True)}",
149
+ "&[data-variant='classic']": {
150
+ "background_color": color("accent", 9),
151
+ "box_shadow": f"0 2px 10px {color('black', 4, alpha=True)}",
152
+ },
153
+ "&[data-variant='soft']": {
154
+ "background_color": color("accent", 3),
155
+ },
156
+ "&[data-variant='outline']": {
157
+ "border": f"1px solid {color('accent', 6)}",
158
+ },
159
+ "&[data-variant='surface']": {
160
+ "border": f"1px solid {color('accent', 6)}",
161
+ "background_color": "var(--accent-surface)",
162
+ },
163
+ "&[data-variant='ghost']": {
164
+ "background_color": "none",
165
+ "box_shadow": "None",
166
+ },
167
+ "--animation-duration": f"{self.duration}ms",
168
+ "--animation-easing": self.easing,
169
+ }
170
+ if self.show_dividers is not None:
171
+ style["--divider-px"] = cond(self.show_dividers, "1px", "0")
172
+ else:
173
+ style["&[data-variant='outline']"]["--divider-px"] = "1px"
174
+ style["&[data-variant='surface']"]["--divider-px"] = "1px"
175
+ return Style(style)
138
176
 
139
177
 
140
178
  class AccordionItem(AccordionComponent):
@@ -185,23 +223,28 @@ class AccordionItem(AccordionComponent):
185
223
  ):
186
224
  cls_name = f"{cls_name} AccordionItem"
187
225
 
226
+ color_scheme = props.get("color_scheme")
227
+ variant = props.get("variant")
228
+
188
229
  if (header is not None) and (content is not None):
189
230
  children = [
190
231
  AccordionHeader.create(
191
232
  AccordionTrigger.create(
192
233
  header,
193
234
  AccordionIcon.create(
194
- color_scheme=props.get("color_scheme"),
195
- variant=props.get("variant"),
235
+ color_scheme=color_scheme,
236
+ variant=variant,
196
237
  ),
197
- color_scheme=props.get("color_scheme"),
198
- variant=props.get("variant"),
238
+ color_scheme=color_scheme,
239
+ variant=variant,
199
240
  ),
200
- color_scheme=props.get("color_scheme"),
201
- variant=props.get("variant"),
241
+ color_scheme=color_scheme,
242
+ variant=variant,
202
243
  ),
203
244
  AccordionContent.create(
204
- content, color_scheme=props.get("color_scheme")
245
+ content,
246
+ color_scheme=color_scheme,
247
+ variant=variant,
205
248
  ),
206
249
  ]
207
250
 
@@ -213,29 +256,35 @@ class AccordionItem(AccordionComponent):
213
256
  Returns:
214
257
  The style of the component.
215
258
  """
216
- for child in self.children:
217
- if isinstance(child, (AccordionHeader, AccordionContent)):
218
- child.color_scheme = self.color_scheme
219
- child.variant = self.variant
220
-
259
+ divider_style = f"var(--divider-px) solid {color('gray', 6, alpha=True)}"
221
260
  return Style(
222
261
  {
223
262
  "overflow": "hidden",
224
263
  "width": "100%",
225
264
  "margin_top": "1px",
265
+ "border_top": divider_style,
226
266
  "&:first-child": {
227
267
  "margin_top": 0,
228
- "border_top_left_radius": "4px",
229
- "border_top_right_radius": "4px",
268
+ "border_top": 0,
269
+ "border_top_left_radius": "max(var(--radius-2), var(--radius-6))",
270
+ "border_top_right_radius": "max(var(--radius-2), var(--radius-6))",
230
271
  },
231
272
  "&:last-child": {
232
- "border_bottom_left_radius": "4px",
233
- "border_bottom_right_radius": "4px",
273
+ "border_bottom_left_radius": "max(var(--radius-2), var(--radius-6))",
274
+ "border_bottom_right_radius": "max(var(--radius-2), var(--radius-6))",
234
275
  },
235
276
  "&:focus-within": {
236
277
  "position": "relative",
237
278
  "z_index": 1,
238
279
  },
280
+ _inherited_variant_selector("ghost", "&:first-child"): {
281
+ "border_radius": 0,
282
+ "border_top": divider_style,
283
+ },
284
+ _inherited_variant_selector("ghost", "&:last-child"): {
285
+ "border_radius": 0,
286
+ "border_bottom": divider_style,
287
+ },
239
288
  }
240
289
  )
241
290
 
@@ -271,17 +320,9 @@ class AccordionHeader(AccordionComponent):
271
320
  Returns:
272
321
  The style of the component.
273
322
  """
274
- for child in self.children:
275
- if isinstance(child, AccordionTrigger):
276
- child.color_scheme = self.color_scheme
277
- child.variant = self.variant
278
-
279
323
  return Style({"display": "flex"})
280
324
 
281
325
 
282
- cubic_bezier = "cubic-bezier(0.87, 0, 0.13, 1)"
283
-
284
-
285
326
  class AccordionTrigger(AccordionComponent):
286
327
  """An accordion component."""
287
328
 
@@ -313,24 +354,18 @@ class AccordionTrigger(AccordionComponent):
313
354
  Returns:
314
355
  The style of the component.
315
356
  """
316
- for child in self.children:
317
- if isinstance(child, AccordionIcon):
318
- child.color_scheme = self.color_scheme
319
- child.variant = self.variant
320
-
321
357
  return Style(
322
358
  {
323
359
  "color": color("accent", 11),
360
+ "font_size": "1.1em",
324
361
  "line_height": 1,
325
- "font_size": "15px",
326
362
  "justify_content": "space-between",
327
363
  "align_items": "center",
328
364
  "flex": 1,
329
365
  "display": "flex",
330
- "padding": "0 20px",
331
- "height": "45px",
332
- "font_family": "inherit",
366
+ "padding": "var(--space-3) var(--space-4)",
333
367
  "width": "100%",
368
+ "box_shadow": f"0 var(--divider-px) 0 {color('gray', 6, alpha=True)}",
334
369
  "&[data-state='open'] > .AccordionChevron": {
335
370
  "transform": "rotate(180deg)",
336
371
  },
@@ -338,17 +373,15 @@ class AccordionTrigger(AccordionComponent):
338
373
  "background_color": color("accent", 4),
339
374
  },
340
375
  "& > .AccordionChevron": {
341
- "transition": f"transform {DEFAULT_ANIMATION_DURATION}ms {cubic_bezier}",
376
+ "transition": f"transform var(--animation-duration) var(--animation-easing)",
342
377
  },
343
- "&[data-variant='classic']": {
344
- "color": color("accent", 12),
345
- "box_shadow": color("accent", 11),
378
+ _inherited_variant_selector("classic"): {
379
+ "color": "var(--accent-contrast)",
346
380
  "&:hover": {
347
381
  "background_color": color("accent", 10),
348
382
  },
349
383
  "& > .AccordionChevron": {
350
- "color": color("accent", 12),
351
- "transition": f"transform {DEFAULT_ANIMATION_DURATION}ms {cubic_bezier}",
384
+ "color": "var(--accent-contrast)",
352
385
  },
353
386
  },
354
387
  }
@@ -444,30 +477,31 @@ to {
444
477
  The style of the component.
445
478
  """
446
479
  slideDown = Var.create(
447
- f"${{slideDown}} {DEFAULT_ANIMATION_DURATION}ms {cubic_bezier}",
480
+ f"${{slideDown}} var(--animation-duration) var(--animation-easing)",
448
481
  _var_is_string=True,
449
482
  )
450
483
 
451
484
  slideUp = Var.create(
452
- f"${{slideUp}} {DEFAULT_ANIMATION_DURATION}ms {cubic_bezier}",
485
+ f"${{slideUp}} var(--animation-duration) var(--animation-easing)",
453
486
  _var_is_string=True,
454
487
  )
455
488
 
456
489
  return Style(
457
490
  {
458
491
  "overflow": "hidden",
459
- "font_size": "10px",
460
492
  "color": color("accent", 11),
461
- "background_color": color("accent", 3),
462
- "padding": "0 15px",
493
+ "padding_x": "var(--space-4)",
494
+ # Apply before and after content to avoid height animation jank.
495
+ "&:before, &:after": {
496
+ "content": "' '",
497
+ "display": "block",
498
+ "height": "var(--space-3)",
499
+ },
463
500
  "&[data-state='open']": {"animation": slideDown},
464
501
  "&[data-state='closed']": {"animation": slideUp},
465
- "&[data-variant='classic']": {
466
- "color": color("accent", 12),
467
- "background_color": color("accent", 9),
502
+ _inherited_variant_selector("classic"): {
503
+ "color": "var(--accent-contrast)",
468
504
  },
469
- "&[data-variant='outline']": {"background_color": "transparent"},
470
- "&[data-variant='ghost']": {"background_color": "transparent"},
471
505
  }
472
506
  )
473
507
 
@@ -10,9 +10,10 @@ from reflex.style import Style
10
10
  from typing import Any, Dict, List, Literal, Optional, Union
11
11
  from reflex.components.component import Component, ComponentNamespace
12
12
  from reflex.components.core.colors import color
13
+ from reflex.components.core.cond import cond
13
14
  from reflex.components.lucide.icon import Icon
14
15
  from reflex.components.radix.primitives.base import RadixPrimitiveComponent
15
- from reflex.components.radix.themes.base import LiteralAccentColor
16
+ from reflex.components.radix.themes.base import LiteralAccentColor, LiteralRadius
16
17
  from reflex.style import Style
17
18
  from reflex.utils import imports
18
19
  from reflex.vars import Var, get_uuid_string_var
@@ -22,6 +23,7 @@ LiteralAccordionDir = Literal["ltr", "rtl"]
22
23
  LiteralAccordionOrientation = Literal["vertical", "horizontal"]
23
24
  LiteralAccordionVariant = Literal["classic", "soft", "surface", "outline", "ghost"]
24
25
  DEFAULT_ANIMATION_DURATION = 250
26
+ DEFAULT_ANIMATION_EASING = "cubic-bezier(0.87, 0, 0.13, 1)"
25
27
 
26
28
  class AccordionComponent(RadixPrimitiveComponent):
27
29
  def add_style(self) -> Style | None: ...
@@ -173,6 +175,8 @@ class AccordionComponent(RadixPrimitiveComponent):
173
175
  ...
174
176
 
175
177
  class AccordionRoot(AccordionComponent):
178
+ def get_event_triggers(self) -> Dict[str, Any]: ...
179
+ def add_style(self): ...
176
180
  @overload
177
181
  @classmethod
178
182
  def create( # type: ignore
@@ -196,12 +200,15 @@ class AccordionRoot(AccordionComponent):
196
200
  Literal["vertical", "horizontal"],
197
201
  ]
198
202
  ] = None,
199
- variant: Optional[
203
+ radius: Optional[
200
204
  Union[
201
- Var[Literal["classic", "soft", "surface", "outline", "ghost"]],
202
- Literal["classic", "soft", "surface", "outline", "ghost"],
205
+ Var[Literal["none", "small", "medium", "large", "full"]],
206
+ Literal["none", "small", "medium", "large", "full"],
203
207
  ]
204
208
  ] = None,
209
+ duration: Optional[Union[Var[int], int]] = None,
210
+ easing: Optional[Union[Var[str], str]] = None,
211
+ show_dividers: Optional[Union[Var[bool], bool]] = None,
205
212
  color_scheme: Optional[
206
213
  Union[
207
214
  Var[
@@ -264,6 +271,12 @@ class AccordionRoot(AccordionComponent):
264
271
  ],
265
272
  ]
266
273
  ] = None,
274
+ variant: Optional[
275
+ Union[
276
+ Var[Literal["classic", "soft", "surface", "outline", "ghost"]],
277
+ Literal["classic", "soft", "surface", "outline", "ghost"],
278
+ ]
279
+ ] = None,
267
280
  as_child: Optional[Union[Var[bool], bool]] = None,
268
281
  style: Optional[Style] = None,
269
282
  key: Optional[Any] = None,
@@ -321,7 +334,7 @@ class AccordionRoot(AccordionComponent):
321
334
  ] = None,
322
335
  **props
323
336
  ) -> "AccordionRoot":
324
- """Create the Accordion root component.
337
+ """Create the component.
325
338
 
326
339
  Args:
327
340
  *children: The children of the component.
@@ -332,8 +345,12 @@ class AccordionRoot(AccordionComponent):
332
345
  disabled: Whether or not the accordion is disabled.
333
346
  dir: The reading direction of the accordion when applicable.
334
347
  orientation: The orientation of the accordion.
335
- variant: The variant of the component.
348
+ radius: The radius of the accordion corners.
349
+ duration: The time in milliseconds to animate open and close
350
+ easing: The easing function to use for the animation.
351
+ show_dividers: Whether to show divider lines between items.
336
352
  color_scheme: The color scheme of the component.
353
+ variant: The variant of the component.
337
354
  as_child: Change the default rendered element for the one passed as a child.
338
355
  style: The style of the component.
339
356
  key: A unique key for the component.
@@ -341,14 +358,12 @@ class AccordionRoot(AccordionComponent):
341
358
  class_name: The class name for the component.
342
359
  autofocus: Whether the component should take the focus once the page is loaded
343
360
  custom_attrs: custom attribute
344
- **props: The properties of the component.
361
+ **props: The props of the component.
345
362
 
346
363
  Returns:
347
- The Accordion root Component.
364
+ The component.
348
365
  """
349
366
  ...
350
- def get_event_triggers(self) -> Dict[str, Any]: ...
351
- def add_style(self): ...
352
367
 
353
368
  class AccordionItem(AccordionComponent):
354
369
  @overload
@@ -656,8 +671,6 @@ class AccordionHeader(AccordionComponent):
656
671
  ...
657
672
  def add_style(self) -> Style | None: ...
658
673
 
659
- cubic_bezier = "cubic-bezier(0.87, 0, 0.13, 1)"
660
-
661
674
  class AccordionTrigger(AccordionComponent):
662
675
  @overload
663
676
  @classmethod