Kaynağa Gözat

Improve graphing asethetic (#3611)

* Improve graphing asthetic

* Few more updates

* More style updates

* Update reflex/components/recharts/polar.py

Co-authored-by: Masen Furer <m_github@0x26.net>

* Address pr comments

* fix precommit

* Fix types

* PYI

* PYI update

---------

Co-authored-by: Alek Petuskey <alekpetuskey@Aleks-MacBook-Pro.local>
Co-authored-by: Masen Furer <m_github@0x26.net>
Alek Petuskey 10 ay önce
ebeveyn
işleme
93231f8168

+ 45 - 19
reflex/components/recharts/cartesian.py

@@ -86,7 +86,7 @@ class Axis(Recharts):
     tick_count: Var[int]
 
     # If set false, no axis tick lines will be drawn.
-    tick_line: Var[bool]
+    tick_line: Var[bool] = Var.create_safe(False)
 
     # The length of tick line.
     tick_size: Var[int]
@@ -95,7 +95,7 @@ class Axis(Recharts):
     min_tick_gap: Var[int]
 
     # The stroke color of axis
-    stroke: Var[Union[str, Color]]
+    stroke: Var[Union[str, Color]] = Var.create_safe(Color("gray", 9))
 
     # The text anchor of axis
     text_anchor: Var[str]  # 'start', 'middle', 'end'
@@ -186,6 +186,12 @@ class Brush(Recharts):
 
     alias = "RechartsBrush"
 
+    # Stroke color
+    stroke: Var[Union[str, Color]] = Var.create_safe(Color("gray", 9))
+
+    # The fill color of brush.
+    fill: Var[Union[str, Color]] = Var.create_safe(Color("gray", 2))
+
     # The key of data displayed in the axis.
     data_key: Var[Union[str, int]]
 
@@ -284,22 +290,27 @@ class Area(Cartesian):
     alias = "RechartsArea"
 
     # The color of the line stroke.
-    stroke: Var[Union[str, Color]]
+    stroke: Var[Union[str, Color]] = Var.create_safe(Color("accent", 9))
 
     # The width of the line stroke.
-    stroke_width: Var[int]
+    stroke_width: Var[int] = Var.create_safe(1)
 
     # The color of the area fill.
-    fill: Var[Union[str, Color]]
+    fill: Var[Union[str, Color]] = Var.create_safe(Color("accent", 5))
 
     # The interpolation type of area. And customized interpolation function can be set to type. 'basis' | 'basisClosed' | 'basisOpen' | 'bumpX' | 'bumpY' | 'bump' | 'linear' | 'linearClosed' | 'natural' | 'monotoneX' | 'monotoneY' | 'monotone' | 'step' | 'stepBefore' | 'stepAfter' |
-    type_: Var[LiteralAreaType]
+    type_: Var[LiteralAreaType] = Var.create_safe("monotone")
 
-    # If set false, dots will not be drawn. If set true, dots will be drawn which have the props calculated internally.
-    dot: Var[bool]
+    # If false set, dots will not be drawn. If true set, dots will be drawn which have the props calculated internally.
+    dot: Var[Union[bool, Dict[str, Any]]]
 
-    # The dot is shown when a user enters an area chart and this chart has a tooltip. If set false, no active dot will be drawn. If set true, an active dot will be drawn which will have the props calculated internally.
-    active_dot: Var[bool]
+    # The dot is shown when user enter an area chart and this chart has tooltip. If false set, no active dot will not be drawn. If true set, active dot will be drawn which have the props calculated internally.
+    active_dot: Var[Union[bool, Dict[str, Any]]] = Var.create_safe(
+        {
+            "stroke": Color("accent", 2),
+            "fill": Color("accent", 10),
+        }
+    )
 
     # If set false, labels will not be drawn. If set true, labels will be drawn which have the props calculated internally.
     label: Var[bool]
@@ -331,8 +342,7 @@ class Bar(Cartesian):
     stroke_width: Var[int]
 
     # The width of the line stroke.
-    fill: Var[Union[str, Color]]
-
+    fill: Var[Union[str, Color]] = Var.create_safe(Color("accent", 9))
     # If false set, background of bars will not be drawn. If true set, background of bars will be drawn which have the props calculated internally.
     background: Var[bool]
 
@@ -393,16 +403,26 @@ class Line(Cartesian):
     type_: Var[LiteralAreaType]
 
     # The color of the line stroke.
-    stroke: Var[Union[str, Color]]
+    stroke: Var[Union[str, Color]] = Var.create_safe(Color("accent", 9))
 
     # The width of the line stroke.
     stoke_width: Var[int]
 
-    # If set false, dots will not be drawn. If set true, dots will be drawn which have the props calculated internally.
-    dot: Var[bool]
+    # The dot is shown when mouse enter a line chart and this chart has tooltip. If false set, no active dot will not be drawn. If true set, active dot will be drawn which have the props calculated internally.
+    dot: Var[Union[bool, Dict[str, Any]]] = Var.create_safe(
+        {
+            "stroke": Color("accent", 10),
+            "fill": Color("accent", 4),
+        }
+    )
 
-    # The dot is shown when a user enters an area chart and this chart has a tooltip. If set false, no active dot will be drawn. If set true, an active dot will be drawn which will have the props calculated internally.
-    active_dot: Var[bool]
+    # The dot is shown when user enter an area chart and this chart has tooltip. If false set, no active dot will not be drawn. If true set, active dot will be drawn which have the props calculated internally.
+    active_dot: Var[Union[bool, Dict[str, Any]]] = Var.create_safe(
+        {
+            "stroke": Color("accent", 2),
+            "fill": Color("accent", 10),
+        }
+    )
 
     # If false set, labels will not be drawn. If true set, labels will be drawn which have the props calculated internally.
     label: Var[bool]
@@ -455,7 +475,7 @@ class Scatter(Recharts):
     line_type: Var[LiteralLineType]
 
     # The fill
-    fill: Var[Union[str, Color]]
+    fill: Var[Union[str, Color]] = Var.create_safe(Color("accent", 9))
 
     # the name
     name: Var[Union[str, int]]
@@ -531,6 +551,9 @@ class Funnel(Recharts):
     # The type of easing function. 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out' | 'linear'
     animation_easing: Var[LiteralAnimationEasing]
 
+    # stroke color
+    stroke: Var[Union[str, Color]] = Var.create_safe(Color("gray", 3))
+
     # Valid children components
     _valid_children: List[str] = ["LabelList", "Cell"]
 
@@ -582,7 +605,7 @@ class ErrorBar(Recharts):
     width: Var[int]
 
     # The stroke color of error bar.
-    stroke: Var[Union[str, Color]]
+    stroke: Var[Union[str, Color]] = Var.create_safe(Color("gray", 8))
 
     # The stroke width of error bar.
     stroke_width: Var[int]
@@ -771,6 +794,9 @@ class CartesianGrid(Grid):
     # The pattern of dashes and gaps used to paint the lines of the grid
     stroke_dasharray: Var[str]
 
+    # the stroke color of grid
+    stroke: Var[Union[str, Color]] = Var.create_safe(Color("gray", 7))
+
 
 class CartesianAxis(Grid):
     """A CartesianAxis component in Recharts."""

+ 24 - 12
reflex/components/recharts/cartesian.pyi

@@ -663,6 +663,8 @@ class Brush(Recharts):
     def create(  # type: ignore
         cls,
         *children,
+        stroke: Optional[Union[Var[Union[Color, str]], str, Color]] = None,
+        fill: Optional[Union[Var[Union[Color, str]], str, Color]] = None,
         data_key: Optional[Union[Var[Union[int, str]], str, int]] = None,
         x: Optional[Union[Var[int], int]] = None,
         y: Optional[Union[Var[int], int]] = None,
@@ -673,8 +675,6 @@ class Brush(Recharts):
         gap: Optional[Union[Var[int], int]] = None,
         start_index: Optional[Union[Var[int], int]] = None,
         end_index: Optional[Union[Var[int], int]] = None,
-        fill: Optional[Union[Var[Union[Color, str]], str, Color]] = None,
-        stroke: Optional[Union[Var[Union[Color, str]], str, Color]] = None,
         style: Optional[Style] = None,
         key: Optional[Any] = None,
         id: Optional[Any] = None,
@@ -690,6 +690,8 @@ class Brush(Recharts):
 
         Args:
             *children: The children of the component.
+            stroke: The stroke color of brush
+            fill: The fill color of brush
             data_key: The key of data displayed in the axis.
             x: The x-coordinate of brush.
             y: The y-coordinate of brush.
@@ -700,8 +702,6 @@ class Brush(Recharts):
             gap: The data with gap of refreshing chart. If the option is not set, the chart will be refreshed every time
             start_index: The default start index of brush. If the option is not set, the start index will be 0.
             end_index: The default end index of brush. If the option is not set, the end index will be 1.
-            fill: The fill color of brush
-            stroke: The stroke color of brush
             style: The style of the component.
             key: A unique key for the component.
             id: The id for the component.
@@ -886,8 +886,12 @@ class Area(Cartesian):
                 ],
             ]
         ] = None,
