reflex 0.5.2a1__py3-none-any.whl → 0.5.3a1__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 (163) hide show
  1. reflex/.templates/web/postcss.config.js +1 -0
  2. reflex/.templates/web/styles/tailwind.css +4 -1
  3. reflex/__init__.py +298 -204
  4. reflex/__init__.pyi +196 -157
  5. reflex/app.py +13 -2
  6. reflex/components/__init__.py +31 -17
  7. reflex/components/__init__.pyi +26 -0
  8. reflex/components/base/__init__.py +25 -9
  9. reflex/components/base/__init__.pyi +26 -0
  10. reflex/components/base/fragment.py +3 -0
  11. reflex/components/base/fragment.pyi +2 -0
  12. reflex/components/base/head.py +3 -0
  13. reflex/components/base/head.pyi +2 -0
  14. reflex/components/base/script.py +3 -0
  15. reflex/components/base/script.pyi +2 -0
  16. reflex/components/core/__init__.py +51 -37
  17. reflex/components/core/__init__.pyi +39 -0
  18. reflex/components/core/banner.py +7 -1
  19. reflex/components/core/banner.pyi +6 -1
  20. reflex/components/core/debounce.py +3 -0
  21. reflex/components/core/debounce.pyi +2 -0
  22. reflex/components/core/foreach.py +3 -0
  23. reflex/components/core/html.py +3 -0
  24. reflex/components/core/html.pyi +2 -0
  25. reflex/components/core/match.py +3 -0
  26. reflex/components/core/responsive.py +1 -1
  27. reflex/components/core/upload.py +5 -2
  28. reflex/components/core/upload.pyi +4 -2
  29. reflex/components/datadisplay/__init__.py +17 -8
  30. reflex/components/datadisplay/__init__.pyi +14 -0
  31. reflex/components/datadisplay/code.py +3 -0
  32. reflex/components/datadisplay/code.pyi +2 -0
  33. reflex/components/datadisplay/dataeditor.py +4 -0
  34. reflex/components/datadisplay/dataeditor.pyi +3 -0
  35. reflex/components/el/__init__.py +15 -1
  36. reflex/components/el/__init__.pyi +227 -0
  37. reflex/components/el/elements/__init__.py +129 -220
  38. reflex/components/el/elements/__init__.pyi +341 -0
  39. reflex/components/el/elements/forms.py +15 -0
  40. reflex/components/el/elements/forms.pyi +14 -0
  41. reflex/components/el/elements/inline.py +30 -0
  42. reflex/components/el/elements/inline.pyi +29 -0
  43. reflex/components/el/elements/media.py +16 -0
  44. reflex/components/el/elements/media.pyi +15 -0
  45. reflex/components/el/elements/metadata.py +7 -0
  46. reflex/components/el/elements/metadata.pyi +6 -0
  47. reflex/components/el/elements/other.py +9 -0
  48. reflex/components/el/elements/other.pyi +8 -0
  49. reflex/components/el/elements/scripts.py +5 -0
  50. reflex/components/el/elements/scripts.pyi +4 -0
  51. reflex/components/el/elements/sectioning.py +17 -0
  52. reflex/components/el/elements/sectioning.pyi +16 -0
  53. reflex/components/el/elements/tables.py +12 -0
  54. reflex/components/el/elements/tables.pyi +11 -0
  55. reflex/components/el/elements/typography.py +16 -0
  56. reflex/components/el/elements/typography.pyi +15 -0
  57. reflex/components/moment/__init__.py +1 -1
  58. reflex/components/plotly/plotly.py +184 -6
  59. reflex/components/plotly/plotly.pyi +62 -4
  60. reflex/components/radix/__init__.py +14 -2
  61. reflex/components/radix/__init__.pyi +73 -0
  62. reflex/components/radix/primitives/__init__.py +13 -5
  63. reflex/components/radix/primitives/__init__.pyi +11 -0
  64. reflex/components/radix/themes/__init__.py +20 -6
  65. reflex/components/radix/themes/__init__.pyi +13 -0
  66. reflex/components/radix/themes/base.py +26 -20
  67. reflex/components/radix/themes/base.pyi +4 -1
  68. reflex/components/radix/themes/color_mode.py +3 -1
  69. reflex/components/radix/themes/color_mode.pyi +3 -1
  70. reflex/components/radix/themes/components/__init__.py +11 -79
  71. reflex/components/radix/themes/components/__init__.pyi +44 -0
  72. reflex/components/radix/themes/components/alert_dialog.py +2 -2
  73. reflex/components/radix/themes/components/alert_dialog.pyi +2 -2
  74. reflex/components/radix/themes/components/badge.py +2 -2
  75. reflex/components/radix/themes/components/badge.pyi +2 -2
  76. reflex/components/radix/themes/components/button.py +2 -2
  77. reflex/components/radix/themes/components/button.pyi +2 -2
  78. reflex/components/radix/themes/components/callout.py +4 -4
  79. reflex/components/radix/themes/components/callout.pyi +4 -4
  80. reflex/components/radix/themes/components/card.py +2 -2
  81. reflex/components/radix/themes/components/card.pyi +2 -2
  82. reflex/components/radix/themes/components/dialog.py +2 -2
  83. reflex/components/radix/themes/components/dialog.pyi +2 -2
  84. reflex/components/radix/themes/components/hover_card.py +2 -2
  85. reflex/components/radix/themes/components/hover_card.pyi +2 -2
  86. reflex/components/radix/themes/components/icon_button.py +2 -2
  87. reflex/components/radix/themes/components/icon_button.pyi +2 -2
  88. reflex/components/radix/themes/components/inset.py +2 -2
  89. reflex/components/radix/themes/components/inset.pyi +2 -2
  90. reflex/components/radix/themes/components/popover.py +2 -2
  91. reflex/components/radix/themes/components/popover.pyi +2 -2
  92. reflex/components/radix/themes/components/table.py +8 -8
  93. reflex/components/radix/themes/components/table.pyi +8 -8
  94. reflex/components/radix/themes/components/text_area.py +11 -2
  95. reflex/components/radix/themes/components/text_area.pyi +18 -3
  96. reflex/components/radix/themes/components/text_field.py +3 -3
  97. reflex/components/radix/themes/components/text_field.pyi +3 -3
  98. reflex/components/radix/themes/layout/__init__.py +12 -38
  99. reflex/components/radix/themes/layout/__init__.pyi +21 -0
  100. reflex/components/radix/themes/layout/box.py +5 -2
  101. reflex/components/radix/themes/layout/box.pyi +4 -2
  102. reflex/components/radix/themes/layout/center.py +3 -0
  103. reflex/components/radix/themes/layout/center.pyi +2 -0
  104. reflex/components/radix/themes/layout/container.py +5 -2
  105. reflex/components/radix/themes/layout/container.pyi +4 -2
  106. reflex/components/radix/themes/layout/flex.py +5 -2
  107. reflex/components/radix/themes/layout/flex.pyi +4 -2
  108. reflex/components/radix/themes/layout/grid.py +5 -2
  109. reflex/components/radix/themes/layout/grid.pyi +4 -2
  110. reflex/components/radix/themes/layout/list.py +14 -0
  111. reflex/components/radix/themes/layout/list.pyi +3 -0
  112. reflex/components/radix/themes/layout/section.py +7 -4
  113. reflex/components/radix/themes/layout/section.pyi +5 -3
  114. reflex/components/radix/themes/layout/spacer.py +3 -0
  115. reflex/components/radix/themes/layout/spacer.pyi +2 -0
  116. reflex/components/radix/themes/layout/stack.py +5 -0
  117. reflex/components/radix/themes/layout/stack.pyi +4 -0
  118. reflex/components/radix/themes/typography/__init__.py +11 -16
  119. reflex/components/radix/themes/typography/__init__.pyi +12 -0
  120. reflex/components/radix/themes/typography/blockquote.py +5 -2
  121. reflex/components/radix/themes/typography/blockquote.pyi +4 -2
  122. reflex/components/radix/themes/typography/code.py +5 -2
  123. reflex/components/radix/themes/typography/code.pyi +4 -2
  124. reflex/components/radix/themes/typography/heading.py +5 -2
  125. reflex/components/radix/themes/typography/heading.pyi +4 -2
  126. reflex/components/radix/themes/typography/link.py +3 -0
  127. reflex/components/radix/themes/typography/link.pyi +2 -0
  128. reflex/components/radix/themes/typography/text.py +6 -6
  129. reflex/components/radix/themes/typography/text.pyi +6 -6
  130. reflex/components/recharts/__init__.py +114 -104
  131. reflex/components/recharts/__init__.pyi +106 -0
  132. reflex/components/recharts/cartesian.py +17 -0
  133. reflex/components/recharts/cartesian.pyi +16 -0
  134. reflex/components/recharts/charts.py +12 -0
  135. reflex/components/recharts/charts.pyi +11 -0
  136. reflex/components/recharts/general.py +7 -0
  137. reflex/components/recharts/general.pyi +6 -0
  138. reflex/components/recharts/polar.py +11 -0
  139. reflex/components/recharts/polar.pyi +9 -0
  140. reflex/config.py +3 -0
  141. reflex/constants/__init__.py +0 -2
  142. reflex/constants/base.py +2 -0
  143. reflex/constants/base.pyi +5 -0
  144. reflex/constants/installer.py +2 -1
  145. reflex/experimental/__init__.py +2 -0
  146. reflex/experimental/assets.py +56 -0
  147. reflex/experimental/client_state.py +4 -2
  148. reflex/experimental/hooks.py +8 -6
  149. reflex/experimental/layout.py +3 -1
  150. reflex/state.py +54 -4
  151. reflex/utils/exec.py +8 -0
  152. reflex/utils/lazy_loader.py +33 -0
  153. reflex/utils/prerequisites.py +1 -14
  154. reflex/utils/pyi_generator.py +71 -20
  155. reflex/utils/serializers.py +3 -3
  156. reflex/vars.py +79 -5
  157. reflex/vars.pyi +16 -0
  158. {reflex-0.5.2a1.dist-info → reflex-0.5.3a1.dist-info}/METADATA +2 -1
  159. {reflex-0.5.2a1.dist-info → reflex-0.5.3a1.dist-info}/RECORD +162 -148
  160. reflex/config.pyi +0 -112
  161. {reflex-0.5.2a1.dist-info → reflex-0.5.3a1.dist-info}/LICENSE +0 -0
  162. {reflex-0.5.2a1.dist-info → reflex-0.5.3a1.dist-info}/WHEEL +0 -0
  163. {reflex-0.5.2a1.dist-info → reflex-0.5.3a1.dist-info}/entry_points.txt +0 -0
