reflex 0.8.15a1__py3-none-any.whl → 0.8.16__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of reflex might be problematic. Click here for more details.

Files changed (140) hide show
  1. reflex/.templates/web/utils/state.js +68 -8
  2. reflex/app.py +45 -51
  3. reflex/app_mixins/lifespan.py +12 -5
  4. reflex/base.py +1 -0
  5. reflex/compiler/compiler.py +4 -6
  6. reflex/compiler/templates.py +25 -31
  7. reflex/compiler/utils.py +6 -5
  8. reflex/components/base/body.pyi +1 -195
  9. reflex/components/base/link.pyi +1 -407
  10. reflex/components/base/meta.pyi +1 -405
  11. reflex/components/base/script.pyi +1 -237
  12. reflex/components/component.py +41 -46
  13. reflex/components/core/auto_scroll.pyi +1 -195
  14. reflex/components/core/banner.pyi +1 -391
  15. reflex/components/core/breakpoints.py +14 -18
  16. reflex/components/core/html.pyi +1 -197
  17. reflex/components/core/match.py +2 -2
  18. reflex/components/core/sticky.py +11 -15
  19. reflex/components/core/sticky.pyi +0 -788
  20. reflex/components/core/upload.py +1 -3
  21. reflex/components/core/window_events.pyi +6 -5
  22. reflex/components/datadisplay/code.pyi +1 -0
  23. reflex/components/datadisplay/dataeditor.py +4 -6
  24. reflex/components/datadisplay/shiki_code_block.py +106 -110
  25. reflex/components/dynamic.py +4 -6
  26. reflex/components/el/elements/__init__.py +5 -7
  27. reflex/components/el/elements/__init__.pyi +5 -7
  28. reflex/components/el/elements/base.py +1 -1
  29. reflex/components/el/elements/base.pyi +1 -195
  30. reflex/components/el/elements/forms.py +7 -9
  31. reflex/components/el/elements/forms.pyi +12 -3112
  32. reflex/components/el/elements/inline.pyi +0 -5481
  33. reflex/components/el/elements/media.pyi +0 -10280
  34. reflex/components/el/elements/metadata.pyi +1 -835
  35. reflex/components/el/elements/other.pyi +1 -1365
  36. reflex/components/el/elements/scripts.pyi +1 -625
  37. reflex/components/el/elements/sectioning.pyi +1 -2911
  38. reflex/components/el/elements/tables.pyi +1 -1973
  39. reflex/components/el/elements/typography.pyi +1 -3125
  40. reflex/components/lucide/icon.py +4 -4
  41. reflex/components/lucide/icon.pyi +0 -4
  42. reflex/components/markdown/markdown.py +15 -19
  43. reflex/components/markdown/markdown.pyi +1 -0
  44. reflex/components/moment/moment.pyi +0 -49
  45. reflex/components/props.py +3 -3
  46. reflex/components/radix/primitives/accordion.py +4 -6
  47. reflex/components/radix/primitives/accordion.pyi +0 -14
  48. reflex/components/radix/primitives/base.pyi +0 -5
  49. reflex/components/radix/primitives/dialog.py +2 -0
  50. reflex/components/radix/primitives/dialog.pyi +1 -233
  51. reflex/components/radix/primitives/drawer.pyi +0 -18
  52. reflex/components/radix/primitives/form.pyi +30 -632
  53. reflex/components/radix/primitives/progress.pyi +0 -10
  54. reflex/components/radix/primitives/slider.pyi +0 -10
  55. reflex/components/radix/themes/color_mode.pyi +1 -284
  56. reflex/components/radix/themes/components/alert_dialog.pyi +0 -207
  57. reflex/components/radix/themes/components/aspect_ratio.pyi +0 -2
  58. reflex/components/radix/themes/components/avatar.pyi +0 -80
  59. reflex/components/radix/themes/components/badge.pyi +1 -270
  60. reflex/components/radix/themes/components/button.pyi +1 -274
  61. reflex/components/radix/themes/components/callout.pyi +0 -1197
  62. reflex/components/radix/themes/components/card.pyi +1 -209
  63. reflex/components/radix/themes/components/checkbox.pyi +0 -261
  64. reflex/components/radix/themes/components/checkbox_cards.pyi +1 -96
  65. reflex/components/radix/themes/components/checkbox_group.pyi +1 -80
  66. reflex/components/radix/themes/components/context_menu.pyi +13 -321
  67. reflex/components/radix/themes/components/data_list.pyi +1 -107
  68. reflex/components/radix/themes/components/dialog.pyi +1 -210
  69. reflex/components/radix/themes/components/dropdown_menu.pyi +0 -209
  70. reflex/components/radix/themes/components/hover_card.pyi +1 -246
  71. reflex/components/radix/themes/components/icon_button.pyi +1 -195
  72. reflex/components/radix/themes/components/inset.pyi +0 -252
  73. reflex/components/radix/themes/components/popover.pyi +1 -234
  74. reflex/components/radix/themes/components/progress.pyi +1 -84
  75. reflex/components/radix/themes/components/radio.pyi +1 -72
  76. reflex/components/radix/themes/components/radio_cards.pyi +1 -123
  77. reflex/components/radix/themes/components/scroll_area.pyi +1 -11
  78. reflex/components/radix/themes/components/select.pyi +1 -376
  79. reflex/components/radix/themes/components/separator.pyi +0 -77
  80. reflex/components/radix/themes/components/skeleton.pyi +0 -30
  81. reflex/components/radix/themes/components/slider.py +3 -5
  82. reflex/components/radix/themes/components/spinner.pyi +0 -5
  83. reflex/components/radix/themes/components/switch.pyi +0 -89
  84. reflex/components/radix/themes/components/table.pyi +0 -1453
  85. reflex/components/radix/themes/components/text_area.pyi +7 -282
  86. reflex/components/radix/themes/components/text_field.pyi +6 -392
  87. reflex/components/radix/themes/components/tooltip.pyi +0 -42
  88. reflex/components/radix/themes/layout/box.pyi +1 -195
  89. reflex/components/radix/themes/layout/center.pyi +0 -194
  90. reflex/components/radix/themes/layout/container.pyi +0 -178
  91. reflex/components/radix/themes/layout/flex.pyi +0 -194
  92. reflex/components/radix/themes/layout/grid.pyi +0 -194
  93. reflex/components/radix/themes/layout/list.pyi +0 -978
  94. reflex/components/radix/themes/layout/section.pyi +0 -194
  95. reflex/components/radix/themes/layout/spacer.pyi +0 -194
  96. reflex/components/radix/themes/layout/stack.pyi +0 -582
  97. reflex/components/radix/themes/typography/blockquote.pyi +0 -196
  98. reflex/components/radix/themes/typography/code.pyi +0 -194
  99. reflex/components/radix/themes/typography/heading.pyi +0 -194
  100. reflex/components/radix/themes/typography/link.pyi +0 -237
  101. reflex/components/radix/themes/typography/text.pyi +0 -1360
  102. reflex/components/react_router/dom.pyi +0 -237
  103. reflex/components/recharts/cartesian.py +12 -18
  104. reflex/components/recharts/general.py +12 -18
  105. reflex/constants/installer.py +5 -5
  106. reflex/custom_components/custom_components.py +6 -5
  107. reflex/environment.py +30 -7
  108. reflex/event.py +14 -12
  109. reflex/experimental/client_state.py +11 -12
  110. reflex/istate/data.py +8 -10
  111. reflex/istate/manager/__init__.py +3 -0
  112. reflex/istate/manager/disk.py +151 -5
  113. reflex/model.py +1 -1
  114. reflex/plugins/_screenshot.py +2 -2
  115. reflex/plugins/shared_tailwind.py +9 -14
  116. reflex/reflex.py +7 -9
  117. reflex/state.py +30 -37
  118. reflex/style.py +6 -6
  119. reflex/testing.py +54 -30
  120. reflex/utils/codespaces.py +31 -2
  121. reflex/utils/compat.py +1 -0
  122. reflex/utils/decorator.py +3 -3
  123. reflex/utils/format.py +18 -22
  124. reflex/utils/prerequisites.py +1 -1
  125. reflex/utils/pyi_generator.py +51 -57
  126. reflex/utils/serializers.py +1 -1
  127. reflex/utils/telemetry.py +1 -1
  128. reflex/utils/templates.py +4 -4
  129. reflex/utils/types.py +11 -4
  130. reflex/vars/base.py +26 -29
  131. reflex/vars/color.py +6 -8
  132. reflex/vars/dep_tracking.py +5 -3
  133. reflex/vars/function.py +3 -3
  134. reflex/vars/object.py +9 -13
  135. reflex/vars/sequence.py +18 -24
  136. {reflex-0.8.15a1.dist-info → reflex-0.8.16.dist-info}/METADATA +1 -1
  137. {reflex-0.8.15a1.dist-info → reflex-0.8.16.dist-info}/RECORD +140 -140
  138. {reflex-0.8.15a1.dist-info → reflex-0.8.16.dist-info}/WHEEL +0 -0
  139. {reflex-0.8.15a1.dist-info → reflex-0.8.16.dist-info}/entry_points.txt +0 -0
  140. {reflex-0.8.15a1.dist-info → reflex-0.8.16.dist-info}/licenses/LICENSE +0 -0
