reflex 0.7.10a1__py3-none-any.whl → 0.7.11a1__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 (53) hide show
  1. reflex/.templates/jinja/web/pages/_app.js.jinja2 +10 -10
  2. reflex/.templates/jinja/web/pages/_document.js.jinja2 +1 -1
  3. reflex/.templates/jinja/web/pages/index.js.jinja2 +1 -1
  4. reflex/.templates/jinja/web/pages/stateful_component.js.jinja2 +1 -1
  5. reflex/.templates/jinja/web/pages/utils.js.jinja2 +35 -72
  6. reflex/.templates/jinja/web/utils/context.js.jinja2 +6 -18
  7. reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js +7 -7
  8. reflex/.templates/web/components/shiki/code.js +5 -4
  9. reflex/compiler/compiler.py +20 -3
  10. reflex/components/base/bare.py +8 -5
  11. reflex/components/base/body.py +2 -4
  12. reflex/components/base/body.pyi +197 -3
  13. reflex/components/base/error_boundary.py +1 -1
  14. reflex/components/base/link.py +3 -3
  15. reflex/components/base/link.pyi +392 -4
  16. reflex/components/base/meta.py +5 -9
  17. reflex/components/base/meta.pyi +608 -28
  18. reflex/components/component.py +13 -27
  19. reflex/components/core/colors.py +35 -4
  20. reflex/components/core/cond.py +2 -2
  21. reflex/components/core/upload.py +2 -2
  22. reflex/components/datadisplay/shiki_code_block.py +2 -2
  23. reflex/components/dynamic.py +5 -2
  24. reflex/components/el/element.py +4 -0
  25. reflex/components/el/elements/forms.py +3 -1
  26. reflex/components/el/elements/inline.py +3 -1
  27. reflex/components/el/elements/metadata.py +1 -1
  28. reflex/components/el/elements/metadata.pyi +1 -0
  29. reflex/components/el/elements/typography.py +3 -1
  30. reflex/components/lucide/icon.py +47 -3
  31. reflex/components/lucide/icon.pyi +45 -0
  32. reflex/components/markdown/markdown.py +6 -7
  33. reflex/components/markdown/markdown.pyi +2 -2
  34. reflex/components/moment/moment.py +1 -1
  35. reflex/components/next/video.py +8 -1
  36. reflex/components/plotly/plotly.py +1 -1
  37. reflex/components/radix/primitives/drawer.py +1 -1
  38. reflex/components/radix/themes/layout/list.py +3 -2
  39. reflex/components/radix/themes/layout/list.pyi +391 -2
  40. reflex/components/suneditor/editor.py +1 -1
  41. reflex/config.py +3 -0
  42. reflex/constants/colors.py +23 -6
  43. reflex/constants/installer.py +2 -2
  44. reflex/state.py +30 -7
  45. reflex/utils/build.py +1 -2
  46. reflex/utils/format.py +16 -6
  47. reflex/utils/pyi_generator.py +1 -0
  48. reflex/utils/types.py +24 -8
  49. {reflex-0.7.10a1.dist-info → reflex-0.7.11a1.dist-info}/METADATA +1 -1
  50. {reflex-0.7.10a1.dist-info → reflex-0.7.11a1.dist-info}/RECORD +53 -53
  51. {reflex-0.7.10a1.dist-info → reflex-0.7.11a1.dist-info}/WHEEL +0 -0
  52. {reflex-0.7.10a1.dist-info → reflex-0.7.11a1.dist-info}/entry_points.txt +0 -0
  53. {reflex-0.7.10a1.dist-info → reflex-0.7.11a1.dist-info}/licenses/LICENSE +0 -0
@@ -22,7 +22,7 @@ function AppWrap({children}) {
22
22
  {{ renderHooks(hooks) }}
23
23
 
24
24
  return (
25
- {{utils.render(render, indent_width=0)}}
25
+ {{utils.render(render)}}
26
26
  )
27
27
  }
28
28
 
@@ -37,15 +37,15 @@ export default function MyApp({ Component, pageProps }) {
37
37
  window["__reflex"] = windowImports;
38
38
  }, []);
