reflex 0.9.8a2__tar.gz → 0.9.8a3__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.
Files changed (262) hide show
  1. {reflex-0.9.8a2 → reflex-0.9.8a3}/PKG-INFO +2 -2
  2. {reflex-0.9.8a2 → reflex-0.9.8a3}/pyproject.toml +1 -1
  3. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/utils/frontend_skeleton.py +67 -20
  4. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/utils/js_runtimes.py +15 -1
  5. {reflex-0.9.8a2 → reflex-0.9.8a3}/.gitignore +0 -0
  6. {reflex-0.9.8a2 → reflex-0.9.8a3}/LICENSE +0 -0
  7. {reflex-0.9.8a2 → reflex-0.9.8a3}/README.md +0 -0
  8. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-base/src/reflex_base/.templates/web/components/reflex/radix_themes_color_mode_provider.js +0 -0
  9. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-code/src/reflex_components_code/code.pyi +0 -0
  10. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-code/src/reflex_components_code/shiki_code_block.pyi +0 -0
  11. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-core/src/reflex_components_core/__init__.pyi +0 -0
  12. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-core/src/reflex_components_core/base/__init__.pyi +0 -0
  13. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-core/src/reflex_components_core/base/app_wrap.pyi +0 -0
  14. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-core/src/reflex_components_core/base/body.pyi +0 -0
  15. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-core/src/reflex_components_core/base/document.pyi +0 -0
  16. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-core/src/reflex_components_core/base/error_boundary.pyi +0 -0
  17. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-core/src/reflex_components_core/base/fragment.pyi +0 -0
  18. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-core/src/reflex_components_core/base/link.pyi +0 -0
  19. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-core/src/reflex_components_core/base/meta.pyi +0 -0
  20. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-core/src/reflex_components_core/base/script.pyi +0 -0
  21. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-core/src/reflex_components_core/base/strict_mode.pyi +0 -0
  22. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-core/src/reflex_components_core/core/__init__.pyi +0 -0
  23. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-core/src/reflex_components_core/core/auto_scroll.pyi +0 -0
  24. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-core/src/reflex_components_core/core/banner.pyi +0 -0
  25. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-core/src/reflex_components_core/core/clipboard.pyi +0 -0
  26. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-core/src/reflex_components_core/core/debounce.pyi +0 -0
  27. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-core/src/reflex_components_core/core/helmet.pyi +0 -0
  28. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-core/src/reflex_components_core/core/html.pyi +0 -0
  29. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-core/src/reflex_components_core/core/sticky.pyi +0 -0
  30. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-core/src/reflex_components_core/core/upload.pyi +0 -0
  31. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-core/src/reflex_components_core/core/window_events.pyi +0 -0
  32. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-core/src/reflex_components_core/datadisplay/__init__.pyi +0 -0
  33. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-core/src/reflex_components_core/el/__init__.pyi +0 -0
  34. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-core/src/reflex_components_core/el/element.pyi +0 -0
  35. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-core/src/reflex_components_core/el/elements/__init__.pyi +0 -0
  36. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-core/src/reflex_components_core/el/elements/base.pyi +0 -0
  37. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-core/src/reflex_components_core/el/elements/forms.pyi +0 -0
  38. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-core/src/reflex_components_core/el/elements/inline.pyi +0 -0
  39. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-core/src/reflex_components_core/el/elements/media.pyi +0 -0
  40. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-core/src/reflex_components_core/el/elements/metadata.pyi +0 -0
  41. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-core/src/reflex_components_core/el/elements/other.pyi +0 -0
  42. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-core/src/reflex_components_core/el/elements/scripts.pyi +0 -0
  43. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-core/src/reflex_components_core/el/elements/sectioning.pyi +0 -0
  44. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-core/src/reflex_components_core/el/elements/tables.pyi +0 -0
  45. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-core/src/reflex_components_core/el/elements/typography.pyi +0 -0
  46. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-core/src/reflex_components_core/react_router/dom.pyi +0 -0
  47. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-dataeditor/src/reflex_components_dataeditor/dataeditor.pyi +0 -0
  48. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-gridjs/src/reflex_components_gridjs/datatable.pyi +0 -0
  49. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-lucide/src/reflex_components_lucide/icon.pyi +0 -0
  50. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-markdown/src/reflex_components_markdown/markdown.pyi +0 -0
  51. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-moment/src/reflex_components_moment/moment.pyi +0 -0
  52. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-plotly/src/reflex_components_plotly/plotly.pyi +0 -0
  53. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/__init__.pyi +0 -0
  54. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/primitives/__init__.pyi +0 -0
  55. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/primitives/accordion.pyi +0 -0
  56. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/primitives/base.pyi +0 -0
  57. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/primitives/dialog.pyi +0 -0
  58. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/primitives/drawer.pyi +0 -0
  59. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/primitives/form.pyi +0 -0
  60. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/primitives/progress.pyi +0 -0
  61. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/primitives/slider.pyi +0 -0
  62. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/__init__.pyi +0 -0
  63. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/base.pyi +0 -0
  64. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/color_mode.pyi +0 -0
  65. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/components/__init__.pyi +0 -0
  66. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/components/alert_dialog.pyi +0 -0
  67. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/components/aspect_ratio.pyi +0 -0
  68. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/components/avatar.pyi +0 -0
  69. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/components/badge.pyi +0 -0
  70. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/components/button.pyi +0 -0
  71. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/components/callout.pyi +0 -0
  72. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/components/card.pyi +0 -0
  73. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/components/checkbox.pyi +0 -0
  74. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/components/checkbox_cards.pyi +0 -0
  75. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/components/checkbox_group.pyi +0 -0
  76. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/components/context_menu.pyi +0 -0
  77. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/components/data_list.pyi +0 -0
  78. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/components/dialog.pyi +0 -0
  79. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/components/dropdown_menu.pyi +0 -0
  80. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/components/hover_card.pyi +0 -0
  81. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/components/icon_button.pyi +0 -0
  82. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/components/inset.pyi +0 -0
  83. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/components/popover.pyi +0 -0
  84. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/components/progress.pyi +0 -0
  85. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/components/radio.pyi +0 -0
  86. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/components/radio_cards.pyi +0 -0
  87. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/components/radio_group.pyi +0 -0
  88. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/components/scroll_area.pyi +0 -0
  89. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/components/segmented_control.pyi +0 -0
  90. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/components/select.pyi +0 -0
  91. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/components/separator.pyi +0 -0
  92. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/components/skeleton.pyi +0 -0
  93. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/components/slider.pyi +0 -0
  94. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/components/spinner.pyi +0 -0
  95. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/components/switch.pyi +0 -0
  96. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/components/table.pyi +0 -0
  97. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/components/tabs.pyi +0 -0
  98. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/components/text_area.pyi +0 -0
  99. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/components/text_field.pyi +0 -0
  100. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/components/tooltip.pyi +0 -0
  101. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/layout/__init__.pyi +0 -0
  102. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/layout/base.pyi +0 -0
  103. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/layout/box.pyi +0 -0
  104. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/layout/center.pyi +0 -0
  105. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/layout/container.pyi +0 -0
  106. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/layout/flex.pyi +0 -0
  107. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/layout/grid.pyi +0 -0
  108. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/layout/list.pyi +0 -0
  109. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/layout/section.pyi +0 -0
  110. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/layout/spacer.pyi +0 -0
  111. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/layout/stack.pyi +0 -0
  112. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/typography/__init__.pyi +0 -0
  113. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/typography/blockquote.pyi +0 -0
  114. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/typography/code.pyi +0 -0
  115. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/typography/heading.pyi +0 -0
  116. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/typography/link.pyi +0 -0
  117. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-radix/src/reflex_components_radix/themes/typography/text.pyi +0 -0
  118. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-react-player/src/reflex_components_react_player/audio.pyi +0 -0
  119. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-react-player/src/reflex_components_react_player/react_player.pyi +0 -0
  120. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-react-player/src/reflex_components_react_player/video.pyi +0 -0
  121. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-recharts/src/reflex_components_recharts/__init__.pyi +0 -0
  122. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-recharts/src/reflex_components_recharts/cartesian.pyi +0 -0
  123. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-recharts/src/reflex_components_recharts/charts.pyi +0 -0
  124. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-recharts/src/reflex_components_recharts/general.pyi +0 -0
  125. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-recharts/src/reflex_components_recharts/polar.pyi +0 -0
  126. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-recharts/src/reflex_components_recharts/recharts.pyi +0 -0
  127. {reflex-0.9.8a2 → reflex-0.9.8a3}/packages/reflex-components-sonner/src/reflex_components_sonner/toast.pyi +0 -0
  128. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/__init__.py +0 -0
  129. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/__init__.pyi +0 -0
  130. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/__main__.py +0 -0
  131. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/_upload.py +0 -0
  132. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/admin.py +0 -0
  133. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/app.py +0 -0
  134. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/app_mixins/__init__.py +0 -0
  135. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/app_mixins/lifespan.py +0 -0
  136. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/app_mixins/middleware.py +0 -0
  137. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/app_mixins/mixin.py +0 -0
  138. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/assets.py +0 -0
  139. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/compiler/__init__.py +0 -0
  140. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/compiler/compiler.py +0 -0
  141. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/compiler/plugins/__init__.py +0 -0
  142. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/compiler/plugins/builtin.py +0 -0
  143. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/compiler/plugins/memoize.py +0 -0
  144. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/compiler/templates.py +0 -0
  145. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/compiler/utils.py +0 -0
  146. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/components/__init__.py +0 -0
  147. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/components/__init__.pyi +0 -0
  148. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/components/component.py +0 -0
  149. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/components/dynamic.py +0 -0
  150. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/components/field.py +0 -0
  151. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/components/literals.py +0 -0
  152. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/components/memo.py +0 -0
  153. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/components/props.py +0 -0
  154. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/components/tags/__init__.py +0 -0
  155. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/components/tags/cond_tag.py +0 -0
  156. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/components/tags/iter_tag.py +0 -0
  157. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/components/tags/match_tag.py +0 -0
  158. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/components/tags/tag.py +0 -0
  159. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/components/tags/tagless.py +0 -0
  160. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/config.py +0 -0
  161. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/constants/__init__.py +0 -0
  162. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/constants/base.py +0 -0
  163. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/constants/colors.py +0 -0
  164. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/constants/compiler.py +0 -0
  165. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/constants/config.py +0 -0
  166. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/constants/custom_components.py +0 -0
  167. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/constants/event.py +0 -0
  168. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/constants/installer.py +0 -0
  169. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/constants/route.py +0 -0
  170. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/constants/state.py +0 -0
  171. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/constants/utils.py +0 -0
  172. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/custom_components/__init__.py +0 -0
  173. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/custom_components/custom_components.py +0 -0
  174. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/environment.py +0 -0
  175. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/event.py +0 -0
  176. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/experimental/__init__.py +0 -0
  177. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/experimental/client_state.py +0 -0
  178. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/experimental/hooks.py +0 -0
  179. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/experimental/memo.py +0 -0
  180. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/experimental/memo.pyi +0 -0
  181. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/istate/__init__.py +0 -0
  182. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/istate/data.py +0 -0
  183. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/istate/dynamic.py +0 -0
  184. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/istate/manager/__init__.py +0 -0
  185. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/istate/manager/disk.py +0 -0
  186. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/istate/manager/memory.py +0 -0
  187. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/istate/manager/redis.py +0 -0
  188. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/istate/manager/token.py +0 -0
  189. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/istate/proxy.py +0 -0
  190. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/istate/shared.py +0 -0
  191. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/istate/storage.py +0 -0
  192. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/istate/wrappers.py +0 -0
  193. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/middleware/__init__.py +0 -0
  194. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/middleware/hydrate_middleware.py +0 -0
  195. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/middleware/middleware.py +0 -0
  196. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/model.py +0 -0
  197. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/page.py +0 -0
  198. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/plugins/__init__.py +0 -0
  199. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/plugins/_screenshot.py +0 -0
  200. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/plugins/base.py +0 -0
  201. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/plugins/shared_tailwind.py +0 -0
  202. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/plugins/sitemap.py +0 -0
  203. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/plugins/tailwind_v3.py +0 -0
  204. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/plugins/tailwind_v4.py +0 -0
  205. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/py.typed +0 -0
  206. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/reflex.py +0 -0
  207. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/route.py +0 -0
  208. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/state.py +0 -0
  209. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/style.py +0 -0
  210. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/testing.py +0 -0
  211. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/utils/__init__.py +0 -0
  212. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/utils/build.py +0 -0
  213. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/utils/codespaces.py +0 -0
  214. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/utils/compat.py +0 -0
  215. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/utils/console.py +0 -0
  216. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/utils/decorator.py +0 -0
  217. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/utils/exceptions.py +0 -0
  218. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/utils/exec.py +0 -0
  219. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/utils/export.py +0 -0
  220. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/utils/format.py +0 -0
  221. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/utils/imports.py +0 -0
  222. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/utils/lazy_loader.py +0 -0
  223. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/utils/misc.py +0 -0
  224. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/utils/net.py +0 -0
  225. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/utils/path_ops.py +0 -0
  226. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/utils/precompressed_staticfiles.py +0 -0
  227. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/utils/prerequisites.py +0 -0
  228. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/utils/processes.py +0 -0
  229. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/utils/pyi_generator.py +0 -0
  230. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/utils/redir.py +0 -0
  231. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/utils/registry.py +0 -0
  232. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/utils/rename.py +0 -0
  233. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/utils/serializers.py +0 -0
  234. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/utils/tasks.py +0 -0
  235. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/utils/telemetry.py +0 -0
  236. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/utils/telemetry_accounting.py +0 -0
  237. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/utils/templates.py +0 -0
  238. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/utils/token_manager.py +0 -0
  239. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/utils/types.py +0 -0
  240. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/vars/__init__.py +0 -0
  241. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/vars/base.py +0 -0
  242. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/vars/color.py +0 -0
  243. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/vars/datetime.py +0 -0
  244. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/vars/dep_tracking.py +0 -0
  245. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/vars/function.py +0 -0
  246. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/vars/number.py +0 -0
  247. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/vars/object.py +0 -0
  248. {reflex-0.9.8a2 → reflex-0.9.8a3}/reflex/vars/sequence.py +0 -0
  249. {reflex-0.9.8a2 → reflex-0.9.8a3}/scripts/hatch_build.py +0 -0
  250. {reflex-0.9.8a2 → reflex-0.9.8a3}/tests/units/reflex_base/utils/pyi_generator/golden/classvar_and_private.pyi +0 -0
  251. {reflex-0.9.8a2 → reflex-0.9.8a3}/tests/units/reflex_base/utils/pyi_generator/golden/custom_create.pyi +0 -0
  252. {reflex-0.9.8a2 → reflex-0.9.8a3}/tests/units/reflex_base/utils/pyi_generator/golden/inheritance.pyi +0 -0
  253. {reflex-0.9.8a2 → reflex-0.9.8a3}/tests/units/reflex_base/utils/pyi_generator/golden/literal_types.pyi +0 -0
  254. {reflex-0.9.8a2 → reflex-0.9.8a3}/tests/units/reflex_base/utils/pyi_generator/golden/module_level.pyi +0 -0
  255. {reflex-0.9.8a2 → reflex-0.9.8a3}/tests/units/reflex_base/utils/pyi_generator/golden/namespace_component.pyi +0 -0
  256. {reflex-0.9.8a2 → reflex-0.9.8a3}/tests/units/reflex_base/utils/pyi_generator/golden/simple_component.pyi +0 -0
  257. {reflex-0.9.8a2 → reflex-0.9.8a3}/tests/units/reflex_base/utils/pyi_generator/golden/staticmethod_namespace.pyi +0 -0
  258. {reflex-0.9.8a2 → reflex-0.9.8a3}/tests/units/reflex_base/utils/pyi_generator/golden/string_event_annotations.pyi +0 -0
  259. {reflex-0.9.8a2 → reflex-0.9.8a3}/tests/units/reflex_base/utils/pyi_generator/golden/sub_package/__init__.pyi +0 -0
  260. {reflex-0.9.8a2 → reflex-0.9.8a3}/tests/units/reflex_base/utils/pyi_generator/golden/sub_package/widget.pyi +0 -0
  261. {reflex-0.9.8a2 → reflex-0.9.8a3}/tests/units/reflex_base/utils/pyi_generator/golden/typed_event_handlers.pyi +0 -0
  262. {reflex-0.9.8a2 → reflex-0.9.8a3}/tests/units/reflex_base/utils/pyi_generator/golden/var_types.pyi +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: reflex
