reflex 0.5.0a1__tar.gz → 0.5.0a3__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.0a3}/PKG-INFO +1 -1
  2. {reflex-0.5.0a1 → reflex-0.5.0a3}/pyproject.toml +1 -1
  3. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/apps/demo/code/demo.py +1 -1
  4. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/jinja/web/tailwind.config.js.jinja2 +12 -0
  5. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/component.py +1 -5
  6. reflex-0.5.0a3/reflex/components/core/foreach.py +130 -0
  7. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/primitives/accordion.py +128 -94
  8. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/primitives/accordion.pyi +25 -12
  9. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/primitives/form.py +1 -1
  10. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/color_mode.py +25 -1
  11. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/color_mode.pyi +178 -1
  12. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/custom_components/custom_components.py +2 -1
  13. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/style.py +5 -2
  14. reflex-0.5.0a1/reflex/components/core/foreach.py +0 -104
  15. {reflex-0.5.0a1 → reflex-0.5.0a3}/LICENSE +0 -0
  16. {reflex-0.5.0a1 → reflex-0.5.0a3}/README.md +0 -0
  17. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/apps/blank/assets/favicon.ico +0 -0
  18. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/apps/blank/code/__init__.py +0 -0
  19. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/apps/blank/code/blank.py +0 -0
  20. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/apps/demo/.gitignore +0 -0
  21. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/apps/demo/assets/favicon.ico +0 -0
  22. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/apps/demo/assets/github.svg +0 -0
  23. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/apps/demo/assets/icon.svg +0 -0
  24. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/apps/demo/assets/logo.svg +0 -0
  25. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/apps/demo/assets/paneleft.svg +0 -0
  26. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/apps/demo/code/__init__.py +0 -0
  27. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/apps/demo/code/pages/__init__.py +0 -0
  28. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/apps/demo/code/pages/chatapp.py +0 -0
  29. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/apps/demo/code/pages/datatable.py +0 -0
  30. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/apps/demo/code/pages/forms.py +0 -0
  31. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/apps/demo/code/pages/graphing.py +0 -0
  32. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/apps/demo/code/pages/home.py +0 -0
  33. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/apps/demo/code/sidebar.py +0 -0
  34. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/apps/demo/code/state.py +0 -0
  35. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/apps/demo/code/states/form_state.py +0 -0
  36. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/apps/demo/code/states/pie_state.py +0 -0
  37. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/apps/demo/code/styles.py +0 -0
  38. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/apps/demo/code/webui/__init__.py +0 -0
  39. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/apps/demo/code/webui/components/__init__.py +0 -0
  40. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/apps/demo/code/webui/components/chat.py +0 -0
  41. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/apps/demo/code/webui/components/loading_icon.py +0 -0
  42. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/apps/demo/code/webui/components/modal.py +0 -0
  43. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/apps/demo/code/webui/components/navbar.py +0 -0
  44. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/apps/demo/code/webui/components/sidebar.py +0 -0
  45. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/apps/demo/code/webui/state.py +0 -0
  46. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/apps/demo/code/webui/styles.py +0 -0
  47. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/jinja/app/rxconfig.py.jinja2 +0 -0
  48. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/jinja/custom_components/README.md.jinja2 +0 -0
  49. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/jinja/custom_components/__init__.py.jinja2 +0 -0
  50. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/jinja/custom_components/demo_app.py.jinja2 +0 -0
  51. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/jinja/custom_components/pyproject.toml.jinja2 +0 -0
  52. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/jinja/custom_components/src.py.jinja2 +0 -0
  53. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/jinja/web/package.json.jinja2 +0 -0
  54. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/jinja/web/pages/_app.js.jinja2 +0 -0
  55. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/jinja/web/pages/_document.js.jinja2 +0 -0
  56. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/jinja/web/pages/base_page.js.jinja2 +0 -0
  57. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/jinja/web/pages/component.js.jinja2 +0 -0
  58. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/jinja/web/pages/custom_component.js.jinja2 +0 -0
  59. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/jinja/web/pages/index.js.jinja2 +0 -0
  60. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/jinja/web/pages/stateful_component.js.jinja2 +0 -0
  61. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/jinja/web/pages/stateful_components.js.jinja2 +0 -0
  62. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/jinja/web/pages/utils.js.jinja2 +0 -0
  63. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/jinja/web/styles/styles.css.jinja2 +0 -0
  64. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/jinja/web/utils/context.js.jinja2 +0 -0
  65. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/jinja/web/utils/theme.js.jinja2 +0 -0
  66. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/web/.gitignore +0 -0
  67. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/web/components/reflex/chakra_color_mode_provider.js +0 -0
  68. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js +0 -0
  69. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/web/jsconfig.json +0 -0
  70. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/web/next.config.js +0 -0
  71. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/web/postcss.config.js +0 -0
  72. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/web/styles/tailwind.css +0 -0
  73. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/web/utils/client_side_routing.js +0 -0
  74. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/web/utils/helpers/dataeditor.js +0 -0
  75. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/web/utils/helpers/debounce.js +0 -0
  76. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/web/utils/helpers/range.js +0 -0
  77. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/web/utils/helpers/throttle.js +0 -0
  78. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/.templates/web/utils/state.js +0 -0
  79. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/__init__.py +0 -0
  80. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/__init__.pyi +0 -0
  81. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/__main__.py +0 -0
  82. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/admin.py +0 -0
  83. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/app.py +0 -0
  84. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/app_module_for_backend.py +0 -0
  85. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/base.py +0 -0
  86. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/compiler/__init__.py +0 -0
  87. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/compiler/compiler.py +0 -0
  88. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/compiler/templates.py +0 -0
  89. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/compiler/utils.py +0 -0
  90. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/__init__.py +0 -0
  91. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/base/__init__.py +0 -0
  92. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/base/app_wrap.py +0 -0
  93. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/base/app_wrap.pyi +0 -0
  94. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/base/bare.py +0 -0
  95. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/base/body.py +0 -0
  96. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/base/body.pyi +0 -0
  97. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/base/document.py +0 -0
  98. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/base/document.pyi +0 -0
  99. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/base/fragment.py +0 -0
  100. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/base/fragment.pyi +0 -0
  101. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/base/head.py +0 -0
  102. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/base/head.pyi +0 -0
  103. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/base/link.py +0 -0
  104. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/base/link.pyi +0 -0
  105. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/base/meta.py +0 -0
  106. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/base/meta.pyi +0 -0
  107. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/base/script.py +0 -0
  108. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/base/script.pyi +0 -0
  109. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/__init__.py +0 -0
  110. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/base.py +0 -0
  111. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/base.pyi +0 -0
  112. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/datadisplay/__init__.py +0 -0
  113. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/datadisplay/badge.py +0 -0
  114. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/datadisplay/badge.pyi +0 -0
  115. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/datadisplay/code.py +0 -0
  116. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/datadisplay/code.pyi +0 -0
  117. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/datadisplay/divider.py +0 -0
  118. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/datadisplay/divider.pyi +0 -0
  119. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/datadisplay/keyboard_key.py +0 -0
  120. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/datadisplay/keyboard_key.pyi +0 -0
  121. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/datadisplay/list.py +0 -0
  122. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/datadisplay/list.pyi +0 -0
  123. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/datadisplay/stat.py +0 -0
  124. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/datadisplay/stat.pyi +0 -0
  125. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/datadisplay/table.py +0 -0
  126. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/datadisplay/table.pyi +0 -0
  127. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/datadisplay/tag.py +0 -0
  128. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/datadisplay/tag.pyi +0 -0
  129. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/disclosure/__init__.py +0 -0
  130. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/disclosure/accordion.py +0 -0
  131. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/disclosure/accordion.pyi +0 -0
  132. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/disclosure/tabs.py +0 -0
  133. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/disclosure/tabs.pyi +0 -0
  134. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/disclosure/transition.py +0 -0
  135. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/disclosure/transition.pyi +0 -0
  136. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/disclosure/visuallyhidden.py +0 -0
  137. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/disclosure/visuallyhidden.pyi +0 -0
  138. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/feedback/__init__.py +0 -0
  139. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/feedback/alert.py +0 -0
  140. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/feedback/alert.pyi +0 -0
  141. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/feedback/circularprogress.py +0 -0
  142. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/feedback/circularprogress.pyi +0 -0
  143. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/feedback/progress.py +0 -0
  144. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/feedback/progress.pyi +0 -0
  145. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/feedback/skeleton.py +0 -0
  146. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/feedback/skeleton.pyi +0 -0
  147. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/feedback/spinner.py +0 -0
  148. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/feedback/spinner.pyi +0 -0
  149. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/forms/__init__.py +0 -0
  150. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/forms/button.py +0 -0
  151. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/forms/button.pyi +0 -0
  152. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/forms/checkbox.py +0 -0
  153. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/forms/checkbox.pyi +0 -0
  154. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/forms/colormodeswitch.py +0 -0
  155. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/forms/colormodeswitch.pyi +0 -0
  156. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/forms/date_picker.py +0 -0
  157. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/forms/date_picker.pyi +0 -0
  158. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/forms/date_time_picker.py +0 -0
  159. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/forms/date_time_picker.pyi +0 -0
  160. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/forms/editable.py +0 -0
  161. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/forms/editable.pyi +0 -0
  162. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/forms/email.py +0 -0
  163. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/forms/email.pyi +0 -0
  164. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/forms/form.py +0 -0
  165. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/forms/form.pyi +0 -0
  166. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/forms/iconbutton.py +0 -0
  167. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/forms/iconbutton.pyi +0 -0
  168. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/forms/input.py +0 -0
  169. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/forms/input.pyi +0 -0
  170. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/forms/multiselect.py +0 -0
  171. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/forms/numberinput.py +0 -0
  172. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/forms/numberinput.pyi +0 -0
  173. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/forms/password.py +0 -0
  174. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/forms/password.pyi +0 -0
  175. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/forms/pininput.py +0 -0
  176. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/forms/pininput.pyi +0 -0
  177. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/forms/radio.py +0 -0
  178. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/forms/radio.pyi +0 -0
  179. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/forms/rangeslider.py +0 -0
  180. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/forms/rangeslider.pyi +0 -0
  181. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/forms/select.py +0 -0
  182. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/forms/select.pyi +0 -0
  183. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/forms/slider.py +0 -0
  184. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/forms/slider.pyi +0 -0
  185. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/forms/switch.py +0 -0
  186. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/forms/switch.pyi +0 -0
  187. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/forms/textarea.py +0 -0
  188. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/forms/textarea.pyi +0 -0
  189. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/forms/time_picker.py +0 -0
  190. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/forms/time_picker.pyi +0 -0
  191. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/layout/__init__.py +0 -0
  192. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/layout/aspect_ratio.py +0 -0
  193. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/layout/aspect_ratio.pyi +0 -0
  194. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/layout/box.py +0 -0
  195. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/layout/box.pyi +0 -0
  196. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/layout/card.py +0 -0
  197. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/layout/card.pyi +0 -0
  198. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/layout/center.py +0 -0
  199. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/layout/center.pyi +0 -0
  200. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/layout/container.py +0 -0
  201. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/layout/container.pyi +0 -0
  202. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/layout/flex.py +0 -0
  203. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/layout/flex.pyi +0 -0
  204. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/layout/grid.py +0 -0
  205. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/layout/grid.pyi +0 -0
  206. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/layout/spacer.py +0 -0
  207. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/layout/spacer.pyi +0 -0
  208. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/layout/stack.py +0 -0
  209. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/layout/stack.pyi +0 -0
  210. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/layout/wrap.py +0 -0
  211. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/layout/wrap.pyi +0 -0
  212. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/media/__init__.py +0 -0
  213. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/media/avatar.py +0 -0
  214. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/media/avatar.pyi +0 -0
  215. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/media/icon.py +0 -0
  216. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/media/icon.pyi +0 -0
  217. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/media/image.py +0 -0
  218. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/media/image.pyi +0 -0
  219. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/navigation/__init__.py +0 -0
  220. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/navigation/breadcrumb.py +0 -0
  221. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/navigation/breadcrumb.pyi +0 -0
  222. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/navigation/link.py +0 -0
  223. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/navigation/link.pyi +0 -0
  224. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/navigation/linkoverlay.py +0 -0
  225. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/navigation/linkoverlay.pyi +0 -0
  226. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/navigation/stepper.py +0 -0
  227. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/navigation/stepper.pyi +0 -0
  228. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/overlay/__init__.py +0 -0
  229. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/overlay/alertdialog.py +0 -0
  230. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/overlay/alertdialog.pyi +0 -0
  231. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/overlay/drawer.py +0 -0
  232. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/overlay/drawer.pyi +0 -0
  233. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/overlay/menu.py +0 -0
  234. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/overlay/menu.pyi +0 -0
  235. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/overlay/modal.py +0 -0
  236. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/overlay/modal.pyi +0 -0
  237. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/overlay/popover.py +0 -0
  238. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/overlay/popover.pyi +0 -0
  239. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/overlay/tooltip.py +0 -0
  240. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/overlay/tooltip.pyi +0 -0
  241. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/typography/__init__.py +0 -0
  242. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/typography/heading.py +0 -0
  243. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/typography/heading.pyi +0 -0
  244. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/typography/highlight.py +0 -0
  245. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/typography/highlight.pyi +0 -0
  246. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/typography/span.py +0 -0
  247. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/typography/span.pyi +0 -0
  248. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/typography/text.py +0 -0
  249. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/chakra/typography/text.pyi +0 -0
  250. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/core/__init__.py +0 -0
  251. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/core/banner.py +0 -0
  252. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/core/banner.pyi +0 -0
  253. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/core/client_side_routing.py +0 -0
  254. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/core/client_side_routing.pyi +0 -0
  255. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/core/colors.py +0 -0
  256. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/core/cond.py +0 -0
  257. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/core/debounce.py +0 -0
  258. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/core/debounce.pyi +0 -0
  259. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/core/html.py +0 -0
  260. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/core/html.pyi +0 -0
  261. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/core/layout/__init__.py +0 -0
  262. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/core/match.py +0 -0
  263. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/core/responsive.py +0 -0
  264. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/core/upload.py +0 -0
  265. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/core/upload.pyi +0 -0
  266. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/datadisplay/__init__.py +0 -0
  267. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/datadisplay/code.py +0 -0
  268. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/datadisplay/code.pyi +0 -0
  269. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/datadisplay/dataeditor.py +0 -0
  270. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/datadisplay/dataeditor.pyi +0 -0
  271. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/datadisplay/logo.py +0 -0
  272. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/el/__init__.py +0 -0
  273. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/el/constants/__init__.py +0 -0
  274. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/el/constants/html.py +0 -0
  275. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/el/constants/react.py +0 -0
  276. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/el/constants/reflex.py +0 -0
  277. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/el/element.py +0 -0
  278. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/el/element.pyi +0 -0
  279. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/el/elements/__init__.py +0 -0
  280. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/el/elements/base.py +0 -0
  281. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/el/elements/base.pyi +0 -0
  282. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/el/elements/forms.py +0 -0
  283. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/el/elements/forms.pyi +0 -0
  284. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/el/elements/inline.py +0 -0
  285. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/el/elements/inline.pyi +0 -0
  286. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/el/elements/media.py +0 -0
  287. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/el/elements/media.pyi +0 -0
  288. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/el/elements/metadata.py +0 -0
  289. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/el/elements/metadata.pyi +0 -0
  290. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/el/elements/other.py +0 -0
  291. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/el/elements/other.pyi +0 -0
  292. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/el/elements/scripts.py +0 -0
  293. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/el/elements/scripts.pyi +0 -0
  294. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/el/elements/sectioning.py +0 -0
  295. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/el/elements/sectioning.pyi +0 -0
  296. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/el/elements/tables.py +0 -0
  297. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/el/elements/tables.pyi +0 -0
  298. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/el/elements/typography.py +0 -0
  299. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/el/elements/typography.pyi +0 -0
  300. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/gridjs/__init__.py +0 -0
  301. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/gridjs/datatable.py +0 -0
  302. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/gridjs/datatable.pyi +0 -0
  303. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/literals.py +0 -0
  304. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/lucide/__init__.py +0 -0
  305. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/lucide/icon.py +0 -0
  306. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/lucide/icon.pyi +0 -0
  307. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/markdown/__init__.py +0 -0
  308. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/markdown/markdown.py +0 -0
  309. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/markdown/markdown.pyi +0 -0
  310. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/media/__init__.py +0 -0
  311. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/media/icon.py +0 -0
  312. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/moment/__init__.py +0 -0
  313. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/moment/moment.py +0 -0
  314. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/moment/moment.pyi +0 -0
  315. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/next/__init__.py +0 -0
  316. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/next/base.py +0 -0
  317. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/next/base.pyi +0 -0
  318. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/next/image.py +0 -0
  319. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/next/image.pyi +0 -0
  320. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/next/link.py +0 -0
  321. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/next/link.pyi +0 -0
  322. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/next/video.py +0 -0
  323. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/next/video.pyi +0 -0
  324. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/plotly/__init__.py +0 -0
  325. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/plotly/plotly.py +0 -0
  326. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/plotly/plotly.pyi +0 -0
  327. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/__init__.py +0 -0
  328. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/primitives/__init__.py +0 -0
  329. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/primitives/base.py +0 -0
  330. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/primitives/base.pyi +0 -0
  331. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/primitives/drawer.py +0 -0
  332. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/primitives/drawer.pyi +0 -0
  333. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/primitives/form.pyi +0 -0
  334. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/primitives/progress.py +0 -0
  335. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/primitives/progress.pyi +0 -0
  336. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/primitives/slider.py +0 -0
  337. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/primitives/slider.pyi +0 -0
  338. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/__init__.py +0 -0
  339. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/base.py +0 -0
  340. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/base.pyi +0 -0
  341. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/__init__.py +0 -0
  342. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/alert_dialog.py +0 -0
  343. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/alert_dialog.pyi +0 -0
  344. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/aspect_ratio.py +0 -0
  345. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/aspect_ratio.pyi +0 -0
  346. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/avatar.py +0 -0
  347. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/avatar.pyi +0 -0
  348. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/badge.py +0 -0
  349. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/badge.pyi +0 -0
  350. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/button.py +0 -0
  351. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/button.pyi +0 -0
  352. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/callout.py +0 -0
  353. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/callout.pyi +0 -0
  354. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/card.py +0 -0
  355. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/card.pyi +0 -0
  356. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/checkbox.py +0 -0
  357. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/checkbox.pyi +0 -0
  358. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/checkbox_cards.py +0 -0
  359. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/checkbox_cards.pyi +0 -0
  360. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/checkbox_group.py +0 -0
  361. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/checkbox_group.pyi +0 -0
  362. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/context_menu.py +0 -0
  363. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/context_menu.pyi +0 -0
  364. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/data_list.py +0 -0
  365. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/data_list.pyi +0 -0
  366. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/dialog.py +0 -0
  367. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/dialog.pyi +0 -0
  368. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/dropdown_menu.py +0 -0
  369. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/dropdown_menu.pyi +0 -0
  370. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/hover_card.py +0 -0
  371. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/hover_card.pyi +0 -0
  372. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/icon_button.py +0 -0
  373. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/icon_button.pyi +0 -0
  374. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/inset.py +0 -0
  375. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/inset.pyi +0 -0
  376. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/popover.py +0 -0
  377. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/popover.pyi +0 -0
  378. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/progress.py +0 -0
  379. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/progress.pyi +0 -0
  380. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/radio.py +0 -0
  381. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/radio.pyi +0 -0
  382. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/radio_cards.py +0 -0
  383. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/radio_cards.pyi +0 -0
  384. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/radio_group.py +0 -0
  385. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/radio_group.pyi +0 -0
  386. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/scroll_area.py +0 -0
  387. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/scroll_area.pyi +0 -0
  388. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/segmented_control.py +0 -0
  389. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/segmented_control.pyi +0 -0
  390. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/select.py +0 -0
  391. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/select.pyi +0 -0
  392. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/separator.py +0 -0
  393. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/separator.pyi +0 -0
  394. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/skeleton.py +0 -0
  395. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/skeleton.pyi +0 -0
  396. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/slider.py +0 -0
  397. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/slider.pyi +0 -0
  398. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/spinner.py +0 -0
  399. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/spinner.pyi +0 -0
  400. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/switch.py +0 -0
  401. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/switch.pyi +0 -0
  402. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/table.py +0 -0
  403. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/table.pyi +0 -0
  404. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/tabs.py +0 -0
  405. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/tabs.pyi +0 -0
  406. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/text_area.py +0 -0
  407. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/text_area.pyi +0 -0
  408. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/text_field.py +0 -0
  409. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/text_field.pyi +0 -0
  410. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/tooltip.py +0 -0
  411. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/components/tooltip.pyi +0 -0
  412. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/layout/__init__.py +0 -0
  413. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/layout/base.py +0 -0
  414. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/layout/base.pyi +0 -0
  415. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/layout/box.py +0 -0
  416. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/layout/box.pyi +0 -0
  417. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/layout/center.py +0 -0
  418. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/layout/center.pyi +0 -0
  419. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/layout/container.py +0 -0
  420. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/layout/container.pyi +0 -0
  421. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/layout/flex.py +0 -0
  422. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/layout/flex.pyi +0 -0
  423. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/layout/grid.py +0 -0
  424. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/layout/grid.pyi +0 -0
  425. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/layout/list.py +0 -0
  426. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/layout/list.pyi +0 -0
  427. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/layout/section.py +0 -0
  428. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/layout/section.pyi +0 -0
  429. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/layout/spacer.py +0 -0
  430. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/layout/spacer.pyi +0 -0
  431. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/layout/stack.py +0 -0
  432. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/layout/stack.pyi +0 -0
  433. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/typography/__init__.py +0 -0
  434. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/typography/base.py +0 -0
  435. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/typography/blockquote.py +0 -0
  436. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/typography/blockquote.pyi +0 -0
  437. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/typography/code.py +0 -0
  438. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/typography/code.pyi +0 -0
  439. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/typography/heading.py +0 -0
  440. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/typography/heading.pyi +0 -0
  441. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/typography/link.py +0 -0
  442. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/typography/link.pyi +0 -0
  443. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/typography/text.py +0 -0
  444. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/radix/themes/typography/text.pyi +0 -0
  445. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/react_player/__init__.py +0 -0
  446. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/react_player/audio.py +0 -0
  447. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/react_player/audio.pyi +0 -0
  448. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/react_player/react_player.py +0 -0
  449. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/react_player/react_player.pyi +0 -0
  450. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/react_player/video.py +0 -0
  451. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/react_player/video.pyi +0 -0
  452. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/recharts/__init__.py +0 -0
  453. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/recharts/cartesian.py +0 -0
  454. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/recharts/cartesian.pyi +0 -0
  455. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/recharts/charts.py +0 -0
  456. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/recharts/charts.pyi +0 -0
  457. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/recharts/general.py +0 -0
  458. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/recharts/general.pyi +0 -0
  459. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/recharts/polar.py +0 -0
  460. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/recharts/polar.pyi +0 -0
  461. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/recharts/recharts.py +0 -0
  462. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/recharts/recharts.pyi +0 -0
  463. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/sonner/__init__.py +0 -0
  464. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/sonner/toast.py +0 -0
  465. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/sonner/toast.pyi +0 -0
  466. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/suneditor/__init__.py +0 -0
  467. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/suneditor/editor.py +0 -0
  468. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/suneditor/editor.pyi +0 -0
  469. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/tags/__init__.py +0 -0
  470. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/tags/cond_tag.py +0 -0
  471. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/tags/iter_tag.py +0 -0
  472. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/tags/match_tag.py +0 -0
  473. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/tags/tag.py +0 -0
  474. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/components/tags/tagless.py +0 -0
  475. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/config.py +0 -0
  476. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/config.pyi +0 -0
  477. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/constants/__init__.py +0 -0
  478. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/constants/base.py +0 -0
  479. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/constants/base.pyi +0 -0
  480. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/constants/colors.py +0 -0
  481. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/constants/compiler.py +0 -0
  482. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/constants/config.py +0 -0
  483. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/constants/custom_components.py +0 -0
  484. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/constants/event.py +0 -0
  485. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/constants/installer.py +0 -0
  486. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/constants/route.py +0 -0
  487. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/constants/style.py +0 -0
  488. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/custom_components/__init__.py +0 -0
  489. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/event.py +0 -0
  490. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/experimental/__init__.py +0 -0
  491. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/experimental/hooks.py +0 -0
  492. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/experimental/layout.py +0 -0
  493. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/experimental/misc.py +0 -0
  494. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/middleware/__init__.py +0 -0
  495. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/middleware/hydrate_middleware.py +0 -0
  496. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/middleware/middleware.py +0 -0
  497. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/model.py +0 -0
  498. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/page.py +0 -0
  499. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/reflex.py +0 -0
  500. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/route.py +0 -0
  501. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/state.py +0 -0
  502. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/testing.py +0 -0
  503. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/utils/__init__.py +0 -0
  504. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/utils/build.py +0 -0
  505. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/utils/compat.py +0 -0
  506. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/utils/console.py +0 -0
  507. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/utils/exceptions.py +0 -0
  508. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/utils/exec.py +0 -0
  509. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/utils/export.py +0 -0
  510. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/utils/format.py +0 -0
  511. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/utils/imports.py +0 -0
  512. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/utils/path_ops.py +0 -0
  513. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/utils/prerequisites.py +0 -0
  514. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/utils/processes.py +0 -0
  515. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/utils/pyi_generator.py +0 -0
  516. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/utils/serializers.py +0 -0
  517. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/utils/telemetry.py +0 -0
  518. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/utils/types.py +0 -0
  519. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/utils/watch.py +0 -0
  520. {reflex-0.5.0a1 → reflex-0.5.0a3}/reflex/vars.py +0 -0
  521. {reflex-0.5.0a1 → reflex-0.5.0a3}/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.0a3
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.0a3"
4
4
  description = "Web apps in pure Python."
5
5
  license = "Apache-2.0"
6
6
  authors = [
@@ -44,7 +44,7 @@ def template(main_content: Callable[[], rx.Component]) -> rx.Component:
44
44
  ),
45
45
  rx.chakra.menu_item(
46
46
  rx.chakra.link(
47
- "Contact", href="mailto:founders@=reflex.dev", width="100%"
47
+ "Contact", href="mailto:founders@reflex.dev", width="100%"
48
48
  )
49
49
  ),
50
50
  ),
@@ -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": "var(--radius-4)",
270
+ "border_top_right_radius": "var(--radius-4)",
230
271
  },
231
272
  "&:last-child": {
232
- "border_bottom_left_radius": "4px",
233
- "border_bottom_right_radius": "4px",
273
+ "border_bottom_left_radius": "var(--radius-4)",
274
+ "border_bottom_right_radius": "var(--radius-4)",
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