@@ -823,12 +823,9 @@ class Component(BaseComponent, ABC):
823
823
  ]
824
824
  if special_attributes:
825
825
  custom_attrs = kwargs.setdefault("custom_attrs", {})
826
- custom_attrs.update(
827
- {
828
- format.to_kebab_case(key): kwargs.pop(key)
829
- for key in special_attributes
830
- }
831
- )
826
+ custom_attrs.update({
827
+ format.to_kebab_case(key): kwargs.pop(key) for key in special_attributes
828
+ })
832
829
 
833
830
  # Add style props to the component.
834
831
  style = kwargs.get("style", {})
@@ -851,13 +848,11 @@ class Component(BaseComponent, ABC):
851
848
 
852
849
  fields_style = self.get_fields()["style"]
853
850
 
854
- kwargs["style"] = Style(
855
- {
856
- **fields_style.default_value(),
857
- **style,
858
- **{attr: value for attr, value in kwargs.items() if attr not in fields},
859
- }
860
- )
851
+ kwargs["style"] = Style({
852
+ **fields_style.default_value(),
853
+ **style,
854
+ **{attr: value for attr, value in kwargs.items() if attr not in fields},
855
+ })
861
856
 
862
857
  # Convert class_name to str if it's list
863
858
  class_name = kwargs.get("class_name", "")
