diff --git a/integration/test_form_submit.py b/integration/test_form_submit.py
index 8f7792eff..655630478 100644
--- a/integration/test_form_submit.py
+++ b/integration/test_form_submit.py
@@ -43,8 +43,8 @@ def FormSubmit():
rx.switch(id="bool_input4"),
rx.slider(id="slider_input", default_value=[50], width="100%"),
rx.chakra.range_slider(id="range_input"),
- rx.radio_group(["option1", "option2"], id="radio_input"),
- rx.radio_group(FormState.var_options, id="radio_input_var"),
+ rx.radio(["option1", "option2"], id="radio_input"),
+ rx.radio(FormState.var_options, id="radio_input_var"),
rx.chakra.select(["option1", "option2"], id="select_input"),
rx.chakra.select(FormState.var_options, id="select_input_var"),
rx.text_area(id="text_area_input"),
@@ -96,7 +96,7 @@ def FormSubmitName():
rx.switch(name="bool_input4"),
rx.slider(name="slider_input", default_value=[50], width="100%"),
rx.chakra.range_slider(name="range_input"),
- rx.radio_group(FormState.options, name="radio_input"),
+ rx.radio(FormState.options, name="radio_input"),
rx.select(
FormState.options,
name="select_input",
diff --git a/reflex/__init__.py b/reflex/__init__.py
index 956576ccf..62943d8b5 100644
--- a/reflex/__init__.py
+++ b/reflex/__init__.py
@@ -58,33 +58,27 @@ _ALL_COMPONENTS = [
"container",
"context_menu",
"dialog",
+ "divider",
"drawer",
- "dropdown_menu",
- # "bold" (em)
"flex",
"form",
"grid",
"heading",
"hover_card",
"hstack",
- # "icon" (lucide)
"icon_button",
"inset",
"input",
- "kbd",
"link",
+ "menu",
"popover",
"progress",
- "quote",
- "radio_group",
+ "radio",
"scroll_area",
"section",
"select",
- "separator",
- # "separator" (divider?),
"slider",
"spacer",
- # "strong" (bold?)
"stack",
"switch",
"table",
diff --git a/reflex/__init__.pyi b/reflex/__init__.pyi
index 8f66aeb85..58c5cf040 100644
--- a/reflex/__init__.pyi
+++ b/reflex/__init__.pyi
@@ -45,8 +45,8 @@ from reflex.components import code as code
from reflex.components import container as container
from reflex.components import context_menu as context_menu
from reflex.components import dialog as dialog
+from reflex.components import divider as divider
from reflex.components import drawer as drawer
-from reflex.components import dropdown_menu as dropdown_menu
from reflex.components import flex as flex
from reflex.components import form as form
from reflex.components import grid as grid
@@ -56,16 +56,14 @@ from reflex.components import hstack as hstack
from reflex.components import icon_button as icon_button
from reflex.components import inset as inset
from reflex.components import input as input
-from reflex.components import kbd as kbd
from reflex.components import link as link
+from reflex.components import menu as menu
from reflex.components import popover as popover
from reflex.components import progress as progress
-from reflex.components import quote as quote
-from reflex.components import radio_group as radio_group
+from reflex.components import radio as radio
from reflex.components import scroll_area as scroll_area
from reflex.components import section as section
from reflex.components import select as select
-from reflex.components import separator as separator
from reflex.components import slider as slider
from reflex.components import spacer as spacer
from reflex.components import stack as stack
diff --git a/reflex/components/radix/primitives/form.py b/reflex/components/radix/primitives/form.py
index 1b9c93db1..c8dde5e8d 100644
--- a/reflex/components/radix/primitives/form.py
+++ b/reflex/components/radix/primitives/form.py
@@ -9,7 +9,7 @@ from typing import Any, Dict, Iterator, Literal
from jinja2 import Environment
from reflex.components.component import Component
-from reflex.components.radix.themes.components.textfield import TextFieldInput
+from reflex.components.radix.themes.components.text_field import TextFieldInput
from reflex.components.tags.tag import Tag
from reflex.constants.base import Dirs
from reflex.constants.event import EventTriggers
diff --git a/reflex/components/radix/primitives/form.pyi b/reflex/components/radix/primitives/form.pyi
index 1b549d88f..f2ea87c1f 100644
--- a/reflex/components/radix/primitives/form.pyi
+++ b/reflex/components/radix/primitives/form.pyi
@@ -12,7 +12,7 @@ from types import SimpleNamespace
from typing import Any, Dict, Iterator, Literal
from jinja2 import Environment
from reflex.components.component import Component
-from reflex.components.radix.themes.components.textfield import TextFieldInput
+from reflex.components.radix.themes.components.text_field import TextFieldInput
from reflex.components.tags.tag import Tag
from reflex.constants.base import Dirs
from reflex.constants.event import EventTriggers
diff --git a/reflex/components/radix/themes/components/__init__.py b/reflex/components/radix/themes/components/__init__.py
index 30efe0d65..55f7e02ae 100644
--- a/reflex/components/radix/themes/components/__init__.py
+++ b/reflex/components/radix/themes/components/__init__.py
@@ -1,30 +1,33 @@
"""Radix themes components."""
-from .alertdialog import alert_dialog as alert_dialog
-from .aspectratio import aspect_ratio as aspect_ratio
+from .alert_dialog import alert_dialog as alert_dialog
+from .aspect_ratio import aspect_ratio as aspect_ratio
from .avatar import avatar as avatar
from .badge import badge as badge
from .button import button as button
from .callout import callout as callout
from .card import card as card
from .checkbox import checkbox as checkbox
-from .contextmenu import context_menu as context_menu
+from .context_menu import context_menu as context_menu
from .dialog import dialog as dialog
-from .dropdownmenu import dropdown_menu as dropdown_menu
-from .hovercard import hover_card as hover_card
-from .iconbutton import icon_button as icon_button
+from .dropdown_menu import dropdown_menu as dropdown_menu
+from .dropdown_menu import menu as menu
+from .hover_card import hover_card as hover_card
+from .icon_button import icon_button as icon_button
from .inset import inset as inset
from .popover import popover as popover
-from .radiogroup import radio_group as radio_group
-from .scrollarea import scroll_area as scroll_area
+from .radio_group import radio as radio
+from .radio_group import radio_group as radio_group
+from .scroll_area import scroll_area as scroll_area
from .select import select as select
+from .separator import divider as divider
from .separator import separator as separator
from .slider import slider as slider
from .switch import switch as switch
from .table import table as table
from .tabs import tabs as tabs
-from .textarea import text_area as text_area
-from .textfield import text_field as text_field
+from .text_area import text_area as text_area
+from .text_field import text_field as text_field
from .tooltip import tooltip as tooltip
input = text_field
@@ -40,12 +43,15 @@ __all__ = [
"checkbox",
"context_menu",
"dialog",
+ "divider",
"dropdown_menu",
"hover_card",
"icon_button",
"input",
"inset",
+ "menu",
"popover",
+ "radio",
"radio_group",
"scroll_area",
"select",
diff --git a/reflex/components/radix/themes/components/alertdialog.py b/reflex/components/radix/themes/components/alert_dialog.py
similarity index 100%
rename from reflex/components/radix/themes/components/alertdialog.py
rename to reflex/components/radix/themes/components/alert_dialog.py
diff --git a/reflex/components/radix/themes/components/alert_dialog.pyi b/reflex/components/radix/themes/components/alert_dialog.pyi
new file mode 100644
index 000000000..9ba8fa07f
--- /dev/null
+++ b/reflex/components/radix/themes/components/alert_dialog.pyi
@@ -0,0 +1,1128 @@
+"""Stub file for reflex/components/radix/themes/components/alert_dialog.py"""
+# ------------------- DO NOT EDIT ----------------------
+# This file was generated by `scripts/pyi_generator.py`!
+# ------------------------------------------------------
+
+from typing import Any, Dict, Literal, Optional, Union, overload
+from reflex.vars import Var, BaseVar, ComputedVar
+from reflex.event import EventChain, EventHandler, EventSpec
+from reflex.style import Style
+from types import SimpleNamespace
+from typing import Any, Dict, Literal
+from reflex import el
+from reflex.constants import EventTriggers
+from reflex.vars import Var
+from ..base import RadixThemesComponent
+
+LiteralContentSize = Literal["1", "2", "3", "4"]
+
+class AlertDialogRoot(RadixThemesComponent):
+ def get_event_triggers(self) -> Dict[str, Any]: ...
+ @overload
+ @classmethod
+ def create( # type: ignore
+ cls,
+ *children,
+ color: Optional[Union[Var[str], str]] = None,
+ color_scheme: Optional[
+ Union[
+ Var[
+ Literal[
+ "tomato",
+ "red",
+ "ruby",
+ "crimson",
+ "pink",
+ "plum",
+ "purple",
+ "violet",
+ "iris",
+ "indigo",
+ "blue",
+ "cyan",
+ "teal",
+ "jade",
+ "green",
+ "grass",
+ "brown",
+ "orange",
+ "sky",
+ "mint",
+ "lime",
+ "yellow",
+ "amber",
+ "gold",
+ "bronze",
+ "gray",
+ ]
+ ],
+ Literal[
+ "tomato",
+ "red",
+ "ruby",
+ "crimson",
+ "pink",
+ "plum",
+ "purple",
+ "violet",
+ "iris",
+ "indigo",
+ "blue",
+ "cyan",
+ "teal",
+ "jade",
+ "green",
+ "grass",
+ "brown",
+ "orange",
+ "sky",
+ "mint",
+ "lime",
+ "yellow",
+ "amber",
+ "gold",
+ "bronze",
+ "gray",
+ ],
+ ]
+ ] = None,
+ open: Optional[Union[Var[bool], bool]] = None,
+ style: Optional[Style] = None,
+ key: Optional[Any] = None,
+ id: Optional[Any] = None,
+ class_name: Optional[Any] = None,
+ autofocus: Optional[bool] = None,
+ _rename_props: Optional[Dict[str, str]] = None,
+ custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
+ on_blur: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_click: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_context_menu: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_double_click: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_focus: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_mount: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_mouse_down: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_mouse_enter: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_mouse_leave: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_mouse_move: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_mouse_out: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_mouse_over: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_mouse_up: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_open_change: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_scroll: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_unmount: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ **props
+ ) -> "AlertDialogRoot":
+ """Create a new component instance.
+
+ Will prepend "RadixThemes" to the component tag to avoid conflicts with
+ other UI libraries for common names, like Text and Button.
+
+ Args:
+ *children: Child components.
+ color: map to CSS default color property.
+ color_scheme: map to radix color property.
+ open: The controlled open state of the dialog.
+ style: The style of the component.
+ key: A unique key for the component.
+ id: The id for the component.
+ class_name: The class name for the component.
+ autofocus: Whether the component should take the focus once the page is loaded
+ _rename_props: props to change the name of
+ custom_attrs: custom attribute
+ **props: Component properties.
+
+ Returns:
+ A new component instance.
+ """
+ ...
+
+class AlertDialogTrigger(RadixThemesComponent):
+ @overload
+ @classmethod
+ def create( # type: ignore
+ cls,
+ *children,
+ color: Optional[Union[Var[str], str]] = None,
+ color_scheme: Optional[
+ Union[
+ Var[
+ Literal[
+ "tomato",
+ "red",
+ "ruby",
+ "crimson",
+ "pink",
+ "plum",
+ "purple",
+ "violet",
+ "iris",
+ "indigo",
+ "blue",
+ "cyan",
+ "teal",
+ "jade",
+ "green",
+ "grass",
+ "brown",
+ "orange",
+ "sky",
+ "mint",
+ "lime",
+ "yellow",
+ "amber",
+ "gold",
+ "bronze",
+ "gray",
+ ]
+ ],
+ Literal[
+ "tomato",
+ "red",
+ "ruby",
+ "crimson",
+ "pink",
+ "plum",
+ "purple",
+ "violet",
+ "iris",
+ "indigo",
+ "blue",
+ "cyan",
+ "teal",
+ "jade",
+ "green",
+ "grass",
+ "brown",
+ "orange",
+ "sky",
+ "mint",
+ "lime",
+ "yellow",
+ "amber",
+ "gold",
+ "bronze",
+ "gray",
+ ],
+ ]
+ ] = None,
+ style: Optional[Style] = None,
+ key: Optional[Any] = None,
+ id: Optional[Any] = None,
+ class_name: Optional[Any] = None,
+ autofocus: Optional[bool] = None,
+ _rename_props: Optional[Dict[str, str]] = None,
+ custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
+ on_blur: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_click: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_context_menu: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_double_click: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_focus: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_mount: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_mouse_down: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_mouse_enter: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_mouse_leave: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_mouse_move: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_mouse_out: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_mouse_over: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_mouse_up: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_scroll: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_unmount: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ **props
+ ) -> "AlertDialogTrigger":
+ """Create a new component instance.
+
+ Will prepend "RadixThemes" to the component tag to avoid conflicts with
+ other UI libraries for common names, like Text and Button.
+
+ Args:
+ *children: Child components.
+ color: map to CSS default color property.
+ color_scheme: map to radix color property.
+ style: The style of the component.
+ key: A unique key for the component.
+ id: The id for the component.
+ class_name: The class name for the component.
+ autofocus: Whether the component should take the focus once the page is loaded
+ _rename_props: props to change the name of
+ custom_attrs: custom attribute
+ **props: Component properties.
+
+ Returns:
+ A new component instance.
+ """
+ ...
+
+class AlertDialogContent(el.Div, RadixThemesComponent):
+ def get_event_triggers(self) -> Dict[str, Any]: ...
+ @overload
+ @classmethod
+ def create( # type: ignore
+ cls,
+ *children,
+ color: Optional[Union[Var[str], str]] = None,
+ color_scheme: Optional[
+ Union[
+ Var[
+ Literal[
+ "tomato",
+ "red",
+ "ruby",
+ "crimson",
+ "pink",
+ "plum",
+ "purple",
+ "violet",
+ "iris",
+ "indigo",
+ "blue",
+ "cyan",
+ "teal",
+ "jade",
+ "green",
+ "grass",
+ "brown",
+ "orange",
+ "sky",
+ "mint",
+ "lime",
+ "yellow",
+ "amber",
+ "gold",
+ "bronze",
+ "gray",
+ ]
+ ],
+ Literal[
+ "tomato",
+ "red",
+ "ruby",
+ "crimson",
+ "pink",
+ "plum",
+ "purple",
+ "violet",
+ "iris",
+ "indigo",
+ "blue",
+ "cyan",
+ "teal",
+ "jade",
+ "green",
+ "grass",
+ "brown",
+ "orange",
+ "sky",
+ "mint",
+ "lime",
+ "yellow",
+ "amber",
+ "gold",
+ "bronze",
+ "gray",
+ ],
+ ]
+ ] = None,
+ size: Optional[
+ Union[Var[Literal["1", "2", "3", "4"]], Literal["1", "2", "3", "4"]]
+ ] = None,
+ force_mount: Optional[Union[Var[bool], bool]] = None,
+ access_key: Optional[
+ Union[Var[Union[str, int, bool]], Union[str, int, bool]]
+ ] = None,
+ auto_capitalize: Optional[
+ Union[Var[Union[str, int, bool]], Union[str, int, bool]]
+ ] = None,
+ content_editable: Optional[
+ Union[Var[Union[str, int, bool]], Union[str, int, bool]]
+ ] = None,
+ context_menu: Optional[
+ Union[Var[Union[str, int, bool]], Union[str, int, bool]]
+ ] = None,
+ dir: Optional[Union[Var[Union[str, int, bool]], Union[str, int, bool]]] = None,
+ draggable: Optional[
+ Union[Var[Union[str, int, bool]], Union[str, int, bool]]
+ ] = None,
+ enter_key_hint: Optional[
+ Union[Var[Union[str, int, bool]], Union[str, int, bool]]
+ ] = None,
+ hidden: Optional[
+ Union[Var[Union[str, int, bool]], Union[str, int, bool]]
+ ] = None,
+ input_mode: Optional[
+ Union[Var[Union[str, int, bool]], Union[str, int, bool]]
+ ] = None,
+ item_prop: Optional[
+ Union[Var[Union[str, int, bool]], Union[str, int, bool]]
+ ] = None,
+ lang: Optional[Union[Var[Union[str, int, bool]], Union[str, int, bool]]] = None,
+ role: Optional[Union[Var[Union[str, int, bool]], Union[str, int, bool]]] = None,
+ slot: Optional[Union[Var[Union[str, int, bool]], Union[str, int, bool]]] = None,
+ spell_check: Optional[
+ Union[Var[Union[str, int, bool]], Union[str, int, bool]]
+ ] = None,
+ tab_index: Optional[
+ Union[Var[Union[str, int, bool]], Union[str, int, bool]]
+ ] = None,
+ title: Optional[
+ Union[Var[Union[str, int, bool]], Union[str, int, bool]]
+ ] = None,
+ style: Optional[Style] = None,
+ key: Optional[Any] = None,
+ id: Optional[Any] = None,
+ class_name: Optional[Any] = None,
+ autofocus: Optional[bool] = None,
+ _rename_props: Optional[Dict[str, str]] = None,
+ custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
+ on_blur: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_click: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_close_auto_focus: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_context_menu: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_double_click: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_escape_key_down: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_focus: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_mount: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_mouse_down: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_mouse_enter: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_mouse_leave: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_mouse_move: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_mouse_out: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_mouse_over: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_mouse_up: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_open_auto_focus: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_scroll: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ on_unmount: Optional[
+ Union[EventHandler, EventSpec, list, function, BaseVar]
+ ] = None,
+ **props
+ ) -> "AlertDialogContent":
+ """Create a new component instance.
+
+ Will prepend "RadixThemes" to the component tag to avoid conflicts with
+ other UI libraries for common names, like Text and Button.
+
+ Args:
+ *children: Child components.
+ color: map to CSS default color property.
+ color_scheme: map to radix color property.
+ size: The size of the content.
+ force_mount: Whether to force mount the content on open.
+ access_key: Provides a hint for generating a keyboard shortcut for the current element.
+ auto_capitalize: Controls whether and how text input is automatically capitalized as it is entered/edited by the user.
+ content_editable: Indicates whether the element's content is editable.
+ context_menu: Defines the ID of a