39
39
  return (
40
- <ThemeProvider defaultTheme={ defaultColorMode } attribute="class">
41
- <StateProvider>
42
- <EventLoopProvider>
43
- <AppWrap>
44
- <Component {...pageProps} />
45
- </AppWrap>
46
- </EventLoopProvider>
47
- </StateProvider>
48
- </ThemeProvider>
40
+ jsx(ThemeProvider, {defaultTheme:defaultColorMode,attribute:"class"},
41
+ jsx(StateProvider, {},
42
+ jsx(EventLoopProvider, {},
43
+ jsx(AppWrap, {},
44
+ jsx(Component, pageProps)
45
+ )
46
+ )
47
+ )
48
+ )
49
49
  );
50
50
  }
51
51
 
@@ -3,7 +3,7 @@
3
3
  {% block export %}
4
4
  export default function Document() {
5
5
  return (
6
- {{utils.render(document, indent_width=0)}}
6
+ {{utils.render(document)}}
7
7
  )
8
8
  }
9
9
  {% endblock %}
@@ -12,7 +12,7 @@ export default function Component() {
12
12
  {{ renderHooks(hooks)}}
13
13
 
14
14
  return (
15
- {{utils.render(render, indent_width=0)}}
15
+ {{utils.render(render)}}
16
16
  )
17
17
  }
18
18
  {% endblock %}
@@ -6,6 +6,6 @@ export function {{tag_name}} () {
6
6
  {{ renderHooksWithMemo(all_hooks, memo_trigger_hooks) }}
7
7
 
8
8
  return (
9
- {{utils.render(component.render(), indent_width=0)}}
9
+ {{utils.render(component.render())}}
10
10
  )
11
11
  }