@@ -1131,10 +1126,10 @@ class Component(BaseComponent, ABC):
1131
1126
  if s is not None:
1132
1127
  styles.append(s)
1133
1128
 
1134
- _style = Style()
1129
+ style_ = Style()
1135
1130
  for s in reversed(styles):
1136
- _style.update(s)
1137
- return _style
1131
+ style_.update(s)
1132
+ return style_
1138
1133
 
1139
1134
  def _get_component_style(self, styles: ComponentStyle | Style) -> Style | None:
1140
1135
  """Get the style to the component from `App.style`.
@@ -1298,9 +1293,9 @@ class Component(BaseComponent, ABC):
1298
1293
  *self._valid_children,
1299
1294
  *allowed_components,
1300
1295
  ]:
1301
- valid_child_list = ", ".join(
1302
- [f"`{v_child}`" for v_child in self._valid_children]
1303
- )
1296
+ valid_child_list = ", ".join([
1297
+ f"`{v_child}`" for v_child in self._valid_children
1298
+ ])
1304
1299
  msg = f"The component `{comp_name}` only allows the components: {valid_child_list} as children. Got `{child_name}` instead."
1305
1300
  raise ValueError(msg)
1306
1301
 
@@ -1308,9 +1303,9 @@ class Component(BaseComponent, ABC):
1308
1303
  clz_name not in [*child._valid_parents, *allowed_components]
1309
1304
  for clz_name in self._iter_parent_classes_names()
1310
1305
  ):
1311
- valid_parent_list = ", ".join(
1312
- [f"`{v_parent}`" for v_parent in child._valid_parents]
1313
- )
1306
+ valid_parent_list = ", ".join([
1307
+ f"`{v_parent}`" for v_parent in child._valid_parents
1308
+ ])
1314
1309
  msg = f"The component `{child_name}` can only be a child of the components: {valid_parent_list}. Got `{comp_name}` instead."
1315
1310
  raise ValueError(msg)
1316
1311
 
@@ -1568,18 +1563,18 @@ class Component(BaseComponent, ABC):
1568
1563
  Returns:
1569
1564
  The imports required for all selected hooks.
1570
1565
  """
1571
- _imports = {}
1566
+ imports_ = {}
1572
1567
 
1573
1568
  if self._get_ref_hook() is not None:
1574
1569
  # Handle hooks needed for attaching react refs to DOM nodes.
