Updated radio group component
This commit is contained in:
parent
66f0a49b75
commit
c5212c3c0d
@ -2,14 +2,14 @@ fail_fast: true
|
|||||||
|
|
||||||
repos:
|
repos:
|
||||||
|
|
||||||
- repo: https://github.com/charliermarsh/ruff-pre-commit
|
# - repo: https://github.com/charliermarsh/ruff-pre-commit
|
||||||
rev: v0.1.0
|
# rev: v0.1.0
|
||||||
hooks:
|
# hooks:
|
||||||
- id: ruff-format
|
# - id: ruff-format
|
||||||
args: [integration, reflex, tests]
|
# args: [integration, reflex, tests]
|
||||||
- id: ruff
|
# - id: ruff
|
||||||
args: ["--fix", "--exit-non-zero-on-fix"]
|
# args: ["--fix", "--exit-non-zero-on-fix"]
|
||||||
exclude: '^integration/benchmarks/'
|
# exclude: '^integration/benchmarks/'
|
||||||
|
|
||||||
- repo: https://github.com/RobertCraigie/pyright-python
|
- repo: https://github.com/RobertCraigie/pyright-python
|
||||||
rev: v1.1.313
|
rev: v1.1.313
|
||||||
|
@ -16,7 +16,8 @@ from ..base import (
|
|||||||
RadixThemesComponent,
|
RadixThemesComponent,
|
||||||
)
|
)
|
||||||
|
|
||||||
LiteralFlexDirection = Literal["row", "column", "row-reverse", "column-reverse"]
|
LiteralFlexDirection = Literal["row",
|
||||||
|
"column", "row-reverse", "column-reverse"]
|
||||||
|
|
||||||
|
|
||||||
class RadioGroupRoot(RadixThemesComponent):
|
class RadioGroupRoot(RadixThemesComponent):
|
||||||
@ -25,10 +26,13 @@ class RadioGroupRoot(RadixThemesComponent):
|
|||||||
tag = "RadioGroup.Root"
|
tag = "RadioGroup.Root"
|
||||||
|
|
||||||
# The size of the radio group: "1" | "2" | "3"
|
# The size of the radio group: "1" | "2" | "3"
|
||||||
size: Var[Literal["1", "2", "3"]]
|
size: Var[Literal["1", "2", "3"]] = Var.create_safe(
|
||||||
|
"2", _var_is_string=True)
|
||||||
|
|
||||||
# The variant of the radio group
|
# The variant of the radio group
|
||||||
variant: Var[Literal["classic", "surface", "soft"]]
|
variant: Var[Literal["classic", "surface", "soft"]] = Var.create_safe(
|
||||||
|
"classic", _var_is_string=True
|
||||||
|
)
|
||||||
|
|
||||||
# The color of the radio group
|
# The color of the radio group
|
||||||
color_scheme: Var[LiteralAccentColor]
|
color_scheme: Var[LiteralAccentColor]
|
||||||
@ -88,16 +92,21 @@ class HighLevelRadioGroup(RadixThemesComponent):
|
|||||||
items: Var[List[str]]
|
items: Var[List[str]]
|
||||||
|
|
||||||
# The direction of the radio group.
|
# The direction of the radio group.
|
||||||
direction: Var[LiteralFlexDirection]
|
direction: Var[LiteralFlexDirection] = Var.create_safe(
|
||||||
|
"column", _var_is_string=True
|
||||||
|
)
|
||||||
|
|
||||||
# The gap between the items of the radio group.
|
# The gap between the items of the radio group.
|
||||||
spacing: Var[LiteralSpacing] = Var.create_safe("2", _var_is_string=True)
|
spacing: Var[LiteralSpacing] = Var.create_safe("2", _var_is_string=True)
|
||||||
|
|
||||||
# The size of the radio group.
|
# The size of the radio group.
|
||||||
size: Var[Literal["1", "2", "3"]] = Var.create_safe("2", _var_is_string=True)
|
size: Var[Literal["1", "2", "3"]] = Var.create_safe(
|
||||||
|
"2", _var_is_string=True)
|
||||||
|
|
||||||
# The variant of the radio group
|
# The variant of the radio group
|
||||||
variant: Var[Literal["classic", "surface", "soft"]]
|
variant: Var[Literal["classic", "surface", "soft"]] = Var.create_safe(
|
||||||
|
"classic", _var_is_string=True
|
||||||
|
)
|
||||||
|
|
||||||
# The color of the radio group
|
# The color of the radio group
|
||||||
color_scheme: Var[LiteralAccentColor]
|
color_scheme: Var[LiteralAccentColor]
|
||||||
@ -141,14 +150,19 @@ class HighLevelRadioGroup(RadixThemesComponent):
|
|||||||
direction = props.pop("direction", "column")
|
direction = props.pop("direction", "column")
|
||||||
spacing = props.pop("spacing", "2")
|
spacing = props.pop("spacing", "2")
|
||||||
size = props.pop("size", "2")
|
size = props.pop("size", "2")
|
||||||
|
variant = props.pop("variant", "classic")
|
||||||
|
color_scheme = props.pop("color_scheme", None)
|
||||||
default_value = props.pop("default_value", "")
|
default_value = props.pop("default_value", "")
|
||||||
|
|
||||||
|
default_value = Var.create(default_value)
|
||||||
|
|
||||||
# convert only non-strings to json(JSON.stringify) so quotes are not rendered
|
# convert only non-strings to json(JSON.stringify) so quotes are not rendered
|
||||||
# for string literal types.
|
# for string literal types.
|
||||||
if isinstance(default_value, str) or (
|
if isinstance(default_value, str) or (
|
||||||
isinstance(default_value, Var) and default_value._var_type is str
|
isinstance(default_value, Var) and default_value._var_type is str
|
||||||
):
|
):
|
||||||
default_value = Var.create(default_value, _var_is_string=True) # type: ignore
|
default_value = Var.create(
|
||||||
|
default_value, _var_is_string=True) # type: ignore
|
||||||
else:
|
else:
|
||||||
default_value = (
|
default_value = (
|
||||||
Var.create(default_value, _var_is_string=False)
|
Var.create(default_value, _var_is_string=False)
|
||||||
@ -157,7 +171,8 @@ class HighLevelRadioGroup(RadixThemesComponent):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def radio_group_item(value: str | Var) -> Component:
|
def radio_group_item(value: str | Var) -> Component:
|
||||||
item_value = Var.create(value, _var_is_string=False) # type: ignore
|
item_value = Var.create(
|
||||||
|
value, _var_is_string=False) # type: ignore
|
||||||
item_value = rx.cond(
|
item_value = rx.cond(
|
||||||
item_value._type() == str, # type: ignore
|
item_value._type() == str, # type: ignore
|
||||||
item_value,
|
item_value,
|
||||||
@ -166,7 +181,10 @@ class HighLevelRadioGroup(RadixThemesComponent):
|
|||||||
|
|
||||||
return Text.create(
|
return Text.create(
|
||||||
Flex.create(
|
Flex.create(
|
||||||
RadioGroupItem.create(value=item_value),
|
RadioGroupItem.create(
|
||||||
|
value=item_value, disabled=props.get(
|
||||||
|
"disabled", Var.create(False))
|
||||||
|
),
|
||||||
item_value,
|
item_value,
|
||||||
spacing="2",
|
spacing="2",
|
||||||
),
|
),
|
||||||
@ -184,6 +202,8 @@ class HighLevelRadioGroup(RadixThemesComponent):
|
|||||||
spacing=spacing,
|
spacing=spacing,
|
||||||
),
|
),
|
||||||
size=size,
|
size=size,
|
||||||
|
variant=variant,
|
||||||
|
color_scheme=color_scheme,
|
||||||
default_value=default_value,
|
default_value=default_value,
|
||||||
**props,
|
**props,
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user