reflex/__init__.pyi CHANGED
@@ -1,157 +1,196 @@
1
- from reflex.experimental import _x as _x
2
- from reflex import admin as admin
3
- from reflex.admin import AdminDash as AdminDash
4
- from reflex import app as app
5
- from reflex.app import App as App
6
- from reflex.app import UploadFile as UploadFile
7
- from reflex import base as base
8
- from reflex.base import Base as Base
9
- from reflex import compiler as compiler
10
- from reflex.components import color as color
11
- from reflex.components import cond as cond
12
- from reflex.components import foreach as foreach
13
- from reflex.components import html as html
14
- from reflex.components import match as match
15
- from reflex.components import color_mode_cond as color_mode_cond
16
- from reflex.components import connection_banner as connection_banner
17
- from reflex.components import connection_modal as connection_modal
18
- from reflex.components import debounce_input as debounce_input
19
- from reflex.components import fragment as fragment
20
- from reflex.components import Fragment as Fragment
21
- from reflex.components import image as image
22
- from reflex.components import script as script
23
- from reflex.components import desktop_only as desktop_only
24
- from reflex.components import mobile_and_tablet as mobile_and_tablet
25
- from reflex.components import mobile_only as mobile_only
26
- from reflex.components import tablet_and_desktop as tablet_and_desktop
27
- from reflex.components import tablet_only as tablet_only
28
- from reflex.components import cancel_upload as cancel_upload
29
- from reflex.components import clear_selected_files as clear_selected_files
30
- from reflex.components import get_upload_dir as get_upload_dir
31
- from reflex.components import get_upload_url as get_upload_url
32
- from reflex.components import selected_files as selected_files
33
- from reflex.components import upload as upload
34
- from reflex.components import accordion as accordion
35
- from reflex.components import alert_dialog as alert_dialog
36
- from reflex.components import aspect_ratio as aspect_ratio
37
- from reflex.components import avatar as avatar
38
- from reflex.components import badge as badge
39
- from reflex.components import blockquote as blockquote
40
- from reflex.components import box as box
41
- from reflex.components import button as button
42
- from reflex.components import callout as callout
43
- from reflex.components import card as card
44
- from reflex.components import center as center
45
- from reflex.components import checkbox as checkbox
46
- from reflex.components import code as code
47
- from reflex.components import container as container
48
- from reflex.components import context_menu as context_menu
49
- from reflex.components import data_list as data_list
50
- from reflex.components import dialog as dialog
51
- from reflex.components import divider as divider
52
- from reflex.components import drawer as drawer
53
- from reflex.components import flex as flex
54
- from reflex.components import form as form
55
- from reflex.components import grid as grid
56
- from reflex.components import heading as heading
57
- from reflex.components import hover_card as hover_card
58
- from reflex.components import hstack as hstack
59
- from reflex.components import icon_button as icon_button
60
- from reflex.components import inset as inset
61
- from reflex.components import input as input
62
- from reflex.components import link as link
63
- from reflex.components import menu as menu
64
- from reflex.components import popover as popover
65
- from reflex.components import progress as progress
66
- from reflex.components import radio as radio
67
- from reflex.components import scroll_area as scroll_area
68
- from reflex.components import section as section
69
- from reflex.components import select as select
70
- from reflex.components import skeleton as skeleton
71
- from reflex.components import slider as slider
72
- from reflex.components import spacer as spacer
73
- from reflex.components import spinner as spinner
74
- from reflex.components import stack as stack
75
- from reflex.components import switch as switch
76
- from reflex.components import table as table
77
- from reflex.components import tabs as tabs
78
- from reflex.components import text as text
79
- from reflex.components import text_area as text_area
80
- from reflex.components import theme as theme
81
- from reflex.components import theme_panel as theme_panel
82
- from reflex.components import tooltip as tooltip
83
- from reflex.components import vstack as vstack
84
- from reflex.components import code_block as code_block
85
- from reflex.components import data_editor as data_editor
86
- from reflex.components import data_editor_theme as data_editor_theme
87
- from reflex.components import data_table as data_table
88
- from reflex.components import plotly as plotly
89
- from reflex.components import audio as audio
90
- from reflex.components import video as video
91
- from reflex.components import editor as editor
92
- from reflex.components import EditorButtonList as EditorButtonList
93
- from reflex.components import EditorOptions as EditorOptions
94
- from reflex.components import icon as icon
95
- from reflex.components import markdown as markdown
96
- from reflex.components import list as list
97
- from reflex.components import list_item as list_item
98
- from reflex.components import unordered_list as unordered_list
99
- from reflex.components import ordered_list as ordered_list
100
- from reflex.components import moment as moment
101
- from reflex.components import logo as logo
102
- from reflex.components.component import Component as Component
103
- from reflex.components.component import NoSSRComponent as NoSSRComponent
104
- from reflex.components.component import memo as memo
105
- from reflex.components import chakra as chakra
106
- from reflex.components import el as el
107
- from reflex.components import lucide as lucide
108
- from reflex.components import next as next
109
- from reflex.components import radix as radix
110
- from reflex.components.radix import color_mode as color_mode
111
- from reflex.components import recharts as recharts
112
- from reflex.components.moment.moment import MomentDelta as MomentDelta
113
- from reflex import config as config
114
- from reflex.config import Config as Config
115
- from reflex.config import DBConfig as DBConfig
116
- from reflex import constants as constants
117
- from reflex.constants import Env as Env
118
- from reflex import event as event
119
- from reflex.event import EventChain as EventChain
120
- from reflex.event import EventHandler as EventHandler
121
- from reflex.event import background as background
122
- from reflex.event import call_script as call_script
123
- from reflex.event import clear_local_storage as clear_local_storage
124
- from reflex.event import console_log as console_log
125
- from reflex.event import download as download
126
- from reflex.event import prevent_default as prevent_default
127
- from reflex.event import redirect as redirect
128
- from reflex.event import remove_cookie as remove_cookie
129
- from reflex.event import remove_local_storage as remove_local_storage
130
- from reflex.event import set_clipboard as set_clipboard
131
- from reflex.event import set_focus as set_focus
132
- from reflex.event import scroll_to as scroll_to
133
- from reflex.event import set_value as set_value
134
- from reflex.event import stop_propagation as stop_propagation
135
- from reflex.event import upload_files as upload_files
136
- from reflex.event import window_alert as window_alert
137
- from reflex import middleware as middleware
138
- from reflex.middleware import Middleware as Middleware
139
- from reflex import model as model
140
- from reflex.model import session as session
141
- from reflex.model import Model as Model
142
- from reflex.page import page as page
143
- from reflex import route as route
144
- from reflex import state as state
145
- from reflex.state import var as var
146
- from reflex.state import Cookie as Cookie
147
- from reflex.state import LocalStorage as LocalStorage
148
- from reflex.state import ComponentState as ComponentState
149
- from reflex.state import State as State
150
- from reflex import style as style
151
- from reflex.style import toggle_color_mode as toggle_color_mode
152
- from reflex import testing as testing
153
- from reflex import utils as utils
154
- from reflex.utils.imports import ImportVar as ImportVar
155
- from reflex import vars as vars
156
- from reflex.vars import cached_var as cached_var
157
- from reflex.vars import Var as Var
1
+ """Stub file for reflex/__init__.py"""
2
+ # ------------------- DO NOT EDIT ----------------------
3
+ # This file was generated by `reflex/utils/pyi_generator.py`!
4
+ # ------------------------------------------------------
5
+
6
+ from . import admin as admin
7
+ from . import app as app
8
+ from . import base as base
9
+ from . import compiler as compiler
10
+ from . import components as components
11
+ from . import config as config
12
+ from . import event as event
13
+ from . import model as model
14
+ from . import style as style
15
+ from . import testing as testing
16
+ from . import utils as utils
17
+ from . import vars as vars
18
+
19
+ from .experimental import _x as _x
20
+ from .admin import AdminDash as AdminDash
21
+ from .app import App as App
22
+ from .app import UploadFile as UploadFile
23
+ from .base import Base as Base
24
+ from .components.component import Component as Component
25
+ from .components.component import NoSSRComponent as NoSSRComponent
26
+ from .components.component import memo as memo
27
+ from .components.el.elements.media import image as image
28
+ from .components.lucide import icon as icon
29
+ from .components.base.fragment import fragment as fragment
30
+ from .components.base.fragment import Fragment as Fragment
31
+ from .components.base.script import script as script
32
+ from .components.base.script import Script as Script
33
+ from .components.suneditor import editor as editor
34
+ from .components.suneditor import EditorButtonList as EditorButtonList
35
+ from .components.suneditor import EditorOptions as EditorOptions
36
+ from .components import el as el
37
+ from .components import chakra as chakra
38
+ from .components import radix as radix
39
+ from .components import lucide as lucide
40
+ from .components import recharts as recharts
41
+ from .components import next as next
42
+ from .components.markdown import markdown as markdown
43
+ from .components.radix.themes.color_mode import color_mode as color_mode
44
+ from .components.radix.themes.base import theme as theme
45
+ from .components.radix.themes.base import theme_panel as theme_panel
46
+ from .components.radix.themes.components.alert_dialog import (
47
+ alert_dialog as alert_dialog,
48
+ )
49
+ from .components.radix.themes.components.aspect_ratio import (
50
+ aspect_ratio as aspect_ratio,
51
+ )
52
+ from .components.radix.themes.components.avatar import avatar as avatar
53
+ from .components.radix.themes.components.badge import badge as badge
54
+ from .components.radix.themes.components.button import button as button
55
+ from .components.radix.themes.components.callout import callout as callout
56
+ from .components.radix.themes.components.card import card as card
57
+ from .components.radix.themes.components.checkbox import checkbox as checkbox
58
+ from .components.radix.themes.components.context_menu import (
59
+ context_menu as context_menu,
60
+ )
61
+ from .components.radix.themes.components.data_list import data_list as data_list
62
+ from .components.radix.themes.components.dialog import dialog as dialog
63
+ from .components.radix.themes.components.hover_card import hover_card as hover_card
64
+ from .components.radix.themes.components.icon_button import icon_button as icon_button
65
+ from .components.radix.themes.components.text_field import input as input
66
+ from .components.radix.themes.components.inset import inset as inset
67
+ from .components.radix.themes.components.popover import popover as popover
68
+ from .components.radix.themes.components.scroll_area import scroll_area as scroll_area
69
+ from .components.radix.themes.components.select import select as select
70
+ from .components.radix.themes.components.skeleton import skeleton as skeleton
71
+ from .components.radix.themes.components.slider import slider as slider
72
+ from .components.radix.themes.components.spinner import spinner as spinner
73
+ from .components.radix.themes.components.switch import switch as switch
74
+ from .components.radix.themes.components.table import table as table
75
+ from .components.radix.themes.components.tabs import tabs as tabs
76
+ from .components.radix.themes.components.text_area import text_area as text_area
77
+ from .components.radix.themes.components.tooltip import tooltip as tooltip
78
+ from .components.radix.themes.components.segmented_control import (
79
+ segmented_control as segmented_control,
80
+ )
81
+ from .components.radix.themes.components.radio_cards import radio_cards as radio_cards
82
+ from .components.radix.themes.components.checkbox_cards import (
83
+ checkbox_cards as checkbox_cards,
84
+ )
85
+ from .components.radix.themes.components.checkbox_group import (
86
+ checkbox_group as checkbox_group,
87
+ )
88
+ from .components.radix.themes.components.text_field import text_field as text_field
89
+ from .components.radix.themes.components.radio_group import radio as radio
90
+ from .components.radix.themes.components.radio_group import radio_group as radio_group
91
+ from .components.radix.themes.components.dropdown_menu import menu as menu
92
+ from .components.radix.themes.components.dropdown_menu import (
93
+ dropdown_menu as dropdown_menu,
94
+ )
95
+ from .components.radix.themes.components.separator import divider as divider
96
+ from .components.radix.themes.components.separator import separator as separator
97
+ from .components.radix.themes.typography.blockquote import blockquote as blockquote
98
+ from .components.radix.themes.typography.code import code as code
99
+ from .components.radix.themes.typography.heading import heading as heading
100
+ from .components.radix.themes.typography.link import link as link
101
+ from .components.radix.themes.typography.text import text as text
102
+ from .components.radix.themes.layout.box import box as box
103
+ from .components.radix.themes.layout.center import center as center
104
+ from .components.radix.themes.layout.container import container as container
105
+ from .components.radix.themes.layout.flex import flex as flex
106
+ from .components.radix.themes.layout.grid import grid as grid
107
+ from .components.radix.themes.layout.section import section as section
108
+ from .components.radix.themes.layout.spacer import spacer as spacer
109
+ from .components.radix.themes.layout.stack import stack as stack
110
+ from .components.radix.themes.layout.stack import hstack as hstack
111
+ from .components.radix.themes.layout.stack import vstack as vstack
112
+ from .components.radix.themes.layout.list import list_ns as list
113
+ from .components.radix.themes.layout.list import list_item as list_item
114
+ from .components.radix.themes.layout.list import ordered_list as ordered_list
115
+ from .components.radix.themes.layout.list import unordered_list as unordered_list
116
+ from .components.radix.primitives.accordion import accordion as accordion
117
+ from .components.radix.primitives.drawer import drawer as drawer
118
+ from .components.radix.primitives.form import form as form
119
+ from .components.radix.primitives.progress import progress as progress
120
+ from .components.plotly import plotly as plotly
121
+ from .components.react_player import audio as audio
122
+ from .components.react_player import video as video
123
+ from .components.core.banner import connection_banner as connection_banner
124
+ from .components.core.banner import connection_modal as connection_modal
125
+ from .components.core.cond import cond as cond
126
+ from .components.core.cond import color_mode_cond as color_mode_cond
127
+ from .components.core.foreach import foreach as foreach
128
+ from .components.core.debounce import debounce_input as debounce_input
129
+ from .components.core.html import html as html
130
+ from .components.core.match import match as match
131
+ from .components.core.colors import color as color
132
+ from .components.core.responsive import desktop_only as desktop_only
133
+ from .components.core.responsive import mobile_and_tablet as mobile_and_tablet
134
+ from .components.core.responsive import mobile_only as mobile_only
135
+ from .components.core.responsive import tablet_and_desktop as tablet_and_desktop
136
+ from .components.core.responsive import tablet_only as tablet_only
137
+ from .components.core.upload import cancel_upload as cancel_upload
138
+ from .components.core.upload import clear_selected_files as clear_selected_files
139
+ from .components.core.upload import get_upload_dir as get_upload_dir
140
+ from .components.core.upload import get_upload_url as get_upload_url
141
+ from .components.core.upload import selected_files as selected_files
142
+ from .components.core.upload import upload as upload
143
+ from .components.datadisplay.code import code_block as code_block
144
+ from .components.datadisplay.dataeditor import data_editor as data_editor
145
+ from .components.datadisplay.dataeditor import data_editor_theme as data_editor_theme
146
+ from .components.datadisplay.logo import logo as logo
147
+ from .components.gridjs import data_table as data_table
148
+ from .components.moment import MomentDelta as MomentDelta
149
+ from .components.moment import moment as moment
150
+ from .config import Config as Config
151
+ from .config import DBConfig as DBConfig
152
+ from .constants import Env as Env
153
+ from .event import EventChain as EventChain
154
+ from .event import EventHandler as EventHandler
155
+ from .event import background as background
156
+ from .event import call_script as call_script
157
+ from .event import clear_local_storage as clear_local_storage
158
+ from .event import console_log as console_log
159
+ from .event import download as download
160
+ from .event import prevent_default as prevent_default
161
+ from .event import redirect as redirect
162
+ from .event import remove_cookie as remove_cookie
163
+ from .event import remove_local_storage as remove_local_storage
164
+ from .event import set_clipboard as set_clipboard
165
+ from .event import set_focus as set_focus
166
+ from .event import scroll_to as scroll_to
167
+ from .event import set_value as set_value
168
+ from .event import stop_propagation as stop_propagation
169
+ from .event import upload_files as upload_files
170
+ from .event import window_alert as window_alert
171
+ from .middleware import middleware as middleware
172
+ from .middleware import Middleware as Middleware
173
+ from .model import session as session
174
+ from .model import Model as Model
175
+ from .state import var as var
176
+ from .state import Cookie as Cookie
177
+ from .state import LocalStorage as LocalStorage
178
+ from .state import ComponentState as ComponentState
179
+ from .state import State as State
180
+ from .style import Style as Style
181
+ from .style import toggle_color_mode as toggle_color_mode
182
+ from .utils.imports import ImportVar as ImportVar
183
+ from .utils.serializers import serializer as serializer
184
+ from .vars import cached_var as cached_var
185
+ from .vars import Var as Var
186
+ from reflex.utils import lazy_loader
187
+ from .page import page as page
188
+
189
+ RADIX_THEMES_MAPPING: dict
190
+ RADIX_THEMES_COMPONENTS_MAPPING: dict
191
+ RADIX_THEMES_LAYOUT_MAPPING: dict
192
+ RADIX_THEMES_TYPOGRAPHY_MAPPING: dict
193
+ RADIX_PRIMITIVES_MAPPING: dict
194
+ COMPONENTS_CORE_MAPPING: dict
195
+ COMPONENTS_BASE_MAPPING: dict
196
+ RADIX_MAPPING: dict
reflex/app.py CHANGED
@@ -50,7 +50,7 @@ from reflex.components.component import (
50
50
  ComponentStyle,
51
51
  evaluate_style_namespaces,
52
52
  )
