reflex 0.8.15a1__py3-none-any.whl → 0.8.16a1__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 (139) 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/datadisplay/code.pyi +1 -0
  22. reflex/components/datadisplay/dataeditor.py +4 -6
  23. reflex/components/datadisplay/shiki_code_block.py +106 -110
  24. reflex/components/dynamic.py +4 -6
  25. reflex/components/el/elements/__init__.py +5 -7
  26. reflex/components/el/elements/__init__.pyi +5 -7
  27. reflex/components/el/elements/base.py +1 -1
  28. reflex/components/el/elements/base.pyi +1 -195
  29. reflex/components/el/elements/forms.py +7 -9
  30. reflex/components/el/elements/forms.pyi +12 -3112
  31. reflex/components/el/elements/inline.pyi +0 -5481
  32. reflex/components/el/elements/media.pyi +0 -10280
  33. reflex/components/el/elements/metadata.pyi +1 -835
  34. reflex/components/el/elements/other.pyi +1 -1365
  35. reflex/components/el/elements/scripts.pyi +1 -625
  36. reflex/components/el/elements/sectioning.pyi +1 -2911
  37. reflex/components/el/elements/tables.pyi +1 -1973
  38. reflex/components/el/elements/typography.pyi +1 -3125
  39. reflex/components/lucide/icon.py +4 -4
  40. reflex/components/lucide/icon.pyi +0 -4
  41. reflex/components/markdown/markdown.py +15 -19
  42. reflex/components/markdown/markdown.pyi +1 -0
  43. reflex/components/moment/moment.pyi +0 -49
  44. reflex/components/props.py +3 -3
  45. reflex/components/radix/primitives/accordion.py +4 -6
  46. reflex/components/radix/primitives/accordion.pyi +0 -14
  47. reflex/components/radix/primitives/base.pyi +0 -5
  48. reflex/components/radix/primitives/dialog.py +2 -0
  49. reflex/components/radix/primitives/dialog.pyi +1 -233
  50. reflex/components/radix/primitives/drawer.pyi +0 -18
  51. reflex/components/radix/primitives/form.pyi +30 -632
  52. reflex/components/radix/primitives/progress.pyi +0 -10
  53. reflex/components/radix/primitives/slider.pyi +0 -10
  54. reflex/components/radix/themes/color_mode.pyi +1 -284
  55. reflex/components/radix/themes/components/alert_dialog.pyi +0 -207
  56. reflex/components/radix/themes/components/aspect_ratio.pyi +0 -2
  57. reflex/components/radix/themes/components/avatar.pyi +0 -80
  58. reflex/components/radix/themes/components/badge.pyi +1 -270
  59. reflex/components/radix/themes/components/button.pyi +1 -274
  60. reflex/components/radix/themes/components/callout.pyi +0 -1197
  61. reflex/components/radix/themes/components/card.pyi +1 -209
  62. reflex/components/radix/themes/components/checkbox.pyi +0 -261
  63. reflex/components/radix/themes/components/checkbox_cards.pyi +1 -96
  64. reflex/components/radix/themes/components/checkbox_group.pyi +1 -80
  65. reflex/components/radix/themes/components/context_menu.pyi +13 -321
  66. reflex/components/radix/themes/components/data_list.pyi +1 -107
  67. reflex/components/radix/themes/components/dialog.pyi +1 -210
  68. reflex/components/radix/themes/components/dropdown_menu.pyi +0 -209
  69. reflex/components/radix/themes/components/hover_card.pyi +1 -246
  70. reflex/components/radix/themes/components/icon_button.pyi +1 -195
  71. reflex/components/radix/themes/components/inset.pyi +0 -252
  72. reflex/components/radix/themes/components/popover.pyi +1 -234
  73. reflex/components/radix/themes/components/progress.pyi +1 -84
  74. reflex/components/radix/themes/components/radio.pyi +1 -72
  75. reflex/components/radix/themes/components/radio_cards.pyi +1 -123
  76. reflex/components/radix/themes/components/scroll_area.pyi +1 -11
  77. reflex/components/radix/themes/components/select.pyi +1 -376
  78. reflex/components/radix/themes/components/separator.pyi +0 -77
  79. reflex/components/radix/themes/components/skeleton.pyi +0 -30
  80. reflex/components/radix/themes/components/slider.py +3 -5
  81. reflex/components/radix/themes/components/spinner.pyi +0 -5
  82. reflex/components/radix/themes/components/switch.pyi +0 -89
  83. reflex/components/radix/themes/components/table.pyi +0 -1453
  84. reflex/components/radix/themes/components/text_area.pyi +7 -282
  85. reflex/components/radix/themes/components/text_field.pyi +6 -392
  86. reflex/components/radix/themes/components/tooltip.pyi +0 -42
  87. reflex/components/radix/themes/layout/box.pyi +1 -195
  88. reflex/components/radix/themes/layout/center.pyi +0 -194
  89. reflex/components/radix/themes/layout/container.pyi +0 -178
  90. reflex/components/radix/themes/layout/flex.pyi +0 -194
  91. reflex/components/radix/themes/layout/grid.pyi +0 -194
  92. reflex/components/radix/themes/layout/list.pyi +0 -978
  93. reflex/components/radix/themes/layout/section.pyi +0 -194
  94. reflex/components/radix/themes/layout/spacer.pyi +0 -194
  95. reflex/components/radix/themes/layout/stack.pyi +0 -582
  96. reflex/components/radix/themes/typography/blockquote.pyi +0 -196
  97. reflex/components/radix/themes/typography/code.pyi +0 -194
  98. reflex/components/radix/themes/typography/heading.pyi +0 -194
  99. reflex/components/radix/themes/typography/link.pyi +0 -237
  100. reflex/components/radix/themes/typography/text.pyi +0 -1360
  101. reflex/components/react_router/dom.pyi +0 -237
  102. reflex/components/recharts/cartesian.py +12 -18
  103. reflex/components/recharts/general.py +12 -18
  104. reflex/constants/installer.py +5 -5
  105. reflex/custom_components/custom_components.py +6 -5
  106. reflex/environment.py +30 -7
  107. reflex/event.py +14 -12
  108. reflex/experimental/client_state.py +11 -12
  109. reflex/istate/data.py +8 -10
  110. reflex/istate/manager/__init__.py +3 -0
  111. reflex/istate/manager/disk.py +151 -5
  112. reflex/model.py +1 -1
  113. reflex/plugins/_screenshot.py +2 -2
  114. reflex/plugins/shared_tailwind.py +9 -14
  115. reflex/reflex.py +7 -9
  116. reflex/state.py +30 -37
  117. reflex/style.py +6 -6
  118. reflex/testing.py +54 -30
  119. reflex/utils/codespaces.py +31 -2
  120. reflex/utils/compat.py +1 -0
  121. reflex/utils/decorator.py +3 -3
  122. reflex/utils/format.py +18 -22
  123. reflex/utils/prerequisites.py +1 -1
  124. reflex/utils/pyi_generator.py +51 -57
  125. reflex/utils/serializers.py +1 -1
  126. reflex/utils/telemetry.py +1 -1
  127. reflex/utils/templates.py +4 -4
  128. reflex/utils/types.py +11 -4
  129. reflex/vars/base.py +26 -29
  130. reflex/vars/color.py +6 -8
  131. reflex/vars/dep_tracking.py +5 -3
  132. reflex/vars/function.py +3 -3
  133. reflex/vars/object.py +9 -13
  134. reflex/vars/sequence.py +18 -24
  135. {reflex-0.8.15a1.dist-info → reflex-0.8.16a1.dist-info}/METADATA +1 -1
  136. {reflex-0.8.15a1.dist-info → reflex-0.8.16a1.dist-info}/RECORD +139 -139
  137. {reflex-0.8.15a1.dist-info → reflex-0.8.16a1.dist-info}/WHEEL +0 -0
  138. {reflex-0.8.15a1.dist-info → reflex-0.8.16a1.dist-info}/entry_points.txt +0 -0
  139. {reflex-0.8.15a1.dist-info → reflex-0.8.16a1.dist-info}/licenses/LICENSE +0 -0
