Prechádzať zdrojové kódy

[REF-3568][REF-3569]Remove deprecations (#3852)

* Remove deprecations

* remove prop conversion

* fix tests

* fix slight issue

* fix darglint
Elijah Ahianyo 9 mesiacov pred
rodič
commit
e6080a7707

+ 1 - 49
reflex/components/component.py

@@ -45,7 +45,7 @@ from reflex.event import (
 )
 from reflex.ivars.base import ImmutableVar, LiteralVar
 from reflex.style import Style, format_as_emotion
-from reflex.utils import console, format, imports, types
+from reflex.utils import format, imports, types
 from reflex.utils.imports import ImportDict, ImportVar, ParsedImportDict, parse_imports
 from reflex.utils.serializers import serializer
 from reflex.vars import BaseVar, ImmutableVarData, Var, VarData
@@ -636,27 +636,6 @@ class Component(BaseComponent, ABC):
 
         return _compile_component(self)
 
-    def _apply_theme(self, theme: Optional[Component]):
-        """Apply the theme to this component.
-
-        Deprecated. Use add_style instead.
-
-        Args:
-            theme: The theme to apply.
-        """
-        pass
-
-    def apply_theme(self, theme: Optional[Component]):
-        """Apply a theme to the component and its children.
-
-        Args:
-            theme: The theme to apply.
-        """
-        self._apply_theme(theme)
-        for child in self.children:
-            if isinstance(child, Component):
-                child.apply_theme(theme)
-
     def _exclude_props(self) -> list[str]:
         """Props to exclude when adding the component props to the Tag.
 
@@ -764,22 +743,6 @@ class Component(BaseComponent, ABC):
         from reflex.components.base.fragment import Fragment
         from reflex.utils.exceptions import ComponentTypeError
 
-        # Translate deprecated props to new names.
-        new_prop_names = [
-            prop for prop in cls.get_props() if prop in ["type", "min", "max"]
-        ]
-        for prop in new_prop_names:
-            under_prop = f"{prop}_"
-            if under_prop in props:
-                console.deprecate(
-                    f"Underscore suffix for prop `{under_prop}`",
-                    reason=f"for consistency. Use `{prop}` instead.",
-                    deprecation_version="0.4.0",
-                    removal_version="0.6.0",
-                    dedupe=False,
-                )
-                props[prop] = props.pop(under_prop)
-
         # Filter out None props
         props = {key: value for key, value in props.items() if value is not None}
 
@@ -896,17 +859,6 @@ class Component(BaseComponent, ABC):
             new_style.update(component_style)
             style_vars.append(component_style._var_data)
 
-        # 3. User-defined style from `Component.style`.
-        # Apply theme for retro-compatibility with deprecated _apply_theme API
-        if type(self)._apply_theme != Component._apply_theme:
-            console.deprecate(
-                f"{self.__class__.__name__}._apply_theme",
-                reason="use add_style instead",
-                deprecation_version="0.5.0",
-                removal_version="0.6.0",
-            )
-            self._apply_theme(theme)
-
         # 4. style dict and css props passed to the component instance.
         new_style.update(self.style)
         style_vars.append(self.style._var_data)

+ 0 - 10
reflex/components/core/foreach.py

@@ -11,7 +11,6 @@ from reflex.components.tags import IterTag
 from reflex.constants import MemoizationMode
 from reflex.ivars.base import ImmutableVar
 from reflex.state import ComponentState
-from reflex.utils import console
 from reflex.vars import Var
 
 
@@ -39,14 +38,12 @@ class Foreach(Component):
         cls,
         iterable: Var[Iterable] | Iterable,
         render_fn: Callable,
-        **props,
     ) -> Foreach:
         """Create a foreach component.
 
         Args:
             iterable: The iterable to create components from.
             render_fn: A function from the render args to the component.
-            **props: The attributes to pass to each child component (deprecated).
 
         Returns:
             The foreach component.
@@ -55,13 +52,6 @@ class Foreach(Component):
             ForeachVarError: If the iterable is of type Any.
             TypeError: If the render function is a ComponentState.
         """
-        if props:
-            console.deprecate(
-                feature_name="Passing props to rx.foreach",
-                reason="it does not have the intended effect and may be confusing",
-                deprecation_version="0.5.0",
-                removal_version="0.6.0",
-            )
         iterable = ImmutableVar.create_safe(iterable)
         if iterable._var_type == Any:
             raise ForeachVarError(

+ 0 - 1
reflex/components/el/__init__.py

@@ -10,7 +10,6 @@ _SUBMODULES: set[str] = {"elements"}
 _SUBMOD_ATTRS: dict[str, list[str]] = {
     f"elements.{k}": v for k, v in elements._MAPPING.items()
 }
-_PYRIGHT_IGNORE_IMPORTS = elements._PYRIGHT_IGNORE_IMPORTS
 
 __getattr__, __dir__, __all__ = lazy_loader.attach(
     __name__,

+ 0 - 11
reflex/components/el/__init__.pyi

@@ -3,7 +3,6 @@
 # This file was generated by `reflex/utils/pyi_generator.py`!
 # ------------------------------------------------------
 
-from . import elements
 from .elements.forms import Button as Button
 from .elements.forms import Fieldset as Fieldset
 from .elements.forms import Form as Form
@@ -88,36 +87,28 @@ from .elements.inline import u as u
 from .elements.inline import wbr as wbr
 from .elements.media import Area as Area
 from .elements.media import Audio as Audio
-from .elements.media import Defs as Defs
 from .elements.media import Embed as Embed
 from .elements.media import Iframe as Iframe
 from .elements.media import Img as Img
-from .elements.media import LinearGradient as LinearGradient
 from .elements.media import Map as Map
 from .elements.media import Object as Object
-from .elements.media import Path as Path
 from .elements.media import Picture as Picture
 from .elements.media import Portal as Portal
 from .elements.media import Source as Source
-from .elements.media import Stop as Stop
 from .elements.media import Svg as Svg
 from .elements.media import Track as Track
 from .elements.media import Video as Video
 from .elements.media import area as area
 from .elements.media import audio as audio
-from .elements.media import defs as defs  # type: ignore
 from .elements.media import embed as embed
 from .elements.media import iframe as iframe
 from .elements.media import image as image
 from .elements.media import img as img
-from .elements.media import lineargradient as lineargradient  # type: ignore
 from .elements.media import map as map
 from .elements.media import object as object
-from .elements.media import path as path  # type: ignore
 from .elements.media import picture as picture
 from .elements.media import portal as portal
 from .elements.media import source as source
-from .elements.media import stop as stop  # type: ignore
 from .elements.media import svg as svg
 from .elements.media import track as track
 from .elements.media import video as video
@@ -231,5 +222,3 @@ from .elements.typography import ol as ol
 from .elements.typography import p as p
 from .elements.typography import pre as pre
 from .elements.typography import ul as ul
-
-_PYRIGHT_IGNORE_IMPORTS = elements._PYRIGHT_IGNORE_IMPORTS

+ 1 - 7
reflex/components/el/elements/__init__.py

@@ -65,11 +65,6 @@ _MAPPING = {
         "portal",
         "source",
         "svg",
-        "defs",
-        "lineargradient",
-        "LinearGradient",
-        "stop",
-        "path",
     ],
     "metadata": [
         "base",
@@ -130,13 +125,12 @@ _MAPPING = {
 }
 
 
-EXCLUDE = ["del_", "Del", "image", "lineargradient", "LinearGradient"]
+EXCLUDE = ["del_", "Del", "image"]
 for _, v in _MAPPING.items():
     v.extend([mod.capitalize() for mod in v if mod not in EXCLUDE])
 
 _SUBMOD_ATTRS: dict[str, list[str]] = _MAPPING
 
-_PYRIGHT_IGNORE_IMPORTS = ["stop", "lineargradient", "path", "defs"]
 __getattr__, __dir__, __all__ = lazy_loader.attach(
     __name__,
     submod_attrs=_SUBMOD_ATTRS,

+ 1 - 15
reflex/components/el/elements/__init__.pyi

@@ -87,36 +87,28 @@ from .inline import u as u
 from .inline import wbr as wbr
 from .media import Area as Area
 from .media import Audio as Audio
-from .media import Defs as Defs
 from .media import Embed as Embed
 from .media import Iframe as Iframe
 from .media import Img as Img
-from .media import LinearGradient as LinearGradient
 from .media import Map as Map
 from .media import Object as Object
-from .media import Path as Path
 from .media import Picture as Picture
 from .media import Portal as Portal
 from .media import Source as Source
-from .media import Stop as Stop
 from .media import Svg as Svg
 from .media import Track as Track
 from .media import Video as Video
 from .media import area as area
 from .media import audio as audio
-from .media import defs as defs  # type: ignore
 from .media import embed as embed
 from .media import iframe as iframe
 from .media import image as image
 from .media import img as img
-from .media import lineargradient as lineargradient  # type: ignore
 from .media import map as map
 from .media import object as object
-from .media import path as path  # type: ignore
 from .media import picture as picture
 from .media import portal as portal
 from .media import source as source
-from .media import stop as stop  # type: ignore
 from .media import svg as svg
 from .media import track as track
 from .media import video as video
@@ -292,11 +284,6 @@ _MAPPING = {
         "portal",
         "source",
         "svg",
-        "defs",
-        "lineargradient",
-        "LinearGradient",
-        "stop",
-        "path",
     ],
     "metadata": ["base", "head", "link", "meta", "title", "style"],
     "other": ["details", "dialog", "summary", "slot", "template", "math", "html"],
@@ -348,7 +335,6 @@ _MAPPING = {
         "Del",
     ],
 }
-EXCLUDE = ["del_", "Del", "image", "lineargradient", "LinearGradient"]
+EXCLUDE = ["del_", "Del", "image"]
 for _, v in _MAPPING.items():
     v.extend([mod.capitalize() for mod in v if mod not in EXCLUDE])
-_PYRIGHT_IGNORE_IMPORTS = ["stop", "lineargradient", "path", "defs"]

+ 0 - 21
reflex/components/el/elements/media.py

@@ -4,7 +4,6 @@ from typing import Any, Union
 
 from reflex import Component, ComponentNamespace
 from reflex.constants.colors import Color
-from reflex.utils import console
 from reflex.vars import Var as Var
 
 from .base import BaseHTML
@@ -445,23 +444,3 @@ picture = Picture.create
 portal = Portal.create
 source = Source.create
 svg = SVG()
-
-
-def __getattr__(name: str):
-    if name in ("defs", "lineargradient", "stop", "path"):
-        console.deprecate(
-            f"`rx.el.{name}`",
-            reason=f"use `rx.el.svg.{'linear_gradient' if name =='lineargradient' else name}`",
-            deprecation_version="0.5.8",
-            removal_version="0.6.0",
-        )
-        return (
-            LinearGradient.create
-            if name == "lineargradient"
-            else globals()[name.capitalize()].create
-        )
-
-    try:
-        return globals()[name]
-    except KeyError:
-        raise AttributeError(f"module '{__name__} has no attribute '{name}'") from None

+ 2 - 126
reflex/components/lucide/icon.py

@@ -1,7 +1,7 @@
 """Lucide Icon component."""
 
 from reflex.components.component import Component
-from reflex.utils import console, format
+from reflex.utils import format
 from reflex.vars import Var
 
 
@@ -36,19 +36,6 @@ class Icon(LucideIconComponent):
         Returns:
             The created component.
         """
-
-        def map_deprecated_icon_names_05(tag: str) -> str:
-            new_tag = RENAMED_ICONS_05.get(tag)
-            if new_tag is not None:
-                console.deprecate(
-                    feature_name=f"icon {tag}",
-                    reason=f"it was renamed upstream. Use {new_tag} instead.",
-                    deprecation_version="0.4.6",
-                    removal_version="0.6.0",
-                )
-                return new_tag
-            return tag
-
         if children:
             if len(children) == 1 and isinstance(children[0], str):
                 props["tag"] = children[0]
@@ -62,8 +49,7 @@ class Icon(LucideIconComponent):
 
         if (
             not isinstance(props["tag"], str)
-            or map_deprecated_icon_names_05(format.to_snake_case(props["tag"]))
-            not in LUCIDE_ICON_LIST
+            or format.to_snake_case(props["tag"]) not in LUCIDE_ICON_LIST
         ):
             raise ValueError(
                 f"Invalid icon tag: {props['tag']}. Please use one of the following: {', '.join(LUCIDE_ICON_LIST[0:25])}, ..."
@@ -76,116 +62,6 @@ class Icon(LucideIconComponent):
         return super().create(*children, **props)
 
 
-RENAMED_ICONS_05 = {
-    "activity_square": "square_activity",
-    "alert_circle": "circle_alert",
-    "alert_octagon": "octagon_alert",
-    "alert_triangle": "triangle_alert",
-    "arrow_down_circle": "circle_arrow_down",
-    "arrow_down_left_from_circle": "circle_arrow_out_down_left",
-    "arrow_down_left_from_square": "square_arrow_out_down_left",
-    "arrow_down_left_square": "square_arrow_down_left",
-    "arrow_down_right_from_circle": "circle_arrow_out_down_right",
-    "arrow_down_right_from_square": "square_arrow_out_down_right",
-    "arrow_down_right_square": "square_arrow_down_right",
-    "arrow_down_square": "square_arrow_down",
-    "arrow_left_circle": "circle_arrow_left",
-    "arrow_left_square": "square_arrow_left",
-    "arrow_right_circle": "circle_arrow_right",
-    "arrow_right_square": "square_arrow_right",
-    "arrow_up_circle": "circle_arrow_up",
-    "arrow_up_left_from_circle": "circle_arrow_out_up_left",
-    "arrow_up_left_from_square": "square_arrow_out_up_left",
-    "arrow_up_left_square": "square_arrow_up_left",
-    "arrow_up_right_from_circle": "circle_arrow_out_up_right",
-    "arrow_up_right_from_square": "square_arrow_out_up_right",
-    "arrow_up_right_square": "square_arrow_up_right",
-    "arrow_up_square": "square_arrow_up",
-    "asterisk_square": "square_asterisk",
-    "check_circle": "circle_check_big",
-    "check_circle_2": "circle_check",
-    "check_square": "square_check_big",
-    "check_square_2": "square_check",
-    "chevron_down_circle": "circle_chevron_down",
-    "chevron_down_square": "square_chevron_down",
-    "chevron_left_circle": "circle_chevron_left",
-    "chevron_left_square": "square_chevron_left",
-    "chevron_right_circle": "circle_chevron_right",
-    "chevron_right_square": "square_chevron_right",
-    "chevron_up_circle": "circle_chevron_up",
-    "chevron_up_square": "square_chevron_up",
-    "code_2": "code_xml",
-    "code_square": "square_code",
-    "contact_2": "contact_round",
-    "divide_circle": "circle_divide",
-    "divide_square": "square_divide",
-    "dot_square": "square_dot",
-    "download_cloud": "cloud_download",
-    "equal_square": "square_equal",
-    "form_input": "rectangle_ellipsis",
-    "function_square": "square_function",
-    "gantt_chart_square": "square_gantt_chart",
-    "gauge_circle": "circle_gauge",
-    "globe_2": "earth",
-    "help_circle": "circle_help",
-    "helping_hand": "hand_helping",
-    "ice_cream": "ice_cream_cone",
-    "ice_cream_2": "ice_cream_bowl",
-    "indent": "indent_increase",
-    "kanban_square": "square_kanban",
-    "kanban_square_dashed": "square_dashed_kanban",
-    "laptop_2": "laptop_minimal",
-    "library_square": "square_library",
-    "loader_2": "loader_circle",
-    "m_square": "square_m",
-    "menu_square": "square_menu",
-    "mic_2": "mic_vocal",
-    "minus_circle": "circle_minus",
-    "minus_square": "square_minus",
-    "more_horizontal": "ellipsis",
-    "more_vertical": "ellipsis_vertical",
-    "mouse_pointer_square": "square_mouse_pointer",
-    "mouse_pointer_square_dashed": "square_dashed_mouse_pointer",
-    "outdent": "indent_decrease",
-    "palm_tree": "tree_palm",
-    "parking_circle": "circle_parking",
-    "parking_circle_off": "circle_parking_off",
-    "parking_square": "square_parking",
-    "parking_square_off": "square_parking_off",
-    "pause_circle": "circle_pause",
-    "pause_octagon": "octagon_pause",
-    "percent_circle": "circle_percent",
-    "percent_diamond": "diamond_percent",
-    "percent_square": "square_percent",
-    "pi_square": "square_pi",
-    "pilcrow_square": "square_pilcrow",
-    "play_circle": "circle_play",
-    "play_square": "square_play",
-    "plus_circle": "circle_plus",
-    "plus_square": "square_plus",
-    "power_circle": "circle_power",
-    "power_square": "square_power",
-    "school_2": "university",
-    "scissors_square": "square_scissors",
-    "scissors_square_dashed_bottom": "square_bottom_dashed_scissors",
-    "sigma_square": "square_sigma",
-    "slash_circle": "circle_slash",
-    "sliders": "sliders_vertical",
-    "split_square_horizontal": "square_split_horizontal",
-    "split_square_vertical": "square_split_vertical",
-    "stop_circle": "circle_stop",
-    "subtitles": "captions",
-    "test_tube_2": "test_tube_diagonal",
-    "unlock": "lock_open",
-    "unlock_keyhole": "lock_keyhole_open",
-    "upload_cloud": "cloud_upload",
-    "wallet_2": "wallet_minimal",
-    "wand_2": "wand_sparkles",
-    "x_circle": "circle_x",
-    "x_octagon": "octagon_x",
-    "x_square": "square_x",
-}
-
 LUCIDE_ICON_LIST = [
     "a_arrow_down",
     "a_arrow_up",

+ 0 - 109
reflex/components/lucide/icon.pyi

@@ -150,115 +150,6 @@ class Icon(LucideIconComponent):
         """
         ...
 
-RENAMED_ICONS_05 = {
-    "activity_square": "square_activity",
-    "alert_circle": "circle_alert",
-    "alert_octagon": "octagon_alert",
-    "alert_triangle": "triangle_alert",
-    "arrow_down_circle": "circle_arrow_down",
-    "arrow_down_left_from_circle": "circle_arrow_out_down_left",
-    "arrow_down_left_from_square": "square_arrow_out_down_left",
-    "arrow_down_left_square": "square_arrow_down_left",
-    "arrow_down_right_from_circle": "circle_arrow_out_down_right",
-    "arrow_down_right_from_square": "square_arrow_out_down_right",
-    "arrow_down_right_square": "square_arrow_down_right",
-    "arrow_down_square": "square_arrow_down",
-    "arrow_left_circle": "circle_arrow_left",
-    "arrow_left_square": "square_arrow_left",
-    "arrow_right_circle": "circle_arrow_right",
-    "arrow_right_square": "square_arrow_right",
-    "arrow_up_circle": "circle_arrow_up",
-    "arrow_up_left_from_circle": "circle_arrow_out_up_left",
-    "arrow_up_left_from_square": "square_arrow_out_up_left",
-    "arrow_up_left_square": "square_arrow_up_left",
-    "arrow_up_right_from_circle": "circle_arrow_out_up_right",
-    "arrow_up_right_from_square": "square_arrow_out_up_right",
-    "arrow_up_right_square": "square_arrow_up_right",
-    "arrow_up_square": "square_arrow_up",
-    "asterisk_square": "square_asterisk",
-    "check_circle": "circle_check_big",
-    "check_circle_2": "circle_check",
-    "check_square": "square_check_big",
-    "check_square_2": "square_check",
-    "chevron_down_circle": "circle_chevron_down",
-    "chevron_down_square": "square_chevron_down",
-    "chevron_left_circle": "circle_chevron_left",
-    "chevron_left_square": "square_chevron_left",
-    "chevron_right_circle": "circle_chevron_right",
-    "chevron_right_square": "square_chevron_right",
-    "chevron_up_circle": "circle_chevron_up",
-    "chevron_up_square": "square_chevron_up",
-    "code_2": "code_xml",
-    "code_square": "square_code",
-    "contact_2": "contact_round",
-    "divide_circle": "circle_divide",
-    "divide_square": "square_divide",
-    "dot_square": "square_dot",
-    "download_cloud": "cloud_download",
-    "equal_square": "square_equal",
-    "form_input": "rectangle_ellipsis",
-    "function_square": "square_function",
-    "gantt_chart_square": "square_gantt_chart",
-    "gauge_circle": "circle_gauge",
-    "globe_2": "earth",
-    "help_circle": "circle_help",
-    "helping_hand": "hand_helping",
-    "ice_cream": "ice_cream_cone",
-    "ice_cream_2": "ice_cream_bowl",
-    "indent": "indent_increase",
-    "kanban_square": "square_kanban",
-    "kanban_square_dashed": "square_dashed_kanban",
-    "laptop_2": "laptop_minimal",
-    "library_square": "square_library",
-    "loader_2": "loader_circle",
-    "m_square": "square_m",
-    "menu_square": "square_menu",
-    "mic_2": "mic_vocal",
-    "minus_circle": "circle_minus",
-    "minus_square": "square_minus",
-    "more_horizontal": "ellipsis",
-    "more_vertical": "ellipsis_vertical",
-    "mouse_pointer_square": "square_mouse_pointer",
-    "mouse_pointer_square_dashed": "square_dashed_mouse_pointer",
-    "outdent": "indent_decrease",
-    "palm_tree": "tree_palm",
-    "parking_circle": "circle_parking",
-    "parking_circle_off": "circle_parking_off",
-    "parking_square": "square_parking",
-    "parking_square_off": "square_parking_off",
-    "pause_circle": "circle_pause",
-    "pause_octagon": "octagon_pause",
-    "percent_circle": "circle_percent",
-    "percent_diamond": "diamond_percent",
-    "percent_square": "square_percent",
-    "pi_square": "square_pi",
-    "pilcrow_square": "square_pilcrow",
-    "play_circle": "circle_play",
-    "play_square": "square_play",
-    "plus_circle": "circle_plus",
-    "plus_square": "square_plus",
-    "power_circle": "circle_power",
-    "power_square": "square_power",
-    "school_2": "university",
-    "scissors_square": "square_scissors",
-    "scissors_square_dashed_bottom": "square_bottom_dashed_scissors",
-    "sigma_square": "square_sigma",
-    "slash_circle": "circle_slash",
-    "sliders": "sliders_vertical",
-    "split_square_horizontal": "square_split_horizontal",
-    "split_square_vertical": "square_split_vertical",
-    "stop_circle": "circle_stop",
-    "subtitles": "captions",
-    "test_tube_2": "test_tube_diagonal",
-    "unlock": "lock_open",
-    "unlock_keyhole": "lock_keyhole_open",
-    "upload_cloud": "cloud_upload",
-    "wallet_2": "wallet_minimal",
-    "wand_2": "wand_sparkles",
-    "x_circle": "circle_x",
-    "x_octagon": "octagon_x",
-    "x_square": "square_x",
-}
 LUCIDE_ICON_LIST = [
     "a_arrow_down",
     "a_arrow_up",

+ 0 - 11
reflex/components/radix/themes/color_mode.py

@@ -32,7 +32,6 @@ from reflex.style import (
     set_color_mode,
     toggle_color_mode,
 )
-from reflex.utils import console
 from reflex.vars import Var
 
 from .components.icon_button import IconButton
@@ -100,7 +99,6 @@ class ColorModeIconButton(IconButton):
     @classmethod
     def create(
         cls,
-        *children,
         position: LiteralPosition | None = None,
         allow_system: bool = False,
         **props,
@@ -108,7 +106,6 @@ class ColorModeIconButton(IconButton):
         """Create a icon button component that calls toggle_color_mode on click.
 
         Args:
-            *children: The children of the component.
             position: The position of the icon button. Follow document flow if None.
             allow_system: Allow picking the "system" value for the color mode.
             **props: The props to pass to the component.
@@ -116,14 +113,6 @@ class ColorModeIconButton(IconButton):
         Returns:
             The button component.
         """
-        if children:
-            console.deprecate(
-                feature_name="passing children to color_mode.button",
-                reason=", use color_mode_cond and toggle_color_mode instead to build a custom color_mode component",
-                deprecation_version="0.5.0",
-                removal_version="0.6.0",
-            )
-
         # position is used to set nice defaults for positioning the icon button
         if isinstance(position, Var):
             _set_var_default(props, position, "position", "fixed", position)

+ 0 - 5
reflex/components/radix/themes/color_mode.pyi

@@ -102,10 +102,6 @@ class ColorModeIconButton(IconButton):
     def create(  # type: ignore
         cls,
         *children,
-        position: Optional[
-            Literal["top-left", "top-right", "bottom-left", "bottom-right"]
-        ] = None,
-        allow_system: Optional[bool] = False,
         as_child: Optional[Union[Var[bool], bool]] = None,
         size: Optional[
             Union[
@@ -280,7 +276,6 @@ class ColorModeIconButton(IconButton):
         """Create a icon button component that calls toggle_color_mode on click.
 
         Args:
-            *children: The children of the component.
             position: The position of the icon button. Follow document flow if None.
             allow_system: Allow picking the "system" value for the color mode.
             as_child: Change the default rendered element for the one passed as a child, merging their props and behavior.

+ 0 - 80
reflex/components/radix/themes/components/text_field.py

@@ -4,15 +4,11 @@ from __future__ import annotations
 
 from typing import Literal, Union
 
-from reflex.components.base.fragment import Fragment
 from reflex.components.component import Component, ComponentNamespace
 from reflex.components.core.breakpoints import Responsive
 from reflex.components.core.debounce import DebounceInput
 from reflex.components.el import elements
 from reflex.event import EventHandler
-from reflex.ivars.base import LiteralVar
-from reflex.style import Style, format_as_emotion
-from reflex.utils import console
 from reflex.vars import Var
 
 from ..base import (
@@ -107,80 +103,6 @@ class TextFieldRoot(elements.Div, RadixThemesComponent):
             return DebounceInput.create(component)
         return component
 
-    @classmethod
-    def create_root_deprecated(cls, *children, **props) -> Component:
-        """Create a Fragment component (wrapper for deprecated name).
-
-        Copy the attributes that were previously defined on TextFieldRoot in 0.4.9 to
-        any child input elements (via custom_attrs).
-
-        Args:
-            *children: The children of the component.
-            **props: The properties of the component.
-
-        Returns:
-            The component.
-        """
-        console.deprecate(
-            feature_name="rx.input.root",
-            reason="use rx.input without the .root suffix",
-            deprecation_version="0.5.0",
-            removal_version="0.6.0",
-        )
-        inputs = [
-            child
-            for child in children
-            if isinstance(child, (TextFieldRoot, DebounceInput))
-        ]
-        if not inputs:
-            # Old-style where no explicit child input was provided
-            return cls.create(*children, **props)
-        slots = [child for child in children if isinstance(child, TextFieldSlot)]
-        carry_props = {
-            prop: props.pop(prop)
-            for prop in ["size", "variant", "color_scheme", "radius"]
-            if prop in props
-        }
-        template = cls.create(**props)
-        for child in inputs:
-            child.children.extend(slots)
-            custom_attrs = child.custom_attrs
-            custom_attrs.update(
-                {
-                    prop: value
-                    for prop, value in carry_props.items()
-                    if prop not in custom_attrs and getattr(child, prop) is None
-                }
-            )
-            style = Style(template.style)
-            style.update(child.style)
-            child._get_style = lambda style=style: {
-                "css": LiteralVar.create(format_as_emotion(style))
-            }
-            for trigger in template.event_triggers:
-                if trigger not in child.event_triggers:
-                    child.event_triggers[trigger] = template.event_triggers[trigger]
-        return Fragment.create(*inputs)
-
-    @classmethod
-    def create_input_deprecated(cls, *children, **props) -> Component:
-        """Create a TextFieldRoot component (wrapper for deprecated name).
-
-        Args:
-            *children: The children of the component.
-            **props: The properties of the component.
-
-        Returns:
-            The component.
-        """
-        console.deprecate(
-            feature_name="rx.input.input",
-            reason="use rx.input without the .input suffix",
-            deprecation_version="0.5.0",
-            removal_version="0.6.0",
-        )
-        return cls.create(*children, **props)
-
 
 class TextFieldSlot(RadixThemesComponent):
     """Contains icons or buttons associated with an Input."""
@@ -194,8 +116,6 @@ class TextFieldSlot(RadixThemesComponent):
 class TextField(ComponentNamespace):
     """TextField components namespace."""
 
-    root = staticmethod(TextFieldRoot.create_root_deprecated)
-    input = staticmethod(TextFieldRoot.create_input_deprecated)
     slot = staticmethod(TextFieldSlot.create)
     __call__ = staticmethod(TextFieldRoot.create)
 

+ 1 - 8
reflex/components/radix/themes/components/text_field.pyi

@@ -5,7 +5,7 @@
 # ------------------------------------------------------
 from typing import Any, Callable, Dict, Literal, Optional, Union, overload
 
-from reflex.components.component import Component, ComponentNamespace
+from reflex.components.component import ComponentNamespace
 from reflex.components.core.breakpoints import Breakpoints
 from reflex.components.el import elements
 from reflex.event import EventHandler, EventSpec
@@ -239,11 +239,6 @@ class TextFieldRoot(elements.Div, RadixThemesComponent):
         """
         ...
 
-    @classmethod
-    def create_root_deprecated(cls, *children, **props) -> Component: ...
-    @classmethod
-    def create_input_deprecated(cls, *children, **props) -> Component: ...
-
 class TextFieldSlot(RadixThemesComponent):
     @overload
     @classmethod
@@ -377,8 +372,6 @@ class TextFieldSlot(RadixThemesComponent):
         ...
 
 class TextField(ComponentNamespace):
-    root = staticmethod(TextFieldRoot.create_root_deprecated)
-    input = staticmethod(TextFieldRoot.create_input_deprecated)
     slot = staticmethod(TextFieldSlot.create)
 
     @staticmethod

+ 0 - 15
reflex/vars.py

@@ -6,7 +6,6 @@ import contextlib
 import dataclasses
 import datetime
 import dis
-import functools
 import inspect
 import json
 import random
@@ -2532,7 +2531,6 @@ def computed_var(
     auto_deps: bool = True,
     interval: Optional[Union[datetime.timedelta, int]] = None,
     backend: bool | None = None,
-    _deprecated_cached_var: bool = False,
     **kwargs,
 ) -> ComputedVar | Callable[[Callable[[BaseState], Any]], ComputedVar]:
     """A ComputedVar decorator with or without kwargs.
@@ -2545,7 +2543,6 @@ def computed_var(
         auto_deps: Whether var dependencies should be auto-determined.
         interval: Interval at which the computed var should be updated.
         backend: Whether the computed var is a backend var.
-        _deprecated_cached_var: Indicate usage of deprecated cached_var partial function.
         **kwargs: additional attributes to set on the instance
 
     Returns:
@@ -2555,14 +2552,6 @@ def computed_var(
         ValueError: If caching is disabled and an update interval is set.
         VarDependencyError: If user supplies dependencies without caching.
     """
-    if _deprecated_cached_var:
-        console.deprecate(
-            feature_name="cached_var",
-            reason=("Use @rx.var(cache=True) instead of @rx.cached_var."),
-            deprecation_version="0.5.6",
-            removal_version="0.6.0",
-        )
-
     if cache is False and interval is not None:
         raise ValueError("Cannot set update interval without caching.")
 
@@ -2587,10 +2576,6 @@ def computed_var(
     return wrapper
 
 
-# Partial function of computed_var with cache=True
-cached_var = functools.partial(computed_var, cache=True, _deprecated_cached_var=True)
-
-
 class CallableVar(BaseVar):
     """Decorate a Var-returning function to act as both a Var and a function.
 

+ 1 - 11
tests/components/lucide/test_icon.py

@@ -1,6 +1,6 @@
 import pytest
 
-from reflex.components.lucide.icon import LUCIDE_ICON_LIST, RENAMED_ICONS_05, Icon
+from reflex.components.lucide.icon import LUCIDE_ICON_LIST, Icon
 from reflex.utils import format
 
 
@@ -10,16 +10,6 @@ def test_icon(tag):
     assert icon.alias == f"Lucide{format.to_title_case(tag)}Icon"
 
 
-RENAMED_TAGS = [tag for tag in RENAMED_ICONS_05.items()]
-
-
-@pytest.mark.parametrize("tag, new_tag", RENAMED_TAGS)
-def test_icon_renamed_tags(tag, new_tag):
-    Icon.create(tag)
-    # TODO: need a PR so we can pass the following test. Currently it fails and uses the old tag as the import.
-    # assert icon.alias == f"Lucide{format.to_title_case(new_tag)}Icon"
-
-
 def test_icon_missing_tag():
     with pytest.raises(AttributeError):
         _ = Icon.create()

+ 0 - 56
tests/components/test_component.py

@@ -1613,62 +1613,6 @@ def test_rename_props():
     assert 'renamed_prop3={"prop3_2"}' in rendered_c2["props"]
 
 
-def test_deprecated_props(capsys):
-    """Assert that deprecated underscore suffix props are translated.
-
-    Args:
-        capsys: Pytest fixture for capturing stdout and stderr.
-    """
-
-    class C1(Component):
-        tag = "C1"
-
-        type: Var[str]
-        min: Var[str]
-        max: Var[str]
-
-    # No warnings are emitted when using the new prop names.
-    c1_1 = C1.create(type="type1", min="min1", max="max1")
-    out_err = capsys.readouterr()
-    assert not out_err.err
-    assert not out_err.out
-
-    c1_1_render = c1_1.render()
-    assert 'type={"type1"}' in c1_1_render["props"]
-    assert 'min={"min1"}' in c1_1_render["props"]
-    assert 'max={"max1"}' in c1_1_render["props"]
-
-    # Deprecation warning is emitted with underscore suffix,
-    # but the component still works.
-    c1_2 = C1.create(type_="type2", min_="min2", max_="max2")
-    out_err = capsys.readouterr()
-    assert out_err.out.count("DeprecationWarning:") == 3
-    assert not out_err.err
-
-    c1_2_render = c1_2.render()
-    assert 'type={"type2"}' in c1_2_render["props"]
-    assert 'min={"min2"}' in c1_2_render["props"]
-    assert 'max={"max2"}' in c1_2_render["props"]
-
-    class C2(Component):
-        tag = "C2"
-
-        type_: Var[str]
-        min_: Var[str]
-        max_: Var[str]
-
-    # No warnings are emitted if the actual prop has an underscore suffix
-    c2_1 = C2.create(type_="type1", min_="min1", max_="max1")
-    out_err = capsys.readouterr()
-    assert not out_err.err
-    assert not out_err.out
-
-    c2_1_render = c2_1.render()
-    assert 'type={"type1"}' in c2_1_render["props"]
-    assert 'min={"min1"}' in c2_1_render["props"]
-    assert 'max={"max1"}' in c2_1_render["props"]
-
-
 def test_custom_component_get_imports():
     class Inner(Component):
         tag = "Inner"