1575
- _imports.setdefault("react", set()).add(ImportVar(tag="useRef"))
1576
- _imports.setdefault(f"$/{Dirs.STATE_PATH}", set()).add(
1570
+ imports_.setdefault("react", set()).add(ImportVar(tag="useRef"))
1571
+ imports_.setdefault(f"$/{Dirs.STATE_PATH}", set()).add(
1577
1572
  ImportVar(tag="refs")
1578
1573
  )
1579
1574
 
1580
1575
  if self._get_mount_lifecycle_hook():
1581
1576
  # Handle hooks for `on_mount` / `on_unmount`.
1582
- _imports.setdefault("react", set()).add(ImportVar(tag="useEffect"))
1577
+ imports_.setdefault("react", set()).add(ImportVar(tag="useEffect"))
1583
1578
 
1584
1579
  other_imports = []
1585
1580
  user_hooks = self._get_hooks()
@@ -1596,7 +1591,7 @@ class Component(BaseComponent, ABC):
1596
1591
  if hook_vardata is not None
1597
1592
  )
1598
1593
 
1599
- return imports.merge_imports(_imports, *other_imports)
1594
+ return imports.merge_imports(imports_, *other_imports)
1600
1595
 
1601
1596
  def _get_imports(self) -> ParsedImportDict:
1602
1597
  """Get all the libraries and fields that are used by the component.
@@ -1604,7 +1599,7 @@ class Component(BaseComponent, ABC):
1604
1599
  Returns:
1605
1600
  The imports needed by the component.
1606
1601
  """