@@ -188,9 +188,7 @@ def _default_drop_rejected(rejected_files: ArrayVar[list[dict[str, Any]]]) -> Ev
188
188
  rf = rf.to(ObjectVar, dict[str, dict[str, Any]])
189
189
  file = rf["file"].to(ObjectVar, dict[str, Any])
190
190
  errors = rf["errors"].to(ArrayVar, list[dict[str, Any]])
191
- return (
192
- f"{file['path']}: {errors.foreach(lambda err: err['message']).join(', ')}"
193
- )
191
+ return f"{file['path']}: {errors.foreach(lambda kv: kv['message']).join(', ')}" # noqa: FURB118
194
192
 
195
193
  return toast.error(
196
194
  title="Files not Accepted",
@@ -297,6 +297,7 @@ LiteralCodeLanguage = Literal[
297
297
  ]
298
298
 
299
299
  def construct_theme_var(theme: str) -> Var[Theme]: ...
300
+
300
301
  @dataclasses.dataclass(init=False)
301
302
  class Theme:
302
303
  a11y_dark: ClassVar[Var[Theme]] = construct_theme_var("a11yDark")
@@ -369,12 +369,10 @@ class DataEditor(NoSSRComponent):
369
369
  columns_path = str(self.columns)
370
370
  data_path = str(self.data)
371
371
 
372
- code.extend(
373
- [
374
- f" return formatDataEditorCells(col, row, {columns_path}, {data_path});",
375
- " }",
376
- ]
377
- )
372
+ code.extend([
373
+ f" return formatDataEditorCells(col, row, {columns_path}, {data_path});",
374
+ " }",
375
+ ])
378
376
 
379
377
  return ["\n".join(code)]
380
378
 
@@ -431,89 +431,87 @@ class ShikiJsTransformer(ShikiBaseTransformers):
431
431
  ]
