reflex 0.3.8a2__py3-none-any.whl → 0.3.9__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/apps/blank/code/blank.py +1 -1
- reflex/.templates/apps/demo/code/demo.py +1 -1
- reflex/.templates/jinja/web/pages/utils.js.jinja2 +1 -1
- reflex/__init__.py +1 -0
- reflex/__init__.pyi +1 -0
- reflex/app.py +4 -5
- reflex/components/component.py +3 -1
- reflex/components/core/match.py +8 -4
- reflex/components/datadisplay/dataeditor.py +5 -1
- reflex/components/markdown/markdown.py +1 -0
- reflex/components/radix/__init__.py +2 -0
- reflex/components/radix/primitives/__init__.py +14 -1
- reflex/components/radix/primitives/accordion.py +430 -69
- reflex/components/radix/primitives/accordion.pyi +41 -11
- reflex/components/radix/primitives/base.py +4 -0
- reflex/components/radix/primitives/base.pyi +81 -0
- reflex/components/radix/primitives/form.py +4 -2
- reflex/components/radix/primitives/form.pyi +2 -2
- reflex/components/radix/primitives/progress.py +4 -2
- reflex/components/radix/primitives/progress.pyi +2 -2
- reflex/components/radix/primitives/slider.py +7 -5
- reflex/components/radix/primitives/slider.pyi +5 -5
- reflex/components/radix/themes/components/__init__.py +8 -2
- reflex/components/radix/themes/components/alertdialog.py +4 -4
- reflex/components/radix/themes/components/alertdialog.pyi +8 -1
- reflex/components/radix/themes/components/aspectratio.py +2 -4
- reflex/components/radix/themes/components/aspectratio.pyi +1 -3
- reflex/components/radix/themes/components/avatar.py +7 -3
- reflex/components/radix/themes/components/avatar.pyi +5 -3
- reflex/components/radix/themes/components/badge.py +5 -7
- reflex/components/radix/themes/components/badge.pyi +4 -6
- reflex/components/radix/themes/components/callout.py +36 -5
- reflex/components/radix/themes/components/callout.pyi +273 -9
- reflex/components/radix/themes/components/card.py +3 -3
- reflex/components/radix/themes/components/card.pyi +2 -2
- reflex/components/radix/themes/components/checkbox.py +41 -4
- reflex/components/radix/themes/components/checkbox.pyi +231 -8
- reflex/components/radix/themes/components/dialog.py +1 -1
- reflex/components/radix/themes/components/dialog.pyi +1 -1
- reflex/components/radix/themes/components/dropdownmenu.py +6 -0
- reflex/components/radix/themes/components/dropdownmenu.pyi +193 -0
- reflex/components/radix/themes/components/iconbutton.py +1 -1
- reflex/components/radix/themes/components/iconbutton.pyi +1 -1
- reflex/components/radix/themes/components/icons.py +1 -0
- reflex/components/radix/themes/components/inset.py +1 -0
- reflex/components/radix/themes/components/inset.pyi +1 -0
- reflex/components/radix/themes/components/radiogroup.py +68 -1
- reflex/components/radix/themes/components/radiogroup.pyi +254 -2
- reflex/components/radix/themes/components/select.py +94 -5
- reflex/components/radix/themes/components/select.pyi +251 -5
- reflex/components/radix/themes/components/slider.py +9 -6
- reflex/components/radix/themes/components/slider.pyi +12 -6
- reflex/components/radix/themes/components/tooltip.py +1 -0
- reflex/components/radix/themes/components/tooltip.pyi +1 -0
- reflex/components/radix/themes/layout/box.py +1 -1
- reflex/state.py +9 -4
- reflex/style.py +15 -0
- reflex/utils/format.py +13 -9
- reflex/utils/path_ops.py +2 -2
- reflex/utils/prerequisites.py +57 -5
- reflex/utils/types.py +4 -1
- reflex/vars.py +36 -3
- {reflex-0.3.8a2.dist-info → reflex-0.3.9.dist-info}/METADATA +2 -2
- {reflex-0.3.8a2.dist-info → reflex-0.3.9.dist-info}/RECORD +67 -67
- {reflex-0.3.8a2.dist-info → reflex-0.3.9.dist-info}/WHEEL +1 -1
- {reflex-0.3.8a2.dist-info → reflex-0.3.9.dist-info}/LICENSE +0 -0
- {reflex-0.3.8a2.dist-info → reflex-0.3.9.dist-info}/entry_points.txt +0 -0
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
{% macro render_match_tag(component) %}
|
|
86
86
|
{
|
|
87
87
|
(() => {
|
|
88
|
-
switch (JSON.stringify({{ component.cond.
|
|
88
|
+
switch (JSON.stringify({{ component.cond._var_name_unwrapped }})) {
|
|
89
89
|
{% for case in component.match_cases %}
|
|
90
90
|
{% for condition in case[:-1] %}
|
|
91
91
|
case JSON.stringify({{ condition._var_name_unwrapped }}):
|
reflex/__init__.py
CHANGED
|
@@ -253,6 +253,7 @@ _MAPPING = {
|
|
|
253
253
|
"reflex.compiler.utils": ["get_asset_path"],
|
|
254
254
|
"reflex.components": _ALL_COMPONENTS + ["chakra", "next"],
|
|
255
255
|
"reflex.components.component": ["memo"],
|
|
256
|
+
"reflex.components.radix": ["radix"],
|
|
256
257
|
"reflex.components.recharts": ["recharts"],
|
|
257
258
|
"reflex.components.moment.moment": ["MomentDelta"],
|
|
258
259
|
"reflex.config": ["config", "Config", "DBConfig"],
|
reflex/__init__.pyi
CHANGED
|
@@ -447,6 +447,7 @@ from reflex.components import NoSSRComponent as NoSSRComponent
|
|
|
447
447
|
from reflex.components import chakra as chakra
|
|
448
448
|
from reflex.components import next as next
|
|
449
449
|
from reflex.components.component import memo as memo
|
|
450
|
+
from reflex.components import radix as radix
|
|
450
451
|
from reflex.components import recharts as recharts
|
|
451
452
|
from reflex.components.moment.moment import MomentDelta as MomentDelta
|
|
452
453
|
from reflex import config as config
|
reflex/app.py
CHANGED
|
@@ -43,7 +43,6 @@ from reflex.components.core.client_side_routing import (
|
|
|
43
43
|
Default404Page,
|
|
44
44
|
wait_for_client_redirect,
|
|
45
45
|
)
|
|
46
|
-
from reflex.components.radix import themes
|
|
47
46
|
from reflex.config import get_config
|
|
48
47
|
from reflex.event import Event, EventHandler, EventSpec
|
|
49
48
|
from reflex.middleware import HydrateMiddleware, Middleware
|
|
@@ -129,11 +128,11 @@ class App(Base):
|
|
|
129
128
|
Union[Component, ComponentCallable]
|
|
130
129
|
] = default_overlay_component
|
|
131
130
|
|
|
132
|
-
# Background tasks that are currently running
|
|
131
|
+
# Background tasks that are currently running.
|
|
133
132
|
background_tasks: Set[asyncio.Task] = set()
|
|
134
133
|
|
|
135
|
-
# The radix theme for the entire app
|
|
136
|
-
theme: Optional[Component]
|
|
134
|
+
# The radix theme for the entire app.
|
|
135
|
+
theme: Optional[Component]
|
|
137
136
|
|
|
138
137
|
def __init__(self, *args, **kwargs):
|
|
139
138
|
"""Initialize the app.
|
|
@@ -592,7 +591,7 @@ class App(Base):
|
|
|
592
591
|
continue
|
|
593
592
|
_frontend_packages.append(package)
|
|
594
593
|
page_imports.update(_frontend_packages)
|
|
595
|
-
prerequisites.install_frontend_packages(page_imports)
|
|
594
|
+
prerequisites.install_frontend_packages(page_imports, get_config())
|
|
596
595
|
|
|
597
596
|
def _app_root(self, app_wrappers: dict[tuple[int, str], Component]) -> Component:
|
|
598
597
|
for component in tuple(app_wrappers.values()):
|
reflex/components/component.py
CHANGED
|
@@ -623,6 +623,8 @@ class Component(BaseComponent, ABC):
|
|
|
623
623
|
Returns:
|
|
624
624
|
The dictionary of the component style as value and the style notation as key.
|
|
625
625
|
"""
|
|
626
|
+
if isinstance(self.style, Var):
|
|
627
|
+
return {"css": self.style}
|
|
626
628
|
return {"css": Var.create(format_as_emotion(self.style))}
|
|
627
629
|
|
|
628
630
|
def render(self) -> Dict:
|
|
@@ -721,7 +723,7 @@ class Component(BaseComponent, ABC):
|
|
|
721
723
|
vars.append(prop_var)
|
|
722
724
|
|
|
723
725
|
# Style keeps track of its own VarData instance, so embed in a temp Var that is yielded.
|
|
724
|
-
if self.style:
|
|
726
|
+
if isinstance(self.style, dict) and self.style or isinstance(self.style, Var):
|
|
725
727
|
vars.append(
|
|
726
728
|
BaseVar(
|
|
727
729
|
_var_name="style",
|
reflex/components/core/match.py
CHANGED
|
@@ -64,7 +64,8 @@ class Match(MemoizationLeaf):
|
|
|
64
64
|
Raises:
|
|
65
65
|
ValueError: If the condition is not provided.
|
|
66
66
|
"""
|
|
67
|
-
match_cond_var = Var.create(cond)
|
|
67
|
+
match_cond_var = Var.create(cond, _var_is_string=type(cond) is str)
|
|
68
|
+
|
|
68
69
|
if match_cond_var is None:
|
|
69
70
|
raise ValueError("The condition must be set")
|
|
70
71
|
return match_cond_var # type: ignore
|
|
@@ -216,13 +217,14 @@ class Match(MemoizationLeaf):
|
|
|
216
217
|
|
|
217
218
|
return match_cond_var._replace(
|
|
218
219
|
_var_name=format.format_match(
|
|
219
|
-
cond=match_cond_var.
|
|
220
|
+
cond=match_cond_var._var_name_unwrapped,
|
|
220
221
|
match_cases=match_cases, # type: ignore
|
|
221
222
|
default=default, # type: ignore
|
|
222
223
|
),
|
|
223
224
|
_var_type=default._var_type, # type: ignore
|
|
224
225
|
_var_is_local=False,
|
|
225
226
|
_var_full_name_needs_state_prefix=False,
|
|
227
|
+
_var_is_string=False,
|
|
226
228
|
merge_var_data=VarData.merge(*var_data),
|
|
227
229
|
)
|
|
228
230
|
|
|
@@ -247,11 +249,13 @@ class Match(MemoizationLeaf):
|
|
|
247
249
|
for case in self.match_cases:
|
|
248
250
|
if isinstance(case[-1], BaseComponent):
|
|
249
251
|
merged_imports = imports.merge_imports(
|
|
250
|
-
merged_imports,
|
|
252
|
+
merged_imports,
|
|
253
|
+
case[-1].get_imports(),
|
|
251
254
|
)
|
|
252
255
|
# Get the import of the default case component.
|
|
253
256
|
if isinstance(self.default, BaseComponent):
|
|
254
257
|
merged_imports = imports.merge_imports(
|
|
255
|
-
merged_imports,
|
|
258
|
+
merged_imports,
|
|
259
|
+
self.default.get_imports(),
|
|
256
260
|
)
|
|
257
261
|
return merged_imports
|
|
@@ -109,7 +109,11 @@ class DataEditor(NoSSRComponent):
|
|
|
109
109
|
tag = "DataEditor"
|
|
110
110
|
is_default = True
|
|
111
111
|
library: str = "@glideapps/glide-data-grid@^5.3.0"
|
|
112
|
-
lib_dependencies: List[str] = [
|
|
112
|
+
lib_dependencies: List[str] = [
|
|
113
|
+
"lodash@^4.17.21",
|
|
114
|
+
"marked@^4.0.10",
|
|
115
|
+
"react-responsive-carousel@^3.2.7",
|
|
116
|
+
]
|
|
113
117
|
|
|
114
118
|
# Number of rows.
|
|
115
119
|
rows: Var[int]
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
"""Radix primitive components (https://www.radix-ui.com/primitives)."""
|
|
2
2
|
|
|
3
|
-
from .accordion import
|
|
3
|
+
from .accordion import (
|
|
4
|
+
AccordionContent,
|
|
5
|
+
AccordionHeader,
|
|
6
|
+
AccordionRoot,
|
|
7
|
+
AccordionTrigger,
|
|
8
|
+
accordion_item,
|
|
9
|
+
)
|
|
4
10
|
from .form import (
|
|
5
11
|
form_control,
|
|
6
12
|
form_field,
|
|
@@ -12,3 +18,10 @@ from .form import (
|
|
|
12
18
|
)
|
|
13
19
|
from .progress import progress
|
|
14
20
|
from .slider import slider
|
|
21
|
+
|
|
22
|
+
# accordion
|
|
23
|
+
accordion = AccordionRoot.create
|
|
24
|
+
accordion_root = AccordionRoot.create
|
|
25
|
+
accordion_header = AccordionHeader.create
|
|
26
|
+
accordion_trigger = AccordionTrigger.create
|
|
27
|
+
accordion_content = AccordionContent.create
|