3
3
4
4
import mesop .components .slide_toggle .slide_toggle_pb2 as slide_toggle_pb
5
5
from mesop .component_helpers import (
6
+ component ,
6
7
insert_composite_component ,
7
8
register_event_handler ,
8
9
register_event_mapper ,
9
10
register_native_component ,
10
11
)
12
+ from mesop .components .text .text import text
11
13
from mesop .events import MesopEvent
12
14
13
15
@@ -30,8 +32,53 @@ class SlideToggleChangeEvent(MesopEvent):
30
32
)
31
33
32
34
33
- @register_native_component
35
+ @component ()
34
36
def slide_toggle (
37
+ label : str | None = None ,
38
+ * ,
39
+ key : str | None = None ,
40
+ label_position : Literal ["before" , "after" ] = "after" ,
41
+ required : bool = False ,
42
+ color : Literal ["primary" , "accent" , "warn" ] | None = None ,
43
+ disabled : bool = False ,
44
+ disable_ripple : bool = False ,
45
+ tab_index : int = 0 ,
46
+ checked : bool = False ,
47
+ hide_icon : bool = False ,
48
+ on_change : Callable [[SlideToggleChangeEvent ], Any ] | None = None ,
49
+ ):
50
+ """Creates a simple Slide toggle component with a text label.
51
+
52
+ Args:
53
+ label: Text label for slide toggle
54
+ on_change: An event will be dispatched each time the slide-toggle changes its value.
55
+ label_position: Whether the label should appear after or before the slide-toggle. Defaults to 'after'.
56
+ required: Whether the slide-toggle is required.
57
+ color: Palette color of slide toggle.
58
+ disabled: Whether the slide toggle is disabled.
59
+ disable_ripple: Whether the slide toggle has a ripple.
60
+ tab_index: Tabindex of slide toggle.
61
+ checked: Whether the slide-toggle element is checked or not.
62
+ hide_icon: Whether to hide the icon inside of the slide toggle.
63
+ key: Unique identifier for this component instance.
64
+ """
65
+ with content_slide_toggle (
66
+ key = key ,
67
+ label_position = label_position ,
68
+ required = required ,
69
+ color = color ,
70
+ disabled = disabled ,
71
+ disable_ripple = disable_ripple ,
72
+ tab_index = tab_index ,
73
+ checked = checked ,
74
+ hide_icon = hide_icon ,
75
+ on_change = on_change ,
76
+ ):
77
+ text (label )
78
+
79
+
80
+ @register_native_component
81
+ def content_slide_toggle (
35
82
* ,
36
83
key : str | None = None ,
37
84
label_position : Literal ["before" , "after" ] = "after" ,
@@ -44,7 +91,10 @@ def slide_toggle(
44
91
hide_icon : bool = False ,
45
92
on_change : Callable [[SlideToggleChangeEvent ], Any ] | None = None ,
46
93
):
47
- """Creates a Slide toggle component.
94
+ """Creates a Slide toggle component which is a composite component. Typically, you would use a text or icon component as a child.
95
+
96
+ Intended for advanced use cases.
97
+
48
98
49
99
Args:
50
100
on_change: An event will be dispatched each time the slide-toggle changes its value.
@@ -60,7 +110,7 @@ def slide_toggle(
60
110
"""
61
111
return insert_composite_component (
62
112
key = key ,
63
- type_name = "slide_toggle " ,
113
+ type_name = "content_slide_toggle " ,
64
114
proto = slide_toggle_pb .SlideToggleType (
65
115
label_position = label_position ,
66
116
required = required ,
0 commit comments