432
432
  )
433
433
  style: Style | None = dataclasses.field(
434
- default_factory=lambda: Style(
435
- {
436
- "code": {
437
- "line-height": "1.7",
438
- "font-size": "0.875em",
439
- "display": "grid",
440
- },
441
- # Diffs
442
- ".diff": {
443
- "margin": "0 -24px",
444
- "padding": "0 24px",
445
- "width": "calc(100% + 48px)",
446
- "display": "inline-block",
447
- },
448
- ".diff.add": {
449
- "background-color": "rgba(16, 185, 129, .14)",
450
- "position": "relative",
451
- },
452
- ".diff.remove": {
453
- "background-color": "rgba(244, 63, 94, .14)",
454
- "opacity": "0.7",
455
- "position": "relative",
456
- },
457
- ".diff.remove:after": {
458
- "position": "absolute",
459
- "left": "10px",
460
- "content": "'-'",
461
- "color": "#b34e52",
462
- },
463
- ".diff.add:after": {
464
- "position": "absolute",
465
- "left": "10px",
466
- "content": "'+'",
467
- "color": "#18794e",
468
- },
469
- # Highlight
470
- ".highlighted": {
471
- "background-color": "rgba(142, 150, 170, .14)",
472
- "margin": "0 -24px",
473
- "padding": "0 24px",
474
- "width": "calc(100% + 48px)",
475
- "display": "inline-block",
476
- },
477
- ".highlighted.error": {
478
- "background-color": "rgba(244, 63, 94, .14)",
479
- },
480
- ".highlighted.warning": {
481
- "background-color": "rgba(234, 179, 8, .14)",
482
- },
483
- # Highlighted Word
484
- ".highlighted-word": {
485
- "background-color": color("gray", 2),
486
- "border": f"1px solid {color('gray', 5)}",
487
- "padding": "1px 3px",
488
- "margin": "-1px -3px",
489
- "border-radius": "4px",
490
- },
491
- # Focused Lines
492
- ".has-focused .line:not(.focused)": {
493
- "opacity": "0.7",
494
- "filter": "blur(0.095rem)",
495
- "transition": "filter .35s, opacity .35s",
496
- },
497
- ".has-focused:hover .line:not(.focused)": {
498
- "opacity": "1",
499
- "filter": "none",
500
- },
501
- # White Space
502
- # ".tab, .space": {
503
- # "position": "relative", # noqa: ERA001
504
- # },
505
- # ".tab::before": {
506
- # "content": "'⇥'", # noqa: ERA001
507
- # "position": "absolute", # noqa: ERA001
508
- # "opacity": "0.3",# noqa: ERA001
509
- # },
510
- # ".space::before": {
511
- # "content": "'·'", # noqa: ERA001
512
- # "position": "absolute", # noqa: ERA001
513
- # "opacity": "0.3", # noqa: ERA001
514
- # },
515
- }
516
- )
434
+ default_factory=lambda: Style({
435
+ "code": {
436
+ "line-height": "1.7",
437
+ "font-size": "0.875em",
438
+ "display": "grid",
439
+ },
440
+ # Diffs
441
+ ".diff": {
442
+ "margin": "0 -24px",
443
+ "padding": "0 24px",
444
+ "width": "calc(100% + 48px)",
445
+ "display": "inline-block",
446
+ },
447
+ ".diff.add": {
448
+ "background-color": "rgba(16, 185, 129, .14)",
449
+ "position": "relative",
450
+ },
451
+ ".diff.remove": {
452
+ "background-color": "rgba(244, 63, 94, .14)",
453
+ "opacity": "0.7",
454
+ "position": "relative",
455
+ },
456
+ ".diff.remove:after": {
457
+ "position": "absolute",
458
+ "left": "10px",
459
+ "content": "'-'",
460
+ "color": "#b34e52",
461
+ },
462
+ ".diff.add:after": {
463
+ "position": "absolute",
464
+ "left": "10px",
465
+ "content": "'+'",
466
+ "color": "#18794e",
467
+ },
468
+ # Highlight
469
+ ".highlighted": {
470
+ "background-color": "rgba(142, 150, 170, .14)",
471
+ "margin": "0 -24px",
472
+ "padding": "0 24px",
473
+ "width": "calc(100% + 48px)",
474
+ "display": "inline-block",
475
+ },
476
+ ".highlighted.error": {
477
+ "background-color": "rgba(244, 63, 94, .14)",
478
+ },
479
+ ".highlighted.warning": {
480
+ "background-color": "rgba(234, 179, 8, .14)",
481
+ },
482
+ # Highlighted Word
483
+ ".highlighted-word": {
484
+ "background-color": color("gray", 2),
485
+ "border": f"1px solid {color('gray', 5)}",
486
+ "padding": "1px 3px",
487
+ "margin": "-1px -3px",
488
+ "border-radius": "4px",
489
+ },
490
+ # Focused Lines
491
+ ".has-focused .line:not(.focused)": {
492
+ "opacity": "0.7",
493
+ "filter": "blur(0.095rem)",
494
+ "transition": "filter .35s, opacity .35s",
495
+ },
496
+ ".has-focused:hover .line:not(.focused)": {
497
+ "opacity": "1",
498
+ "filter": "none",
499
+ },
500
+ # White Space
501
+ # ".tab, .space": {
502
+ # "position": "relative", # noqa: ERA001
503
+ # },
504
+ # ".tab::before": {
505
+ # "content": "'⇥'", # noqa: ERA001
506
+ # "position": "absolute", # noqa: ERA001
507
+ # "opacity": "0.3",# noqa: ERA001
508
+ # },
509
+ # ".space::before": {
510
+ # "content": "'·'", # noqa: ERA001
511
+ # "position": "absolute", # noqa: ERA001
512
+ # "opacity": "0.3", # noqa: ERA001
513
+ # },
514
+ })
517
515
  )
