text: Title: How to custom action for selector feature
  Body: ### Question
  
  Dear all,
  
  I hope to use click data on the scatter plot to control the input of another figure.  I can use the control component to achieve the function of control the figure. I am also able to extract clickData from the action. However, not sure how to pass the information in the custom action to another figure. 
  
  This works
  ```
          vm.Parameter(
              targets=["my_bio_figure.material"],
              selector=vm.Dropdown(options=list(df_perovskite.material), value="YTcO3", multi=False),
          )
  ```
  This doesn't work
  ```
                      actions=[vm.Action(function=select_interaction(), inputs=["scatter_chart.clickData"],outputs=["my_bio_figure.material"])]
  ```
  
  The full code
  ```
  
  import vizro.models as vm
  import vizro.plotly.express as px
  from vizro import Vizro
  from vizro.tables import dash_ag_grid
  import pandas as pd
  from vizro.models.types import capture
  
  import dash_bio as dashbio
  import dash_bio.utils.ngl_parser as ngl_parser
  
  import ase.db
  from pymatgen.io.ase import AseAtomsAdaptor
  import nvcs
  from pymatgen.core import Structure
  import nglview
  from vizro.actions import filter_interaction
  
  df_perovskite = pd.read_csv("cubic.csv")
  structure_db = ase.db.connect("perovskites.db")
  data_path = "https://raw.githubusercontent.com/plotly/datasets/master/Dash_Bio/Molecular/"
  
  @capture("figure")
  def custom_bio_molecule_figure(data_frame, material):
  
      atoms = structure_db.get_atoms(material)
      pmg_structure = AseAtomsAdaptor().get_structure(atoms)
      sites_displayed = nvcs.structure._get_displayed(pmg_structure)
      pmg_structure_displayed = Structure.from_sites([si.site for si in sites_displayed])
      atoms_displayed = AseAtomsAdaptor().get_atoms(pmg_structure_displayed)
  
      ngl_ase_adaptor = nglview.ASEStructure(atoms_displayed)
      #data_list = [ngl_ase_adaptor.get_structure_string()]
      content = ngl_ase_adaptor.get_structure_string()
      data = {
          'filename': material,
          'ext': 'pdb',
          'selectedValue': '1',
          'chain': 'ALL',
          'aaRange': 'ALL',
          'chosen': {'atoms':'', 'residues':''},
          'color': '#e41a1c',
          'config': {'type': 'text/plain', 'input': content},
          'resetView': True,
          'uploaded': True
      }
      data_list = [data]
      print(data_list)
      molstyles_dict = {
          "representations": ["ball+stick", 'unitcell'],
      }
  
      return dashbio.NglMoleculeViewer(
          id="ngl_molecule_viewer_id",
          data=data_list,
          molStyles=molstyles_dict,
      )
  
  @capture("action")
  def select_interaction(clickData):
      """Returns the input value."""
      material = clickData['points'][0]['customdata'][0]
      print(material)
      #print(clickData["custom_data"])
      #return clickData["custom_data"]
      return material
  
  
  
  page = vm.Page(
      title="Perovskites",
      layout=vm.Layout(grid=[[0, 0, 1],
                             [0, 0, 2]]),
      components=[vm.AgGrid(figure=dash_ag_grid(data_frame=df_perovskite)),
                  vm.Graph(
                      id = "scatter_chart",
                      figure = px.scatter(df_perovskite, x="lattice_constant (AA)", y="bulk_modulus (eV/AA^3)", custom_data = ["material"]), 
                      actions=[vm.Action(function=select_interaction(), inputs=["scatter_chart.clickData"],outputs=["my_bio_figure.material"])]
                      ),
                  vm.Figure(id="my_bio_figure", figure=custom_bio_molecule_figure(data_frame=pd.DataFrame(), material="YTcO3")),
                  ],
      controls=[
          vm.Parameter(
              targets=["scatter_chart.x"],
              selector=vm.Dropdown(options=list(df_perovskite.columns), value="lattice_constant (AA)", multi=False),
          ),
          vm.Parameter(
              targets=["scatter_chart.y"],
              selector=vm.Dropdown(options=list(df_perovskite.columns), value="bulk_modulus (eV/AA^3)", multi=False),
          ),
          vm.Parameter(
              targets=["my_bio_figure.material"],
              selector=vm.Dropdown(options=list(df_perovskite.material), value="YTcO3", multi=False),
          ),
      ]
  )
  
  dashboard = vm.Dashboard(pages=[page], theme="vizro_light")
  
  if __name__ == "__main__":
      Vizro().build(dashboard).run()
  
  ```
  
  Thank you very much for your help.
  
  ### Code/Examples
  
  _No response_
  
  ### Which package?
  
  vizro
  
  ### Code of Conduct
  
  - [X] I agree to follow the [Code of Conduct](https://github.com/mckinsey/vizro/blob/main/CODE_OF_CONDUCT.md).