-        dot: Optional[Union[Var[bool], bool]] = None,
-        active_dot: Optional[Union[Var[bool], bool]] = None,
+        dot: Optional[
+            Union[Var[Union[Dict[str, Any], bool]], bool, Dict[str, Any]]
+        ] = None,
+        active_dot: Optional[
+            Union[Var[Union[Dict[str, Any], bool]], bool, Dict[str, Any]]
+        ] = None,
         label: Optional[Union[Var[bool], bool]] = None,
         stack_id: Optional[Union[Var[Union[int, str]], str, int]] = None,
         unit: Optional[Union[Var[Union[int, str]], str, int]] = None,
@@ -994,8 +998,8 @@ class Area(Cartesian):
             stroke_width: The width of the line stroke.
             fill: The color of the area fill.
             type_: The interpolation type of area. And customized interpolation function can be set to type. 'basis' | 'basisClosed' | 'basisOpen' | 'bumpX' | 'bumpY' | 'bump' | 'linear' | 'linearClosed' | 'natural' | 'monotoneX' | 'monotoneY' | 'monotone' | 'step' | 'stepBefore' | 'stepAfter' |
-            dot: If set false, dots will not be drawn. If set true, dots will be drawn which have the props calculated internally.
-            active_dot: The dot is shown when a user enters an area chart and this chart has a tooltip. If set false, no active dot will be drawn. If set true, an active dot will be drawn which will have the props calculated internally.
+            dot: If false set, dots will not be drawn. If true set, dots will be drawn which have the props calculated internally.
+            active_dot: The dot is shown when user enter an area chart and this chart has tooltip. If false set, no active dot will not be drawn. If true set, active dot will be drawn which have the props calculated internally.
             label: If set false, labels will not be drawn. If set true, labels will be drawn which have the props calculated internally.
             stack_id: The stack id of area, when two areas have the same value axis and same stack_id, then the two areas are stacked in order.
             unit: The unit of data. This option will be used in tooltip.