518
516
 
519
517
  def __init__(self, **kwargs):
@@ -640,9 +638,9 @@ class ShikiCodeBlock(Component, MarkdownComponentMap):
640
638
  raise ValueError(msg)
641
639
  for transformer in self.transformers._var_value:
642
640
  if isinstance(transformer, ShikiBaseTransformers):
643
- imports[transformer.library].extend(
644
- [ImportVar(tag=str(fn)) for fn in transformer.fns]
645
- )
641
+ imports[transformer.library].extend([
642
+ ImportVar(tag=str(fn)) for fn in transformer.fns
643
+ ])
646
644
  if transformer.library not in self.lib_dependencies:
647
645
  self.lib_dependencies.append(transformer.library)
648
646
  return imports
@@ -780,30 +778,28 @@ class ShikiHighLevelCodeBlock(ShikiCodeBlock):
780
778
  set_clipboard(cls._strip_transformer_triggers(code)),
781
779
  copy_script(),
782
780
  ],
783
- style=Style(
784
- {
785
- "position": "absolute",
786
- "top": "4px",
787
- "right": "4px",
788
- "background": color("gray", 3),
789
- "border": "1px solid",
790
- "border-color": color("gray", 5),
791
- "border-radius": "6px",
792
- "padding": "5px",
793
- "opacity": "1",
794
- "cursor": "pointer",
795
- "_hover": {
796
- "background": color("gray", 4),
797
- },
798
- "transition": "background 0.250s ease-out",
799
- "&>svg": {
800
- "transition": "transform 0.250s ease-out, opacity 0.250s ease-out",
801
- },
802
- "_active": {
803
- "background": color("gray", 5),
804
- },
805
- }
806
- ),
781
+ style=Style({
782
+ "position": "absolute",
783
+ "top": "4px",
784
+ "right": "4px",
785
+ "background": color("gray", 3),
786
+ "border": "1px solid",
787
+ "border-color": color("gray", 5),
788
+ "border-radius": "6px",
789
+ "padding": "5px",
790
+ "opacity": "1",
791
+ "cursor": "pointer",
792
+ "_hover": {
793
+ "background": color("gray", 4),
794
+ },
795
+ "transition": "background 0.250s ease-out",
796
+ "&>svg": {
797
+ "transition": "transform 0.250s ease-out, opacity 0.250s ease-out",
798
+ },
799
+ "_active": {
800
+ "background": color("gray", 5),
801
+ },
802
+ }),
807
803
  )
