reflex 0.6.8a2__py3-none-any.whl → 0.7.0__py3-none-any.whl
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.
- reflex/.templates/jinja/custom_components/pyproject.toml.jinja2 +1 -1
- reflex/.templates/jinja/web/pages/_app.js.jinja2 +7 -7
- reflex/.templates/jinja/web/pages/utils.js.jinja2 +3 -3
- reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js +1 -4
- reflex/.templates/web/utils/state.js +65 -36
- reflex/__init__.py +4 -17
- reflex/__init__.pyi +1 -2
- reflex/app.py +286 -129
- reflex/app_mixins/lifespan.py +9 -9
- reflex/app_mixins/middleware.py +6 -6
- reflex/app_module_for_backend.py +3 -7
- reflex/base.py +7 -7
- reflex/compiler/compiler.py +8 -0
- reflex/compiler/utils.py +57 -18
- reflex/components/base/app_wrap.pyi +16 -16
- reflex/components/base/bare.py +1 -1
- reflex/components/base/body.pyi +16 -16
- reflex/components/base/document.pyi +76 -76
- reflex/components/base/error_boundary.py +2 -1
- reflex/components/base/error_boundary.pyi +19 -22
- reflex/components/base/fragment.pyi +16 -16
- reflex/components/base/head.pyi +31 -31
- reflex/components/base/link.pyi +31 -31
- reflex/components/base/meta.py +2 -2
- reflex/components/base/meta.pyi +61 -61
- reflex/components/base/script.pyi +19 -19
- reflex/components/base/strict_mode.py +10 -0
- reflex/components/base/strict_mode.pyi +57 -0
- reflex/components/component.py +38 -77
- reflex/components/core/banner.py +159 -4
- reflex/components/core/banner.pyi +162 -76
- reflex/components/core/breakpoints.py +3 -1
- reflex/components/core/client_side_routing.py +1 -1
- reflex/components/core/client_side_routing.pyi +32 -32
- reflex/components/core/clipboard.pyi +17 -20
- reflex/components/core/cond.py +9 -10
- reflex/components/core/debounce.py +1 -1
- reflex/components/core/debounce.pyi +17 -17
- reflex/components/core/foreach.py +28 -3
- reflex/components/core/html.py +1 -1
- reflex/components/core/html.pyi +16 -16
- reflex/components/core/match.py +5 -5
- reflex/components/core/sticky.py +134 -0
- reflex/components/core/sticky.pyi +449 -0
- reflex/components/core/upload.py +2 -2
- reflex/components/core/upload.pyi +80 -88
- reflex/components/datadisplay/code.py +5 -14
- reflex/components/datadisplay/code.pyi +31 -31
- reflex/components/datadisplay/dataeditor.py +7 -4
- reflex/components/datadisplay/dataeditor.pyi +40 -54
- reflex/components/datadisplay/logo.py +13 -8
- reflex/components/datadisplay/shiki_code_block.py +14 -9
- reflex/components/datadisplay/shiki_code_block.pyi +46 -46
- reflex/components/dynamic.py +22 -3
- reflex/components/el/constants/reflex.py +1 -1
- reflex/components/el/element.py +1 -1
- reflex/components/el/element.pyi +16 -16
- reflex/components/el/elements/base.pyi +16 -16
- reflex/components/el/elements/forms.py +4 -4
- reflex/components/el/elements/forms.pyi +224 -258
- reflex/components/el/elements/inline.pyi +421 -421
- reflex/components/el/elements/media.pyi +376 -376
- reflex/components/el/elements/metadata.pyi +91 -91
- reflex/components/el/elements/other.pyi +106 -106
- reflex/components/el/elements/scripts.pyi +46 -46
- reflex/components/el/elements/sectioning.pyi +226 -226
- reflex/components/el/elements/tables.pyi +151 -151
- reflex/components/el/elements/typography.pyi +226 -226
- reflex/components/gridjs/datatable.pyi +31 -31
- reflex/components/lucide/icon.py +46 -8
- reflex/components/lucide/icon.pyi +85 -31
- reflex/components/markdown/markdown.py +10 -8
- reflex/components/markdown/markdown.pyi +16 -16
- reflex/components/moment/moment.py +2 -2
- reflex/components/moment/moment.pyi +17 -19
- reflex/components/next/base.pyi +16 -16
- reflex/components/next/image.py +16 -4
- reflex/components/next/image.pyi +22 -20
- reflex/components/next/link.py +1 -1
- reflex/components/next/link.pyi +16 -16
- reflex/components/next/video.pyi +16 -16
- reflex/components/plotly/__init__.py +29 -2
- reflex/components/plotly/plotly.py +240 -5
- reflex/components/plotly/plotly.pyi +799 -44
- reflex/components/props.py +3 -3
- reflex/components/radix/__init__.pyi +1 -1
- reflex/components/radix/primitives/accordion.py +9 -5
- reflex/components/radix/primitives/accordion.pyi +110 -108
- reflex/components/radix/primitives/base.pyi +31 -31
- reflex/components/radix/primitives/drawer.py +5 -2
- reflex/components/radix/primitives/drawer.pyi +179 -187
- reflex/components/radix/primitives/form.pyi +160 -172
- reflex/components/radix/primitives/progress.py +1 -1
- reflex/components/radix/primitives/progress.pyi +76 -76
- reflex/components/radix/primitives/slider.py +1 -1
- reflex/components/radix/primitives/slider.pyi +78 -82
- reflex/components/radix/themes/base.pyi +121 -121
- reflex/components/radix/themes/color_mode.py +11 -9
- reflex/components/radix/themes/color_mode.pyi +47 -49
- reflex/components/radix/themes/components/alert_dialog.py +3 -0
- reflex/components/radix/themes/components/alert_dialog.pyi +110 -112
- reflex/components/radix/themes/components/aspect_ratio.pyi +16 -16
- reflex/components/radix/themes/components/avatar.pyi +16 -16
- reflex/components/radix/themes/components/badge.pyi +16 -16
- reflex/components/radix/themes/components/button.pyi +16 -16
- reflex/components/radix/themes/components/callout.pyi +76 -76
- reflex/components/radix/themes/components/card.py +1 -1
- reflex/components/radix/themes/components/card.pyi +17 -17
- reflex/components/radix/themes/components/checkbox.pyi +49 -55
- reflex/components/radix/themes/components/checkbox_cards.pyi +31 -31
- reflex/components/radix/themes/components/checkbox_group.pyi +31 -31
- reflex/components/radix/themes/components/context_menu.py +5 -0
- reflex/components/radix/themes/components/context_menu.pyi +149 -155
- reflex/components/radix/themes/components/data_list.pyi +61 -61
- reflex/components/radix/themes/components/dialog.py +3 -0
- reflex/components/radix/themes/components/dialog.pyi +113 -117
- reflex/components/radix/themes/components/dropdown_menu.py +5 -0
- reflex/components/radix/themes/components/dropdown_menu.pyi +133 -137
- reflex/components/radix/themes/components/hover_card.py +3 -0
- reflex/components/radix/themes/components/hover_card.pyi +63 -67
- reflex/components/radix/themes/components/icon_button.py +2 -2
- reflex/components/radix/themes/components/icon_button.pyi +17 -16
- reflex/components/radix/themes/components/inset.pyi +16 -16
- reflex/components/radix/themes/components/popover.py +3 -0
- reflex/components/radix/themes/components/popover.pyi +68 -70
- reflex/components/radix/themes/components/progress.pyi +16 -16
- reflex/components/radix/themes/components/radio.pyi +16 -16
- reflex/components/radix/themes/components/radio_cards.py +2 -0
- reflex/components/radix/themes/components/radio_cards.pyi +32 -34
- reflex/components/radix/themes/components/radio_group.py +1 -1
- reflex/components/radix/themes/components/radio_group.pyi +62 -64
- reflex/components/radix/themes/components/scroll_area.pyi +16 -16
- reflex/components/radix/themes/components/segmented_control.pyi +32 -35
- reflex/components/radix/themes/components/select.py +4 -0
- reflex/components/radix/themes/components/select.pyi +145 -157
- reflex/components/radix/themes/components/separator.pyi +16 -16
- reflex/components/radix/themes/components/skeleton.py +3 -0
- reflex/components/radix/themes/components/skeleton.pyi +16 -16
- reflex/components/radix/themes/components/slider.pyi +22 -28
- reflex/components/radix/themes/components/spinner.pyi +16 -16
- reflex/components/radix/themes/components/switch.pyi +17 -19
- reflex/components/radix/themes/components/table.pyi +106 -106
- reflex/components/radix/themes/components/tabs.py +3 -0
- reflex/components/radix/themes/components/tabs.pyi +78 -82
- reflex/components/radix/themes/components/text_area.py +12 -0
- reflex/components/radix/themes/components/text_area.pyi +21 -33
- reflex/components/radix/themes/components/text_field.py +1 -1
- reflex/components/radix/themes/components/text_field.pyi +52 -80
- reflex/components/radix/themes/components/tooltip.py +6 -1
- reflex/components/radix/themes/components/tooltip.pyi +20 -21
- reflex/components/radix/themes/layout/__init__.pyi +1 -1
- reflex/components/radix/themes/layout/base.pyi +16 -16
- reflex/components/radix/themes/layout/box.pyi +16 -16
- reflex/components/radix/themes/layout/center.pyi +16 -16
- reflex/components/radix/themes/layout/container.pyi +16 -16
- reflex/components/radix/themes/layout/flex.pyi +16 -16
- reflex/components/radix/themes/layout/grid.pyi +16 -16
- reflex/components/radix/themes/layout/list.py +2 -2
- reflex/components/radix/themes/layout/list.pyi +76 -76
- reflex/components/radix/themes/layout/section.pyi +16 -16
- reflex/components/radix/themes/layout/spacer.pyi +16 -16
- reflex/components/radix/themes/layout/stack.py +2 -2
- reflex/components/radix/themes/layout/stack.pyi +46 -46
- reflex/components/radix/themes/typography/blockquote.pyi +16 -16
- reflex/components/radix/themes/typography/code.pyi +16 -16
- reflex/components/radix/themes/typography/heading.pyi +16 -16
- reflex/components/radix/themes/typography/link.py +1 -1
- reflex/components/radix/themes/typography/link.pyi +16 -16
- reflex/components/radix/themes/typography/text.py +2 -2
- reflex/components/radix/themes/typography/text.pyi +106 -106
- reflex/components/react_player/audio.pyi +33 -39
- reflex/components/react_player/react_player.py +1 -1
- reflex/components/react_player/react_player.pyi +32 -38
- reflex/components/react_player/video.pyi +33 -39
- reflex/components/recharts/__init__.py +2 -0
- reflex/components/recharts/__init__.pyi +2 -0
- reflex/components/recharts/cartesian.pyi +282 -282
- reflex/components/recharts/charts.py +15 -15
- reflex/components/recharts/charts.pyi +164 -164
- reflex/components/recharts/general.py +19 -4
- reflex/components/recharts/general.pyi +132 -81
- reflex/components/recharts/polar.py +2 -2
- reflex/components/recharts/polar.pyi +55 -55
- reflex/components/recharts/recharts.py +4 -4
- reflex/components/recharts/recharts.pyi +31 -31
- reflex/components/sonner/toast.py +15 -13
- reflex/components/sonner/toast.pyi +22 -22
- reflex/components/suneditor/editor.py +6 -4
- reflex/components/suneditor/editor.pyi +26 -40
- reflex/components/tags/iter_tag.py +3 -3
- reflex/components/tags/tag.py +25 -3
- reflex/config.py +48 -15
- reflex/constants/__init__.py +1 -0
- reflex/constants/base.py +4 -1
- reflex/constants/compiler.py +5 -2
- reflex/constants/config.py +8 -1
- reflex/constants/installer.py +9 -9
- reflex/constants/style.py +1 -1
- reflex/custom_components/custom_components.py +18 -10
- reflex/event.py +221 -231
- reflex/experimental/__init__.py +19 -11
- reflex/experimental/client_state.py +53 -28
- reflex/experimental/hooks.py +5 -5
- reflex/experimental/layout.py +8 -5
- reflex/experimental/layout.pyi +79 -83
- reflex/experimental/misc.py +3 -3
- reflex/istate/wrappers.py +1 -1
- reflex/middleware/hydrate_middleware.py +2 -2
- reflex/model.py +11 -6
- reflex/page.py +5 -5
- reflex/reflex.py +104 -26
- reflex/route.py +1 -1
- reflex/state.py +358 -401
- reflex/style.py +27 -3
- reflex/testing.py +29 -23
- reflex/utils/build.py +6 -2
- reflex/utils/codespaces.py +1 -4
- reflex/utils/compat.py +6 -5
- reflex/utils/console.py +71 -16
- reflex/utils/exceptions.py +89 -26
- reflex/utils/exec.py +69 -74
- reflex/utils/export.py +6 -1
- reflex/utils/format.py +8 -40
- reflex/utils/imports.py +5 -2
- reflex/utils/lazy_loader.py +7 -1
- reflex/utils/path_ops.py +74 -14
- reflex/utils/prerequisites.py +345 -68
- reflex/utils/processes.py +45 -32
- reflex/utils/pyi_generator.py +39 -33
- reflex/utils/registry.py +4 -4
- reflex/utils/serializers.py +1 -1
- reflex/utils/telemetry.py +5 -4
- reflex/utils/types.py +42 -18
- reflex/vars/base.py +695 -330
- reflex/vars/datetime.py +6 -7
- reflex/vars/dep_tracking.py +344 -0
- reflex/vars/function.py +11 -5
- reflex/vars/number.py +31 -43
- reflex/vars/object.py +74 -64
- reflex/vars/sequence.py +79 -67
- {reflex-0.6.8a2.dist-info → reflex-0.7.0.dist-info}/METADATA +7 -8
- reflex-0.7.0.dist-info/RECORD +401 -0
- {reflex-0.6.8a2.dist-info → reflex-0.7.0.dist-info}/WHEEL +1 -1
- reflex/experimental/assets.py +0 -37
- reflex-0.6.8a2.dist-info/RECORD +0 -397
- {reflex-0.6.8a2.dist-info → reflex-0.7.0.dist-info}/LICENSE +0 -0
- {reflex-0.6.8a2.dist-info → reflex-0.7.0.dist-info}/entry_points.txt +0 -0
reflex/constants/installer.py
CHANGED
|
@@ -37,10 +37,10 @@ class Bun(SimpleNamespace):
|
|
|
37
37
|
"""Bun constants."""
|
|
38
38
|
|
|
39
39
|
# The Bun version.
|
|
40
|
-
VERSION = "1.
|
|
40
|
+
VERSION = "1.2.0"
|
|
41
41
|
|
|
42
42
|
# Min Bun Version
|
|
43
|
-
MIN_VERSION = "
|
|
43
|
+
MIN_VERSION = "1.1.0"
|
|
44
44
|
|
|
45
45
|
# URL to bun install script.
|
|
46
46
|
INSTALL_URL = "https://raw.githubusercontent.com/reflex-dev/reflex/main/scripts/bun_install.sh"
|
|
@@ -178,21 +178,21 @@ class PackageJson(SimpleNamespace):
|
|
|
178
178
|
PATH = "package.json"
|
|
179
179
|
|
|
180
180
|
DEPENDENCIES = {
|
|
181
|
-
"@babel/standalone": "7.26.
|
|
182
|
-
"@emotion/react": "11.
|
|
183
|
-
"axios": "1.7.
|
|
181
|
+
"@babel/standalone": "7.26.6",
|
|
182
|
+
"@emotion/react": "11.14.0",
|
|
183
|
+
"axios": "1.7.9",
|
|
184
184
|
"json5": "2.2.3",
|
|
185
|
-
"next": "
|
|
185
|
+
"next": "15.1.6",
|
|
186
186
|
"next-sitemap": "4.2.3",
|
|
187
|
-
"next-themes": "0.4.
|
|
187
|
+
"next-themes": "0.4.4",
|
|
188
188
|
"react": "18.3.1",
|
|
189
189
|
"react-dom": "18.3.1",
|
|
190
|
-
"react-focus-lock": "2.13.
|
|
190
|
+
"react-focus-lock": "2.13.5",
|
|
191
191
|
"socket.io-client": "4.8.1",
|
|
192
192
|
"universal-cookie": "7.2.2",
|
|
193
193
|
}
|
|
194
194
|
DEV_DEPENDENCIES = {
|
|
195
195
|
"autoprefixer": "10.4.20",
|
|
196
|
-
"postcss": "8.
|
|
196
|
+
"postcss": "8.5.1",
|
|
197
197
|
"postcss-import": "16.1.0",
|
|
198
198
|
}
|
reflex/constants/style.py
CHANGED
|
@@ -14,7 +14,7 @@ from typing import Optional, Tuple
|
|
|
14
14
|
import httpx
|
|
15
15
|
import tomlkit
|
|
16
16
|
import typer
|
|
17
|
-
from tomlkit.exceptions import TOMLKitError
|
|
17
|
+
from tomlkit.exceptions import NonExistentKey, TOMLKitError
|
|
18
18
|
|
|
19
19
|
from reflex import constants
|
|
20
20
|
from reflex.config import environment, get_config
|
|
@@ -83,7 +83,7 @@ def _get_package_config(exit_on_fail: bool = True) -> dict:
|
|
|
83
83
|
The package configuration.
|
|
84
84
|
|
|
85
85
|
Raises:
|
|
86
|
-
Exit: If the pyproject.toml file is not found.
|
|
86
|
+
Exit: If the pyproject.toml file is not found and exit_on_fail is True.
|
|
87
87
|
"""
|
|
88
88
|
pyproject = Path(CustomComponents.PYPROJECT_TOML)
|
|
89
89
|
try:
|
|
@@ -421,12 +421,13 @@ def _run_commands_in_subprocess(cmds: list[str]) -> bool:
|
|
|
421
421
|
console.debug(f"Running command: {' '.join(cmds)}")
|
|
422
422
|
try:
|
|
423
423
|
result = subprocess.run(cmds, capture_output=True, text=True, check=True)
|
|
424
|
-
console.debug(result.stdout)
|
|
425
|
-
return True
|
|
426
424
|
except subprocess.CalledProcessError as cpe:
|
|
427
425
|
console.error(cpe.stdout)
|
|
428
426
|
console.error(cpe.stderr)
|
|
429
427
|
return False
|
|
428
|
+
else:
|
|
429
|
+
console.debug(result.stdout)
|
|
430
|
+
return True
|
|
430
431
|
|
|
431
432
|
|
|
432
433
|
def _make_pyi_files():
|
|
@@ -532,7 +533,13 @@ def _get_version_to_publish() -> str:
|
|
|
532
533
|
Returns:
|
|
533
534
|
The version to publish.
|
|
534
535
|
"""
|
|
535
|
-
|
|
536
|
+
try:
|
|
537
|
+
return _get_package_config()["project"]["version"]
|
|
538
|
+
except NonExistentKey:
|
|
539
|
+
# Try to get the version from dynamic sources
|
|
540
|
+
import build.util
|
|
541
|
+
|
|
542
|
+
return build.util.project_wheel_metadata(".", isolated=True)["version"]
|
|
536
543
|
|
|
537
544
|
|
|
538
545
|
def _ensure_dist_dir(version_to_publish: str, build: bool):
|
|
@@ -755,7 +762,7 @@ def _min_validate_project_info():
|
|
|
755
762
|
)
|
|
756
763
|
raise typer.Exit(code=1)
|
|
757
764
|
|
|
758
|
-
if not project.get("version"):
|
|
765
|
+
if not project.get("version") and "version" not in project.get("dynamic", []):
|
|
759
766
|
console.error(
|
|
760
767
|
f"The project version is not found in {CustomComponents.PYPROJECT_TOML}"
|
|
761
768
|
)
|
|
@@ -771,7 +778,7 @@ def _validate_project_info():
|
|
|
771
778
|
pyproject_toml = _get_package_config()
|
|
772
779
|
project = pyproject_toml["project"]
|
|
773
780
|
console.print(
|
|
774
|
-
f
|
|
781
|
+
f"Double check the information before publishing: {project['name']} version {_get_version_to_publish()}"
|
|
775
782
|
)
|
|
776
783
|
|
|
777
784
|
console.print("Update or enter to keep the current information.")
|
|
@@ -783,7 +790,7 @@ def _validate_project_info():
|
|
|
783
790
|
author["name"] = console.ask("Author Name", default=author.get("name", ""))
|
|
784
791
|
author["email"] = console.ask("Author Email", default=author.get("email", ""))
|
|
785
792
|
|
|
786
|
-
console.print(f
|
|
793
|
+
console.print(f"Current keywords are: {project.get('keywords') or []}")
|
|
787
794
|
keyword_action = console.ask(
|
|
788
795
|
"Keep, replace or append?", choices=["k", "r", "a"], default="k"
|
|
789
796
|
)
|
|
@@ -924,17 +931,18 @@ def _get_file_from_prompt_in_loop() -> Tuple[bytes, str] | None:
|
|
|
924
931
|
image_file = file_extension = None
|
|
925
932
|
while image_file is None:
|
|
926
933
|
image_filepath = Path(
|
|
927
|
-
console.ask("Upload a preview image of your demo app (enter to skip)")
|
|
934
|
+
console.ask("Upload a preview image of your demo app (enter to skip)") # pyright: ignore [reportArgumentType]
|
|
928
935
|
)
|
|
929
936
|
if not image_filepath:
|
|
930
937
|
break
|
|
931
938
|
file_extension = image_filepath.suffix
|
|
932
939
|
try:
|
|
933
940
|
image_file = image_filepath.read_bytes()
|
|
934
|
-
return image_file, file_extension
|
|
935
941
|
except OSError as ose:
|
|
936
942
|
console.error(f"Unable to read the {file_extension} file due to {ose}")
|
|
937
943
|
raise typer.Exit(code=1) from ose
|
|
944
|
+
else:
|
|
945
|
+
return image_file, file_extension
|
|
938
946
|
|
|
939
947
|
console.debug(f"File extension detected: {file_extension}")
|
|
940
948
|
return None
|