@@ -1229,8 +1233,12 @@ class Line(Cartesian):
         ] = None,
         stroke: Optional[Union[Var[Union[Color, str]], str, Color]] = None,
         stoke_width: Optional[Union[Var[int], int]] = None,
-        dot: Optional[Union[Var[bool], bool]] = None,
-        active_dot: Optional[Union[Var[bool], bool]] = None,
+        dot: Optional[
+            Union[Var[Union[Dict[str, Any], bool]], bool, Dict[str, Any]]
+        ] = None,
+        active_dot: Optional[
+            Union[Var[Union[Dict[str, Any], bool]], bool, Dict[str, Any]]
+        ] = None,
         label: Optional[Union[Var[bool], bool]] = None,
         hide: Optional[Union[Var[bool], bool]] = None,
         connect_nulls: Optional[Union[Var[bool], bool]] = None,
@@ -1337,8 +1345,8 @@ class Line(Cartesian):
             type_: The interpolation type of line. And customized interpolation function can be set to type. It's the same as type in Area.
             stroke: The color of the line stroke.
             stoke_width: The width of the line stroke.
-            dot: If set false, dots will not be drawn. If set true, dots will be drawn which have the props calculated internally.
-            active_dot: The dot is shown when a user enters an area chart and this chart has a tooltip. If set false, no active dot will be drawn. If set true, an active dot will be drawn which will have the props calculated internally.
+            dot: The dot is shown when mouse enter a line chart and this chart has tooltip. If false set, no active dot will not be drawn. If true set, active dot will be drawn which have the props calculated internally.
+            active_dot: The dot is shown when user enter an area chart and this chart has tooltip. If false set, no active dot will not be drawn. If true set, active dot will be drawn which have the props calculated internally.
             label: If false set, labels will not be drawn. If true set, labels will be drawn which have the props calculated internally.
             hide: Hides the line when true, useful when toggling visibility state via legend.
             connect_nulls: Whether to connect a graph line across null points.