808
804
  )
809
805
 
@@ -161,12 +161,10 @@ def load_dynamic_serializer():
161
161
  )
162
162
  ]
163
163
 
164
- return "\n".join(
165
- [
166
- "//__reflex_evaluate",
167
- *module_code_lines,
168
- ]
169
- )
164
+ return "\n".join([
165
+ "//__reflex_evaluate",
166
+ *module_code_lines,
167
+ ])
170
168
 
171
169
  @transform
172
170
  def evaluate_component(js_string: Var[str]) -> Var[Component]:
@@ -144,13 +144,11 @@ EXCLUDE = ["del_", "Del", "image", "style"]
144
144
  for v in _MAPPING.values():
145
145
  from reflex.utils.format import to_camel_case
146
146
 
147
- v.extend(
148
- [
149
- to_camel_case(mod)[0].upper() + to_camel_case(mod)[1:]
150
- for mod in v
151
- if mod not in EXCLUDE
152
- ]
153
- )
147
+ v.extend([
148
+ to_camel_case(mod)[0].upper() + to_camel_case(mod)[1:]
149
+ for mod in v
150
+ if mod not in EXCLUDE
151
+ ])
154
152
 
155
153
  _MAPPING["metadata"].extend(["StyleEl"])
156
154
 
@@ -395,13 +395,11 @@ EXCLUDE = ["del_", "Del", "image", "style"]
395
395
  for v in _MAPPING.values():
396
396
  from reflex.utils.format import to_camel_case
397
397
 
398
- v.extend(
399
- [
400
- to_camel_case(mod)[0].upper() + to_camel_case(mod)[1:]
401
- for mod in v
402
- if mod not in EXCLUDE
403
- ]
404
- )
398
+ v.extend([
399
+ to_camel_case(mod)[0].upper() + to_camel_case(mod)[1:]
400
+ for mod in v
401
+ if mod not in EXCLUDE
402
+ ])
405
403
  _MAPPING["metadata"].extend(["StyleEl"])
406
404
 
