class_docstr: Overlay selection display subclass for use with bokeh backend
code: def _style_region_element(self, region_element, unselected_color):
      from ..util import linear_gradient
  
      backend_options = Store.options(backend="bokeh")
      el2_name = None
      if isinstance(region_element, NdOverlay):
          el1_name = type(region_element.last).name
      elif isinstance(region_element, Overlay):
          el1_name = type(region_element.get(0)).name
          el2_name = type(region_element.get(1)).name
      else:
          el1_name = type(region_element).name
      style_options = backend_options[(el1_name,)]["style"]
      allowed = style_options.allowed_keywords
      options = {}
      for opt_name in allowed:
          if "alpha" in opt_name:
              options[opt_name] = 1.0
  
      if el1_name != "Histogram":
          # Darken unselected color
          if unselected_color:
              region_color = linear_gradient(
                  unselected_color, "#000000", 9
              )[3]
              options["color"] = region_color
          if el1_name == "Rectangles":
              options["line_width"] = 1
              options["fill_alpha"] = 0
              options["selection_fill_alpha"] = 0
              options["nonselection_fill_alpha"] = 0
          elif "Span" in el1_name:
              unselected_color = unselected_color or "#e6e9ec"
              region_color = linear_gradient(
                  unselected_color, "#000000", 9
              )[1]
              options["color"] = region_color
              options["fill_alpha"] = 0.2
              options["selection_fill_alpha"] = 0.2
              options["nonselection_fill_alpha"] = 0.2
      else:
          # Darken unselected color slightly
          unselected_color = unselected_color or "#e6e9ec"
          region_color = linear_gradient(
              unselected_color, "#000000", 9
          )[1]
          options["fill_color"] = region_color
          options["color"] = region_color
  
      region = region_element.opts(el1_name, clone=True, **options)
      if el2_name and el2_name == "Path":
          region = region.opts(
              el2_name,
              backend="bokeh",
              color="black",
              line_dash="dotted",
          )
      return region
  
file_path: holoviews/holoviews/plotting/bokeh/selection.py
imports: import numpy
  from ...core.options import Store
  from ...core.overlay import NdOverlay, Overlay
  from ...selection import OverlaySelectionDisplay, SelectionDisplay
label_desc: Use image node_id 2 for calling the BokehOverlaySelectionDisplay obj's underlying member method code with example usage: obj._style_region_element(region_element, unselected_color) and returns: region