reflex 0.4.9a2__py3-none-any.whl → 0.5.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.

Files changed (133) hide show
  1. reflex/.templates/apps/blank/code/blank.py +19 -16
  2. reflex/.templates/apps/demo/code/demo.py +1 -1
  3. reflex/.templates/apps/demo/code/pages/datatable.py +4 -4
  4. reflex/.templates/apps/demo/code/pages/forms.py +2 -2
  5. reflex/.templates/jinja/web/tailwind.config.js.jinja2 +12 -0
  6. reflex/.templates/web/utils/helpers/debounce.js +17 -0
  7. reflex/.templates/web/utils/helpers/throttle.js +22 -0
  8. reflex/.templates/web/utils/state.js +21 -3
  9. reflex/__init__.py +6 -1
  10. reflex/__init__.pyi +4 -1
  11. reflex/app.py +157 -140
  12. reflex/app_module_for_backend.py +1 -1
  13. reflex/base.py +13 -15
  14. reflex/compiler/compiler.py +10 -1
  15. reflex/compiler/utils.py +3 -30
  16. reflex/components/__init__.py +1 -0
  17. reflex/components/chakra/datadisplay/list.py +1 -3
  18. reflex/components/chakra/datadisplay/list.pyi +3 -3
  19. reflex/components/chakra/disclosure/accordion.py +1 -1
  20. reflex/components/chakra/forms/pininput.pyi +1 -1
  21. reflex/components/chakra/media/icon.py +2 -2
  22. reflex/components/component.py +275 -32
  23. reflex/components/core/__init__.py +2 -2
  24. reflex/components/core/cond.py +1 -10
  25. reflex/components/core/debounce.py +5 -2
  26. reflex/components/core/debounce.pyi +4 -2
  27. reflex/components/core/foreach.py +60 -49
  28. reflex/components/core/html.py +6 -0
  29. reflex/components/core/match.py +2 -17
  30. reflex/components/core/upload.py +42 -1
  31. reflex/components/core/upload.pyi +199 -1
  32. reflex/components/datadisplay/code.py +7 -3
  33. reflex/components/datadisplay/code.pyi +3 -1
  34. reflex/components/el/elements/forms.py +1 -1
  35. reflex/components/el/elements/forms.pyi +1 -1
  36. reflex/components/lucide/icon.py +5 -13
  37. reflex/components/lucide/icon.pyi +0 -1
  38. reflex/components/markdown/markdown.py +5 -23
  39. reflex/components/markdown/markdown.pyi +1 -4
  40. reflex/components/radix/primitives/accordion.py +265 -410
  41. reflex/components/radix/primitives/accordion.pyi +390 -36
  42. reflex/components/radix/primitives/form.py +33 -29
  43. reflex/components/radix/primitives/form.pyi +7 -2
  44. reflex/components/radix/primitives/progress.py +17 -9
  45. reflex/components/radix/primitives/progress.pyi +2 -0
  46. reflex/components/radix/primitives/slider.py +30 -18
  47. reflex/components/radix/primitives/slider.pyi +4 -0
  48. reflex/components/radix/themes/base.py +8 -1
  49. reflex/components/radix/themes/base.pyi +79 -1
  50. reflex/components/radix/themes/color_mode.py +88 -20
  51. reflex/components/radix/themes/color_mode.pyi +157 -139
  52. reflex/components/radix/themes/components/__init__.py +17 -0
  53. reflex/components/radix/themes/components/badge.py +2 -1
  54. reflex/components/radix/themes/components/badge.pyi +3 -1
  55. reflex/components/radix/themes/components/button.py +3 -1
  56. reflex/components/radix/themes/components/button.pyi +4 -1
  57. reflex/components/radix/themes/components/checkbox_cards.py +48 -0
  58. reflex/components/radix/themes/components/checkbox_cards.pyi +264 -0
  59. reflex/components/radix/themes/components/checkbox_group.py +42 -0
  60. reflex/components/radix/themes/components/checkbox_group.pyi +253 -0
  61. reflex/components/radix/themes/components/data_list.py +63 -0
  62. reflex/components/radix/themes/components/data_list.pyi +426 -0
  63. reflex/components/radix/themes/components/icon_button.py +20 -17
  64. reflex/components/radix/themes/components/icon_button.pyi +5 -1
  65. reflex/components/radix/themes/components/progress.py +55 -0
  66. reflex/components/radix/themes/components/progress.pyi +180 -0
  67. reflex/components/radix/themes/components/radio.py +31 -0
  68. reflex/components/radix/themes/components/radio.pyi +169 -0
  69. reflex/components/radix/themes/components/radio_cards.py +48 -0
  70. reflex/components/radix/themes/components/radio_cards.pyi +264 -0
  71. reflex/components/radix/themes/components/radio_group.py +2 -4
  72. reflex/components/radix/themes/components/segmented_control.py +48 -0
  73. reflex/components/radix/themes/components/segmented_control.pyi +262 -0
  74. reflex/components/radix/themes/components/skeleton.py +32 -0
  75. reflex/components/radix/themes/components/skeleton.pyi +106 -0
  76. reflex/components/radix/themes/components/spinner.py +26 -0
  77. reflex/components/radix/themes/components/spinner.pyi +101 -0
  78. reflex/components/radix/themes/components/tabs.py +26 -1
  79. reflex/components/radix/themes/components/tabs.pyi +69 -9
  80. reflex/components/radix/themes/components/text_field.py +101 -71
  81. reflex/components/radix/themes/components/text_field.pyi +81 -499
  82. reflex/components/radix/themes/layout/base.py +2 -2
  83. reflex/components/radix/themes/layout/base.pyi +4 -4
  84. reflex/components/radix/themes/layout/center.py +8 -3
  85. reflex/components/radix/themes/layout/center.pyi +2 -1
  86. reflex/components/radix/themes/layout/container.py +30 -2
  87. reflex/components/radix/themes/layout/container.pyi +9 -30
  88. reflex/components/radix/themes/layout/list.py +10 -5
  89. reflex/components/radix/themes/layout/list.pyi +5 -21
  90. reflex/components/radix/themes/layout/spacer.py +8 -3
  91. reflex/components/radix/themes/layout/spacer.pyi +2 -1
  92. reflex/components/radix/themes/layout/stack.py +7 -1
  93. reflex/components/radix/themes/layout/stack.pyi +3 -3
  94. reflex/components/radix/themes/typography/link.py +10 -2
  95. reflex/components/radix/themes/typography/link.pyi +5 -4
  96. reflex/components/sonner/__init__.py +3 -0
  97. reflex/components/sonner/toast.py +267 -0
  98. reflex/components/sonner/toast.pyi +205 -0
  99. reflex/components/tags/iter_tag.py +9 -6
  100. reflex/config.py +30 -54
  101. reflex/constants/__init__.py +0 -2
  102. reflex/constants/base.py +0 -5
  103. reflex/constants/colors.py +2 -0
  104. reflex/constants/installer.py +5 -1
  105. reflex/constants/route.py +4 -0
  106. reflex/custom_components/custom_components.py +24 -2
  107. reflex/event.py +75 -30
  108. reflex/experimental/__init__.py +5 -0
  109. reflex/experimental/layout.py +24 -6
  110. reflex/model.py +2 -1
  111. reflex/page.py +7 -4
  112. reflex/reflex.py +8 -3
  113. reflex/route.py +39 -0
  114. reflex/state.py +128 -131
  115. reflex/style.py +25 -3
  116. reflex/testing.py +10 -6
  117. reflex/utils/console.py +3 -1
  118. reflex/utils/exec.py +20 -7
  119. reflex/utils/format.py +1 -1
  120. reflex/utils/imports.py +3 -1
  121. reflex/utils/prerequisites.py +141 -20
  122. reflex/utils/processes.py +21 -1
  123. reflex/utils/pyi_generator.py +95 -5
  124. reflex/utils/serializers.py +1 -1
  125. reflex/utils/telemetry.py +26 -4
  126. reflex/utils/types.py +62 -18
  127. reflex/vars.py +11 -5
  128. {reflex-0.4.9a2.dist-info → reflex-0.5.0.dist-info}/METADATA +16 -4
  129. {reflex-0.4.9a2.dist-info → reflex-0.5.0.dist-info}/RECORD +132 -110
  130. {reflex-0.4.9a2.dist-info → reflex-0.5.0.dist-info}/WHEEL +1 -1
  131. reflex/app.pyi +0 -149
  132. {reflex-0.4.9a2.dist-info → reflex-0.5.0.dist-info}/LICENSE +0 -0
  133. {reflex-0.4.9a2.dist-info → reflex-0.5.0.dist-info}/entry_points.txt +0 -0
