docs: def map_with_slider(h3: HistogramND, *, show_zero: bool = True, show_values: bool = False, **kwargs) -> dict:
      """Heatmap showing slice in first two dimensions, third dimension represented as a slider.
  
      Parameters
      ----------
      """
      vega = _create_figure(kwargs)
  
      values_arr = get_data(h3, kwargs.pop("density", None), kwargs.pop("cumulative", None))
      values = values_arr.tolist()
      value_format = get_value_format(kwargs.pop("value_format", None))
  
      _add_title(h3, vega, kwargs)
      _create_scales(h3, vega, kwargs)
      _create_axes(h3, vega, kwargs)
      _create_cmap_scale(values_arr, vega, kwargs)
      _create_colorbar(vega, kwargs)
  
      x = h3.get_bin_centers(0)
      y = h3.get_bin_centers(1)
      x1 = h3.get_bin_left_edges(0)
      x2 = h3.get_bin_right_edges(0)
      y1 = h3.get_bin_left_edges(1)
      y2 = h3.get_bin_right_edges(1)
  
      data = []
      for i in range(h3.shape[0]):
          for j in range(h3.shape[1]):
              for k in range(h3.shape[2]):
                  if not show_zero and values[i][j][k] == 0:
                      continue
                  item = {
                      "x": float(x[i]),
                      "x1": float(x1[i]),
                      "x2": float(x2[i]),
                      "y": float(y[j]),
                      "y1": float(y1[j]),
                      "y2": float(y2[j]),
                      "k": k,
                      "c": float(values[i][j][k]),
                  }
                  if show_values:
                      item["label"] = value_format(values[i][j][k])
                  data.append(item)
  
      vega["signals"] = [
          {
              "name": "k", "value": h3.shape[2] // 2,
              "bind": {
                  "input": "range", "min": 0, "max": h3.shape[2] - 1,
                  "step": 1, "name": (h3.axis_names[2] or "axis2") + " [slice]"
              }
          }
      ]
  
      vega["data"] = [{
          "name": "table",
          "values": data,
          "transform": [
               {
                   "type": "filter",
                   "expr": "k == datum.k",
               }
          ]
      }]
  
      vega["marks"] = [
          {
              "type": "rect",
              "from": {"data": "table"},
              "encode": {
                  "enter": {
                      "x": {"scale": "xscale", "field": "x1"},
                      "x2": {"scale": "xscale", "field": "x2"},
                      "y": {"scale": "yscale", "field": "y1"},
                      "y2": {"scale": "yscale", "field": "y2"},
                      "fill": {"scale": "color", "field": "c"},
                      "stroke": {"value": 0},
                      # "strokeWidth": {"value": 0},
                      # "fillColor": {"value": "#ffff00"}
                  },
                  # "update": {
                  #     "fillOpacity": {"value": 0.6}
                  # },
                  # "hover": {
                  #     "fillOpacity": {"value": 0.5}
                  # }
              }
          }
      ]
  
      if show_values:
          vega["marks"].append(
              {
                  "type": "text",
                  "from": {"data": "table"},
                  "encode": {
                      "enter": {
                          "align": {"value": "center"},
                          "baseline": {"value": "middle"},
                          "fontSize": {"value": 13},
                          "fontWeight": {"value": "bold"},
                          "text": {"field": "label"},
                          "x": {"scale": "xscale", "field": "x"},
                          "y": {"scale": "yscale", "field": "y"},
                      }
                  }
              }
          )
  
      return vega