407
405
  __all__ = [
@@ -6,7 +6,7 @@ from reflex.components.el.element import Element
6
6
  from reflex.vars.base import Var
7
7
 
8
8
  AutoCapitalize = Literal["off", "none", "on", "sentences", "words", "characters"]
9
- ContentEditable = Literal[True, False, "inherit", "plaintext-only"]
9
+ ContentEditable = Literal["inherit", "plaintext-only"] | bool
10
10
  EnterKeyHint = Literal["enter", "done", "go", "next", "previous", "search", "send"]
11
11
  InputMode = Literal[
12
12
  "none", "text", "tel", "url", "email", "numeric", "decimal", "search", "search"
@@ -12,7 +12,7 @@ from reflex.event import EventType, PointerEventInfo
12
12
  from reflex.vars.base import Var
13
13
 
14
14
  AutoCapitalize = Literal["off", "none", "on", "sentences", "words", "characters"]
15
- ContentEditable = Literal[True, False, "inherit", "plaintext-only"]
15
+ ContentEditable = Literal["inherit", "plaintext-only"] | bool
16
16
  EnterKeyHint = Literal["enter", "done", "go", "next", "previous", "search", "send"]
17
17
  InputMode = Literal[
18
18
  "none", "text", "tel", "url", "email", "numeric", "decimal", "search", "search"
@@ -94,184 +94,6 @@ class BaseHTML(Element):
94
94
  def create(
95
95
  cls,
96
96
  *children,
97
- access_key: Var[str] | str | None = None,
98
- auto_capitalize: Literal[
99
- "characters", "none", "off", "on", "sentences", "words"
100
- ]
101
- | Var[Literal["characters", "none", "off", "on", "sentences", "words"]]
102
- | None = None,
103
- content_editable: Literal["inherit", "plaintext-only", False, True]
104
- | Var[Literal["inherit", "plaintext-only", False, True]]
105
- | None = None,
106
- context_menu: Var[str] | str | None = None,
107
- dir: Var[str] | str | None = None,
108
- draggable: Var[bool] | bool | None = None,
109
- enter_key_hint: Literal[
110
- "done", "enter", "go", "next", "previous", "search", "send"
111
- ]
112
- | Var[Literal["done", "enter", "go", "next", "previous", "search", "send"]]
113
- | None = None,
114
- hidden: Var[bool] | bool | None = None,
115
- input_mode: Literal[
116
- "decimal", "email", "none", "numeric", "search", "tel", "text", "url"
117
- ]
118
- | Var[
119
- Literal[
120
- "decimal", "email", "none", "numeric", "search", "tel", "text", "url"
121
- ]
122
- ]
123
- | None = None,
124
- item_prop: Var[str] | str | None = None,
125
- lang: Var[str] | str | None = None,
126
- role: Literal[
127
- "alert",
128
- "alertdialog",
129
- "application",
130
- "article",
131
- "banner",
132
- "button",
133
- "cell",
134
- "checkbox",
135
- "columnheader",
136
- "combobox",
137
- "complementary",
138
- "contentinfo",
139
- "definition",
140
- "dialog",
141
- "directory",
142
- "document",
143
- "feed",
144
- "figure",
145
- "form",
146
- "grid",
147
- "gridcell",
148
- "group",
149
- "heading",
150
- "img",
151
- "link",
152
- "list",
153
- "listbox",
154
- "listitem",
155
- "log",
156
- "main",
157
- "marquee",
158
- "math",
159
- "menu",
160
- "menubar",
161
- "menuitem",
162
- "menuitemcheckbox",
163
- "menuitemradio",
164
- "navigation",
165
- "none",
166
- "note",
167
- "option",
168
- "presentation",
169
- "progressbar",
170
- "radio",
171
- "radiogroup",
172
- "region",
173
- "row",
174
- "rowgroup",
175
- "rowheader",
176
- "scrollbar",
177
- "search",
178
- "searchbox",
179
- "separator",
180
- "slider",
181
- "spinbutton",
182
- "status",
183
- "switch",
184
- "tab",
185
- "table",
186
- "tablist",
187
- "tabpanel",
188
- "term",
189
- "textbox",
190
- "timer",
191
- "toolbar",
192
- "tooltip",
193
- "tree",
194
- "treegrid",
195
- "treeitem",
196
- ]
197
- | Var[
198
- Literal[
199
- "alert",
200
- "alertdialog",
201
- "application",
202
- "article",
203
- "banner",
204
- "button",
205
- "cell",
206
- "checkbox",
207
- "columnheader",
208
- "combobox",
209
- "complementary",
210
- "contentinfo",
211
- "definition",
212
- "dialog",
213
- "directory",
214
- "document",
215
- "feed",
216
- "figure",
217
- "form",
218
- "grid",
219
- "gridcell",
220
- "group",
221
- "heading",
222
- "img",
223
- "link",
224
- "list",
225
- "listbox",
226
- "listitem",
227
- "log",
228
- "main",
229
- "marquee",
230
- "math",
231
- "menu",
232
- "menubar",
233
- "menuitem",
234
- "menuitemcheckbox",
235
- "menuitemradio",
236
- "navigation",
237
- "none",
238
- "note",
239
- "option",
240
- "presentation",
241
- "progressbar",
242
- "radio",
243
- "radiogroup",
244
- "region",
245
- "row",
246
- "rowgroup",
247
- "rowheader",
248
- "scrollbar",
249
- "search",
250
- "searchbox",
251
- "separator",
252
- "slider",
253
- "spinbutton",
254
- "status",
255
- "switch",
256
- "tab",
257
- "table",
258
- "tablist",
259
- "tabpanel",
260
- "term",
261
- "textbox",
262
- "timer",
263
- "toolbar",
264
- "tooltip",
265
- "tree",
266
- "treegrid",
267
- "treeitem",
268
- ]
269
- ]
270
- | None = None,
271
- slot: Var[str] | str | None = None,
272
- spell_check: Var[bool] | bool | None = None,
273
- tab_index: Var[int] | int | None = None,
274
- title: Var[str] | str | None = None,
275
97
  style: Sequence[Mapping[str, Any]]
276
98
  | Mapping[str, Any]
277
99
  | Var[Mapping[str, Any]]
@@ -304,22 +126,6 @@ class BaseHTML(Element):
304
126
 
305
127
  Args:
306
128
  *children: The children of the component.
307
- access_key: Provides a hint for generating a keyboard shortcut for the current element.
308
- auto_capitalize: Controls whether and how text input is automatically capitalized as it is entered/edited by the user.
309
- content_editable: Indicates whether the element's content is editable.
310
- context_menu: Defines the ID of a <menu> element which will serve as the element's context menu.
311
- dir: Defines the text direction. Allowed values are ltr (Left-To-Right) or rtl (Right-To-Left)
312
- draggable: Defines whether the element can be dragged.
313
- enter_key_hint: Hints what media types the media element is able to play.
314
- hidden: Defines whether the element is hidden.
315
- input_mode: Defines the type of the element.
316
- item_prop: Defines the name of the element for metadata purposes.
317
- lang: Defines the language used in the element.
318
- role: Defines the role of the element.
319
- slot: Assigns a slot in a shadow DOM shadow tree to an element.
320
- spell_check: Defines whether the element may be checked for spelling errors.
321
- tab_index: Defines the position of the current element in the tabbing order.
322
- title: Defines a tooltip for the element.
323
129
  style: The style of the component.
324
130
  key: A unique key for the component.
325
131
  id: The id for the component.
@@ -229,14 +229,12 @@ class Form(BaseHTML):
229
229
  def _render(self) -> Tag:
230
230
  render_tag = super()._render()
231
231
  if EventTriggers.ON_SUBMIT in self.event_triggers:
232
- render_tag = render_tag.add_props(
233
- **{
234
- EventTriggers.ON_SUBMIT: Var(
235
- _js_expr=f"handleSubmit_{self.handle_submit_unique_name}",
236
- _var_type=EventChain,
237
- )
238
- }
239
- )
232
+ render_tag = render_tag.add_props(**{
233
+ EventTriggers.ON_SUBMIT: Var(
234
+ _js_expr=f"handleSubmit_{self.handle_submit_unique_name}",
235
+ _var_type=EventChain,
236
+ )
237
+ })
240
238
  return render_tag
241
239
 
242
240
  def _get_form_refs(self) -> dict[str, Any]:
@@ -319,7 +317,7 @@ class BaseInput(BaseHTML):
319
317
  auto_focus: Var[bool]
320
318
 
321
319
  # Captures media from the user (camera or microphone)
322
- capture: Var[Literal[True, False, "user", "environment"]]
320
+ capture: Var[Literal["user", "environment"] | bool]
323
321
 
324
322
  # Indicates whether the input is checked (for checkboxes and radio buttons)
325
323
  checked: Var[bool]