reflex/app.pyi DELETED
@@ -1,149 +0,0 @@
1
- """ Generated with stubgen from mypy, then manually edited, do not regen."""
2
-
3
- import asyncio
4
- from fastapi import FastAPI
5
- from fastapi import UploadFile as UploadFile
6
- from reflex import constants as constants
7
- from reflex.admin import AdminDash as AdminDash
8
- from reflex.base import Base as Base
9
- from reflex.compiler import compiler as compiler
10
- from reflex.components import connection_modal as connection_modal
11
- from reflex.components.component import (
12
- Component as Component,
13
- ComponentStyle as ComponentStyle,
14
- )
15
- from reflex.components.base.fragment import Fragment as Fragment
16
- from reflex.config import get_config as get_config
17
- from reflex.event import (
18
- Event as Event,
19
- EventHandler as EventHandler,
20
- EventSpec as EventSpec,
21
- )
22
- from reflex.middleware import (
23
- HydrateMiddleware as HydrateMiddleware,
24
- Middleware as Middleware,
25
- )
26
- from reflex.model import Model as Model
27
- from reflex.page import DECORATED_PAGES as DECORATED_PAGES
28
- from reflex.route import (
29
- catchall_in_route as catchall_in_route,
30
- catchall_prefix as catchall_prefix,
31
- get_route_args as get_route_args,
32
- verify_route_validity as verify_route_validity,
33
- )
34
- from reflex.state import (
35
- State as State,
36
- BaseState as BaseState,
37
- StateManager as StateManager,
38
- StateUpdate as StateUpdate,
39
- )
40
- from reflex.utils import (
41
- console as console,
42
- format as format,
43
- prerequisites as prerequisites,
44
- types as types,
45
- )
46
- from socketio import ASGIApp, AsyncNamespace, AsyncServer
47
- from typing import (
48
- Any,
49
- AsyncContextManager,
50
- AsyncIterator,
51
- Callable,
52
- Coroutine,
53
- Dict,
54
- List,
55
- Optional,
56
- Set,
57
- Type,
58
- Union,
59
- overload,
60
- )
61
-
62
- ComponentCallable = Callable[[], Component]
63
- Reducer = Callable[[Event], Coroutine[Any, Any, StateUpdate]]
64
-
65
- def default_overlay_component() -> Component: ...
66
-
67
- class OverlayFragment(Fragment):
68
- @overload
69
- @classmethod
70
- def create(cls, *children, **props) -> "OverlayFragment": ... # type: ignore
71
-
72
- class App(Base):
73
- pages: Dict[str, Component]
74
- stylesheets: List[str]
75
- api: FastAPI
76
- sio: Optional[AsyncServer]
77
- socket_app: Optional[ASGIApp]
78
- state: Type[BaseState]
79
- state_manager: StateManager
80
- style: ComponentStyle
81
- middleware: List[Middleware]
82
- load_events: Dict[str, List[Union[EventHandler, EventSpec]]]
83
- admin_dash: Optional[AdminDash]
84
- event_namespace: Optional[AsyncNamespace]
85
- overlay_component: Optional[Union[Component, ComponentCallable]]
86
- background_tasks: Set[asyncio.Task] = set()
87
- def __init__(
88
- self,
89
- *args,
90
- stylesheets: Optional[List[str]] = None,
91
- style: Optional[ComponentStyle] = None,
92
- admin_dash: Optional[AdminDash] = None,
93
- overlay_component: Optional[Union[Component, ComponentCallable]] = None,
94
- **kwargs
95
- ) -> None: ...
96
- def __call__(self) -> FastAPI: ...
97
- def enable_state(self) -> None: ...
98
- def add_default_endpoints(self) -> None: ...
99
- def add_optional_endpoints(self): ...
100
- def add_cors(self) -> None: ...
101
- async def preprocess(self, state: State, event: Event) -> StateUpdate | None: ...
102
- async def postprocess(
103
- self, state: State, event: Event, update: StateUpdate
104
- ) -> StateUpdate: ...
105
- def add_middleware(self, middleware: Middleware, index: int | None = ...): ...
106
- def add_page(
107
- self,
108
- component: Component | ComponentCallable,
109
- route: str | None = ...,
110
- title: str = ...,
111
- description: str = ...,
112
- image=...,
113
- on_load: EventHandler | EventSpec | list[EventHandler | EventSpec] | None = ...,
114
- meta: list[dict[str, str]] = ...,
115
- script_tags: list[Component] | None = ...,
116
- ): ...
117
- def get_load_events(self, route: str) -> list[EventHandler | EventSpec]: ...
118
- def add_custom_404_page(
119
- self,
120
- component: Component | ComponentCallable | None = ...,
121
- title: str = ...,
122
- image: str = ...,
123
- description: str = ...,
124
- on_load: EventHandler | EventSpec | list[EventHandler | EventSpec] | None = ...,
125
- meta: list[dict[str, str]] = ...,
126
- ): ...
127
- def setup_admin_dash(self) -> None: ...
128
- def get_frontend_packages(self, imports: Dict[str, str]): ...
129
- def compile(self) -> None: ...
130
- def compile_(self) -> None: ...
131
- def modify_state(self, token: str) -> AsyncContextManager[State]: ...
132
- def _setup_overlay_component(self) -> None: ...
133
- def _process_background(
134
- self, state: State, event: Event
135
- ) -> asyncio.Task | None: ...
136
-
137
- def process(
138
- app: App, event: Event, sid: str, headers: Dict, client_ip: str
139
- ) -> AsyncIterator[StateUpdate]: ...
140
- async def ping() -> str: ...
141
- def upload(app: App): ...
142
-
143
- class EventNamespace(AsyncNamespace):
144
- app: App
145
- def __init__(self, namespace: str, app: App) -> None: ...
146
- def on_connect(self, sid, environ) -> None: ...
147
- def on_disconnect(self, sid) -> None: ...
148
- async def on_event(self, sid, data) -> None: ...
149
- async def on_ping(self, sid) -> None: ...