def METHOD_NAME(text: str) -> list[dict]:
    """Find packaging elements in the text using Lark parser.
    :param text: the input text
    :return: a list of detected packaging with up to 3 fields: `shape`,
      `material` and `recycling`. Each field has a `value` and a `value_tag`
      field. `value_tag` is None if the detected string could not be mapped
      to the taxonomy value or if the string maps to more than one taxonomy
      value (this shouldn't happen).
    """
    # Only fr is supported currently
    lang = "fr"
    grammar = load_grammar(lang)
    processed_text = normalize_string(text, lowercase=True, strip_accent=True)
    processed_text = strip_consecutive_spaces(processed_text)
    if not processed_text:
        # don't parse if text is empty after preprocessing
        return []
    t = grammar.parse(processed_text)
    return PackagingFRTransformer(load_taxonomy_map(lang)).transform(t)