@@ -1571,6 +1579,7 @@ class Funnel(Recharts):
                 Literal["ease", "ease-in", "ease-out", "ease-in-out", "linear"],
             ]
         ] = None,
+        stroke: Optional[Union[Var[Union[Color, str]], str, Color]] = None,
         style: Optional[Style] = None,
         key: Optional[Any] = None,
         id: Optional[Any] = None,
@@ -1642,6 +1651,7 @@ class Funnel(Recharts):
             animation_begin: Specifies when the animation should begin, the unit of this option is ms.
             animation_duration: Specifies the duration of animation, the unit of this option is ms.
             animation_easing: The type of easing function. 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out' | 'linear'
+            stroke: stroke color
             style: The style of the component.
             key: A unique key for the component.
             id: The id for the component.
@@ -2240,6 +2250,7 @@ class CartesianGrid(Grid):
         fill: Optional[Union[Var[Union[Color, str]], str, Color]] = None,
         fill_opacity: Optional[Union[Var[float], float]] = None,
         stroke_dasharray: Optional[Union[Var[str], str]] = None,
+        stroke: Optional[Union[Var[Union[Color, str]], str, Color]] = None,
         x: Optional[Union[Var[int], int]] = None,
         y: Optional[Union[Var[int], int]] = None,
         width: Optional[Union[Var[int], int]] = None,
@@ -2308,6 +2319,7 @@ class CartesianGrid(Grid):
             fill: The background of grid.
             fill_opacity: The opacity of the background used to fill the space between grid lines
             stroke_dasharray: The pattern of dashes and gaps used to paint the lines of the grid
+            stroke: the stroke color of grid
             x: The x-coordinate of grid.
             y: The y-coordinate of grid.
             width: The width of grid.

+ 4 - 0
reflex/components/recharts/charts.py

@@ -7,6 +7,7 @@ from typing import Any, Dict, List, Union
 from reflex.components.component import Component
 from reflex.components.recharts.general import ResponsiveContainer
 from reflex.constants import EventTriggers
+from reflex.constants.colors import Color
 from reflex.event import EventHandler
 from reflex.vars import Var
 
@@ -442,6 +443,9 @@ class FunnelChart(ChartBase):
     # The sizes of whitespace around the chart, i.e. {"top": 50, "right": 30, "left": 20, "bottom": 5}.
     margin: Var[Dict[str, Any]]
 
+    # The stroke color of each bar. String | Object
+    stroke: Var[Union[str, Color]]
+
     # Valid children components
     _valid_children: List[str] = ["Legend", "GraphingTooltip", "Funnel"]
 

+ 3 - 0
reflex/components/recharts/charts.pyi

@@ -5,6 +5,7 @@
 # ------------------------------------------------------
 from typing import Any, Callable, Dict, List, Literal, Optional, Union, overload
 
+from reflex.constants.colors import Color
 from reflex.event import EventHandler, EventSpec
 from reflex.style import Style
 from reflex.vars import BaseVar, Var
@@ -962,6 +963,7 @@ class FunnelChart(ChartBase):
         *children,
         layout: Optional[Union[Var[str], str]] = None,
         margin: Optional[Union[Var[Dict[str, Any]], Dict[str, Any]]] = None,
+        stroke: Optional[Union[Var[Union[Color, str]], str, Color]] = None,
         width: Optional[Union[Var[Union[int, str]], str, int]] = None,
         height: Optional[Union[Var[Union[int, str]], str, int]] = None,
         style: Optional[Style] = None,
@@ -1023,6 +1025,7 @@ class FunnelChart(ChartBase):
             *children: The children of the chart component.
             layout: The layout of bars in the chart. centeric
             margin: The sizes of whitespace around the chart, i.e. {"top": 50, "right": 30, "left": 20, "bottom": 5}.
+            stroke: The stroke color of each bar. String | Object
             width: The width of chart container. String or Integer
             height: The height of chart container.
             style: The style of the component.

