def __init__(self, **kwargs):
        """Initialize the props with field values.

        Args:
            **kwargs: The field values to set.
        """
        # Set field values from kwargs with nested object instantiation
        for key, value in kwargs.items():
            field_info = self.get_fields().get(key)
            if field_info:
                field_type = field_info.annotated_type

                # Check if this field expects a specific Props type and we got a dict
                if isinstance(value, dict):
                    props_class = _get_props_subclass(field_type)
                    if props_class is not None:
                        value = props_class(**value)

                # Check if this field expects a list of Props and we got a list of dicts
                elif isinstance(value, list):
                    element_type = _find_props_in_list_annotation(field_type)
                    if element_type is not None:
                        # Convert each dict in the list to the appropriate Props class
                        value = [
                            element_type(**item) if isinstance(item, dict) else item
                            for item in value
                        ]

            setattr(self, key, value)

        # Set default values for fields not provided
        for field_name, field in self.get_fields().items():
            if field_name not in kwargs:
                if field.default is not MISSING:
                    setattr(self, field_name, field.default)
                elif field.default_factory is not None:
                    setattr(self, field_name, field.default_factory())
                # Note: Fields with no default and no factory remain unset (required fields)
Initialize the props with field values.

        Args:
            **kwargs: The field values to set.
        
reflex/components/props.py