1607
- _imports = (
1602
+ imports_ = (
1608
1603
  {self.library: [self.import_var]}
1609
1604
  if self.library is not None and self.tag is not None
1610
1605
  else {}
@@ -1627,14 +1622,14 @@ class Component(BaseComponent, ABC):
1627
1622
  if not isinstance(list_of_import_dict, list):
1628
1623
  added_import_dicts.append(imports.parse_imports(list_of_import_dict))
1629
1624
  else:
1630
- added_import_dicts.extend(
1631
- [imports.parse_imports(item) for item in list_of_import_dict]
1632
- )
1625
+ added_import_dicts.extend([
1626
+ imports.parse_imports(item) for item in list_of_import_dict
1627
+ ])
1633
1628
 
1634
1629
  return imports.merge_parsed_imports(
1635
1630
  self._get_dependencies_imports(),
1636
1631
  self._get_hooks_imports(),
1637
- _imports,
1632
+ imports_,
1638
1633
  event_imports,
1639
1634
  *var_imports,
1640
1635
  *added_import_dicts,
@@ -1649,10 +1644,10 @@ class Component(BaseComponent, ABC):
1649
1644
  Returns:
1650
1645
  The import dict with the required imports.
1651
1646
  """
1652
- _imports = imports.merge_parsed_imports(
1647
+ imports_ = imports.merge_parsed_imports(
1653
1648
  self._get_imports(), *[child._get_all_imports() for child in self.children]
1654
1649
  )
1655
- return imports.collapse_imports(_imports) if collapse else _imports
1650
+ return imports.collapse_imports(imports_) if collapse else imports_
1656
1651
 
1657
1652
  def _get_mount_lifecycle_hook(self) -> str | None:
1658
1653
  """Generate the component lifecycle hook.
@@ -2220,7 +2215,7 @@ memo = custom_component
2220
2215
  class NoSSRComponent(Component):
2221
2216
  """A dynamic component that is not rendered on the server."""
2222
2217
 
2223
- def _get_import_name(self) -> None | str:
2218
+ def _get_import_name(self) -> str | None:
2224
2219
  if not self.library:
2225
2220
  return None
2226
2221
  return f"${self.library}" if self.library.startswith("/") else self.library
@@ -2238,18 +2233,18 @@ class NoSSRComponent(Component):
2238
2233
  }
2239
2234
 
2240
2235
  # The normal imports for this component.
2241
- _imports = super()._get_imports()
2236
+ imports_ = super()._get_imports()
2242
2237
 
2243
2238
  # Do NOT import the main library/tag statically.
2244
2239
  import_name = self._get_import_name()
2245
2240
  if import_name is not None:
2246
2241
  with contextlib.suppress(ValueError):
2247
- _imports[import_name].remove(self.import_var)
2248
- _imports[import_name].append(ImportVar(tag=None, render=False))
2242
+ imports_[import_name].remove(self.import_var)
2243
+ imports_[import_name].append(ImportVar(tag=None, render=False))
2249
2244
 
2250
2245
  return imports.merge_imports(
2251
2246
  dynamic_import,
2252
- _imports,
2247
+ imports_,
2253
2248
  self._get_dependencies_imports(),
2254
2249
  )
2255
2250
 
@@ -2269,7 +2264,7 @@ class NoSSRComponent(Component):
2269
2264
  else ""
2270
2265
  )
2271
2266
  return (
2272
- f"const {self.alias if self.alias else self.tag} = ClientSide(lazy(() => "
2267
+ f"const {self.alias or self.tag} = ClientSide(lazy(() => "
2273
2268
  + library_import
2274
2269
  + mod_import
2275
2270
  + "))"
@@ -2649,9 +2644,9 @@ class StatefulComponent(BaseComponent):
2649
2644
  """
2650
2645
  if self.rendered_as_shared:
2651
2646
  return {}
2652
- return self.component._get_all_custom_code() | (
2653
- {self._render_stateful_code(export=export): None}
2654
- )
2647
+ return self.component._get_all_custom_code() | ({
2648
+ self._render_stateful_code(export=export): None
2649
+ })
2655
2650
 
2656
2651
  def _get_all_refs(self) -> dict[str, None]:
2657
2652
  """Get the refs for the children of the component.
@@ -2772,9 +2767,9 @@ def render_dict_to_var(tag: dict | Component | str) -> Var:
2772
2767
  return Var(tag["contents"])
2773
2768
 
2774
2769
  if "iterable" in tag:
2775
- function_return = LiteralArrayVar.create(
2776
- [render_dict_to_var(child.render()) for child in tag["children"]]
2777
- )
2770
+ function_return = LiteralArrayVar.create([
2771
+ render_dict_to_var(child.render()) for child in tag["children"]
2772
+ ])
2778
2773
 
2779
2774
  func = ArgsFunctionOperation.create(
2780
2775
  (tag["arg_var_name"], tag["index_var_name"]),
@@ -4,7 +4,7 @@
4
4
  # This file was generated by `reflex/utils/pyi_generator.py`!
5
5
  # ------------------------------------------------------
6
6
  from collections.abc import Mapping, Sequence
7
- from typing import Any, Literal
7
+ from typing import Any
8
8
 
9
9
  from reflex.components.core.breakpoints import Breakpoints
10
10
  from reflex.components.el.elements.typography import Div
@@ -17,184 +17,6 @@ class AutoScroll(Div):
17
17
  def create(
18
18
  cls,
19
19
  *children,
20
- access_key: Var[str] | str | None = None,
21
- auto_capitalize: Literal[
22
- "characters", "none", "off", "on", "sentences", "words"
23
- ]
24
- | Var[Literal["characters", "none", "off", "on", "sentences", "words"]]
25
- | None = None,
26
- content_editable: Literal["inherit", "plaintext-only", False, True]
27
- | Var[Literal["inherit", "plaintext-only", False, True]]
28
- | None = None,
29
- context_menu: Var[str] | str | None = None,
30
- dir: Var[str] | str | None = None,
31
- draggable: Var[bool] | bool | None = None,
32
- enter_key_hint: Literal[
33
- "done", "enter", "go", "next", "previous", "search", "send"
34
- ]
35
- | Var[Literal["done", "enter", "go", "next", "previous", "search", "send"]]
36
- | None = None,
37
- hidden: Var[bool] | bool | None = None,
38
- input_mode: Literal[
39
- "decimal", "email", "none", "numeric", "search", "tel", "text", "url"
40
- ]
41
- | Var[
42
- Literal[
43
- "decimal", "email", "none", "numeric", "search", "tel", "text", "url"
44
- ]
45
- ]
46
- | None = None,
47
- item_prop: Var[str] | str | None = None,
48
- lang: Var[str] | str | None = None,
49
- role: Literal[
50
- "alert",
51
- "alertdialog",
52
- "application",
53
- "article",
54
- "banner",
55
- "button",
56
- "cell",
57
- "checkbox",
58
- "columnheader",
59
- "combobox",
60
- "complementary",
61
- "contentinfo",
62
- "definition",
63
- "dialog",
64
- "directory",
65
- "document",
66
- "feed",
67
- "figure",
68
- "form",
69
- "grid",
70
- "gridcell",
71
- "group",
72
- "heading",
73
- "img",
74
- "link",
75
- "list",
76
- "listbox",
77
- "listitem",
78
- "log",
79
- "main",
80
- "marquee",
81
- "math",
82
- "menu",
83
- "menubar",
84
- "menuitem",
85
- "menuitemcheckbox",
86
- "menuitemradio",
87
- "navigation",
88
- "none",
89
- "note",
90
- "option",
91
- "presentation",
92
- "progressbar",
93
- "radio",
94
- "radiogroup",
95
- "region",
96
- "row",
97
- "rowgroup",
98
- "rowheader",
99
- "scrollbar",
100
- "search",
101
- "searchbox",
102
- "separator",
103
- "slider",
104
- "spinbutton",
105
- "status",
106
- "switch",
107
- "tab",
108
- "table",
109
- "tablist",
110
- "tabpanel",
111
- "term",
112
- "textbox",
113
- "timer",
114
- "toolbar",
115
- "tooltip",
116
- "tree",
117
- "treegrid",
118
- "treeitem",
119
- ]
120
- | Var[
121
- Literal[
122
- "alert",
123
- "alertdialog",
124
- "application",
125
- "article",
126
- "banner",
127
- "button",
128
- "cell",
129
- "checkbox",
130
- "columnheader",
131
- "combobox",
132
- "complementary",
133
- "contentinfo",
134
- "definition",
135
- "dialog",
136
- "directory",
137
- "document",
138
- "feed",
139
- "figure",
140
- "form",
141
- "grid",
142
- "gridcell",
143
- "group",
144
- "heading",
145
- "img",
146
- "link",
147
- "list",
148
- "listbox",
149
- "listitem",
150
- "log",
151
- "main",
152
- "marquee",
153
- "math",
154
- "menu",
155
- "menubar",
156
- "menuitem",
157
- "menuitemcheckbox",
158
- "menuitemradio",
159
- "navigation",
160
- "none",
161
- "note",
162
- "option",
163
- "presentation",
164
- "progressbar",
165
- "radio",
166
- "radiogroup",
167
- "region",
168
- "row",
169
- "rowgroup",
170
- "rowheader",
171
- "scrollbar",
172
- "search",
173
- "searchbox",
174
- "separator",
175
- "slider",
176
- "spinbutton",
177
- "status",
178
- "switch",
179
- "tab",
180
- "table",
181
- "tablist",
182
- "tabpanel",
183
- "term",
184
- "textbox",
185
- "timer",
186
- "toolbar",
187
- "tooltip",
188
- "tree",
189
- "treegrid",
190
- "treeitem",
191
- ]
192
- ]
193
- | None = None,
194
- slot: Var[str] | str | None = None,
195
- spell_check: Var[bool] | bool | None = None,
196
- tab_index: Var[int] | int | None = None,
197
- title: Var[str] | str | None = None,
198
20
  style: Sequence[Mapping[str, Any]]
199
21
  | Mapping[str, Any]
200
22
  | Var[Mapping[str, Any]]
@@ -227,22 +49,6 @@ class AutoScroll(Div):
227
49
 
228
50
  Args:
229
51
  *children: The children of the component.
230
- access_key: Provides a hint for generating a keyboard shortcut for the current element.
231
- auto_capitalize: Controls whether and how text input is automatically capitalized as it is entered/edited by the user.
232
- content_editable: Indicates whether the element's content is editable.
233
- context_menu: Defines the ID of a <menu> element which will serve as the element's context menu.
234
- dir: Defines the text direction. Allowed values are ltr (Left-To-Right) or rtl (Right-To-Left)
235
- draggable: Defines whether the element can be dragged.
236
- enter_key_hint: Hints what media types the media element is able to play.
237
- hidden: Defines whether the element is hidden.
238
- input_mode: Defines the type of the element.
239
- item_prop: Defines the name of the element for metadata purposes.
240
- lang: Defines the language used in the element.
241
- role: Defines the role of the element.
242
- slot: Assigns a slot in a shadow DOM shadow tree to an element.
243
- spell_check: Defines whether the element may be checked for spelling errors.
244
- tab_index: Defines the position of the current element in the tabbing order.
245
- title: Defines a tooltip for the element.
246
52
  style: The style of the component.
247
53
  key: A unique key for the component.
248
54
  id: The id for the component.