+ 23 - 9
reflex/components/recharts/general.py

@@ -139,22 +139,36 @@ class GraphingTooltip(Recharts):
     filter_null: Var[bool]
 
     # If set false, no cursor will be drawn when tooltip is active.
-    cursor: Var[bool]
+    cursor: Var[Union[Dict[str, Any], bool]] = Var.create_safe(
+        {
+            "strokeWidth": 1,
+            "fill": Color("gray", 3),
+        }
+    )
 
     # The box of viewing area, which has the shape of {x: someVal, y: someVal, width: someVal, height: someVal}, usually calculated internally.
     view_box: Var[Dict[str, Any]]
 
     # The style of default tooltip content item which is a li element. DEFAULT: {}
-    item_style: Var[Dict[str, Any]]
+    item_style: Var[Dict[str, Any]] = Var.create_safe(
+        {
+            "color": Color("gray", 12),
+        }
+    )
 
     # The style of tooltip wrapper which is a dom element. DEFAULT: {}
     wrapper_style: Var[Dict[str, Any]]
-
     # The style of tooltip content which is a dom element. DEFAULT: {}
-    content_style: Var[Dict[str, Any]]
+    content_style: Var[Dict[str, Any]] = Var.create_safe(
+        {
+            "background": Color("gray", 1),
+            "borderColor": Color("gray", 4),
+            "borderRadius": "8px",
+        }
+    )
 
     # The style of default tooltip label which is a p element. DEFAULT: {}
-    label_style: Var[Dict[str, Any]]
+    label_style: Var[Dict[str, Any]] = Var.create_safe({"color": Color("gray", 11)})
 
     # This option allows the tooltip to extend beyond the viewBox of the chart itself. DEFAULT: { x: false, y: false }
     allow_escape_view_box: Var[Dict[str, bool]] = Var.create_safe(
@@ -216,11 +230,11 @@ class LabelList(Recharts):
     # The offset to the specified "position"
     offset: Var[int]
 
-    # The color of the line stroke.
-    stroke: Var[Union[str, Color]]
+    # The fill color of each label
+    fill: Var[Union[str, Color]] = Var.create_safe(Color("gray", 10))
 
-    # The width of the line stroke.
-    fill: Var[Union[str, Color]]
+    # The stroke color of each label
+    stroke: Var[Union[str, Color]] = Var.create_safe("none")
 
 
 responsive_container = ResponsiveContainer.create

+ 6 - 4
reflex/components/recharts/general.pyi

@@ -252,7 +252,9 @@ class GraphingTooltip(Recharts):
         separator: Optional[Union[Var[str], str]] = None,
         offset: Optional[Union[Var[int], int]] = None,
         filter_null: Optional[Union[Var[bool], bool]] = None,
-        cursor: Optional[Union[Var[bool], bool]] = None,
+        cursor: Optional[
+            Union[Var[Union[Dict[str, Any], bool]], Dict[str, Any], bool]
+        ] = None,
         view_box: Optional[Union[Var[Dict[str, Any]], Dict[str, Any]]] = None,
         item_style: Optional[Union[Var[Dict[str, Any]], Dict[str, Any]]] = None,
         wrapper_style: Optional[Union[Var[Dict[str, Any]], Dict[str, Any]]] = None,
@@ -541,8 +543,8 @@ class LabelList(Recharts):
             ]
         ] = None,
         offset: Optional[Union[Var[int], int]] = None,
-        stroke: Optional[Union[Var[Union[Color, str]], str, Color]] = None,
         fill: Optional[Union[Var[Union[Color, str]], str, Color]] = None,
+        stroke: Optional[Union[Var[Union[Color, str]], str, Color]] = None,
         style: Optional[Style] = None,
         key: Optional[Any] = None,
         id: Optional[Any] = None,
@@ -603,8 +605,8 @@ class LabelList(Recharts):
             data_key: The key of a group of label values in data.
             position: The position of each label relative to it view box。"Top" | "left" | "right" | "bottom" | "inside" | "outside" | "insideLeft" | "insideRight" | "insideTop" | "insideBottom" | "insideTopLeft" | "insideBottomLeft" | "insideTopRight" | "insideBottomRight" | "insideStart" | "insideEnd" | "end" | "center"
             offset: The offset to the specified "position"
-            stroke: The color of the line stroke.
-            fill: The width of the line stroke.
+            fill: The fill color of each label
+            stroke: The stroke color of each label
             style: The style of the component.
             key: A unique key for the component.
             id: The id for the component.

+ 19 - 9
reflex/components/recharts/polar.py

@@ -5,6 +5,7 @@ from __future__ import annotations
 from typing import Any, Dict, List, Union
 
 from reflex.constants import EventTriggers
+from reflex.constants.colors import Color
 from reflex.event import EventHandler
 from reflex.vars import Var
 
@@ -70,11 +71,11 @@ class Pie(Recharts):
     # Valid children components
     _valid_children: List[str] = ["Cell", "LabelList"]
 
-    # fill color
-    fill: Var[str]
+    # Stoke color
+    stroke: Var[Union[str, Color]] = Var.create_safe(Color("accent", 9))
 
-    # stroke color
-    stroke: Var[str]
+    # Fill color
+    fill: Var[Union[str, Color]] = Var.create_safe(Color("accent", 3))
 
     def get_event_triggers(self) -> dict[str, Union[Var, Any]]:
         """Get the event triggers that pass the component's value to the handler.
@@ -109,13 +110,13 @@ class Radar(Recharts):
     dot: Var[bool]
 
     # Stoke color
-    stroke: Var[str]
+    stroke: Var[Union[str, Color]] = Var.create_safe(Color("accent", 9))
 
     # Fill color
-    fill: Var[str]
+    fill: Var[str] = Var.create_safe(Color("accent", 3))
 
     # opacity
-    fill_opacity: Var[float]
+    fill_opacity: Var[float] = Var.create_safe(0.6)
 
     # The type of icon in legend. If set to 'none', no legend item will be rendered.
     legend_type: Var[str]
@@ -217,7 +218,7 @@ class PolarAngleAxis(Recharts):
     axis_line_type: Var[str]
 
     # If false set, tick lines will not be drawn. If true set, tick lines will be drawn which have the props calculated internally. If object set, tick lines will be drawn which have the props mergered by the internal calculated props and the option.
-    tick_line: Var[Union[bool, Dict[str, Any]]]
+    tick_line: Var[Union[bool, Dict[str, Any]]] = Var.create_safe(False)
 
     # The width or height of tick.
     tick: Var[Union[int, str]]
@@ -228,6 +229,9 @@ class PolarAngleAxis(Recharts):
     # The orientation of axis text.
     orient: Var[str]
 
+    # The stroke color of axis
+    stroke: Var[Union[str, Color]] = Var.create_safe(Color("gray", 10))
+
     # Allow the axis has duplicated categorys or not when the type of axis is "category".
     allow_duplicated_category: Var[bool]
 
@@ -287,6 +291,9 @@ class PolarGrid(Recharts):
     # The type of polar grids. 'polygon' | 'circle'
     grid_type: Var[LiteralGridType]
 
+    # The stroke color of grid
+    stroke: Var[Union[str, Color]] = Var.create_safe(Color("gray", 10))
+
     # Valid children components
     _valid_children: List[str] = ["RadarChart", "RadiarBarChart"]
 
@@ -335,7 +342,10 @@ class PolarRadiusAxis(Recharts):
     _valid_children: List[str] = ["Label"]
 
     # The domain of the polar radius axis, specifying the minimum and maximum values.
-    domain: List[int] = [0, 250]
+    domain: Var[List[int]] = Var.create_safe([0, 250])
+
+    # The stroke color of axis
+    stroke: Var[Union[str, Color]] = Var.create_safe(Color("gray", 10))
 
     def get_event_triggers(self) -> dict[str, Union[Var, Any]]:
         """Get the event triggers that pass the component's value to the handler.

+ 13 - 6
reflex/components/recharts/polar.pyi

@@ -5,6 +5,7 @@
 # ------------------------------------------------------
 from typing import Any, Callable, Dict, List, Literal, Optional, Union, overload
 
+from reflex.constants.colors import Color
 from reflex.event import EventHandler, EventSpec
 from reflex.style import Style
 from reflex.vars import BaseVar, Var
@@ -65,8 +66,8 @@ class Pie(Recharts):
         ] = None,
         label: Optional[Union[Var[bool], bool]] = None,
         label_line: Optional[Union[Var[bool], bool]] = None,