@@ -1,46 +1,37 @@
1
1
  {# Rendering components recursively. #}
2
2
  {# Args: #}
3
3
  {# component: component dictionary #}
4
- {# indent_width: indent width #}
5
- {% macro render(component, indent_width=0) %}
6
- {% filter indent(width=indent_width) %}
7
- {%- if component is not mapping %}
8
- {{- component }}
9
- {%- elif "iterable" in component %}
10
- {{- render_iterable_tag(component) }}
11
- {%- elif component.name == "match"%}
12
- {{- render_match_tag(component) }}
13
- {%- elif "cond" in component %}
14
- {{- render_condition_tag(component) }}
15
- {%- elif component.children|length %}
16
- {{- render_tag(component) }}
17
- {%- else %}
18
- {{- render_self_close_tag(component) }}
19
- {%- endif %}
20
- {% endfilter %}
4
+ {% macro render(component) %}
5
+ {%- if component is not mapping %}{{ component }}
6
+ {%- elif "iterable" in component %}{{ render_iterable_tag(component) }}
7
+ {%- elif component.name == "match"%}{{ render_match_tag(component) }}
8
+ {%- elif "cond" in component %}{{ render_condition_tag(component) }}
9
+ {%- elif component.children|length %}{{ render_tag(component) }}
10
+ {%- else %}{{ render_self_close_tag(component) }}
11
+ {%- endif %}
21
12
  {% endmacro %}
22
13
 
23
14
  {# Rendering self close tag. #}
24
15
  {# Args: #}
25
16
  {# component: component dictionary #}
26
17
  {% macro render_self_close_tag(component) %}
27
- {%- if component.name|length %}
28
- <{{ component.name }} {{- render_props(component.props) }}{% if component.autofocus %} ref={focusRef} {% endif %}/>
29
- {%- else %}
30
- {{- component.contents }}
31
- {%- endif %}
18
+ {% if component.name|length %}
19
+ jsx({{ component.name }},{{ render_props(component.props) }},{{ component.contents }})
20
+ {% elif component.contents|length -%}{{ component.contents }}
21
+ {% else %}""
22
+ {% endif %}
32
23
  {% endmacro %}
33
24
 
34
25
  {# Rendering close tag with args and props. #}
35
26
  {# Args: #}
36
27
  {# component: component dictionary #}
37
28
  {% macro render_tag(component) %}
38
- <{{component.name}} {{- render_props(component.props) }}>
39
- {{ component.contents }}
40
- {% for child in component.children %}
41
- {{ render(child) }}
42
- {% endfor %}
43
- </{{component.name}}>
29
+ jsx(
30
+ {% if component.name|length %}{{ component.name }}{% else %}Fragment{% endif %},
31
+ {{ render_props(component.props) }},
32
+ {% if component.contents|length %}{{ component.contents }},{% endif %}
33
+ {% for child in component.children %}{% if child is mapping or child|length %}{{ render(child) }},{% endif %}{% endfor %}
34
+ )
44
35
  {%- endmacro %}
45
36
 
46
37
 
@@ -48,11 +39,7 @@
48
39
  {# Args: #}
49
40
  {# component: component dictionary #}
50
41
  {% macro render_condition_tag(component) %}
51
- { {{- component.cond_state }} ? (
52
- {{ render(component.true_value) }}
53
- ) : (
54
- {{ render(component.false_value) }}
55
- )}
42
+ ({{ component.cond_state }} ? ({{ render(component.true_value) }}) : ({{ render(component.false_value) }}))
56
43
  {%- endmacro %}
57
44
 
58
45
 
@@ -60,57 +47,33 @@
60
47
  {# Args: #}
61
48
  {# component: component dictionary #}
62
49
  {% macro render_iterable_tag(component) %}
63
- <>{ {{ component.iterable_state }}.map(({{ component.arg_name }}, {{ component.arg_index }}) => (
64
- {% for child in component.children %}
65
- {{ render(child) }}
66
- {% endfor %}
67
- ))}</>
50
+ {{ component.iterable_state }}.map(({{ component.arg_name }},{{ component.arg_index }})=>({% for child in component.children %}{{ render(child) }}{% endfor %}))
68
51
  {%- endmacro %}
69
52
 
70
53
 
71
54
  {# Rendering props of a component. #}
72
55
  {# Args: #}
73
56
  {# component: component dictionary #}
74
- {% macro render_props(props) %}
75
- {% if props|length %} {{ props|join(" ") }}{% endif %}
76
- {% endmacro %}
57
+ {% macro render_props(props) %}{{ "{" }}{% if props|length %}{{ props|join(",") }}{% endif %}{{ "}" }}{% endmacro %}
77
58
 
78
59
  {# Rendering Match component. #}
79
60
  {# Args: #}
80
61
  {# component: component dictionary #}
81
62
  {% macro render_match_tag(component) %}
82
- {
83
- (() => {
84
- switch (JSON.stringify({{ component.cond._js_expr }})) {
85
- {% for case in component.match_cases %}
86
- {% for condition in case[:-1] %}
87
- case JSON.stringify({{ condition._js_expr }}):
88
- {% endfor %}
89
- return {{ render(case[-1]) }};
90
- break;
91
- {% endfor %}
92
- default:
93
- return {{ render(component.default) }};
94
- break;
95
- }
96
- })()
97
- }
98
- {%- endmacro %}
99
-
100
-
101
- {# Rendering content with args. #}
102
- {# Args: #}
103
- {# component: component dictionary #}
104
- {% macro render_arg_content(component) %}
105
- {% filter indent(width=2) %}
106
- {# no string below for a line break #}
107
-
108
- {({ {{component.args|join(", ")}} }) => (
109
- {% for child in component.children %}
110
- {{ render(child) }}
63
+ (() => {
64
+ switch (JSON.stringify({{ component.cond._js_expr }})) {
65
+ {% for case in component.match_cases %}
66
+ {% for condition in case[:-1] %}
67
+ case JSON.stringify({{ condition._js_expr }}):
68
+ {% endfor %}
69
+ return {{ render(case[-1]) }};
70
+ break;
111
71
  {% endfor %}
112
- )}
113
- {% endfilter %}
72
+ default:
73
+ return {{ render(component.default) }};
74
+ break;
75
+ }
76
+ })()
114
77
  {% endmacro %}
115
78
 
116
79
 
@@ -1,4 +1,4 @@
1
- import { createContext, useContext, useMemo, useReducer, useState } from "react"
1
+ import { createContext, useContext, useMemo, useReducer, useState, createElement } from "react"
2
2
  import { applyDelta, Event, hydrateClientStorage, useEventLoop, refs } from "$/utils/state.js"
3
3
 
4
4
  {% if initial_state %}
@@ -77,11 +77,7 @@ export function UploadFilesProvider({ children }) {
77
77
  delete newFilesById[id]
78
78
  return newFilesById
79
79
  })
80
- return (
81
- <UploadFilesContext value={[filesById, setFilesById]}>
82
- {children}
83
- </UploadFilesContext>
84
- )
80
+ return createElement(UploadFilesContext, {value:[filesById, setFilesById]}, children);
85
81
  }
86
82
 
87
83
  export function EventLoopProvider({ children }) {
@@ -91,11 +87,7 @@ export function EventLoopProvider({ children }) {
91
87
  initialEvents,
92
88
  clientStorage,
93
89
  )
94
- return (
95
- <EventLoopContext value={[addEvents, connectErrors]}>
96
- {children}
97
- </EventLoopContext>
98
- )
90
+ return createElement(EventLoopContext, {value:[addEvents, connectErrors]}, children);
99
91
  }
100
92
 
101
93
  export function StateProvider({ children }) {
@@ -112,13 +104,9 @@ export function StateProvider({ children }) {
112
104
 
113
105
  return (
114
106
  {% for state_name in initial_state %}
115
- <StateContexts.{{state_name|var_name}} value={ {{state_name|var_name}} }>
116
- {% endfor %}
117
- <DispatchContext value={dispatchers}>
118
- {children}
119
- </DispatchContext>
120
- {% for state_name in initial_state|reverse %}
121
- </StateContexts.{{state_name|var_name}}>
107
+ createElement(StateContexts.{{state_name|var_name}},{value: {{state_name|var_name}}},
122
108
  {% endfor %}
109
+ createElement(DispatchContext.Provider, {value: dispatchers}, children),
110
+ {% for state_name in initial_state|reverse %}){% endfor %}
123
111
  )
124
112
  }
@@ -1,5 +1,5 @@
1
1
  import { useTheme } from "next-themes";
2
- import { useRef, useEffect, useState } from "react";
2
+ import { useRef, useEffect, useState, createElement } from "react";
3
3
  import {
4
4
  ColorModeContext,
5
5
  defaultColorMode,
@@ -50,11 +50,11 @@ export default function RadixThemesColorModeProvider({ children }) {
50
50
  }
51
51
  setTheme(mode);
52
52
  };
53
- return (
54
- <ColorModeContext
55
- value={{ rawColorMode, resolvedColorMode, toggleColorMode, setColorMode }}
56
- >
57
- {children}
58
- </ColorModeContext>
53
+ return createElement(
54
+ ColorModeContext,
55
+ {
56
+ value: { rawColorMode, resolvedColorMode, toggleColorMode, setColorMode },
57
+ },
58
+ children,
59
59
  );
60
60
  }
@@ -1,4 +1,4 @@
1
- import { useEffect, useState } from "react";
1
+ import { useEffect, useState, createElement } from "react";
2
2
  import { codeToHtml } from "shiki";
3
3
 
4
4
  /**
@@ -33,7 +33,8 @@ export function Code({
33
33
  }
34
34
  fetchCode();
35
35
  }, [code, language, theme, transformers, decorations]);
36
- return (
37
- <div dangerouslySetInnerHTML={{ __html: codeResult }} {...divProps}></div>
38
- );
36
+ return createElement("div", {
37
+ dangerouslySetInnerHTML: { __html: codeResult },
38
+ ...divProps,
39
+ });
39
40
  }
@@ -30,6 +30,13 @@ from reflex.utils.prerequisites import get_web_dir
30
30
  from reflex.vars.base import LiteralVar, Var
31
31
 
32
32
 
33
+ def _apply_common_imports(
34
+ imports: dict[str, list[ImportVar]],
35
+ ):
36
+ imports.setdefault("@emotion/react", []).append(ImportVar("jsx"))
37
+ imports.setdefault("react", []).append(ImportVar("Fragment"))
38
+
39
+
33
40
  def _compile_document_root(root: Component) -> str:
34
41
  """Compile the document root.
35
42
 
@@ -39,8 +46,10 @@ def _compile_document_root(root: Component) -> str:
39
46
  Returns:
40
47
  The compiled document root.
41
48
  """
49
+ document_root_imports = root._get_all_imports()
50
+ _apply_common_imports(document_root_imports)
42
51
  return templates.DOCUMENT_ROOT.render(
43
- imports=utils.compile_imports(root._get_all_imports()),
52
+ imports=utils.compile_imports(document_root_imports),
44
53
  document=root.render(),
45
54
  )
46
55
 
@@ -74,8 +83,11 @@ def _compile_app(app_root: Component) -> str:
74
83
  (_normalize_library_name(name), name) for name in bundled_libraries
75
84
  ]
76
85
 
86
+ app_root_imports = app_root._get_all_imports()
87
+ _apply_common_imports(app_root_imports)
88
+
77
89
  return templates.APP_ROOT.render(
78
- imports=utils.compile_imports(app_root._get_all_imports()),
90
+ imports=utils.compile_imports(app_root_imports),
79
91
  custom_codes=app_root._get_all_custom_code(),
80
92
  hooks=app_root._get_all_hooks(),
81
93
  window_libraries=window_libraries,
@@ -143,6 +155,7 @@ def _compile_page(
143
155
  The compiled component.
144
156
  """
145
157
  imports = component._get_all_imports()
158
+ _apply_common_imports(imports)
146
159
  imports = utils.compile_imports(imports)
147
160
 
148
161
  # Compile the code to render the component.
@@ -325,7 +338,7 @@ def _compile_components(
325
338
  """
326
339
  imports = {
327
340
  "react": [ImportVar(tag="memo")],
328
- f"$/{constants.Dirs.STATE_PATH}": [ImportVar(tag="E"), ImportVar(tag="isTrue")],
341
+ f"$/{constants.Dirs.STATE_PATH}": [ImportVar(tag="isTrue")],
329
342
  }
330
343
  component_renders = []
331
344
 
@@ -335,6 +348,8 @@ def _compile_components(
335
348
  component_renders.append(component_render)
336
349
  imports = utils.merge_imports(imports, component_imports)
337
350
 
351
+ _apply_common_imports(imports)
352
+
338
353
  dynamic_imports = {
339
354
  comp_import: None
340
355
  for comp_render in component_renders
@@ -427,6 +442,8 @@ def _compile_stateful_components(
427
442
  all_imports.pop(
428
443
  f"$/{constants.Dirs.UTILS}/{constants.PageNames.STATEFUL_COMPONENTS}", None
429
444
  )
445
+ if rendered_components:
446
+ _apply_common_imports(all_imports)
430
447
 
431
448
  return templates.STATEFUL_COMPONENTS.render(
432
449
  imports=utils.compile_imports(all_imports),
@@ -169,11 +169,14 @@ class Bare(Component):
169
169
  return refs
170
170
 
171
171
  def _render(self) -> Tag:
172
- if isinstance(self.contents, Var):
173
- if isinstance(self.contents, (BooleanVar, ObjectVar)):
174
- return Tagless(contents=f"{{{self.contents.to_string()!s}}}")
175
- return Tagless(contents=f"{{{self.contents!s}}}")
176
- return Tagless(contents=str(self.contents))
172
+ contents = (
173
+ Var.create(self.contents)
174
+ if not isinstance(self.contents, Var)
175
+ else self.contents
176
+ )
177
+ if isinstance(contents, (BooleanVar, ObjectVar)):
178
+ return Tagless(contents=f"{contents.to_string()!s}")
179
+ return Tagless(contents=f"{contents!s}")
177
180
 
178
181
  def _add_style_recursive(
179
182
  self, style: ComponentStyle, theme: Component | None = None
@@ -1,9 +1,7 @@
1
1
  """Display the page body."""
2
2
 
3
- from reflex.components.component import Component
3
+ from reflex.components.el import elements
4
4
 
5
5
 
6
- class Body(Component):
6
+ class Body(elements.Body):
7
7
  """A body component."""
8
-
9
- tag = "body"
@@ -4,19 +4,197 @@
4
4
  # This file was generated by `reflex/utils/pyi_generator.py`!
5
5
  # ------------------------------------------------------
6
6
  from collections.abc import Mapping, Sequence
7
- from typing import Any, overload
7
+ from typing import Any, Literal, overload
8
8
 
9
- from reflex.components.component import Component
10
9
  from reflex.components.core.breakpoints import Breakpoints
10
+ from reflex.components.el import elements
11
11
  from reflex.event import EventType
12
12
  from reflex.vars.base import Var
13
13
 
14
- class Body(Component):
14
+ class Body(elements.Body):
15
15
  @overload
16
16
  @classmethod
17
17
  def create( # type: ignore
18
18
  cls,
19
19
  *children,
20
+ access_key: Var[str] | str | None = None,
21
+ auto_capitalize: Literal[
22
+ "characters", "none", "off", "on", "sentences", "words"
23
+ ]
24
+ | Var[Literal["characters", "none", "off", "on", "sentences", "words"]]
25
+ | None = None,
26
+ content_editable: Literal["inherit", "plaintext-only", False, True]
27
+ | Var[Literal["inherit", "plaintext-only", False, True]]
28
+ | None = None,
29
+ context_menu: Var[str] | str | None = None,
30
+ dir: Var[str] | str | None = None,
31
+ draggable: Var[bool] | bool | None = None,
32
+ enter_key_hint: Literal[
33
+ "done", "enter", "go", "next", "previous", "search", "send"
34
+ ]
35
+ | Var[Literal["done", "enter", "go", "next", "previous", "search", "send"]]
36
+ | None = None,
37
+ hidden: Var[bool] | bool | None = None,
38
+ input_mode: Literal[
39
+ "decimal", "email", "none", "numeric", "search", "tel", "text", "url"
40
+ ]
41
+ | Var[
42
+ Literal[
43
+ "decimal", "email", "none", "numeric", "search", "tel", "text", "url"
44
+ ]
45
+ ]
46
+ | None = None,
47
+ item_prop: Var[str] | str | None = None,
48
+ lang: Var[str] | str | None = None,
49
+ role: Literal[
50
+ "alert",
51
+ "alertdialog",
52
+ "application",
53
+ "article",
54
+ "banner",
55
+ "button",
56
+ "cell",
57
+ "checkbox",
58
+ "columnheader",
59
+ "combobox",
60
+ "complementary",
61
+ "contentinfo",
62
+ "definition",
63
+ "dialog",
64
+ "directory",
65
+ "document",
66
+ "feed",
67
+ "figure",
68
+ "form",
69
+ "grid",
70
+ "gridcell",
71
+ "group",
72
+ "heading",
73
+ "img",
74
+ "link",
75
+ "list",
76
+ "listbox",
77
+ "listitem",
78
+ "log",
79
+ "main",
80
+ "marquee",
81
+ "math",
82
+ "menu",
83
+ "menubar",
84
+ "menuitem",
85
+ "menuitemcheckbox",
86
+ "menuitemradio",
87
+ "navigation",
88
+ "none",
89
+ "note",
90
+ "option",
91
+ "presentation",
92
+ "progressbar",
93
+ "radio",
94
+ "radiogroup",
95
+ "region",
96
+ "row",
97
+ "rowgroup",
98
+ "rowheader",
99
+ "scrollbar",
100
+ "search",
101
+ "searchbox",
102
+ "separator",
103
+ "slider",
104
+ "spinbutton",
105
+ "status",
106
+ "switch",
107
+ "tab",
108
+ "table",
109
+ "tablist",
110
+ "tabpanel",
111
+ "term",
112
+ "textbox",
113
+ "timer",
114
+ "toolbar",
115
+ "tooltip",
116
+ "tree",
117
+ "treegrid",
118
+ "treeitem",
119
+ ]
120
+ | Var[
121
+ Literal[
122
+ "alert",
123
+ "alertdialog",
124
+ "application",
125
+ "article",
126
+ "banner",
127
+ "button",
128
+ "cell",
129
+ "checkbox",
130
+ "columnheader",
131
+ "combobox",
132
+ "complementary",
133
+ "contentinfo",
134
+ "definition",
135
+ "dialog",
136
+ "directory",
137
+ "document",
138
+ "feed",
139
+ "figure",
140
+ "form",
141
+ "grid",
142
+ "gridcell",
143
+ "group",
144
+ "heading",
145
+ "img",
146
+ "link",
147
+ "list",
148
+ "listbox",
149
+ "listitem",
150
+ "log",
151
+ "main",
152
+ "marquee",
153
+ "math",
154
+ "menu",
155
+ "menubar",
156
+ "menuitem",
157
+ "menuitemcheckbox",
158
+ "menuitemradio",
159
+ "navigation",
160
+ "none",
161
+ "note",
162
+ "option",
163
+ "presentation",
164
+ "progressbar",
165
+ "radio",
166
+ "radiogroup",
167
+ "region",
168
+ "row",
169
+ "rowgroup",
170
+ "rowheader",
171
+ "scrollbar",
172
+ "search",
173
+ "searchbox",
174
+ "separator",
175
+ "slider",
176
+ "spinbutton",
177
+ "status",
178
+ "switch",
179
+ "tab",
180
+ "table",
181
+ "tablist",
182
+ "tabpanel",
183
+ "term",
184
+ "textbox",
185
+ "timer",
186
+ "toolbar",
187
+ "tooltip",
188
+ "tree",
189
+ "treegrid",
190
+ "treeitem",
191
+ ]
192
+ ]
193
+ | None = None,
194
+ slot: Var[str] | str | None = None,
195
+ spell_check: Var[bool] | bool | None = None,
196
+ tab_index: Var[int] | int | None = None,
197
+ title: Var[str] | str | None = None,
20
198
  style: Sequence[Mapping[str, Any]]
21
199
  | Mapping[str, Any]
22
200
  | Var[Mapping[str, Any]]
@@ -48,6 +226,22 @@ class Body(Component):
48
226
 
49
227
  Args:
50
228
  *children: The children of the component.
229
+ access_key: Provides a hint for generating a keyboard shortcut for the current element.
230
+ auto_capitalize: Controls whether and how text input is automatically capitalized as it is entered/edited by the user.
231
+ content_editable: Indicates whether the element's content is editable.
232
+ context_menu: Defines the ID of a <menu> element which will serve as the element's context menu.
233
+ dir: Defines the text direction. Allowed values are ltr (Left-To-Right) or rtl (Right-To-Left)
234
+ draggable: Defines whether the element can be dragged.
235
+ enter_key_hint: Hints what media types the media element is able to play.
236
+ hidden: Defines whether the element is hidden.
237
+ input_mode: Defines the type of the element.
238
+ item_prop: Defines the name of the element for metadata purposes.
239
+ lang: Defines the language used in the element.
240
+ role: Defines the role of the element.
241
+ slot: Assigns a slot in a shadow DOM shadow tree to an element.
242
+ spell_check: Defines whether the element may be checked for spelling errors.
243
+ tab_index: Defines the position of the current element in the tabbing order.
244
+ title: Defines a tooltip for the element.
51
245
  style: The style of the component.
52
246
  key: A unique key for the component.
53
247
  id: The id for the component.
@@ -33,7 +33,7 @@ def on_error_spec(
33
33
  class ErrorBoundary(Component):
34
34
  """A React Error Boundary component that catches unhandled frontend exceptions."""
35
35
 
36
- library = "react-error-boundary"
36
+ library = "react-error-boundary@6.0.0"
37
37
  tag = "ErrorBoundary"
38
38
 
39
39
  # Fired when the boundary catches an error.
@@ -1,10 +1,10 @@
1
1
  """Display the title of the current page."""
2
2
 
3
- from reflex.components.component import Component
3
+ from reflex.components.el.elements.base import BaseHTML
4
4
  from reflex.vars.base import Var
5
5
 
6
6
 
7
- class RawLink(Component):
7
+ class RawLink(BaseHTML):
8
8
  """A component that displays the title of the current page."""
9
9
 
10
10
  tag = "link"
@@ -16,7 +16,7 @@ class RawLink(Component):
16
16
  rel: Var[str]
17
17
 
18
18
 
19
- class ScriptTag(Component):
19
+ class ScriptTag(BaseHTML):
20
20
  """A script tag with the specified type and source."""
21
21
 
22
22
  tag = "script"