3838NO_PROPS_TAGS = ("ul" , "ol" , "li" )
3939
4040
41+ def _h1 (value : object ):
42+ from reflex .components .radix .themes .typography .heading import Heading
43+
44+ return Heading .create (value , as_ = "h1" , size = "6" , margin_y = "0.5em" )
45+
46+
47+ def _h2 (value : object ):
48+ from reflex .components .radix .themes .typography .heading import Heading
49+
50+ return Heading .create (value , as_ = "h2" , size = "5" , margin_y = "0.5em" )
51+
52+
53+ def _h3 (value : object ):
54+ from reflex .components .radix .themes .typography .heading import Heading
55+
56+ return Heading .create (value , as_ = "h3" , size = "4" , margin_y = "0.5em" )
57+
58+
59+ def _h4 (value : object ):
60+ from reflex .components .radix .themes .typography .heading import Heading
61+
62+ return Heading .create (value , as_ = "h4" , size = "3" , margin_y = "0.5em" )
63+
64+
65+ def _h5 (value : object ):
66+ from reflex .components .radix .themes .typography .heading import Heading
67+
68+ return Heading .create (value , as_ = "h5" , size = "2" , margin_y = "0.5em" )
69+
70+
71+ def _h6 (value : object ):
72+ from reflex .components .radix .themes .typography .heading import Heading
73+
74+ return Heading .create (value , as_ = "h6" , size = "1" , margin_y = "0.5em" )
75+
76+
77+ def _p (value : object ):
78+ from reflex .components .radix .themes .typography .text import Text
79+
80+ return Text .create (value , margin_y = "1em" )
81+
82+
83+ def _ul (value : object ):
84+ from reflex .components .radix .themes .layout .list import UnorderedList
85+
86+ return UnorderedList .create (value , margin_y = "1em" )
87+
88+
89+ def _ol (value : object ):
90+ from reflex .components .radix .themes .layout .list import OrderedList
91+
92+ return OrderedList .create (value , margin_y = "1em" )
93+
94+
95+ def _li (value : object ):
96+ from reflex .components .radix .themes .layout .list import ListItem
97+
98+ return ListItem .create (value , margin_y = "0.5em" )
99+
100+
101+ def _a (value : object ):
102+ from reflex .components .radix .themes .typography .link import Link
103+
104+ return Link .create (value )
105+
106+
107+ def _code (value : object ):
108+ from reflex .components .radix .themes .typography .code import Code
109+
110+ return Code .create (value )
111+
112+
113+ def _codeblock (value : object , ** props ):
114+ from reflex .components .datadisplay .code import CodeBlock
115+
116+ return CodeBlock .create (value , margin_y = "1em" , wrap_long_lines = True , ** props )
117+
118+
41119# Component Mapping
42120@lru_cache
43121def get_base_component_map () -> dict [str , Callable ]:
@@ -46,33 +124,20 @@ def get_base_component_map() -> dict[str, Callable]:
46124 Returns:
47125 The base component map.
48126 """
49- from reflex .components .datadisplay .code import CodeBlock
50- from reflex .components .radix .themes .layout .list import (
51- ListItem ,
52- OrderedList ,
53- UnorderedList ,
54- )
55- from reflex .components .radix .themes .typography .code import Code
56- from reflex .components .radix .themes .typography .heading import Heading
57- from reflex .components .radix .themes .typography .link import Link
58- from reflex .components .radix .themes .typography .text import Text
59-
60127 return {
61- "h1" : lambda value : Heading .create (value , as_ = "h1" , size = "6" , margin_y = "0.5em" ),
62- "h2" : lambda value : Heading .create (value , as_ = "h2" , size = "5" , margin_y = "0.5em" ),
63- "h3" : lambda value : Heading .create (value , as_ = "h3" , size = "4" , margin_y = "0.5em" ),
64- "h4" : lambda value : Heading .create (value , as_ = "h4" , size = "3" , margin_y = "0.5em" ),
65- "h5" : lambda value : Heading .create (value , as_ = "h5" , size = "2" , margin_y = "0.5em" ),
66- "h6" : lambda value : Heading .create (value , as_ = "h6" , size = "1" , margin_y = "0.5em" ),
67- "p" : lambda value : Text .create (value , margin_y = "1em" ),
68- "ul" : lambda value : UnorderedList .create (value , margin_y = "1em" ),
69- "ol" : lambda value : OrderedList .create (value , margin_y = "1em" ),
70- "li" : lambda value : ListItem .create (value , margin_y = "0.5em" ),
71- "a" : lambda value : Link .create (value ),
72- "code" : lambda value : Code .create (value ),
73- "codeblock" : lambda value , ** props : CodeBlock .create (
74- value , margin_y = "1em" , wrap_long_lines = True , ** props
75- ),
128+ "h1" : _h1 ,
129+ "h2" : _h2 ,
130+ "h3" : _h3 ,
131+ "h4" : _h4 ,
132+ "h5" : _h5 ,
133+ "h6" : _h6 ,
134+ "p" : _p ,
135+ "ul" : _ul ,
136+ "ol" : _ol ,
137+ "li" : _li ,
138+ "a" : _a ,
139+ "code" : _code ,
140+ "codeblock" : _codeblock ,
76141 }
77142
78143
@@ -413,7 +478,16 @@ def _get_map_fn_custom_code_from_children(
413478 @staticmethod
414479 def _component_map_hash (component_map : dict ) -> str :
415480 inp = str (
416- {tag : component (_MOCK_ARG ) for tag , component in component_map .items ()}
481+ {
482+ tag : (
483+ f"{ component .__module__ } .{ component .__qualname__ } "
484+ if (
485+ "<" not in component .__name__
486+ ) # simple way to check against lambdas
487+ else component (_MOCK_ARG )
488+ )
489+ for tag , component in component_map .items ()
490+ }
417491 ).encode ()
418492 return md5 (inp ).hexdigest ()
419493
0 commit comments