-        fill: Optional[Union[Var[str], str]] = None,
-        stroke: Optional[Union[Var[str], str]] = None,
+        stroke: Optional[Union[Var[Union[Color, str]], str, Color]] = None,
+        fill: Optional[Union[Var[Union[Color, str]], str, Color]] = None,
         style: Optional[Style] = None,
         key: Optional[Any] = None,
         id: Optional[Any] = None,
@@ -111,8 +112,8 @@ class Pie(Recharts):
             legend_type: The type of icon in legend. If set to 'none', no legend item will be rendered.
             label: If false set, labels will not be drawn.
             label_line: If false set, label lines will not be drawn.
-            fill: fill color
-            stroke: stroke color
+            stroke: Stoke color
+            fill: Fill color
             style: The style of the component.
             key: A unique key for the component.
             id: The id for the component.
@@ -135,7 +136,7 @@ class Radar(Recharts):
         data_key: Optional[Union[Var[Union[int, str]], str, int]] = None,
         points: Optional[Union[Var[List[Dict[str, Any]]], List[Dict[str, Any]]]] = None,
         dot: Optional[Union[Var[bool], bool]] = None,
-        stroke: Optional[Union[Var[str], str]] = None,
+        stroke: Optional[Union[Var[Union[Color, str]], str, Color]] = None,
         fill: Optional[Union[Var[str], str]] = None,
         fill_opacity: Optional[Union[Var[float], float]] = None,
         legend_type: Optional[Union[Var[str], str]] = None,
@@ -332,6 +333,7 @@ class PolarAngleAxis(Recharts):
         tick: Optional[Union[Var[Union[int, str]], int, str]] = None,
         ticks: Optional[Union[Var[List[Dict[str, Any]]], List[Dict[str, Any]]]] = None,
         orient: Optional[Union[Var[str], str]] = None,
+        stroke: Optional[Union[Var[Union[Color, str]], str, Color]] = None,
         allow_duplicated_category: Optional[Union[Var[bool], bool]] = None,
         style: Optional[Style] = None,
         key: Optional[Any] = None,
@@ -400,6 +402,7 @@ class PolarAngleAxis(Recharts):
             tick: The width or height of tick.
             ticks: The array of every tick's value and angle.
             orient: The orientation of axis text.
+            stroke: The stroke color of axis
             allow_duplicated_category: Allow the axis has duplicated categorys or not when the type of axis is "category".
             style: The style of the component.
             key: A unique key for the component.
@@ -429,6 +432,7 @@ class PolarGrid(Recharts):
         grid_type: Optional[
             Union[Var[Literal["polygon", "circle"]], Literal["polygon", "circle"]]
         ] = None,
+        stroke: Optional[Union[Var[Union[Color, str]], str, Color]] = None,
         style: Optional[Style] = None,
         key: Optional[Any] = None,
         id: Optional[Any] = None,
@@ -493,6 +497,7 @@ class PolarGrid(Recharts):
             polar_angles: The array of every line grid's angle.
             polar_radius: The array of every line grid's radius.
             grid_type: The type of polar grids. 'polygon' | 'circle'
+            stroke: The stroke color of grid
             style: The style of the component.
             key: A unique key for the component.
             id: The id for the component.
@@ -567,7 +572,8 @@ class PolarRadiusAxis(Recharts):
                 ],
             ]
         ] = None,
-        domain: Optional[List[int]] = None,
+        domain: Optional[Union[Var[List[int]], List[int]]] = None,
+        stroke: Optional[Union[Var[Union[Color, str]], str, Color]] = None,
         style: Optional[Style] = None,
         key: Optional[Any] = None,
         id: Optional[Any] = None,
@@ -610,6 +616,7 @@ class PolarRadiusAxis(Recharts):
             tick_count: The count of ticks.
             scale: If 'auto' set, the scale funtion is linear scale. 'auto' | 'linear' | 'pow' | 'sqrt' | 'log' | 'identity' | 'time' | 'band' | 'point' | 'ordinal' | 'quantile' | 'quantize' | 'utc' | 'sequential' | 'threshold'
             domain: The domain of the polar radius axis, specifying the minimum and maximum values.
+            stroke: The stroke color of axis
             style: The style of the component.
             key: A unique key for the component.
             id: The id for the component.