3
- Version: 0.9.8a2
3
+ Version: 0.9.8a3
4
4
  Summary: Web apps in pure Python.
5
5
  Project-URL: homepage, https://reflex.dev
6
6
  Project-URL: repository, https://github.com/reflex-dev/reflex
@@ -28,7 +28,7 @@ Requires-Dist: psutil<8.0,>=7.0.0; sys_platform == 'win32'
28
28
  Requires-Dist: python-multipart<1.0,>=0.0.32
29
29
  Requires-Dist: python-socketio<6.0,>=5.12.0
30
30
  Requires-Dist: redis<8.0,>=6.4
31
- Requires-Dist: reflex-base==0.9.8a2
31
+ Requires-Dist: reflex-base==0.9.8a3
32
32
  Requires-Dist: reflex-components-code>=0.9.0
33
33
  Requires-Dist: reflex-components-core>=0.9.6
34
34
  Requires-Dist: reflex-components-dataeditor>=0.9.0
@@ -32,7 +32,7 @@ dependencies = [
32
32
  "starlette >=1.3.1",
33
33
  "typing_extensions >=4.13.0",
34
34
  "wrapt >=1.17.0,<2.2",
35
- "reflex-base == 0.9.8a2",
35
+ "reflex-base == 0.9.8a3",
36
36
  "reflex-components-code >= 0.9.0",
37
37
  "reflex-components-core >= 0.9.6",
38
38
  "reflex-components-dataeditor >= 0.9.0",
@@ -407,32 +407,42 @@ def sync_web_lockfiles_to_root():
407
407
  sync_web_lockfile_to_root(name)
408
408
 
409
409
 
410
- def _read_persisted_package_json() -> dict:
411
- """Read the persisted package.json from the app root.
410
+ def _read_package_json_object(package_json_path: Path) -> dict:
411
+ """Read a package.json file as a JSON object.
412
+
413
+ Args:
414
+ package_json_path: The package.json file to read.
412
415
 
413
416
  Returns:
414
417
  The parsed JSON object, or an empty dict if the file is missing,
415
418
  cannot be parsed, or is not a JSON object.
416
419
  """
417
- root_package_json_path = get_root_lockfile_path(constants.PackageJson.PATH)
418
- if not root_package_json_path.exists():
420
+ if not package_json_path.exists():
419
421
  return {}
420
422
  try:
421
- parsed = json.loads(root_package_json_path.read_text())
423
+ parsed = json.loads(package_json_path.read_text())
422
424
  except (json.JSONDecodeError, OSError) as e:
423
- console.warn(
424
- f"Failed to read {root_package_json_path}: {e}; starting with empty dependency lists."
425
- )
425
+ console.warn(f"Failed to read {package_json_path}: {e}; treating it as empty.")
426
426
  return {}
427
427
  if not isinstance(parsed, dict):
428
428
  console.warn(
429
- f"Expected {root_package_json_path} to contain a JSON object, "
430
- f"got {type(parsed).__name__}; starting with empty dependency lists."
429
+ f"Expected {package_json_path} to contain a JSON object, "
430
+ f"got {type(parsed).__name__}; treating it as empty."
431
431
  )
432
432
  return {}
433
433
  return parsed
434
434
 
435
435
 
436
+ def _read_persisted_package_json() -> dict:
437
+ """Read the persisted package.json from the app root.
438
+
439
+ Returns:
440
+ The parsed JSON object, or an empty dict if the file is missing,
441
+ cannot be parsed, or is not a JSON object.
442
+ """
443
+ return _read_package_json_object(get_root_lockfile_path(constants.PackageJson.PATH))
444
+
445
+
436
446
  def initialize_web_directory():
437
447
  """Initialize the web directory on reflex init."""
438
448
  console.log("Initializing the web directory.")
@@ -522,12 +532,16 @@ def _compile_package_json():
522
532
  ``reflex.lock/package.json`` (when present) so resolved version pins
523
533
  survive a fresh ``reflex init``. User-added ``scripts`` are preserved;
524
534
  only the framework-owned ``dev`` and ``export`` entries are refreshed
525
- from constants. User-added ``overrides`` are kept, with the
526
- framework-owned entries refreshed on top. Any other persisted fields
527
- (e.g. ``packageManager``, ``engines``) are passed through unchanged.
528
- The framework-managed entries in ``constants.PackageJson.DEPENDENCIES``
529
- / ``DEV_DEPENDENCIES`` are added later at install time via ``bun add``
530
- so they pick up strict pins.
535
+ from constants. Any other persisted fields (e.g. ``packageManager``,
536
+ ``engines``) are passed through unchanged.
537
+
538
+ Everything a lockfile resolves against is reproduced verbatim, so the
539
+ rendered file still pairs with the persisted lockfile: the framework
540
+ entries in ``constants.PackageJson.DEPENDENCIES`` / ``DEV_DEPENDENCIES``
541
+ are added later at install time via ``bun add`` (picking up strict pins),
542
+ and ``overrides`` are carried over as persisted, with
543
+ ``constants.PackageJson.OVERRIDES`` merged in by
544
+ :func:`update_package_json_overrides` after the frozen install.
531
545
 
532
546
  Returns:
533
547
  Rendered package.json content as string.
@@ -542,14 +556,47 @@ def _compile_package_json():
542
556
  scripts=scripts,
543
557
  dependencies=persisted.pop("dependencies", None) or {},
544
558
  dev_dependencies=persisted.pop("devDependencies", None) or {},
545
- overrides={
546
- **(persisted.pop("overrides", None) or {}),
547
- **constants.PackageJson.OVERRIDES,
548
- },
559
+ overrides=persisted.pop("overrides", None) or {},
549
560
  **persisted,
550
561
  )
551
562
 
552
563
 
564
+ def update_package_json_overrides() -> bool:
565
+ """Merge the framework-owned overrides into ``.web/package.json``.
566
+
567
+ ``overrides`` participate in dependency resolution, so injecting them
568
+ while restoring the persisted ``package.json`` would desync it from the
569
+ persisted lockfile and make ``--frozen-lockfile`` fail outright on any
570
+ Reflex upgrade that introduces a new override. Applying them here instead
571
+ keeps the restored pair intact for the frozen install; the caller
572
+ refreshes the lockfile afterwards.
573
+
574
+ User-added and previously resolved overrides are kept, with the
575
+ framework-owned entries taking precedence on conflict.
576
+
577
+ Returns:
578
+ Whether ``.web/package.json`` was changed.
579
+ """
580
+ package_json_path = get_web_lockfile_path(constants.PackageJson.PATH)
581
+ package_json = _read_package_json_object(package_json_path)
582
+ if not package_json:
583
+ # Nothing usable to merge into. initialize_package_json() renders a
584
+ # full file upstream, so this only happens for a hand-damaged .web.
585
+ return False
586
+
587
+ overrides = package_json.get("overrides") or {}
588
+ if all(
589
+ overrides.get(name) == version
590
+ for name, version in constants.PackageJson.OVERRIDES.items()
591
+ ):
592
+ return False
593
+
594
+ package_json["overrides"] = {**overrides, **constants.PackageJson.OVERRIDES}
595
+ console.debug(f"Applying framework overrides to {package_json_path}")
596
+ package_json_path.write_text(json.dumps(package_json))
597
+ return True
598
+
599
+
553
600
  def initialize_package_json():
554
601
  """Render and write in .web the package.json file."""
555
602
  output_path = get_web_dir() / constants.PackageJson.PATH
@@ -589,7 +589,8 @@ def _frontend_packages_cache_payload(
589
589
  return (
590
590
  f"{sorted(packages)!r},{config.json()},{list(install_package_managers)!r},"
591
591
  f"{sorted(constants.PackageJson.DEPENDENCIES.items())!r},"
592
- f"{sorted(constants.PackageJson.DEV_DEPENDENCIES.items())!r}"
592
+ f"{sorted(constants.PackageJson.DEV_DEPENDENCIES.items())!r},"
593
+ f"{sorted(constants.PackageJson.OVERRIDES.items())!r}"
593
594
  )
594
595
 
595
596
 
@@ -706,6 +707,11 @@ def _install_frontend_packages(
706
707
  ):
707
708
  _run_initial_install(primary_package_manager, env, config.frozen_lockfile)
708
709
 
710
+ # Framework overrides are withheld while the persisted package.json is
711
+ # restored so the frozen install above sees exactly the file that produced
712
+ # the persisted lockfile. Merge them now, before any resolution happens.
713
+ overrides_changed = frontend_skeleton.update_package_json_overrides()
714
+
709
715
  pinned_packages, unpinned_packages = _split_by_version_specifier(packages)
710
716
  pinned_dev_deps, unpinned_dev_deps = _split_by_version_specifier(development_deps)
711
717
 
@@ -754,6 +760,14 @@ def _install_frontend_packages(
754
760
  show_status_message="Installing frontend packages",
755
761
  )
756
762
 
763
+ if overrides_changed and not (dev_deps_to_add or deps_to_add):
764
+ # Newly merged overrides with no add to carry them into the lockfile:
765
+ # resolve them now so the persisted pair stays frozen-install ready.
766
+ run_package_manager(
767
+ [primary_package_manager, "install", "--legacy-peer-deps"],
768
+ show_status_message="Applying frontend package overrides",
769
+ )
770
+
757
771
 
758
772
  def install_frontend_packages(packages: set[str], config: Config):
759
773
  """Install frontend packages while respecting the canonical root bun.lock."""
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes