 
   See `Drab.Core.broadcast_js/2` for broadcasting options.  
   """
-  @spec broadcast_html(Drab.Core.subject(), String.t(), String.t()) :: Drab.Core.result()
+  @spec broadcast_html(Drab.Core.subject(), String.t(), String.t()) :: Drab.Core.bcast_result()
   def broadcast_html(subject, selector, html) do
     broadcast_js(subject, set_js(selector, %{"innerHTML" => html}))
   end
 
-  @doc """
-  Exception-throwing version of `broadcast_html/43`
-  """
-  @spec broadcast_html!(Drab.Core.subject(), String.t(), String.t()) :: Drab.Core.result()
-  def broadcast_html!(subject, selector, html) do
-    broadcast_js!(subject, set_js(selector, %{"innerHTML" => html}))
-  end
-
 end


  See `Drab.Core.broadcast_js/2` for broadcasting options.  
  """
  @spec broadcast_style(Drab.Core.subject(), String.t(), map | Keyword.t()) :: Drab.Core.result()
  def broadcast_style(subject, selector, properties) when is_list(properties) or is_map(properties) do
    broadcast_js(subject, set_js(selector, %{"style" => Map.new(properties)}))
  end

  @doc """
  Exception-throwing version of `broadcast_style/3`
  """
  @spec broadcast_style!(Drab.Core.subject(), String.t(), map | Keyword.t()) :: Drab.Core.return() | no_return
  def broadcast_style!(subject, selector, properties) when is_list(properties) or is_map(properties) do
    broadcast_js!(subject, set_js(selector, %{"style" => Map.new(properties)}))
  end

  @doc """


  See `Drab.Core.broadcast_js/2` for broadcasting options.  
  """
  @spec broadcast_attr(Drab.Core.subject(), String.t(), map | Keyword.t()) :: Drab.Core.bcast_result()
  def broadcast_attr(subject, selector, attributes) when is_list(attributes) or is_map(attributes) do
    # set_prop(socket, selector, %{"attributes" => Map.new(attributes)})
    broadcast_js(subject, set_js(selector, %{"attributes" => Map.new(attributes)}))
  end