53
- from reflex.components.core import connection_pulser, connection_toaster
53
+ from reflex.components.core.banner import connection_pulser, connection_toaster
54
54
  from reflex.components.core.client_side_routing import (
55
55
  Default404Page,
56
56
  wait_for_client_redirect,
@@ -1302,6 +1302,12 @@ class EventNamespace(AsyncNamespace):
1302
1302
  # The application object.
1303
1303
  app: App
1304
1304
 
1305
+ # Keep a mapping between socket ID and client token.
1306
+ token_to_sid: dict[str, str] = {}
1307
+
1308
+ # Keep a mapping between client token and socket ID.
1309
+ sid_to_token: dict[str, str] = {}
1310
+
1305
1311
  def __init__(self, namespace: str, app: App):
1306
1312
  """Initialize the event namespace.
1307
1313
 
@@ -1327,7 +1333,9 @@ class EventNamespace(AsyncNamespace):
1327
1333
  Args:
1328
1334
  sid: The Socket.IO session id.
1329
1335
  """
1330
- pass
1336
+ disconnect_token = self.sid_to_token.pop(sid, None)
1337
+ if disconnect_token:
1338
+ self.token_to_sid.pop(disconnect_token, None)
1331
1339
 
1332
1340
  async def emit_update(self, update: StateUpdate, sid: str) -> None:
1333
1341
  """Emit an update to the client.
@@ -1351,6 +1359,9 @@ class EventNamespace(AsyncNamespace):
1351
1359
  # Get the event.
1352
1360
  event = Event.parse_raw(data)
1353
1361
 
1362
+ self.token_to_sid[event.token] = sid
1363
+ self.sid_to_token[sid] = event.token
1364
+
1354
1365
  # Get the event environment.
1355
1366
  assert self.app.sio is not None
1356
1367
  environ = self.app.sio.get_environ(sid, self.namespace)
@@ -1,21 +1,35 @@
1
1
  """Import all the components."""
2
2
  from __future__ import annotations
3
3
 
4
- from . import lucide
5
- from .base import Fragment, Script, fragment, script
6
- from .component import Component
7
- from .component import NoSSRComponent as NoSSRComponent
8
- from .core import *
9
- from .datadisplay import *
10
- from .el import img as image
11
- from .gridjs import *
12
- from .markdown import *
13
- from .moment import *
14
- from .next import NextLink, next_link
15
- from .plotly import *
16
- from .radix import *
17
- from .react_player import *
18
- from .sonner import *
19
- from .suneditor import *
4
+ from reflex.utils import lazy_loader
20
5
 
21
- icon = lucide.icon
6
+ _SUBMODULES: set[str] = {
7
+ "lucide",
8
+ "core",
9
+ "datadisplay",
10
+ "gridjs",
11
+ "markdown",
12
+ "moment",
13
+ "plotly",
14
+ "radix",
15
+ "react_player",
16
+ "sonner",
17
+ "suneditor",
18
+ "chakra",
19
+ "el",
20
+ "base",
21
+ "recharts",
22
+ }
23
+
24
+ _SUBMOD_ATTRS: dict[str, list[str]] = {
25
+ "component": [
26
+ "Component",
27
+ "NoSSRComponent",
28
+ ],
29
+ "next": ["NextLink", "next_link"],
30
+ }
31
+ __getattr__, __dir__, __all__ = lazy_loader.attach(
32
+ __name__,
33
+ submodules=_SUBMODULES,
34
+ submod_attrs=_SUBMOD_ATTRS,
35
+ )
@@ -0,0 +1,26 @@
1
+ """Stub file for reflex/components/__init__.py"""
2
+ # ------------------- DO NOT EDIT ----------------------
3
+ # This file was generated by `reflex/utils/pyi_generator.py`!
4
+ # ------------------------------------------------------
5
+
6
+ from . import base as base
7
+ from . import chakra as chakra
8
+ from . import core as core
9
+ from . import datadisplay as datadisplay
10
+ from . import el as el
11
+ from . import gridjs as gridjs
12
+ from . import lucide as lucide
13
+ from . import markdown as markdown
14
+ from . import moment as moment
15
+ from . import plotly as plotly
16
+ from . import radix as radix
17
+ from . import react_player as react_player
18
+ from . import recharts as recharts
19
+ from . import sonner as sonner
20
+ from . import suneditor as suneditor
21
+
22
+ from .component import Component as Component
23
+ from .component import NoSSRComponent as NoSSRComponent
24
+ from .next import NextLink as NextLink
25
+ from .next import next_link as next_link
26
+ from reflex.utils import lazy_loader
@@ -1,12 +1,28 @@
1
1
  """Base components."""
2
+ from __future__ import annotations
2
3
 
3
- from .body import Body
4
- from .document import DocumentHead, Html, Main, NextScript
5
- from .fragment import Fragment
6
- from .head import Head
7
- from .link import RawLink, ScriptTag
8
- from .meta import Description, Image, Meta, Title
9
- from .script import Script
4
+ from reflex.utils import lazy_loader
10
5
 
11
- fragment = Fragment.create
12
- script = Script.create
6
+ _SUBMODULES: set[str] = {"app_wrap", "bare"}
7
+
8
+ _SUBMOD_ATTRS: dict[str, list[str]] = {
9
+ "body": ["Body"],
10
+ "document": ["DocumentHead", "Html", "Main", "NextScript"],
11
+ "fragment": [
12
+ "Fragment",
13
+ "fragment",
14
+ ],
15
+ "head": [
16
+ "head",
17
+ "Head",
18
+ ],
19
+ "link": ["RawLink", "ScriptTag"],
20
+ "meta": ["Description", "Image", "Meta", "Title"],
21
+ "script": ["Script", "script"],
22
+ }
23
+
24
+ __getattr__, __dir__, __all__ = lazy_loader.attach(
25
+ __name__,
26
+ submodules=_SUBMODULES,
27
+ submod_attrs=_SUBMOD_ATTRS,
28
+ )
@@ -0,0 +1,26 @@
1
+ """Stub file for reflex/components/base/__init__.py"""
2
+ # ------------------- DO NOT EDIT ----------------------
3
+ # This file was generated by `reflex/utils/pyi_generator.py`!
4
+ # ------------------------------------------------------
5
+
6
+ from . import app_wrap as app_wrap
7
+ from . import bare as bare
8
+
9
+ from .body import Body as Body
10
+ from .document import DocumentHead as DocumentHead
11
+ from .document import Html as Html
12
+ from .document import Main as Main
13
+ from .document import NextScript as NextScript
14
+ from .fragment import Fragment as Fragment
15
+ from .fragment import fragment as fragment
16
+ from .head import head as head
17
+ from .head import Head as Head
18
+ from .link import RawLink as RawLink
19
+ from .link import ScriptTag as ScriptTag
20
+ from .meta import Description as Description
21
+ from .meta import Image as Image
22
+ from .meta import Meta as Meta
23
+ from .meta import Title as Title
24
+ from .script import Script as Script
25
+ from .script import script as script
26
+ from reflex.utils import lazy_loader
@@ -7,3 +7,6 @@ class Fragment(Component):
7
7
 
8
8
  library = "react"
9
9
  tag = "Fragment"
10
+
11
+
12
+ fragment = Fragment.create
@@ -84,3 +84,5 @@ class Fragment(Component):
84
84
  The component.
85
85
  """
86
86
  ...
87
+
88
+ fragment = Fragment.create
@@ -15,3 +15,6 @@ class Head(NextHeadLib, MemoizationLeaf):
15
15
  tag = "NextHead"
16
16
 
17
17
  is_default = True
18
+
19
+
20
+ head = Head.create
@@ -160,3 +160,5 @@ class Head(NextHeadLib, MemoizationLeaf):
160
160
  The memoization leaf
161
161
  """
162
162
  ...
163
+
164
+ head = Head.create
@@ -70,3 +70,6 @@ class Script(Component):
70
70
  "on_ready": lambda: [],
71
71
  "on_error": lambda: [],
72
72
  }
73
+
74
+
75
+ script = Script.create
@@ -113,3 +113,5 @@ class Script(Component):
113
113
  """
114
114
  ...
115
115
  def get_event_triggers(self) -> dict[str, Union[Var, Any]]: ...
116
+
117
+ script = Script.create